LLVM 22.0.0git
llvm Namespace Reference

This is an optimization pass for GlobalISel generic memory operations. More...

Namespaces

namespace  AA
 Abstract Attribute helper functions.
namespace  AArch64
namespace  AArch64_AM
 AArch64_AM - AArch64 Addressing Mode Stuff.
namespace  AArch64_IMM
namespace  AArch64_MC
namespace  AArch64AT
namespace  AArch64BTIHint
namespace  AArch64BuildAttributes
namespace  AArch64CC
namespace  AArch64DB
namespace  AArch64DBnXS
namespace  AArch64DC
namespace  AArch64ExactFPImm
namespace  AArch64GISelUtils
namespace  AArch64IC
namespace  AArch64II
namespace  AArch64ISB
namespace  AArch64Layout
namespace  AArch64PACKey
namespace  AArch64PAuth
namespace  AArch64PHint
namespace  AArch64PRFM
namespace  AArch64PSBHint
namespace  AArch64PState
namespace  AArch64RPRFM
namespace  AArch64SE
namespace  AArch64SME
namespace  AArch64SVCR
namespace  AArch64SVEPredPattern
namespace  AArch64SVEPRFM
namespace  AArch64SVEVecLenSpecifier
namespace  AArch64SysReg
namespace  AArch64TLBI
namespace  AArch64TSB
namespace  adl_detail
namespace  afdo_detail
namespace  AMDGPU
namespace  AMDGPUAS
 OpenCL uses address spaces to differentiate between various memory regions on the hardware.
namespace  AMDGPUAsmVariants
namespace  AMDGPUISD
namespace  AMDGPURI
 Register allocation hint types. Helps eliminate unneeded COPY with True16.
namespace  amdhsa
namespace  APIntOps
namespace  ARCCC
namespace  ArchYAML
namespace  ARM
 Define some predicates that are used for node matching.
namespace  ARM64AS
namespace  ARM_AM
 ARM_AM - ARM Addressing Mode Stuff.
namespace  ARM_ISB
namespace  ARM_MB
namespace  ARM_MC
namespace  ARM_PROC
namespace  ARM_TSB
namespace  ARMBankedReg
namespace  ARMBuildAttrs
namespace  ARMCC
namespace  ARMCP
namespace  ARMII
 ARMII - This namespace holds all of the target specific flags that instruction info tracks.
namespace  ARMISD
namespace  ARMRI
 Register allocation hints.
namespace  ARMSysReg
namespace  ARMVCC
namespace  at
 Assignment Tracking (at).
namespace  AVR
 Contains the AVR backend.
namespace  AVRCC
namespace  AVRII
namespace  bfi_detail
namespace  binaryformat
namespace  bitc
namespace  bitfields_details
namespace  BitmaskEnumDetail
namespace  BPF
namespace  BPFISD
namespace  BTF
namespace  callable_detail
namespace  CallingConv
 CallingConv Namespace - This namespace contains an enum with a value for the well-known calling conventions.
namespace  cas
namespace  cfg
namespace  cgdata
namespace  Check
namespace  cl
 This namespace contains all of the command line option processing machinery.
namespace  codegen
namespace  CodeGenOpt
namespace  codegenoptions
namespace  codelayout
namespace  CodeModel
namespace  codeview
namespace  CodeViewYAML
namespace  COFF
namespace  COFFYAML
namespace  compression
namespace  consthoist
 A private "module" namespace for types and utilities used by ConstantHoisting.
namespace  ConverterEBCDIC
namespace  coro
namespace  coverage
namespace  CSKY
namespace  CSKYAttrs
namespace  CSKYCP
namespace  CSKYII
namespace  CSKYOp
namespace  ctx_profile
namespace  densemap
namespace  detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.
namespace  details
namespace  directive
namespace  DomTreeBuilder
namespace  DOT
namespace  driver
namespace  dwarf
 Calculates the starting offsets for various sections within the .debug_names section.
namespace  dwarf_linker
namespace  DWARFFlavour
 Flavour of dwarf regnumbers.
namespace  DWARFYAML
namespace  dxbc
namespace  DXContainerYAML
namespace  dxil
namespace  ELF
namespace  ELFAttrs
namespace  ELFYAML
namespace  EngineKind
namespace  FloatABI
namespace  fp
namespace  FPOpFusion
namespace  fuzzerop
namespace  GCOV
namespace  GISelAddressing
namespace  GOFF
namespace  GOFFYAML
namespace  GraphProgram
namespace  gsym
namespace  gvn
 A private "module" namespace for types and utilities used by GVN.
namespace  GVNExpression
namespace  hashbuilder_detail
namespace  hashing
namespace  Hexagon
namespace  Hexagon_MC
namespace  HexagonAttrs
namespace  HexagonFUnits
namespace  HexagonII
 HexagonII - This namespace holds all of the target specific flags that instruction info tracks.
namespace  HexagonISD
namespace  HexagonMCInstrInfo
namespace  HexStyle
namespace  hlsl
namespace  HWASanAccessInfo
namespace  IDFCalculatorDetail
namespace  ifs
namespace  ilist_detail
namespace  impl
namespace  impl_detail
namespace  IndexedCGData
namespace  IndexedInstrProf
namespace  InlineConstants
namespace  internal
namespace  IntervalMapImpl
 IntervalMapImpl - Namespace used for IntervalMap implementation details.
namespace  Intrinsic
 This namespace contains an enum with a value for every intrinsic/builtin function known by LLVM.
namespace  ir2vec
namespace  IRSimilarity
namespace  irsymtab
namespace  ISD
 ISD namespace - This namespace contains an enum which represents all of the SelectionDAG node types and value types.
namespace  itanium_demangle
namespace  json
namespace  JumpTable
namespace  jumpthreading
 A private "module" namespace for types and utilities used by JumpThreading.
namespace  Lanai
namespace  LanaiII
namespace  LCOMM
namespace  legacy
namespace  LegacyLegalizeActions
namespace  LegalityPredicates
namespace  LegalizeActions
namespace  LegalizeMutations
namespace  lltok
namespace  Loc
namespace  logicalview
namespace  LoongArch
namespace  LoongArchABI
namespace  LoongArchII
namespace  LoongArchISD
namespace  LoongArchMatInt
namespace  lowertypetests
namespace  LPAC
namespace  LPCC
namespace  lsp
namespace  lto
namespace  M68k
 Define some predicates that are used for node matching.
namespace  M68kBeads
namespace  M68kII
 This namespace holds all of the target specific flags that instruction info tracks.
namespace  MachO
namespace  MachOYAML
namespace  mc
namespace  mca
namespace  MCD
namespace  mcdwarf
namespace  mcdxbc
namespace  MCID
namespace  MCOI
namespace  MCParserUtils
namespace  mdconst
 Transitional API for extracting constants from Metadata.
namespace  memprof
namespace  memtag
namespace  minidump
namespace  MinidumpYAML
namespace  MIPatternMatch
namespace  Mips
namespace  Mips16HardFloatInfo
namespace  MIPS_MC
namespace  MipsII
 MipsII - This namespace holds all of the target specific flags that instruction info tracks.
namespace  MipsISD
namespace  MISched
namespace  misexpect
namespace  ms_demangle
namespace  msf
namespace  msgpack
namespace  MSP430
namespace  MSP430Attrs
namespace  MSSAHelpers
namespace  mustache
namespace  N86
 Native X86 register numbers.
namespace  numbers
 Mathematical constants.
namespace  NVPTX
namespace  NVPTXAS
namespace  NVPTXCC
namespace  NVPTXII
namespace  NVPTXISD
namespace  nvvm
namespace  objcarc
namespace  objcopy
namespace  object
namespace  offloading
namespace  OffloadYAML
namespace  OMF
namespace  omp
namespace  opt
namespace  orc
namespace  ore
 Add a small namespace to avoid name clashes with the classes used in the streaming interface.
namespace  outliner
namespace  parallel
namespace  PatternMatch
namespace  PBQP
namespace  pdb
namespace  pgo
namespace  PICLevel
namespace  PICStyles
 The X86 backend supports a number of different styles of PIC.
namespace  PIELevel
namespace  pointer_union_detail
namespace  PPC
 Define some predicates that are used for node matching.
namespace  PPCII
 PPCII - This namespace holds all of the PowerPC target-specific per-instruction flags.
namespace  PPCISD
namespace  PPCMCExpr
namespace  R600
namespace  R600InstrFlags
namespace  RawInstrProf
namespace  rdf
namespace  reassociate
 A private "module" namespace for types and utilities used by Reassociate.
namespace  RegState
namespace  Reloc
namespace  remarks
namespace  RISCV
namespace  RISCVABI
namespace  RISCVAttrs
namespace  RISCVCC
namespace  RISCVExceptFlags
namespace  RISCVFeatures
namespace  RISCVFenceField
namespace  RISCVFPRndMode
namespace  RISCVII
namespace  RISCVInsnOpcode
namespace  RISCVISAUtils
namespace  RISCVISD
namespace  RISCVLoadFPImm
namespace  RISCVMatInt
namespace  RISCVOp
namespace  RISCVRI
namespace  RISCVRVC
namespace  RISCVSysReg
namespace  RISCVTuneInfoTable
namespace  RISCVVIntrinsicsTable
namespace  RISCVVInversePseudosTable
namespace  RISCVVPseudosTable
namespace  RISCVVType
namespace  RISCVVXRndMode
namespace  RISCVZC
namespace  RTLIB
namespace  safestack
namespace  sampleprof
namespace  sampleprofutil
namespace  sandboxir
namespace  ScaledNumbers
namespace  SCEVPatternMatch
namespace  Sched
namespace  SDPatternMatch
namespace  sframe
namespace  SharedLiveDebugValues
namespace  SI
namespace  SIEncodingFamily
namespace  SIInstrFlags
namespace  SIOutMods
namespace  SISched
namespace  SISrcMods
namespace  slpvectorizer
 A private "module" namespace for types and utilities used by this pass.
namespace  Sparc
namespace  SparcASITag
namespace  SparcPrefetchTag
namespace  SPCC
namespace  SPII
 SPII - This namespace holds all of the target specific flags that instruction info tracks.
namespace  SPIRV
namespace  support
namespace  SwitchCG
namespace  symbolize
namespace  SymbolRewriter
namespace  SyncScope
namespace  sys
namespace  SystemZ
namespace  SYSTEMZAS
namespace  SystemZCP
namespace  SystemZICMP
namespace  SystemZII
namespace  SystemZISD
namespace  SystemZMC
namespace  TableGen
namespace  TailPredication
namespace  TargetOpcode
 Invariant opcodes: All instruction sets have these as their low opcodes.
namespace  TargetStackID
namespace  telemetry
namespace  tgtok
namespace  ThinLTOCodeGeneratorImpl
 ThinLTOCodeGeneratorImpl - Namespace used for ThinLTOCodeGenerator implementation details.
namespace  ThreadModel
namespace  TLSModel
namespace  TPLoop
namespace  trailing_objects_internal
namespace  unittest
namespace  VE
namespace  VECC
namespace  VEII
 VEII - This namespace holds all of the Aurora VE target-specific per-instruction flags.
namespace  VEISD
namespace  VERD
namespace  VFABI
namespace  vfs
namespace  VNCoercion
namespace  VPlanPatternMatch
namespace  vputils
namespace  wasm
namespace  WasmYAML
namespace  WebAssembly
namespace  WebAssemblyII
namespace  WebAssemblyISD
namespace  wholeprogramdevirt
namespace  Win64EH
namespace  windows_manifest
namespace  WinEH
namespace  X86
 Define some predicates that are used for node matching.
namespace  X86_MC
namespace  X86AS
namespace  X86Disassembler
namespace  X86II
 X86II - This namespace holds all of the target specific flags that instruction info tracks.
namespace  X86ISD
namespace  XCOFF
namespace  XCOFFYAML
namespace  XCore
namespace  xray
namespace  Xtensa
namespace  XtensaCP
namespace  XtensaISD
namespace  yaml
namespace  ZeroCallUsedRegs

Classes

class  A57ChainingConstraint
 Add the accumulator chaining constraint to a PBQP graph. More...
struct  AAAddressSpace
 An abstract interface for address space information. More...
struct  AAAlign
 An abstract interface for all align attributes. More...
struct  AAAllocationInfo
struct  AAAssumptionInfo
 An abstract attribute for getting assumption information. More...
struct  AACacheLoc
 Cache key for BasicAA results. More...
class  AACallEdgeIterator
 An Iterator for call edges, creates AACallEdges attributes in a lazy way. More...
struct  AACallEdges
 An abstract state for querying live call edges. More...
struct  AACallGraphNode
struct  AADenormalFPMath
 An abstract Attribute for specializing "dynamic" components of "denormal-fp-math" and "denormal-fp-math-f32" to a known denormal mode. More...
struct  AADepGraph
 The data structure for the dependency graph. More...
struct  AADepGraphNode
 } More...
struct  AADereferenceable
 An abstract interface for all dereferenceable attribute. More...
class  AAEvaluator
struct  AAExecutionDomain
struct  AAGlobalValueInfo
 An abstract interface for llvm::GlobalValue information interference. More...
struct  AAHeapToStack
struct  AAIndirectCallInfo
 An abstract interface for indirect call information interference. More...
struct  AAInstanceInfo
 An abstract interface to track if a value leaves it's defining function instance. More...
struct  AAInterFnReachability
 An abstract Attribute for computing reachability between functions. More...
struct  AAIntraFnReachability
 An abstract interface to determine reachability of point A to B. More...
struct  AAInvariantLoadPointer
 An abstract interface for identifying pointers from which loads can be marked invariant. More...
struct  AAIsDead
 An abstract interface for liveness abstract attribute. More...
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...
struct  AAMemoryBehavior
 An abstract interface for memory access kind related attributes (readnone/readonly/writeonly). More...
struct  AAMemoryLocation
 An abstract interface for all memory location attributes (readnone/argmemonly/inaccessiblememonly/inaccessibleorargmemonly). More...
struct  AAMustProgress
 An abstract interface for all nonnull attributes. More...
struct  AANoAlias
 An abstract interface for all noalias attributes. More...
struct  AANoAliasAddrSpace
 An abstract interface for potential address space information. More...
struct  AANoCapture
 An abstract interface for all nocapture attributes. More...
struct  AANoFPClass
struct  AANoFree
 An AbstractAttribute for nofree. More...
struct  AANonConvergent
 An abstract Attribute for determining the necessity of the convergent attribute. More...
struct  AANonNull
 An abstract interface for all nonnull attributes. More...
struct  AANoRecurse
 An abstract attribute for norecurse. More...
struct  AANoReturn
 An AbstractAttribute for noreturn. More...
struct  AANoSync
struct  AANoUndef
 An abstract interface for all noundef attributes. More...
struct  AANoUnwind
struct  AAPointerInfo
 An abstract interface for struct information. More...
struct  AAPotentialConstantValues
 An abstract interface for potential values analysis. More...
struct  AAPotentialValues
struct  AAPrivatizablePtr
 An abstract interface for privatizability. More...
class  AAQueryInfo
 This class stores info we want to provide to or retain within an alias query. 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  AArch64AttributeParser
class  AArch64AuthMCExpr
class  AArch64beTargetMachine
struct  AArch64BuildAttrSubsections
class  AArch64CallLowering
class  AArch64Disassembler
class  AArch64EpilogueEmitter
 A helper class for emitting the epilogue. More...
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
class  AArch64leTargetMachine
struct  AArch64MCAsmInfoDarwin
struct  AArch64MCAsmInfoELF
struct  AArch64MCAsmInfoGNUCOFF
struct  AArch64MCAsmInfoMicrosoftCOFF
class  AArch64MCInstLower
 AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst. More...
class  AArch64PostRASchedStrategy
 A MachineSchedStrategy implementation for AArch64 post RA scheduling. More...
class  AArch64PrologueEmitter
 A helper class for emitting the prologue. 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 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...
struct  AAUndefinedBehavior
 An abstract attribute for undefined behavior. More...
struct  AAUnderlyingObjects
 An abstract attribute for getting all assumption underlying objects. More...
struct  AAValueConstantRange
 An abstract interface for range value analysis. More...
struct  AAValueSimplify
 An abstract interface for value simplify abstract attribute. More...
struct  AAWillReturn
 An abstract attribute for willreturn. More...
struct  AbstractAttribute
 Base struct for all "concrete attribute" deductions. More...
class  AbstractCallSite
 AbstractCallSite. More...
class  AbstractDependenceGraphBuilder
 This abstract builder class defines a set of high-level steps for creating DDG-like graphs. 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  AbstractSlotTrackerStorage
 Abstract interface of slot tracker storage. More...
struct  AbstractState
 An interface to query the internal state of an abstract attribute. 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  AccessAsInstructionInfo
 Helper for AA::PointerInfo::Access DenseMap/Set usage ignoring everythign but the instruction. More...
struct  ActiveBlocksOption
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_lvalue_reference_if_not_pointer
 If T is a pointer, just return it. If it is not, return T&. More...
class  AddDiscriminatorsPass
class  AddOperator
class  AddressPool
class  AddressProbesMap
class  AddressRange
 A class that represents an address range. More...
class  AddressRanges
 The AddressRanges class helps normalize address range collections. More...
class  AddressRangesBase
 The AddressRangesBase class presents the base functionality for the normalized address ranges collection. More...
class  AddressRangesMap
 AddressRangesMap class maps values to the address ranges. More...
class  AddressRangeValuePair
struct  AddressSanitizerOptions
class  AddressSanitizerPass
 Public interface to the address sanitizer module pass for instrumenting code to check for various memory errors. More...
class  AddrLabelMap
class  AddrSpaceCastInst
 This class represents a conversion between pointers from one address space to another. More...
class  AddrSpaceCastOperator
class  AddrSpaceCastSDNode
class  AdvisoryLock
 A synchronization primitive with weak mutual exclusion guarantees. More...
struct  AggregationData
class  AggressiveAntiDepBreaker
class  AggressiveAntiDepState
 Contains all the state necessary for anti-dep breaking. More...
class  AggressiveInstCombinePass
class  AIXException
struct  AliasMatchingData
 Tablegenerated data structures needed to match alias patterns. More...
struct  AliasPattern
 Data for each alias pattern. More...
struct  AliasPatternCond
class  AliasResult
 The possible results of an alias query. More...
class  AliasScopeNode
 This is a simple wrapper around an MDNode which provides a higher-level interface by hiding the details of how alias analysis information is encoded in its operands. More...
class  AliasSet
class  AliasSetsPrinterPass
class  AliasSetTracker
class  AliasSummary
 Alias summary information. More...
struct  Align
 This struct is a compact representation of a valid (non-zero power of two) alignment. More...
struct  AlignedCharArrayUnion
 A suitably aligned and sized character array member which can hold elements of any type. More...
struct  AlignmentFromAssumptionsPass
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...
struct  AllocaPackedValues
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...
struct  AllocInfo
 Summary of memprof metadata on allocations. 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...
struct  AMDGPUAlwaysInlinePass
class  AMDGPUAnnotateUniformValuesPass
class  AMDGPUArgumentUsageInfo
class  AMDGPUAsmPrinter
struct  AMDGPUAtomicOptimizerPass
struct  AMDGPUAttributorOptions
class  AMDGPUAttributorPass
class  AMDGPUCallLowering
class  AMDGPUCodeGenPreparePass
class  AMDGPUCombinerHelper
class  AMDGPUCtorDtorLoweringPass
 Lower llvm.global_ctors and llvm.global_dtors to special kernels. More...
class  AMDGPUDAGToDAGISel
 AMDGPU specific code to select AMDGPU machine instructions for SelectionDAG operations. More...
class  AMDGPUDAGToDAGISelLegacy
class  AMDGPUDisassembler
class  AMDGPUExportKernelRuntimeHandlesPass
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  AMDGPUGWSResourcePseudoSourceValue
struct  AMDGPUImageIntrinsicOptimizerPass
struct  AMDGPUInsertDelayAluPass
class  AMDGPUInstPrinter
class  AMDGPUInstructionSelector
class  AMDGPUISelDAGToDAGPass
class  AMDGPULateCodeGenPreparePass
class  AMDGPULegalizerInfo
class  AMDGPULibCalls
class  AMDGPULibFunc
 Wrapper class for AMDGPULIbFuncImpl. More...
class  AMDGPULibFuncBase
class  AMDGPULibFuncImpl
struct  AMDGPULowerBufferFatPointersPass
struct  AMDGPULowerIntrinsicsPass
class  AMDGPULowerKernelArgumentsPass
struct  AMDGPULowerKernelAttributesPass
struct  AMDGPULowerModuleLDSPass
class  AMDGPULowerVGPREncodingPass
class  AMDGPUMachineFunction
class  AMDGPUMachineModuleInfo
class  AMDGPUMangledLibFunc
class  AMDGPUMarkLastScratchLoadPass
class  AMDGPUMCAsmInfo
class  AMDGPUMCExpr
 AMDGPU target specific MCExpr operations. More...
class  AMDGPUMCInstLower
class  AMDGPUMIRFormatter
class  AMDGPUPassConfig
class  AMDGPUPerfHintAnalysis
struct  AMDGPUPerfHintAnalysisPass
class  AMDGPUPreloadKernArgPrologPass
class  AMDGPUPreloadKernelArgumentsPass
class  AMDGPUPrepareAGPRAllocPass
struct  AMDGPUPrintfRuntimeBindingPass
struct  AMDGPUPromoteAllocaPass
struct  AMDGPUPromoteAllocaToVectorPass
struct  AMDGPUPromoteKernelArgumentsPass
class  AMDGPUPseudoSourceValue
class  AMDGPURegisterBankInfo
class  AMDGPURemoveIncompatibleFunctionsPass
class  AMDGPUReserveWWMRegsPass
class  AMDGPUResourceUsageAnalysis
struct  AMDGPUResourceUsageAnalysisImpl
struct  AMDGPUResourceUsageAnalysisWrapperPass
class  AMDGPURewriteAGPRCopyMFMAPass
class  AMDGPURewriteUndefForPHIPass
class  AMDGPUSelectionDAGInfo
class  AMDGPUSetWavePriorityPass
struct  AMDGPUSimplifyLibCallsPass
class  AMDGPUSplitModulePass
 Splits the module M into N linkable partitions. More...
class  AMDGPUSubtarget
struct  AMDGPUSwLowerLDSPass
class  AMDGPUSymbolizer
class  AMDGPUTargetAsmStreamer
class  AMDGPUTargetELFStreamer
class  AMDGPUTargetLowering
class  AMDGPUTargetMachine
class  AMDGPUTargetObjectFile
class  AMDGPUTargetStreamer
class  AMDGPUTTIImpl
class  AMDGPUUnifyDivergentExitNodesPass
class  AMDGPUUnmangledLibFunc
struct  AMDGPUUseNativeCallsPass
class  AMDGPUWaitSGPRHazardsPass
struct  AnalysisGetter
 Wrapper for FunctionAnalysisManager. More...
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  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  Annotation2MetadataPass
 Pass to convert @llvm.global.annotations to !annotation metadata. More...
struct  AnnotationRemarksPass
class  Annotations
 Annotations lets you mark points and ranges inside source code, for tests: More...
struct  AnonStructTypeKeyInfo
class  AnonymousNameInit
 "anonymous_n" - Represent an anonymous record name More...
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  AnyCoroEndInst
class  AnyCoroIdInst
 This represents a common base class for llvm.coro.id instructions. More...
class  AnyCoroIdRetconInst
 This represents either the llvm.coro.id.retcon or llvm.coro.id.retcon.once instruction. More...
class  AnyCoroSuspendInst
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  APFixedPoint
 The APFixedPoint class works similarly to APInt/APSInt in that it is a functional replacement for a scaled integer. More...
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
 An arbitrary precision integer that knows its signedness. More...
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  ARCSelectionDAGInfo
class  ARCSubtarget
class  ARCTargetLowering
class  ARCTargetMachine
class  ARCTargetStreamer
class  ARCTTIImpl
struct  ArgDescriptor
struct  ArgInfo
 Helper struct shared between Function Specialization and SCCP Solver. More...
class  Argument
 This class represents an incoming formal argument to a Function. More...
class  ArgumentInit
class  ArgumentPromotionPass
 Argument promotion pass. More...
class  ARMAsmBackend
class  ARMAsmBackendDarwin
class  ARMAsmBackendELF
class  ARMAsmBackendWinCOFF
class  ARMAsmPrinter
class  ARMAttributeParser
class  ARMBankConflictHazardRecognizer
class  ARMBaseInstrInfo
class  ARMBaseRegisterInfo
class  ARMBaseTargetMachine
class  ARMBasicBlockUtils
class  ARMBETargetMachine
 ARM/Thumb big endian target machine. More...
class  ARMBlockPlacement
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  ARMHazardRecognizerFPMLx
class  ARMInstPrinter
class  ARMInstrInfo
class  ARMJITSymbolFlags
 ARM-specific JIT symbol flags. More...
class  ARMLegalizerInfo
class  ARMLETargetMachine
 ARM/Thumb little endian target machine. More...
class  ARMMCAsmInfoDarwin
class  ARMOverrideBypasses
 Post-process the DAG to create cluster edges between instrs that may be fused by the processor into a single operation. More...
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  ASanAccessInfo
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...
struct  AsmFieldInfo
class  AsmLexer
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...
struct  AsmTypeInfo
class  AssemblerConstantPools
class  AssemblyAnnotationWriter
class  AssertAlignSDNode
 An SDNode that records if a register contains a value that is guaranteed to be aligned accordingly. More...
class  AssertingVH
 Value handle that asserts if the Value is deleted. More...
class  AssignGUIDPass
 Assign a GUID to functions as metadata. More...
class  AssignmentTrackingAnalysis
class  AssignmentTrackingPass
 Convert @llvm.dbg.declare intrinsics into sets of @llvm.dbg.assign intrinsics by treating stores to the dbg.declare'd address as assignments to the variable. More...
struct  AssumeBuilderPass
 This pass will try to build an llvm.assume for every instruction in the function. More...
class  AssumeInst
 This represents the llvm.assume intrinsic. More...
struct  AssumeSimplifyPass
 This pass attempts to minimize the number of assume without loosing any information. 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  AtomicExpandPass
class  AtomicInfo
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  Attribute
 Functions, function parameters, and return types can have attributes to indicate how they should be treated by optimizations and code generation. More...
class  AttributeBitSet
class  AttributeImpl
 This class represents a single, uniqued attribute. More...
struct  AttributeLinkedOffsetFixup
class  AttributeListImpl
 This class represents a set of attributes that apply to the function, return type, and parameters. More...
class  AttributeMask
 This class stores enough information to efficiently remove some attributes from an existing AttrBuilder, AttributeSet or AttributeList. More...
class  AttributeSet
 This class holds the attributes for a particular argument, parameter, function, or return value. More...
class  AttributeSetNode
 This class represents a group of attributes that apply to one element: function, return type, or parameter. More...
struct  Attributor
 The fixpoint analysis framework that orchestrates the attribute deduction. More...
struct  AttributorCallGraph
struct  AttributorCGSCCPass
struct  AttributorConfig
 Configuration for the Attributor. More...
struct  AttributorLightCGSCCPass
 A more lightweight version of the Attributor which only runs attribute inference but no simplifications. More...
struct  AttributorLightPass
 A more lightweight version of the Attributor which only runs attribute inference but no simplifications. More...
struct  AttributorPass
 } More...
struct  AutoInitRemark
 Special case for -ftrivial-auto-var-init remarks. More...
class  Automaton
 A deterministic finite-state automaton. More...
class  AVRAsmBackend
 Utilities for manipulating generated AVR machine code. 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  AVRTTIImpl
class  BalancedPartitioning
struct  BalancedPartitioningConfig
 Algorithm parameters; default values are tuned on real-world binaries. More...
class  BaseIndexOffset
 Helper struct to parse and store a memory address as base + index + offset. More...
class  BaseRecord
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  BasicBlockPathCloning
class  BasicBlockSDNode
class  BasicBlockSectionsProfileReader
class  BasicBlockSectionsProfileReaderAnalysis
 Analysis pass providing the BasicBlockSectionsProfileReader. More...
class  BasicBlockSectionsProfileReaderWrapperPass
struct  BasicDIEUnit
struct  BasicSubtargetFeatureKV
struct  BasicSubtargetSubTypeKV
 Used to provide key value pairs for feature and CPU bit flags. More...
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...
class  BatchAAResults
 This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries. More...
struct  BBClusterInfo
class  BCArray
 Represents an array of some other type. More...
class  BCBlob
 Represents an untyped blob of bytes. More...
class  BCBlockRAII
 RAII object to pair entering and exiting a sub-block. More...
class  BCChar6
 Represents a character encoded in LLVM's Char6 encoding. More...
struct  BCDumpOptions
class  BCFixed
 Represents a fixed-width value in a bitcode record. More...
class  BCGenericRecordLayout
 Represents a single bitcode record type. More...
class  BCLiteral
 Represents a literal operand in a bitcode record. More...
class  BCRecordLayout
 A record with a fixed record code. More...
class  BCVBR
 Represents a variable-width value in a bitcode record. 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  BinaryInstrProfCorrelator
 BinaryInstrProfCorrelator - A child of InstrProfCorrelatorImpl that takes an object file as input to correlate profiles. 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< codeview::CVType >
struct  BinaryItemTraits< llvm::codeview::CVType >
class  BinaryOperation
 Class representing a single binary operation in the AST of an expression. More...
class  BinaryOperator
class  BinaryOpIntrinsic
 This class represents an intrinsic that is based on a binary operation. More...
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...
class  BitcodeAnalyzer
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...
struct  Bitfield
 Holds functions to get, set or test bitfields. More...
class  BitInit
 'true'/'false' - Represent a concrete initializer for a bit. More...
struct  BitIntegerState
 Specialization of the integer state for a bit-wise encoding. 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  Bitset
 This is a constexpr reimplementation of a subset of std::bitset. 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  BLAKE3
 A class that wraps the BLAKE3 algorithm. More...
class  BlockAddress
 The address of a basic block. More...
class  BlockAddressSDNode
class  BlockCoverageInference
class  BlockDataT
struct  BlockExtractorPass
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  BlockToIndexMapping
class  BlotMapVector
 An associative container with fast insertion-order (deterministic) iteration over its elements. More...
struct  BooleanState
 Simple wrapper for a single bit (boolean) state. More...
class  BoundsCheckingPass
 A pass to instrument code and perform run-time bounds checking on loads, stores, and other memory intrinsics. More...
class  BPFAbstractMemberAccessPass
class  BPFAdjustOptPass
class  BPFAsmPrinter
class  BPFASpaceCastSimplifyPass
class  BPFCallLowering
class  BPFCoreSharedInfo
class  BPFFrameLowering
class  BPFGenRegisterBankInfo
class  BPFInstPrinter
class  BPFInstrInfo
class  BPFIRPeepholePass
class  BPFLegalizerInfo
 This class provides the information for the BPF target legalizer for GlobalISel. More...
class  BPFMCAsmInfo
class  BPFMCInstLower
class  BPFPreserveDITypePass
class  BPFPreserveStaticOffsetPass
class  BPFRegisterBankInfo
struct  BPFRegisterInfo
class  BPFSelectionDAGInfo
class  BPFSubtarget
class  BPFTargetLowering
class  BPFTargetLoweringObjectFileELF
class  BPFTargetMachine
class  BPFTTIImpl
class  BPFunctionNode
 A function with a set of utility nodes where it is beneficial to order two functions close together if they have similar utility nodes. More...
struct  BPIPassTrait
 Simple trait class that provides a mapping between BPI passes and the corresponding BPInfo. More...
struct  BPIPassTrait< LazyBranchProbabilityInfoPass >
class  BranchFolder
class  BranchFolderPass
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...
class  BranchRelaxationPass
struct  BreakCriticalEdgesPass
class  BreakFalseDeps
 A broken link in the keep chain. More...
class  BTFContext
class  BTFDebug
 Collect and emit BTF information. More...
struct  BTFFieldReloc
 Represent one field relocation. More...
struct  BTFFuncInfo
 Represent one func and its type id. More...
class  BTFKindDataSec
 Handle data sections. More...
class  BTFKindVar
 Handle variable instances. More...
struct  BTFLineInfo
 Represent one line info. More...
class  BTFParser
class  BTFStringTable
 String table. More...
class  BTFTypeArray
 Handle array type. More...
class  BTFTypeBase
 The base class for BTF type generation. More...
class  BTFTypeDeclTag
 Handle decl tags. More...
class  BTFTypeDerived
 Handle several derived types include pointer, const, volatile, typedef and restrict. More...
class  BTFTypeEnum
 Handle enumerate type. More...
class  BTFTypeEnum64
 Handle 64-bit enumerate type. More...
class  BTFTypeFloat
 Handle binary floating point 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  BTFTypeTypeTag
class  buffer_ostream
class  buffer_unique_ostream
class  BufferByteStreamer
struct  BuildAttributeItem
struct  BuildAttributeSubSection
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  ByteProvider
 Represents known origin of an individual byte in combine pattern. More...
class  ByteStreamer
class  CacheCost
 CacheCost represents the estimated cost of a inner loop as the number of cache lines used by the memory references it contains. More...
class  CachedFileStream
 This class wraps an output stream for a file. More...
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...
struct  CalculateSmallVectorDefaultInlinedElements
 Helper class for calculating the default number of inline elements for SmallVector<T>. 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  CallBrInst
 CallBr instruction, tracking function calls that may not return control but instead transfer it to a third location. More...
class  CallBrPreparePass
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  CallGraphDOTInfo
class  CallGraphDOTPrinterPass
 Pass for printing the call graph to a dot file. 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  CallGraphSCCsPrinterPass
 Printer pass for the summarized CallGraphAnalysis results. More...
class  CallGraphUpdater
 Wrapper to unify "old style" CallGraph and "new style" LazyCallGraph. More...
class  CallGraphViewerPass
 Pass for viewing the call graph. More...
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
struct  CallSiteFormat
struct  CallsiteInfo
 Summary of memprof callsite metadata. More...
struct  CallSiteSplittingPass
class  CanonicalizeAliasesPass
 Simple pass that canonicalizes aliases. More...
class  CanonicalizeFreezeInLoopsPass
 A pass that canonicalizes freeze instructions in a loop. More...
struct  CaptureAnalysis
 Virtual base class for providers of capture analysis. More...
class  CaptureInfo
 Represents which components of the pointer may be captured in which location. 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_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  CastConstantExpr
 CastConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement cast constant exprs. More...
struct  CastInfo
 This struct provides a method for customizing the way a cast is performed. More...
struct  CastInfo< To, const PointerUnion< PTs... > >
struct  CastInfo< To, From, std::enable_if_t<!is_simple_type< From >::value > >
 This struct provides an overload for CastInfo where From has simplify_type defined. More...
struct  CastInfo< To, PointerUnion< PTs... > >
struct  CastInfo< To, std::optional< From > >
 Provide a CastInfo specialized for std::optional<From>. More...
struct  CastInfo< To, std::unique_ptr< From > >
 Provide a CastInfo specialized for std::unique_ptr. More...
struct  CastInfo< VPPhiAccessors, const VPRecipeBase * >
struct  CastInfo< VPPhiAccessors, VPRecipeBase * >
struct  CastInfoVPPhiAccessors
 Support casting from VPRecipeBase -> VPPhiAccessors, by down-casting to the recipe types implementing VPPhiAccessors. More...
class  CastInst
 This is the base class for all instructions that perform data casts. More...
struct  CastIsPossible
 This struct provides a way to check if a given cast is possible. More...
struct  CastIsPossible< To, From, std::enable_if_t< std::is_base_of_v< To, From > > >
 Upcasting (from derived to base) and casting from a type to itself should always be possible. More...
struct  CastIsPossible< To, std::optional< From > >
struct  CastIsPossible< VPPhiAccessors, const VPRecipeBase * >
 Casting from VPRecipeBase -> VPPhiAccessors is supported for all recipe types implementing VPPhiAccessors. 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  CFGSCCPrinterPass
class  CFGuardPass
class  CFGViewerPass
class  CFIFixup
class  CFIFunctionFrameAnalyzer
 This class implements the CFIFunctionFrameReceiver interface to validate Call Frame Information in a stream of function frames. More...
class  CFIFunctionFrameReceiver
 This abstract base class is an interface for receiving DWARF function frames Call Frame Information. More...
class  CFIFunctionFrameStreamer
 This class is an MCStreamer implementation that watches for machine instructions and CFI directives. More...
class  CfiFunctionIndex
class  CFIInstBuilder
 Helper class for creating CFI instructions and inserting them into MIR. More...
class  CGDataError
class  CGDataOStream
 A wrapper class to abstract writer stream with support of bytes back patching. More...
struct  CGDataPatchItem
 A struct to define how the data stream should be patched. More...
struct  CGPassBuilderOption
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 infrastructure. More...
class  ChangeReporter
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  Clause
class  CleanupInstaller
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  ClusteredLowOccStage
class  CmpInst
 This class is the base class for the comparison instructions. More...
class  CmpIntrinsic
 This class represents a ucmp/scmp intrinsic. More...
class  CmpPredicate
 An abstraction over a floating-point predicate, and a pack of an integer predicate with samesign information. More...
class  CoalescerPair
 A helper class for register coalescers. More...
class  CoalescingBitVector
 A bitvector that, under the hood, relies on an IntervalMap to coalesce elements into intervals. More...
class  CodeExtractor
 Utility class for extracting code into a new function. More...
class  CodeExtractorAnalysisCache
 A cache for the CodeExtractor analysis. More...
class  CodeGenCoverage
class  CodeGenData
class  CodeGenDataReader
class  CodeGenDataWriter
class  CodeGenPassBuilder
 This class provides access to building LLVM's passes. More...
class  CodeGenPreparePass
class  CodeGenTargetMachineImpl
 implements a set of functionality in the TargetMachine class for targets that make use of the independent code generator (CodeGen) library. More...
struct  CodeMetrics
 Utility to calculate the size and a few similar metrics for a set of basic blocks. 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  CollectorMetadataAnalysis
 An analysis pass which caches information about the entire Module. More...
class  CombinationGenerator
class  Combiner
 Combiner implementation. More...
class  CombinerHelper
struct  CombinerInfo
class  Comdat
struct  CommonHandleTraits
struct  CommonPointerBase
struct  CompileUnitIdentifiers
struct  ComplexDeinterleavingPass
struct  CompSpillWeight
class  concat_iterator
 Iterator wrapper that concatenates sequences together. More...
class  ConcreteOperator
 A helper template for defining operators for individual opcodes. More...
class  ConcurrentHashTableByPtr
class  ConcurrentHashTableInfoByPtr
 ConcurrentHashTable - is a resizeable concurrent hashtable. More...
class  CondCodeSDNode
struct  CondContext
 Evaluate query assuming this condition holds. More...
class  CondOpInit
 !cond(condition_1: value1, ... , condition_n: value) Selects the first value for which condition is true. More...
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
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  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 half/bfloat/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  ConstantFP
 ConstantFP - Floating Point Values [float, double]. More...
class  ConstantFPRange
 This class represents a range of floating-point values. More...
class  ConstantFPSDNode
class  ConstantHoistingPass
struct  ConstantInfo
struct  ConstantInfo< ConstantArray >
struct  ConstantInfo< ConstantExpr >
struct  ConstantInfo< ConstantPtrAuth >
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  ConstantPtrAuth
 A signed pointer, in the ptrauth sense. More...
struct  ConstantPtrAuthKeyType
class  ConstantRange
 This class represents a range of values. More...
class  ConstantRangeAttributeImpl
class  ConstantRangeList
 This class represents a list of constant ranges. More...
class  ConstantRangeListAttributeImpl
class  ConstantSDNode
class  ConstantStruct
class  ConstantTargetNone
 A constant target extension type default initializer. More...
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  ConstrainedFPCmpIntrinsic
 Constrained floating point compare intrinsics. More...
class  ConstrainedFPIntrinsic
 This is the common base class for constrained floating point intrinsics. More...
class  ConstraintEliminationPass
class  ConstraintSystem
struct  ConstStrippingForwardingCast
 Provides a cast trait that strips const from types to make it easier to implement a const-version of a non-const cast. More...
class  ContextAndReplaceableUses
 Pointer to the context, with optional RAUW support. More...
struct  ContextTotalSize
class  ContextTrieNode
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...
struct  ContextWorklistItem
 This class represents an item in the work list. More...
struct  ControlFlowHub
 Given a set of branch descriptors [BB, Succ0, Succ1], create a "hub" such that the control flow from each BB to a successor is now split into two edges, one from BB to the hub and another from the hub to the successor. More...
class  ControlHeightReductionPass
class  ConvergenceControlInst
 Represents calls to the llvm.experimintal.convergence.* intrinsics. More...
class  ConvergingVLIWScheduler
class  CoroAlignInst
 This represents the llvm.coro.align instruction. More...
class  CoroAllocaAllocInst
 This represents the llvm.coro.alloca.alloc instruction. More...
class  CoroAllocaFreeInst
 This represents the llvm.coro.alloca.free instruction. More...
class  CoroAllocaGetInst
 This represents the llvm.coro.alloca.get instruction. More...
class  CoroAllocInst
 This represents the llvm.coro.alloc instruction. More...
struct  CoroAnnotationElidePass
class  CoroAsyncContextAllocInst
 This represents the llvm.coro.context.alloc instruction. More...
class  CoroAsyncContextDeallocInst
 This represents the llvm.coro.context.dealloc instruction. More...
class  CoroAsyncEndInst
 This represents the llvm.coro.end instruction. More...
class  CoroAsyncResumeInst
 This represents the llvm.coro.async.resume instruction. More...
class  CoroAsyncSizeReplace
 This represents the llvm.coro.async.size.replace instruction. More...
class  CoroAwaitSuspendInst
 This represents the llvm.coro.await.suspend.{void,bool,handle} instructions. More...
class  CoroBeginInst
 This class represents the llvm.coro.begin or llvm.coro.begin.custom.abi instructions. More...
struct  CoroCleanupPass
struct  CoroConditionalWrapper
struct  CoroEarlyPass
struct  CoroElidePass
class  CoroEndInst
 This represents the llvm.coro.end instruction. More...
class  CoroEndResults
 This represents the llvm.end.results instruction. More...
class  CoroFrameInst
 This represents the llvm.coro.frame instruction. More...
class  CoroFreeInst
 This represents the llvm.coro.free instruction. More...
class  CoroIdAsyncInst
 This represents the llvm.coro.id.async instruction. More...
class  CoroIdInst
 This represents the llvm.coro.id instruction. More...
class  CoroIdRetconInst
 This represents the llvm.coro.id.retcon instruction. More...
class  CoroIdRetconOnceInst
 This represents the llvm.coro.id.retcon.once 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...
struct  CoroSplitPass
class  CoroSubFnInst
 This class represents the llvm.coro.subfn.addr instruction. More...
class  CoroSuspendAsyncInst
 This represents the llvm.coro.suspend.async instruction. More...
class  CoroSuspendInst
 This represents the llvm.coro.suspend instruction. More...
class  CoroSuspendRetconInst
 This represents the llvm.coro.suspend.retcon instruction. More...
struct  CorrelatedValuePropagationPass
class  CostBenefitPair
class  CostModelPrinterPass
 Printer pass for cost modeling results. More...
struct  CostTblEntryT
 Cost Table Entry. More...
struct  CountSumOrPercent
struct  CountVisitsPass
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...
struct  CRCTable
 A custom std::array with 256 entries, that also has a print function. More...
class  CriticalAntiDepBreaker
struct  CriticalEdgeSplittingOptions
 Option class for critical edge splitting. More...
class  CrossDSOCFIPass
struct  CryptContextTraits
class  CSEConfigBase
class  CSEConfigConstantOnly
class  CSEConfigFull
class  CSEMIRBuilder
 Defines a builder that does CSE of MachineInstructions using GISelCSEInfo. More...
class  CSKYAsmBackend
class  CSKYAsmPrinter
class  CSKYAttributeParser
class  CSKYConstantPool
class  CSKYConstantPoolConstant
 CSKY-specific constant pool values for Constants, Functions, and BlockAddresses. More...
class  CSKYConstantPoolJT
 CSKY-specific constantpool value of a jump table. More...
class  CSKYConstantPoolMBB
 CSKYConstantPoolMBB - CSKY-specific constantpool value of a machine basic block. More...
class  CSKYConstantPoolSymbol
 CSKYConstantPoolSymbol - CSKY-specific constantpool values for external symbols. More...
class  CSKYConstantPoolValue
 CSKYConstantPoolValue - CSKY specific constantpool value. More...
class  CSKYELFStreamer
class  CSKYELFTargetObjectFile
class  CSKYFrameLowering
class  CSKYInstPrinter
class  CSKYInstrInfo
class  CSKYMachineFunctionInfo
class  CSKYMCAsmInfo
class  CSKYMCInstLower
class  CSKYRegisterInfo
class  CSKYSelectionDAGInfo
class  CSKYSubtarget
class  CSKYTargetAsmStreamer
class  CSKYTargetELFStreamer
class  CSKYTargetLowering
class  CSKYTargetMachine
class  CSKYTargetStreamer
class  CtxProfAnalysis
class  CtxProfAnalysisPrinterPass
struct  CxxUnwindMapEntry
class  CycleAnalysis
 Analysis pass which computes a CycleInfo. More...
struct  CycleGraphTraits
 GraphTraits for iterating over a sub-tree of the CycleT tree. More...
class  CycleInfoPrinterPass
struct  CycleInfoVerifierPass
class  CycleInfoWrapperPass
 Legacy analysis pass which computes a CycleInfo. More...
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  DataDependenceGraph
 Data Dependency Graph. More...
class  DataExtractor
class  DataFlowSanitizerPass
class  DataLayout
 A parsed version of the target data layout string in and methods for querying it. More...
class  DbgAssignIntrinsic
 This represents the llvm.dbg.assign instruction. More...
class  DbgCallSiteParam
 Used for tracking debug info about call site parameters. 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  DbgLabelRecord
 Records a position in IR for a source label (DILabel). More...
class  DbgMarker
 Per-instruction record of debug-info. More...
struct  DbgRangeEntry
class  DbgRecord
 Base class for non-instruction debug metadata records that have positions within IR. More...
class  DbgRecordParamRef
 A typed tracking MDNode reference that does not require a definition for its parameter type. More...
class  DbgSSABlock
class  DbgSSABlockPredIterator
 Thin wrapper around a block successor iterator. More...
class  DbgSSABlockSuccIterator
 Thin wrapper around a block successor iterator. More...
class  DbgSSAPhi
 Represents the live-in definitions of a variable to a block with multiple predecessors. More...
struct  DbgValueDef
 A definition of a variable; can represent either a debug value, no definition (the variable has not yet been defined), or a phi value*. More...
class  DbgValueHistoryMap
 For each user variable, keep a list of instruction ranges where this variable is accessible. More...
class  DbgValueInst
 This represents the llvm.dbg.value instruction. More...
class  DbgValueLoc
 The location of a single variable, composed of an expression and 0 or more DbgValueLocEntries. More...
class  DbgValueLocEntry
 A single location or constant within a variable location description, with either a single entry (with an optional DIExpression) used for a DBG_VALUE, or a list of entries used for a DBG_VALUE_LIST. More...
class  DbgValueRangeTable
 Utility class used to find and store the live debug ranges for variables in a module. More...
class  DbgVariable
 This class is used to track local variable information. More...
struct  DbgVariableFragmentInfo
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  DbgVariableRecord
 Record of a variable value-assignment, aka a non instruction representation of the dbg.value intrinsic. More...
class  DCData
class  DCEPass
 Basic Dead Code Elimination pass. More...
class  DDGAnalysis
 Analysis pass that builds the DDG for a loop. More...
class  DDGAnalysisPrinterPass
 Textual printer pass for the DDG of a loop. More...
class  DDGBuilder
 Concrete implementation of a pure data dependence graph builder. More...
class  DDGDotPrinterPass
class  DDGEdge
 Data Dependency Graph Edge. More...
class  DDGNode
 Data Dependence Graph Node The graph can represent the following types of nodes: More...
class  DeadArgumentEliminationPass
 Eliminate dead arguments (and return values) from functions. More...
class  DeadLaneDetector
class  DeadMachineInstructionElimPass
class  DebugAssignmentTrackingAnalysis
class  DebugAssignmentTrackingPrinterPass
class  DebugCounter
class  DebugEpochBase
class  DebugHandlerBase
 Base class for debug information backends. More...
class  DebugifyCustomPassManager
 DebugifyCustomPassManager wraps each pass with the debugify passes if needed. More...
class  DebugifyEachInstrumentation
class  DebuginfodCollection
 Tracks a collection of debuginfod artifacts on the local filesystem. More...
class  DebuginfodFetcher
class  DebuginfodLog
struct  DebuginfodLogEntry
struct  DebuginfodServer
class  DebugInfoFinder
 Utility to find all debug info in a module. More...
struct  DebugInfoSize
 Hold the input and output of the debug info size in bytes. 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...
class  DebugNamesAbbrev
class  DebugSSAUpdater
 Class used to determine the live ranges of debug variables in IR using SSA construction (via the SSAUpdaterImpl class), used for analysis purposes. More...
class  DebugValueUser
 Base class for tracking ValueAsMetadata/DIArgLists with user lookups and Owner callbacks outside of ValueAsMetadata. More...
class  DebugVariable
 Identifies a unique instance of a variable. More...
class  DebugVariableAggregate
 Identifies a unique instance of a whole variable (discards/ignores fragment information). More...
struct  decimalInfo
struct  DecIntegerState
 Specialization of the integer state for a decreasing value, hence 0 is the best state and ~0u the worst. More...
class  DeclareRuntimeLibcallsPass
struct  DecomposedBitTest
 Represents the operation icmp (X & Mask) pred C, where pred can only be eq or ne. More...
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  DefaultDoCastIfPossible
 This cast trait just provides the default implementation of doCastIfPossible to make CastInfo specializations more declarative. More...
struct  DefaultDOTGraphTraits
 DefaultDOTGraphTraits - This class provides the default implementations of all of the DOTGraphTraits methods. More...
class  DefaultEvictionAdvisor
struct  DefaultFoldingSetTrait
 DefaultFoldingSetTrait - This class provides default implementations for FoldingSetTrait implementations. More...
class  DefaultInlineAdvice
class  DefaultInlineAdvisor
 The default (manual heuristics) implementation of the InlineAdvisor. More...
class  DefaultPriorityAdvisor
class  DefaultVLIWScheduler
class  DefInit
 AL - Represent a reference to a 'def' in the description. More...
struct  DefinitionAndSourceRegister
 Simple struct used to hold a Register value and the instruction which defines it. More...
struct  DefsetRecord
class  DelayedMCExprs
struct  DelimitedScope
struct  DelinearizationPrinterPass
class  DeltaAlgorithm
 DeltaAlgorithm - Implements the delta debugging algorithm (A. More...
class  DeltaTree
 DeltaTree - a multiway search tree (BTree) structure with some fancy features. More...
class  DemandedBits
class  DemandedBitsAnalysis
 An analysis that produces DemandedBits for a function. More...
class  DemandedBitsPrinterPass
 Printer pass for DemandedBits. More...
struct  DenormalFPMathState
struct  DenormalMode
 Represent subnormal handling kind for floating point instruction inputs and outputs. More...
class  DenseMap
class  DenseMapBase
struct  DenseMapInfo
 An information struct used to provide DenseMap with the various necessary components for a given value type T. More...
struct  DenseMapInfo< AA::RangeTy >
 Helper that allows RangeTy as a key in a DenseMap. More...
struct  DenseMapInfo< AA::ValueAndContext >
struct  DenseMapInfo< AA::ValueScope >
struct  DenseMapInfo< AACacheLoc >
struct  DenseMapInfo< AAMDNodes >
struct  DenseMapInfo< AAPointerInfo::Access >
 Helper for AA::PointerInfo::Access DenseMap/Set usage. More...
struct  DenseMapInfo< APFixedPoint >
struct  DenseMapInfo< APFloat >
struct  DenseMapInfo< APInt, void >
 Provide DenseMapInfo for APInt. More...
struct  DenseMapInfo< APSInt, void >
 Provide DenseMapInfo for APSInt, using the DenseMapInfo for APInt. More...
struct  DenseMapInfo< ArrayRef< T >, void >
struct  DenseMapInfo< AssertingVH< T > >
struct  DenseMapInfo< at::VarRecord >
struct  DenseMapInfo< Attribute::AttrKind >
struct  DenseMapInfo< AttributeSet, void >
 Provide DenseMapInfo for AttributeSet. More...
struct  DenseMapInfo< BasicBlock::iterator >
struct  DenseMapInfo< BasicBlockEdge >
struct  DenseMapInfo< BitVector >
struct  DenseMapInfo< BoUpSLP::EdgeInfo >
struct  DenseMapInfo< CachedHashString >
struct  DenseMapInfo< CachedHashStringRef >
struct  DenseMapInfo< CallValue >
struct  DenseMapInfo< cas::CASID >
struct  DenseMapInfo< cas::ObjectRef >
struct  DenseMapInfo< char >
struct  DenseMapInfo< codeview::GloballyHashedType >
struct  DenseMapInfo< codeview::LocallyHashedType >
struct  DenseMapInfo< codeview::TypeIndex >
struct  DenseMapInfo< CodeViewDebug::LocalVarDef >
struct  DenseMapInfo< ComplexValue >
struct  DenseMapInfo< const AA::InstExclusionSetTy * >
struct  DenseMapInfo< const Expression * >
struct  DenseMapInfo< const SwitchSuccWrapper * >
struct  DenseMapInfo< coverage::CounterExpression >
 Provide DenseMapInfo for CounterExpression. More...
struct  DenseMapInfo< CSKYTargetStreamer::SymbolIndex >
struct  DenseMapInfo< DebugVariable >
struct  DenseMapInfo< DebugVariableAggregate >
struct  DenseMapInfo< DIExpression::FragmentInfo >
struct  DenseMapInfo< DivRemMapKey >
struct  DenseMapInfo< ElementCount, void >
struct  DenseMapInfo< Enum, std::enable_if_t< std::is_enum_v< Enum > > >
struct  DenseMapInfo< FixedPointSemantics >
struct  DenseMapInfo< FrozenIndPHIInfo >
struct  DenseMapInfo< FunctionSummary::ConstVCall >
struct  DenseMapInfo< FunctionSummary::VFuncId >
struct  DenseMapInfo< GEPValue >
struct  DenseMapInfo< gsym::FileEntry >
struct  DenseMapInfo< GVNPass::Expression >
struct  DenseMapInfo< hash_code, void >
struct  DenseMapInfo< ImmutableList< T >, void >
struct  DenseMapInfo< IndexCall >
struct  DenseMapInfo< IRPosition >
 Helper that allows IRPosition as a key in a DenseMap. More...
struct  DenseMapInfo< LLT >
struct  DenseMapInfo< llvm::SmallVector< T, N > >
struct  DenseMapInfo< llvm::sys::fs::UniqueID >
struct  DenseMapInfo< LocationSize >
struct  DenseMapInfo< LocIdx >
struct  DenseMapInfo< LoweredPHIRecord >
struct  DenseMapInfo< MachineOperand >
struct  DenseMapInfo< MBBSectionID >
struct  DenseMapInfo< MCRegister >
struct  DenseMapInfo< MemOpKey >
 Provide DenseMapInfo for MemOpKey. More...
struct  DenseMapInfo< MemoryLocation >
struct  DenseMapInfo< MemoryLocOrCall >
struct  DenseMapInfo< minidump::StreamType >
struct  DenseMapInfo< object::SectionRef >
struct  DenseMapInfo< OffsetAndUnitID >
struct  DenseMapInfo< omp::TraitProperty >
struct  DenseMapInfo< orc::AllocGroup >
struct  DenseMapInfo< orc::ExecutorAddr >
struct  DenseMapInfo< orc::MemProt >
struct  DenseMapInfo< orc::NonOwningSymbolStringPtr >
struct  DenseMapInfo< orc::SymbolStringPtr >
struct  DenseMapInfo< PointerEmbeddedInt< IntT, Bits > >
struct  DenseMapInfo< PointerIntPair< PointerTy, IntBits, IntType >, void >
struct  DenseMapInfo< PointerSumType< TagT, MemberTs... > >
struct  DenseMapInfo< PointerUnion< PTs... > >
struct  DenseMapInfo< PoisoningVH< T > >
struct  DenseMapInfo< ReachabilityQueryInfo< ToTy > * >
struct  DenseMapInfo< Register >
struct  DenseMapInfo< SampleContext >
struct  DenseMapInfo< sampleprof::FunctionId, void >
 Template specialization for FunctionId so that it can be used in LLVM map containers. More...
struct  DenseMapInfo< sandboxir::Context::CallbackID >
struct  DenseMapInfo< ScalarEvolution::FoldID >
struct  DenseMapInfo< SDValue >
struct  DenseMapInfo< SimpleValue >
struct  DenseMapInfo< SlotWithTag >
struct  DenseMapInfo< SmallBitVector >
struct  DenseMapInfo< SmallVector< sandboxir::Value * > >
 Traits for DenseMap. More...
struct  DenseMapInfo< SpecSig >
struct  DenseMapInfo< std::optional< T > >
struct  DenseMapInfo< std::pair< const MCSymbol *, PPCMCExpr::Specifier > >
struct  DenseMapInfo< std::pair< T, U > >
struct  DenseMapInfo< std::tuple< Ts... > >
struct  DenseMapInfo< std::variant< Ts... > >
struct  DenseMapInfo< StringRef, void >
struct  DenseMapInfo< SymbolsMapKey >
struct  DenseMapInfo< T * >
struct  DenseMapInfo< T, std::enable_if_t< std::is_integral_v< T > &&!std::is_same_v< T, char > > >
struct  DenseMapInfo< TargetInstrInfo::RegSubRegPair >
 Provide DenseMapInfo for TargetInstrInfo::RegSubRegPair. More...
struct  DenseMapInfo< typename CallsiteContextGraph< IndexCallsiteContextGraph, FunctionSummary, IndexCall >::CallInfo >
struct  DenseMapInfo< typename CallsiteContextGraph< ModuleCallsiteContextGraph, Function, Instruction * >::CallInfo >
struct  DenseMapInfo< UniqueBBID >
struct  DenseMapInfo< ValueIDNum >
struct  DenseMapInfo< ValueInfo >
struct  DenseMapInfo< ValueMapCallbackVH< KeyT, ValueT, Config > >
struct  DenseMapInfo< VariableID >
struct  DenseMapInfo< VersionTuple >
struct  DenseMapInfo< VTableSlot >
struct  DenseMapInfo< VTableSlotSummary >
struct  DenseMapInfo< wasm::WasmGlobalType, void >
struct  DenseMapInfo< wasm::WasmLimits, void >
struct  DenseMapInfo< wasm::WasmSignature, void >
struct  DenseMapInfo< wasm::WasmTableType, void >
struct  DenseMapInfo< WeakVH >
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  DependenceGraphInfo
 Encapsulate some common data and functionality needed for different variations of data dependence graphs. 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...
struct  DerefState
 State for dereferenceable attribute. More...
class  DerivedUser
 Extension point for the Value hierarchy. More...
struct  DescriptorInfo
struct  DestSourcePair
class  DetectDeadLanesPass
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 >
struct  DFAJumpThreadingPass
class  DFAPacketizer
class  DFCalculateWorkObject
class  DGEdge
 Represent an edge in the directed graph. More...
class  DGNode
 Represent a node in the directed graph. More...
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  DiagnosticInfoDontCall
class  DiagnosticInfoGeneric
class  DiagnosticInfoGenericWithLoc
 Diagnostic information for stripping invalid debug metadata. More...
class  DiagnosticInfoInlineAsm
 Diagnostic information for inline asm reporting. More...
class  DiagnosticInfoInstrumentation
 Diagnostic information for IR instrumentation 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  DiagnosticInfoLegalizationFailure
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  DiagnosticInfoMisExpect
 Diagnostic information for MisExpect analysis. 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  DiagnosticInfoRegAllocFailure
class  DiagnosticInfoResourceLimit
 Diagnostic information for stack size etc. More...
class  DiagnosticInfoSampleProfile
 Diagnostic information for the sample profiler. More...
class  DiagnosticInfoSrcMgr
 Diagnostic information for SMDiagnostic reporting. 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  DIArgList
 List of ValueAsMetadata, to be used as an argument to a dbg.value intrinsic. More...
struct  DIArgListInfo
 DenseMapInfo for DIArgList. More...
struct  DIArgListKeyInfo
class  DIAssignID
 Assignment ID. More...
class  DIBasicType
 Basic type, like 'int' or 'float'. More...
class  DIBuilder
class  DICommonBlock
 Debug common block. More...
class  DICompileUnit
 Compile unit. More...
class  DICompositeType
 Composite types. More...
class  DIContext
struct  DictScope
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  DIEAddrOffset
 A BaseTypeRef DIE. More...
class  DIEBaseTypeRef
 A BaseTypeRef DIE. 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...
class  DIFixedPointType
 Fixed-point type. More...
class  DIGenericSubrange
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
 Debug lexical block. More...
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...
struct  DILocal
class  DILocalScope
 A scope for locals. More...
class  DILocalVariable
 Local variable. More...
class  DILocation
 Debug location. More...
class  DIMacro
 Macro. More...
class  DIMacroFile
 Macro file. More...
class  DIMacroNode
 Macro Info DWARF-like metadata node. More...
class  DIModule
 Represents a module in the programming language, for example, a Clang module, or a Fortran module. More...
class  DINamespace
 Debug lexical block. More...
class  DINode
 Tagged DWARF-like metadata node. More...
class  DIObjCProperty
class  DirectedGraph
 Directed graph. More...
class  Directive
class  DirectiveLanguage
class  DirectXFrameLowering
struct  DirectXInstrInfo
struct  DirectXRegisterInfo
class  DirectXSubtarget
class  DirectXTargetLowering
class  DirectXTargetMachine
class  DirectXTTIImpl
struct  DisableLIRP
 Options to disable Loop Idiom Recognize, which can be shared with other passes. More...
class  DIScope
 Base class for scope-like contexts. More...
class  DistinctMDOperandPlaceholder
 Placeholder metadata for operands of distinct MDNodes. More...
class  DIStringType
 String type, Fortran CHARACTER(n) More...
class  DISubprogram
 Subprogram description. Uses SubclassData1. More...
class  DISubrange
 Array subrange. More...
class  DISubrangeType
 Subrange type. 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  DivergencePropagator
 Compute divergence starting with a divergent branch. More...
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  DomConditionCache
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  DomOnlyPrinter
struct  DomOnlyViewer
struct  DomPrinter
struct  DomTreeGraphTraitsBase
class  DomTreeNodeBase
 Base class for the actual dominator tree node. More...
struct  DomTreeNodeTraits
 Default DomTreeNode traits for NodeT. More...
struct  DomTreeNodeTraits< VPBlockBase >
class  DomTreeUpdater
struct  DomViewer
class  DoNothingMemorySSAWalker
 A MemorySSAWalker that does no alias queries, or anything else. More...
class  DotCfgChangeReporter
class  DotFuncBCIInfo
class  DOTFuncInfo
struct  DOTGraphTraits
 DOTGraphTraits - Template class that can be specialized to customize how graphs are converted to 'dot' graphs. More...
struct  DOTGraphTraits< AADepGraph * >
struct  DOTGraphTraits< AttributorCallGraph * >
struct  DOTGraphTraits< BlockFrequencyInfo * >
struct  DOTGraphTraits< BoUpSLP * >
struct  DOTGraphTraits< CallGraphDOTInfo * >
struct  DOTGraphTraits< const DataDependenceGraph * >
struct  DOTGraphTraits< const MachineFunction * >
struct  DOTGraphTraits< DominatorTree * >
struct  DOTGraphTraits< DomTreeNode * >
struct  DOTGraphTraits< DotCfgDiffDisplayGraph * >
struct  DOTGraphTraits< DotFuncBCIInfo * >
struct  DOTGraphTraits< DOTFuncInfo * >
struct  DOTGraphTraits< DOTFuncMSSAInfo * >
struct  DOTGraphTraits< DOTMachineFuncInfo * >
struct  DOTGraphTraits< MachineBlockFrequencyInfo * >
struct  DOTGraphTraits< MachineGadgetGraph * >
struct  DOTGraphTraits< PGOUseFunc * >
struct  DOTGraphTraits< PostDominatorTree * >
struct  DOTGraphTraits< RegionInfo * >
struct  DOTGraphTraits< RegionNode * >
struct  DOTGraphTraits< ScheduleDAG * >
struct  DOTGraphTraits< ScheduleDAGMI * >
struct  DOTGraphTraits< SelectionDAG * >
struct  DOTGraphTraits< SplitGraph >
class  DOTGraphTraitsModulePrinterWrapperPass
class  DOTGraphTraitsModuleViewerWrapperPass
struct  DOTGraphTraitsPrinter
class  DOTGraphTraitsPrinterWrapperPass
struct  DOTGraphTraitsViewer
class  DOTGraphTraitsViewerWrapperPass
class  DOTMachineFuncInfo
class  DroppedVariableStats
 A base class to collect and print dropped debug information variable statistics. More...
class  DroppedVariableStatsIR
 A class to collect and print dropped debug information due to LLVM IR optimization passes. More...
class  DroppedVariableStatsMIR
 A class to collect and print dropped debug information due to MIR optimization passes. More...
class  DSEPass
 This class implements a trivial dead store elimination. More...
class  DSOLocalEquivalent
 Wrapper for a function that represents a value that functionally represents the original function. More...
class  DstOp
class  DummyCGSCCPass
 This pass is required by interprocedural register allocation. More...
class  DummyPriorityAdvisor
 Stupid priority advisor which just enqueues in virtual register number order, for debug purposes only. More...
class  DuplexCandidate
class  Duration
class  DWARF5AccelTable
class  DWARF5AccelTableData
 The Data class implementation for DWARF v5 accelerator table. More...
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  DWARFCFIAnalysis
 DWARFCFIAnalysis validates the DWARF Call Frame Information one machine instruction at a time. More...
class  DwarfCFIException
class  DWARFCFIState
 This class is used to maintain a CFI state, referred to as an unwinding row, during CFI analysis. More...
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 DWARFDataExtractor (typically for an in-memory copy of an object-file section) plus a relocation map for that section, if there is one. More...
class  DWARFDataExtractorBase
 A DataExtractor suitable use for parsing dwarf from memory. More...
class  DWARFDataExtractorSimple
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  DwarfEHPreparePass
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
class  DwarfInstrProfCorrelator
 DwarfInstrProfCorrelator - A child of InstrProfCorrelatorImpl that takes DWARF debug info as input to correlate profiles. More...
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...
struct  DWARFLocationEntry
 A single location within a location list. More...
struct  DWARFLocationExpression
 Represents a single DWARF expression, whose value is location-dependent. More...
class  DWARFLocationTable
 An abstract base class for various kinds of location tables (.debug_loc, .debug_loclists, and their dwo variants). More...
class  DWARFObject
struct  DWARFSection
class  DwarfStringPool
struct  DwarfStringPoolEntry
 Data for a string pool entry. More...
class  DwarfStringPoolEntryRef
 DwarfStringPoolEntryRef: Dwarf string pool entry reference. More...
struct  DwarfStringPoolEntryWithExtString
 DwarfStringPoolEntry with string keeping externally. More...
struct  DWARFTypePrinter
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  DWPError
class  DWPStringPool
class  DXContainerObjectWriter
class  DXILCBufferAccess
class  DXILDataScalarization
 A pass that transforms Vectors to Arrays. More...
class  DXILFinalizeLinkage
class  DXILFinalizeLinkageLegacy
class  DXILFlattenArrays
 A pass that transforms multidimensional arrays into one-dimensional arrays. More...
class  DXILForwardHandleAccesses
class  DXILIntrinsicExpansion
 A pass that transforms DXIL Intrinsics that don't have DXIL opCodes. More...
class  DXILLegalizePass
class  DXILMetadataAnalysis
class  DXILMetadataAnalysisPrinterPass
 Printer pass for the DXILMetadataAnalysis results. More...
class  DXILMetadataAnalysisWrapperPass
 Legacy pass. More...
class  DXILOpLowering
class  DXILPostOptimizationValidation
class  DXILPrettyPrinterPass
 A pass that prints resources in a format suitable for textual DXIL. More...
class  DXILResourceAccess
class  DXILResourceAnalysis
class  DXILResourceBindingAnalysis
class  DXILResourceBindingInfo
class  DXILResourceBindingWrapperPass
class  DXILResourceImplicitBinding
class  DXILResourceMap
class  DXILResourcePrinterPass
 Printer pass for the DXILResourceAnalysis results. More...
class  DXILResourceTypeAnalysis
class  DXILResourceTypeMap
class  DXILResourceTypeWrapperPass
class  DXILResourceWrapperPass
 A pass that transforms DXIL Intrinsics that don't have DXIL opCodes. More...
class  DXILUpgradePass
 Upgrade DXIL-style metadata into their LLVM representations. More...
class  DynamicAPInt
 This class provides support for dynamic arbitrary-precision arithmetic. More...
class  EarliestEscapeAnalysis
 Context-sensitive CaptureAnalysis provider, which computes and caches the earliest common dominator closure of all captures. 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  EarlyIfConverterPass
class  EarlyMachineLICMPass
class  EarlyTailDuplicatePass
class  ECError
 This class wraps a std::error_code in a Error. More...
class  EdgeBundles
class  EdgeBundlesAnalysis
class  EdgeBundlesWrapperLegacy
class  EHStreamer
 Emits exception handling directives. More...
class  ElementCount
class  ELFAttributeParser
class  ELFCompactAttrParser
class  ELFExtendedAttrParser
class  ELFObjectWriter
struct  ELFRelocationEntry
class  EliminateAvailableExternallyPass
 A pass that transforms external global definitions into declarations. More...
struct  EmbedBitcodeOptions
class  EmbedBitcodePass
 Pass embeds a copy of the module optimized with the provided pass pipeline into a global variable. More...
struct  EmbeddedModelRunnerOptions
 ReleaseModeModelRunner - production mode implementation of the MLModelRunner. More...
class  EmptyData
class  EmptyMatchContext
class  EngineBuilder
 Builder class for ExecutionEngines. More...
struct  EntryExitInstrumenterPass
struct  EntryValueInfo
 Represents an entry-value location, or a fragment of one. More...
struct  enum_iteration_traits
struct  enum_iteration_traits< InstCounterType >
struct  enum_iteration_traits< RTLIB::Libcall >
struct  enum_iteration_traits< RTLIB::LibcallImpl >
class  EnumAttributeImpl
 A set of classes that contain the value of the attribute object. More...
struct  EnumEntry
class  EnumeratedArray
class  EnumVal
class  EphemeralValuesAnalysis
class  EphemeralValuesCache
 A cache of ephemeral values within a function. More...
struct  EpilogueLoopVectorizationInfo
 Encapsulate information regarding vectorization of a loop and its epilogue. More...
class  EpilogueVectorizerEpilogueLoop
class  EpilogueVectorizerMainLoop
 A specialized derived class of inner loop vectorizer that performs vectorization of main loops in the process of vectorizing loops and their epilogues. 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  ErrataWorkaround
class  Error
 Lightweight error class with error context and mandatory checking. More...
class  ErrorAsOutParameter
 Helper for Errors used as out-parameters. More...
class  ErrorDiagnostic
 Class to represent an error holding a diagnostic with location information used when printing it. 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  ErrorReported
 An error that has already been reported. 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  EvictionCost
 Cost of evicting interference - used by default advisor, and the eviction chain heuristic in RegAllocGreedy. More...
struct  EVLIndVarSimplifyPass
 Turn vectorized loops with canonical induction variables into loops that only use a single EVL-based induction variable. 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...
class  ExistsOpInit
 !exists<type>(expr) - Dynamically determine if a record of type named expr exists. More...
class  ExitOnError
 Helper for check-and-exit error handling. More...
class  ExpandFpPass
class  ExpandLargeDivRemPass
class  ExpandMemCmpPass
class  ExpandPostRAPseudosPass
class  ExpandReductionsPass
class  ExpandVariadicsPass
class  Expected
 Tagged union holding either a T or a Error. More...
class  ExpectedAsOutParameter
 Helper for Expected<T>s used as out-parameters. More...
class  ExponentialBackoff
 A class to help implement exponential backoff. More...
class  Expression
 Class representing an expression and its matching format. More...
class  ExpressionAST
 Base class representing the AST of a given expression. More...
struct  ExpressionFormat
 Type representing the format an expression value should be textualized into for matching. More...
class  ExpressionLiteral
 Class representing an unsigned literal in the AST of an expression. More...
struct  ExtAddrMode
 Used to describe addressing mode similar to ExtAddrMode in CodeGenPrepare. 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  ExtractGVPass
class  ExtractValueInst
 This instruction extracts a struct member or array element value from an aggregate value. More...
class  ExtraFunctionPassManager
 A pass manager to run a set of extra function passes if the ShouldRunExtraPasses marker analysis is present. More...
class  ExtraLoopPassManager
 A pass manager to run a set of extra loop passes if the MarkerTy analysis is present. More...
class  FailureOr
 This class provides support for representing a failure result, or a valid value of type T. More...
class  fallible_iterator
 A wrapper class for fallible iterators. 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  FatLtoCleanup
class  FaultMapParser
 A parser for the __llvm_faultmaps section generated by the FaultMaps class declared in llvm/CodeGen/FaultMaps.h. More...
class  FaultMaps
class  FCmpInst
 This instruction compares its operands according to the predicate given to the constructor. More...
class  FeatureBitArray
 Class used to store the subtarget bits in the tables created by tablegen. More...
class  FeatureBitset
 Container class for subtarget features. More...
class  FenceInst
 An instruction for ordering other memory operations. More...
class  FEntryInserterPass
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...
struct  FileCache
 This type represents a file cache system that manages caching of files. 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  FileCheckPatternContext
 Class holding the Pattern global state, shared by all patterns: tables holding values of variables and whether they are defined or not at any given time in the matching process. More...
struct  FileCheckRequest
 Contains info about various FileCheck options. More...
struct  FileCheckString
 A check that we found in the input file. More...
class  FileCollector
 Captures file system interaction and generates data to be later replayed with the RedirectingFileSystem. More...
class  FileCollectorBase
class  FileCollectorFileSystem
class  FileError
 This class wraps a filename and another Error. More...
struct  FileHandleTraits
class  FileOutputBuffer
 FileOutputBuffer - This interface provides simple way to create an in-memory buffer which will be written to a file. More...
class  FilePermissionsApplier
 FilePermssionsApplier helps to copy permissions from an input file to an output one. 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  FinalizeBundleTestPass
class  FinalizeISelPass
struct  FindHandleTraits
struct  FirstIndexOfType
 Find the first index where a type appears in a list of types. More...
struct  FirstIndexOfType< T, T, Us... >
struct  FirstIndexOfType< T, U, Us... >
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  FixedPointBuilder
class  FixedPointSemantics
 The fixed point semantics work similarly to fltSemantics. More...
struct  FixedScalableVFPair
 A class that represents two vectorization factors (initialized with 0 by default). 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  FixedVectorType
 Class to represent fixed width SIMD vectors. More...
struct  FixIrreduciblePass
class  FixupStatepointCallerSavedPass
struct  FlagEntry
class  FlatIt
 Marker class to iterate over the elements of a Region in flat mode. More...
struct  FlattenCFGPass
class  Float2IntPass
struct  FlowBlock
 A wrapper of a binary basic block. More...
struct  FlowFunction
 A wrapper of binary function with basic blocks and jumps. More...
struct  FlowJump
 A wrapper of a jump between two basic blocks. More...
struct  fltSemantics
class  FMFSource
 This provides a helper for copying FMF from an instruction or setting specified flags. More...
struct  FmtAlign
 Helper class to format to a Width wide field, with alignment Where within that field. More...
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 * >
struct  FoldingSetTrait< T, std::enable_if_t< std::is_enum< T >::value > >
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  force_iteration_on_noniterable_enum_t
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  FormalArgHandler
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, std::enable_if_t< dwarf::EnumTraits< Enum >::value > >
 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< llvm::lsp::Position >
struct  format_provider< std::chrono::duration< Rep, Period > >
 Implementation of format_provider<T> for duration types. More...
struct  format_provider< sys::TimePoint<> >
 Format provider for TimePoint<> More...
struct  format_provider< sys::UtcTime< std::chrono::seconds > >
struct  format_provider< T, std::enable_if_t< support::detail::use_char_formatter< T >::value > >
 Implementation of format_provider<T> for characters. More...
struct  format_provider< T, std::enable_if_t< support::detail::use_double_formatter< T >::value > >
 Implementation of format_provider<T> for floating point types. More...
struct  format_provider< T, std::enable_if_t< support::detail::use_integral_formatter< T >::value > >
 Implementation of format_provider<T> for integral arithmetic types. More...
struct  format_provider< T, std::enable_if_t< support::detail::use_pointer_formatter< T >::value > >
 Implementation of format_provider<T> for integral pointer types. More...
struct  format_provider< T, std::enable_if_t< support::detail::use_string_formatter< T >::value > >
 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...
struct  ForwardToPointerCast
 Provides a cast trait that uses a defined pointer to pointer cast as a base for reference-to-reference casts. 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  FPStateAccessSDNode
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...
struct  FPValueAndVReg
struct  FrameIndexExpr
 Proxy for one MMI entry. More...
class  FrameIndexSDNode
struct  FreeDeleter
class  FreeMachineFunctionPass
class  FreezeInst
 This class represents a freeze function that returns random concrete value if an operand is either a poison value or an undef value. More...
struct  from_range_t
struct  FrozenIndPHIInfo
class  FullDependence
 FullDependence - This class represents a dependence between two memory references in a function. More...
class  FuncDataT
class  FuncletPadInst
class  Function
class  function_ref
 An efficient, type-erasing, non-owning reference to a callable. More...
class  function_ref< Ret(Params...)>
struct  function_traits
 This class provides various trait information about a callable object. More...
struct  function_traits< ReturnType(&)(Args...), false >
 Overload for non-class function type references. More...
struct  function_traits< ReturnType(*)(Args...), false >
 Overload for non-class function types. More...
struct  function_traits< ReturnType(*const)(Args...), false >
struct  function_traits< ReturnType(ClassType::*)(Args...) const, false >
 Overload for class function types. More...
struct  function_traits< ReturnType(ClassType::*)(Args...), false >
 Overload for class function types. More...
class  FunctionAnalysisManagerCGSCCProxy
 A proxy from a FunctionAnalysisManager to an SCC. More...
class  FunctionAnalysisManagerMachineFunctionProxy
class  FunctionCallee
 A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single entity. More...
class  FunctionComparator
 FunctionComparator - Compares two functions to determine whether or not they will generate machine code with the same behaviour. More...
struct  FunctionHashInfo
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  FunctionPathAndClusterInfo
struct  FunctionPointerLikeTypeTraits
 Provide suitable custom traits struct for function pointers. More...
class  FunctionPropertiesAnalysis
class  FunctionPropertiesInfo
class  FunctionPropertiesPrinterPass
 Printer pass for the FunctionPropertiesAnalysis results. More...
class  FunctionPropertiesUpdater
 Correctly update FunctionPropertiesInfo post-inlining. More...
class  FunctionSpecializer
class  FunctionSummary
 Function summary information to aid decisions and implementation of importing. More...
class  FunctionToLoopPassAdaptor
class  FunctionToMachineFunctionPassAdaptor
class  FunctionType
 Class to represent function types. More...
struct  FunctionTypeKeyInfo
class  FunctionVarLocs
 Data structure describing the variable locations in a function. More...
class  GAdd
 Represents an integer addition. More...
class  GAddCarryOut
 Represents overflowing add operations. More...
class  GAddSubCarryInOut
 Represents overflowing add/sub operations that also consume a carry-in. More...
class  GAddSubCarryOut
 Represents overflowing add/sub operations. More...
class  GAnd
 Represents a logical and. More...
class  GAnyCmp
 Represent a G_ICMP or G_FCMP. More...
class  GAnyExt
 Represents an any ext. More...
class  GAnyLoad
 Represents any generic load, including sign/zero extending variants. More...
class  GBinOp
 Represents a binary operation, i.e, x = y op z. More...
class  GBinOpCarryOut
 Represents overflowing binary operations. More...
class  GBuildVector
 Represents a G_BUILD_VECTOR. More...
class  GBuildVectorTrunc
 Represents a G_BUILD_VECTOR_TRUNC. More...
class  GCastOp
 Represents a cast operation. More...
class  GCFunctionAnalysis
 An analysis pass which caches information about the Function. More...
class  GCFunctionInfo
 Garbage collection metadata for a single function. More...
class  GCLoweringPass
 LowerIntrinsics - This pass rewrites calls to the llvm.gcread or llvm.gcwrite intrinsics, replacing them with simple loads and stores as directed by the GCStrategy. 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  GCNCreateVOPDPass
class  GCNDownwardRPTracker
class  GCNDPPCombinePass
class  GCNHazardRecognizer
class  GCNIterativeScheduler
class  GCNMaxILPSchedStrategy
 The goal of this scheduling strategy is to maximize ILP for a single wave (i.e. More...
class  GCNMaxMemoryClauseSchedStrategy
 The goal of this scheduling strategy is to maximize memory clause for a single wave. More...
class  GCNMaxOccupancySchedStrategy
 The goal of this scheduling strategy is to maximize kernel occupancy (i.e. More...
class  GCNNSAReassignPass
class  GCNPostScheduleDAGMILive
class  GCNPreRALongBranchRegPass
class  GCNPreRAOptimizationsPass
struct  GCNRegPressure
struct  GCNRegPressurePrinter
class  GCNRewritePartialRegUsesPass
class  GCNRPTarget
 Models a register pressure target, allowing to evaluate and track register savings against that target from a starting GCNRegPressure. More...
class  GCNRPTracker
class  GCNSchedStage
class  GCNSchedStrategy
 This is a minimal scheduler strategy. More...
class  GCNScheduleDAGMILive
class  GCNSubtarget
class  GCNTargetMachine
class  GCNTTIImpl
class  GCNUpwardRPTracker
class  GCNUserSGPRUsageInfo
class  GConcatVectors
 Represents a G_CONCAT_VECTORS. More...
struct  GCOVArc
class  GCOVBlock
 GCOVBlock - Collects block information. More...
struct  GCOVBlockLocation
 Represent file of lines same with block_location_info in gcc. More...
class  GCOVBuffer
 GCOVBuffer - A wrapper around MemoryBuffer to provide GCOV specific read operations. 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  GCStatepointInst
 Represents a gc.statepoint intrinsic call. 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  GCStrategyMap
class  generic_gep_type_iterator
class  GenericConvergenceVerifier
class  GenericCycle
 A possibly irreducible generalization of a Loop. More...
class  GenericCycleInfo
 Cycle information for a function. More...
class  GenericCycleInfoCompute
 Helper class for computing cycle information. More...
class  GenericDINode
 Generic tagged DWARF-like metadata node. More...
class  GenericDomTreeUpdater
class  GenericFloatingPointPredicateUtils
class  GenericMachineInstr
 A base class for all GenericMachineInstrs. More...
class  GenericScheduler
 GenericScheduler shrinks the unscheduled zone using heuristics to balance the schedule. More...
class  GenericSchedulerBase
 Base class for GenericScheduler. More...
class  GenericSSAContext
struct  GenericSSATraits
struct  GenericSSATraits< Function >
struct  GenericSSATraits< MachineFunction >
class  GenericSyncDependenceAnalysis
 Locate join blocks for disjoint paths starting at a divergent branch. More...
struct  GenericToNVVMPass
class  GenericUniformityAnalysisImpl
 Analysis that identifies uniform values in a data-parallel execution. More...
struct  GenericUniformityAnalysisImplDeleter
class  GenericUniformityInfo
struct  GenericValue
class  GEPNoWrapFlags
 Represents flags for the getelementptr instruction/expression. More...
class  GEPOperator
class  GetElementPtrConstantExpr
 GetElementPtrConstantExpr - This class is private to Constants.cpp, and is used behind the scenes to implement getelementptr constant exprs. More...
class  GetElementPtrInst
 an instruction for type-safe pointer arithmetic to access elements of arrays and structs More...
class  GExtLoad
 Represents either a G_SEXTLOAD or G_ZEXTLOAD. More...
class  GExtOp
 Represents an integer-like extending operation. More...
class  GExtOrTruncOp
 Represents an integer-like extending or truncating operation. More...
class  GExtractSubvector
 Represents an extract subvector. More...
class  GExtractVectorElement
 Represents an extract vector element. More...
class  GFBinOp
 Represents a floating point binary operation. More...
class  GFCmp
 Represent a G_FCMP. More...
class  GFConstant
 An floating-point-like constant. More...
class  GFreeze
 Represents a freeze. More...
class  GICmp
 Represent a G_ICMP. More...
class  GIConstant
 An integer-like constant. More...
class  GIMatchTableExecutor
 Provides the logic to execute GlobalISel match tables, which are used by the instruction selector and instruction combiners as their engine to match and apply MIR patterns. More...
class  GImplicitDef
 Represents a G_IMPLICIT_DEF. More...
class  GIndexedAnyExtLoad
 Represents either G_INDEXED_LOAD, G_INDEXED_ZEXTLOAD or G_INDEXED_SEXTLOAD. More...
class  GIndexedExtLoad
 Represents a G_INDEX_ZEXTLOAD/G_INDEXED_SEXTLOAD. More...
class  GIndexedLoad
 Represents indexed loads. More...
class  GIndexedSExtLoad
 Represents a G_SEXTLOAD. More...
class  GIndexedStore
 Represents indexed stores. More...
class  GIndexedZExtLoad
 Represents a G_ZEXTLOAD. More...
class  GInsertSubvector
 Represents a insert subvector. More...
class  GInsertVectorElement
 Represents an insert vector element. More...
class  GIntBinOp
 Represents an integer binary operation. More...
class  GIntrinsic
 Represents a call to an intrinsic. 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  GISelValueTracking
class  GISelValueTrackingAnalysis
class  GISelValueTrackingAnalysisLegacy
 To use KnownBitsInfo analysis in a pass, KnownBitsInfo &Info = getAnalysis<GISelValueTrackingInfoAnalysis>().get(MF); Add to observer if the Info is caching. More...
class  GISelValueTrackingPrinterPass
class  GISelWorkList
class  GLoad
 Represents a G_LOAD. More...
class  GLoadStore
 Represents any type of generic load or store. More...
class  GlobalAddressSDNode
class  GlobalAlias
class  GlobalDCEPass
 Pass to remove unused function declarations. More...
class  GlobalIFunc
class  GlobalMergeFunc
 GlobalMergeFunc is a ModulePass that implements a function merging mechanism using stable function hashes. More...
struct  GlobalMergeFuncPass
 Global function merging pass for new pass manager. More...
struct  GlobalMergeOptions
class  GlobalMergePass
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 or thread-local variable, keep track of some information about it. More...
class  GlobalValue
class  GlobalValuePseudoSourceValue
 A specialized pseudo source 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
 This class implements a glob pattern matcher similar to the one found in bash, but with some key differences. More...
class  GLogicalBinOp
 Represents a logical binary operation. More...
class  GMemOperation
 Provides common memory operand functionality. More...
class  GMerge
 Represents a G_MERGE_VALUES. More...
class  GMergeLikeInstr
 Represents G_BUILD_VECTOR, G_CONCAT_VECTORS or G_MERGE_VALUES. More...
class  GMul
 Represents an integer multiplication. More...
class  GOFFObjectWriter
class  GOr
 Represents a logical or. More...
class  GPhi
 Represents a G_PHI. More...
class  GPtrAdd
 Represents a G_PTR_ADD. More...
class  GraphDiff
struct  GraphTraits
struct  GraphTraits< AACallGraphNode * >
struct  GraphTraits< AADepGraph * >
struct  GraphTraits< AADepGraphNode * >
struct  GraphTraits< ArgumentGraph * >
struct  GraphTraits< ArgumentGraphNode * >
struct  GraphTraits< AttributorCallGraph * >
struct  GraphTraits< BasicBlock * >
struct  GraphTraits< BlockFrequencyInfo * >
struct  GraphTraits< BoUpSLP * >
struct  GraphTraits< CallGraph * >
struct  GraphTraits< CallGraphDOTInfo * >
struct  GraphTraits< CallGraphNode * >
struct  GraphTraits< const BasicBlock * >
struct  GraphTraits< const CallGraph * >
struct  GraphTraits< const CallGraphNode * >
struct  GraphTraits< const DataDependenceGraph * >
struct  GraphTraits< const DDGNode * >
 const versions of the grapth trait specializations for DDG More...
struct  GraphTraits< const DomTreeNode * >
struct  GraphTraits< const Function * >
struct  GraphTraits< const GenericCycle< BlockT > * >
struct  GraphTraits< const Loop * >
struct  GraphTraits< const MachineBasicBlock * >
struct  GraphTraits< const MachineDomTreeNode * >
struct  GraphTraits< const MachineFunction * >
struct  GraphTraits< const MachineLoop * >
struct  GraphTraits< const VPBlockBase * >
struct  GraphTraits< const VPDomTreeNode * >
struct  GraphTraits< DataDependenceGraph * >
struct  GraphTraits< DDGNode * >
 non-const versions of the grapth trait specializations for DDG More...
struct  GraphTraits< DominatorTree * >
struct  GraphTraits< DomTreeNode * >
struct  GraphTraits< DotCfgDiffDisplayGraph * >
struct  GraphTraits< DotFuncBCIInfo * >
struct  GraphTraits< DOTFuncInfo * >
struct  GraphTraits< DOTFuncMSSAInfo * >
struct  GraphTraits< DOTMachineFuncInfo * >
struct  GraphTraits< Function * >
struct  GraphTraits< GenericCycle< BlockT > * >
struct  GraphTraits< ImmutableGraph< NodeValueT, EdgeValueT > * >
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< Inverse< T > > >
struct  GraphTraits< Inverse< MachineBasicBlock * > >
struct  GraphTraits< Inverse< MachineFunction * > >
struct  GraphTraits< Inverse< MemoryAccess * > >
struct  GraphTraits< Inverse< VPBlockBase * > >
 Inverse graph traits are not implemented yet. More...
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< MachineGadgetGraph * >
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< ProfiledCallGraph * >
struct  GraphTraits< ProfiledCallGraphNode * >
struct  GraphTraits< RegionInfo * >
struct  GraphTraits< RegionInfoPass * >
struct  GraphTraits< RematGraph * >
struct  GraphTraits< ScheduleDAG * >
struct  GraphTraits< ScheduleDAGMI * >
struct  GraphTraits< SDNode * >
struct  GraphTraits< SelectionDAG * >
struct  GraphTraits< SplitGraph >
struct  GraphTraits< SUnit * >
struct  GraphTraits< ValueInfo >
 GraphTraits definition to build SCC for the index. More...
struct  GraphTraits< VPBlockBase * >
struct  GraphTraits< VPBlockDeepTraversalWrapper< const VPBlockBase * > >
struct  GraphTraits< VPBlockDeepTraversalWrapper< VPBlockBase * > >
 GraphTraits specialization to recursively traverse VPBlockBase nodes, including traversing through VPRegionBlocks. More...
struct  GraphTraits< VPBlockShallowTraversalWrapper< const VPBlockBase * > >
struct  GraphTraits< VPBlockShallowTraversalWrapper< VPBlockBase * > >
struct  GraphTraits< VPDomTreeNode * >
 Template specializations of GraphTraits for VPDomTreeNode. More...
struct  GraphTraits< VPlan * >
class  GraphWriter
class  GraphWriterBase
class  GSelect
 Represents a G_SELECT. More...
class  GSext
 Represents a sext. More...
class  GSExtLoad
 Represents a G_SEXTLOAD. More...
class  GShl
 Represents a shift left. More...
class  GShuffleVector
 Represents a G_SHUFFLE_VECTOR. More...
class  GSplatVector
 Represents a splat vector. More...
class  GStepVector
 Represents a step vector. More...
class  GStore
 Represents a G_STORE. More...
class  GSub
 Represents an integer subtraction. More...
class  GSubCarryOut
 Represents overflowing sub operations. More...
class  GSUCmp
 Represents a threeway compare. More...
class  GTrunc
 Represents a trunc. More...
struct  GuardWideningPass
class  GUIDProbeFunctionMap
class  GUnmerge
 Represents a G_UNMERGE_VALUES. More...
class  GVecReduce
class  GVMaterializer
class  GVNHoist
struct  GVNHoistPass
 A simple and fast domtree-based GVN pass to hoist common expressions from sibling branches. More...
struct  GVNOptions
 A set of parameters to control various transforms performed by GVN pass. More...
class  GVNPass
 The core GVN pass object. More...
struct  GVNSinkPass
 Uses an "inverted" value numbering to decide the similarity of expressions and sinks similar expressions into successors. More...
class  GVScale
 Represents a vscale. More...
class  GZext
 Represents a zext. More...
class  GZExtLoad
 Represents a G_ZEXTLOAD. 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  HardwareLoopInfo
 Attributes of a target dependent hardware loop. More...
struct  HardwareLoopOptions
class  HardwareLoopsPass
class  hash_code
 An opaque object representing a hash code. More...
class  HashBuilder
 Interface to help hash various types through a hasher type. More...
class  HashBuilderBase
 Declares the hasher member, and functions forwarding directly to the hasher. More...
class  HashingByteStreamer
struct  HashNode
 A HashNode is an entry in an OutlinedHashTree, holding a hash value and a collection of Successors (other HashNodes). More...
struct  HashNodeStable
 HashNodeStable is the serialized, stable, and compact representation of a HashNode. More...
class  HashRecognize
 The analysis. More...
class  HashRecognizePrinterPass
class  HasReferenceResolver
 Do not resolve anything, but keep track of whether a given variable was referenced. More...
class  HelloWorldPass
class  HexagonAsmPrinter
class  HexagonAttributeParser
struct  HexagonBlockRanges
class  HexagonConvergingVLIWScheduler
class  HexagonCVIResource
class  HexagonDAGToDAGISel
class  HexagonDAGToDAGISelLegacy
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 \v character A trailing line includes bundle properties such as endloop0/1. More...
class  HexagonInstr
class  HexagonInstrInfo
struct  HexagonLoopIdiomRecognitionPass
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  HexagonVectorLoopCarriedReusePass
 Hexagon Vector Loop Carried Reuse Pass. More...
class  HexagonVLIWResourceModel
struct  HexNumber
class  HipStdParAcceleratorCodeSelectionPass
class  HipStdParAllocationInterpositionPass
class  HipStdParMathFixupPass
struct  HistogramInfo
 This holds details about a histogram operation – a load -> update -> store sequence where each lane in a vector might be updating the same element as another lane. More...
class  HotColdSplitting
class  HotColdSplittingPass
 Pass to outline cold regions. More...
class  HTTPClient
 A reusable client that can perform HTTPRequests through a network socket. More...
struct  HTTPRequest
 A stateless description of an outbound HTTP request. More...
struct  HTTPResponse
class  HTTPResponseHandler
 A handler for state updates occurring while an HTTPRequest is performed. More...
class  HTTPServer
 An HTTP server which can listen on a single TCP/IP port for HTTP requests and delgate them to the appropriate registered handler. More...
class  HTTPServerError
class  HTTPServerRequest
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
struct  HWAddressSanitizerOptions
class  HWAddressSanitizerPass
 This is a public interface to the hardware address sanitizer pass for instrumenting code to check for various memory errors at runtime, similar to AddressSanitizer but based on partial hardware assistance. More...
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
class  IDFCalculatorBase
 Determine the iterated dominance frontier, given a set of defining blocks, and optionally, a set of live-in blocks. More...
struct  ilist_alloc_traits
 Use delete by default for iplist and ilist. More...
struct  ilist_alloc_traits< Instruction >
struct  ilist_alloc_traits< MachineBasicBlock >
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_iterator_bits
 Option to add extra bits to the ilist_iterator. More...
class  ilist_iterator_w_bits
 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_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...
struct  ilist_parent
 Option to add a pointer to this list's owner in every node. More...
struct  ilist_select_iterator_type
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 >
class  ILPInitialScheduleStage
struct  ILPValue
 Represent the ILP of the subDAG rooted at a DAG node. More...
struct  ImmInstrInfo
class  ImmutableGraph
class  ImmutableGraphBuilder
class  ImmutableList
 ImmutableList - This class represents an immutable (functional) list. More...
class  ImmutableListFactory
class  ImmutableListImpl
class  ImmutableMap
class  ImmutableMapRef
class  ImmutableModuleSummaryIndexWrapperPass
 Legacy wrapper pass to provide the ModuleSummaryIndex object. More...
class  ImmutablePass
 ImmutablePass class - This class is used to provide information that does not need to be run. More...
class  ImmutableSet
class  ImmutableSetRef
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  IncIntegerState
 Specialization of the integer state for an increasing value, hence ~0u is the best state and 0 the worst. More...
struct  Incoming
 Incoming for lane maks phi as machine instruction, incoming register Reg and incoming block Block are taken from machine instruction. More...
struct  indent
class  index_range
 Increasing range of size_t indices. More...
class  indexed_accessor_iterator
 A utility class used to implement an iterator that contains some base object and an index. More...
class  indexed_accessor_range
 This class provides an implementation of a range of indexed_accessor_iterators where the base is not indexable. More...
class  IndexedCodeGenDataReader
class  IndexedInstrProfReader
 Reader for the indexed binary instrprof format. More...
struct  IndexedLoadStoreMatchInfo
class  IndexedMap
class  IndexedMemProfReader
class  IndexedReference
 Represents a memory reference as a base pointer and a set of indexing operations. More...
class  IndexListEntry
 This class represents an entry in the slot index list held in the SlotIndexes pass. More...
class  IndirectBrExpandPass
class  IndirectBrInst
 Indirect Branch Instruction. More...
class  InductionDescriptor
 A struct for saving information about induction variables. More...
class  IndVarSimplifyPass
struct  InferAddressSpacesPass
struct  InferAlignmentPass
struct  InferFunctionAttrsPass
 A pass which infers function attributes from the names and signatures of function declarations in a module. More...
struct  InformationCache
 Data structure to hold cached (LLVM-IR) information. More...
struct  InfoSectionUnitHeader
class  Init
class  InitLLVM
class  InitUndefPass
class  InjectorIRStrategy
 Strategy that injects operations into the function. More...
class  InjectTLIMappings
class  InlineAdvice
 Capture state between an inlining decision having had been made, and its impact being observable. More...
class  InlineAdvisor
 Interface for deciding whether to inline a call site or not. More...
class  InlineAdvisorAnalysis
 The InlineAdvisorAnalysis is a module pass because the InlineAdvisor needs to capture state right before inlining commences over a module. More...
class  InlineAdvisorAnalysisPrinterPass
 Printer pass for the InlineAdvisorAnalysis results. More...
class  InlineAsm
struct  InlineAsmIdentifierInfo
struct  InlineAsmKeyType
class  InlineAsmLowering
class  InLineChangePrinter
struct  InlineContext
 Provides context on when an inline advisor is constructed in the pipeline (e.g., link phase, inline driver). More...
class  InlineCost
 Represents the cost of inlining a function. More...
struct  InlineCostAnnotationPrinterPass
class  InlineFunctionInfo
 This class captures the data input to the InlineFunction call, and records the auxiliary results produced by it. More...
class  InlineOrder
struct  InlineParams
 Thresholds to tune inline cost analysis. More...
class  InlineResult
 InlineResult is basically true or false. More...
class  InlinerPass
 The inliner pass for the new pass manager. More...
struct  InlineSiteHash
class  InlineSizeEstimatorAnalysis
class  InlineSizeEstimatorAnalysisPrinterPass
class  InnerAnalysisManagerProxy
 An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR unit. More...
class  InnerLoopAndEpilogueVectorizer
 An extension of the inner loop vectorizer that creates a skeleton for a vectorized loop that has its epilogue (residual) also vectorized. More...
class  InnerLoopVectorizer
 InnerLoopVectorizer vectorizes loops which contain only one basic block to a specified vectorization factor (VF). More...
class  InsertCFGStrategy
 Strategy to split a random block and insert a random CFG in between. 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  InsertFunctionStrategy
 Strategy that generates new function calls and inserts function signatures to the modules. More...
class  InsertNOPLoad
class  InsertPHIStrategy
 Strategy to insert PHI Nodes at the head of each basic block. More...
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  InsertPosition
class  InsertValueInst
 This instruction inserts a struct field of array element value into an aggregate value. More...
class  InsnInfo
class  InstancesOpInit
 !instances<type>([regex]) - Produces a list of records whose type is type. More...
struct  InstCombineOptions
class  InstCombinePass
class  InstCombiner
 The core instruction combiner logic. More...
class  InstCombinerImpl
class  InstCostVisitor
struct  InstCountPass
class  InstDeleterIRStrategy
 Strategy that deletes instructions when the Module is too large. More...
class  InstIterator
class  InstModificationIRStrategy
 Strategy that modifies instruction attributes and operands. More...
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  InstrProfCallsite
 This represents the llvm.instrprof.callsite intrinsic. More...
class  InstrProfCntrInstBase
 A base class for all instrprof counter intrinsics. More...
class  InstrProfCorrelator
 InstrProfCorrelator - A base class used to create raw instrumentation data to their functions. More...
class  InstrProfCorrelatorImpl
 InstrProfCorrelatorImpl - A child of InstrProfCorrelator with a template pointer type so that the ProfileData vector can be materialized. More...
class  InstrProfCoverInst
 This represents the llvm.instrprof.cover intrinsic. More...
class  InstrProfError
class  InstrProfilingLoweringPass
 Instrumentation based profiling lowering pass. More...
class  InstrProfIncrementInst
 This represents the llvm.instrprof.increment intrinsic. More...
class  InstrProfIncrementInstStep
 This represents the llvm.instrprof.increment.step intrinsic. More...
class  InstrProfInstBase
 A base class for all instrprof intrinsics. More...
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...
class  InstrProfMCDCBitmapInstBase
 A base class for instrprof mcdc intrinsics that require global bitmap bytes. More...
class  InstrProfMCDCBitmapParameters
 This represents the llvm.instrprof.mcdc.parameters intrinsic. More...
class  InstrProfMCDCTVBitmapUpdate
 This represents the llvm.instrprof.mcdc.tvbitmap.update intrinsic. 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 [IR]PGO name look-up with keys (such as pointers, md5hash values) to the function. More...
class  InstrProfTimestampInst
 This represents the llvm.instrprof.timestamp intrinsic. 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
struct  InstructionBuildSteps
class  InstructionCombiningPass
 The legacy pass manager's instcombine pass. More...
class  InstructionCost
struct  InstructionNamerPass
class  InstructionOrdering
 Record instruction ordering so we can query their relative positions within a function. More...
class  InstructionPrecedenceTracking
class  InstructionSelect
 This pass is responsible for selecting generic machine instructions to target-specific instructions. More...
class  InstructionSelector
struct  InstructionStepsMatchInfo
class  InstructionWorklist
 InstructionWorklist - This is the worklist management logic for InstCombine and other simplification passes. More...
struct  InstrumentationIRBuilder
class  InstSimplifyFolder
 InstSimplifyFolder - Use InstructionSimplify to fold operations to existing values. More...
class  InstSimplifyPass
 Run instruction simplification across each instruction in the function. More...
class  InstVisitor
 Base class for instruction visitors. More...
class  IntAttributeImpl
struct  IntegerRangeState
 State for an integer range. More...
struct  IntegerStateBase
 Simple state with integers encoding. More...
class  IntegerType
 Class to represent integer types. More...
struct  IntelExpr
class  IntelJITEventsWrapper
class  IntEqClasses
class  InteractiveModelRunner
 A MLModelRunner that asks for advice from an external agent, or host. More...
class  InterestingMemoryOperand
class  InterferenceCache
class  InterleavedAccessInfo
 Drive the analysis of interleaved memory accesses in the loop. More...
class  InterleavedAccessPass
class  InterleavedLoadCombinePass
class  InterleavedRange
 Format object class for interleaved ranges. 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  IntervalData
 An interval data composed by a Left and Right points and an associated Value. More...
class  IntervalMap
struct  IntervalMapHalfOpenInfo
struct  IntervalMapInfo
struct  IntervalMapInfo< SlotIndex >
class  IntervalMapOverlaps
 IntervalMapOverlaps - Iterate over the overlaps of mapped intervals in two IntervalMaps. More...
struct  IntervalPressure
 RegisterPressure computed within a region of instructions delimited by TopIdx and BottomIdx. More...
class  IntervalTree
class  IntInit
 '7' - Represent an initialization by a literal integer value. More...
class  IntRecTy
 'int' - Represent an integer value of no particular size More...
class  IntrinsicCostAttributes
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...
struct  IntrusiveRefCntPtrInfo< ImutAVLTree< ImutInfo > >
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...
struct  iota_range
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
struct  IPSCCPOptions
 A set of parameters to control various transforms performed by IPSCCP pass. More...
class  IPSCCPPass
 Pass to perform interprocedural constant propagation. More...
class  IR2VecPrinterPass
 This pass prints the IR2Vec embeddings for instructions, basic blocks, and functions. More...
class  IR2VecVocabAnalysis
 This analysis provides the vocabulary for IR2Vec. More...
class  IR2VecVocabPrinterPass
 This pass prints the embeddings in the vocabulary. More...
struct  IRAttribute
 Helper class that provides common functionality to manifest IR attributes. 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  IRBuilderFolder
 IRBuilderFolder - Interface for constant folding in IRBuilder. More...
class  IRCEPass
class  IRChangedPrinter
class  IRChangedTester
class  IRComparer
class  IRDataT
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...
struct  IRNormalizerOptions
struct  IRNormalizerPass
 IRNormalizer aims to transform LLVM IR into normal form. More...
class  IROutliner
 This class is a pass that identifies similarity in a Module, extracts instances of the similarity, and then consolidating the similar regions in an effort to reduce code size. More...
class  IROutlinerPass
 Pass to outline similar regions. More...
struct  IRPosition
 Helper to describe and deal with positions in the LLVM-IR. More...
class  IRSimilarityAnalysis
 An analysis pass that runs and returns the IRSimilarityIdentifier run on the Module. More...
class  IRSimilarityAnalysisPrinterPass
 Printer pass that uses IRSimilarityAnalysis. More...
class  IRSimilarityIdentifierWrapperPass
 An analysis pass based on legacy pass manager that runs and returns IRSimilarityIdentifier run on the Module. 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_simple_type
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< 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, std::enable_if_t< std::is_base_of_v< To, From > > >
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...
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...
struct  IVConditionInfo
 Struct to hold information about a partially invariant condition. 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...
class  JMCInstrumenterPass
struct  JobHandleTraits
class  JSONScopedPrinter
class  JumpTableSDNode
struct  JumpTableToSwitchPass
class  JumpThreadingPass
 This pass performs 'jump threading', which looks at blocks that have multiple predecessors and multiple successors. More...
class  KCFIPass
struct  KernArgPreloadDescriptor
class  KernelInfoPrinter
struct  KnownAssumptionString
 Helper that allows to insert a new assumption string in the known assumption set by creating a (static) object. More...
struct  KnownBits
struct  KnownFPClass
class  LabelSDNode
class  LanaiDisassembler
class  LanaiFrameLowering
class  LanaiInstPrinter
class  LanaiInstrInfo
class  LanaiMachineFunctionInfo
class  LanaiMCAsmInfo
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  largest_bitmask_enum_bit
 Trait class to determine bitmask enumeration largest bit. More...
class  LastRunTrackingAnalysis
 A function/module analysis which provides an empty LastRunTrackingInfo. More...
class  LastRunTrackingInfo
 This class is used to track the last run of a set of module/function passes. More...
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...
class  LazyAtomicPointer
 Atomic pointer that's lock-free, but that can coordinate concurrent writes from a lazy generator. 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  LazyValueInfoImpl
class  LazyValueInfoPrinterPass
 Printer pass for the LazyValueAnalysis results. More...
class  LazyValueInfoWrapperPass
 Wrapper around LazyValueInfo. More...
class  LCSSAPass
 Converts loops into loop-closed SSA form. More...
struct  LCSSAVerificationPass
class  LDVImpl
struct  LegacyDefaultAnalysisGraphTraits
 Default traits class for extracting a graph from an analysis pass. More...
class  LegacyJITSymbolResolver
 Legacy symbol resolution interface. More...
struct  LegacyLegalizeActionStep
 The result of a query. More...
class  LegacyLegalizerInfo
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_first
 Function object to check whether the first component of a container supported by std::get (like std::pair and std::tuple) compares less than the first component of another container. More...
struct  less_second
 Function object to check whether the second component of a container supported by std::get (like std::pair and std::tuple) compares less than the second component of another container. 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
 This class is used to track scope information. More...
class  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
struct  LICMOptions
class  LICMPass
 Performs Loop Invariant Code Motion Pass. More...
class  LifetimeIntrinsic
 This is the common base class for lifetime intrinsics. More...
class  LifetimeSDNode
 This SDNode is used for LIFETIME_START/LIFETIME_END values. More...
class  line_iterator
 A forward iterator which reads text lines from a buffer. More...
struct  LinearExpression
 Linear expression BasePtr + Index * Scale + Offset. More...
class  LineEditor
class  LinkDiagnosticInfo
class  Linker
 This class provides the core functionality of linking in LLVM. More...
class  LinkingSymbolResolver
class  LintPass
class  ListeningSocket
 Manages a passive (i.e., listening) UNIX domain socket. More...
class  ListInit
 [AL, AH, CL] - Represent a list of defs More...
class  ListRecTy
 'list<Ty>' - Represent a list of element values, all of which must be of the specified type. More...
struct  ListScope
class  ListSeparator
 A helper class to return the specified delimiter string after the first invocation of operator StringRef(). Used to generate a comma-separated list from a loop like so: More...
class  LiveDebugValuesPass
class  LiveDebugVariables
class  LiveDebugVariablesAnalysis
class  LiveDebugVariablesPrinterPass
class  LiveDebugVariablesWrapperLegacy
class  LiveInterval
 LiveInterval - This class represents the liveness of a register, or stack slot. More...
class  LiveIntervalCalc
class  LiveIntervals
class  LiveIntervalsAnalysis
class  LiveIntervalsPrinterPass
class  LiveIntervalsWrapperPass
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  LiveRegMatrixAnalysis
class  LiveRegMatrixWrapperLegacy
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  LiveStacksAnalysis
class  LiveStacksPrinterPass
class  LiveStacksWrapperLegacy
class  LiveVariables
class  LiveVariablesAnalysis
class  LiveVariablesPrinterPass
class  LiveVariablesWrapperPass
class  LLLexer
class  LLParser
class  LLT
struct  LLVM_BITMASK_LARGEST_ENUMERATOR) >=0 > >
struct  LLVM_BITMASK_LARGEST_ENUMERATOR) >=0 > >
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  LLVMPassBuilderOptions
 Helper struct for holding a set of builder options for LLVMRunPasses. More...
struct  LLVMRemarkSetupErrorInfo
struct  LLVMRemarkSetupFileError
struct  LLVMRemarkSetupFormatError
struct  LLVMRemarkSetupPatternError
class  LLVMRemarkStreamer
 Streamer for LLVM remarks which has logic for dealing with DiagnosticInfo objects. More...
struct  LLVMTargetMachineOptions
 Options for LLVMCreateTargetMachine(). More...
class  LNICMPass
 Performs LoopNest Invariant Code Motion Pass. 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  LoadStoreOpt
class  LoadStoreVectorizerPass
class  Localizer
 This pass implements the localization mechanism described at the top of this file. More...
class  LocalStackSlotAllocationPass
class  location_op_iterator
class  LocationSize
class  LockFileManager
 Class that manages the creation of a lock file to aid implicit coordination between different processes. More...
class  LockstepReverseIterator
 Iterates through instructions in a set of blocks in reverse order from the first non-terminator. More...
class  Logger
 Logging utility - given an ordered specification of features, and assuming a scalar reward, allow logging feature values and rewards. More...
struct  LogicalResult
 This class represents an efficient way to signal success or failure. More...
class  LoongArchAsmBackend
class  LoongArchAsmPrinter
class  LoongArchDAGToDAGISel
class  LoongArchDAGToDAGISelLegacy
class  LoongArchFrameLowering
class  LoongArchInstPrinter
class  LoongArchInstrInfo
class  LoongArchMachineFunctionInfo
 LoongArchMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private LoongArch-specific information for each MachineFunction. More...
class  LoongArchMCAsmInfo
class  LoongArchMCExpr
struct  LoongArchRegisterInfo
class  LoongArchSubtarget
class  LoongArchTargetAsmStreamer
class  LoongArchTargetELFStreamer
class  LoongArchTargetLowering
class  LoongArchTargetMachine
class  LoongArchTargetStreamer
class  LoongArchTTIImpl
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  LoopAccessInfoManager
class  LoopAccessInfoPrinterPass
 Printer pass for the LoopAccessInfo results. 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  LoopBoundSplitPass
 This pass transforms loops that contain a conditional branch with induction variable. More...
class  LoopCachePrinterPass
 Printer pass for the CacheCost results. More...
struct  LoopCarriedEdges
 Represents loop-carried dependencies. More...
class  LoopConstrainer
 This class is used to constrain loops to run within a given iteration space. More...
class  LoopDataPrefetchPass
 An optimization pass inserting data prefetches in loops. More...
class  LoopDeletionPass
class  LoopDistributePass
struct  LoopExtractorPass
class  LoopFlattenPass
class  LoopFullUnrollPass
 Loop unroll pass that only does full loop unrolling and peeling. More...
class  LoopFusePass
class  LoopIdiomRecognizePass
 Performs Loop Idiom Recognize Pass. More...
class  LoopIdiomVectorizePass
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  LoopInterchangePass
struct  LoopLoadEliminationPass
 Pass to forward loads in a loop around the backedge to subsequent iterations. More...
class  LoopNest
 This class represents a loop nest and can be used to query its properties. More...
class  LoopNestAnalysis
 This analysis provides information for a loop nest. More...
class  LoopNestPrinterPass
 Printer pass for the LoopNest results. 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...
struct  LoopStructure
class  LoopTermFoldPass
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  LoopVectorizeOptions
struct  LoopVectorizePass
 The LoopVectorize Pass. More...
struct  LoopVectorizeResult
 Storage for information about made changes. 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  LoopVersioningLICMPass
class  LoopVersioningPass
 Expose LoopVersioning as a pass. More...
class  LostDebugLocObserver
class  LowerAllowCheckPass
class  LowerAtomicPass
 A pass that lowers atomic intrinsic into non-atomic intrinsics. More...
struct  LowerConstantIntrinsicsPass
class  LowerEmuTLSPass
struct  LowerExpectIntrinsicPass
class  LowerGlobalDtorsPass
struct  LowerGuardIntrinsicPass
class  LowerIFuncPass
 Pass to replace calls to ifuncs with indirect calls. More...
class  LowerInvokePass
class  LowerMatrixIntrinsicsPass
struct  LowerSwitchPass
class  LowerTypeTestsPass
struct  LowerWidenableConditionPass
class  LPMUpdater
 This class provides an interface for updating the loop pass manager based on mutations to the loop nest. More...
class  LPPassManager
struct  LRStartEndInfo
class  LSBaseSDNode
 Base class for LoadSDNode and StoreSDNode. More...
struct  LshrOfTruncOfLshr
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  M68kAsmPrinter
class  M68kCallLowering
struct  M68kCCState
 Custom state to propagate llvm type info to register CC assigner. More...
class  M68kELFMCAsmInfo
class  M68kELFTargetObjectFile
class  M68kFrameLowering
class  M68kGenRegisterBankInfo
struct  M68kIncomingValueHandler
class  M68kInstPrinter
class  M68kInstrInfo
struct  M68kLegalizerInfo
class  M68kMachineFunctionInfo
class  M68kMCInstLower
 This class is used to lower an MachineInstr into an MCInst. More...
class  M68kMemOperandPrinter
class  M68kRegisterBankInfo
 This class provides the information for the target register banks. More...
class  M68kRegisterInfo
class  M68kSelectionDAGInfo
class  M68kSubtarget
class  M68kTargetLowering
class  M68kTargetMachine
class  MachineBasicBlock
class  MachineBlockFrequencyAnalysis
class  MachineBlockFrequencyInfo
 MachineBlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate machine basic block frequencies. More...
class  MachineBlockFrequencyInfoWrapperPass
class  MachineBlockFrequencyPrinterPass
 Printer pass for the MachineBlockFrequencyInfo results. More...
class  MachineBlockPlacementPass
class  MachineBlockPlacementStatsPass
class  MachineBranchProbabilityAnalysis
class  MachineBranchProbabilityInfo
class  MachineBranchProbabilityInfoWrapperPass
class  MachineBranchProbabilityPrinterPass
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  MachineCopyPropagationPass
class  MachineCSEPass
class  MachineCycleAnalysis
class  MachineCycleInfoPrinterPass
class  MachineCycleInfoWrapperPass
 Legacy analysis pass which computes a MachineCycleInfo. More...
class  MachineDominanceFrontier
class  MachineDominatorTree
 DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree. More...
class  MachineDominatorTreeAnalysis
 Analysis pass which computes a MachineDominatorTree. More...
class  MachineDominatorTreePrinterPass
 Machine function pass which print MachineDominatorTree. More...
class  MachineDominatorTreeWrapperPass
 Analysis pass which computes a MachineDominatorTree. More...
struct  MachineDomTreeGraphTraitsBase
 DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterators. More...
class  MachineDomTreeUpdater
class  MachineFrameInfo
 The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted. More...
class  MachineFunction
class  MachineFunctionAnalysis
 This analysis create MachineFunction for given Function. More...
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  MachineLateInstrsCleanupPass
class  MachineLICMBasePass
class  MachineLICMPass
class  MachineLocation
class  MachineLoop
class  MachineLoopAnalysis
 Analysis pass that exposes the MachineLoopInfo for a machine function. More...
class  MachineLoopInfo
class  MachineLoopInfoWrapperPass
class  MachineLoopPrinterPass
 Printer pass for the LoopAnalysis results. More...
class  MachineMemOperand
 A description of a memory reference used in the backend. More...
class  MachineModuleAnalysis
 An analysis that produces MachineModuleInfo for a module. 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  MachineModuleInfoWasm
 MachineModuleInfoWasm - This is a MachineModuleInfoImpl implementation for Wasm targets. More...
class  MachineModuleInfoWrapperPass
class  MachineModuleSlotTracker
class  MachineOperand
 MachineOperand class - Representation of each machine instruction operand. 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  MachineOptimizationRemarkEmitterAnalysis
 The analysis pass. 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...
class  MachinePostDominatorTree
 MachinePostDominatorTree - an analysis pass wrapper for DominatorTree used to compute the post-dominator tree for MachineFunctions. More...
class  MachinePostDominatorTreeAnalysis
class  MachinePostDominatorTreePrinterPass
class  MachinePostDominatorTreeWrapperPass
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...
class  MachineSanitizerBinaryMetadataPass
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  MachineSchedulerPass
class  MachineSDNode
 An SDNode that represents everything that will be needed to construct a MachineInstr. More...
class  MachineSinkingPass
class  MachineSSAUpdater
 MachineSSAUpdater - This class updates SSA form for a set of virtual registers defined in multiple blocks. More...
class  MachineTraceMetrics
class  MachineTraceMetricsAnalysis
struct  MachineTraceMetricsVerifierPass
 Verifier pass for MachineTraceMetrics. More...
class  MachineTraceMetricsWrapperPass
class  MachineUniformityAnalysis
class  MachineUniformityAnalysisPass
 Legacy analysis pass which computes a MachineUniformityInfo. More...
class  MachineUniformityPrinterPass
class  MachineVerifierPass
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  Mangler
class  mapped_iterator
class  mapped_iterator_base
 A base type of mapped iterator, that is useful for building derived iterators that do not need/want to store the map function (as in mapped_iterator). More...
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  MaskedHistogramSDNode
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  MatrixBuilder
struct  MaybeAlign
 This struct is a compact representation of a valid (power of two) or undefined (0) alignment. More...
struct  MBB2NumberFunctor
class  MBBReachingDefsInfo
struct  MBBSectionID
class  MBFIWrapper
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  MCAsmInfoGOFF
class  MCAsmInfoMicrosoft
class  MCAsmInfoWasm
class  MCAsmInfoXCOFF
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  MCBoundaryAlignFragment
 Represents required padding such that a particular other set of fragments does not cross a particular power-of-two boundary. More...
class  MCCFIInstruction
class  MCCodeEmitter
 MCCodeEmitter - Generic instruction encoding interface. 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  MCDecodedPseudoProbe
class  MCDecodedPseudoProbeInlineTree
class  MCDisassembler
 Superclass for all disassemblers. More...
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. More...
class  MCDwarfFrameEmitter
struct  MCDwarfFrameInfo
class  MCDwarfLineAddr
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  MCDXContainerStreamer
class  MCDXContainerTargetWriter
class  MCELFObjectTargetWriter
class  MCELFStreamer
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  MCGOFFObjectTargetWriter
class  MCGOFFStreamer
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  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  MCNopsFragment
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  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...
class  MCPseudoProbe
 Instances of this class represent a pseudo probe instance for a pseudo probe table entry, which is created during a machine instruction is assembled and uses an address from a temporary label created at the current address in the current section. More...
class  MCPseudoProbeBase
class  MCPseudoProbeDecoder
struct  MCPseudoProbeFuncDesc
class  MCPseudoProbeInlineTree
class  MCPseudoProbeInlineTreeBase
class  MCPseudoProbeSections
 Instances of this class represent the pseudo probes inserted into a compile unit. More...
class  MCPseudoProbeTable
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  MCRegister
 Wrapper class representing physical registers. Should be passed by value. 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  MCRelocationInfo
 Create MCExprs from relocations found in an object file. More...
class  MCResourceInfo
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  MCSectionDXContainer
class  MCSectionELF
 This represents a section on linux, lots of unix variants and some bare metal systems. More...
class  MCSectionGOFF
class  MCSectionMachO
 This represents a section on a Mach-O system (used by Mac OS X). More...
class  MCSectionSPIRV
class  MCSectionWasm
 This represents a section on wasm. More...
class  MCSectionXCOFF
class  MCSFrameEmitter
class  MCSpecifierExpr
 Extension point for target-specific MCExpr subclasses with a relocation specifier, serving as a replacement for MCSymbolRefExpr::VariantKind. More...
class  MCSPIRVObjectTargetWriter
class  MCSPIRVStreamer
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  MCSymbolGOFF
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
struct  MCSymbolTableValue
 The value for an entry in the symbol table of an MCContext. More...
class  MCSymbolWasm
class  MCSymbolXCOFF
class  MCTargetAsmParser
 MCTargetAsmParser - Generic interface to target specific assembly parsers. More...
class  MCTargetExpr
 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  MCUnwindV2EpilogTargetExpr
 MCExpr that represents the epilog unwind code in an unwind table. More...
class  MCValue
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  MCXCOFFObjectTargetWriter
class  MCXCOFFStreamer
class  MD5
class  MDAttachments
 Multimap-like storage for metadata attachments. More...
class  MDBuilder
class  MDNode
 Metadata node. More...
struct  MDNodeInfo
 DenseMapInfo for MDNode subclasses. More...
struct  MDNodeKeyImpl
struct  MDNodeKeyImpl< DIBasicType >
struct  MDNodeKeyImpl< DICommonBlock >
struct  MDNodeKeyImpl< DICompositeType >
struct  MDNodeKeyImpl< DIDerivedType >
struct  MDNodeKeyImpl< DIEnumerator >
struct  MDNodeKeyImpl< DIExpression >
struct  MDNodeKeyImpl< DIFile >
struct  MDNodeKeyImpl< DIFixedPointType >
struct  MDNodeKeyImpl< DIGenericSubrange >
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< DIStringType >
struct  MDNodeKeyImpl< DISubprogram >
struct  MDNodeKeyImpl< DISubrange >
struct  MDNodeKeyImpl< DISubrangeType >
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...
struct  MDProfLabels
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  MemDerefPrinterPass
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...
struct  MemOp
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  MemoryClauseInitialScheduleStage
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  MemoryEffectsBase
class  MemoryLocation
 Representation for a specific memory location. More...
struct  MemoryOpRemark
class  MemoryPhi
 Represents phi nodes for memory accesses. More...
struct  MemorySanitizerOptions
struct  MemorySanitizerPass
 A module 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  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  MemorySSAWalkerPrinterPass
 Printer pass for MemorySSA via the walker. 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  MemProfContextDisambiguation
class  MemProfilerPass
 Public interface to the memory profiler pass for instrumenting code to profile memory accesses. More...
class  MemProfUsePass
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 and llvm.memset.inline intrinsics. More...
class  MemSetPatternInst
 This class wraps the llvm.experimental.memset.pattern intrinsic. More...
class  MemTransferBase
 Common base class for all memory transfer intrinsics. More...
class  MemTransferInst
 This class wraps the llvm.memcpy/memmove intrinsics. More...
struct  MergedLoadStoreMotionOptions
class  MergedLoadStoreMotionPass
class  MergeFunctionsPass
 Merge identical functions. More...
struct  MergeICmpsPass
 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...
struct  MetadataLoaderCallbacks
class  MetadataTracking
 API for tracking metadata references through RAUW and deletion. More...
struct  MetaRenamerPass
class  MFPropsModifier
 An RAII based helper class to modify MachineFunctionProperties when running pass. More...
struct  MIBInfo
 Summary of a single MIB in a memprof metadata on allocations. More...
class  MIBundleBuilder
 Helper class for constructing bundles of MachineInstrs. More...
class  MIBundleOperandIteratorBase
 MIBundleOperandIteratorBase - Iterator that visits all operands in a bundle of MachineInstrs. More...
class  MIBundleOperands
 MIBundleOperands - Iterate over all operands in a bundle of machine instructions. More...
 Set of metadata that should be preserved when using BuildMI(). More...
struct  MinMax
class  MinMaxIntrinsic
 This class represents min/max intrinsics. More...
class  Mips16DAGToDAGISel
class  Mips16DAGToDAGISelLegacy
class  Mips16FrameLowering
class  Mips16InstrInfo
class  Mips16RegisterInfo
class  Mips16TargetLowering
struct  MipsABIFlagsSection
class  MipsABIInfo
class  MipsAnalyzeImmediate
class  MipsAsmBackend
class  MipsAsmPrinter
class  MipsCallLowering
class  MipsCCState
class  MipsCOFFMCAsmInfo
class  MipsDAGToDAGISel
class  MipsDAGToDAGISelLegacy
class  MipsebTargetMachine
 Mips32/64 big endian target machine. More...
class  MipsELFMCAsmInfo
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  MipsMCCodeEmitter
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  MipsSEDAGToDAGISelLegacy
class  MipsSEFrameLowering
class  MipsSEInstrInfo
class  MipsSelectionDAGInfo
class  MipsSERegisterInfo
class  MipsSETargetLowering
class  MipsSubtarget
class  MipsTargetAsmStreamer
class  MipsTargetELFStreamer
class  MipsTargetLowering
class  MipsTargetMachine
class  MipsTargetObjectFile
class  MipsTargetStreamer
class  MipsTTIImpl
class  MIRAddFSDiscriminators
class  MIRFormatter
 MIRFormater - Interface to format MIR operand based on target. More...
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  MIRProfileLoader
class  MIRProfileLoaderPass
struct  MIToken
 A token produced by the machine instruction lexer. More...
class  MLInlineAdvice
 InlineAdvice that tracks changes post inlining. More...
class  MLInlineAdvisor
class  MLModelRunner
 MLModelRunner interface: abstraction of a mechanism for evaluating a ML model. More...
class  MLPriorityAdvisor
 Helper class to manipulate !mmra metadata nodes. More...
class  ModifiedPostOrder
 Construct a specially modified post-order traversal of cycles. More...
class  Module
 A Module instance is used to store all the information related to an LLVM module. More...
class  ModuleDebugInfoPrinterPass
class  ModuleInlinerPass
 The module inliner pass for the new pass manager. More...
class  ModuleInlinerWrapperPass
 Module pass, wrapping the inliner pass. More...
class  ModuleMemProfilerPass
 Public interface to the memory profiler module pass for instrumenting code to profile memory allocations and accesses. 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
struct  ModuleThreadSanitizerPass
 A module pass for tsan instrumentation. More...
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  ModuloSchedule
 Represents a schedule for a single-block loop. More...
class  ModuloScheduleExpander
 The ModuloScheduleExpander takes a ModuloSchedule and expands it in-place, rewriting the old loop and inserting prologs and epilogs as required. More...
class  ModuloScheduleExpanderMVE
 Expand the kernel using modulo variable expansion algorithm (MVE). More...
class  ModuloScheduleTestAnnotater
 Expander that simply annotates each scheduled instruction with a post-instr symbol that can be consumed by the ModuloScheduleTest pass. More...
class  MoveAutoInitPass
class  MSP430AttributeParser
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...
class  MSP430RegisterInfo
class  MSP430SelectionDAGInfo
class  MSP430Subtarget
class  MSP430TargetELFStreamer
class  MSP430TargetLowering
class  MSP430TargetMachine
 MSP430TargetMachine. More...
class  MSVCPError
class  MSVCPExpected
class  MulOperator
struct  MultiClass
class  MultiHazardRecognizer
struct  MustBeExecutedContextExplorer
 A "must be executed context" for a given program point PP is the set of instructions, potentially before and after PP, that are executed always when PP is reached. More...
class  MustBeExecutedContextPrinterPass
struct  MustBeExecutedIterator
 Must be executed iterators visit stretches of instructions that are guaranteed to be executed together, potentially with other instruction executed in-between. More...
class  MustExecutePrinterPass
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  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
class  Negator
struct  NewArchiveMember
class  NewGVNPass
struct  NfaStatePair
 Forward define the pair type used by the automata transition info tables. More...
struct  NoActiveBlocksOption
class  NoAliasScopeDeclInst
class  NoCFIValue
 Wrapper for a value that won't be replaced with a CFI jump table pointer in LowerTypeTestsModule. More...
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  NoInferenceModelRunner
 A pseudo model runner. More...
class  NoinlineNonPrevailing
class  NonLocalDepEntry
 This is an entry in the NonLocalDepInfo cache. More...
class  NonLocalDepResult
 This is a result from a NonLocal dependence query. More...
class  NonRelocatableStringpool
 A string table that doesn't need relocations. More...
class  NoOpCGSCCAnalysis
 No-op CGSCC analysis. More...
struct  NoOpCGSCCPass
 No-op CGSCC pass which does nothing. More...
class  NoOpFunctionAnalysis
 No-op function analysis. More...
struct  NoOpFunctionPass
 No-op function pass which does nothing. More...
class  NoOpLoopAnalysis
 No-op loop analysis. More...
struct  NoOpLoopNestPass
 No-op loop nest pass which does nothing. More...
struct  NoOpLoopPass
 No-op loop pass which does nothing. More...
struct  NoOpMachineFunctionPass
 No-op machine function pass which does nothing. More...
class  NoOpModuleAnalysis
 No-op module analysis. More...
struct  NoOpModulePass
 No-op module pass which does nothing. More...
class  NoopSavedModelImpl
 A mock class satisfying the interface expected by ReleaseModeModelRunner for its TGen parameter. More...
class  NoopStatistic
class  NotFoundError
struct  NullableValueCastFailed
 All of these cast traits are meant to be implementations for useful casts that users may want to use that are outside the standard behavior. More...
class  NumberedValues
 Mapping from value ID to value, which also remembers what the next unused ID is. More...
struct  NumericalStabilitySanitizerPass
 A function pass for nsan instrumentation. More...
class  NumericSubstitution
class  NumericVariable
 Class representing a numeric variable and its associated current value. More...
class  NumericVariableUse
 Class representing the use of a numeric variable in the AST of an expression. More...
class  NVPTXAA
 Analysis pass providing a never-invalidated alias analysis result. More...
class  NVPTXAAResult
class  NVPTXAAWrapperPass
 Legacy wrapper pass to provide the NVPTXAAResult object. More...
class  NVPTXAsmPrinter
class  NVPTXAsmTargetStreamer
struct  NVPTXCopyByValArgsPass
class  NVPTXCtorDtorLoweringPass
 Lower llvm.global_ctors and llvm.global_dtors to special kernels. More...
class  NVPTXDAGToDAGISel
class  NVPTXDAGToDAGISelLegacy
class  NVPTXExternalAAWrapper
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
struct  NVPTXLowerArgsPass
class  NVPTXMachineFunctionInfo
class  NVPTXMCAsmInfo
class  NVPTXRegisterInfo
struct  NVPTXScopes
class  NVPTXSelectionDAGInfo
class  NVPTXSubtarget
struct  NVPTXTagInvariantLoadsPass
class  NVPTXTargetLowering
class  NVPTXTargetMachine
 NVPTXTargetMachine. More...
class  NVPTXTargetMachine32
class  NVPTXTargetMachine64
class  NVPTXTargetObjectFile
class  NVPTXTargetStreamer
 Implments NVPTX-specific streamer. More...
class  NVPTXTTIImpl
struct  NVVMIntrRangePass
struct  NVVMReflectPass
struct  ObjCARCContractPass
struct  ObjCARCExpandPass
struct  ObjCARCOptPass
struct  ObjCSelectorNames
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  ObjectFile
 This class is the base class for all object file types. 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...
class  OccInitialScheduleStage
struct  OffsetAndUnitID
 Helper class to identify an entry in DWARF5AccelTable based on their DIE offset and UnitID. More...
struct  OffsetSpan
 OffsetSpan - Used internally by ObjectSizeOffsetVisitor. More...
struct  OffsetsTag
struct  on_first
 Function object to apply a binary function to the first component of a std::pair. More...
struct  once_flag
 The llvm::once_flag structure. 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  OpenMPOptCGSCCPass
class  OpenMPOptPass
 OpenMP optimizations pass. 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< AddrSpaceCastOperator >
struct  OperandTraits< AtomicCmpXchgInst >
struct  OperandTraits< AtomicRMWInst >
struct  OperandTraits< BinaryConstantExpr >
struct  OperandTraits< BinaryOperator >
struct  OperandTraits< BitCastOperator >
struct  OperandTraits< BlockAddress >
struct  OperandTraits< BranchInst >
struct  OperandTraits< CallBase >
struct  OperandTraits< CastConstantExpr >
struct  OperandTraits< CatchReturnInst >
struct  OperandTraits< CatchSwitchInst >
struct  OperandTraits< CleanupReturnInst >
struct  OperandTraits< CmpInst >
struct  OperandTraits< ConstantAggregate >
struct  OperandTraits< ConstantExpr >
struct  OperandTraits< ConstantPtrAuth >
struct  OperandTraits< DSOLocalEquivalent >
struct  OperandTraits< ExtractElementConstantExpr >
struct  OperandTraits< ExtractElementInst >
struct  OperandTraits< FuncletPadInst >
struct  OperandTraits< Function >
struct  OperandTraits< GEPOperator >
struct  OperandTraits< GetElementPtrConstantExpr >
struct  OperandTraits< GetElementPtrInst >
struct  OperandTraits< GlobalAlias >
struct  OperandTraits< GlobalIFunc >
struct  OperandTraits< GlobalVariable >
struct  OperandTraits< IndirectBrInst >
struct  OperandTraits< InsertElementConstantExpr >
struct  OperandTraits< InsertElementInst >
struct  OperandTraits< InsertValueInst >
struct  OperandTraits< LandingPadInst >
struct  OperandTraits< MemoryDef >
struct  OperandTraits< MemoryPhi >
struct  OperandTraits< MemoryUse >
struct  OperandTraits< MemoryUseOrDef >
struct  OperandTraits< NoCFIValue >
struct  OperandTraits< OverflowingBinaryOperator >
struct  OperandTraits< PHINode >
struct  OperandTraits< PossiblyExactOperator >
struct  OperandTraits< PtrToAddrOperator >
struct  OperandTraits< PtrToIntOperator >
struct  OperandTraits< ResumeInst >
struct  OperandTraits< ReturnInst >
struct  OperandTraits< SelectInst >
struct  OperandTraits< ShuffleVectorConstantExpr >
struct  OperandTraits< ShuffleVectorInst >
struct  OperandTraits< StoreInst >
struct  OperandTraits< SwitchInst >
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  OptDisable
 This class implements a mechanism to disable passes and individual optimizations at compile time based on a command line option (-opt-disable) in order to study how single transformations, or combinations thereof, affect the IR. More...
class  OptimizationLevel
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...
struct  OptimizedStructLayoutField
 A field in a structure. More...
class  OptimizePHIsPass
struct  OptionalOperandTraits
 OptionalOperandTraits - when the number of operands may change at runtime. More...
struct  OptionalValueCast
 This cast trait provides std::optional<T> casting. More...
class  OptLevelChanger
 This class is used by SelectionDAGISel to temporarily override the optimization level on a per-function basis. More...
class  OptNoneInstrumentation
class  OptPassGate
 Extensions to this class implement mechanisms to disable passes and individual optimizations at compile time. More...
class  OptPassGateInstrumentation
class  OrderedChangedData
class  OuterAnalysisManagerProxy
 An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR unit. More...
struct  OutlinableRegion
 The OutlinableRegion holds all the information for a specific region, or sequence of instructions. More...
class  OutlinedHashTree
struct  OutlinedHashTreeRecord
class  OutputCategoryAggregator
class  OverflowError
 Class to represent an overflow error that might result when manipulating a value. More...
class  OverflowingBinaryOperator
 Utility class for integer operators which may exhibit overflow - Add, Sub, Mul, and Shl. More...
struct  OverflowTracking
struct  OverlapFuncFilters
struct  OverlapStats
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  PAEvalPass
class  PagedVector
 A vector that allocates memory in pages. More...
struct  pair_hash
struct  ParsedModuleAndIndex
 Holds the Module and ModuleSummaryIndex returned by the interfaces that parse both. More...
struct  ParseInstructionInfo
struct  ParserCallbacks
class  ParseResult
 This class represents success/failure for parsing-like operations that find it important to chain together failable operations with ||. More...
class  ParseStatus
 Ternary parse status returned by various parse* methods. More...
class  PartialInlinerPass
 Pass to remove unused function declarations. More...
class  PartiallyInlineLibCallsPass
class  PartialOrderingVisitor
struct  PartialReductionChain
 A chain of instructions that form a partial reduction. More...
class  Pass
 Pass interface - Implemented by all 'passes'. 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  PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >
class  PassManagerBase
 PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having to hard-code what kind of pass manager it is. 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  PatchableFunctionPass
struct  PatchItem
class  PatchPointOpers
 MI-level patchpoint operands. More...
class  Pattern
struct  PatternsForOpcode
 Map from opcode to pattern list by binary search. More...
class  PBQPRAConstraint
 Abstract base for classes implementing PBQP register allocation constraints (e.g. More...
class  PBQPRAConstraintList
 PBQP register allocation constraint composer. More...
class  PeelingModuloScheduleExpander
 A reimplementation of ModuloScheduleExpander. More...
class  PeepholeOptimizerPass
struct  PerFunctionMIParsingState
struct  PerTargetMIParsingState
class  PGOContextualProfile
 The instrumented contextual profile, produced by the CtxProfAnalysis. More...
class  PGOCtxProfContext
 A node (context) in the loaded contextual profile, suitable for mutation during IPO passes. More...
class  PGOCtxProfFlatteningPass
struct  PGOCtxProfile
class  PGOCtxProfileReader
class  PGOCtxProfileWriter
 Write one or more ContextNodes to the provided raw_fd_stream. More...
class  PGOCtxProfLoweringPass
struct  PGOForceFunctionAttrsPass
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  PGOInstrumentationGenCreateVar
 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  PHIEliminationPass
class  PhiLoweringHelper
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  PhysicalRegisterUsageAnalysis
class  PhysicalRegisterUsageInfo
class  PhysicalRegisterUsageInfoPrinterPass
class  PhysicalRegisterUsageInfoWrapperLegacy
struct  PhysRegInfo
 Information about how a physical register Reg is used by a set of operands. More...
struct  PhysRegSUOper
 Record a physical register access. More...
class  PiBlockDDGNode
 Subclass of DDGNode representing a pi-block. More...
class  PipelineTuningOptions
 Tunable parameters for passes in the default pipelines. More...
class  PlaceSafepointsPass
class  PluginInlineAdvisorAnalysis
 Used for dynamically registering InlineAdvisors as plugins. More...
class  PluginInlineOrderAnalysis
 Used for dynamically loading instances of InlineOrder as plugins. 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  PointerDiffInfo
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< PointerUnion< PTs... > >
struct  PointerLikeTypeTraits< ReachingDef >
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 or more pointer types, with the discriminator in the low bit of the pointer. More...
struct  PoisonFlags
class  PoisoningVH
 Value handle that poisons itself if the Value is deleted. More...
class  PoisonValue
 In order to facilitate speculative execution, many instructions do not invoke immediate undefined behavior when provided with illegal operands, and return a poison value instead. More...
struct  PolynomialInfo
 The structure that is returned when a polynomial algorithm was recognized by the analysis. More...
class  PopulateLoopsDFS
 Populate all loop data in a stable order during a single forward DFS. More...
class  PossiblyDisjointInst
 An or instruction, which can be marked as "disjoint", indicating that the inputs don't have a 1 in the same bit position. More...
class  PossiblyExactOperator
 A udiv, sdiv, lshr, or ashr instruction, which can be marked as "exact", indicating that no bits are destroyed. More...
class  PossiblyNonNegInst
 Instruction that can have a nneg flag (zext/uitofp). 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
struct  PostDomOnlyPrinter
struct  PostDomOnlyViewer
struct  PostDomPrinter
struct  PostDomViewer
class  PostGenericScheduler
 PostGenericScheduler - Interface to the scheduling algorithm used by ScheduleDAGMI. More...
class  PostMachineSchedulerPass
struct  PostOrderFunctionAttrsPass
 Computes function attributes in post-order over the call graph. More...
class  PostRAHazardRecognizerPass
class  PostRAMachineSinkingPass
class  PostRASchedulerPass
struct  PotentialValuesState
 A class for a set state. More...
class  PPC64LinuxTargetObjectFile
 PPC64LinuxTargetObjectFile - This implementation is used for 64-bit PowerPC Linux. More...
class  PPCCallLowering
class  PPCDispatchGroupSBHazardRecognizer
 PPCDispatchGroupSBHazardRecognizer - This class implements a scoreboard-based hazard recognizer for PPC ooo processors with dispatch-group hazards. More...
class  PPCELFMCAsmInfo
class  PPCELFStreamer
class  PPCFrameLowering
class  PPCFunctionInfo
 PPCFunctionInfo - This class is derived from MachineFunction private PowerPC target-specific information for each MachineFunction. More...
class  PPCGenRegisterBankInfo
class  PPCHazardRecognizer970
 PPCHazardRecognizer970 - This class defines a finite state automata that models the dispatch logic on the PowerPC 970 (aka G5) processor. More...
class  PPCIncomingValueHandler
class  PPCInstPrinter
class  PPCInstrInfo
class  PPCLegalizerInfo
 This class provides the information for the PowerPC target legalizer for GlobalISel. More...
class  PPCMCCodeEmitter
class  PPCPostRASchedStrategy
 A MachineSchedStrategy implementation for PowerPC post RA scheduling. More...
class  PPCPreRASchedStrategy
 A MachineSchedStrategy implementation for PowerPC pre RA scheduling. More...
class  PPCRegisterBankInfo
class  PPCRegisterInfo
class  PPCSelectionDAGInfo
class  PPCSubtarget
class  PPCTargetLowering
class  PPCTargetMachine
 Common code between 32-bit and 64-bit PowerPC targets. More...
class  PPCTargetStreamer
class  PPCTTIImpl
class  PPCXCOFFMCAsmInfo
class  PPCXCOFFStreamer
class  PredicateAssume
class  PredicateBase
class  PredicateBranch
struct  PredicateConstraint
 Constraint for a predicate of the form "cmp Pred Op, OtherOp", where Op is the value the constraint applies to (the bitcast result). More...
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  PredicateInfoBuilder
class  PredicateInfoPrinterPass
 Printer pass for PredicateInfo. More...
struct  PredicateInfoVerifierPass
 Verifier pass for PredicateInfo. More...
class  PredicateSwitch
class  PredicateWithEdge
class  PredIterator
class  PredIteratorCache
 PredIteratorCache - This class is an extremely trivial cache for predecessor iterator queries. More...
struct  PreferredTuple
struct  PreISelIntrinsicLoweringPass
class  PreRARematStage
 Attempts to reduce function spilling or, if there is no spilling, to increase function occupancy by one with respect to ArchVGPR usage by sinking trivially rematerializable instructions to their use. More...
class  PreservedAnalyses
 A set of analyses that are preserved following a run of a transformation pass. More...
struct  PreservedCastFlags
class  PreservedCFGCheckerInstrumentation
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  PrintCrashIRInstrumentation
struct  PrintedExpr
 A user-facing string representation of a DWARF expression. More...
class  PrintFunctionPass
 Pass (for the new pass manager) 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  PrintMIRPass
class  PrintMIRPreparePass
class  PrintModulePass
 Pass (for the new pass manager) for printing a Module as LLVM's text IR assembly. More...
class  PrintPassInstrumentation
struct  PrintPassOptions
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  ProcessImplicitDefsPass
class  ProfileAnnotator
class  ProfileAnnotatorImpl
class  ProfileInjectorPass
 Inject MD_prof metadata where it's missing. 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  ProfileVerifierPass
 Checks that MD_prof is present on every instruction that supports it. More...
struct  ProfiParams
 Various thresholds and options controlling the behavior of the profile inference algorithm. More...
class  ProfOStream
class  PrologEpilogInserterPass
class  PrologEpilogSGPRSaveRestoreInfo
class  PrologEpilogSGPRSpillBuilder
class  PromotePass
class  PSetIterator
 Iterate over the pressure sets affected by the given physical or virtual register. More...
struct  PseudoProbe
class  PseudoProbeDescriptor
struct  PseudoProbeDwarfDiscriminator
class  PseudoProbeHandler
class  PseudoProbeInst
class  PseudoProbeManager
class  PseudoProbeSDNode
 This SDNode is used for PSEUDO_PROBE values, which are the function guid and the index of the basic block being probed. More...
class  PseudoProbeUpdatePass
class  PseudoProbeVerifier
class  PseudoSourceValue
 Special value supplied for machine level alias analysis. More...
class  PseudoSourceValueManager
 Manages creation of pseudo source values. More...
struct  PtrAddChain
class  PtrToAddrInst
 This class represents a cast from a pointer to an address (non-capturing ptrtoint). More...
class  PtrToAddrOperator
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  RABasic
 RABasic provides a minimal implementation of the basic register allocation algorithm. More...
class  RAGreedy
class  RAIIDelegateInstaller
 A simple RAII based Delegate installer. More...
class  RAIIMFObsDelInstaller
 Class to install both of the above. More...
class  RAIIMFObserverInstaller
 A simple RAII based Observer installer. More...
class  RAIITemporaryObserverInstaller
 A simple RAII based Observer installer. More...
struct  RandomIRBuilder
class  RandomNumberGenerator
 A random number generator. More...
struct  RangeListEntry
 A class representing a single range list entry. More...
struct  RangeSpan
struct  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_fd_stream
 A raw_ostream of a file for reading/writing/seeking. 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_ostream_proxy
 Non-owning proxy for a raw_ostream. More...
class  raw_ostream_proxy_adaptor
 Adaptor to create a stream class that proxies another raw_ostream. More...
class  raw_pwrite_stream
 An abstract base class for streams implementations that also support a pwrite operation. More...
class  raw_pwrite_stream_proxy
 Non-owning proxy for a raw_pwrite_stream. More...
class  raw_pwrite_stream_proxy_adaptor
 Adaptor for creating a stream that proxies a raw_pwrite_stream. More...
class  raw_sha1_ostream
 A raw_ostream that hash the content using the sha1 algorithm. More...
class  raw_socket_stream
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  RawLocationWrapper
 Lightweight class that wraps the location operand metadata of a debug intrinsic. More...
class  RCToken
class  ReachingDef
 Thin wrapper around "int" used to store reaching definitions, using an encoding that makes it compatible with TinyPtrVector. More...
class  ReachingDefAnalysis
 This class provides the reaching def analysis. More...
class  ReadyQueue
 Helpers for implementing custom MachineSchedStrategy classes. More...
struct  RealtimeSanitizerPass
 Create ctor and init functions. More...
class  ReassociatePass
 Reassociate commutative expressions. More...
struct  RecomputeGlobalsAAPass
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 - Holds exactly one of a Record, ForeachLoop, or AssertionInfo. More...
class  RecordStreamer
class  RecordVal
 This class represents a field in a record, including its name, type, value, and source location. 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  RedundantDbgInstEliminationPass
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  RegAllocEvictionAdvisor
class  RegAllocEvictionAdvisorAnalysis
 A MachineFunction analysis for fetching the Eviction Advisor. More...
class  RegAllocEvictionAdvisorAnalysisLegacy
 ImmutableAnalysis abstraction for fetching the Eviction Advisor. More...
class  RegAllocEvictionAdvisorProvider
 Common provider for legacy and new pass managers. More...
class  RegAllocFastPass
class  RegAllocPriorityAdvisor
 Interface to the priority advisor, which is responsible for prioritizing live ranges. More...
class  RegAllocPriorityAdvisorAnalysis
class  RegAllocPriorityAdvisorAnalysisLegacy
class  RegAllocPriorityAdvisorProvider
 Common provider for getting the priority advisor and logging rewards. More...
class  RegAllocScore
 Regalloc score. More...
class  RegAllocScoring
class  RegAllocTypeParser
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
struct  RegImmPair
 Used to describe a register and immediate addition. More...
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...
class  RegionPressureMap
struct  RegionTraits
struct  RegionTraits< Function >
struct  RegionTraits< MachineFunction >
class  Register
 Wrapper class representing virtual and physical registers. More...
struct  RegisterAsmPrinter
 RegisterAsmPrinter - Helper template for registering a target specific assembly printer, for use in the target machine initialization function. More...
class  RegisterBank
 This class implements the register bank concept. More...
class  RegisterBankInfo
 Holds all the information related to register banks. More...
class  RegisterClassInfo
class  RegisterCoalescerPass
struct  RegisterImmPair
class  RegisterMaskSDNode
struct  RegisterMCAsmBackend
 RegisterMCAsmBackend - Helper template for registering a target specific assembler backend. More...
struct  RegisterMCAsmInfo
 RegisterMCAsmInfo - Helper template for registering a target assembly info implementation. More...
struct  RegisterMCAsmInfoFn
 RegisterMCAsmInfoFn - Helper template for registering a target assembly info implementation. More...
struct  RegisterMCAsmParser
 RegisterMCAsmParser - Helper template for registering a target specific assembly parser, for use in the target machine initialization function. More...
struct  RegisterMCCodeEmitter
 RegisterMCCodeEmitter - Helper template for registering a target specific machine code emitter, for use in the target initialization function. More...
struct  RegisterMCInstrAnalysis
 RegisterMCInstrAnalysis - Helper template for registering a target instruction analyzer implementation. More...
struct  RegisterMCInstrAnalysisFn
 RegisterMCInstrAnalysisFn - Helper template for registering a target instruction analyzer implementation. More...
struct  RegisterMCInstrInfo
 RegisterMCInstrInfo - Helper template for registering a target instruction info implementation. More...
struct  RegisterMCInstrInfoFn
 RegisterMCInstrInfoFn - Helper template for registering a target instruction info implementation. More...
struct  RegisterMCObjectFileInfo
 Helper template for registering a target object file info implementation. More...
struct  RegisterMCObjectFileInfoFn
 Helper template for registering a target object file info implementation. More...
struct  RegisterMCRegInfo
 RegisterMCRegInfo - Helper template for registering a target register info implementation. More...
struct  RegisterMCRegInfoFn
 RegisterMCRegInfoFn - Helper template for registering a target register info implementation. More...
struct  RegisterMCSubtargetInfo
 RegisterMCSubtargetInfo - Helper template for registering a target subtarget info implementation. More...
struct  RegisterMCSubtargetInfoFn
 RegisterMCSubtargetInfoFn - Helper template for registering a target subtarget info implementation. More...
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
class  RegisterRegAllocBase
 RegisterRegAllocBase class - Track the registration of register allocators. More...
class  RegisterScheduler
class  RegisterSDNode
struct  RegisterTarget
 RegisterTarget - Helper template for registering a target, for use in the target's initialization function. More...
struct  RegisterTargetMachine
 RegisterTargetMachine - Helper template for registering a target machine implementation, for use in the target machine initialization function. More...
class  RegisterTargetPassConfigCallback
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...
class  RegOrConstant
 Represents a value which can be a Register or a constant. 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
 This struct represents the registers (physical or virtual) that a particular set of values is assigned, and the type information about the value. More...
class  RegToMemPass
class  RegToMemWrapperPass
struct  RegTraits
class  RegUsageInfoCollectorPass
class  RegUsageInfoPropagationPass
class  ReleaseModeModelRunner
class  ReleaseModePriorityAdvisorAnalysisLegacy
class  ReleaseModePriorityAdvisorProvider
class  RelLookupTableConverterPass
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
struct  remove_cvref
class  remove_cvref_t
class  RemoveLoadsIntoFakeUsesPass
class  RemoveRedundantDebugValuesPass
class  RenameIndependentSubregsPass
class  ReplaceableMetadataImpl
 Shared implementation of use-lists for replaceable metadata. More...
struct  ReplacementItem
struct  ReplaceWithVeclib
struct  ReplaceWithVeclibLegacy
class  ReplayInlineAdvisor
 Replay inline advisor that uses optimization remarks from inlining of previous build to guide current inlining. More...
struct  ReplayInlinerSettings
 Replay Inliner Setup. More...
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.
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...
class  ResolverError
struct  resource_sort
 Sorting functions for the Available queue. More...
class  ResourceManager
class  ResourcePriorityQueue
class  ResourceSegments
 ResourceSegments are a collection of intervals closed on the left and opened on the right: More...
class  ResumeInst
 Resume the propagation of an exception. More...
struct  RetainedKnowledge
 Represent one information held inside an operand bundle of an llvm.assume. 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
class  RewriteBuffer
 RewriteBuffer - As code is rewritten, SourceBuffer's from the original input with modifications get a new RewriteBuffer associated with them. More...
class  RewriteRope
 RewriteRope - A powerful string class. More...
struct  RewriteStatepointsForGC
class  RewriteSymbolPass
class  RGPassManager
 The pass manager to schedule RegionPasses. More...
class  RISCVAsmBackend
class  RISCVAttributeParser
class  RISCVCallLowering
class  RISCVConstantPoolValue
 A RISCV-specific constant pool value. More...
class  RISCVDAGToDAGISel
class  RISCVDAGToDAGISelLegacy
class  RISCVELFStreamer
class  RISCVELFTargetObjectFile
 This implementation is used for RISC-V ELF targets. More...
class  RISCVFrameLowering
class  RISCVGenRegisterBankInfo
class  RISCVInstPrinter
class  RISCVInstrInfo
class  RISCVISAInfo
class  RISCVLegalizerInfo
class  RISCVMachineFunctionInfo
 RISCVMachineFunctionInfo - This class is derived from MachineFunctionInfo and contains private RISCV-specific information for each MachineFunction. More...
class  RISCVMCAsmInfo
class  RISCVMCObjectFileInfo
struct  RISCVOptionArchArg
class  RISCVRegisterBankInfo
 This class provides the information for the target register banks. More...
struct  RISCVRegisterInfo
class  RISCVSelectionDAGInfo
class  RISCVSubtarget
class  RISCVTargetAsmStreamer
class  RISCVTargetELFStreamer
class  RISCVTargetLowering
class  RISCVTargetMachine
class  RISCVTargetStreamer
class  RISCVTTIImpl
class  RISCVVectorMaskDAGMutation
class  RNSuccIterator
 Hierarchical RegionNode successor iterator. More...
class  RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >
 Flat RegionNode iterator.
class  RootDDGNode
 Subclass of DDGNode representing the root node of the graph. More...
struct  RopePiece
 RopePiece - This class represents a view into a RopeRefCountString object. More...
class  RopePieceBTree
class  RopePieceBTreeIterator
 RopePieceBTreeIterator - This class provides read-only forward iteration over bytes that are in a RopePieceBTree. More...
struct  RopeRefCountString
 RopeRefCountString - This struct is allocated with 'new char[]' from the heap, and represents a reference counted chunk of string data. More...
class  RTDyldMemoryManager
class  RTTIExtends
 Inheritance utility for extensible RTTI. More...
class  RTTIRoot
 Base class for the extensible RTTI hierarchy. More...
struct  RuntimeCheckingPtrGroup
 A grouping of pointers. More...
class  RuntimeDyld
class  RuntimeDyldChecker
 RuntimeDyld invariant checker for verifying that RuntimeDyld has correctly applied relocations. More...
class  RuntimeDyldCheckerExprEval
class  RuntimeDyldCheckerImpl
class  RuntimeDyldCOFF
class  RuntimeDyldCOFFAArch64
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...
class  SafepointIRVerifierPass
 Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs. More...
class  SafeStackPass
struct  SameType
class  SampleContextTracker
class  SampleProfileInference
 Sample profile inference pass. More...
class  SampleProfileLoaderBaseImpl
class  SampleProfileLoaderPass
 The sample profiler data loader pass. More...
class  SampleProfileMatcher
class  SampleProfileProbePass
class  SampleProfileProber
 Sample profile pseudo prober. More...
class  SampleProfileSummaryBuilder
class  SandboxVectorizerPass
struct  SanitizerBinaryMetadataOptions
class  SanitizerBinaryMetadataPass
 Public interface to the SanitizerBinaryMetadata module pass for emitting metadata for binary analysis sanitizers. More...
struct  SanitizerCoverageOptions
class  SanitizerCoveragePass
 This is the ModuleSanitizerCoverage pass used in the new pass manager. More...
struct  SanitizerStatReport
class  SaturatingInst
 Represents a saturating add/sub intrinsic. More...
struct  SaveAndRestore
 A utility class that uses RAII to save and restore the value of a variable. More...
class  ScalableVectorType
 Class to represent scalable SIMD vectors. 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  ScalarEvolutionVerifierPass
 Verifier pass for the ScalarEvolutionAnalysis results. More...
class  ScalarEvolutionWrapperPass
struct  ScalarizeMaskedMemIntrinPass
class  ScalarizerPass
struct  ScalarizerPassOptions
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  scc_member_iterator
 Sort the nodes of a directed SCC in the decreasing order of the edge weights. More...
class  SCCPInstVisitor
 Helper class for SCCPSolver. More...
class  SCCPPass
 This pass performs function-level constant propagation and merging. More...
class  SCCPSolver
 SCCPSolver - This interface class is a general purpose solver for Sparse Conditional Constant Propagation (SCCP). 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  SCEVComparePredicate
 This class represents an assumption that the expression LHS Pred RHS evaluates to true, and this can be checked at run-time. 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...
struct  SCEVDivision
class  SCEVDivisionPrinterPass
class  SCEVExpander
 This class uses information about analyze scalars to rewrite expressions in canonical form. More...
class  SCEVExpanderCleaner
 Helper to remove instructions inserted during SCEV expansion, unless they are marked as used. More...
class  SCEVIntegralCastExpr
 This is the base class for unary integral cast operator classes. More...
class  SCEVLoopAddRecRewriter
 The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop -> SCEV) to all AddRecExprs. More...
class  SCEVMinMaxExpr
 This node is the base class min/max selections. 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...
struct  SCEVOperand
 struct for holding enough information to help calculate the cost of the given SCEV when expanded into IR. More...
class  SCEVParameterRewriter
 The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value -> SCEV). More...
class  SCEVPredicate
 This class represents an assumption made using SCEV expressions which can be checked at run-time. More...
class  SCEVPtrToIntExpr
 This class represents a cast from a pointer to a pointer-sized integer value. More...
class  SCEVRewriteVisitor
 This visitor recursively visits a SCEV expression and re-writes it. More...
class  SCEVSequentialMinMaxExpr
 This node is the base class for sequential/in-order min/max selections. More...
class  SCEVSequentialUMinExpr
 This class represents a sequential/in-order unsigned minimum selection. 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  SCEVSMinExpr
 This class represents a signed minimum 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  SCEVUMinExpr
 This class represents an unsigned minimum 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  SCEVVScale
 This class represents the value of vscale, as used when defining the length of a scalable vector or returned by the llvm.vscale() intrinsic. 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  SchedRegion
 A region of an MBB for scheduling. 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  ScheduleMetrics
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  SDDbgOperand
 Holds the information for a single machine location through SDISel; either an SDNode, a constant, a stack location, or a virtual register. More...
class  SDDbgValue
 Holds the information from a dbg_value node through SDISel. More...
class  SDep
 Scheduling dependency. More...
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  SDNodeDesc
struct  SDNodeFlags
 These are IR-level optimization flags that may be propagated to SDNodes. More...
class  SDNodeInfo
class  SDNodeIterator
struct  SDTypeConstraint
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
class  SectionRef
 This is a value type class that represents a single section in the list of sections in the object file. More...
struct  SEHHandler
struct  SEHUnwindMapEntry
 Similar to CxxUnwindMapEntry, but supports SEH filters. 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  SelectionDAGGenTargetInfo
 Proxy class that targets should inherit from if they wish to use the generated node descriptions. More...
class  SelectionDAGISel
 SelectionDAGISel - This is the common base class used for SelectionDAG-based pattern-matching instruction selectors. More...
class  SelectionDAGISelLegacy
class  SelectionDAGISelPass
class  SelectionDAGTargetInfo
 Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process. More...
class  SelectOptimizePass
struct  SelectPatternResult
class  SeparateConstOffsetFromGEPPass
struct  SetState
 Simple state for a set. 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...
struct  SGPRSpillBuilder
class  SHA1
 A class that wrap the SHA1 algorithm. More...
class  SHA256
class  ShadowResolver
 Delegate resolving to a sub-resolver, but shadow some variable names. More...
class  ShadowStackGCLoweringPass
class  ShapeT
struct  ShiftOfShiftedLogic
class  ShlOperator
class  ShouldNotRunFunctionPassesAnalysis
struct  ShouldRunExtraPasses
 A marker analysis to determine if extra passes should be run on demand. More...
struct  ShouldRunExtraSimpleLoopUnswitch
 A marker analysis to determine if SimpleLoopUnswitch should run again on a given loop. More...
struct  ShouldRunExtraVectorPasses
 A marker analysis to determine if extra passes should be run after loop vectorization. More...
class  ShrinkWrapPass
class  ShuffleBlockStrategy
 Strategy to randomly select a block and shuffle the operations without affecting data dependency. More...
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  SIAnnotateControlFlowPass
class  SIFixSGPRCopiesPass
class  SIFixVGPRCopiesPass
class  SIFoldOperandsPass
class  SIFormMemoryClausesPass
class  SIFrameLowering
struct  SignedDivisionByConstantInfo
 Magic data for optimising signed division by a constant. More...
class  SignpostEmitter
 Manages the emission of signposts into the recording method supported by the OS. More...
class  SignpostEmitterImpl
 Definition necessary for use of std::unique_ptr in SignpostEmitter::Impl. More...
class  SIInsertHardClausesPass
class  SIInsertWaitcntsPass
class  SIInstrInfo
struct  SIInstrWorklist
 Utility to store machine instructions worklist. More...
class  SILateBranchLoweringPass
class  SILoadStoreOptimizerPass
class  SILowerControlFlowPass
class  SILowerI1CopiesPass
class  SILowerSGPRSpillsPass
class  SILowerWWMCopiesPass
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  SIMemoryLegalizerPass
struct  SIModeRegisterDefaults
class  SIModeRegisterPass
class  simple_ilist
 A simple intrusive list implementation. More...
class  SimpleAAQueryInfo
 AAQueryInfo that uses SimpleCaptureAnalysis. More...
class  SimpleBitstreamCursor
 This represents a position within a bitstream. More...
class  SimpleCaptureAnalysis
 Context-free CaptureAnalysis provider, which computes and caches whether an object is captured in the function at all, but does not distinguish whether it was captured before or after the context instruction. More...
class  SimpleDDGNode
 Subclass of DDGNode representing single or multi-instruction nodes. 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
 Define a template that can be specialized by smart pointers to reflect the fact that they are automatically dereferenced, and are not involved with the template selection process... the default implementation is a noop. More...
struct  simplify_type< AssumptionCache::ResultElem >
struct  simplify_type< const AssumptionCache::ResultElem >
struct  simplify_type< const From >
struct  simplify_type< const ilist_iterator< OptionsT, false, IsConst > >
struct  simplify_type< const ilist_iterator_w_bits< OptionsT, false, IsConst > >
struct  simplify_type< const IndexCall >
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 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< ilist_iterator_w_bits< OptionsT, false, IsConst > >
struct  simplify_type< IndexCall >
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< 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
class  SimplifyCFGPass
 A pass to simplify and canonicalize the CFG of a function. More...
struct  SimplifyQuery
class  SimplifyTypeTestsPass
class  SingleThreadExecutor
 A non-threaded implementation. More...
class  SinkAndHoistLICMFlags
 Flags controlling how much is checked when sinking or hoisting instructions. More...
class  SinkingPass
 Move instructions into successor blocks when possible. More...
class  SinkInstructionStrategy
 Strategy to select a random instruction and add a new sink (user) to it to increate data dependency. More...
class  SIOptimizeExecMaskingPass
class  SIOptimizeExecMaskingPreRAPass
class  SIOptimizeVGPRLiveRangePass
class  SIPeepholeSDWAPass
class  SIPostRABundlerPass
class  SIPreAllocateWWMRegsPass
class  SIPreEmitPeepholePass
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  SIShrinkInstructionsPass
class  SITargetLowering
class  SIToFPInst
 This class represents a cast from signed integer to floating point. More...
class  SIWholeQuadModePass
struct  SizeOffsetAPInt
 SizeOffsetAPInt - Used by ObjectSizeOffsetVisitor, which works with APInts. More...
struct  SizeOffsetType
 SizeOffsetType - A base template class for the object size visitors. More...
struct  SizeOffsetValue
struct  SizeOffsetWeakTrackingVH
 SizeOffsetWeakTrackingVH - Used by ObjectSizeOffsetEvaluator in a DenseMap. More...
class  SjLjEHPreparePass
class  SlotIndex
 SlotIndex - An opaque wrapper around machine indexes. More...
class  SlotIndexes
 SlotIndexes pass. More...
class  SlotIndexesAnalysis
class  SlotIndexesPrinterPass
class  SlotIndexesWrapperPass
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 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<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-trivial T's. More...
class  SmallVectorTemplateBase< T, true >
 SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with trivially copyable 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  SMEAttrs
 SMEAttrs is a utility class to parse the SME ACLE attributes on functions. More...
class  SMECallAttrs
 SMECallAttrs is a utility class to hold the SMEAttrs for a callsite. 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  SMTExpr
 Generic base class for SMT exprs. More...
class  SMTSolver
 Generic base class for SMT Solvers. More...
class  SMTSolverStatistics
class  SMTSort
 Generic base class for SMT sorts. More...
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
struct  SparcRegisterInfo
class  SparcSelectionDAGInfo
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 implementation 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...
struct  Spec
class  SpecialCaseList
 This is a utility class used to parse user-provided text files with "special case lists" for code sanitizers. More...
class  SpecificBumpPtrAllocator
 A BumpPtrAllocator that allows only elements of a specific type to be allocated. More...
struct  SpecSig
class  SpeculativeExecutionPass
class  Spelling
class  Spiller
 Spiller interface. More...
class  SpillPlacement
class  SpillPlacementAnalysis
class  SpillPlacementWrapperLegacy
class  SPIRVCallLowering
class  SPIRVConvergenceRegionAnalysis
class  SPIRVConvergenceRegionAnalysisWrapperPass
struct  SPIRVExtensionsParser
 Command line parser for toggling SPIR-V extensions. More...
class  SPIRVFrameLowering
class  SPIRVGenRegisterBankInfo
class  SPIRVGlobalRegistry
class  SPIRVInlineAsmLowering
class  SPIRVInstPrinter
class  SPIRVInstrInfo
class  SPIRVIRMapping
class  SPIRVLegalizerInfo
class  SPIRVMCAsmInfo
class  SPIRVMCInstLower
struct  SPIRVModuleAnalysis
class  SPIRVObjectWriter
class  SPIRVRegisterBankInfo
struct  SPIRVRegisterInfo
class  SPIRVStructurizerWrapper
class  SPIRVSubtarget
class  SPIRVTargetLowering
class  SPIRVTargetMachine
class  SPIRVTargetObjectFile
class  SPIRVTargetStreamer
class  SPIRVTTIImpl
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  SplittingIterator
 A forward iterator over partitions of string over a separator. More...
class  SrcOp
class  SrcValueSDNode
 An SDNode that holds an arbitrary LLVM IR Value. More...
class  SROAPass
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< DebugSSAUpdater >
class  SSAUpdaterTraits< LDVSSAUpdater >
 Template specialization to give SSAUpdater access to CFG and value information. More...
class  SSAUpdaterTraits< MachineSSAUpdater >
 SSAUpdaterTraits<MachineSSAUpdater> - Traits for the SSAUpdaterImpl template, specialized for MachineSSAUpdater. More...
class  SSAUpdaterTraits< SSAUpdater >
class  SSAValueNameMap
 Utility class used to store the names of SSA values after their owning modules have been destroyed. More...
class  SSPLayoutAnalysis
class  SSPLayoutInfo
struct  StableFunction
 A stable function is a function with a stable hash while tracking the locations of ignored operands and their hashes. More...
struct  StableFunctionMap
struct  StableFunctionMapRecord
 The structure of the serialized stable function map is as follows: More...
class  StackColoringPass
class  StackFrameLayoutAnalysisPass
class  StackLifetime
 Compute live ranges of allocas. More...
class  StackLifetimePrinterPass
 Printer pass for testing. More...
class  StackMapOpers
 MI-level stackmap operands. More...
class  StackMapParser
 A parser for the latest stackmap format. At the moment, latest=V3. More...
class  StackMaps
class  StackOffset
 StackOffset holds a fixed and a scalable offset in bytes. More...
class  StackProtector
class  StackProtectorDescriptor
 Encapsulates all of the information needed to generate a stack protector check, and signals to isel when initialized that one needs to be generated. More...
class  StackProtectorPass
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  StackSafetyGlobalInfo
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  StackSlotColoringPass
class  StandardInstrumentations
 This class provides an interface to register all the standard pass instrumentations and manages their state (if any). 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...
struct  StateWrapper
 Helper to tie a abstract state implementation to an abstract attribute. More...
class  StaticDataProfileInfo
 A class that holds the constants that represent static data and their profile information and provides methods to operate on them. More...
class  StaticDataProfileInfoWrapperPass
 This wraps the StaticDataProfileInfo object as an immutable pass, for a backend pass to operate on. More...
class  StoreInfo
class  StoreInst
 An instruction for storing to memory. More...
class  StoreSDNode
 This class is used to represent ISD::STORE nodes. More...
class  StraightLineStrengthReducePass
struct  StreamingHTTPResponse
 Wraps the content provider with HTTP Status code and headers. 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  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  StringMapEntryStorage
 StringMapEntryStorage - Holds the value in a StringMapEntry. More...
class  StringMapEntryStorage< std::nullopt_t >
class  StringMapImpl
 StringMapImpl - This is the base class of StringMap that is shared among all of its instantiations. More...
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  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  StringSubstitution
class  StringSwitch
 A switch()-like statement whose cases are string literals. More...
class  StringTable
 A table of densely packed, null-terminated strings indexed by offset. 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  StripDeadCGProfilePass
struct  StripDeadDebugInfoPass
struct  StripDeadPrototypesPass
 Pass to remove unused function declarations. More...
struct  StripDebugDeclarePass
class  StripGCRelocates
struct  StripNonDebugSymbolsPass
class  StripNonLineTableDebugInfoPass
struct  StripSymbolsPass
struct  StrOffsetsContributionDescriptor
 Represents base address of the CU. More...
class  StrongType
 Helper for making strong types. 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...
class  StructuralHashPrinterPass
 Printer pass for StructuralHashes. More...
struct  StructurizeCFGPass
struct  SubClassReference
struct  SubMultiClassReference
class  SubOperator
struct  SubsectionAndTagToTagName
class  Substitution
 Class representing a substitution to perform in the RegExStr string. More...
class  SubsumingPositionIterator
 A visitor class for IR positions. More...
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  SubtargetSubTypeKV
 Used to provide key value pairs for feature and CPU bit flags. More...
class  SuccIterator
class  SuffixTree
struct  SuffixTreeInternalNode
struct  SuffixTreeLeafNode
struct  SuffixTreeNode
 A node in a suffix tree which represents a substring or suffix. More...
class  SUnit
 Scheduling unit. This is a node in the scheduling DAG. More...
class  SUnitIterator
class  SuperRegClassIterator
class  SuspendCrossingInfo
class  SwiftErrorValueTracking
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  SwingSchedulerDDG
 This class provides APIs to retrieve edges from/to an SUnit node, with a particular focus on loop-carried dependencies. More...
class  SwingSchedulerDDGEdge
 Represents a dependence between two instruction. More...
class  SwitchInst
 Multiway switch. More...
class  SwitchInstProfUpdateWrapper
 A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata. More...
struct  SymbolCU
 Helper used to pair up a symbol and its DWARF compile unit. More...
struct  SymbolInfoTy
class  SymbolRemappingParseError
class  SymbolRemappingReader
 Reader for symbol remapping files. More...
struct  SymbolsMapKey
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  SyntheticCountsUtils
 Class with methods to propagate synthetic entry counts. More...
struct  SysAlias
struct  SysAliasImm
struct  SysAliasReg
class  SystemZAsmPrinter
class  SystemZCallingConventionRegisters
 A SystemZ-specific class detailing special use registers particular for calling conventions. More...
class  SystemZConstantPoolValue
 A SystemZ-specific constant pool value. More...
class  SystemZELFFrameLowering
class  SystemZELFRegisters
 ELF calling convention specific use registers Particular when on zLinux in 64 bit mode. More...
class  SystemZELFTargetObjectFile
 This implementation is used for SystemZ ELF targets. More...
class  SystemZFrameLowering
class  SystemZGNUInstPrinter
class  SystemZHazardRecognizer
 SystemZHazardRecognizer maintains the state for one MBB during scheduling. More...
class  SystemZHLASMAsmStreamer
class  SystemZHLASMInstPrinter
class  SystemZInstPrinterCommon
class  SystemZInstrInfo
class  SystemZMachineFunctionInfo
class  SystemZMCAsmInfoELF
class  SystemZMCAsmInfoGOFF
class  SystemZMCInstLower
class  SystemZPostRASchedStrategy
 A MachineSchedStrategy implementation for SystemZ post RA scheduling. More...
struct  SystemZRegisterInfo
class  SystemZSelectionDAGInfo
class  SystemZSubtarget
class  SystemZTargetELFStreamer
class  SystemZTargetGNUStreamer
class  SystemZTargetGOFFStreamer
class  SystemZTargetHLASMStreamer
class  SystemZTargetLowering
class  SystemZTargetMachine
class  SystemZTargetStreamer
class  SystemZTTIImpl
struct  SystemZVectorConstantInfo
class  SystemZXPLINK64Registers
 XPLINK64 calling convention specific use registers Particular to z/OS when in 64 bit mode. More...
class  SystemZXPLINKFrameLowering
struct  TagNameItem
class  TailCallElimPass
class  TailDuplicatePass
class  TailDuplicatePassBase
class  TailDuplicator
 Utility class to perform tail duplication. More...
struct  TailFoldingInfo
class  Target
 Target - Wrapper for Target specific information. More...
class  TargetExtType
 Class to represent target extensions types, which are generally unintrospectable from target-independent optimizations. More...
struct  TargetExtTypeKeyInfo
class  TargetFolder
 TargetFolder - Create constants with target dependent folding. More...
class  TargetFrameLowering
 Information about stack frame layout on the target. More...
struct  TargetIndexLocation
 This struct describes target specific location. More...
class  TargetIndexSDNode
 Completely target-dependent object reference. More...
class  TargetInstrInfo
 TargetInstrInfo - 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  TargetLoweringObjectFileGOFF
class  TargetLoweringObjectFileMachO
class  TargetLoweringObjectFileWasm
class  TargetLoweringObjectFileXCOFF
class  TargetMachine
 Primary interface to the complete machine description for the target machine. 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  TBAAVerifier
 Verify that the TBAA Metadatas are valid. More...
struct  TempMDNodeDeleter
struct  TemporalProfTraceTy
 An ordered list of functions identified by their NameRef found in INSTR_PROF_DATA. More...
class  TensorSpec
class  TernOpInit
 !op (X, Y, Z) - Combine two inits. More...
class  TextChangeReporter
class  TextCodeGenDataReader
 This format is a simple text format that's suitable for test data. More...
class  TextEncodingConverter
 Utility class to convert between different character encodings. More...
class  TextInstrProfReader
 Reader for the simple text based instrprof format. More...
class  TFModelEvaluator
class  TGLexer
 TGLexer - TableGen Lexer class. More...
class  TGParser
class  TGTimer
class  TGVarScope
class  ThinLTOBitcodeWriterPass
class  ThinLTOCodeGenerator
 This class define an interface similar to the LTOCodeGenerator, but adapted for ThinLTO processing. More...
struct  thread
class  ThreadPoolInterface
 This defines the abstract base interface for a ThreadPool allowing asynchronous parallel execution on a defined number of threads. More...
class  ThreadPoolStrategy
 This tells how a thread pool will be used. More...
class  ThreadPoolTaskGroup
 A group of tasks to be run on a thread pool. More...
class  ThreadSafeAllocator
 Thread-safe allocator adaptor. More...
class  ThreadSafeRefCountedBase
 A thread-safe version of RefCountedBase. More...
class  ThreadSafeTrieRawHashMap
 Lock-free thread-safe hash-mapped trie. More...
class  ThreadSafeTrieRawHashMapBase
 TrieRawHashMap - is a lock-free thread-safe trie that is can be used to store/index data based on a hash value. More...
struct  ThreadSanitizerPass
 A function pass for tsan instrumentation. More...
class  Thumb1FrameLowering
class  Thumb1InstrInfo
class  Thumb2InstrInfo
struct  ThumbRegisterInfo
class  ThunkInserter
 This class assists in inserting MI thunk functions into the module and rewriting the existing machine functions to call these thunks. More...
class  ThunkInserterPass
 Basic implementation of MachineFunctionPass wrapping one or more ThunkInserters passed as type parameters. More...
struct  TileInfo
 A helper struct to create IR loop nests for tiling in IR of the following form: for ColumnLoop.Index = 0..NumColumns for RowLoop.Index = 0..NumRows for KLoop.Index = 0..NumInner. More...
class  TimePassesHandler
 This class implements -time-passes functionality for new pass manager. More...
class  TimeProfilingPassesHandler
 This class implements –time-trace 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  TimerGlobals
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...
struct  TimeTraceProfiler
struct  TimeTraceProfilerEntry
 Represents an open or completed time section entry to be captured. More...
class  TimeTraceScope
 The TimeTraceScope is a helper class to call the begin and end functions of the time trace profiler. 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...
struct  ToolContext
class  ToolOutputFile
 This class contains a raw_fd_ostream and adds a few extra features commonly needed for compiler-like tool output files: More...
struct  TPIDR2Object
class  Trace
struct  TrackedRow
 A helper struct to help keep track of the association between the input and output rows during line table rewriting. More...
class  TrackingMDRef
 Tracking metadata reference. More...
class  TrackingStatistic
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...
struct  TrieHashIndexGenerator
 The utility class that helps computing the index of the object inside trie from its hash. More...
class  Triple
 Triple - Helper class for working with autoconf configuration names. More...
class  TruncatedBLAKE3
 Like BLAKE3 but using a class-level template parameter for specifying the hash size of the final() and result() functions. More...
class  TruncInst
 This class represents a truncation of integer types. More...
class  TruncInstCombine
class  Twine
 Twine - A lightweight data structure for efficiently representing the concatenation of temporary values as strings. More...
class  TwoAddressInstructionPass
class  Type
 The instances of the Type class are immutable: once they are created, they are never changed. More...
struct  type_identity
class  TypeAttributeImpl
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  TypeConversionCostTblEntryT
 Type Conversion Cost Table. More...
class  TypedInit
 This is the common superclass of types that have a specific, explicit type, stored in ValueTy. More...
class  TypedMDOperandIterator
 Typed iterator through MDNode operands. More...
class  TypedPointerType
 A few GPU targets, such as DXIL and SPIR-V, have typed pointers. 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  TypeIdOffsetVtableInfo
 The following data structures summarize type metadata information. More...
struct  TypeIdSummary
class  TypePromotionPass
struct  TypeSanitizerPass
struct  TypesAreDistinct
 Determine if all types in Ts are distinct. More...
struct  TypesAreDistinct< T, Us... >
struct  TypesAreDistinct<>
class  TypeSize
class  TypeSwitch
 This class implements a switch-like dispatch statement for a value of 'T' using dyn_cast functionality. More...
class  TypeSwitch< T, void >
 Specialization of TypeSwitch for void returning callables. More...
struct  TypeTestResolution
struct  TypeUnitMetaInfo
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  UnaryInstruction
class  UnaryOperator
class  UnclusteredHighRPStage
class  UndefValue
 'undef' values are things that do not have specified contents. More...
class  UndefVarError
 Class to represent an undefined variable error, which quotes that variable's name when printed. More...
struct  UnderlyingObject
class  UniformityInfoAnalysis
 Analysis pass which computes UniformityInfo. More...
class  UniformityInfoPrinterPass
 Printer pass for the UniformityInfo. More...
class  UniformityInfoWrapperPass
 Legacy analysis pass which computes a CycleInfo. More...
class  UnifyFunctionExitNodesPass
class  UnifyLoopExitsPass
class  unique_function
 unique_function is a type-erasing functor similar to std::function. More...
class  unique_function< R(P...) const >
class  unique_function< R(P...)>
struct  UniqueBBID
class  UniqueMachineInstr
 A class that wraps MachineInstrs and derives from FoldingSetNode in order to be uniqued in a CSEMap. More...
struct  UniquePtrCast
 This cast trait provides std::unique_ptr casting. More...
class  UniqueStringSaver
 Saves strings in the provided stable storage and returns a StringRef with a stable character pointer. More...
struct  UniqueTag
 It's very easy to introduce bugs by passing the wrong string pool. More...
class  UniqueVector
 UniqueVector - This class produces a sequential ID number (base 1) for each unique entry that is added. More...
struct  UnitIndexEntry
class  UnOpInit
 !op (X) - Transform an init. More...
class  UnreachableBlockElimPass
class  UnreachableInst
 This function has undefined behavior. More...
class  UnreachableMachineBlockElimPass
class  UnrollCostEstimator
 Produce an estimate of the unrolled cost of the specified loop. More...
class  UnrolledInstAnalyzer
struct  UnrollLoopOptions
class  UnsetInit
 '?' - Represents an uninitialized value. More...
struct  UnsignedDivisionByConstantInfo
 Magic data for optimising unsigned division by a constant. 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  UseCaptureInfo
 Capture information for a specific Use. More...
struct  UsedNZCV
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...
struct  ValueAndVReg
 Simple struct used to hold a constant integer value and a virtual register. More...
 Value wrapper in the Metadata hierarchy. More...
struct  ValueDeleter
struct  ValueDFS
struct  ValueDFS_Compare
class  ValueEnumerator
struct  ValueFromPointerCast
 This cast trait provides casting for the specific case of casting to a value-typed object from a pointer-typed object. More...
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...
struct  ValueIsPresent
 ValueIsPresent provides a way to check if a value is, well, present. More...
struct  ValueIsPresent< std::optional< T > >
struct  ValueIsPresent< T, std::enable_if_t< IsNullable< T > > >
class  ValueLatticeElement
 This class represents lattice values for constants. More...
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...
struct  ValueProfData
 Per-function header/control data structure for value profiling data in indexed format. More...
class  ValueProfileCollector
 Utility analysis that determines what values are worth profiling. More...
struct  ValueProfRecordClosure
struct  ValueSimplifyStateType
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  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...
struct  VarLocInfo
 Variable location definition used by FunctionVarLocs. 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...
class  VecDesc
 Provides info so a possible vectorization of a function can be computed. More...
class  VectorCombinePass
 Optimize scalar/vector interactions in IR using target cost models. More...
struct  VectorizationFactor
 TODO: The following VectorizationFactor was pulled out of LoopVectorizationCostModel class. More...
struct  VectorizerParams
 Collection of parameters shared beetween the Loop Vectorizer and the Loop Access Analysis. More...
class  VectorType
 Base class of all SIMD vector types. More...
class  VECustomDAG
class  VEELFMCAsmInfo
class  VEFrameLowering
class  VEInstPrinter
class  VEInstrInfo
class  VEMachineFunctionInfo
struct  VERegisterInfo
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  VerifyInstrumentation
class  Versioned
class  VersionedClause
class  VersionTuple
 Represents a version number in the form major[.minor[.subminor[.build]]]. More...
class  VESubtarget
class  VETargetAsmStreamer
class  VETargetELFStreamer
class  VETargetLowering
class  VETargetMachine
struct  VETargetMasks
class  VETargetStreamer
class  VETTIImpl
class  VFDatabase
 The Vector Function Database. More...
struct  VFInfo
 Holds the VFShape for a specific scalar to vector function mapping. More...
struct  VFParameter
 Encapsulates information needed to describe a parameter. More...
struct  VFRange
 A range of powers-of-2 vectorization factors with fixed start and adjustable end. More...
struct  VFShape
 Contains the information about the kind of vectorization available. More...
struct  VGPRBlock2IndexFunctor
struct  VirtFuncOffset
 The ValueInfo and offset for a function within a vtable definition initializer array. More...
struct  VirtReg2IndexFunctor
class  VirtRegAuxInfo
 Calculate auxiliary information for a virtual register such as its spill weight and allocation hint. More...
struct  VirtRegInfo
 VirtRegInfo - Information about a virtual register used by a set of operands. More...
class  VirtRegMap
class  VirtRegMapAnalysis
class  VirtRegMapPrinterPass
class  VirtRegMapWrapperLegacy
class  VirtRegOrUnit
 Wrapper class representing a virtual register or register unit. More...
class  VirtRegRewriterPass
class  VLIWMachineScheduler
 Extend the standard ScheduleDAGMILive to provide more context and override the top-level schedule() driver. More...
class  VLIWPacketizerList
class  VLIWResourceModel
class  VNInfo
 VNInfo - Value Number Information. More...
class  VPActiveLaneMaskPHIRecipe
 A recipe for generating the active lane mask for the vector loop that is used to predicate the vector operations. More...
class  VPAllSuccessorsIterator
 Iterator to traverse all successors of a VPBlockBase node. More...
class  VPBaseLoadStoreSDNode
 This base class is used to represent VP_LOAD, VP_STORE, EXPERIMENTAL_VP_STRIDED_LOAD and EXPERIMENTAL_VP_STRIDED_STORE nodes. More...
class  VPBasicBlock
 VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph. More...
class  VPBinOpIntrinsic
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  VPBlockDeepTraversalWrapper
 Helper for GraphTraits specialization that traverses through VPRegionBlocks. More...
class  VPBlockShallowTraversalWrapper
 Helper for GraphTraits specialization that does not traverses through VPRegionBlocks. 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...
class  VPCanonicalIVPHIRecipe
 Canonical scalar induction phi of the vector loop. More...
class  VPCastIntrinsic
class  VPCmpIntrinsic
struct  VPCostContext
 Struct to hold various analysis needed for cost computations. More...
class  VPDef
 This class augments a recipe with a set of VPValues defined by the recipe. More...
class  VPDerivedIVRecipe
 A recipe for converting the input value IV value to the corresponding value of an IV with different start and step values, using Start + IV * Step. More...
class  VPDominatorTree
 Template specialization of the standard LLVM dominator tree utility for VPBlockBases. More...
class  VPEVLBasedIVPHIRecipe
 A recipe for generating the phi node for the current index of elements, adjusted in accordance with EVL value. More...
class  VPExpandSCEVRecipe
 Recipe to expand a SCEV expression. More...
class  VPExpressionRecipe
 A recipe to combine multiple recipes into a single 'expression' recipe, which should be considered a single entity for cost-modeling and transforms. More...
struct  VPFirstOrderRecurrencePHIRecipe
 A recipe for handling first-order recurrence phis. More...
class  VPGatherScatterSDNode
 This is a base class used to represent VP_GATHER and VP_SCATTER nodes. More...
class  VPGatherSDNode
 This class is used to represent an VP_GATHER node. More...
class  VPHeaderPHIRecipe
 A pure virtual base class for all recipes modeling header phis, including phis for first order recurrences, pointer inductions and reductions. More...
class  VPHistogramRecipe
 A recipe representing a sequence of load -> update -> store as part of a histogram operation. More...
class  VPInstruction
 This is a concrete Recipe that models a single VPlan-level instruction. More...
class  VPInstructionWithType
 A specialization of VPInstruction augmenting it with a dedicated result type, to be used when the opcode and operands of the VPInstruction don't directly determine the result type. More...
class  VPInterleaveBase
 A common base class for interleaved memory operations. More...
class  VPInterleavedAccessInfo
class  VPInterleaveEVLRecipe
 A recipe for interleaved memory operations with vector-predication intrinsics. More...
class  VPInterleaveRecipe
 VPInterleaveRecipe is a recipe for transforming an interleave group of load or stores into one wide load/store and shuffles. More...
class  VPIntrinsic
 This is the common base class for vector predication intrinsics. More...
class  VPIRBasicBlock
 A special type of VPBasicBlock that wraps an existing IR basic block. More...
class  VPIRFlags
 Class to record and manage LLVM IR flags. More...
class  VPIRInstruction
 A recipe to wrap on original IR instruction not to be modified during execution, except for PHIs. More...
 Helper to manage IR metadata for recipes. More...
struct  VPIRPhi
 An overlay for VPIRInstructions wrapping PHI nodes enabling convenient use cast/dyn_cast/isa and execute() implementation. 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  VPLane
 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  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...
struct  VPlanTransforms
class  VPLoadFFSDNode
class  VPLoadSDNode
 This class is used to represent a VP_LOAD node. More...
class  VPMatchContext
class  VPPartialReductionRecipe
 A recipe for forming partial reductions. More...
struct  VPPhi
class  VPPhiAccessors
 Helper type to provide functions to access incoming values and blocks for phi-like recipes. 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...
struct  VPRecipeWithIRFlags
 A pure-virtual common base class for recipes defining a single VPValue and using IR flags. More...
class  VPReductionEVLRecipe
 A recipe to represent inloop reduction operations with vector-predication intrinsics, performing a reduction on a vector operand with the explicit vector length (EVL) into a scalar value, and adding the result to a chain. More...
class  VPReductionIntrinsic
 This represents vector predication reduction intrinsics. More...
class  VPReductionPHIRecipe
 A recipe for handling reduction phis. More...
class  VPReductionRecipe
 A recipe to represent inloop reduction operations, performing a reduction on a vector operand into a scalar value, and adding the result to a chain. More...
class  VPRegionBlock
 VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exiting subgraph of the output IR CFG. More...
struct  VPRegisterUsage
 A struct that represents some properties of the register usage of a loop. 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...
class  VPScalarIVStepsRecipe
 A recipe for handling phi nodes of integer and floating-point inductions, producing their scalar values. More...
class  VPScatterSDNode
 This class is used to represent an VP_SCATTER node. More...
class  VPSingleDefRecipe
 VPSingleDef is a base class for recipes for modeling a sequence of one or more output IR that define a single result VPValue. More...
class  VPSlotTracker
 This class can be used to assign names to VPValues. More...
class  VPStoreSDNode
 This class is used to represent a VP_STORE node. More...
class  VPStridedLoadSDNode
 This class is used to represent an EXPERIMENTAL_VP_STRIDED_LOAD node. More...
class  VPStridedStoreSDNode
 This class is used to represent an EXPERIMENTAL_VP_STRIDED_STORE node. More...
struct  VPTransformState
 VPTransformState holds information passed down when "executing" a VPlan, needed for generating the output IR. More...
class  VPTypeAnalysis
 An analysis for type-inference for VPValues. More...
class  VPUnrollPartAccessor
 Helper to access the operand that contains the unroll part for this recipe after unrolling. 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  VPVectorEndPointerRecipe
 A recipe to compute a pointer to the last element of each part of a widened memory access for widened memory accesses of IndexedTy. More...
class  VPVectorPointerRecipe
 A recipe to compute the pointers for widened memory accesses of IndexTy. More...
class  VPWidenCallRecipe
 A recipe for widening Call instructions using library calls. More...
class  VPWidenCanonicalIVRecipe
 A Recipe for widening the canonical induction variable of the vector loop. More...
class  VPWidenCastRecipe
 VPWidenCastRecipe is a recipe to create vector cast instructions. More...
class  VPWidenGEPRecipe
 A recipe for handling GEP instructions. More...
class  VPWidenInductionRecipe
 Base class for widened induction (VPWidenIntOrFpInductionRecipe and VPWidenPointerInductionRecipe), providing shared functionality, including retrieving the step value, induction descriptor and original phi node. More...
class  VPWidenIntOrFpInductionRecipe
 A recipe for handling phi nodes of integer and floating-point inductions, producing their vector values. More...
class  VPWidenIntrinsicRecipe
 A recipe for widening vector intrinsics. More...
struct  VPWidenLoadEVLRecipe
 A recipe for widening load operations with vector-predication intrinsics, using the address to load from, the explicit vector length and an optional mask. More...
struct  VPWidenLoadRecipe
 A recipe for widening load operations, using the address to load from and an optional mask. More...
class  VPWidenMemoryRecipe
 A common base class for widening memory operations. More...
class  VPWidenPHIRecipe
 A recipe for widened phis. More...
class  VPWidenPointerInductionRecipe
class  VPWidenRecipe
 VPWidenRecipe is a recipe for producing a widened instruction using the opcode and operands of the recipe. More...
struct  VPWidenSelectRecipe
 A recipe for widening select instructions. More...
struct  VPWidenStoreEVLRecipe
 A recipe for widening store operations with vector-predication intrinsics, using the value to store, the address to store to, the explicit vector length and an optional mask. More...
struct  VPWidenStoreRecipe
 A recipe for widening store operations, using the stored value, the address to store to and an optional mask. 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
struct  VRegMaskOrUnit
class  VRegRenamer
 VRegRenamer - This class is used for renaming vregs in a machine basic block according to semantics of the instruction. More...
struct  VTableSlotSummary
class  VTSDNode
 This class is used to represent EVT's, which are used to parameterize some operations. More...
class  WarnMissedTransformationsPass
struct  WasmEHFuncInfo
class  WasmEHPreparePass
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  WebAssemblyAsmTypeCheck
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
struct  WideIVInfo
 Collect information about induction variables that are used by sign/zero extend operations. More...
class  WinCFGuard
class  WinCOFFObjectWriter
class  WinCOFFWriter
class  WindowScheduler
 The main class in the implementation of the target independent window scheduler. More...
class  WindowsResourceProcessor
struct  WinEHFuncInfo
struct  WinEHHandlerType
class  WinEHPreparePass
struct  WinEHTryBlockMapEntry
class  WinException
class  WithCache
class  WithColor
 An RAII object that temporarily switches an output stream to a specific color. More...
class  WithOverflowInst
 Represents an op.with.overflow intrinsic. More...
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_64ELFTargetObjectFile
 This implementation is used for X86_64 ELF targets, and defers to X86ELFTargetObjectFile for commonalities with 32-bit targets. 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  X86AsmPrinter
class  X86ATTInstPrinter
class  X86CallLowering
class  X86ELFMCAsmInfo
class  X86ELFTargetObjectFile
 This implementation is used for X86 ELF targets that don't have a further specialization (and as a base class for X86_64, which does). More...
struct  X86FoldTableEntry
class  X86FrameLowering
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  X86ISelDAGToDAGPass
class  X86LegalizerInfo
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  X86MCAsmInfoDarwin
class  X86MCAsmInfoGNUCOFF
class  X86MCAsmInfoMicrosoft
class  X86MCAsmInfoMicrosoftMASM
class  X86MCExpr
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  X86Subtarget
class  X86TargetLowering
class  X86TargetMachine
class  X86TargetStreamer
 X86 target streamer implementing x86-only assembly directives. More...
class  X86TTIImpl
class  XCOFFObjectWriter
struct  XCOFFSymbolInfoTy
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  XRayInstrumentationPass
class  XtensaAsmPrinter
class  XtensaConstantPoolConstant
 XtensaConstantPoolConstant - Xtensa-specific constant pool values for Constants (for example BlockAddresses). More...
class  XtensaConstantPoolJumpTable
 XtensaConstantPoolJumpTable - Xtensa-specific constantpool values for Jump Table symbols. More...
class  XtensaConstantPoolMBB
 XtensaConstantPoolMBB - Xtensa-specific constantpool value of a machine basic block. More...
class  XtensaConstantPoolSymbol
 XtensaConstantPoolSymbol - Xtensa-specific constantpool values for external symbols. More...
class  XtensaConstantPoolValue
 XtensaConstantPoolValue - Xtensa specific constantpool value. More...
class  XtensaFrameLowering
class  XtensaInstPrinter
class  XtensaInstrInfo
class  XtensaMachineFunctionInfo
class  XtensaMCAsmInfo
class  XtensaRegisterInfo
class  XtensaSubtarget
class  XtensaTargetAsmStreamer
class  XtensaTargetELFStreamer
class  XtensaTargetLowering
class  XtensaTargetMachine
class  XtensaTargetStreamer
struct  XXH128_hash_t
 The return value from 128-bit hashes. More...
class  ZExtInst
 This class represents zero extension of integer types. More...

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 T>
using PointTypeIsValid = std::bool_constant<std::is_fundamental<T>::value>
template<typename T>
using ValueTypeIsValid
template<typename WrappedIteratorT, typename T1 = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>, typename T2 = std::add_pointer_t<T1>>
using raw_pointer_iterator
template<class Iterator>
using EnableIfConvertibleToInputIterator
template<class T>
using SmallVectorSizeType
template<typename RangeType>
using ValueTypeFromRangeType
using stable_hash = uint64_t
 An opaque object representing a stable hash code.
using Statistic = NoopStatistic
template<typename T, typename... Ts>
using is_one_of = std::disjunction<std::is_same<T, Ts>...>
 traits class for checking whether type T is one of any of the given types in the variadic list.
template<typename T, typename... Ts>
using are_base_of = std::conjunction<std::is_base_of<T, Ts>...>
 traits class for checking whether type T is a base class for all the given types in the variadic list.
template<typename T = void, typename... Ts>
using all_types_equal = std::conjunction<std::is_same<T, Ts>...>
 traits class for checking whether type T is same as all other types in Ts.
template<size_t I, typename... Ts>
using TypeAtIndex = std::tuple_element_t<I, std::tuple<Ts...>>
 Find the type at a given index in a list of types.
template<typename WrappedIteratorT, typename PredicateT>
using filter_iterator
 Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category.
template<template< class... > class Op, class... Args>
using is_detected = typename detail::detector<void, Op, Args...>::value_t
 Detects if a given trait holds for some set of arguments 'Args'.
using AliasAnalysis = AAResults
 Temporary typedef for legacy code that uses a generic AliasAnalysis pointer or reference.
using RetainedKnowledgeKey = std::pair<Value *, Attribute::AttrKind>
 The map Key contains the Value on for which the attribute is valid and the Attribute that is valid for that value.
using Assume2KnowledgeMap = DenseMap<AssumeInst *, MinMax>
 A mapping from intrinsics (=llvm.assume calls) to a value range (=knowledge) that is encoded in them.
using RetainedKnowledgeMap
using CGSCCAnalysisManager
 The CGSCC analysis manager.
using CGSCCPassManager
 The CGSCC pass manager.
using CGSCCAnalysisManagerModuleProxy
 A proxy from a CGSCCAnalysisManager to a Module.
using ModuleAnalysisManagerCGSCCProxy
 A proxy from a ModuleAnalysisManager to an SCC.
using CGSCCAnalysisManagerFunctionProxy
 A proxy from a CGSCCAnalysisManager to a Function.
using FlatIndirectTargets = DenseMap<GlobalValue::GUID, uint64_t>
using CtxProfFlatIndirectCallProfile
using DDGNodeBase = DGNode<DDGNode, DDGEdge>
using DDGEdgeBase = DGEdge<DDGNode, DDGEdge>
using DDGBase = DirectedGraph<DDGNode, DDGEdge>
using DDGInfo = DependenceGraphInfo<DDGNode>
using DDGDotGraphTraits = DOTGraphTraits<const DataDependenceGraph *>
using FloatingPointPredicateUtils
using InlineCostFeatures
using InlineFeatures = std::vector<int64_t>
using ForwardIDFCalculator = IDFCalculator<false>
using ReverseIDFCalculator = IDFCalculator<true>
typedef std::pair< const RuntimeCheckingPtrGroup *, const RuntimeCheckingPtrGroup * > RuntimePointerCheck
 A memcheck which made up of a pair of grouped pointers.
typedef AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
 The loop analysis manager.
typedef InnerAnalysisManagerProxy< LoopAnalysisManager, FunctionLoopAnalysisManagerFunctionProxy
 A proxy from a LoopAnalysisManager to a Function.
typedef OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & > FunctionAnalysisManagerLoopProxy
 A proxy from a FunctionAnalysisManager to a Loop.
using CacheCostTy = InstructionCost
using LoopVectorTy = SmallVector<Loop *, 8>
using ReferenceGroupTy = SmallVector<std::unique_ptr<IndexedReference>, 8>
 A reference group represents a set of memory references that exhibit temporal or spacial reuse.
using ReferenceGroupsTy = SmallVector<ReferenceGroupTy, 8>
using memoryaccess_def_iterator = memoryaccess_def_iterator_base<MemoryAccess>
using const_memoryaccess_def_iterator
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 ValueToValueMap = DenseMap<const Value *, Value *>
using ValueToSCEVMapTy = DenseMap<const Value *, const SCEV *>
using LoopToScevMapT = DenseMap<const Loop *, const SCEV *>
typedef SmallPtrSet< const Loop *, 2 > PostIncLoopSet
typedef function_ref< bool(const SCEVAddRecExpr *)> NormalizePredTy
typedef TargetTransformInfo TTI
using UniformityInfo = GenericUniformityInfo<SSAContext>
typedef llvm::function_ref< std::optional< std::string >(StringRef, StringRef)> DataLayoutCallbackTy
typedef std::function< std::optional< std::string >(StringRef, StringRef)> DataLayoutCallbackFuncTy
typedef std::function< Type *(unsigned)> GetTypeByIDTy
typedef std::function< unsigned(unsigned, unsigned)> GetContainedTypeIDTy
typedef std::function< void(Value *, unsigned, GetTypeByIDTy, GetContainedTypeIDTy)> ValueTypeCallbackTy
typedef std::function< void(Metadata **, unsigned, GetTypeByIDTy, GetContainedTypeIDTy)> MDTypeCallbackTy
using IdHashNodeStableMapTy = std::map<unsigned, HashNodeStable>
using IdHashNodeMapTy = DenseMap<unsigned, HashNode *>
using HashNodeIdMapTy = DenseMap<const HashNode *, unsigned>
using IndexPairHash = std::pair<IndexPair, stable_hash>
using IndexOperandHashVecType = SmallVector<IndexPairHash>
using TUVectorTy = SmallVector<TypeUnitMetaInfo, 1>
typedef MCSymbolExceptionSymbolProvider(AsmPrinter *Asm, const MachineBasicBlock *MBB)
using CreateCmpXchgInstFun
 Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT ‍/ success, / OUT *‍/ new_loaded, MetadataSrc)
using MachineBasicBlockComparator
typedef bool CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
 CCAssignFn - This function assigns a location for Val, updating State to reflect the change.
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.
using CostTblEntry = CostTblEntryT<unsigned>
using TypeConversionCostTblEntry = TypeConversionCostTblEntryT<unsigned>
using SSAContext = GenericSSAContext<Function>
using GCMetadataPrinterRegistry = Registry<GCMetadataPrinter>
 GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry.
using BuildFnTy = std::function<void(MachineIRBuilder &)>
using OperandBuildSteps
using LegalityPredicate = std::function<bool (const LegalityQuery &)>
using LegalizeMutation
using MachineFloatingPointPredicateUtils
using SmallInstListTy = GISelWorkList<4>
using ParamLocs = SmallVector<IndexPair, 4>
using ParamLocsVecTy = SmallVector<ParamLocs, 8>
using InsnRange = std::pair<const MachineInstr *, const MachineInstr *>
 This is used to track range of instructions with identical lexical scope.
using MachineDomTreeNode = DomTreeNodeBase<MachineBasicBlock>
using LiveVirtRegBitSet = SparseBitVector<128>
using MachineConvergenceVerifier
using MachineCycleInfo = GenericCycleInfo<MachineSSAContext>
using MachineCycle = MachineCycleInfo::CycleT
using MachineFunctionAnalysisManager = AnalysisManager<MachineFunction>
using MachineFunctionAnalysisManagerModuleProxy
using MachineFunctionAnalysisManagerFunctionProxy
using ModuleAnalysisManagerMachineFunctionProxy
 Provide the ModuleAnalysisManager to Function proxy.
using MachineFunctionPassManager = PassManager<MachineFunction>
 Convenience typedef for a pass manager over functions.
using RegClassOrRegBank
 Convenient type to represent either a register class or a register bank.
using MachineSSAContext = GenericSSAContext<MachineFunction>
using MachineUniformityInfo = GenericUniformityInfo<MachineSSAContext>
using MacroFusionPredTy
 Check if the instr pair, FirstMI and SecondMI, should be fused together.
using Name2RegClassMap = StringMap<const TargetRegisterClass *>
using Name2RegBankMap = StringMap<const RegisterBank *>
using ModuleAnalysisManager = AnalysisManager<Module>
 Convenience typedef for the Module analysis manager.
using UniquingStringPool = StrongType<NonRelocatableStringpool, UniqueTag>
using OffsetsStringPool = StrongType<NonRelocatableStringpool, OffsetsTag>
using PBQPRAGraph = PBQP::RegAlloc::PBQPRAGraph
typedef std::function< bool(const TargetRegisterInfo &TRI, const MachineRegisterInfo &MRI, const Register Reg)> RegAllocFilterFunc
 Filter function for register classes during regalloc.
using SmallVirtRegSet = SmallSet<Register, 16>
typedef SmallPtrSet< SUnit *, 8 > ClusterInfo
 Keep record of which SUnit are in the same cluster group.
using RegUnit2SUnitsMap
 Use a SparseMultiSet to track physical registers.
using VReg2SUnitMultiMap = SparseMultiSet<VReg2SUnit, VirtReg2IndexFunctor>
 Track local uses of virtual registers.
using VReg2SUnitOperIdxMultiMap
using ValueType = PointerUnion<const Value *, const PseudoSourceValue *>
using UnderlyingObjectsVector = SmallVector<UnderlyingObject, 4>
using SDNodeTSFlags = uint32_t
using LargestSDNode
 A representation of the largest SDNode, for use in sizeof().
using MostAlignedSDNode = GlobalAddressSDNode
 The SDNode class with the greatest alignment requirement.
using IdxMBBPair = std::pair<SlotIndex, MachineBasicBlock *>
using ParamLoadedValue = std::pair<MachineOperand, DIExpression*>
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.
using DWARFLocationExpressionsVector = std::vector<DWARFLocationExpression>
 Represents a set of absolute location expressions.
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.
typedef std::function< void(HTTPServerRequest &)> HTTPRequestHandler
typedef std::function< StringRef(size_t, size_t)> HTTPContentProvider
 An HTTPContentProvider is called by the HTTPServer to obtain chunks of the streaming response body.
using DWARFRegNum = uint32_t
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.
using TargetFlagsType = uint8_t
 Holds target-specific properties for a symbol.
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 OperandBundleDef = OperandBundleDefT<Value *>
using pred_iterator = PredIterator<BasicBlock, Value::user_iterator>
using const_pred_iterator
using pred_range = iterator_range<pred_iterator>
using const_pred_range = iterator_range<const_pred_iterator>
using succ_iterator = SuccIterator<Instruction, BasicBlock>
using const_succ_iterator = SuccIterator<const Instruction, const BasicBlock>
using succ_range = iterator_range<succ_iterator>
using const_succ_range = iterator_range<const_succ_iterator>
using ConvergenceVerifier = GenericConvergenceVerifier<SSAContext>
using CycleInfo = GenericCycleInfo<SSAContext>
using Cycle = CycleInfo::CycleT
using DebugLocTrackingRef = TrackingMDNodeRef
using DiagnosticHandlerFunction = std::function<void(const DiagnosticInfo &)>
using DbgInstPtr = PointerUnion<Instruction *, DbgRecord *>
using DomTreeNode = DomTreeNodeBase<BasicBlock>
using VarID
 A unique key that represents a debug variable.
typedef TinyPtrVector< BasicBlock * > ColorVector
using GCRegistry = Registry<GCStrategy>
 Subclasses of GCStrategy are made available for use during compilation by adding them to the global GCRegistry.
using gep_type_iterator = generic_gep_type_iterator<>
using inst_iterator
using const_inst_iterator
using inst_range = iterator_range<inst_iterator>
using const_inst_range = iterator_range<const_inst_iterator>
using ConstOperandBundleDef = OperandBundleDefT<const Value *>
using GlobalValueSummaryList = std::vector<std::unique_ptr<GlobalValueSummary>>
using GlobalValueSummaryMapTy
 Map from global value GUID to corresponding summary structures.
using VTableFuncList = std::vector<VirtFuncOffset>
 List of functions referenced by a particular vtable definition.
using ModuleHash = std::array<uint32_t, 5>
 160 bits SHA1
using const_gvsummary_iterator = GlobalValueSummaryMapTy::const_iterator
 Type used for iterating through the global value summary map.
using gvsummary_iterator = GlobalValueSummaryMapTy::iterator
using ModulePathStringTableTy = StringMap<ModuleHash>
 String table to hold/own module path strings, as well as a hash of the module.
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.
using ModuleToSummariesForIndexTy
 Map of a module name to the GUIDs and summaries we will import from that module.
using GVSummaryPtrSet = std::unordered_set<GlobalValueSummary *>
 A set of global value summary pointers.
using TypeIdSummaryMapTy
 Map of a type GUID to type id string and summary (multimap used in case of GUID conflicts).
using TypeIdCompatibleVtableInfo = std::vector<TypeIdOffsetVtableInfo>
 List of vtable definitions decorated by a particular type identifier, and their corresponding offsets in that type identifier's metadata.
using ModulePassManager = PassManager<Module>
 Convenience typedef for a pass manager over modules.
using FunctionPassManager = PassManager<Function>
 Convenience typedef for a pass manager over functions.
using FunctionAnalysisManager = AnalysisManager<Function>
 Convenience typedef for the Function analysis manager.
using FunctionAnalysisManagerModuleProxy
 Provide the FunctionAnalysisManager to Module proxy.
using ModuleAnalysisManagerFunctionProxy
 Provide the ModuleAnalysisManager to Function proxy.
using SummaryEntryVector = std::vector<ProfileSummaryEntry>
using IndexPair = std::pair<unsigned, unsigned>
 The pair of an instruction index and a operand index.
using IndexInstrMap = MapVector<unsigned, Instruction *>
 A map from an instruction index to an instruction pointer.
using IndexOperandHashMapType = DenseMap<IndexPair, stable_hash>
 A map from an IndexPair to a stable hash.
using IgnoreOperandFunc = std::function<bool(const Instruction *, unsigned)>
 A function that takes an instruction and an operand index and returns true if the operand should be ignored in the function hash computation.
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>.
typedef std::vector< MCAsmMacroParameterMCAsmMacroParameters
using SectionSymbolsTy = std::vector<SymbolInfoTy>
using MCFixupKind = uint16_t
 Extensible enumeration to represent the type of a fixup.
using MCLOHArgs = MCLOHDirective::LOHArgs
using MCLOHDirectives = MCLOHContainer::LOHDirectives
using OperandVector = SmallVectorImpl<std::unique_ptr<MCParsedAsmOperand>>
using InlineSite = std::tuple<uint64_t, uint32_t>
using MCPseudoProbeInlineStack = SmallVector<InlineSite, 8>
using MCPseudoProbeFrameLocation = std::pair<StringRef, uint32_t>
using MCPhysReg = uint16_t
 An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers.
using MCRegUnit = unsigned
 Register units are used to compute register aliasing.
using MCSectionSubPair = std::pair<MCSection *, uint32_t>
using MCSymbolTableEntry = StringMapEntry<MCSymbolTableValue>
 MCContext stores MCSymbolTableValue in a string map (see MCSymbol::operator new).
using AnalysisID = const void *
typedef struct llvm::ValueProfData ValueProfData
 Per-function header/control data structure for value profiling data in indexed format.
typedef struct llvm::ValueProfRecordClosure ValueProfRecordClosure
using RawInstrProfReader32 = RawInstrProfReader<uint32_t>
using RawInstrProfReader64 = RawInstrProfReader<uint64_t>
using OnDiskHashTableImplV3
using MemProfRecordHashTable
using MemProfFrameHashTable
using MemProfCallStackHashTable
using CtxProfFlatProfile
using CtxProfContextualProfiles
typedef BumpPtrAllocatorImpl BumpPtrAllocator
 The standard BumpPtrAllocator which just uses the default template parameters.
using NfaPath = SmallVector<uint64_t, 4>
template<size_t NumBytes = LLVM_BLAKE3_OUT_LEN>
using BLAKE3Result = std::array<uint8_t, NumBytes>
 The constant LLVM_BLAKE3_OUT_LEN provides the default output length, 32 bytes, which is recommended for most callers.
using AddStreamFn
 This type defines the callback to add a file that is generated on the fly.
using FileCacheFunction
 This is a callable that manages file caching operations.
using AddBufferFn
 This type defines the callback to add a pre-existing file (e.g.
typedef unsigned int UTF32
typedef unsigned short UTF16
typedef unsigned char UTF8
typedef unsigned char Boolean
using uint24_t = Uint24
using TagNameMap = ArrayRef<TagNameItem>
typedef void(* fatal_error_handler_t) (void *user_data, const char *reason, bool gen_crash_diag)
 An error handler callback.
template<typename T>
using DomTreeBase = DominatorTreeBase<T, false>
template<typename T>
using PostDomTreeBase = DominatorTreeBase<T, true>
template<typename T, typename U>
using enableif_int
 Some template parameter helpers to optimize for bitwidth, for functions that take multiple arguments.
template<typename T, typename U, typename = enableif_int<T, U>>
using common_uint
template<typename T, typename U, typename = enableif_int<T, U>>
using common_sint
using stack_float_t = float
 Type to force float point values onto the stack, so that x86 doesn't add hidden precision, avoiding rounding differences on various platforms.
using MemoryEffects = MemoryEffectsBase<IRMemLocation>
 Summary of how a function affects memory in the program.
using FunctionModRefBehavior = MemoryEffects
using SMTSortRef = const SMTSort *
 Shared pointer for SMTSorts, used by SMTSolver API.
using SMTExprRef = const SMTExpr *
 Shared pointer for SMTExprs, used by SMTSolver API.
using SMTSolverRef = std::shared_ptr<SMTSolver>
 Shared pointer for SMTSolvers.
using DefaultThreadPool = SingleThreadExecutor
typedef ScopedHandle< CommonHandleTraitsScopedCommonHandle
typedef ScopedHandle< FileHandleTraitsScopedFileHandle
typedef ScopedHandle< CryptContextTraitsScopedCryptContext
typedef ScopedHandle< RegTraitsScopedRegHandle
typedef ScopedHandle< FindHandleTraitsScopedFindHandle
typedef ScopedHandle< JobHandleTraitsScopedJobHandle
using TableGenMainFn = bool(raw_ostream &OS, const RecordKeeper &Records)
 Perform the action using Records, and write output to OS.
using ArgAuxType = std::variant<unsigned, const Init *>
using PassConfigCallback
using AAAlignmentStateType
using PotentialConstantIntValuesState = PotentialValuesState<APInt>
using PotentialLLVMValuesState
using SpecMap = DenseMap<Function *, std::pair<unsigned, unsigned>>
using Cost = InstructionCost
using ConstMap = DenseMap<Value *, Constant *>
using BlockSequence = SmallVector<BasicBlock *, 0>
 A sequence of basic blocks.
using AnchorList = std::vector<std::pair<LineLocation, FunctionId>>
using AnchorMap = std::map<LineLocation, FunctionId>
using BlockIdMap = std::unordered_map<BasicBlock *, uint32_t>
using InstructionIdMap = std::unordered_map<Instruction *, uint32_t>
using ProbeFactorMap
using FuncProbeFactorMap = StringMap<ProbeFactorMap>
typedef PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > LoopPassManager
 The Loop pass manager.
template<typename AnalysisT>
using RequireAnalysisLoopPass
 An alias template to easily name a require analysis loop pass.
using GlobalCtorTransformFn = llvm::function_ref<Constant *(Constant *)>
 Apply 'Fn' to the list of global ctors of module M and replace contructor record with the one returned by Fn.
using ProfileCount = Function::ProfileCount
using NewLoopsMap = SmallDenseMap<const Loop *, Loop *, 4>
using DbgRecordIterator = simple_ilist<DbgRecord>::iterator
using MetadataSetTy = SmallPtrSet<const Metadata *, 16>
using MetadataPredicate = std::function<bool(const Metadata *)>
using BFIDOTGTraitsBase
using ParamSet = SmallVector<DbgCallSiteParam, 4>
 Collection used for storing debug call site parameters.
using MBFIDOTGraphTraitsBase
typedef DWARFExpression::Operation Op
typedef Op::Description Desc
typedef std::vector< GenericValueValuePlaneTy
typedef StringMap< SymbolTableEntryRTDyldSymbolTable
using binop_eval_t = Expected<APInt> (*)(const APInt &, const APInt &, bool &)
 Type of functions evaluating a given binary operation.
using RegionBoundaries
 A region's boundaries i.e.
using BBInfoVector = SmallVectorImpl<BasicBlockInfo>
typedef bool RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsRet, Type *OrigTy)
 RISCVCCAssignFn - This target-specific function extends the default CCValAssign with additional information used to lower RISC-V calling conventions.
using CapabilityList = SmallVector<SPIRV::Capability::Capability, 8>
using ExtensionList = SmallVector<SPIRV::Extension::Extension, 8>
using EnvironmentList = SmallVector<SPIRV::Environment::Environment, 8>
using SPIRVType = const MachineInstr
using StructOffsetDecorator = std::function<void(Register)>
using InstrSignature = SmallVector<size_t>
using InstrTraces = std::set<InstrSignature>
using InstrGRegsMap = std::map<SmallVector<size_t>, unsigned>
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, uintptr_t>
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
using VPlanPtr = std::unique_ptr<VPlan>
using VPDomTreeNode = DomTreeNodeBase<VPBlockBase>
typedef DenseMap< Value *, VPValue * > Value2VPValueTy
typedef DenseMap< VPValue *, Value * > VPValue2ValueTy
typedef ArrayRef< uint8_tBuildIDRef
 A reference to a BuildID in binary form.

Enumerations

enum  lostFraction { lfExactlyZero , lfLessThanHalf , lfExactlyHalf , lfMoreThanHalf }
 Enum that represents what fraction of the LSB truncated bits of an fp number represent. More...
enum class  endianness { big , little , native = little }
enum class  RoundingMode : int8_t {
  TowardZero = 0 , NearestTiesToEven = 1 , TowardPositive = 2 , TowardNegative = 3 ,
  NearestTiesToAway = 4 , Dynamic = 7 , Invalid = -1
}
 Rounding mode. More...
enum  FPClassTest : unsigned {
  fcNone = 0 , fcSNan = 0x0001 , fcQNan = 0x0002 , fcNegInf = 0x0004 ,
  fcNegNormal = 0x0008 , fcNegSubnormal = 0x0010 , fcNegZero = 0x0020 , fcPosZero = 0x0040 ,
  fcPosSubnormal = 0x0080 , fcPosNormal = 0x0100 , fcPosInf = 0x0200 , fcNan = fcSNan | fcQNan ,
  fcInf = fcPosInf | fcNegInf , fcNormal = fcPosNormal | fcNegNormal , fcSubnormal = fcPosSubnormal | fcNegSubnormal , fcZero = fcPosZero | fcNegZero ,
  fcPosFinite = fcPosNormal | fcPosSubnormal | fcPosZero , fcNegFinite = fcNegNormal | fcNegSubnormal | fcNegZero , fcFinite = fcPosFinite | fcNegFinite , fcPositive = fcPosFinite | fcPosInf ,
  fcNegative = fcNegFinite | fcNegInf , fcAllFlags = fcNan | fcInf | fcFinite
}
 Floating-point class tests, supported by 'is_fpclass' intrinsic. More...
enum class  InstructionUniformity { Default , AlwaysUniform , NeverUniform }
 Enum describing how instructions behave with respect to uniformity and divergence, to answer the question: if the same instruction is executed by two threads in a convergent set of threads, will its result value(s) be uniform, i.e. More...
enum  AssumeBundleArg { ABA_WasOn = 0 , ABA_Argument = 1 }
 Index of elements in the operand bundle. More...
enum  PGOViewCountsType { PGOVCT_None , PGOVCT_Graph , PGOVCT_Text }
enum  GVDAGType { GVDT_None , GVDT_Fraction , GVDT_Integer , GVDT_Count }
enum struct  ConvergenceKind { None , Controlled , ExtendedLoop , Uncontrolled }
enum class  InliningAdvisorMode : int { Default , Release , Development }
 There are 4 scenarios we can use the InlineAdvisor: More...
enum class  InlinePass : int {
  AlwaysInliner , CGSCCInliner , EarlyInliner , ModuleInliner ,
  MLInliner , ReplayCGSCCInliner , ReplaySampleProfileInliner , SampleProfileInliner
}
enum class  InlineCostFeatureIndex : size_t { NumberOfFeatures }
enum class  FeatureIndex : size_t { callee_embedding , caller_embedding }
enum class  IR2VecKind { Symbolic , FlowAware }
 IR2Vec computes two kinds of embeddings: Symbolic and Flow-aware. More...
enum class  RecurKind {
  None , Add , Sub , AddChainWithSubs ,
  Mul , Or , And , Xor ,
  SMin , SMax , UMin , UMax ,
  FAdd , FMul , FMin , FMax ,
  FMinNum , FMaxNum , FMinimum , FMaximum ,
  FMinimumNum , FMaximumNum , FMulAdd , AnyOf ,
  FindFirstIVSMin , FindFirstIVUMin , FindLastIVSMax , FindLastIVUMax
}
 These are the kinds of recurrences that we support. More...
enum  : unsigned { INVALID_MEMORYACCESS_ID = -1U }
enum class  ExplorationDirection { BACKWARD = 0 , FORWARD = 1 }
 Enum that allows us to spell out the direction. More...
enum  SCEVTypes : unsigned short {
  scConstant , scVScale , scTruncate , scZeroExtend ,
  scSignExtend , scAddExpr , scMulExpr , scUDivExpr ,
  scAddRecExpr , scUMaxExpr , scSMaxExpr , scUMinExpr ,
  scSMinExpr , scSequentialUMinExpr , scPtrToInt , scUnknown ,
  scCouldNotCompute
}
enum class  StructuralHashOptions { None , Detailed , CallTargetIgnored }
enum  LibFunc : unsigned { NumLibFuncs , NotLibFunc }
enum class  TailFoldingStyle {
  None , Data , DataWithoutLaneMask , DataAndControlFlow ,
  DataAndControlFlowWithoutRuntimeCheck , DataWithEVL
}
enum class  TensorType { Invalid , Total }
enum  CfiFunctionLinkage { CFL_Definition = 0 , CFL_Declaration = 1 , CFL_WeakDeclaration = 2 }
 The type of CFI jumptable needed for a function. More...
enum class  InlinerFunctionImportStatsOpts { No = 0 , Basic = 1 , Verbose = 2 }
enum class  OverflowResult { AlwaysOverflowsLow , AlwaysOverflowsHigh , MayOverflow , 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  CurStreamTypeType {
  UnknownBitstream , LLVMIRBitstream , ClangSerializedASTBitstream , ClangSerializedDiagnosticsBitstream ,
  LLVMBitstreamRemarks
}
 CurStreamTypeType - A type for CurStreamType. More...
enum class  BitcodeError { CorruptedBitcode = 1 }
enum  BitstreamWrapperHeader : unsigned {
  BWH_MagicField = 0 * 4 , BWH_VersionField = 1 * 4 , BWH_OffsetField = 2 * 4 , BWH_SizeField = 3 * 4 ,
  BWH_CPUTypeField = 4 * 4 , BWH_HeaderSize = 5 * 4
}
 Offsets of the 32-bit fields of bitstream wrapper header. More...
enum  CGDataSectKind { CG_DATA_SECT_ENTRY , CG_DATA_SECT_ENTRY }
enum class  CGDataKind { Unknown = 0x0 , FunctionOutlinedHashTree = 0x1 , StableFunctionMergingMap = 0x2 }
enum class  cgdata_error {
  success = 0 , eof , bad_magic , bad_header ,
  empty_cgdata , malformed , unsupported_version
}
enum  CGDataMode { None = 0 , Read , Write }
enum class  VariableID : unsigned { Reserved = 0 }
 Type wrapper for integer ID for Variables. 0 is reserved. More...
enum class  ComplexDeinterleavingOperation {
  CAdd , CMulPartial , CDot , Deinterleave ,
  Splat , Symmetric , ReductionPHI , ReductionOperation ,
  ReductionSelect , ReductionSingle
}
enum class  ComplexDeinterleavingRotation { Rotation_0 = 0 , Rotation_90 = 1 , Rotation_180 = 2 , Rotation_270 = 3 }
enum  CombineLevel { BeforeLegalizeTypes , AfterLegalizeTypes , AfterLegalizeVectorOps , AfterLegalizeDAG }
enum class  VPExpansionDetails { IntrinsicUnchanged , IntrinsicUpdated , IntrinsicReplaced }
 Represents the details the expansion of a VP intrinsic. More...
enum  { GICXXPred_Invalid = 0 , GICXXCustomAction_Invalid = 0 }
enum  {
  GIM_Try , GIM_SwitchOpcode , GIM_SwitchType , GIM_RecordInsn ,
  GIM_RecordInsnIgnoreCopies , GIM_CheckFeatures , GIM_CheckOpcode , GIM_CheckOpcodeIsEither ,
  GIM_CheckNumOperands , GIM_CheckNumOperandsLE , GIM_CheckNumOperandsGE , GIM_CheckI64ImmPredicate ,
  GIM_CheckAPIntImmPredicate , GIM_CheckAPFloatImmPredicate , GIM_CheckImmOperandPredicate , GIM_CheckLeafOperandPredicate ,
  GIM_CheckAtomicOrdering , GIM_CheckAtomicOrderingOrStrongerThan , GIM_CheckAtomicOrderingWeakerThan , GIM_CheckMemorySizeEqualTo ,
  GIM_CheckMemoryAddressSpace , GIM_CheckMemoryAlignment , GIM_CheckMemorySizeEqualToLLT , GIM_CheckMemorySizeLessThanLLT ,
  GIM_CheckMemorySizeGreaterThanLLT , GIM_CheckIsBuildVectorAllOnes , GIM_CheckIsBuildVectorAllZeros , GIM_CheckSimplePredicate ,
  GIM_CheckCxxInsnPredicate , GIM_CheckHasNoUse , GIM_CheckHasOneUse , GIM_CheckType ,
  GIM_RootCheckType , GIM_CheckPointerToAny , GIM_CheckRegBankForClass , GIM_RootCheckRegBankForClass ,
  GIM_CheckComplexPattern , GIM_CheckConstantInt , GIM_CheckConstantInt8 , GIM_CheckLiteralInt ,
  GIM_CheckIntrinsicID , GIM_CheckCmpPredicate , GIM_CheckIsMBB , GIM_CheckIsImm ,
  GIM_CheckIsSafeToFold , GIM_CheckIsSameOperand , GIM_CheckIsSameOperandIgnoreCopies , GIM_CheckAllSameOperand ,
  GIM_CheckAllSameOperandIgnoreCopies , GIM_CheckCanReplaceReg , GIM_MIFlags , GIM_MIFlagsNot ,
  GIM_RecordNamedOperand , GIM_RecordRegType , GIM_Reject , GIR_MutateOpcode ,
  GIR_BuildMI , GIR_BuildRootMI , GIR_BuildConstant , GIR_Copy ,
  GIR_RootToRootCopy , GIR_CopyRemaining , GIR_CopyOrAddZeroReg , GIR_CopySubReg ,
  GIR_AddImplicitDef , GIR_AddImplicitUse , GIR_AddRegister , GIR_AddIntrinsicID ,
  GIR_SetImplicitDefDead , GIR_SetMIFlags , GIR_UnsetMIFlags , GIR_CopyMIFlags ,
  GIR_AddTempRegister , GIR_AddSimpleTempRegister , GIR_AddTempSubRegister , GIR_AddImm ,
  GIR_AddImm8 , GIR_AddCImm , GIR_ComplexRenderer , GIR_ComplexSubOperandRenderer ,
  GIR_ComplexSubOperandSubRegRenderer , GIR_CustomRenderer , GIR_DoneWithCustomAction , GIR_CustomOperandRenderer ,
  GIR_CopyConstantAsSImm , GIR_CopyFConstantAsFPImm , GIR_ConstrainOperandRC , GIR_ConstrainSelectedInstOperands ,
  GIR_RootConstrainSelectedInstOperands , GIR_MergeMemOperands , GIR_EraseFromParent , GIR_EraseRootFromParent_Done ,
  GIR_MakeTempReg , GIR_ReplaceReg , GIR_ReplaceRegWithTempReg , GIR_Done ,
  GIR_Coverage , GIU_NumOpcodes
}
 The MatchTable is encoded as an array of bytes. More...
enum class  CombinerObjective { MustReduceDepth , MustReduceRegisterPressure , Default }
 The combiner's goal may differ based on which pattern it is attempting to optimize. More...
enum  MachineCombinerPattern : unsigned {
  REASSOC_AX_BY , REASSOC_AX_YB , REASSOC_XA_BY , REASSOC_XA_YB ,
  ACC_CHAIN , TARGET_PATTERN_START
}
 These are instruction patterns matched by the machine combiner pass. More...
enum class  MachineFunctionDataHotness { Unknown , Cold , Hot }
enum  LoopPeelDirection { LPD_Front , LPD_Back }
enum class  MachineTraceStrategy { TS_MinInstrCount , TS_Local , TS_NumStrategies }
 Strategies for selecting traces. More...
enum  LiveRangeStage {
  RS_New , RS_Assign , RS_Split , RS_Split2 ,
  RS_Spill , RS_Done
}
enum  SDNP {
  SDNPHasChain , SDNPOutGlue , SDNPInGlue , SDNPOptInGlue ,
  SDNPMemOperand , SDNPVariadic
}
enum  SDTC : uint8_t {
  SDTCisVT , SDTCisPtrTy , SDTCisInt , SDTCisFP ,
  SDTCisVec , SDTCisSameAs , SDTCisVTSmallerThanOp , SDTCisOpSmallerThanOp ,
  SDTCisEltOfVec , SDTCisSubVecOfVec , SDTCVecEltisVT , SDTCisSameNumEltsAs ,
  SDTCisSameSizeAs
}
enum  SDNF { SDNFIsStrictFP }
enum  WindowSchedulingFlag { WS_Off , WS_On , WS_Force }
enum class  ClrHandlerType { Catch , Finally , Fault , Filter }
enum class  DINameKind { None , ShortName , 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  DWARFSectionKind { DW_SECT_EXT_unknown = 0 , DW_SECT_EXT_TYPES = 2 , DW_SECT_EXT_LOC = 9 , DW_SECT_EXT_MACINFO = 10 }
 The enum of section identifiers to be used in internal interfaces. More...
enum class  HTTPMethod { GET }
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 , MSDF_NoAccessSpecifier = 1 << 1 , MSDF_NoCallingConvention = 1 << 2 ,
  MSDF_NoReturnType = 1 << 3 , MSDF_NoMemberType = 1 << 4 , MSDF_NoVariableType = 1 << 5
}
enum  OnCuIndexOverflow { HardStop , SoftStop , Continue }
enum class  AllocFnKind : uint64_t {
  Unknown = 0 , Alloc = 1 << 0 , Realloc = 1 << 1 , Free = 1 << 2 ,
  Uninitialized = 1 << 3 , Zeroed = 1 << 4 , Aligned = 1 << 5
}
enum  DiagnosticSeverity : char { DS_Error , DS_Warning , DS_Remark , DS_Note }
 Defines the different supported severity of a diagnostic. More...
enum  DiagnosticKind {
  DK_Generic , DK_GenericWithLoc , DK_InlineAsm , DK_RegAllocFailure ,
  DK_ResourceLimit , DK_StackSize , DK_Linker , DK_Lowering ,
  DK_LegalizationFailure , DK_DebugMetadataVersion , DK_DebugMetadataInvalid , DK_Instrumentation ,
  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_SrcMgr , DK_DontCall ,
  DK_MisExpect , DK_FirstPluginKind
}
 Defines the different supported kind of a diagnostic. More...
enum class  EHPersonality {
  Unknown , GNU_Ada , GNU_C , GNU_C_SjLj ,
  GNU_CXX , GNU_CXX_SjLj , GNU_ObjC , MSVC_X86SEH ,
  MSVC_TableSEH , MSVC_CXX , CoreCLR , Rust ,
  Wasm_CXX , XL_CXX , ZOS_CXX
}
enum  PassDebuggingString {
  EXECUTION_MSG , MODIFICATION_MSG , FREEING_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 class  AllocationType : uint8_t {
  None = 0 , NotCold = 1 , Cold = 2 , Hot = 4 ,
  All = 7
}
enum class  ChangePrinter {
  None , Verbose , Quiet , DiffVerbose ,
  DiffQuiet , ColourDiffVerbose , ColourDiffQuiet , DotCfgVerbose ,
  DotCfgQuiet
}
enum class  PseudoProbeReservedId { Invalid = 0 , Last = Invalid }
enum class  PseudoProbeType { Block = 0 , IndirectCall , DirectCall }
enum class  PseudoProbeAttributes { Reserved = 0x1 , Sentinel = 0x2 , HasDiscriminator = 0x4 }
enum class  StatepointFlags { None = 0 , GCTransition = 1 , DeoptLiveIn = 2 , MaskAll = 3 }
 The statepoint intrinsic accepts a set of flags as its third argument. More...
enum class  VFParamKind {
  Vector , OMP_Linear , OMP_LinearRef , OMP_LinearVal ,
  OMP_LinearUVal , OMP_LinearPos , OMP_LinearValPos , OMP_LinearRefPos ,
  OMP_LinearUValPos , OMP_Uniform , GlobalPredicate , Unknown
}
 Describes the type of Parameters. More...
enum class  VFISAKind {
  AdvancedSIMD , SVE , RVV , SSE ,
  AVX , AVX2 , AVX512 , LLVM ,
  Unknown
}
 Describes the type of Instruction Set Architecture. More...
enum  MCSymbolAttr {
  MCSA_Invalid = 0 , MCSA_Cold , MCSA_ELF_TypeFunction , MCSA_ELF_TypeIndFunction ,
  MCSA_ELF_TypeObject , MCSA_ELF_TypeTLS , MCSA_ELF_TypeCommon , MCSA_ELF_TypeNoType ,
  MCSA_ELF_TypeGnuUniqueObject , MCSA_Global , MCSA_LGlobal , MCSA_Extern ,
  MCSA_Hidden , MCSA_Exported , 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 ,
  MCSA_WeakAntiDep , MCSA_Memtag
}
enum  MCDataRegionType {
  MCDR_DataRegion , MCDR_DataRegionJT8 , MCDR_DataRegionJT16 , MCDR_DataRegionJT32 ,
  MCDR_DataRegionEnd
}
enum  MCVersionMinType { MCVM_IOSVersionMin , MCVM_OSXVersionMin , MCVM_TvOSVersionMin , MCVM_WatchOSVersionMin }
enum  {
  FirstLiteralRelocationKind = 2000 , FK_NONE = 4000 , FK_Data_1 , FK_Data_2 ,
  FK_Data_4 , FK_Data_8 , FK_Data_leb128 , FK_SecRel_1 ,
  FK_SecRel_2 , FK_SecRel_4 , FK_SecRel_8 , FirstTargetFixupKind
}
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_CallInput ,
  AOK_Input , AOK_Output , AOK_SizeDirective , AOK_Label ,
  AOK_EndOfStatement , AOK_Skip , AOK_IntelExpr
}
enum class  MCPseudoProbeFlag { AddressDelta = 0x1 }
enum class  EmitDwarfUnwindType { Always , NoCompactUnwind , Default }
enum class  SymtabWritingMode { NoSymtab , NormalSymtab , BigArchive32 , BigArchive64 }
enum  PassManagerType {
  PMT_Unknown = 0 , PMT_ModulePassManager = 1 , PMT_CallGraphPassManager , PMT_FunctionPassManager ,
  PMT_LoopPassManager , PMT_RegionPassManager , PMT_Last
}
 Different types of internal pass managers. More...
enum  PassKind {
  PT_Region , PT_Loop , PT_Function , PT_CallGraphSCC ,
  PT_Module , PT_PassManager
}
enum class  ThinOrFullLTOPhase {
  None , ThinLTOPreLink , ThinLTOPostLink , FullLTOPreLink ,
  FullLTOPostLink
}
 This enumerates the LLVM full LTO or ThinLTO optimization phases. More...
enum  InstrProfSectKind { INSTR_PROF_DATA , INSTR_PROF_DATA }
enum  InstrProfValueKind : uint32_t { INSTR_PROF_DATA , INSTR_PROF_DATA }
enum class  InstrProfKind {
  Unknown = 0x0 , FrontendInstrumentation = 0x1 , IRInstrumentation = 0x2 , FunctionEntryInstrumentation = 0x4 ,
  ContextSensitive = 0x8 , SingleByteCoverage = 0x10 , FunctionEntryOnly = 0x20 , MemProf = 0x40 ,
  TemporalProfile = 0x80 , LoopEntriesInstrumentation = 0x100
}
 An enum describing the attributes of an instrumented profile. More...
enum class  instrprof_error {
  success = 0 , eof , unrecognized_format , bad_magic ,
  bad_header , unsupported_version , unsupported_hash_type , too_large ,
  truncated , malformed , missing_correlation_info , unexpected_correlation_info ,
  unable_to_correlate_profile , unknown_function , invalid_prof , hash_mismatch ,
  count_mismatch , bitmap_mismatch , counter_overflow , value_site_count_mismatch ,
  compress_failed , uncompress_failed , empty_raw_profile , zlib_unavailable ,
  raw_profile_version_mismatch , counter_value_too_large
}
enum  PGOCtxProfileRecords {
  Invalid = 0 , Guid , CallsiteIndex , Counters ,
  TotalRootEntryCount
}
enum  PGOCtxProfileBlockIDs {
  FIRST_VALID = bitc::FIRST_APPLICATION_BLOCKID , ProfileMetadataBlockID = FIRST_VALID , ContextsSectionBlockID = ProfileMetadataBlockID + 1 , ContextRootBlockID = ContextsSectionBlockID + 1 ,
  ContextNodeBlockID = ContextRootBlockID + 1 , FlatProfilesSectionBlockID = ContextNodeBlockID + 1 , FlatProfileBlockID = FlatProfilesSectionBlockID + 1 , UnhandledBlockID = FlatProfileBlockID + 1 ,
  LAST_VALID = UnhandledBlockID
}
enum class  sampleprof_error {
  success = 0 , bad_magic , unsupported_version , too_large ,
  truncated , malformed , unrecognized_format , unsupported_writing_format ,
  truncated_name_table , not_implemented , counter_overflow , ostream_seek_unsupported ,
  uncompress_failed , zlib_unavailable , hash_mismatch , illegal_line_offset
}
enum class  WaitForUnlockResult { Success , OwnerDied , Timeout }
 Describes the result of waiting for the owner to release the lock. More...
enum class  AtomicOrderingCABI {
  relaxed = 0 , consume = 1 , acquire = 2 , release = 3 ,
  acq_rel = 4 , seq_cst = 5
}
 Atomic ordering for C11 / C++11's memory models. More...
enum class  AtomicOrdering : unsigned {
  NotAtomic = 0 , Unordered = 1 , Monotonic = 2 , Acquire = 4 ,
  Release = 5 , AcquireRelease = 6 , SequentiallyConsistent = 7 , LAST = SequentiallyConsistent
}
 Atomic ordering for LLVM's memory model. More...
enum  BinaryStreamFlags { BSF_None = 0 , BSF_Write = 1 , BSF_Append = 2 }
enum class  stream_error_code {
  unspecified , stream_too_short , invalid_array_size , invalid_offset ,
  filesystem_error
}
enum class  ExceptionHandling {
  None , DwarfCFI , SjLj , ARM ,
  WinEH , Wasm , AIX , ZOS
}
enum class  EABI {
  Unknown , Default , EABI4 , EABI5 ,
  GNU
}
enum class  CodeGenOptLevel { None = 0 , Less = 1 , Default = 2 , Aggressive = 3 }
 Code generation optimization level. More...
enum class  CodeGenFileType { AssemblyFile , ObjectFile , Null }
 These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit, and returned by it to indicate what type of file could actually be made. More...
enum class  FramePointerKind { None , NonLeaf , All , Reserved }
enum class  UWTableKind { None = 0 , Sync = 1 , Async = 2 , Default = 2 }
enum class  FunctionReturnThunksKind : unsigned int { Keep = 0 , Extern = 1 , Invalid = 2 }
enum class  WinX64EHUnwindV2Mode { Disabled = 0 , BestEffort = 1 , Required = 2 }
enum class  DebugCompressionType { None , Zlib , Zstd }
enum  ConversionResult { conversionOK , sourceExhausted , targetExhausted , sourceIllegal }
enum  ConversionFlags { strictConversion = 0 , lenientConversion }
enum class  errc {
  argument_list_too_long = int(std::errc::argument_list_too_long) , argument_out_of_domain = int(std::errc::argument_out_of_domain) , bad_address = int(std::errc::bad_address) , bad_file_descriptor = int(std::errc::bad_file_descriptor) ,
  broken_pipe = int(std::errc::broken_pipe) , delete_pending = -56 , device_or_resource_busy = int(std::errc::device_or_resource_busy) , directory_not_empty = int(std::errc::directory_not_empty) ,
  executable_format_error = int(std::errc::executable_format_error) , file_exists = int(std::errc::file_exists) , file_too_large = int(std::errc::file_too_large) , filename_too_long = int(std::errc::filename_too_long) ,
  function_not_supported = int(std::errc::function_not_supported) , illegal_byte_sequence = int(std::errc::illegal_byte_sequence) , inappropriate_io_control_operation , interrupted = int(std::errc::interrupted) ,
  invalid_argument = int(std::errc::invalid_argument) , invalid_seek = int(std::errc::invalid_seek) , io_error = int(std::errc::io_error) , is_a_directory = int(std::errc::is_a_directory) ,
  no_child_process = int(std::errc::no_child_process) , no_lock_available = int(std::errc::no_lock_available) , no_space_on_device = int(std::errc::no_space_on_device) , no_such_device_or_address = int(std::errc::no_such_device_or_address) ,
  no_such_device = int(std::errc::no_such_device) , no_such_file_or_directory = int(std::errc::no_such_file_or_directory) , no_such_process = int(std::errc::no_such_process) , not_a_directory = int(std::errc::not_a_directory) ,
  not_enough_memory = int(std::errc::not_enough_memory) , not_supported = int(std::errc::not_supported) , operation_not_permitted = int(std::errc::operation_not_permitted) , permission_denied = int(std::errc::permission_denied) ,
  read_only_file_system = int(std::errc::read_only_file_system) , resource_deadlock_would_occur = int(std::errc::resource_deadlock_would_occur) , resource_unavailable_try_again , result_out_of_range = int(std::errc::result_out_of_range) ,
  too_many_files_open_in_system = int(std::errc::too_many_files_open_in_system) , too_many_files_open = int(std::errc::too_many_files_open) , too_many_links = int(std::errc::too_many_links)
}
enum class  AlignStyle { Left , Center , Right }
enum class  ReplacementType { Format , Literal }
enum class  LEB128Sign { Unsigned , Signed }
enum class  ModRefInfo : uint8_t {
  NoModRef = 0 , Ref = 1 , Mod = 2 , ModRef = Ref | Mod ,
  LLVM_MARK_AS_BITMASK_ENUM =(ModRef)
}
 Flags indicating whether a memory access modifies or references memory. More...
enum class  IRMemLocation {
  ArgMem = 0 , InaccessibleMem = 1 , ErrnoMem = 2 , Other = 3 ,
  First = ArgMem , Last = Other
}
 The locations at which a function might access memory. More...
enum class  CaptureComponents : uint8_t {
  None = 0 , AddressIsNull = (1 << 0) , Address = (1 << 1) | AddressIsNull , ReadProvenance = (1 << 2) ,
  Provenance = (1 << 3) | ReadProvenance , All = Address | Provenance , LLVM_MARK_AS_BITMASK_ENUM =(Provenance)
}
 Components of the pointer that may be captured. More...
enum class  FloatStyle { Exponent , ExponentUpper , Fixed , Percent }
enum class  IntegerStyle { Integer , Number }
enum class  HexPrintStyle { Upper , Lower , PrefixUpper , PrefixLower }
enum class  TextEncoding { UTF8 , IBM1047 }
enum  InitStatus { Uninitialized = 0 , Wait = 1 , Done = 2 }
enum class  ThreadPriority { Background = 0 , Low = 1 , Default = 2 }
enum class  SetThreadPriorityResult { FAILURE , SUCCESS }
enum class  TimeTraceEventType { CompleteEvent , InstantEvent , AsyncEvent }
enum class  HighlightColor {
  Address , String , Tag , Attribute ,
  Enumerator , Macro , Error , Warning ,
  Note , Remark
}
enum class  ColorMode { Auto , Enable , Disable }
enum  {
  TB_INDEX_0 = 0 , TB_INDEX_1 = 1 , TB_INDEX_2 = 2 , TB_INDEX_3 = 3 ,
  TB_INDEX_4 = 4 , TB_INDEX_MASK = 0x7 , TB_NO_REVERSE = 1 << 3 , TB_NO_FORWARD = 1 << 4 ,
  TB_FOLDED_LOAD = 1 << 5 , TB_FOLDED_STORE = 1 << 6 , TB_ALIGN_SHIFT = 7 , TB_ALIGN_1 = 0 << TB_ALIGN_SHIFT ,
  TB_ALIGN_16 = 4 << TB_ALIGN_SHIFT , TB_ALIGN_32 = 5 << TB_ALIGN_SHIFT , TB_ALIGN_64 = 6 << TB_ALIGN_SHIFT , TB_ALIGN_MASK = 0x7 << TB_ALIGN_SHIFT ,
  TB_BCAST_TYPE_SHIFT = TB_ALIGN_SHIFT + 3 , TB_BCAST_W = 1 << TB_BCAST_TYPE_SHIFT , TB_BCAST_D = 2 << TB_BCAST_TYPE_SHIFT , TB_BCAST_Q = 3 << TB_BCAST_TYPE_SHIFT ,
  TB_BCAST_SS = 4 << TB_BCAST_TYPE_SHIFT , TB_BCAST_SD = 5 << TB_BCAST_TYPE_SHIFT , TB_BCAST_SH = 6 << TB_BCAST_TYPE_SHIFT , TB_BCAST_MASK = 0x7 << TB_BCAST_TYPE_SHIFT
}
enum class  RunOutliner {
  TargetDefault , AlwaysOutline , OptimisticPGO , ConservativePGO ,
  NeverOutline
}
enum class  RegAllocType {
  Unset , Default , Basic , Fast ,
  Greedy , PBQP
}
enum class  BasicBlockSection { All , List , Preset , None }
enum class  DebuggerKind {
  Default , GDB , LLDB , SCE ,
  DBX
}
 Identify a debugger for "tuning" the debug info. More...
enum class  GlobalISelAbortMode { Disable , Enable , DisableWithDiag }
 Enable abort calls when global instruction selection fails to lower/select an instruction. More...
enum class  SwiftAsyncFramePointerMode { DeploymentBased , Always , Never }
 Indicates when and how the Swift async frame pointer bit should be set. More...
enum  CodeObjectVersionKind {
  COV_None , COV_2 = 200 , COV_3 = 300 , COV_4 = 400 ,
  COV_5 = 500 , COV_6 = 600
}
 Enumeration value for AMDGPU code object version, which is the code object version times 100. More...
enum class  AsanDtorKind { None , Global , Invalid }
 Types of ASan module destructors supported. More...
enum class  AsanCtorKind { None , Global }
 Types of ASan module constructors supported. More...
enum class  AsanDetectStackUseAfterReturnMode { Never , Runtime , Always , Invalid }
 Mode of ASan detect stack use after return. More...
enum class  PGOInstrumentationType { Invalid = 0 , FDO , CSFDO , CTXPROF }
enum class  PassSummaryAction { None , Import , Export }
 What to do with the summary when running passes that operate on it. More...
enum class  ChangeStatus { CHANGED , UNCHANGED }
 { More...
enum class  DepClassTy { REQUIRED , OPTIONAL , NONE }
enum  AttributorRunOption { NONE = 0 , MODULE = 1 << 0 , CGSCC = 1 << 1 , ALL = MODULE | CGSCC }
 Run options, used by the pass manager. More...
enum class  ExpandVariadicsMode { Unspecified , Disable , Optimize , Lowering }
enum class  PrevailingType { Yes , No , Unknown }
 PrevailingType enum used as a return type of callback passed to computeDeadSymbolsAndUpdateIndirectCalls. More...
enum class  SROAOptions : bool { ModifyCFG , PreserveCFG }
enum class  CloneFunctionChangeType { LocalChangesOnly , GlobalChanges , DifferentModule , ClonedModule }
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  ReplaceExitVal {
  NeverRepl , OnlyCheapRepl , NoHardUse , UnusedIndVarInLoop ,
  AlwaysRepl
}
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 class  PGSOQueryType { IRPass , Test , Other }
enum class  LoopUnrollResult { Unmodified , PartiallyUnrolled , FullyUnrolled }
 Represents the result of a UnrollLoop invocation. More...
enum  RemapFlags {
  RF_None = 0 , RF_NoModuleLevelChanges = 1 , RF_IgnoreMissingLocals = 2 , RF_ReuseAndMutateDistinctMDs = 4 ,
  RF_NullMapMissingGlobalValues = 8 , RF_DoNotRemapAtoms = 16
}
 These are flags that the value mapping APIs allow. More...
enum class  LoopIdiomVectorizeStyle { Masked , Predicated }
enum class  SubDirectoryType { Bin , Include , Lib }
enum class  ToolsetLayout { OlderVS , VS2017OrNewer , DevDivInternal }
enum class  UnitKind { Skeleton , Full }
enum class  AccelTableKind { Default , None , Apple , Dwarf }
 The kind of accelerator tables we should emit. More...
enum  FeatureIDs { FeatureCount }
enum class  ContextWorklistItemType : uint8_t { AnalyzeContextInfo , UpdateChildPruning , UpdatePruning }
 The distinct types of work performed by the work loop in analyzeContextInfo. More...
enum  AccessField { Offset , Length }
enum  IttEventType { LoadBinaryModule , LoadBinarySection , UnloadBinaryModule , UnloadBinarySection }
enum  InternalRelocationType : unsigned { INTERNAL_REL_ARM64_LONG_BRANCH26 = 0x111 }
enum class  fltNonfiniteBehavior { IEEE754 , NanOnly , FiniteOnly }
enum class  fltNanEncoding { IEEE , AllOnes , NegativeZero }
enum  AArch64MachineCombinerPattern : unsigned {
  SUBADD_OP1 = MachineCombinerPattern::TARGET_PATTERN_START , SUBADD_OP2 , MULADDW_OP1 , MULADDW_OP2 ,
  MULSUBW_OP1 , MULSUBW_OP2 , MULADDWI_OP1 , MULSUBWI_OP1 ,
  MULADDX_OP1 , MULADDX_OP2 , MULSUBX_OP1 , MULSUBX_OP2 ,
  MULADDXI_OP1 , MULSUBXI_OP1 , MULADDv8i8_OP1 , MULADDv8i8_OP2 ,
  MULADDv16i8_OP1 , MULADDv16i8_OP2 , MULADDv4i16_OP1 , MULADDv4i16_OP2 ,
  MULADDv8i16_OP1 , MULADDv8i16_OP2 , MULADDv2i32_OP1 , MULADDv2i32_OP2 ,
  MULADDv4i32_OP1 , MULADDv4i32_OP2 , MULSUBv8i8_OP1 , MULSUBv8i8_OP2 ,
  MULSUBv16i8_OP1 , MULSUBv16i8_OP2 , MULSUBv4i16_OP1 , MULSUBv4i16_OP2 ,
  MULSUBv8i16_OP1 , MULSUBv8i16_OP2 , MULSUBv2i32_OP1 , MULSUBv2i32_OP2 ,
  MULSUBv4i32_OP1 , MULSUBv4i32_OP2 , MULADDv4i16_indexed_OP1 , MULADDv4i16_indexed_OP2 ,
  MULADDv8i16_indexed_OP1 , MULADDv8i16_indexed_OP2 , MULADDv2i32_indexed_OP1 , MULADDv2i32_indexed_OP2 ,
  MULADDv4i32_indexed_OP1 , MULADDv4i32_indexed_OP2 , MULSUBv4i16_indexed_OP1 , MULSUBv4i16_indexed_OP2 ,
  MULSUBv8i16_indexed_OP1 , MULSUBv8i16_indexed_OP2 , MULSUBv2i32_indexed_OP1 , MULSUBv2i32_indexed_OP2 ,
  MULSUBv4i32_indexed_OP1 , MULSUBv4i32_indexed_OP2 , FMULADDH_OP1 , FMULADDH_OP2 ,
  FMULSUBH_OP1 , FMULSUBH_OP2 , FMULADDS_OP1 , FMULADDS_OP2 ,
  FMULSUBS_OP1 , FMULSUBS_OP2 , FMULADDD_OP1 , FMULADDD_OP2 ,
  FMULSUBD_OP1 , FMULSUBD_OP2 , FNMULSUBH_OP1 , FNMULSUBS_OP1 ,
  FNMULSUBD_OP1 , FMLAv1i32_indexed_OP1 , FMLAv1i32_indexed_OP2 , FMLAv1i64_indexed_OP1 ,
  FMLAv1i64_indexed_OP2 , FMLAv4f16_OP1 , FMLAv4f16_OP2 , FMLAv8f16_OP1 ,
  FMLAv8f16_OP2 , FMLAv2f32_OP2 , FMLAv2f32_OP1 , FMLAv2f64_OP1 ,
  FMLAv2f64_OP2 , FMLAv4i16_indexed_OP1 , FMLAv4i16_indexed_OP2 , FMLAv8i16_indexed_OP1 ,
  FMLAv8i16_indexed_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 , FMLSv4f16_OP1 ,
  FMLSv4f16_OP2 , FMLSv8f16_OP1 , FMLSv8f16_OP2 , FMLSv2f32_OP1 ,
  FMLSv2f32_OP2 , FMLSv2f64_OP1 , FMLSv2f64_OP2 , FMLSv4i16_indexed_OP1 ,
  FMLSv4i16_indexed_OP2 , FMLSv8i16_indexed_OP1 , FMLSv8i16_indexed_OP2 , FMLSv2i32_indexed_OP1 ,
  FMLSv2i32_indexed_OP2 , FMLSv2i64_indexed_OP1 , FMLSv2i64_indexed_OP2 , FMLSv4f32_OP1 ,
  FMLSv4f32_OP2 , FMLSv4i32_indexed_OP1 , FMLSv4i32_indexed_OP2 , FMULv2i32_indexed_OP1 ,
  FMULv2i32_indexed_OP2 , FMULv2i64_indexed_OP1 , FMULv2i64_indexed_OP2 , FMULv4i16_indexed_OP1 ,
  FMULv4i16_indexed_OP2 , FMULv4i32_indexed_OP1 , FMULv4i32_indexed_OP2 , FMULv8i16_indexed_OP1 ,
  FMULv8i16_indexed_OP2 , FNMADD , GATHER_LANE_i32 , GATHER_LANE_i16 ,
  GATHER_LANE_i8
}
enum  AArch64FrameOffsetStatus { AArch64FrameOffsetCannotUpdate = 0x0 , AArch64FrameOffsetIsLegal = 0x1 , AArch64FrameOffsetCanUpdate = 0x2 }
 Use to report the frame offset status in isAArch64FrameOffsetLegal. More...
enum class  TailFoldingOpts : uint8_t {
  Disabled = 0x00 , Simple = 0x01 , Reductions = 0x02 , Recurrences = 0x04 ,
  Reverse = 0x08 , All = Reductions | Recurrences | Simple | Reverse
}
 An enum to describe what types of loops we should attempt to tail-fold: Disabled: None Reductions: Loops containing reductions Recurrences: Loops with first-order recurrences, i.e. More...
enum class  ScanOptions { DPP , Iterative , None }
enum class  GCNSchedStageID : unsigned {
  OccInitialSchedule = 0 , UnclusteredHighRPReschedule = 1 , ClusteredLowOccupancyReschedule = 2 , PreRARematerialize = 3 ,
  ILPInitialSchedule = 4 , MemoryClauseInitialSchedule = 5
}
enum  AMDGPUDwarfFlavour : unsigned { Wave64 = 0 , Wave32 = 1 }
enum  SIRCFlags : uint8_t {
  RegTupleAlignUnitsWidth = 2 , HasVGPRBit = RegTupleAlignUnitsWidth , HasAGPRBit , HasSGPRbit ,
  HasVGPR = 1 << HasVGPRBit , HasAGPR = 1 << HasAGPRBit , HasSGPR = 1 << HasSGPRbit , RegTupleAlignUnitsMask = (1 << RegTupleAlignUnitsWidth) - 1 ,
  RegKindMask = (HasVGPR | HasAGPR | HasSGPR)
}
enum class  SGPRSaveKind : uint8_t { COPY_TO_SCRATCH_SGPR , SPILL_TO_VGPR_LANE , SPILL_TO_MEM }
enum  SIScheduleCandReason {
  NoCand , RegUsage , Latency , Successor ,
  Depth , NodeOrder
}
enum  SIScheduleBlockLinkKind { NoData }
enum  SISchedulerBlockCreatorVariant { LatenciesAlone , LatenciesGrouped , LatenciesAlonePlusConsecutive }
enum  SISchedulerBlockSchedulerVariant { BlockLatencyRegUsage , BlockRegUsageLatency , BlockRegUsage }
enum  VMOVModImmType { VMOVModImm , VMVNModImm , MVEVMVNModImm , OtherModImm }
enum  SpillOpcodeKey {
  SOK_Int4Spill , SOK_Int8Spill , SOK_Float8Spill , SOK_Float4Spill ,
  SOK_CRSpill , SOK_CRBitSpill , SOK_VRVectorSpill , SOK_VSXVectorSpill ,
  SOK_VectorFloat8Spill , SOK_VectorFloat4Spill , SOK_SpillToVSR , SOK_PairedVecSpill ,
  SOK_AccumulatorSpill , SOK_UAccumulatorSpill , SOK_WAccumulatorSpill , SOK_DMRpSpill ,
  SOK_DMRSpill , SOK_SPESpill , SOK_PairedG8Spill , SOK_LastOpcodeSpill
}
enum  PPCMachineCombinerPattern : unsigned { REASSOC_XY_AMM_BMM = MachineCombinerPattern::TARGET_PATTERN_START , REASSOC_XMM_AMM_BMM , REASSOC_XY_BCA , REASSOC_XY_BAC }
enum class  RISCVOptionArchArgType { Full , Plus , Minus }
enum  RISCVMachineCombinerPattern : unsigned {
  FMADD_AX = MachineCombinerPattern::TARGET_PATTERN_START , FMADD_XA , FMSUB , FNMSUB ,
  SHXADD_ADD_SLLI_OP1 , SHXADD_ADD_SLLI_OP2
}
enum  FPDecorationId {
  NONE = 0 , RTE , RTZ , RTP ,
  RTN , SAT
}
enum  SystemZAsmDialect { AD_GNU = 0 , AD_HLASM = 1 }
enum class  Packing { Normal = 0 , Dense = 1 }
 } Node Properties More...
enum class  PackElem : int8_t { Lo = 0 , Hi = 1 }
enum  { SM_SentinelUndef = -1 , SM_SentinelZero = -2 }
enum  X86MachineCombinerPattern : unsigned { DPWSSD = MachineCombinerPattern::TARGET_PATTERN_START }
enum  IntrinsicType : uint16_t {
  CVTNEPS2BF16_MASK , GATHER , SCATTER , PREFETCH ,
  RDSEED , RDRAND , RDPMC , RDTSC ,
  XTEST , XGETBV , ADX , FPCLASSS ,
  INTR_TYPE_1OP , INTR_TYPE_2OP , INTR_TYPE_3OP , INTR_TYPE_4OP_IMM8 ,
  INTR_TYPE_3OP_IMM8 , CFMA_OP_MASK , CFMA_OP_MASKZ , CMP_MASK_CC ,
  CMP_MASK_SCALAR_CC , VSHIFT , COMI , COMI_RM ,
  BLENDV , BEXTRI , CVTPD2PS_MASK , INTR_TYPE_1OP_SAE ,
  INTR_TYPE_2OP_SAE , INTR_TYPE_1OP_MASK_SAE , INTR_TYPE_2OP_MASK_SAE , INTR_TYPE_3OP_MASK_SAE ,
  INTR_TYPE_1OP_MASK , INTR_TYPE_2OP_MASK , IFMA_OP , VPERM_2OP ,
  INTR_TYPE_SCALAR_MASK , INTR_TYPE_SCALAR_MASK_SAE , INTR_TYPE_SCALAR_MASK_RND , INTR_TYPE_3OP_SCALAR_MASK_SAE ,
  COMPRESS_EXPAND_IN_REG , TRUNCATE_TO_REG , TRUNCATE2_TO_REG , CVTPS2PH_MASK ,
  CVTPD2DQ_MASK , CVTQQ2PS_MASK , TRUNCATE_TO_MEM_VI8 , TRUNCATE_TO_MEM_VI16 ,
  TRUNCATE_TO_MEM_VI32 , FIXUPIMM , FIXUPIMM_MASKZ , GATHER_AVX2 ,
  ROUNDP , ROUNDS , RDPRU , INTR_TYPE_CAST_MMX
}
enum  AMXProgModelEnum { None = 0 , DirectReg = 1 , ManagedRA = 2 }
enum  : uintptr_t { InvalidVN = ~(uintptr_t)2 }
enum  LocalNum { LN_First , LN_Middle , LN_Last }
enum  ScalarEpilogueLowering {
  CM_ScalarEpilogueAllowed , CM_ScalarEpilogueNotAllowedOptSize , CM_ScalarEpilogueNotAllowedLowTripLoop , CM_ScalarEpilogueNotNeededUsePredicate ,
  CM_ScalarEpilogueNotAllowedUsePredicate
}
enum  LegalizeAction

Functions

bool operator== (const AddressRangeValuePair &LHS, const AddressRangeValuePair &RHS)
template<typename RangeT>
constexpr auto adl_begin (RangeT &&range) -> decltype(adl_detail::begin_impl(std::forward< RangeT >(range)))
 Returns the begin iterator to range using std::begin and function found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto adl_end (RangeT &&range) -> decltype(adl_detail::end_impl(std::forward< RangeT >(range)))
 Returns the end iterator to range using std::end and functions found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto adl_rbegin (RangeT &&range) -> decltype(adl_detail::rbegin_impl(std::forward< RangeT >(range)))
 Returns the reverse-begin iterator to range using std::rbegin and function found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto adl_rend (RangeT &&range) -> decltype(adl_detail::rend_impl(std::forward< RangeT >(range)))
 Returns the reverse-end iterator to range using std::rend and functions found through Argument-Dependent Lookup (ADL).
template<typename T>
constexpr void adl_swap (T &&lhs, T &&rhs) noexcept(noexcept(adl_detail::swap_impl(std::declval< T >(), std::declval< T >())))
 Swaps lhs with rhs using std::swap and functions found through Argument-Dependent Lookup (ADL).
template<typename RangeT>
constexpr auto adl_size (RangeT &&range) -> decltype(adl_detail::size_impl(std::forward< RangeT >(range)))
 Returns the size of range using std::size and functions found through Argument-Dependent Lookup (ADL).
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 FixedPointSemantics &Val)
raw_ostreamoperator<< (raw_ostream &OS, const APFixedPoint &FX)
hash_code hash_value (const APFixedPoint &Val)
LLVM_ABI hash_code hash_value (const APFloat &Arg)
 See friend declarations above.
int ilogb (const APFloat &Arg)
 Returns the exponent of the internal representation of the APFloat.
APFloat scalbn (APFloat X, int Exp, APFloat::roundingMode RM)
 Returns: X * 2^Exp for integral exponents.
APFloat frexp (const APFloat &X, int &Exp, APFloat::roundingMode RM)
 Equivalent of C standard library function.
APFloat abs (APFloat X)
 Returns the absolute value of the argument.
APFloat neg (APFloat X)
 Returns the negated value of the argument.
LLVM_READONLY APFloat minnum (const APFloat &A, const APFloat &B)
 Implements IEEE-754 2008 minNum semantics.
LLVM_READONLY APFloat maxnum (const APFloat &A, const APFloat &B)
 Implements IEEE-754 2008 maxNum semantics.
LLVM_READONLY APFloat minimum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 minimum semantics.
LLVM_READONLY APFloat minimumnum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 minimumNumber semantics.
LLVM_READONLY APFloat maximum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 maximum semantics.
LLVM_READONLY APFloat maximumnum (const APFloat &A, const APFloat &B)
 Implements IEEE 754-2019 maximumNumber semantics.
raw_ostreamoperator<< (raw_ostream &OS, const APFloat &V)
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.
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)
LLVM_ABI hash_code hash_value (const APInt &Arg)
LLVM_ABI void StoreIntToMemory (const APInt &IntVal, uint8_t *Dst, unsigned StoreBytes)
 StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst with the integer held in IntVal.
LLVM_ABI void LoadIntFromMemory (APInt &IntVal, const uint8_t *Src, unsigned LoadBytes)
 LoadIntFromMemory - Loads the integer stored in the LoadBytes bytes starting from Src into IntVal, which is assumed to be wide enough and to hold zero.
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 = std::enable_if_t<sizeof(To) == sizeof(From)>, typename = std::enable_if_t<std::is_trivially_constructible<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<From>::value>>
To bit_cast (const From &from) noexcept
template<typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
constexpr T byteswap (T V) noexcept
 Reverses the bytes in the given integer value V.
template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
constexpr bool has_single_bit (T Value) noexcept
template<typename T>
int popcount (T Value) noexcept
 Count the number of set bits in a value.
template<typename T>
int countr_zero (T Val)
 Count number of 0's from the least significant bit to the most stopping at the first 1.
template<typename T>
int countl_zero (T Val)
 Count number of 0's from the most significant bit to the least stopping at the first 1.
template<typename T>
int countl_one (T Value)
 Count the number of ones from the most significant bit to the first zero bit.
template<typename T>
int countr_one (T Value)
 Count the number of ones from the least significant bit to the first zero bit.
template<typename T>
int bit_width (T Value)
 Returns the number of bits needed to represent Value if Value is nonzero.
template<typename T>
T bit_floor (T Value)
 Returns the largest integral power of two no greater than Value if Value is nonzero.
template<typename T>
T bit_ceil (T Value)
 Returns the smallest integral power of two no smaller than Value if Value is nonzero.
template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
constexpr T rotr (T V, int R)
template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
constexpr T rotl (T V, int R)
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
BitVector::size_type 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.
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.
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, SetTy > df_ext_begin (const T &G, SetTy &S)
template<class T, class SetTy>
df_ext_iterator< T, SetTy > df_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, SetTy > idf_ext_begin (const T &G, SetTy &S)
template<class T, class SetTy>
idf_ext_iterator< T, SetTy > idf_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)
raw_ostreamoperator<< (raw_ostream &OS, const DynamicAPInt &X)
LLVM_ABI hash_code hash_value (const DynamicAPInt &X)
 Redeclarations of friend declaration above to make it discoverable by lookups.
static int64_t int64fromDynamicAPInt (const DynamicAPInt &X)
 This just calls through to the operator int64_t, but it's useful when a function pointer is required.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt dynamicAPIntFromInt64 (int64_t X)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt mod (const DynamicAPInt &LHS, const DynamicAPInt &RHS)
 is always non-negative.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt abs (const DynamicAPInt &X)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt ceilDiv (const DynamicAPInt &LHS, const DynamicAPInt &RHS)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt floorDiv (const DynamicAPInt &LHS, const DynamicAPInt &RHS)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt gcd (const DynamicAPInt &A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt lcm (const DynamicAPInt &A, const DynamicAPInt &B)
 Returns the least common multiple of A and B.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPIntoperator+= (DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPIntoperator-= (DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPIntoperator*= (DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPIntoperator/= (DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPIntoperator%= (DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator+ (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator- (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator* (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator/ (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator% (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator+ (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator- (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator* (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator/ (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt operator% (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator== (const DynamicAPInt &A, int64_t B)
 We provide special implementations of the comparison operators rather than calling through as above, as this would result in a 1.2x slowdown.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator!= (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator> (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator< (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator<= (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator>= (const DynamicAPInt &A, int64_t B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator== (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator!= (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator> (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator< (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator<= (int64_t A, const DynamicAPInt &B)
LLVM_ATTRIBUTE_ALWAYS_INLINE bool operator>= (int64_t A, const DynamicAPInt &B)
template<typename T, typename Functor>
unsigned ComputeMappedEditDistance (ArrayRef< T > FromArray, ArrayRef< T > ToArray, Functor Map, bool AllowReplacements=true, unsigned MaxEditDistance=0)
 Determine the edit distance between two sequences.
template<typename T>
unsigned ComputeEditDistance (ArrayRef< T > FromArray, ArrayRef< T > ToArray, bool AllowReplacements=true, unsigned MaxEditDistance=0)
template<typename Underlying>
fallible_iterator< Underlying > make_fallible_itr (Underlying I, Error &Err)
 Convenience wrapper to make a fallible_iterator value from an instance of an underlying iterator and an Error reference.
template<typename Underlying>
fallible_iterator< Underlying > make_fallible_end (Underlying E)
 Convenience wrapper to make a fallible_iterator end value from an instance of an underlying iterator.
template<typename Underlying>
iterator_range< fallible_iterator< Underlying > > make_fallible_range (Underlying I, Underlying E, Error &Err)
StringRef spell (RoundingMode RM)
 Returns text representation of the given rounding mode.
raw_ostreamoperator<< (raw_ostream &OS, RoundingMode RM)
raw_ostreamoperator<< (raw_ostream &OS, DenormalMode Mode)
DenormalMode::DenormalModeKind parseDenormalFPAttributeComponent (StringRef Str)
 Parse the expected names from the denormal-fp-math attribute.
StringRef denormalModeKindName (DenormalMode::DenormalModeKind Mode)
 Return the name used for the denormal handling mode used by the expected names from the denormal-fp-math attribute.
DenormalMode parseDenormalFPAttribute (StringRef Str)
 Returns the denormal mode to use for inputs and outputs.
 LLVM_DECLARE_ENUM_AS_BITMASK (FPClassTest, fcPosInf)
LLVM_ABI FPClassTest fneg (FPClassTest Mask)
 Return the test mask which returns true if the value's sign bit is flipped.
LLVM_ABI FPClassTest inverse_fabs (FPClassTest Mask)
 Return the test mask which returns true after fabs is applied to the value.
LLVM_ABI FPClassTest unknown_sign (FPClassTest Mask)
 Return the test mask which returns true if the value could have the same set of classes, but with a different sign.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, FPClassTest Mask)
 Write a human readable form of Mask to OS.
template<typename CycleT>
static bool insertIfNotContained (SmallVector< CycleT * > &Cycles, CycleT *Candidate)
 Add Candidate to Cycles if it is not already contained in Cycles.
template<typename CycleT, typename BlockT>
static const CycleT * getExtDivCycle (const CycleT *Cycle, const BlockT *DivTermBlock, const BlockT *JoinBlock)
 Return the outermost cycle made divergent by branch outside it.
template<typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>
static const CycleT * getIntDivCycle (const CycleT *Cycle, const BlockT *DivTermBlock, const BlockT *JoinBlock, const DominatorTreeT &DT, ContextT &Context)
 Return the outermost cycle made divergent by branch inside it.
template<typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>
static const CycleT * getOutermostDivergentCycle (const CycleT *Cycle, const BlockT *DivTermBlock, const BlockT *JoinBlock, const DominatorTreeT &DT, ContextT &Context)
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_t< is_integral_or_enum< T >::value, hash_codehash_value (T value)
 Compute a hash_code for any integer value.
template<typename T>
hash_code hash_value (const T *ptr)
 Compute a hash_code for a pointer's address.
template<typename T, typename U>
hash_code hash_value (const std::pair< T, U > &arg)
 Compute a hash_code for a pair of objects.
template<typename... Ts>
hash_code hash_value (const std::tuple< Ts... > &arg)
 Compute a hash_code for a tuple.
template<typename T>
hash_code hash_value (const std::basic_string< T > &arg)
 Compute a hash_code for a standard string.
template<typename T>
hash_code hash_value (const std::optional< T > &arg)
 Compute a hash_code for a standard string.
template<typename InputIteratorT>
hash_code hash_combine_range (InputIteratorT first, InputIteratorT last)
 Compute a hash_code for a sequence of values.
template<typename RangeT>
hash_code hash_combine_range (RangeT &&R)
template<typename ... Ts>
hash_code hash_combine (const Ts &...args)
 Combine values into a single hash_code.
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, 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 T, typename... Args>
IntrusiveRefCntPtr< TmakeIntrusiveRefCnt (Args &&...A)
 Factory function for creating intrusive ref counted pointers.
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<typename Container>
 iterator_range (Container &&) -> iterator_range< llvm::detail::IterOfRange< Container > >
template<class T>
iterator_range< Tmake_range (T x, T y)
 Convenience function for iterating over sub-ranges.
template<typename T>
iterator_range< Tmake_range (std::pair< T, T > p)
template<std::size_t I, typename PointerTy, unsigned IntBits, typename IntType, typename PtrTraits, typename Info>
decltype(auto) get (const PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info > &Pair)
template<typename ... PTs>
bool operator== (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs)
template<typename ... PTs>
bool operator!= (PointerUnion< PTs... > lhs, PointerUnion< PTs... > rhs)
template<typename ... PTs>
bool operator< (PointerUnion< PTs... > lhs, PointerUnion< PTs... > 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.
template<class T>
scc_iterator< Tscc_end (const T &G)
 Construct the end iterator for a deduced graph type T.
template<typename Callable>
detail::scope_exit< std::decay_t< Callable > > make_scope_exit (Callable &&F)
template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>
auto seq (T Begin, T End)
 Iterate over an integral type from Begin up to - but not including - End.
template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>
auto seq (T Size)
 Iterate over an integral type from 0 up to - but not including - Size.
template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>
auto seq_inclusive (T Begin, T End)
 Iterate over an integral type from Begin to End inclusive.
template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto enum_seq (EnumT Begin, EnumT End)
 Iterate over an enum type from Begin up to - but not including - End.
template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto enum_seq (EnumT Begin, EnumT End, force_iteration_on_noniterable_enum_t)
 Iterate over an enum type from Begin up to - but not including - End, even when EnumT is not marked as safely iterable by enum_iteration_traits.
template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto enum_seq_inclusive (EnumT Begin, EnumT End)
 Iterate over an enum type from Begin to End inclusive.
template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto enum_seq_inclusive (EnumT Begin, EnumT End, force_iteration_on_noniterable_enum_t)
 Iterate over an enum type from Begin to End inclusive, even when EnumT is not marked as safely iterable by enum_iteration_traits.
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.
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.
template<class S1Ty, class S2Ty>
S1Ty set_intersection_impl (const S1Ty &S1, const S2Ty &S2)
template<class S1Ty, class S2Ty>
S1Ty set_intersection (const S1Ty &S1, const S2Ty &S2)
 set_intersection(A, B) - Return A ^ B
template<class S1Ty, class S2Ty>
S1Ty set_difference (const S1Ty &S1, const S2Ty &S2)
 set_difference(A, B) - Return A - B
template<class S1Ty, class S2Ty>
void set_subtract (S1Ty &S1, const S2Ty &S2)
 set_subtract(A, B) - Compute A := A - B
template<class S1Ty, class S2Ty>
void set_subtract (S1Ty &S1, const S2Ty &S2, S1Ty &Removed, S1Ty &Remaining)
 set_subtract(A, B, C, D) - Compute A := A - B, set C to the elements of B removed from A (A ^ B), and D to the elements of B not found in and removed from A (B - A).
template<class S1Ty, class S2Ty>
bool set_is_subset (const S1Ty &S1, const S2Ty &S2)
 set_is_subset(A, B) - Return true iff A in B
template<class S1Ty, class S2Ty>
bool set_intersects (const S1Ty &S1, const S2Ty &S2)
 set_intersects(A, B) - Return true iff A ^ B is non empty
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 PtrType>
bool operator== (const SmallPtrSetImpl< PtrType > &LHS, const SmallPtrSetImpl< PtrType > &RHS)
 Equality comparison for SmallPtrSet.
template<typename PtrType>
bool operator!= (const SmallPtrSetImpl< PtrType > &LHS, const SmallPtrSetImpl< PtrType > &RHS)
 Inequality comparison for SmallPtrSet.
template<typename T, unsigned LN, unsigned RN, typename C>
bool operator== (const SmallSet< T, LN, C > &LHS, const SmallSet< T, RN, C > &RHS)
 Equality comparison for SmallSet.
template<typename T, unsigned LN, unsigned RN, typename C>
bool operator!= (const SmallSet< T, LN, C > &LHS, const SmallSet< T, RN, C > &RHS)
 Inequality comparison for SmallSet.
template<typename T, unsigned N>
size_t capacity_in_bytes (const SmallVector< T, N > &X)
template<unsigned Size, typename R>
SmallVector< ValueTypeFromRangeType< R >, Sizeto_vector (R &&Range)
 Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector.
template<typename R>
SmallVector< ValueTypeFromRangeType< R > > to_vector (R &&Range)
template<typename Out, unsigned Size, typename R>
SmallVector< Out, Sizeto_vector_of (R &&Range)
template<typename Out, typename R>
SmallVector< Out > to_vector_of (R &&Range)
template<unsigned Size, class ContainerTy, class PredicateFn>
auto filter_to_vector (ContainerTy &&C, PredicateFn &&Pred)
 Filter a range to a SmallVector with the element types deduced.
template<class ContainerTy, class PredicateFn>
auto filter_to_vector (ContainerTy &&C, PredicateFn &&Pred)
 Filter a range to a SmallVector with the element types deduced.
template<unsigned Size, class ContainerTy, class FuncTy>
auto map_to_vector (ContainerTy &&C, FuncTy &&F)
 Map a range to a SmallVector with element types deduced from the mapping.
template<class ContainerTy, class FuncTy>
auto map_to_vector (ContainerTy &&C, FuncTy &&F)
 Map a range to a SmallVector with element types deduced from the mapping.
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)
stable_hash stable_hash_combine (ArrayRef< stable_hash > Buffer)
stable_hash stable_hash_combine (stable_hash A, stable_hash B)
stable_hash stable_hash_combine (stable_hash A, stable_hash B, stable_hash C)
stable_hash stable_hash_combine (stable_hash A, stable_hash B, stable_hash C, stable_hash D)
StringRef get_stable_name (StringRef Name)
stable_hash stable_hash_name (StringRef Name)
LLVM_ABI void EnableStatistics (bool DoPrintOnExit=true)
 Enable the collection and printing of statistics.
LLVM_ABI bool AreStatisticsEnabled ()
 Check if statistics are enabled.
LLVM_ABI std::unique_ptr< raw_ostreamCreateInfoOutputFile ()
 Return a stream to print our output on.
LLVM_ABI void PrintStatistics ()
 Print statistics to the file returned by CreateInfoOutputFile().
LLVM_ABI void PrintStatistics (raw_ostream &OS)
 Print statistics to the given output stream.
LLVM_ABI void PrintStatisticsJSON (raw_ostream &OS)
 Print statistics in JSON format.
LLVM_ABI std::vector< std::pair< StringRef, uint64_t > > GetStatistics ()
 Get the statistics.
LLVM_ABI void ResetStatistics ()
 Reset the statistics.
template<typename EnumTy1, typename EnumTy2, typename UT1 = std::enable_if_t<std::is_enum<EnumTy1>::value, std::underlying_type_t<EnumTy1>>, typename UT2 = std::enable_if_t<std::is_enum<EnumTy2>::value, std::underlying_type_t<EnumTy2>>>
constexpr auto addEnumValues (EnumTy1 LHS, EnumTy2 RHS)
 Helper which adds two underlying types of enumeration type.
template<typename ContainerTy>
bool hasSingleElement (ContainerTy &&C)
 Returns true if the given container only contains a single element.
template<typename ContainerTy>
decltype(auto) getSingleElement (ContainerTy &&C)
 Asserts that the given container has a single element and returns that element.
template<typename T>
auto drop_begin (T &&RangeOrContainer, size_t N=1)
 Return a range covering RangeOrContainer with the first N elements excluded.
template<typename T>
auto drop_end (T &&RangeOrContainer, size_t N=1)
 Return a range covering RangeOrContainer with the last N elements excluded.
template<class ItTy, class FuncTy>
mapped_iterator< ItTy, FuncTy > map_iterator (ItTy I, FuncTy F)
template<class ContainerTy, class FuncTy>
auto map_range (ContainerTy &&C, FuncTy F)
template<typename ContainerTy>
auto reverse (ContainerTy &&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.
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.
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.
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.
template<typename T>
bool all_equal (std::initializer_list< T > Values)
 Returns true if all Values in the initializer lists are equal or the list.
template<typename R>
constexpr size_t range_size (R &&Range)
 Returns the size of the Range, i.e., the number of elements.
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.
template<typename T, typename U, typename... Args>
detail::zippy< detail::zip_first, T, U, Args... > zip_equal (T &&t, U &&u, Args &&...args)
 zip iterator that assumes that all iteratees have the same length.
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.
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.
template<typename ValueT, typename... RangeTs>
detail::concat_range< ValueT, RangeTs... > concat (RangeTs &&...Ranges)
 Returns a concatenated range across two or more ranges.
template<typename ContainerTy>
auto make_first_range (ContainerTy &&c)
 Given a container of pairs, return a range over the first elements.
template<typename ContainerTy>
auto make_second_range (ContainerTy &&c)
 Given a container of pairs, return a range over the second elements.
template<typename... CallableTs>
constexpr decltype(auto) makeVisitor (CallableTs &&...Callables)
 Returns an opaquely-typed Callable object whose operator() overload set is the sum of the operator() overload sets of each CallableT in CallableTs.
template<class Iterator, class RNG>
void shuffle (Iterator first, Iterator last, RNG &&g)
template<typename T>
int array_pod_sort_comparator (const void *P1, const void *P2)
 Adapt std::less<T> for array_pod_sort.
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.
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 R>
auto size (R &&Range, std::enable_if_t< std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< decltype(Range.begin())>::iterator_category >::value, void > *=nullptr)
 Get the size of a range.
template<typename R, typename E>
auto accumulate (R &&Range, E &&Init)
 Wrapper for std::accumulate.
template<typename R, typename UnaryFunction>
UnaryFunction for_each (R &&Range, UnaryFunction F)
 Provide wrappers to std::for_each which take ranges instead of having to pass begin/end explicitly.
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.
template<typename R, typename T>
void fill (R &&Range, T &&Value)
 Provide wrappers to std::fill which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename T>
auto find (R &&Range, const T &Val)
 Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename UnaryPredicate>
auto find_if (R &&Range, UnaryPredicate P)
 Provide wrappers to std::find_if which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename UnaryPredicate>
auto find_if_not (R &&Range, UnaryPredicate P)
template<typename R, typename UnaryPredicate>
auto remove_if (R &&Range, UnaryPredicate P)
 Provide wrappers to std::remove_if which take ranges instead of having to pass begin/end explicitly.
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.
template<typename T, typename R, typename Predicate>
Tfind_singleton (R &&Range, Predicate P, bool AllowRepeats=false)
 Return the single value in Range that satisfies P(<member of Range> *, AllowRepeats)->T * returning nullptr when no values or multiple values were found.
template<typename T, typename R, typename Predicate>
std::pair< T *, boolfind_singleton_nested (R &&Range, Predicate P, bool AllowRepeats=false)
 Return a pair consisting of the single value in Range that satisfies P(<member of Range> , AllowRepeats)->std::pair<T, bool> returning nullptr when no values or multiple values were found, and a bool indicating whether multiple values were found to cause the nullptr.
template<typename R, typename OutputIt>
OutputIt copy (R &&Range, OutputIt Out)
template<typename R, typename OutputIt, typename UnaryPredicate, typename T>
OutputIt replace_copy_if (R &&Range, OutputIt Out, UnaryPredicate P, const T &NewValue)
 Provide wrappers to std::replace_copy_if which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename OutputIt, typename T>
OutputIt replace_copy (R &&Range, OutputIt Out, const T &OldValue, const T &NewValue)
 Provide wrappers to std::replace_copy which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename T>
void replace (R &&Range, const T &OldValue, const T &NewValue)
 Provide wrappers to std::replace which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename OutputIt>
OutputIt move (R &&Range, OutputIt Out)
 Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename E>
bool is_contained (R &&Range, const E &Element)
 Returns true if Element is found in Range.
template<typename T, typename E>
constexpr bool is_contained (std::initializer_list< T > Set, const E &Element)
 Returns true iff Element exists in Set.
template<typename R, typename Compare>
bool is_sorted (R &&Range, Compare C)
 Wrapper function around std::is_sorted to check if elements in a range R are sorted with respect to a comparator C.
template<typename R>
bool is_sorted (R &&Range)
 Wrapper function around std::is_sorted to check if elements in a range R are sorted in non-descending order.
template<typename R1, typename R2>
bool includes (R1 &&Range1, R2 &&Range2)
 Provide wrappers to std::includes which take ranges instead of having to pass begin/end explicitly.
template<typename R1, typename R2, typename Compare>
bool includes (R1 &&Range1, R2 &&Range2, Compare &&C)
 This function checks if the sorted range R2 is a subsequence of the sorted range R1.
template<typename R, typename E>
auto count (R &&Range, const E &Element)
 Wrapper function around std::count to count the number of times an element Element occurs in the given range Range.
template<typename R, typename UnaryPredicate>
auto count_if (R &&Range, UnaryPredicate P)
 Wrapper function around std::count_if to count the number of times an element satisfying a given predicate occurs in a range.
template<typename R, typename OutputIt, typename UnaryFunction>
OutputIt transform (R &&Range, OutputIt d_first, UnaryFunction F)
 Wrapper function around std::transform to apply a function to a range and store the result elsewhere.
template<typename R, typename UnaryPredicate>
auto partition (R &&Range, UnaryPredicate P)
 Provide wrappers to std::partition which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename T>
auto binary_search (R &&Range, T &&Value)
 Provide wrappers to std::binary_search which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename T, typename Compare>
auto binary_search (R &&Range, T &&Value, Compare C)
template<typename R, typename T>
auto lower_bound (R &&Range, T &&Value)
 Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename T, typename Compare>
auto lower_bound (R &&Range, T &&Value, Compare C)
template<typename R, typename T>
auto upper_bound (R &&Range, T &&Value)
 Provide wrappers to std::upper_bound which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename T, typename Compare>
auto upper_bound (R &&Range, T &&Value, Compare C)
template<typename R>
auto min_element (R &&Range)
 Provide wrappers to std::min_element which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename Compare>
auto min_element (R &&Range, Compare C)
template<typename R>
auto max_element (R &&Range)
 Provide wrappers to std::max_element which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename Compare>
auto max_element (R &&Range, Compare C)
template<typename R1, typename R2>
auto mismatch (R1 &&Range1, R2 &&Range2)
 Provide wrappers to std::mismatch which take ranges instead of having to pass begin/end explicitly.
template<typename R, typename IterTy>
auto uninitialized_copy (R &&Src, IterTy Dst)
template<typename R>
void stable_sort (R &&Range)
template<typename R, typename Compare>
void stable_sort (R &&Range, Compare C)
template<typename R, typename Predicate, typename Val = decltype(*adl_begin(std::declval<R>()))>
auto partition_point (R &&Range, Predicate P)
 Binary search for the first iterator in a range where a predicate is false.
template<typename Range, typename Predicate>
auto unique (Range &&R, Predicate P)
template<typename Range>
auto unique (Range &&R)
 Wrapper function around std::unique to allow calling unique on a container without having to specify the begin/end iterators.
template<typename L, typename R>
bool equal (L &&LRange, R &&RRange)
 Wrapper function around std::equal to detect if pair-wise elements between two ranges are the same.
template<typename L, typename R, typename BinaryPredicate>
bool equal (L &&LRange, R &&RRange, BinaryPredicate P)
template<typename R>
bool all_equal (R &&Range)
 Returns true if all elements in Range are equal or when the Range is empty.
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:
template<typename Container, typename ValueType>
void erase (Container &C, ValueType V)
 Wrapper function to remove a value from a container:
template<typename Container, typename Range>
void append_range (Container &C, Range &&R)
 Wrapper function to append range R to container C.
template<typename Container, typename... Args>
void append_values (Container &C, Args &&...Values)
 Appends all Values to container C.
template<typename Container, typename RandomAccessIterator>
void replace (Container &Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, RandomAccessIterator ValIt, RandomAccessIterator ValEnd)
 Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range [ValIt, ValEnd) (which is not from the same container).
template<typename Container, typename Range = std::initializer_list< typename Container::value_type>>
void replace (Container &Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, Range &&R)
 Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range R.
template<typename ForwardIterator, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t< !std::is_constructible<StringRef, UnaryFunctor>::value && !std::is_constructible<StringRef, NullaryFunctor>::value>>
void interleave (ForwardIterator begin, ForwardIterator end, UnaryFunctor each_fn, NullaryFunctor between_fn)
 An STL-style algorithm similar to std::for_each that applies a second functor between every pair of elements.
template<typename Container, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t< !std::is_constructible<StringRef, UnaryFunctor>::value && !std::is_constructible<StringRef, NullaryFunctor>::value>>
void interleave (const Container &c, UnaryFunctor each_fn, NullaryFunctor between_fn)
template<typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>
void interleave (const Container &c, StreamT &os, UnaryFunctor each_fn, const StringRef &separator)
 Overload of interleave for the common case of string separator.
template<typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>
void interleave (const Container &c, StreamT &os, const StringRef &separator)
template<typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>
void interleaveComma (const Container &c, StreamT &os, UnaryFunctor each_fn)
template<typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>
void interleaveComma (const Container &c, StreamT &os)
template<typename FirstRange, typename... RestRanges>
auto enumerate (FirstRange &&First, RestRanges &&...Rest)
 Given two or more input ranges, returns a new range whose values are tuples (A, B, C, ...), such that A is the 0-based index of the item in the sequence, and B, C, ..., are the values from the original input ranges.
template<typename... ArgsAndPredicate>
bool all_of_zip (ArgsAndPredicate &&...argsAndPredicate)
 Compare two zipped ranges using the provided predicate (as last argument).
template<typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
bool hasNItems (IterTy &&Begin, IterTy &&End, unsigned N, Pred &&ShouldBeCounted=[](const decltype(*std::declval< IterTy >()) &) { return true;}, std::enable_if_t< !std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< std::remove_reference_t< decltype(Begin)> >::iterator_category >::value, void > *=nullptr)
 Return true if the sequence [Begin, End) has exactly N items.
template<typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
bool hasNItemsOrMore (IterTy &&Begin, IterTy &&End, unsigned N, Pred &&ShouldBeCounted=[](const decltype(*std::declval< IterTy >()) &) { return true;}, std::enable_if_t< !std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< std::remove_reference_t< decltype(Begin)> >::iterator_category >::value, void > *=nullptr)
 Return true if the sequence [Begin, End) has N or more items.
template<typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
bool hasNItemsOrLess (IterTy &&Begin, IterTy &&End, unsigned N, Pred &&ShouldBeCounted=[](const decltype(*std::declval< IterTy >()) &) { return true;})
 Returns true if the sequence [Begin, End) has N or less items.
template<typename ContainerTy>
bool hasNItems (ContainerTy &&C, unsigned N)
 Returns true if the given container has exactly N items.
template<typename ContainerTy>
bool hasNItemsOrMore (ContainerTy &&C, unsigned N)
 Returns true if the given container has N or more items.
template<typename ContainerTy>
bool hasNItemsOrLess (ContainerTy &&C, unsigned N)
 Returns true if the given container has N or less items.
template<class Ptr>
auto to_address (const Ptr &P)
 Returns a raw pointer that represents the same address as the argument.
template<class T>
constexpr Tto_address (T *P)
template<typename Optional, typename Function, typename Value = typename llvm::remove_cvref_t<Optional>::value_type>
std::optional< std::invoke_result_t< Function, Value > > transformOptional (Optional &&O, Function &&F)
template<typename Enum>
constexpr std::underlying_type_t< Enum > to_underlying (Enum E)
 Returns underlying integer value of an enum.
char hexdigit (unsigned X, bool LowerCase=false)
 hexdigit - Return the hexadecimal character for the given number X (which should be less than 16).
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.
StringRef toStringRef (bool B)
 Construct a string ref from a boolean.
StringRef toStringRef (ArrayRef< uint8_t > Input)
 Construct a string ref from an array ref of unsigned chars.
StringRef toStringRef (ArrayRef< char > Input)
template<class CharT = uint8_t>
ArrayRef< CharT > arrayRefFromStringRef (StringRef Input)
 Construct a string ref from an array ref of unsigned chars.
unsigned hexDigitValue (char C)
 Interpret the given character C as a hexadecimal digit and return its value.
bool isDigit (char C)
 Checks if character C is one of the 10 decimal digits.
bool isHexDigit (char C)
 Checks if character C is a hexadecimal numeric character.
bool isLower (char C)
 Checks if character C is a lowercase letter as classified by "C" locale.
bool isUpper (char C)
 Checks if character C is a uppercase letter as classified by "C" locale.
bool isAlpha (char C)
 Checks if character C is a valid letter as classified by "C" locale.
bool isAlnum (char C)
 Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classified by "C" locale.
bool isASCII (char C)
 Checks whether character C is valid ASCII (high bit is zero).
bool isASCII (llvm::StringRef S)
 Checks whether all characters in S are ASCII.
bool isPrint (char C)
 Checks whether character C is printable.
bool isPunct (char C)
 Checks whether character C is a punctuation character.
bool isSpace (char C)
 Checks whether character C is whitespace in the "C" locale.
char toLower (char x)
 Returns the corresponding lowercase character if x is uppercase.
char toUpper (char x)
 Returns the corresponding uppercase character if x is lowercase.
std::string utohexstr (uint64_t X, bool LowerCase=false, unsigned Width=0)
void toHex (ArrayRef< uint8_t > Input, bool LowerCase, SmallVectorImpl< char > &Output)
 Convert buffer Input to its hexadecimal representation. The returned string is double the size of Input.
std::string toHex (ArrayRef< uint8_t > Input, bool LowerCase=false)
std::string toHex (StringRef Input, bool LowerCase=false)
bool tryGetHexFromNibbles (char MSB, char LSB, uint8_t &Hex)
 Store the binary representation of the two provided values, MSB and LSB, that make up the nibbles of a hexadecimal digit. If MSB or LSB do not correspond to proper nibbles of a hexadecimal digit, this method returns false. Otherwise, returns true.
uint8_t hexFromNibbles (char MSB, char LSB)
 Return the binary representation of the two provided values, MSB and LSB, that make up the nibbles of a hexadecimal digit.
bool tryGetFromHex (StringRef Input, std::string &Output)
 Convert hexadecimal string Input to its binary representation and store the result in Output. Returns true if the binary representation could be converted from the hexadecimal string. Returns false if Input contains non-hexadecimal digits. The output string is half the size of Input.
std::string fromHex (StringRef Input)
 Convert hexadecimal string Input to its binary representation. The return string is half the size of Input.
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. If Base is 0, auto-detects the radix. Returns true if the number was successfully converted, false otherwise.
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)
std::string toString (const APInt &I, unsigned Radix, bool Signed, bool formatAsCLiteral=false, bool UpperCase=true, bool InsertSeparators=false)
std::string toString (const APSInt &I, unsigned Radix)
LLVM_ABI StringRef::size_type 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.
LLVM_ABI std::pair< StringRef, StringRefgetToken (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.
LLVM_ABI void 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.
StringRef getOrdinalSuffix (unsigned Val)
 Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).
LLVM_ABI 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.
LLVM_ABI void printHTMLEscaped (StringRef String, raw_ostream &Out)
 Print each character of the specified string, escaping HTML special characters.
LLVM_ABI void printLowerCase (StringRef String, raw_ostream &Out)
 printLowerCase - Print each character as lowercase if it is uppercase.
LLVM_ABI std::string convertToSnakeFromCamelCase (StringRef input)
 Converts a string from camel-case to snake-case by replacing all uppercase letters with '_' followed by the letter in lowercase, except if the uppercase letter is the first character of the string.
LLVM_ABI std::string convertToCamelFromSnakeCase (StringRef input, bool capitalizeFirst=false)
 Converts a string from snake-case to camel-case by replacing all occurrences of '_' followed by a lowercase letter with the letter in uppercase. Optionally allow capitalization of the first letter (if it is a lowercase letter)
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.
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.
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. All arguments must be implicitly convertible to std::string, or there should be an overload of std::string::operator+=() that accepts the argument explicitly.
iterator_range< SplittingIteratorsplit (StringRef Str, StringRef Separator)
 Split the specified string over a separator and return a range-compatible iterable over its partitions. Used to permit conveniently iterating over separated strings like so:
iterator_range< SplittingIteratorsplit (StringRef Str, char Separator)
template<std::size_t Index, typename ValueTy>
decltype(auto) get (StringMapEntry< ValueTy > &E)
template<std::size_t Index, typename ValueTy>
decltype(auto) get (const StringMapEntry< ValueTy > &E)
LLVM_ABI bool getAsUnsignedInteger (StringRef Str, unsigned Radix, unsigned long long &Result)
 Helper functions for StringRef::getAsInteger.
LLVM_ABI bool getAsSignedInteger (StringRef Str, unsigned Radix, long long &Result)
LLVM_ABI unsigned getAutoSenseRadix (StringRef &Str)
LLVM_ABI bool consumeUnsignedInteger (StringRef &Str, unsigned Radix, unsigned long long &Result)
LLVM_ABI bool consumeSignedInteger (StringRef &Str, unsigned Radix, long long &Result)
LLVM_ABI hash_code hash_value (StringRef S)
 Compute a hash_code for a StringRef.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, AliasResult AR)
 << operator for AliasResult.
LLVM_ABI bool isNoAliasCall (const Value *V)
 Return true if this pointer is returned by a noalias function.
LLVM_ABI bool isIdentifiedObject (const Value *V)
 Return true if this pointer refers to a distinct and identifiable object.
LLVM_ABI bool isIdentifiedFunctionLocal (const Value *V)
 Return true if V is umabigously identified at the function-level.
LLVM_ABI bool isBaseOfObject (const Value *V)
 Return true if we know V to the base address of the corresponding memory object.
LLVM_ABI bool isEscapeSource (const Value *V)
 Returns true if the pointer is one which would have been considered an escape by isNotCapturedBefore.
LLVM_ABI bool isNotVisibleOnUnwind (const Value *Object, bool &RequiresNoCaptureBeforeUnwind)
 Return true if Object memory is not visible after an unwind, in the sense that program semantics cannot depend on Object containing any particular value on unwind.
LLVM_ABI bool isWritableObject (const Value *Object, bool &ExplicitlyDereferenceableOnly)
 Return true if the Object is writable, in the sense that any location based on this pointer that can be loaded can also be stored to without trapping.
LLVM_ABI 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.
raw_ostreamoperator<< (raw_ostream &OS, const AliasSet &AS)
raw_ostreamoperator<< (raw_ostream &OS, const AliasSetTracker &AST)
LLVM_ABI bool hasAttributeInAssume (AssumeInst &Assume, Value *IsOn, StringRef AttrName, uint64_t *ArgVal=nullptr)
 Query the operand bundle of an llvm.assume to find a single attribute of the specified kind applied on a specified Value.
bool hasAttributeInAssume (AssumeInst &Assume, Value *IsOn, Attribute::AttrKind Kind, uint64_t *ArgVal=nullptr)
LLVM_ABI void fillMapFromAssume (AssumeInst &Assume, RetainedKnowledgeMap &Result)
 Insert into the map all the informations contained in the operand bundles of the llvm.assume.
LLVM_ABI RetainedKnowledge getKnowledgeFromOperandInAssume (AssumeInst &Assume, unsigned Idx)
 Retreive the information help by Assume on the operand at index Idx.
RetainedKnowledge getKnowledgeFromUseInAssume (const Use *U)
 Retreive the information help by the Use U of an llvm.assume.
LLVM_ABI bool isAssumeWithEmptyBundle (const AssumeInst &Assume)
 Return true iff the operand bundles of the provided llvm.assume doesn't contain any valuable information.
LLVM_ABI RetainedKnowledge getKnowledgeFromUse (const Use *U, ArrayRef< Attribute::AttrKind > AttrKinds)
 Return a valid Knowledge associated to the Use U if its Attribute kind is in AttrKinds.
LLVM_ABI RetainedKnowledge getKnowledgeForValue (const Value *V, ArrayRef< Attribute::AttrKind > AttrKinds, AssumptionCache &AC, function_ref< bool(RetainedKnowledge, Instruction *, const CallBase::BundleOpInfo *)> Filter=[](auto...) { return true;})
 Return a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and it matches the Filter.
LLVM_ABI RetainedKnowledge getKnowledgeValidInContext (const Value *V, ArrayRef< Attribute::AttrKind > AttrKinds, AssumptionCache &AC, const Instruction *CtxI, const DominatorTree *DT=nullptr)
 Return a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and the knowledge is suitable to be used in the context of CtxI.
LLVM_ABI RetainedKnowledge getKnowledgeFromBundle (AssumeInst &Assume, const CallBase::BundleOpInfo &BOI)
 This extracts the Knowledge from an element of an operand bundle.
LLVM_ABI FunctionPasscreateBasicAAWrapperPass ()
LLVM_ABI Printable printBlockFreq (const BlockFrequencyInfo &BFI, BlockFrequency Freq)
 Print the block frequency Freq relative to the current functions entry frequency.
LLVM_ABI Printable printBlockFreq (const BlockFrequencyInfo &BFI, const BasicBlock &BB)
 Convenience function equivalent to calling printBlockFreq(BFI, BFI.getBlocakFreq(&BB)).
uint32_t getWeightFromBranchProb (const BranchProbability Prob)
LLVM_ABI void initializeDummyCGSCCPassPass (PassRegistry &)
LLVM_ABI ModulePasscreateCallGraphViewerPass ()
LLVM_ABI ModulePasscreateCallGraphDOTPrinterPass ()
LLVM_ABI unsigned getDefaultMaxUsesToExploreForCaptureTracking ()
 getDefaultMaxUsesToExploreForCaptureTracking - Return default value of the maximal number of uses to explore before giving up.
LLVM_ABI bool PointerMayBeCaptured (const Value *V, bool ReturnCaptures, unsigned MaxUsesToExplore=0)
 PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist).
LLVM_ABI CaptureComponents PointerMayBeCaptured (const Value *V, bool ReturnCaptures, CaptureComponents Mask, function_ref< bool(CaptureComponents)> StopFn=capturesAnything, unsigned MaxUsesToExplore=0)
 Return which components of the pointer may be captured.
LLVM_ABI bool PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, const Instruction *I, const DominatorTree *DT, bool IncludeI=false, unsigned MaxUsesToExplore=0, const LoopInfo *LI=nullptr)
 PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist).
LLVM_ABI CaptureComponents PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, const Instruction *I, const DominatorTree *DT, bool IncludeI, CaptureComponents Mask, function_ref< bool(CaptureComponents)> StopFn=capturesAnything, const LoopInfo *LI=nullptr, unsigned MaxUsesToExplore=0)
 Return which components of the pointer may be captured on the path to I.
LLVM_ABI std::pair< Instruction *, CaptureComponentsFindEarliestCapture (const Value *V, Function &F, bool ReturnCaptures, const DominatorTree &DT, CaptureComponents Mask, unsigned MaxUsesToExplore=0)
LLVM_ABI UseCaptureInfo DetermineUseCaptureKind (const Use &U, const Value *Base)
 Determine what kind of capture behaviour U may exhibit.
LLVM_ABI void PointerMayBeCaptured (const Value *V, CaptureTracker *Tracker, unsigned MaxUsesToExplore=0)
 PointerMayBeCaptured - Visit the value and the values derived from it and find values which appear to be capturing the pointer value.
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI bool isCriticalEdge (const Instruction *TI, unsigned SuccNum, bool AllowIdenticalEdges=false)
 Return true if the specified edge is a critical edge.
LLVM_ABI bool isCriticalEdge (const Instruction *TI, const BasicBlock *Succ, bool AllowIdenticalEdges=false)
LLVM_ABI bool isPotentiallyReachable (const Instruction *From, const Instruction *To, const SmallPtrSetImpl< BasicBlock * > *ExclusionSet=nullptr, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether instruction 'To' is reachable from 'From', without passing through any blocks in ExclusionSet, returning true if uncertain.
LLVM_ABI bool isPotentiallyReachable (const BasicBlock *From, const BasicBlock *To, const SmallPtrSetImpl< BasicBlock * > *ExclusionSet=nullptr, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether block 'To' is reachable from 'From', returning true if uncertain.
LLVM_ABI bool isPotentiallyReachableFromMany (SmallVectorImpl< BasicBlock * > &Worklist, const BasicBlock *StopBB, const SmallPtrSetImpl< BasicBlock * > *ExclusionSet, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether there is at least one path from a block in 'Worklist' to 'StopBB' without passing through any blocks in 'ExclusionSet', returning true if uncertain.
LLVM_ABI bool isManyPotentiallyReachableFromMany (SmallVectorImpl< BasicBlock * > &Worklist, const SmallPtrSetImpl< const BasicBlock * > &StopSet, const SmallPtrSetImpl< BasicBlock * > *ExclusionSet, const DominatorTree *DT=nullptr, const LoopInfo *LI=nullptr)
 Determine whether there is a potentially a path from at least one block in 'Worklist' to at least one block in 'StopSet' within a single function without passing through any of the blocks in 'ExclusionSet'.
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.
LLVM_ABI bool isPresplitCoroSuspendExitEdge (const BasicBlock &Src, const BasicBlock &Dest)
LLVM_ABI bool canReturn (const Function &F)
 Return true if there is at least a path through which F can return, false if there is no such path.
template<typename BasicBlockT>
std::string SimpleNodeLabelString (const BasicBlockT *Node)
template<typename BasicBlockT>
std::string CompleteNodeLabelString (const BasicBlockT *Node, function_ref< void(raw_string_ostream &, const BasicBlockT &)> HandleBasicBlock, function_ref< void(std::string &, unsigned &, unsigned)> HandleComment)
template<typename CGSCCPassT>
ModuleToPostOrderCGSCCPassAdaptor createModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT &&Pass)
 A function to deduce a function pass type and wrap it in the templated adaptor.
LLVM_ABI LazyCallGraph::SCCupdateCGAndAnalysisManagerForFunctionPass (LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N, CGSCCAnalysisManager &AM, CGSCCUpdateResult &UR, FunctionAnalysisManager &FAM)
 Helper to update the call graph after running a function pass.
LLVM_ABI LazyCallGraph::SCCupdateCGAndAnalysisManagerForCGSCCPass (LazyCallGraph &G, LazyCallGraph::SCC &C, LazyCallGraph::Node &N, CGSCCAnalysisManager &AM, CGSCCUpdateResult &UR, FunctionAnalysisManager &FAM)
 Helper to update the call graph after running a CGSCC pass.
template<typename FunctionPassT>
CGSCCToFunctionPassAdaptor createCGSCCToFunctionPassAdaptor (FunctionPassT &&Pass, bool EagerlyInvalidate=false, bool NoRerun=false)
 A function to deduce a function pass type and wrap it in the templated adaptor.
template<typename CGSCCPassT>
DevirtSCCRepeatedPass createDevirtSCCRepeatedPass (CGSCCPassT &&Pass, int MaxIterations)
 A function to deduce a function pass type and wrap it in the templated adaptor.
unsigned getICmpCode (CmpInst::Predicate Pred)
 Encode a icmp predicate into a three bit mask.
ConstantgetPredForICmpCode (unsigned Code, bool Sign, Type *OpTy, CmpInst::Predicate &Pred)
 This is the complement of getICmpCode.
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).
unsigned getFCmpCode (CmpInst::Predicate CC)
 Similar to getICmpCode but for FCmpInst.
ConstantgetPredForFCmpCode (unsigned Code, Type *OpTy, CmpInst::Predicate &Pred)
 This is the complement of getFCmpCode.
std::optional< DecomposedBitTestdecomposeBitTestICmp (Value *LHS, Value *RHS, CmpInst::Predicate Pred, bool LookThroughTrunc=true, bool AllowNonZeroC=false, bool DecomposeAnd=false)
 Decompose an icmp into the form ((X & Mask) pred C) if possible.
std::optional< DecomposedBitTestdecomposeBitTest (Value *Cond, bool LookThroughTrunc=true, bool AllowNonZeroC=false, bool DecomposeAnd=false)
 Decompose an icmp into the form ((X & Mask) pred C) if possible.
LLVM_ABI bool IsConstantOffsetFromGlobal (Constant *C, GlobalValue *&GV, APInt &Offset, const DataLayout &DL, DSOLocalEquivalent **DSOEquiv=nullptr)
 If this constant is a constant offset from a global, return the global and the constant.
LLVM_ABI ConstantConstantFoldInstruction (const Instruction *I, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldInstruction - Try to constant fold the specified instruction.
LLVM_ABI ConstantConstantFoldConstant (const Constant *C, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr)
 ConstantFoldConstant - Fold the constant using the specified DataLayout.
LLVM_ABI ConstantConstantFoldInstOperands (const Instruction *I, ArrayRef< Constant * > Ops, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr, bool AllowNonDeterministic=true)
 ConstantFoldInstOperands - Attempt to constant fold an instruction with the specified operands.
LLVM_ABI ConstantConstantFoldCompareInstOperands (unsigned Predicate, Constant *LHS, Constant *RHS, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr, const Instruction *I=nullptr)
 Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands.
LLVM_ABI ConstantConstantFoldUnaryOpOperand (unsigned Opcode, Constant *Op, const DataLayout &DL)
 Attempt to constant fold a unary operation with the specified operand.
LLVM_ABI ConstantConstantFoldBinaryOpOperands (unsigned Opcode, Constant *LHS, Constant *RHS, const DataLayout &DL)
 Attempt to constant fold a binary operation with the specified operands.
LLVM_ABI ConstantConstantFoldFPInstOperands (unsigned Opcode, Constant *LHS, Constant *RHS, const DataLayout &DL, const Instruction *I, bool AllowNonDeterministic=true)
 Attempt to constant fold a floating point binary operation with the specified operands, applying the denormal handling mod to the operands.
LLVM_ABI ConstantFlushFPConstant (Constant *Operand, const Instruction *I, bool IsOutput)
 Attempt to flush float point constant according to denormal mode set in the instruction's parent function attributes.
LLVM_ABI ConstantConstantFoldSelectInstruction (Constant *Cond, Constant *V1, Constant *V2)
 Attempt to constant fold a select instruction with the specified operands.
LLVM_ABI ConstantConstantFoldCastOperand (unsigned Opcode, Constant *C, Type *DestTy, const DataLayout &DL)
 Attempt to constant fold a cast with the specified operand.
LLVM_ABI ConstantConstantFoldIntegerCast (Constant *C, Type *DestTy, bool IsSigned, const DataLayout &DL)
 Constant fold a zext, sext or trunc, depending on IsSigned and whether the DestTy is wider or narrower than C.
LLVM_ABI ConstantConstantFoldInsertValueInstruction (Constant *Agg, Constant *Val, ArrayRef< unsigned > Idxs)
 ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices.
LLVM_ABI ConstantConstantFoldExtractValueInstruction (Constant *Agg, ArrayRef< unsigned > Idxs)
 Attempt to constant fold an extractvalue instruction with the specified operands and indices.
LLVM_ABI ConstantConstantFoldInsertElementInstruction (Constant *Val, Constant *Elt, Constant *Idx)
 Attempt to constant fold an insertelement instruction with the specified operands and indices.
LLVM_ABI ConstantConstantFoldExtractElementInstruction (Constant *Val, Constant *Idx)
 Attempt to constant fold an extractelement instruction with the specified operands and indices.
LLVM_ABI ConstantConstantFoldShuffleVectorInstruction (Constant *V1, Constant *V2, ArrayRef< int > Mask)
 Attempt to constant fold a shufflevector instruction with the specified operands and mask.
LLVM_ABI ConstantConstantFoldLoadFromConst (Constant *C, Type *Ty, const APInt &Offset, const DataLayout &DL)
 Extract value of C at the given Offset reinterpreted as Ty.
LLVM_ABI ConstantConstantFoldLoadFromConst (Constant *C, Type *Ty, const DataLayout &DL)
 Extract value of C reinterpreted as Ty.
LLVM_ABI ConstantConstantFoldLoadFromConstPtr (Constant *C, Type *Ty, APInt Offset, const DataLayout &DL)
 Return the value that a load from C with offset Offset would produce if it is constant and determinable.
LLVM_ABI ConstantConstantFoldLoadFromConstPtr (Constant *C, Type *Ty, const DataLayout &DL)
 Return the value that a load from C would produce if it is constant and determinable.
LLVM_ABI ConstantConstantFoldLoadFromUniformValue (Constant *C, Type *Ty, const DataLayout &DL)
 If C is a uniform value where all bits are the same (either all zero, all ones, all undef or all poison), return the corresponding uniform value in the new type.
LLVM_ABI bool canConstantFoldCallTo (const CallBase *Call, const Function *F)
 canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function.
LLVM_ABI ConstantConstantFoldCall (const CallBase *Call, Function *F, ArrayRef< Constant * > Operands, const TargetLibraryInfo *TLI=nullptr, bool AllowNonDeterministic=true)
 ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful.
LLVM_ABI ConstantConstantFoldBinaryIntrinsic (Intrinsic::ID ID, Constant *LHS, Constant *RHS, Type *Ty, Instruction *FMFSource)
LLVM_ABI ConstantConstantFoldLoadThroughBitcast (Constant *C, Type *DestTy, const DataLayout &DL)
 ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful.
LLVM_ABI bool isMathLibCallNoop (const CallBase *Call, const TargetLibraryInfo *TLI)
 Check whether the given call has no side-effects.
LLVM_ABI ConstantReadByteArrayFromGlobal (const GlobalVariable *GV, uint64_t Offset)
LLVM_ABI ConstantgetLosslessInvCast (Constant *C, Type *InvCastTo, unsigned CastOp, const DataLayout &DL, PreservedCastFlags *Flags=nullptr)
 Try to cast C to InvC losslessly, satisfying CastOp(InvC) equals C, or CastOp(InvC) is a refined value of undefined C.
LLVM_ABI ConstantgetLosslessUnsignedTrunc (Constant *C, Type *DestTy, const DataLayout &DL, PreservedCastFlags *Flags=nullptr)
LLVM_ABI ConstantgetLosslessSignedTrunc (Constant *C, Type *DestTy, const DataLayout &DL, PreservedCastFlags *Flags=nullptr)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const DDGNode &N)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const DDGNode::NodeKind K)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const DDGEdge &E)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const DDGEdge::EdgeKind K)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const DataDependenceGraph &G)
void findArrayDimensions (ScalarEvolution &SE, SmallVectorImpl< const SCEV * > &Terms, SmallVectorImpl< const SCEV * > &Sizes, const SCEV *ElementSize)
 Compute the array dimensions Sizes from the set of Terms extracted from the memory access function of this SCEVAddRecExpr (second step of delinearization).
void collectParametricTerms (ScalarEvolution &SE, const SCEV *Expr, SmallVectorImpl< const SCEV * > &Terms)
 Collect parametric terms occurring in step expressions (first step of delinearization).
void computeAccessFunctions (ScalarEvolution &SE, const SCEV *Expr, SmallVectorImpl< const SCEV * > &Subscripts, SmallVectorImpl< const SCEV * > &Sizes)
 Return in Subscripts the access functions for each dimension in Sizes (third step of delinearization).
void delinearize (ScalarEvolution &SE, const SCEV *Expr, SmallVectorImpl< const SCEV * > &Subscripts, SmallVectorImpl< const SCEV * > &Sizes, const SCEV *ElementSize)
 Split this SCEVAddRecExpr into two vectors of SCEVs representing the subscripts and sizes of an array access.
bool findFixedSizeArrayDimensions (ScalarEvolution &SE, const SCEV *Expr, SmallVectorImpl< uint64_t > &Sizes, const SCEV *ElementSize)
 Compute the dimensions of fixed size array from \Expr and save the results in Sizes.
bool delinearizeFixedSizeArray (ScalarEvolution &SE, const SCEV *Expr, SmallVectorImpl< const SCEV * > &Subscripts, SmallVectorImpl< const SCEV * > &Sizes, const SCEV *ElementSize)
 Split this SCEVAddRecExpr into two vectors of SCEVs representing the subscripts and sizes of an access to a fixed size array.
bool getIndexExpressionsFromGEP (ScalarEvolution &SE, const GetElementPtrInst *GEP, SmallVectorImpl< const SCEV * > &Subscripts, SmallVectorImpl< int > &Sizes)
 Gathers the individual index expressions from a GEP instruction.
bool tryDelinearizeFixedSizeImpl (ScalarEvolution *SE, Instruction *Inst, const SCEV *AccessFn, SmallVectorImpl< const SCEV * > &Subscripts, SmallVectorImpl< int > &Sizes)
 Implementation of fixed size array delinearization.
LLVM_ABI FunctionPasscreateDependenceAnalysisWrapperPass ()
 createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass.
LLVM_ABI FunctionPasscreateDomPrinterWrapperPassPass ()
LLVM_ABI FunctionPasscreateDomOnlyPrinterWrapperPassPass ()
LLVM_ABI FunctionPasscreateDomViewerWrapperPassPass ()
LLVM_ABI FunctionPasscreateDomOnlyViewerWrapperPassPass ()
LLVM_ABI FunctionPasscreatePostDomPrinterWrapperPassPass ()
LLVM_ABI FunctionPasscreatePostDomOnlyPrinterWrapperPassPass ()
LLVM_ABI FunctionPasscreatePostDomViewerWrapperPassPass ()
LLVM_ABI FunctionPasscreatePostDomOnlyViewerWrapperPassPass ()
template<typename GraphT>
void viewGraphForFunction (Function &F, GraphT Graph, StringRef Name, bool IsSimple)
static void shortenFileName (std::string &FN, unsigned char len=250)
template<typename GraphT>
void printGraphForFunction (Function &F, GraphT Graph, StringRef Name, bool IsSimple)
template<typename GraphT>
void WriteDOTGraphToFile (Function &F, GraphT &&Graph, std::string FileNamePrefix, bool IsSimple)
LLVM_ABI ModulePasscreateDXILResourceTypeWrapperPassPass ()
LLVM_ABI ModulePasscreateDXILResourceWrapperPassPass ()
LLVM_ABI ModulePasscreateDXILResourceBindingWrapperPassPass ()
template<typename FunctionT, typename BlockT>
static void computeEHOnlyBlocks (FunctionT &F, DenseSet< BlockT * > &EHBlocks)
 Compute a list of blocks that are only reachable via EH paths.
std::pair< Value *, FPClassTestfcmpToClassTest (FCmpInst::Predicate Pred, const Function &F, Value *LHS, Value *RHS, bool LookThroughSrc=true)
 Returns a pair of values, which if passed to llvm.is.fpclass, returns the same result as an fcmp with the given operands.
std::pair< Value *, FPClassTestfcmpToClassTest (FCmpInst::Predicate Pred, const Function &F, Value *LHS, const APFloat *ConstRHS, bool LookThroughSrc=true)
 Returns a pair of values, which if passed to llvm.is.fpclass, returns the same result as an fcmp with the given operands.
std::tuple< Value *, FPClassTest, FPClassTestfcmpImpliesClass (CmpInst::Predicate Pred, const Function &F, Value *LHS, FPClassTest RHSClass, bool LookThroughSrc=true)
std::tuple< Value *, FPClassTest, FPClassTestfcmpImpliesClass (CmpInst::Predicate Pred, const Function &F, Value *LHS, const APFloat &ConstRHS, bool LookThroughSrc=true)
std::tuple< Value *, FPClassTest, FPClassTestfcmpImpliesClass (CmpInst::Predicate Pred, const Function &F, Value *LHS, Value *RHS, bool LookThroughSrc=true)
LLVM_ABI ModulePasscreateGlobalsAAWrapperPass ()
bool isGuard (const User *U)
 Returns true iff U has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic.
bool isWidenableCondition (const Value *V)
 Returns true iff V has semantics of llvm.experimental.widenable.condition call.
bool isWidenableBranch (const User *U)
 Returns true iff U is a widenable branch (that is, extractWidenableCondition returns widenable condition).
bool isGuardAsWidenableBranch (const User *U)
 Returns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block.
bool parseWidenableBranch (const User *U, Value *&Condition, Value *&WidenableCondition, BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB)
 If U is widenable branch looking like: cond = ... wc = call i1 @llvm.experimental.widenable.condition() branch_cond = and i1 cond, wc br i1 branch_cond, label if_true_bb, label if_false_bb ; <— U The function returns true, and the values cond and wc and blocks if_true_bb, if_false_bb are returned in the parameters (Condition, WidenableCondition, IfTrueBB and IfFalseFF) respectively.
bool parseWidenableBranch (User *U, Use *&Cond, Use *&WC, BasicBlock *&IfTrueBB, BasicBlock *&IfFalseBB)
 Analogous to the above, but return the Uses so that they can be modified.
void parseWidenableGuard (const User *U, llvm::SmallVectorImpl< Value * > &Checks)
ValueextractWidenableCondition (const User *U)
LLVM_ABI uint64_t getNumOfCalls (Function &callerFunction, Function &calledFunction)
LLVM_ABI uint64_t getMaxFreq (const Function &F, const BlockFrequencyInfo *BFI)
LLVM_ABI std::string getHeatColor (uint64_t freq, uint64_t maxFreq)
LLVM_ABI std::string getHeatColor (double percent)
std::vector< CallBase * > findIndirectCalls (Function &F)
std::vector< Instruction * > findVTableAddrs (Function &F)
LLVM_ABI std::string AnnotateInlinePassName (InlineContext IC)
LLVM_ABI std::unique_ptr< InlineAdvisorgetReleaseModeAdvisor (Module &M, ModuleAnalysisManager &MAM, std::function< bool(CallBase &)> GetDefaultAdvice)
LLVM_ABI std::unique_ptr< InlineAdvisorgetDevelopmentModeAdvisor (Module &M, ModuleAnalysisManager &MAM, std::function< bool(CallBase &)> GetDefaultAdvice)
LLVM_ABI std::optional< InlineCostshouldInline (CallBase &CB, TargetTransformInfo &CalleeTTI, function_ref< InlineCost(CallBase &CB)> GetInlineCost, OptimizationRemarkEmitter &ORE, bool EnableDeferral=true)
 Return the cost only if the inliner should attempt to inline at the given CallSite.
LLVM_ABI void emitInlinedInto (OptimizationRemarkEmitter &ORE, DebugLoc DLoc, const BasicBlock *Block, const Function &Callee, const Function &Caller, bool IsMandatory, function_ref< void(OptimizationRemark &)> ExtraContext={}, const char *PassName=nullptr)
 Emit ORE message.
LLVM_ABI void emitInlinedIntoBasedOnCost (OptimizationRemarkEmitter &ORE, DebugLoc DLoc, const BasicBlock *Block, const Function &Callee, const Function &Caller, const InlineCost &IC, bool ForProfileContext=false, const char *PassName=nullptr)
 Emit ORE message based in cost (default heuristic).
LLVM_ABI void addLocationToRemarks (OptimizationRemark &Remark, DebugLoc DLoc)
 Add location info to ORE message.
LLVM_ABI void setInlineRemark (CallBase &CB, StringRef Message)
 Set the inline-remark attribute.
LLVM_ABI std::string inlineCostStr (const InlineCost &IC)
 Utility for extracting the inline cost message to a string.
LLVM_ABI std::optional< int > getStringFnAttrAsInt (CallBase &CB, StringRef AttrKind)
LLVM_ABI InlineParams getInlineParams ()
 Generate the parameters to tune the inline cost analysis based only on the commandline options.
LLVM_ABI InlineParams getInlineParams (int Threshold)
 Generate the parameters to tune the inline cost analysis based on command line options.
LLVM_ABI InlineParams getInlineParams (unsigned OptLevel, unsigned SizeOptLevel)
 Generate the parameters to tune the inline cost analysis based on command line options.
LLVM_ABI int getCallsiteCost (const TargetTransformInfo &TTI, const CallBase &Call, const DataLayout &DL)
 Return the cost associated with a callsite, including parameter passing and the call/return instruction.
LLVM_ABI InlineCost getInlineCost (CallBase &Call, const InlineParams &Params, TargetTransformInfo &CalleeTTI, function_ref< AssumptionCache &(Function &)> GetAssumptionCache, function_ref< const TargetLibraryInfo &(Function &)> GetTLI, function_ref< BlockFrequencyInfo &(Function &)> GetBFI=nullptr, ProfileSummaryInfo *PSI=nullptr, OptimizationRemarkEmitter *ORE=nullptr, function_ref< EphemeralValuesCache &(Function &)> GetEphValuesCache=nullptr)
 Get an InlineCost object representing the cost of inlining this callsite.
LLVM_ABI InlineCost getInlineCost (CallBase &Call, Function *Callee, const InlineParams &Params, TargetTransformInfo &CalleeTTI, function_ref< AssumptionCache &(Function &)> GetAssumptionCache, function_ref< const TargetLibraryInfo &(Function &)> GetTLI, function_ref< BlockFrequencyInfo &(Function &)> GetBFI=nullptr, ProfileSummaryInfo *PSI=nullptr, OptimizationRemarkEmitter *ORE=nullptr, function_ref< EphemeralValuesCache &(Function &)> GetEphValuesCache=nullptr)
 Get an InlineCost with the callee explicitly specified.
LLVM_ABI std::optional< InlineResultgetAttributeBasedInliningDecision (CallBase &Call, Function *Callee, TargetTransformInfo &CalleeTTI, function_ref< const TargetLibraryInfo &(Function &)> GetTLI)
 Returns InlineResult::success() if the call site should be always inlined because of user directives, and the inlining is viable.
LLVM_ABI std::optional< int > getInliningCostEstimate (CallBase &Call, TargetTransformInfo &CalleeTTI, function_ref< AssumptionCache &(Function &)> GetAssumptionCache, function_ref< BlockFrequencyInfo &(Function &)> GetBFI=nullptr, function_ref< const TargetLibraryInfo &(Function &)> GetTLI=nullptr, ProfileSummaryInfo *PSI=nullptr, OptimizationRemarkEmitter *ORE=nullptr)
 Get the cost estimate ignoring thresholds.
LLVM_ABI std::optional< InlineCostFeaturesgetInliningCostFeatures (CallBase &Call, TargetTransformInfo &CalleeTTI, function_ref< AssumptionCache &(Function &)> GetAssumptionCache, function_ref< BlockFrequencyInfo &(Function &)> GetBFI=nullptr, function_ref< const TargetLibraryInfo &(Function &)> GetTLI=nullptr, ProfileSummaryInfo *PSI=nullptr, OptimizationRemarkEmitter *ORE=nullptr)
 Get the expanded cost features.
LLVM_ABI InlineResult isInlineViable (Function &Callee)
 Check if it is mechanically possible to inline the function Callee, based on the contents of the function.
constexpr bool isHeuristicInlineCostFeature (InlineCostFeatureIndex Feature)
constexpr FeatureIndex inlineCostFeatureToMlFeature (InlineCostFeatureIndex Feature)
LLVM_ABI std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > getDefaultInlineOrder (FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
LLVM_ABI std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > getInlineOrder (FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M)
LLVM_ABI ValuesimplifyAddInst (Value *LHS, Value *RHS, bool IsNSW, bool IsNUW, const SimplifyQuery &Q)
 Given operands for an Add, fold the result or return null.
LLVM_ABI ValuesimplifySubInst (Value *LHS, Value *RHS, bool IsNSW, bool IsNUW, const SimplifyQuery &Q)
 Given operands for a Sub, fold the result or return null.
LLVM_ABI ValuesimplifyMulInst (Value *LHS, Value *RHS, bool IsNSW, bool IsNUW, const SimplifyQuery &Q)
 Given operands for a Mul, fold the result or return null.
LLVM_ABI ValuesimplifySDivInst (Value *LHS, Value *RHS, bool IsExact, const SimplifyQuery &Q)
 Given operands for an SDiv, fold the result or return null.
LLVM_ABI ValuesimplifyUDivInst (Value *LHS, Value *RHS, bool IsExact, const SimplifyQuery &Q)
 Given operands for a UDiv, fold the result or return null.
LLVM_ABI ValuesimplifySRemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an SRem, fold the result or return null.
LLVM_ABI ValuesimplifyURemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a URem, fold the result or return null.
LLVM_ABI ValuesimplifyFNegInst (Value *Op, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operand for an FNeg, fold the result or return null.
LLVM_ABI ValuesimplifyFAddInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q, fp::ExceptionBehavior ExBehavior=fp::ebIgnore, RoundingMode Rounding=RoundingMode::NearestTiesToEven)
 Given operands for an FAdd, fold the result or return null.
LLVM_ABI ValuesimplifyFSubInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q, fp::ExceptionBehavior ExBehavior=fp::ebIgnore, RoundingMode Rounding=RoundingMode::NearestTiesToEven)
 Given operands for an FSub, fold the result or return null.
LLVM_ABI ValuesimplifyFMulInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q, fp::ExceptionBehavior ExBehavior=fp::ebIgnore, RoundingMode Rounding=RoundingMode::NearestTiesToEven)
 Given operands for an FMul, fold the result or return null.
LLVM_ABI ValuesimplifyFMAFMul (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q, fp::ExceptionBehavior ExBehavior=fp::ebIgnore, RoundingMode Rounding=RoundingMode::NearestTiesToEven)
 Given operands for the multiplication of a FMA, fold the result or return null.
LLVM_ABI ValuesimplifyFDivInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q, fp::ExceptionBehavior ExBehavior=fp::ebIgnore, RoundingMode Rounding=RoundingMode::NearestTiesToEven)
 Given operands for an FDiv, fold the result or return null.
LLVM_ABI ValuesimplifyFRemInst (Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q, fp::ExceptionBehavior ExBehavior=fp::ebIgnore, RoundingMode Rounding=RoundingMode::NearestTiesToEven)
 Given operands for an FRem, fold the result or return null.
LLVM_ABI ValuesimplifyShlInst (Value *Op0, Value *Op1, bool IsNSW, bool IsNUW, const SimplifyQuery &Q)
 Given operands for a Shl, fold the result or return null.
LLVM_ABI ValuesimplifyLShrInst (Value *Op0, Value *Op1, bool IsExact, const SimplifyQuery &Q)
 Given operands for a LShr, fold the result or return null.
LLVM_ABI ValuesimplifyAShrInst (Value *Op0, Value *Op1, bool IsExact, const SimplifyQuery &Q)
 Given operands for a AShr, fold the result or return nulll.
LLVM_ABI ValuesimplifyAndInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an And, fold the result or return null.
LLVM_ABI ValuesimplifyOrInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an Or, fold the result or return null.
LLVM_ABI ValuesimplifyXorInst (Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an Xor, fold the result or return null.
LLVM_ABI ValuesimplifyICmpInst (CmpPredicate Pred, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for an ICmpInst, fold the result or return null.
LLVM_ABI ValuesimplifyFCmpInst (CmpPredicate Predicate, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for an FCmpInst, fold the result or return null.
LLVM_ABI ValuesimplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const SimplifyQuery &Q)
 Given operands for a SelectInst, fold the result or return null.
LLVM_ABI ValuesimplifyGEPInst (Type *SrcTy, Value *Ptr, ArrayRef< Value * > Indices, GEPNoWrapFlags NW, const SimplifyQuery &Q)
 Given operands for a GetElementPtrInst, fold the result or return null.
LLVM_ABI ValuesimplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q)
 Given operands for an InsertValueInst, fold the result or return null.
LLVM_ABI ValuesimplifyInsertElementInst (Value *Vec, Value *Elt, Value *Idx, const SimplifyQuery &Q)
 Given operands for an InsertElement, fold the result or return null.
LLVM_ABI ValuesimplifyExtractValueInst (Value *Agg, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q)
 Given operands for an ExtractValueInst, fold the result or return null.
LLVM_ABI ValuesimplifyExtractElementInst (Value *Vec, Value *Idx, const SimplifyQuery &Q)
 Given operands for an ExtractElementInst, fold the result or return null.
LLVM_ABI ValuesimplifyCastInst (unsigned CastOpc, Value *Op, Type *Ty, const SimplifyQuery &Q)
 Given operands for a CastInst, fold the result or return null.
LLVM_ABI ValuesimplifyBinaryIntrinsic (Intrinsic::ID IID, Type *ReturnType, Value *Op0, Value *Op1, const SimplifyQuery &Q, const CallBase *Call)
 Given operands for a BinaryIntrinsic, fold the result or return null.
LLVM_ABI ValuesimplifyShuffleVectorInst (Value *Op0, Value *Op1, ArrayRef< int > Mask, Type *RetTy, const SimplifyQuery &Q)
 Given operands for a ShuffleVectorInst, fold the result or return null.
LLVM_ABI ValuesimplifyCmpInst (CmpPredicate Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a CmpInst, fold the result or return null.
LLVM_ABI ValuesimplifyUnOp (unsigned Opcode, Value *Op, const SimplifyQuery &Q)
 Given operand for a UnaryOperator, fold the result or return null.
LLVM_ABI ValuesimplifyUnOp (unsigned Opcode, Value *Op, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operand for a UnaryOperator, fold the result or return null.
LLVM_ABI ValuesimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const SimplifyQuery &Q)
 Given operands for a BinaryOperator, fold the result or return null.
LLVM_ABI ValuesimplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q)
 Given operands for a BinaryOperator, fold the result or return null.
LLVM_ABI ValuesimplifyCall (CallBase *Call, Value *Callee, ArrayRef< Value * > Args, const SimplifyQuery &Q)
 Given a callsite, callee, and arguments, fold the result or return null.
LLVM_ABI ValuesimplifyConstrainedFPCall (CallBase *Call, const SimplifyQuery &Q)
 Given a constrained FP intrinsic call, tries to compute its simplified version.
LLVM_ABI ValuesimplifyFreezeInst (Value *Op, const SimplifyQuery &Q)
 Given an operand for a Freeze, see if we can fold the result.
LLVM_ABI ValuesimplifyLoadInst (LoadInst *LI, Value *PtrOp, const SimplifyQuery &Q)
 Given a load instruction and its pointer operand, fold the result or return null.
LLVM_ABI ValuesimplifyInstruction (Instruction *I, const SimplifyQuery &Q)
 See if we can compute a simplified version of this instruction.
LLVM_ABI ValuesimplifyInstructionWithOperands (Instruction *I, ArrayRef< Value * > NewOps, const SimplifyQuery &Q)
 Like simplifyInstruction but the operands of I are replaced with NewOps.
LLVM_ABI ValuesimplifyWithOpReplaced (Value *V, Value *Op, Value *RepOp, const SimplifyQuery &Q, bool AllowRefinement, SmallVectorImpl< Instruction * > *DropFlags=nullptr)
 See if V simplifies when its operand Op is replaced with RepOp.
LLVM_ABI bool replaceAndRecursivelySimplify (Instruction *I, Value *SimpleV, const TargetLibraryInfo *TLI=nullptr, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, SmallSetVector< Instruction *, 8 > *UnsimplifiedUsers=nullptr)
 Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.
LLVM_ABI const SimplifyQuery getBestSimplifyQuery (Pass &, Function &)
template<class T, class... TArgs>
const SimplifyQuery getBestSimplifyQuery (AnalysisManager< T, TArgs... > &, Function &)
LLVM_ABI const SimplifyQuery getBestSimplifyQuery (LoopStandardAnalysisResults &, const DataLayout &)
PasscreateIVUsersPass ()
void initializeLazyBPIPassPass (PassRegistry &Registry)
 Helper for client passes to initialize dependent passes for LBPI.
void lintModule (const Module &M, bool AbortOnError=false)
 Lint a module.
void lintFunction (const Function &F, bool AbortOnError=false)
 lintFunction - Check a function for errors, printing messages on stderr.
LLVM_ABI bool isDereferenceablePointer (const Value *V, Type *Ty, const DataLayout &DL, const Instruction *CtxI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr)
 Return true if this is always a dereferenceable pointer.
LLVM_ABI bool isDereferenceableAndAlignedPointer (const Value *V, Type *Ty, Align Alignment, const DataLayout &DL, const Instruction *CtxI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr)
 Returns true if V is always a dereferenceable pointer with alignment greater or equal than requested.
LLVM_ABI bool isDereferenceableAndAlignedPointer (const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, const Instruction *CtxI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr)
 Returns true if V is always dereferenceable for Size byte with alignment greater or equal than requested.
LLVM_ABI bool isSafeToLoadUnconditionally (Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, Instruction *ScanFrom, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr)
 Return true if we know that executing a load from this value cannot trap.
LLVM_ABI bool isDereferenceableAndAlignedInLoop (LoadInst *LI, Loop *L, ScalarEvolution &SE, DominatorTree &DT, AssumptionCache *AC=nullptr, SmallVectorImpl< const SCEVPredicate * > *Predicates=nullptr)
 Return true if we can prove that the given load (which is assumed to be within the specified loop) would access only dereferenceable memory, and be properly aligned on every iteration of the specified loop regardless of its placement within the loop.
LLVM_ABI bool isReadOnlyLoop (Loop *L, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, SmallVectorImpl< LoadInst * > &NonDereferenceableAndAlignedLoads, SmallVectorImpl< const SCEVPredicate * > *Predicates=nullptr)
 Returns true if the loop contains read-only memory accesses and doesn't throw.
LLVM_ABI bool isSafeToLoadUnconditionally (Value *V, Type *Ty, Align Alignment, const DataLayout &DL, Instruction *ScanFrom, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr)
 Return true if we know that executing a load from this value cannot trap.
LLVM_ABI bool mustSuppressSpeculation (const LoadInst &LI)
 Return true if speculation of the given load must be suppressed to avoid ordering or interfering with an active sanitizer.
LLVM_ABI ValueFindAvailableLoadedValue (LoadInst *Load, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan=DefMaxInstsToScan, BatchAAResults *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.
LLVM_ABI ValueFindAvailableLoadedValue (LoadInst *Load, BatchAAResults &AA, bool *IsLoadCSE, unsigned MaxInstsToScan=DefMaxInstsToScan)
 This overload provides a more efficient implementation of FindAvailableLoadedValue() for the case where we are not interested in finding the closest clobbering instruction if no available load is found.
LLVM_ABI ValuefindAvailablePtrLoadStore (const MemoryLocation &Loc, Type *AccessTy, bool AtLeastAtomic, BasicBlock *ScanBB, BasicBlock::iterator &ScanFrom, unsigned MaxInstsToScan, BatchAAResults *AA, bool *IsLoadCSE, unsigned *NumScanedInst)
 Scan backwards to see if we have the value of the given pointer available locally within a small number of instructions.
LLVM_ABI bool canReplacePointersIfEqual (const Value *From, const Value *To, const DataLayout &DL)
 Returns true if a pointer value From can be replaced with another pointer value \To if they are deemed equal through some means (e.g.
LLVM_ABI bool canReplacePointersInUseIfEqual (const Use &U, const Value *To, const DataLayout &DL)
LLVM_ABI LinearExpression decomposeLinearExpression (const DataLayout &DL, Value *Ptr)
 Decompose a pointer into a linear expression.
LLVM_ABI const SCEVreplaceSymbolicStrideSCEV (PredicatedScalarEvolution &PSE, const DenseMap< Value *, const SCEV * > &PtrToStride, Value *Ptr)
 Return the SCEV corresponding to a pointer with the symbolic stride replaced with constant one, assuming the SCEV predicate associated with PSE is true.
LLVM_ABI std::optional< int64_t > getPtrStride (PredicatedScalarEvolution &PSE, Type *AccessTy, Value *Ptr, const Loop *Lp, const DenseMap< Value *, const SCEV * > &StridesMap=DenseMap< Value *, const SCEV * >(), bool Assume=false, bool ShouldCheckWrap=true)
 If the pointer has a constant stride return it in units of the access type size.
LLVM_ABI std::optional< int64_t > getPointersDiff (Type *ElemTyA, Value *PtrA, Type *ElemTyB, Value *PtrB, const DataLayout &DL, ScalarEvolution &SE, bool StrictCheck=false, bool CheckType=true)
 Returns the distance between the pointers PtrA and PtrB iff they are compatible and it is possible to calculate the distance between them.
LLVM_ABI bool sortPtrAccesses (ArrayRef< Value * > VL, Type *ElemTy, 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.
LLVM_ABI 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.
LLVM_ABI std::pair< const SCEV *, const SCEV * > getStartAndEndForAccess (const Loop *Lp, const SCEV *PtrExpr, Type *AccessTy, const SCEV *BTC, const SCEV *MaxBTC, ScalarEvolution *SE, DenseMap< std::pair< const SCEV *, Type * >, std::pair< const SCEV *, const SCEV * > > *PointerBounds, DominatorTree *DT, AssumptionCache *AC, std::optional< ScalarEvolution::LoopGuards > &LoopGuards)
 Calculate Start and End points of memory access using exact backedge taken count BTC if computable or maximum backedge taken count MaxBTC otherwise.
LLVM_ABI PreservedAnalyses getLoopPassPreservedAnalyses ()
 Returns the minimum set of Analyses that all loop passes must preserve.
raw_ostreamoperator<< (raw_ostream &OS, const IndexedReference &R)
raw_ostreamoperator<< (raw_ostream &OS, const CacheCost &CC)
LLVM_ABI void printLoop (Loop &L, raw_ostream &OS, const std::string &Banner="")
 Function to print a loop's contents as LLVM's text IR assembly.
LLVM_ABI MDNodefindOptionMDForLoopID (MDNode *LoopID, StringRef Name)
 Find and return the loop attribute node for the attribute Name in LoopID.
LLVM_ABI MDNodefindOptionMDForLoop (const Loop *TheLoop, StringRef Name)
 Find string metadata for a loop.
LLVM_ABI std::optional< boolgetOptionalBoolLoopAttribute (const Loop *TheLoop, StringRef Name)
LLVM_ABI bool getBooleanLoopAttribute (const Loop *TheLoop, StringRef Name)
 Returns true if Name is applied to TheLoop and enabled.
LLVM_ABI std::optional< int > getOptionalIntLoopAttribute (const Loop *TheLoop, StringRef Name)
 Find named metadata for a loop with an integer value.
LLVM_ABI int getIntLoopAttribute (const Loop *TheLoop, StringRef Name, int Default=0)
 Find named metadata for a loop with an integer value.
LLVM_ABI std::optional< const MDOperand * > findStringMetadataForLoop (const Loop *TheLoop, StringRef Name)
 Find string metadata for loop.
LLVM_ABI CallBasegetLoopConvergenceHeart (const Loop *TheLoop)
 Find the convergence heart of the loop.
LLVM_ABI bool hasMustProgress (const Loop *L)
 Look for the loop attribute that requires progress within the loop.
LLVM_ABI bool isMustProgress (const Loop *L)
 Return true if this loop can be assumed to make progress.
LLVM_ABI bool isFinite (const Loop *L)
 Return true if this loop can be assumed to run for a finite number of iterations.
LLVM_ABI bool isValidAsAccessGroup (MDNode *AccGroup)
 Return whether an MDNode might represent an access group.
LLVM_ABI llvm::MDNodemakePostTransformationMetadata (llvm::LLVMContext &Context, MDNode *OrigLoopID, llvm::ArrayRef< llvm::StringRef > RemovePrefixes, llvm::ArrayRef< llvm::MDNode * > AddAttrs)
 Create a new LoopID after the loop has been transformed.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &, const LoopNest &)
LLVM_ABI bool isAllocationFn (const Value *V, const TargetLibraryInfo *TLI)
 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).
LLVM_ABI bool isAllocationFn (const Value *V, function_ref< const TargetLibraryInfo &(Function &)> GetTLI)
LLVM_ABI bool isNewLikeFn (const Value *V, const TargetLibraryInfo *TLI)
 Tests if a value is a call or invoke to a library function that allocates memory via new.
LLVM_ABI bool isMallocOrCallocLikeFn (const Value *V, const TargetLibraryInfo *TLI)
 Tests if a value is a call or invoke to a library function that allocates memory similar to malloc or calloc.
LLVM_ABI bool isAllocLikeFn (const Value *V, const TargetLibraryInfo *TLI)
 Tests if a value is a call or invoke to a library function that allocates memory (either malloc, calloc, or strdup like).
LLVM_ABI bool isReallocLikeFn (const Function *F)
 Tests if a function is a call or invoke to a library function that reallocates memory (e.g., realloc).
LLVM_ABI ValuegetReallocatedOperand (const CallBase *CB)
 If this is a call to a realloc function, return the reallocated operand.
LLVM_ABI bool isLibFreeFunction (const Function *F, const LibFunc TLIFn)
 isLibFreeFunction - Returns true if the function is a builtin free()
LLVM_ABI ValuegetFreedOperand (const CallBase *CB, const TargetLibraryInfo *TLI)
 If this if a call to a free function, return the freed operand.
LLVM_ABI bool isRemovableAlloc (const CallBase *V, const TargetLibraryInfo *TLI)
 Return true if this is a call to an allocation function that does not have side effects that we are required to preserve beyond the effect of allocating a new object.
LLVM_ABI ValuegetAllocAlignment (const CallBase *V, const TargetLibraryInfo *TLI)
 Gets the alignment argument for an aligned_alloc-like function, using either built-in knowledge based on fuction names/signatures or allocalign attributes.
LLVM_ABI std::optional< APIntgetAllocSize (const CallBase *CB, const TargetLibraryInfo *TLI, function_ref< const Value *(const Value *)> Mapper=[](const Value *V) { return V;})
 Return the size of the requested allocation.
LLVM_ABI ConstantgetInitialValueOfAllocation (const Value *V, const TargetLibraryInfo *TLI, Type *Ty)
 If this is a call to an allocation function that initializes memory to a fixed value, return said value in the requested type.
LLVM_ABI std::optional< StringRefgetAllocationFamily (const Value *I, const TargetLibraryInfo *TLI)
 If a function is part of an allocation family (e.g.
LLVM_ABI 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.
LLVM_ABI std::optional< TypeSizegetBaseObjectSize (const Value *Ptr, const DataLayout &DL, const TargetLibraryInfo *TLI, ObjectSizeOpts Opts={})
 Like getObjectSize(), but only returns the size of base objects (like allocas, global variables and allocator calls) and std::nullopt otherwise.
LLVM_ABI ValuelowerObjectSizeCall (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.
LLVM_ABI ValuelowerObjectSizeCall (IntrinsicInst *ObjectSize, const DataLayout &DL, const TargetLibraryInfo *TLI, AAResults *AA, bool MustSucceed, SmallVectorImpl< Instruction * > *InsertedInstructions=nullptr)
raw_ostreamoperator<< (raw_ostream &OS, LocationSize Size)
raw_ostreamoperator<< (raw_ostream &OS, const MemoryAccess &MA)
upward_defs_iterator upward_defs_begin (const MemoryAccessPair &Pair, DominatorTree &DT)
upward_defs_iterator upward_defs_end ()
iterator_range< upward_defs_iteratorupward_defs (const MemoryAccessPair &Pair, DominatorTree &DT)
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)
LLVM_ABI ModuleSummaryIndex buildModuleSummaryIndex (const Module &M, std::function< BlockFrequencyInfo *(const Function &F)> GetBFICallback, ProfileSummaryInfo *PSI, std::function< const StackSafetyInfo *(const Function &F)> GetSSICallback=[](const Function &F) -> const StackSafetyInfo *{ return nullptr;})
 Direct function to compute a ModuleSummaryIndex from a given module.
LLVM_ABI ModulePasscreateModuleSummaryIndexWrapperPass ()
LLVM_ABI ImmutablePasscreateImmutableModuleSummaryIndexWrapperPass (const ModuleSummaryIndex *Index)
LLVM_ABI bool mayHaveMemprofSummary (const CallBase *CB)
 Returns true if the instruction could have memprof metadata, used to ensure consistency between summary analysis and the ThinLTO backend processing.
LLVM_ABI bool mayContainIrreducibleControl (const Function &F, const LoopInfo *LI)
bool isCheckForZeroAndMulWithOverflow (Value *Op0, Value *Op1, bool IsAnd, Use *&Y)
 Match one of the patterns up to the select/logic op: Op0 = icmp ne i4 X, 0 Agg = call { i4, i1 } @llvm.
bool isCheckForZeroAndMulWithOverflow (Value *Op0, Value *Op1, bool IsAnd)
LLVM_ABI FunctionPasscreateLazyValueInfoPass ()
 createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.
LLVM_ABI FunctionPasscreateRegionInfoPass ()
LLVM_ABI FunctionPasscreatePostDomTree ()
template<class Tr>
raw_ostreamoperator<< (raw_ostream &OS, const RegionNodeBase< Tr > &Node)
 Print a RegionNode.
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)
LLVM_ABI FunctionPasscreateRegionViewerPass ()
LLVM_ABI FunctionPasscreateRegionOnlyViewerPass ()
LLVM_ABI FunctionPasscreateRegionPrinterPass ()
LLVM_ABI FunctionPasscreateRegionOnlyPrinterPass ()
void viewRegion (llvm::RegionInfo *RI)
 Open a viewer to display the GraphViz vizualization of the analysis result.
void viewRegion (const llvm::Function *F)
 Analyze the regions of a function and open its GraphViz visualization in a viewer.
void viewRegionOnly (llvm::RegionInfo *RI)
 Open a viewer to display the GraphViz vizualization of the analysis result.
void viewRegionOnly (const llvm::Function *F)
 Analyze the regions of a function and open its GraphViz visualization in a viewer.
template<class T>
bool isEmbeddedModelEvaluatorValid ()
template<>
bool isEmbeddedModelEvaluatorValid< NoopSavedModelImpl > ()
std::string formatCallSiteLocation (DebugLoc DLoc, const CallSiteFormat &Format)
 Get call site location as a string with the given format.
std::unique_ptr< InlineAdvisorgetReplayInlineAdvisor (Module &M, FunctionAnalysisManager &FAM, LLVMContext &Context, std::unique_ptr< InlineAdvisor > OriginalAdvisor, const ReplayInlinerSettings &ReplaySettings, bool EmitRemarks, InlineContext IC)
raw_ostreamoperator<< (raw_ostream &OS, const SCEV &S)
raw_ostreamoperator<< (raw_ostream &OS, const SCEVPredicate &P)
LLVM_ABI FunctionPasscreateSCEVAAWrapperPass ()
 Creates an instance of SCEVAAWrapperPass.
unsigned short computeExpressionSize (ArrayRef< const SCEV * > Args)
template<typename SV>
void visitAll (const SCEV *Root, SV &Visitor)
 Use SCEVTraversal to visit all nodes in the given expression tree.
template<typename PredTy>
bool SCEVExprContains (const SCEV *Root, PredTy Pred)
 Return true if any node in Root satisfies the predicate Pred.
LLVM_ABI const SCEVnormalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE, bool CheckInvertible=true)
 Normalize S to be post-increment for all loops present in Loops.
LLVM_ABI const SCEVnormalizeForPostIncUseIf (const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE)
 Normalize S for all add recurrence sub-expressions for which Pred returns true.
LLVM_ABI const SCEVdenormalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE)
 Denormalize S to be post-increment for all loops present in Loops.
LLVM_ABI ImmutablePasscreateScopedNoAliasAAWrapperPass ()
static raw_ostreamoperator<< (raw_ostream &OS, const BitVector &V)
raw_ostreamoperator<< (raw_ostream &OS, const StackLifetime::LiveRange &R)
bool needsParamAccessSummary (const Module &M)
void generateParamAccessSummary (ModuleSummaryIndex &Index)
LLVM_ABI ImmutablePasscreateTargetTransformInfoWrapperPass (TargetIRAnalysis TIRA)
 Create an analysis pass wrapper around a TTI object.
LLVM_ABI std::string tensorValueToString (const char *Buffer, const TensorSpec &Spec)
 For debugging.
LLVM_ABI std::optional< TensorSpecgetTensorSpecFromJSON (LLVMContext &Ctx, const json::Value &Value)
 Construct a TensorSpec from a JSON dictionary of the form: { "name": <string>, "port": <int>, "type": <string.
LLVM_ABI 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.
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.
ConstantgetPointerAtOffset (Constant *I, uint64_t Offset, Module &M, Constant *TopLevelGlobal=nullptr)
 Processes a Constant recursively looking into elements of arrays, structs and expressions to find a trivial pointer element that is located at the given offset (relative to the beginning of the whole outer Constant).
std::pair< Function *, Constant * > getFunctionAtVTableOffset (GlobalVariable *GV, uint64_t Offset, Module &M)
 Given a vtable and a specified offset, returns the function and the trivial pointer at the specified offset in pair iff the pointer at the specified offset is a function or an alias to a function.
void replaceRelativePointerUsersWithZero (Constant *C)
 Finds the same "relative pointer" pattern as described above, where the target is C, and replaces the entire pattern with a constant zero.
LLVM_ABI ValueemitGEPOffset (IRBuilderBase *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).
LLVM_ABI 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.
bool canTrackReturnsInterprocedurally (Function *F)
 Determine if the values of the given function's returns can be tracked interprocedurally.
bool canTrackGlobalVariableInterprocedurally (GlobalVariable *GV)
 Determine if the value maintained in the given global variable can be tracked interprocedurally.
LLVM_ABI void computeKnownBits (const Value *V, KnownBits &Known, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true, unsigned Depth=0)
 Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets.
LLVM_ABI KnownBits computeKnownBits (const Value *V, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true, unsigned Depth=0)
 Returns the known bits rather than passing by reference.
LLVM_ABI KnownBits computeKnownBits (const Value *V, const APInt &DemandedElts, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true, unsigned Depth=0)
 Returns the known bits rather than passing by reference.
LLVM_ABI KnownBits computeKnownBits (const Value *V, const APInt &DemandedElts, const SimplifyQuery &Q, unsigned Depth=0)
 Determine which bits of V are known to be either zero or one and return them.
LLVM_ABI KnownBits computeKnownBits (const Value *V, const SimplifyQuery &Q, unsigned Depth=0)
 Determine which bits of V are known to be either zero or one and return them.
LLVM_ABI void computeKnownBits (const Value *V, KnownBits &Known, const SimplifyQuery &Q, unsigned Depth=0)
LLVM_ABI void computeKnownBitsFromRangeMetadata (const MDNode &Ranges, KnownBits &Known)
 Compute known bits from the range metadata.
LLVM_ABI void computeKnownBitsFromContext (const Value *V, KnownBits &Known, const SimplifyQuery &Q, unsigned Depth=0)
 Merge bits known from context-dependent facts into Known.
LLVM_ABI KnownBits analyzeKnownBitsFromAndXorOr (const Operator *I, const KnownBits &KnownLHS, const KnownBits &KnownRHS, const SimplifyQuery &SQ, unsigned Depth=0)
 Using KnownBits LHS/RHS produce the known bits for logic op (and/xor/or).
LLVM_ABI void adjustKnownBitsForSelectArm (KnownBits &Known, Value *Cond, Value *Arm, bool Invert, const SimplifyQuery &Q, unsigned Depth=0)
 Adjust Known for the given select Arm to include information from the select Cond.
LLVM_ABI bool haveNoCommonBitsSet (const WithCache< const Value * > &LHSCache, const WithCache< const Value * > &RHSCache, const SimplifyQuery &SQ)
 Return true if LHS and RHS have no common bits set.
LLVM_ABI bool isKnownToBeAPowerOfTwo (const Value *V, const DataLayout &DL, bool OrZero=false, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true, unsigned Depth=0)
 Return true if the given value is known to have exactly one bit set when defined.
LLVM_ABI bool isKnownToBeAPowerOfTwo (const Value *V, bool OrZero, const SimplifyQuery &Q, unsigned Depth=0)
 Return true if the given value is known to have exactly one bit set when defined.
LLVM_ABI bool isOnlyUsedInZeroComparison (const Instruction *CxtI)
LLVM_ABI bool isOnlyUsedInZeroEqualityComparison (const Instruction *CxtI)
LLVM_ABI bool isKnownNonZero (const Value *V, const SimplifyQuery &Q, unsigned Depth=0)
 Return true if the given value is known to be non-zero when defined.
LLVM_ABI bool isKnownNegation (const Value *X, const Value *Y, bool NeedNSW=false, bool AllowPoison=true)
 Return true if the two given values are negation.
LLVM_ABI bool isKnownInversion (const Value *X, const Value *Y)
 Return true iff:
LLVM_ABI bool isKnownNonNegative (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Returns true if the give value is known to be non-negative.
LLVM_ABI bool isKnownPositive (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Returns true if the given value is known be positive (i.e.
LLVM_ABI bool isKnownNegative (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Returns true if the given value is known be negative (i.e.
LLVM_ABI bool isKnownNonEqual (const Value *V1, const Value *V2, const SimplifyQuery &SQ, unsigned Depth=0)
 Return true if the given values are known to be non-equal when defined.
LLVM_ABI bool MaskedValueIsZero (const Value *V, const APInt &Mask, const SimplifyQuery &SQ, unsigned Depth=0)
 Return true if 'V & Mask' is known to be zero.
LLVM_ABI unsigned ComputeNumSignBits (const Value *Op, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true, unsigned Depth=0)
 Return the number of times the sign bit of the register is replicated into the other bits.
LLVM_ABI unsigned ComputeMaxSignificantBits (const Value *Op, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, unsigned Depth=0)
 Get the upper bound on bit size for this Value Op as a signed integer.
LLVM_ABI Intrinsic::ID getIntrinsicForCallSite (const CallBase &CB, const TargetLibraryInfo *TLI)
 Map a call instruction to an intrinsic ID.
LLVM_ABI bool isSignBitCheck (ICmpInst::Predicate Pred, const APInt &RHS, bool &TrueIfSigned)
 Given an exploded icmp instruction, return true if the comparison only checks the sign bit.
LLVM_ABI KnownFPClass computeKnownFPClass (const Value *V, const APInt &DemandedElts, FPClassTest InterestedClasses, const SimplifyQuery &SQ, unsigned Depth=0)
 Determine which floating-point classes are valid for V, and return them in KnownFPClass bit sets.
LLVM_ABI KnownFPClass computeKnownFPClass (const Value *V, FPClassTest InterestedClasses, const SimplifyQuery &SQ, unsigned Depth=0)
LLVM_ABI KnownFPClass computeKnownFPClass (const Value *V, const DataLayout &DL, FPClassTest InterestedClasses=fcAllFlags, const TargetLibraryInfo *TLI=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true, unsigned Depth=0)
LLVM_ABI KnownFPClass computeKnownFPClass (const Value *V, const APInt &DemandedElts, FastMathFlags FMF, FPClassTest InterestedClasses, const SimplifyQuery &SQ, unsigned Depth=0)
 Wrapper to account for known fast math flags at the use instruction.
LLVM_ABI KnownFPClass computeKnownFPClass (const Value *V, FastMathFlags FMF, FPClassTest InterestedClasses, const SimplifyQuery &SQ, unsigned Depth=0)
LLVM_ABI bool cannotBeNegativeZero (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Return true if we can prove that the specified FP value is never equal to -0.0.
LLVM_ABI bool cannotBeOrderedLessThanZero (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Return true if we can prove that the specified FP value is either NaN or never less than -0.0.
LLVM_ABI bool isKnownNeverInfinity (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Return true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities.
LLVM_ABI bool isKnownNeverInfOrNaN (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Return true if the floating-point value can never contain a NaN or infinity.
LLVM_ABI bool isKnownNeverNaN (const Value *V, const SimplifyQuery &SQ, 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.
LLVM_ABI std::optional< boolcomputeKnownFPSignBit (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0)
 Return false if we can prove that the specified FP value's sign bit is 0.
LLVM_ABI bool canIgnoreSignBitOfZero (const Use &U)
 Return true if the sign bit of the FP value can be ignored by the user when the value is zero.
LLVM_ABI bool canIgnoreSignBitOfNaN (const Use &U)
 Return true if the sign bit of the FP value can be ignored by the user when the value is NaN.
LLVM_ABI ValueisBytewiseValue (Value *V, const DataLayout &DL)
 If the specified value can be set by repeating the same byte in memory, return the i8 value that it is represented with.
LLVM_ABI ValueFindInsertedValue (Value *V, ArrayRef< unsigned > idx_range, std::optional< BasicBlock::iterator > InsertBefore=std::nullopt)
 Given an aggregate 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 aggregate.
ValueGetPointerBaseWithConstantOffset (Value *Ptr, int64_t &Offset, const DataLayout &DL, bool AllowNonInbounds=true)
 Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset.
const ValueGetPointerBaseWithConstantOffset (const Value *Ptr, int64_t &Offset, const DataLayout &DL, bool AllowNonInbounds=true)
LLVM_ABI 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.
LLVM_ABI bool getConstantStringInfo (const Value *V, StringRef &Str, bool TrimAtNul=true)
 This function computes the length of a null-terminated C string pointed to by V.
LLVM_ABI 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'.
LLVM_ABI const ValuegetArgumentAliasingToReturnedPointer (const CallBase *Call, bool MustPreserveNullness)
 This function returns call pointer argument that is considered the same by aliasing rules.
ValuegetArgumentAliasingToReturnedPointer (CallBase *Call, bool MustPreserveNullness)
LLVM_ABI bool isIntrinsicReturningPointerAliasingArgumentWithoutCapturing (const CallBase *Call, bool MustPreserveNullness)
 {launder,strip}.invariant.group returns pointer that aliases its argument, and it only captures pointer by returning it.
LLVM_ABI const ValuegetUnderlyingObject (const Value *V, unsigned MaxLookup=MaxLookupSearchDepth)
 This method strips off any GEP address adjustments, pointer casts or llvm.threadlocal.address from the specified value V, returning the original object being addressed.
ValuegetUnderlyingObject (Value *V, unsigned MaxLookup=MaxLookupSearchDepth)
LLVM_ABI const ValuegetUnderlyingObjectAggressive (const Value *V)
 Like getUnderlyingObject(), but will try harder to find a single underlying object.
LLVM_ABI void getUnderlyingObjects (const Value *V, SmallVectorImpl< const Value * > &Objects, const LoopInfo *LI=nullptr, unsigned MaxLookup=MaxLookupSearchDepth)
 This method is similar to getUnderlyingObject except that it can look through phi and select instructions and return multiple objects.
LLVM_ABI bool getUnderlyingObjectsForCodeGen (const Value *V, SmallVectorImpl< Value * > &Objects)
 This is a wrapper around getUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences.
LLVM_ABI AllocaInstfindAllocaForValue (Value *V, bool OffsetZero=false)
 Returns unique alloca where the value comes from, or nullptr.
const AllocaInstfindAllocaForValue (const Value *V, bool OffsetZero=false)
LLVM_ABI bool onlyUsedByLifetimeMarkers (const Value *V)
 Return true if the only users of this pointer are lifetime markers.
LLVM_ABI bool onlyUsedByLifetimeMarkersOrDroppableInsts (const Value *V)
 Return true if the only users of this pointer are lifetime markers or droppable instructions.
LLVM_ABI bool isNotCrossLaneOperation (const Instruction *I)
 Return true if the instruction doesn't potentially cross vector lanes.
LLVM_ABI bool isSafeToSpeculativelyExecute (const Instruction *I, const Instruction *CtxI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr, bool UseVariableInfo=true, bool IgnoreUBImplyingAttrs=true)
 Return true if the instruction does not have any effects besides calculating the result and does not have undefined behavior.
bool isSafeToSpeculativelyExecute (const Instruction *I, BasicBlock::iterator CtxI, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr, bool UseVariableInfo=true, bool IgnoreUBImplyingAttrs=true)
bool isSafeToSpeculativelyExecuteWithVariableReplaced (const Instruction *I, bool IgnoreUBImplyingAttrs=true)
 Don't use information from its non-constant operands.
LLVM_ABI bool isSafeToSpeculativelyExecuteWithOpcode (unsigned Opcode, const Instruction *Inst, const Instruction *CtxI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr, bool UseVariableInfo=true, bool IgnoreUBImplyingAttrs=true)
 This returns the same result as isSafeToSpeculativelyExecute if Opcode is the actual opcode of Inst.
LLVM_ABI bool mayHaveNonDefUseDependency (const Instruction &I)
 Returns true if the result or effects of the given instructions I depend values not reachable through the def use graph.
LLVM_ABI bool isAssumeLikeIntrinsic (const Instruction *I)
 Return true if it is an intrinsic that cannot be speculated but also cannot trap.
LLVM_ABI bool isValidAssumeForContext (const Instruction *I, const Instruction *CxtI, const DominatorTree *DT=nullptr, bool AllowEphemerals=false)
 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.
LLVM_ABI OverflowResult computeOverflowForUnsignedMul (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ, bool IsNSW=false)
LLVM_ABI OverflowResult computeOverflowForSignedMul (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ)
LLVM_ABI OverflowResult computeOverflowForUnsignedAdd (const WithCache< const Value * > &LHS, const WithCache< const Value * > &RHS, const SimplifyQuery &SQ)
LLVM_ABI OverflowResult computeOverflowForSignedAdd (const WithCache< const Value * > &LHS, const WithCache< const Value * > &RHS, const SimplifyQuery &SQ)
LLVM_ABI OverflowResult computeOverflowForSignedAdd (const AddOperator *Add, const SimplifyQuery &SQ)
 This version also leverages the sign bit of Add if known.
LLVM_ABI OverflowResult computeOverflowForUnsignedSub (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ)
LLVM_ABI OverflowResult computeOverflowForSignedSub (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ)
LLVM_ABI bool isOverflowIntrinsicNoWrap (const WithOverflowInst *WO, const DominatorTree &DT)
 Returns true if the arithmetic part of the WO 's result is used only along the paths control dependent on the computation not overflowing, WO being an <op>.with.overflow intrinsic.
LLVM_ABI ConstantRange getVScaleRange (const Function *F, unsigned BitWidth)
 Determine the possible constant range of vscale with the given bit width, based on the vscale_range function attribute.
LLVM_ABI ConstantRange computeConstantRange (const Value *V, bool ForSigned, bool UseInstrInfo=true, AssumptionCache *AC=nullptr, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr, unsigned Depth=0)
 Determine the possible constant range of an integer or vector of integer value.
LLVM_ABI ConstantRange computeConstantRangeIncludingKnownBits (const WithCache< const Value * > &V, bool ForSigned, const SimplifyQuery &SQ)
 Combine constant ranges from computeConstantRange() and computeKnownBits().
LLVM_ABI 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).
LLVM_ABI bool isGuaranteedToTransferExecutionToSuccessor (const BasicBlock *BB)
 Returns true if this block does not contain a potential implicit exit.
LLVM_ABI bool isGuaranteedToTransferExecutionToSuccessor (BasicBlock::const_iterator Begin, BasicBlock::const_iterator End, unsigned ScanLimit=32)
 Return true if every instruction in the range (Begin, End) is guaranteed to transfer execution to its static successor.
LLVM_ABI bool isGuaranteedToTransferExecutionToSuccessor (iterator_range< BasicBlock::const_iterator > Range, unsigned ScanLimit=32)
 Same as previous, but with range expressed via iterator_range.
LLVM_ABI 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.
LLVM_ABI bool propagatesPoison (const Use &PoisonOp)
 Return true if PoisonOp's user yields poison or raises UB if its operand PoisonOp is poison.
LLVM_ABI bool intrinsicPropagatesPoison (Intrinsic::ID IID)
 Return whether this intrinsic propagates poison for all operands.
LLVM_ABI bool mustTriggerUB (const Instruction *I, const SmallPtrSetImpl< const Value * > &KnownPoison)
 Return true if the given instruction must trigger undefined behavior when I is executed with any operands which appear in KnownPoison holding a poison value at the point of execution.
LLVM_ABI bool programUndefinedIfUndefOrPoison (const Instruction *Inst)
 Return true if this function can prove that if Inst is executed and yields a poison value or undef bits, then that will trigger undefined behavior.
LLVM_ABI bool programUndefinedIfPoison (const Instruction *Inst)
LLVM_ABI bool canCreateUndefOrPoison (const Operator *Op, bool ConsiderFlagsAndMetadata=true)
 canCreateUndefOrPoison returns true if Op can create undef or poison from non-undef & non-poison operands.
LLVM_ABI bool canCreatePoison (const Operator *Op, bool ConsiderFlagsAndMetadata=true)
LLVM_ABI bool impliesPoison (const Value *ValAssumedPoison, const Value *V)
 Return true if V is poison given that ValAssumedPoison is already poison.
LLVM_ABI bool isGuaranteedNotToBeUndefOrPoison (const Value *V, AssumptionCache *AC=nullptr, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr, unsigned Depth=0)
 Return true if this function can prove that V does not have undef bits and is never poison.
LLVM_ABI bool isGuaranteedNotToBePoison (const Value *V, AssumptionCache *AC=nullptr, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr, unsigned Depth=0)
 Returns true if V cannot be poison, but may be undef.
bool isGuaranteedNotToBePoison (const Value *V, AssumptionCache *AC, BasicBlock::iterator CtxI, const DominatorTree *DT=nullptr, unsigned Depth=0)
LLVM_ABI bool isGuaranteedNotToBeUndef (const Value *V, AssumptionCache *AC=nullptr, const Instruction *CtxI=nullptr, const DominatorTree *DT=nullptr, unsigned Depth=0)
 Returns true if V cannot be undef, but may be poison.
LLVM_ABI bool mustExecuteUBIfPoisonOnPathTo (Instruction *Root, Instruction *OnPathTo, DominatorTree *DT)
 Return true if undefined behavior would provable be executed on the path to OnPathTo if Root produced a posion result.
LLVM_ABI std::optional< std::pair< CmpPredicate, Constant * > > getFlippedStrictnessPredicateAndConstant (CmpPredicate Pred, Constant *C)
 Convert an integer comparison with a constant RHS into an equivalent form with the strictness flipped predicate.
LLVM_ABI 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.
SelectPatternResult matchSelectPattern (const Value *V, const Value *&LHS, const Value *&RHS)
LLVM_ABI SelectPatternResult matchDecomposedSelectPattern (CmpInst *CmpI, Value *TrueVal, Value *FalseVal, Value *&LHS, Value *&RHS, FastMathFlags FMF=FastMathFlags(), Instruction::CastOps *CastOp=nullptr, unsigned Depth=0)
 Determine the pattern that a select with the given compare as its predicate and given values as its true/false operands would match.
LLVM_ABI SelectPatternResult getSelectPattern (CmpInst::Predicate Pred, SelectPatternNaNBehavior NaNBehavior=SPNB_NA, bool Ordered=false)
 Determine the pattern for predicate X Pred Y ? X : Y.
LLVM_ABI CmpInst::Predicate getMinMaxPred (SelectPatternFlavor SPF, bool Ordered=false)
 Return the canonical comparison predicate for the specified minimum/maximum flavor.
LLVM_ABI Intrinsic::ID getMinMaxIntrinsic (SelectPatternFlavor SPF)
 Convert given SPF to equivalent min/max intrinsic.
LLVM_ABI SelectPatternFlavor getInverseMinMaxFlavor (SelectPatternFlavor SPF)
 Return the inverse minimum/maximum flavor of the specified flavor.
LLVM_ABI Intrinsic::ID getInverseMinMaxIntrinsic (Intrinsic::ID MinMaxID)
LLVM_ABI APInt getMinMaxLimit (SelectPatternFlavor SPF, unsigned BitWidth)
 Return the minimum or maximum constant value for the specified integer min/max flavor and type.
LLVM_ABI std::pair< Intrinsic::ID, boolcanConvertToMinOrMaxIntrinsic (ArrayRef< Value * > VL)
 Check if the values in VL are select instructions that can be converted to a min or max (vector) intrinsic.
LLVM_ABI bool matchSimpleRecurrence (const PHINode *P, BinaryOperator *&BO, Value *&Start, Value *&Step)
 Attempt to match a simple first order recurrence cycle of the form: iv = phi Ty [Start, Entry], [Inc, backedge] inc = binop iv, step OR iv = phi Ty [Start, Entry], [Inc, backedge] inc = binop step, iv.
LLVM_ABI bool matchSimpleRecurrence (const BinaryOperator *I, PHINode *&P, Value *&Start, Value *&Step)
 Analogous to the above, but starting from the binary operator.
LLVM_ABI bool matchSimpleBinaryIntrinsicRecurrence (const IntrinsicInst *I, PHINode *&P, Value *&Init, Value *&OtherOp)
 Attempt to match a simple value-accumulating recurrence of the form: llvm.intrinsic.acc = phi Ty [Init, Entry], [llvm.intrinsic, backedge] llvm.intrinsic = call Ty @llvm.intrinsic(OtherOp, llvm.intrinsic.acc) OR llvm.intrinsic.acc = phi Ty [Init, Entry], [llvm.intrinsic, backedge] llvm.intrinsic = call Ty @llvm.intrinsic(llvm.intrinsic.acc, OtherOp)
LLVM_ABI std::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.
LLVM_ABI std::optional< boolisImpliedCondition (const Value *LHS, CmpPredicate RHSPred, const Value *RHSOp0, const Value *RHSOp1, const DataLayout &DL, bool LHSIsTrue=true, unsigned Depth=0)
LLVM_ABI std::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.
LLVM_ABI std::optional< boolisImpliedByDomCondition (CmpPredicate Pred, const Value *LHS, const Value *RHS, const Instruction *ContextI, const DataLayout &DL)
LLVM_ABI void findValuesAffectedByCondition (Value *Cond, bool IsAssume, function_ref< void(Value *)> InsertAffected)
 Call InsertAffected on all Values whose known bits / value may be affected by the condition Cond.
LLVM_ABI ValuestripNullTest (Value *V)
 Returns the inner value X if the expression has the form f(X) where f(X) == 0 if and only if X == 0, otherwise returns nullptr.
LLVM_ABI const ValuestripNullTest (const Value *V)
LLVM_ABI bool isTriviallyVectorizable (Intrinsic::ID ID)
 Identify if the intrinsic is trivially vectorizable.
LLVM_ABI bool isTriviallyScalarizable (Intrinsic::ID ID, const TargetTransformInfo *TTI)
 Identify if the intrinsic is trivially scalarizable.
LLVM_ABI bool isVectorIntrinsicWithScalarOpAtArg (Intrinsic::ID ID, unsigned ScalarOpdIdx, const TargetTransformInfo *TTI)
 Identifies if the vector form of the intrinsic has a scalar operand.
LLVM_ABI bool isVectorIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID, int OpdIdx, const TargetTransformInfo *TTI)
 Identifies if the vector form of the intrinsic is overloaded on the type of the operand at index OpdIdx, or on the return type if OpdIdx is -1.
LLVM_ABI bool isVectorIntrinsicWithStructReturnOverloadAtField (Intrinsic::ID ID, int RetIdx, const TargetTransformInfo *TTI)
 Identifies if the vector form of the intrinsic that returns a struct is overloaded at the struct element index RetIdx.
LLVM_ABI Intrinsic::ID getVectorIntrinsicIDForCall (const CallInst *CI, const TargetLibraryInfo *TLI)
 Returns intrinsic ID for call.
LLVM_ABI unsigned getInterleaveIntrinsicFactor (Intrinsic::ID ID)
 Returns the corresponding factor of llvm.vector.interleaveN intrinsics.
LLVM_ABI unsigned getDeinterleaveIntrinsicFactor (Intrinsic::ID ID)
 Returns the corresponding factor of llvm.vector.deinterleaveN intrinsics.
LLVM_ABI VectorTypegetDeinterleavedVectorType (IntrinsicInst *DI)
 Given a deinterleaveN intrinsic, return the (narrow) vector type of each factor.
LLVM_ABI 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.
LLVM_ABI int getSplatIndex (ArrayRef< int > Mask)
 If all non-negative Mask elements are the same value, return that value.
LLVM_ABI ValuegetSplatValue (const Value *V)
 Get splat value if the input is a splat vector or return nullptr.
LLVM_ABI bool isSplatValue (const Value *V, int Index=-1, unsigned Depth=0)
 Return true if each element of the vector value V is poisoned or equal to every other non-poisoned element.
LLVM_ABI bool getShuffleDemandedElts (int SrcWidth, ArrayRef< int > Mask, const APInt &DemandedElts, APInt &DemandedLHS, APInt &DemandedRHS, bool AllowUndefElts=false)
 Transform a shuffle mask's output demanded element mask into demanded element masks for the 2 operands, returns false if the mask isn't valid.
LLVM_ABI bool isMaskedSlidePair (ArrayRef< int > Mask, int NumElts, std::array< std::pair< int, int >, 2 > &SrcInfo)
 Does this shuffle mask represent either one slide shuffle or a pair of two slide shuffles, combined with a select on some constant vector mask?
LLVM_ABI void narrowShuffleMaskElts (int Scale, ArrayRef< int > Mask, SmallVectorImpl< int > &ScaledMask)
 Replace each shuffle mask index with the scaled sequential indices for an equivalent mask of narrowed elements.
LLVM_ABI bool widenShuffleMaskElts (int Scale, ArrayRef< int > Mask, SmallVectorImpl< int > &ScaledMask)
 Try to transform a shuffle mask by replacing elements with the scaled index for an equivalent mask of widened elements.
LLVM_ABI bool widenShuffleMaskElts (ArrayRef< int > M, SmallVectorImpl< int > &NewMask)
 A variant of the previous method which is specialized for Scale=2, and treats -1 as undef and allows widening when a wider element is partially undef in the narrow form of the mask.
LLVM_ABI bool scaleShuffleMaskElts (unsigned NumDstElts, ArrayRef< int > Mask, SmallVectorImpl< int > &ScaledMask)
 Attempt to narrow/widen the Mask shuffle mask to the NumDstElts target width.
LLVM_ABI void getShuffleMaskWithWidestElts (ArrayRef< int > Mask, SmallVectorImpl< int > &ScaledMask)
 Repetitively apply widenShuffleMaskElts() for as long as it succeeds, to get the shuffle mask with widest possible elements.
LLVM_ABI void processShuffleMasks (ArrayRef< int > Mask, unsigned NumOfSrcRegs, unsigned NumOfDestRegs, unsigned NumOfUsedRegs, function_ref< void()> NoInputAction, function_ref< void(ArrayRef< int >, unsigned, unsigned)> SingleInputAction, function_ref< void(ArrayRef< int >, unsigned, unsigned, bool)> ManyInputsAction)
 Splits and processes shuffle mask depending on the number of input and output registers.
LLVM_ABI void getHorizDemandedEltsForFirstOperand (unsigned VectorBitWidth, const APInt &DemandedElts, APInt &DemandedLHS, APInt &DemandedRHS)
 Compute the demanded elements mask of horizontal binary operations.
LLVM_ABI MapVector< Instruction *, uint64_tcomputeMinimumValueSizes (ArrayRef< BasicBlock * > Blocks, DemandedBits &DB, const TargetTransformInfo *TTI=nullptr)
 Compute a map of integer instructions to their minimum legal type size.
LLVM_ABI MDNodeuniteAccessGroups (MDNode *AccGroups1, MDNode *AccGroups2)
 Compute the union of two access-group lists.
LLVM_ABI MDNodeintersectAccessGroups (const Instruction *Inst1, const Instruction *Inst2)
 Compute the access-group list of access groups that Inst1 and Inst2 are both in.
LLVM_ABI void getMetadataToPropagate (Instruction *Inst, SmallVectorImpl< std::pair< unsigned, MDNode * > > &Metadata)
 Add metadata from Inst to Metadata, if it can be preserved after vectorization.
LLVM_ABI InstructionpropagateMetadata (Instruction *I, ArrayRef< Value * > VL)
 Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group, MD_mmra].
LLVM_ABI ConstantcreateBitMaskForGaps (IRBuilderBase &Builder, unsigned VF, const InterleaveGroup< Instruction > &Group)
 Create a mask that filters the members of an interleave group where there are gaps.
LLVM_ABI llvm::SmallVector< int, 16 > createReplicatedMask (unsigned ReplicationFactor, unsigned VF)
 Create a mask with replicated elements.
LLVM_ABI llvm::SmallVector< int, 16 > createInterleaveMask (unsigned VF, unsigned NumVecs)
 Create an interleave shuffle mask.
LLVM_ABI llvm::SmallVector< int, 16 > createStrideMask (unsigned Start, unsigned Stride, unsigned VF)
 Create a stride shuffle mask.
LLVM_ABI llvm::SmallVector< int, 16 > createSequentialMask (unsigned Start, unsigned NumInts, unsigned NumUndefs)
 Create a sequential shuffle mask.
LLVM_ABI llvm::SmallVector< int, 16 > createUnaryMask (ArrayRef< int > Mask, unsigned NumElts)
 Given a shuffle mask for a binary shuffle, create the equivalent shuffle mask assuming both operands are identical.
LLVM_ABI ValueconcatenateVectors (IRBuilderBase &Builder, ArrayRef< Value * > Vecs)
 Concatenate a list of vectors.
LLVM_ABI bool maskIsAllZeroOrUndef (Value *Mask)
 Given a mask vector of i1, Return true if all of the elements of this predicate mask are known to be false or undef.
LLVM_ABI bool maskIsAllOneOrUndef (Value *Mask)
 Given a mask vector of i1, Return true if all of the elements of this predicate mask are known to be true or undef.
LLVM_ABI bool maskContainsAllOneOrUndef (Value *Mask)
 Given a mask vector of i1, Return true if any of the elements of this predicate mask are known to be true or undef.
LLVM_ABI APInt possiblyDemandedEltsInMask (Value *Mask)
 Given a mask vector of the form <Y x i1>, return an APInt (of bitwidth Y) for each lane which may be active.
LLVM_ABI std::unique_ptr< ModuleparseAssemblyFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr)
 This function is a main interface to the LLVM Assembly Parser.
LLVM_ABI std::unique_ptr< ModuleparseAssemblyString (StringRef AsmString, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr)
 The function is a secondary interface to the LLVM Assembly Parser.
LLVM_ABI ParsedModuleAndIndex parseAssemblyFileWithIndex (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, DataLayoutCallbackTy DataLayoutCallback=[](StringRef, StringRef) { return std::nullopt;})
 This function is a main interface to the LLVM Assembly Parser.
LLVM_ABI ParsedModuleAndIndex parseAssemblyFileWithIndexNoUpgradeDebugInfo (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots, DataLayoutCallbackTy DataLayoutCallback)
 Only for use in llvm-as for testing; this does not produce a valid module.
LLVM_ABI std::unique_ptr< ModuleSummaryIndexparseSummaryIndexAssemblyFile (StringRef Filename, SMDiagnostic &Err)
 This function is a main interface to the LLVM Assembly Parser.
LLVM_ABI std::unique_ptr< ModuleSummaryIndexparseSummaryIndexAssemblyString (StringRef AsmString, SMDiagnostic &Err)
 The function is a secondary interface to the LLVM Assembly Parser.
LLVM_ABI std::unique_ptr< ModuleparseAssembly (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, DataLayoutCallbackTy DataLayoutCallback=[](StringRef, StringRef) { return std::nullopt;})
 parseAssemblyFile and parseAssemblyString are wrappers around this function.
LLVM_ABI ParsedModuleAndIndex parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr)
 Parse LLVM Assembly including the summary index from a MemoryBuffer.
LLVM_ABI std::unique_ptr< ModuleSummaryIndexparseSummaryIndexAssembly (MemoryBufferRef F, SMDiagnostic &Err)
 Parse LLVM Assembly for summary index from a MemoryBuffer.
LLVM_ABI bool parseAssemblyInto (MemoryBufferRef F, Module *M, ModuleSummaryIndex *Index, SMDiagnostic &Err, SlotMapping *Slots=nullptr, DataLayoutCallbackTy DataLayoutCallback=[](StringRef, StringRef) { return std::nullopt;})
 This function is the low-level interface to the LLVM Assembly Parser.
LLVM_ABI ConstantparseConstantValue (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr)
 Parse a type and a constant value in the given string.
LLVM_ABI TypeparseType (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr)
 Parse a type in the given string.
LLVM_ABI TypeparseTypeAtBeginning (StringRef Asm, unsigned &Read, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr)
 Parse a string Asm that starts with a type.
LLVM_ABI DIExpressionparseDIExpressionBodyAtBeginning (StringRef Asm, unsigned &Read, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots)
LLVM_ABI file_magic identify_magic (StringRef magic)
 Identify the type of a binary file based on how magical it is.
LLVM_ABI std::error_code identify_magic (const Twine &path, file_magic &result)
 Get and identify path's type based on its content.
LLVM_ABI std::error_code errorToErrorCodeAndEmitErrors (LLVMContext &Ctx, Error Err)
template<typename T>
ErrorOr< TexpectedToErrorOrAndEmitErrors (LLVMContext &Ctx, Expected< T > Val)
LLVM_ABI Expected< BitcodeFileContentsgetBitcodeFileContents (MemoryBufferRef Buffer)
 Returns the contents of a bitcode file.
LLVM_ABI Expected< std::vector< BitcodeModule > > getBitcodeModuleList (MemoryBufferRef Buffer)
 Returns a list of modules in the specified bitcode buffer.
LLVM_ABI Expected< std::unique_ptr< Module > > getLazyBitcodeModule (MemoryBufferRef Buffer, LLVMContext &Context, bool ShouldLazyLoadMetadata=false, bool IsImporting=false, ParserCallbacks Callbacks={})
 Read the header of the specified bitcode buffer and prepare for lazy deserialization of function bodies.
LLVM_ABI Expected< std::unique_ptr< Module > > getOwningLazyBitcodeModule (std::unique_ptr< MemoryBuffer > &&Buffer, LLVMContext &Context, bool ShouldLazyLoadMetadata=false, bool IsImporting=false, ParserCallbacks Callbacks={})
 Like getLazyBitcodeModule, except that the module takes ownership of the memory buffer if successful.
LLVM_ABI Expected< std::string > getBitcodeTargetTriple (MemoryBufferRef Buffer)
 Read the header of the specified bitcode buffer and extract just the triple information.
LLVM_ABI Expected< boolisBitcodeContainingObjCCategory (MemoryBufferRef Buffer)
 Return true if Buffer contains a bitcode file with ObjC code (category or class) in it.
LLVM_ABI Expected< std::string > getBitcodeProducerString (MemoryBufferRef Buffer)
 Read the header of the specified bitcode buffer and extract just the producer string information.
LLVM_ABI Expected< std::unique_ptr< Module > > parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext &Context, ParserCallbacks Callbacks={})
 Read the specified bitcode file, returning the module.
LLVM_ABI Expected< BitcodeLTOInfogetBitcodeLTOInfo (MemoryBufferRef Buffer)
 Returns LTO information for the specified bitcode file.
LLVM_ABI Expected< std::unique_ptr< ModuleSummaryIndex > > getModuleSummaryIndex (MemoryBufferRef Buffer)
 Parse the specified bitcode buffer, returning the module summary index.
LLVM_ABI Error readModuleSummaryIndex (MemoryBufferRef Buffer, ModuleSummaryIndex &CombinedIndex)
 Parse the specified bitcode buffer and merge the index into CombinedIndex.
LLVM_ABI 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.
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.
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).
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.
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.
LLVM_ABI APInt readWideAPInt (ArrayRef< uint64_t > Vals, unsigned TypeBits)
LLVM_ABI const std::error_category & BitcodeErrorCategory ()
std::error_code make_error_code (BitcodeError E)
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI void writeIndexToFile (const ModuleSummaryIndex &Index, raw_ostream &Out, const ModuleToSummariesForIndexTy *ModuleToSummariesForIndex=nullptr, const GVSummaryPtrSet *DecSummaries=nullptr)
 Write the specified module summary index to the given raw output stream, where it will be written in a new bitcode block.
LLVM_ABI void embedBitcodeInModule (Module &M, MemoryBufferRef Buf, bool EmbedBitcode, bool EmbedCmdline, const std::vector< uint8_t > &CmdArgs)
 If EmbedBitcode is set, save a copy of the llvm IR as data in the __LLVM,__bitcode section (.llvmbc on non-MacOS).
LLVM_ABI ModulePasscreateBitcodeWriterPass (raw_ostream &Str, bool ShouldPreserveUseListOrder=false)
 Create and return a pass that writes the module to the specified ostream.
LLVM_ABI bool isBitcodeWriterPass (Pass *P)
 Check whether a pass is a BitcodeWriterPass.
LLVM_ABI std::string getCodeGenDataSectionName (CGDataSectKind CGSK, Triple::ObjectFormatType OF, bool AddSegmentInfo=true)
LLVM_ABI const std::error_category & cgdata_category ()
std::error_code make_error_code (cgdata_error E)
LLVM_ABI 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.
LLVM_ABI void emitDWARF5AccelTable (AsmPrinter *Asm, DWARF5AccelTable &Contents, const DwarfDebug &DD, ArrayRef< std::unique_ptr< DwarfCompileUnit > > CUs)
LLVM_ABI void emitDWARF5AccelTable (AsmPrinter *Asm, DWARF5AccelTable &Contents, ArrayRef< std::variant< MCSymbol *, uint64_t > > CUs, llvm::function_ref< std::optional< DWARF5AccelTable::UnitIndexAndEncoding >(const DWARF5AccelTableData &)> getIndexForEntry)
 Emit a DWARFv5 Accelerator Table consisting of entries in the specified AccelTable.
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.
unsigned ComputeLinearIndex (Type *Ty, ArrayRef< unsigned > Indices, unsigned CurIndex=0)
void ComputeValueTypes (const DataLayout &DL, Type *Ty, SmallVectorImpl< Type * > &Types, SmallVectorImpl< TypeSize > *Offsets=nullptr, TypeSize StartingOffset=TypeSize::getZero())
 Given an LLVM IR type, compute non-aggregate subtypes.
void ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< EVT > *MemVTs, SmallVectorImpl< TypeSize > *Offsets=nullptr, TypeSize StartingOffset=TypeSize::getZero())
 ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.
void ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< EVT > *MemVTs, SmallVectorImpl< uint64_t > *FixedOffsets, uint64_t StartingOffset)
void ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< TypeSize > *Offsets=nullptr, TypeSize StartingOffset=TypeSize::getZero())
 Variant of ComputeValueVTs that don't produce memory VTs.
void ComputeValueVTs (const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< uint64_t > *FixedOffsets, uint64_t StartingOffset)
void computeValueLLTs (const DataLayout &DL, Type &Ty, SmallVectorImpl< LLT > &ValueTys, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0)
 computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs that represent all the individual underlying non-aggregate types that comprise it.
GlobalValueExtractTypeInfo (Value *V)
 ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
ISD::CondCode getFCmpCondCode (FCmpInst::Predicate Pred)
 getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point condition code.
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.
ISD::CondCode getICmpCondCode (ICmpInst::Predicate Pred)
 getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition code.
ICmpInst::Predicate getICmpCondCode (ISD::CondCode Pred)
 getICmpCondCode - Return the LLVM IR integer condition code corresponding to the given ISD integer condition code.
bool isInTailCallPosition (const CallBase &Call, const TargetMachine &TM, bool ReturnsFirstArg=false)
 Test if the given instruction is in a position to be optimized with a tail-call.
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.
bool returnTypeIsEligibleForTailCall (const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI, bool ReturnsFirstArg=false)
 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.
bool funcReturnsFirstArgOfCall (const CallInst &CI)
 Returns true if the parent of CI returns CI's first argument after calling CI.
DenseMap< const MachineBasicBlock *, int > getEHScopeMembership (const MachineFunction &MF)
AntiDepBreakercreateAggressiveAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI, TargetSubtargetInfo::RegClassVector &CriticalPathRCs)
AntiDepBreakercreateCriticalAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI)
bool expandAtomicRMWToCmpXchg (AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg)
 Expand an atomic RMW instruction into a loop utilizing cmpxchg.
ImmutablePasscreateBasicBlockSectionsProfileReaderWrapperPass (const MemoryBuffer *Buf)
void sortBasicBlocksAndUpdateBranches (MachineFunction &MF, MachineBasicBlockComparator MBBCmp)
void avoidZeroOffsetLandingPad (MachineFunction &MF)
bool hasInstrProfHashMismatch (MachineFunction &MF)
 This checks if the source of this function has drifted since this binary was profiled previously.
static float normalizeSpillWeight (float UseDefFreq, unsigned Size, unsigned NumInstr)
 Normalize the spill weight of a live interval.
MachineBasicBlock::iterator findSplitPointForStackProtector (MachineBasicBlock *BB, const TargetInstrInfo &TII)
 Find the split point at which to splice the end of BB into its success stack protector check machine basic block.
FPClassTest invertFPClassTestIfSimpler (FPClassTest Test, bool UseFCmp)
 Evaluates if the specified FP class test is better performed as the inverse (i.e.
void salvageDebugInfoForDbgValue (const MachineRegisterInfo &MRI, MachineInstr &MI, ArrayRef< MachineOperand * > DbgUsers)
 Assuming the instruction MI is going to be deleted, attempt to salvage debug users of MI by writing the effect of MI in a DIExpression.
CodeModel::Model getEffectiveCodeModel (std::optional< CodeModel::Model > CM, CodeModel::Model Default)
 Helper method for getting the code model, returning Default if CM does not have a value.
template<class CostType>
const CostTblEntryT< CostType > * CostTableLookup (ArrayRef< CostTblEntryT< CostType > > Tbl, int ISD, MVT Ty)
 Find in cost table.
template<size_t N, class CostType>
const CostTblEntryT< CostType > * CostTableLookup (const CostTblEntryT< CostType >(&Table)[N], int ISD, MVT Ty)
template<class CostType>
const TypeConversionCostTblEntryT< CostType > * ConvertCostTableLookup (ArrayRef< TypeConversionCostTblEntryT< CostType > > Tbl, int ISD, MVT Dst, MVT Src)
 Find in type conversion cost table.
template<size_t N, class CostType>
const TypeConversionCostTblEntryT< CostType > * ConvertCostTableLookup (const TypeConversionCostTblEntryT< CostType >(&Table)[N], int ISD, MVT Dst, MVT Src)
void calculateDbgEntityHistory (const MachineFunction *MF, const TargetRegisterInfo *TRI, DbgValueHistoryMap &DbgValues, DbgLabelInstrMap &DbgLabels)
VPExpansionDetails expandVectorPredicationIntrinsic (VPIntrinsic &VPI, const TargetTransformInfo &TTI)
 Expand a vector predication intrinsic.
LLVM_ABI std::unique_ptr< CSEConfigBasegetStandardCSEConfigForOpt (CodeGenOptLevel Level)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, LegacyLegalizeActions::LegacyLegalizeAction Action)
LLVM_ABI LegalizerHelper::LegalizeResult createLibcall (MachineIRBuilder &MIRBuilder, const char *Name, const CallLowering::ArgInfo &Result, ArrayRef< CallLowering::ArgInfo > Args, CallingConv::ID CC, LostDebugLocObserver &LocObserver, MachineInstr *MI=nullptr)
 Helper function that creates a libcall to the given Name using the given calling convention CC.
LLVM_ABI LegalizerHelper::LegalizeResult createLibcall (MachineIRBuilder &MIRBuilder, RTLIB::Libcall Libcall, const CallLowering::ArgInfo &Result, ArrayRef< CallLowering::ArgInfo > Args, LostDebugLocObserver &LocObserver, MachineInstr *MI=nullptr)
 Helper function that creates the given libcall.
LLVM_ABI LegalizerHelper::LegalizeResult createMemLibcall (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, MachineInstr &MI, LostDebugLocObserver &LocObserver)
 Create a libcall to memcpy et al.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, LegalizeActions::LegalizeAction Action)
const MachineInstrmachineFunctionIsIllegal (const MachineFunction &MF)
 Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise.
std::tuple< Register, FPClassTest, FPClassTestfcmpImpliesClass (CmpInst::Predicate Pred, const MachineFunction &MF, Register LHS, Register RHS, bool LookThroughSrc=true)
 Compute the possible floating-point classes that LHS could be based on fcmp \Pred LHS, RHS.
LLVM_ABI Register constrainRegToClass (MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, Register Reg, const TargetRegisterClass &RegClass)
 Try to constrain Reg to the specified register class.
LLVM_ABI Register constrainOperandRegClass (const MachineFunction &MF, const TargetRegisterInfo &TRI, MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, MachineInstr &InsertPt, const TargetRegisterClass &RegClass, MachineOperand &RegMO)
 Constrain the Register operand OpIdx, so that it is now constrained to the TargetRegisterClass passed as an argument (RegClass).
LLVM_ABI Register constrainOperandRegClass (const MachineFunction &MF, const TargetRegisterInfo &TRI, MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, MachineInstr &InsertPt, const MCInstrDesc &II, MachineOperand &RegMO, unsigned OpIdx)
 Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc II.
LLVM_ABI 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.
LLVM_ABI bool canReplaceReg (Register DstReg, Register SrcReg, MachineRegisterInfo &MRI)
 Check if DstReg can be replaced with SrcReg depending on the register constraints.
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI void reportGISelFailure (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, const char *PassName, StringRef Msg, const MachineInstr &MI)
LLVM_ABI void reportGISelWarning (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, MachineOptimizationRemarkMissed &R)
 Report an ISel warning as a missed optimization remark to the LLVMContext's diagnostic stream.
LLVM_ABI unsigned getInverseGMinMaxOpcode (unsigned MinMaxOpc)
 Returns the inverse opcode of MinMaxOpc, which is a generic min/max opcode like G_SMIN.
LLVM_ABI std::optional< APIntgetIConstantVRegVal (Register VReg, const MachineRegisterInfo &MRI)
 If VReg is defined by a G_CONSTANT, return the corresponding value.
LLVM_ABI std::optional< int64_t > getIConstantVRegSExtVal (Register VReg, const MachineRegisterInfo &MRI)
 If VReg is defined by a G_CONSTANT fits in int64_t returns it.
LLVM_ABI const APIntgetIConstantFromReg (Register VReg, const MachineRegisterInfo &MRI)
 VReg is defined by a G_CONSTANT, return the corresponding value.
LLVM_ABI std::optional< ValueAndVReggetIConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs=true)
 If VReg is defined by a statically evaluable chain of instructions rooted on a G_CONSTANT returns its APInt value and def register.
LLVM_ABI std::optional< ValueAndVReggetAnyConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs=true, bool LookThroughAnyExt=false)
 If VReg is defined by a statically evaluable chain of instructions rooted on a G_CONSTANT or G_FCONSTANT returns its value as APInt and def register.
LLVM_ABI std::optional< FPValueAndVReggetFConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs=true)
 If VReg is defined by a statically evaluable chain of instructions rooted on a G_FCONSTANT returns its APFloat value and def register.
LLVM_ABI const ConstantFPgetConstantFPVRegVal (Register VReg, const MachineRegisterInfo &MRI)
LLVM_ABI MachineInstrgetOpcodeDef (unsigned Opcode, Register Reg, const MachineRegisterInfo &MRI)
 See if Reg is defined by an single def instruction that is Opcode.
LLVM_ABI std::optional< DefinitionAndSourceRegistergetDefSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI)
 Find the def instruction for Reg, and underlying value Register folding away any copies.
LLVM_ABI MachineInstrgetDefIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI)
 Find the def instruction for Reg, folding away any trivial copies.
LLVM_ABI Register getSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI)
 Find the source register for Reg, folding away any trivial copies.
LLVM_ABI void extractParts (Register Reg, LLT Ty, int NumParts, SmallVectorImpl< Register > &VRegs, MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 Helper function to split a wide generic register into bitwise blocks with the given Type (which implies the number of blocks needed).
LLVM_ABI bool extractParts (Register Reg, LLT RegTy, LLT MainTy, LLT &LeftoverTy, SmallVectorImpl< Register > &VRegs, SmallVectorImpl< Register > &LeftoverVRegs, MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 Version which handles irregular splits.
LLVM_ABI void extractVectorParts (Register Reg, unsigned NumElts, SmallVectorImpl< Register > &VRegs, MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI)
 Version which handles irregular sub-vector splits.
template<class T>
TgetOpcodeDef (Register Reg, const MachineRegisterInfo &MRI)
 See if Reg is defined by an single def instruction of type T Also try to do trivial folding if it's a COPY with same types.
LLVM_ABI APFloat getAPFloatFromSize (double Val, unsigned Size)
 Returns an APFloat from Val converted to the appropriate size.
LLVM_ABI void getSelectionDAGFallbackAnalysisUsage (AnalysisUsage &AU)
 Modify analysis usage so it preserves passes required for the SelectionDAG fallback.
LLVM_ABI std::optional< APIntConstantFoldBinOp (unsigned Opcode, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< APFloatConstantFoldFPBinOp (unsigned Opcode, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI)
LLVM_ABI SmallVector< APIntConstantFoldVectorBinop (unsigned Opcode, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI)
 Tries to constant fold a vector binop with sources Op1 and Op2.
LLVM_ABI std::optional< APIntConstantFoldCastOp (unsigned Opcode, LLT DstTy, const Register Op0, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< APIntConstantFoldExtOp (unsigned Opcode, const Register Op1, uint64_t Imm, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< APFloatConstantFoldIntToFloat (unsigned Opcode, LLT DstTy, Register Src, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< SmallVector< unsigned > > ConstantFoldCountZeros (Register Src, const MachineRegisterInfo &MRI, std::function< unsigned(APInt)> CB)
 Tries to constant fold a counting-zero operation (G_CTLZ or G_CTTZ) on Src.
LLVM_ABI std::optional< SmallVector< APInt > > ConstantFoldICmp (unsigned Pred, const Register Op1, const Register Op2, unsigned DstScalarSizeInBits, unsigned ExtOp, const MachineRegisterInfo &MRI)
LLVM_ABI bool isKnownToBeAPowerOfTwo (Register Val, const MachineRegisterInfo &MRI, GISelValueTracking *ValueTracking=nullptr)
 Test if the given value is known to have exactly one bit set.
LLVM_ABI bool isKnownNeverNaN (Register Val, const MachineRegisterInfo &MRI, bool SNaN=false)
 Returns true if Val can be assumed to never be a NaN.
bool isKnownNeverSNaN (Register Val, const MachineRegisterInfo &MRI)
 Returns true if Val can be assumed to never be a signaling NaN.
LLVM_ABI Align inferAlignFromPtrInfo (MachineFunction &MF, const MachinePointerInfo &MPO)
LLVM_ABI Register getFunctionLiveInPhysReg (MachineFunction &MF, const TargetInstrInfo &TII, MCRegister PhysReg, const TargetRegisterClass &RC, const DebugLoc &DL, LLT RegTy=LLT())
 Return a virtual register corresponding to the incoming argument register PhysReg.
LLVM_ABI LLVM_READNONE LLT getLCMType (LLT OrigTy, LLT TargetTy)
 Return the least common multiple type of OrigTy and TargetTy, by changing the number of vector elements or scalar bitwidth.
LLVM_ABI LLVM_READNONE LLT getCoverTy (LLT OrigTy, LLT TargetTy)
 Return smallest type that covers both OrigTy and TargetTy and is multiple of TargetTy.
LLVM_ABI LLVM_READNONE LLT getGCDType (LLT OrigTy, LLT TargetTy)
 Return a type where the total size is the greatest common divisor of OrigTy and TargetTy.
LLVM_ABI std::optional< int > getSplatIndex (MachineInstr &MI)
LLVM_ABI std::optional< APIntgetIConstantSplatVal (const Register Reg, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< APIntgetIConstantSplatVal (const MachineInstr &MI, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< int64_t > getIConstantSplatSExtVal (const Register Reg, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< int64_t > getIConstantSplatSExtVal (const MachineInstr &MI, const MachineRegisterInfo &MRI)
LLVM_ABI std::optional< FPValueAndVReggetFConstantSplat (Register VReg, const MachineRegisterInfo &MRI, bool AllowUndef=true)
 Returns a floating point scalar constant of a build vector splat if it exists.
LLVM_ABI bool isBuildVectorConstantSplat (const Register Reg, const MachineRegisterInfo &MRI, int64_t SplatValue, bool AllowUndef)
 Return true if the specified register is defined by G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.
LLVM_ABI bool isBuildVectorConstantSplat (const Register Reg, const MachineRegisterInfo &MRI, const APInt &SplatValue, bool AllowUndef)
 Return true if the specified register is defined by G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.
LLVM_ABI bool isBuildVectorConstantSplat (const MachineInstr &MI, const MachineRegisterInfo &MRI, int64_t SplatValue, bool AllowUndef)
 Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.
LLVM_ABI bool isBuildVectorConstantSplat (const MachineInstr &MI, const MachineRegisterInfo &MRI, const APInt &SplatValue, bool AllowUndef)
 Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.
LLVM_ABI bool isBuildVectorAllZeros (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowUndef=false)
 Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are 0 or undef.
LLVM_ABI bool isBuildVectorAllOnes (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowUndef=false)
 Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are ~0 or undef.
LLVM_ABI bool isConstantOrConstantVector (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowFP=true, bool AllowOpaqueConstants=true)
 Return true if the specified instruction is known to be a constant, or a vector of constants.
LLVM_ABI bool isNullOrNullSplat (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowUndefs=false)
 Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs if AllowUndefs is false).
LLVM_ABI bool isAllOnesOrAllOnesSplat (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowUndefs=false)
 Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs if AllowUndefs is false).
LLVM_ABI std::optional< RegOrConstantgetVectorSplat (const MachineInstr &MI, const MachineRegisterInfo &MRI)
LLVM_ABI bool isConstantOrConstantVector (MachineInstr &MI, const MachineRegisterInfo &MRI)
 Determines if MI defines a constant integer or a build vector of constant integers.
LLVM_ABI std::optional< APIntisConstantOrConstantSplatVector (MachineInstr &MI, const MachineRegisterInfo &MRI)
 Determines if MI defines a constant integer or a splat vector of constant integers.
LLVM_ABI std::optional< APFloatisConstantOrConstantSplatVectorFP (MachineInstr &MI, const MachineRegisterInfo &MRI)
 Determines if MI defines a float constant integer or a splat vector of float constant integers.
LLVM_ABI bool matchUnaryPredicate (const MachineRegisterInfo &MRI, Register Reg, std::function< bool(const Constant *ConstVal)> Match, bool AllowUndefs=false)
 Attempt to match a unary predicate against a scalar/splat constant or every element of a constant G_BUILD_VECTOR.
LLVM_ABI bool isConstTrueVal (const TargetLowering &TLI, int64_t Val, bool IsVector, bool IsFP)
 Returns true if given the TargetLowering's boolean contents information, the value Val contains a true value.
LLVM_ABI bool isConstFalseVal (const TargetLowering &TLI, int64_t Val, bool IsVector, bool IsFP)
LLVM_ABI int64_t getICmpTrueVal (const TargetLowering &TLI, bool IsVector, bool IsFP)
 Returns an integer representing true, as defined by the TargetBooleanContents.
LLVM_ABI void saveUsesAndErase (MachineInstr &MI, MachineRegisterInfo &MRI, LostDebugLocObserver *LocObserver, SmallInstListTy &DeadInstChain)
LLVM_ABI void eraseInstrs (ArrayRef< MachineInstr * > DeadInstrs, MachineRegisterInfo &MRI, LostDebugLocObserver *LocObserver=nullptr)
LLVM_ABI void eraseInstr (MachineInstr &MI, MachineRegisterInfo &MRI, LostDebugLocObserver *LocObserver=nullptr)
LLVM_ABI void salvageDebugInfo (const MachineRegisterInfo &MRI, MachineInstr &MI)
 Assuming the instruction MI is going to be deleted, attempt to salvage debug users of MI by writing the effect of MI in a DIExpression.
LLVM_ABI bool isPreISelGenericFloatingPointOpcode (unsigned Opc)
 Returns whether opcode Opc is a pre-isel generic floating-point opcode, having only floating-point operands.
LLVM_ABI bool canCreateUndefOrPoison (Register Reg, const MachineRegisterInfo &MRI, bool ConsiderFlagsAndMetadata=true)
 Returns true if Reg can create undef or poison from non-undef & non-poison operands.
LLVM_ABI bool canCreatePoison (Register Reg, const MachineRegisterInfo &MRI, bool ConsiderFlagsAndMetadata=true)
 Returns true if Reg can create poison from non-poison operands.
LLVM_ABI bool isGuaranteedNotToBeUndefOrPoison (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth=0)
 Returns true if Reg cannot be poison and undef.
LLVM_ABI bool isGuaranteedNotToBePoison (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth=0)
 Returns true if Reg cannot be poison, but may be undef.
LLVM_ABI bool isGuaranteedNotToBeUndef (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth=0)
 Returns true if Reg cannot be undef, but may be poison.
LLVM_ABI TypegetTypeForLLT (LLT Ty, LLVMContext &C)
 Get the type back from LLT.
LLVM_ABI bool isAssertMI (const MachineInstr &MI)
 Returns true if the instruction MI is one of the assert instructions.
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)
LLVM_ABI 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.
void recomputeLivenessFlags (MachineBasicBlock &MBB)
 Recomputes dead and kill flags in MBB.
void addLiveIns (MachineBasicBlock &MBB, const LivePhysRegs &LiveRegs)
 Adds registers contained in LiveRegs to the block live-in list of MBB.
void computeAndAddLiveIns (LivePhysRegs &LiveRegs, MachineBasicBlock &MBB)
 Convenience function combining computeLiveIns() and addLiveIns().
bool isPhysRegUsedAfter (Register Reg, MachineBasicBlock::iterator MBI)
 Check if physical register Reg is used after MBI.
static bool recomputeLiveIns (MachineBasicBlock &MBB)
 Convenience function for recomputing live-in's for a MBB.
void fullyRecomputeLiveIns (ArrayRef< MachineBasicBlock * > MBBs)
 Convenience function for recomputing live-in's for a set of MBBs until the computation converges.
iterator_range< filter_iterator< ConstMIBundleOperands, bool(*)(const MachineOperand &)> > phys_regs_and_masks (const MachineInstr &MI)
 Returns an iterator range over all physical register and mask operands for MI and bundled instructions.
LLVM_ABI LLT getLLTForType (Type &Ty, const DataLayout &DL)
 Construct a low-level type based on an LLVM type.
LLVM_ABI MVT getMVTForLLT (LLT Ty)
 Get a rough equivalent of an MVT for a given LLT.
LLVM_ABI EVT getApproximateEVTForLLT (LLT Ty, LLVMContext &Ctx)
LLVM_ABI LLT getLLTForMVT (MVT Ty)
 Get a rough equivalent of an LLT for a given MVT.
LLVM_ABI const llvm::fltSemanticsgetFltSemanticForLLT (LLT Ty)
 Get the appropriate floating point arithmetic semantic based on the bit size of the given scalar LLT.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const MachineBasicBlock &MBB)
LLVM_ABI Printable printMBBReference (const MachineBasicBlock &MBB)
 Prints a machine basic block reference.
auto successors (const MachineBasicBlock *BB)
auto predecessors (const MachineBasicBlock *BB)
auto succ_size (const MachineBasicBlock *BB)
auto pred_size (const MachineBasicBlock *BB)
auto succ_begin (const MachineBasicBlock *BB)
auto pred_begin (const MachineBasicBlock *BB)
auto succ_end (const MachineBasicBlock *BB)
auto pred_end (const MachineBasicBlock *BB)
template<typename IterT>
IterT skipDebugInstructionsForward (IterT It, IterT End, bool SkipPseudoOp=true)
 Increment It until it points to a non-debug instruction or to End and return the resulting iterator.
template<class IterT>
IterT skipDebugInstructionsBackward (IterT It, IterT Begin, bool SkipPseudoOp=true)
 Decrement It until it points to a non-debug instruction or to Begin and return the resulting iterator.
template<typename IterT>
IterT next_nodbg (IterT It, IterT End, bool SkipPseudoOp=true)
 Increment It, then continue incrementing it while it points to a debug instruction.
template<typename IterT>
IterT prev_nodbg (IterT It, IterT Begin, bool SkipPseudoOp=true)
 Decrement It, then continue decrementing it while it points to a debug instruction.
template<typename IterT>
auto instructionsWithoutDebug (IterT It, IterT End, bool SkipPseudoOp=true)
 Construct a range iterator which begins at It and moves forwards until End is reached, skipping any debug instructions.
LLVM_ABI Printable printBlockFreq (const MachineBlockFrequencyInfo &MBFI, BlockFrequency Freq)
 Print the block frequency Freq relative to the current functions entry frequency.
LLVM_ABI Printable printBlockFreq (const MachineBlockFrequencyInfo &MBFI, const MachineBasicBlock &MBB)
 Convenience function equivalent to calling printBlockFreq(MBFI, MBFI.getBlockFreq(&MBB)).
raw_ostreamoperator<< (raw_ostream &OS, const MachineConstantPoolValue &V)
LLVM_ABI bool isCycleInvariant (const MachineCycle *Cycle, MachineInstr &I)
LLVM_ABI void verifyMachineFunction (const std::string &Banner, const MachineFunction &MF)
raw_ostreamoperator<< (raw_ostream &OS, const MachineInstr &MI)
MachineInstrBuilder BuildMI (MachineFunction &MF, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 Builder interface. Specify how to create the initial instruction itself.
MachineInstrBuilder BuildMI (MachineFunction &MF, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 This version of the builder sets up the first operand as a destination virtual register.
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register 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.
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register 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.
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr &I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr *I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MIMetadata &MIMD, 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.
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr &I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineInstr *I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
MachineInstrBuilder BuildMI (MachineBasicBlock *BB, const MIMetadata &MIMD, 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.
MachineInstrBuilder BuildMI (MachineBasicBlock *BB, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register 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.
LLVM_ABI MachineInstrBuilder BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, Register 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.
LLVM_ABI MachineInstrBuilder BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, ArrayRef< MachineOperand > MOs, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE or DBG_VALUE_LIST intrinsic for a MachineOperand.
LLVM_ABI MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, Register 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.
LLVM_ABI MachineInstrBuilder BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, ArrayRef< MachineOperand > MOs, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE, DBG_INSTR_REF, or DBG_VALUE_LIST intrinsic for a machine operand and inserts it at position I.
LLVM_ABI MachineInstrbuildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex, Register SpillReg)
 Clone a DBG_VALUE whose value has been spilled to FrameIndex.
LLVM_ABI MachineInstrbuildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex, const SmallVectorImpl< const MachineOperand * > &SpilledOperands)
LLVM_ABI void updateDbgValueForSpill (MachineInstr &Orig, int FrameIndex, Register Reg)
 Update a DBG_VALUE whose value has been spilled to FrameIndex.
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.
LLVM_ABI 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).
LLVM_ABI 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.
LLVM_ABI bool finalizeBundles (MachineFunction &MF)
 finalizeBundles - Finalize instruction bundles in the specified MachineFunction.
MachineBasicBlock::instr_iterator getBundleStart (MachineBasicBlock::instr_iterator I)
 Returns an iterator to the first instruction in the bundle containing I.
MachineBasicBlock::const_instr_iterator getBundleStart (MachineBasicBlock::const_instr_iterator I)
 Returns an iterator to the first instruction in the bundle containing I.
MachineBasicBlock::instr_iterator getBundleEnd (MachineBasicBlock::instr_iterator I)
 Returns an iterator pointing beyond the bundle containing I.
MachineBasicBlock::const_instr_iterator getBundleEnd (MachineBasicBlock::const_instr_iterator I)
 Returns an iterator pointing beyond the bundle containing I.
iterator_range< ConstMIBundleOperandsconst_mi_bundle_ops (const MachineInstr &MI)
iterator_range< MIBundleOperandsmi_bundle_ops (MachineInstr &MI)
LLVM_ABI VirtRegInfo AnalyzeVirtRegInBundle (MachineInstr &MI, Register Reg, SmallVectorImpl< std::pair< MachineInstr *, unsigned > > *Ops=nullptr)
 AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses a virtual register.
LLVM_ABI std::pair< LaneBitmask, LaneBitmaskAnalyzeVirtRegLanesInBundle (const MachineInstr &MI, Register Reg, const MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI)
 Return a pair of lane masks (reads, writes) indicating which lanes this instruction uses with Reg.
LLVM_ABI PhysRegInfo AnalyzePhysRegInBundle (const MachineInstr &MI, Register Reg, const TargetRegisterInfo *TRI)
 AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses a physical register.
LLVM_ABI Printable printJumpTableEntryReference (unsigned Idx)
 Prints a jump table entry reference.
MachineBasicBlockPeelSingleBlockLoop (LoopPeelDirection Direction, MachineBasicBlock *Loop, MachineRegisterInfo &MRI, const TargetInstrInfo *TII)
 Peels a single block loop.
raw_ostreamoperator<< (raw_ostream &OS, const MachineOperand &MO)
LLVM_ABI hash_code hash_value (const MachineOperand &MO)
template<typename PassT>
 MFPropsModifier (PassT &P, MachineFunction &MF) -> MFPropsModifier< PassT >
template<typename MachineFunctionPassT>
FunctionToMachineFunctionPassAdaptor createFunctionToMachineFunctionPassAdaptor (MachineFunctionPassT &&Pass)
LLVM_ABI PreservedAnalyses getMachineFunctionPassPreservedAnalyses ()
 Returns the minimum set of Analyses that all machine function passes must preserve.
 RegionNodeGraphTraits (MachineRegionNode, MachineBasicBlock, MachineRegion)
 RegionGraphTraits (MachineRegion, MachineRegionNode)
LLVM_ABI bool tryLess (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason)
 Return true if this heuristic determines order.
LLVM_ABI bool tryGreater (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason)
LLVM_ABI bool tryLatency (GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, SchedBoundary &Zone)
LLVM_ABI bool tryPressure (const PressureChange &TryP, const PressureChange &CandP, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason, const TargetRegisterInfo *TRI, const MachineFunction &MF)
LLVM_ABI unsigned getWeakLeft (const SUnit *SU, bool isTop)
LLVM_ABI int biasPhysReg (const SUnit *SU, bool isTop)
 Minimize physical register live ranges.
LLVM_ABI std::unique_ptr< ScheduleDAGMutationcreateLoadClusterDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI, bool ReorderWhileClustering=false)
 If ReorderWhileClustering is set to true, no attempt will be made to reduce reordering due to store clustering.
LLVM_ABI std::unique_ptr< ScheduleDAGMutationcreateStoreClusterDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI, bool ReorderWhileClustering=false)
 If ReorderWhileClustering is set to true, no attempt will be made to reduce reordering due to store clustering.
LLVM_ABI std::unique_ptr< ScheduleDAGMutationcreateCopyConstrainDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI)
template<typename Strategy = GenericScheduler>
ScheduleDAGMILivecreateSchedLive (MachineSchedContext *C)
 Create the standard converging machine scheduler.
template<typename Strategy = PostGenericScheduler>
ScheduleDAGMIcreateSchedPostRA (MachineSchedContext *C)
 Create a generic scheduler with no vreg liveness or DAG mutation passes.
LLVM_ABI bool shouldOptimizeForSize (const MachineFunction *MF, ProfileSummaryInfo *PSI, const MachineBlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other)
 Returns true if machine function MF is suggested to be size-optimized based on the profile.
LLVM_ABI bool shouldOptimizeForSize (const MachineBasicBlock *MBB, ProfileSummaryInfo *PSI, const MachineBlockFrequencyInfo *MBFI, PGSOQueryType QueryType=PGSOQueryType::Other)
 Returns true if machine basic block MBB is suggested to be size-optimized based on the profile.
LLVM_ABI bool shouldOptimizeForSize (const MachineBasicBlock *MBB, ProfileSummaryInfo *PSI, MBFIWrapper *MBFIWrapper, PGSOQueryType QueryType=PGSOQueryType::Other)
 Returns true if machine basic block MBB is suggested to be size-optimized based on the profile.
auto instrs (const MachineBasicBlock &BB)
LLVM_ABI stable_hash stableHashValue (const MachineOperand &MO)
LLVM_ABI stable_hash stableHashValue (const MachineInstr &MI, bool HashVRegs=false, bool HashConstantPoolIndices=false, bool HashMemOperands=false)
 A stable hash value for machine instructions.
LLVM_ABI stable_hash stableHashValue (const MachineBasicBlock &MBB)
LLVM_ABI stable_hash stableHashValue (const MachineFunction &MF)
raw_ostreamoperator<< (raw_ostream &OS, const MachineTraceMetrics::Trace &Tr)
raw_ostreamoperator<< (raw_ostream &OS, const MachineTraceMetrics::Ensemble &En)
MachineUniformityInfo computeMachineUniformityInfo (MachineFunction &F, const MachineCycleInfo &cycleInfo, const MachineDominatorTree &domTree, bool HasBranchDivergence)
 Compute uniformity information for a Machine IR function.
LLVM_ABI bool hasLessThanNumFused (const SUnit &SU, unsigned FuseLimit)
 Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit.
LLVM_ABI bool fuseInstructionPair (ScheduleDAGInstrs &DAG, SUnit &FirstSU, SUnit &SecondSU)
 Create an artificial edge between FirstSU and SecondSU.
LLVM_ABI std::unique_ptr< ScheduleDAGMutationcreateMacroFusionDAGMutation (ArrayRef< MacroFusionPredTy > Predicates, bool BranchOnly=false)
 Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific predicate functions.
bool parseMachineBasicBlockDefinitions (PerFunctionMIParsingState &PFS, StringRef Src, SMDiagnostic &Error)
 Parse the machine basic block definitions, and skip the machine instructions.
bool parseMachineInstructions (PerFunctionMIParsingState &PFS, StringRef Src, SMDiagnostic &Error)
 Parse the machine instructions.
bool parseMBBReference (PerFunctionMIParsingState &PFS, MachineBasicBlock *&MBB, StringRef Src, SMDiagnostic &Error)
bool parseRegisterReference (PerFunctionMIParsingState &PFS, Register &Reg, StringRef Src, SMDiagnostic &Error)
bool parseNamedRegisterReference (PerFunctionMIParsingState &PFS, Register &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)
bool parseMachineMetadata (PerFunctionMIParsingState &PFS, StringRef Src, SMRange SourceRange, SMDiagnostic &Error)
LLVM_ABI std::unique_ptr< MIRParsercreateMIRParserFromFile (StringRef Filename, SMDiagnostic &Error, LLVMContext &Context, std::function< void(Function &)> ProcessIRFunction=nullptr)
 This function is the main interface to the MIR serialization format parser.
LLVM_ABI std::unique_ptr< MIRParsercreateMIRParser (std::unique_ptr< MemoryBuffer > Contents, LLVMContext &Context, std::function< void(Function &)> ProcessIRFunction=nullptr)
 This function is another interface to the MIR serialization format parser.
LLVM_ABI void printMIR (raw_ostream &OS, const Module &M)
 Print LLVM IR using the MIR serialization format to the given output stream.
LLVM_ABI void printMIR (raw_ostream &OS, const MachineModuleInfo &MMI, const MachineFunction &MF)
 Print a machine function using the MIR serialization format to the given output stream.
LLVM_ABI 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.
LLVM_ABI FunctionPasscreateAtomicExpandLegacyPass ()
 AtomicExpandPass - At IR level this pass replace atomic instructions with __atomic_* library calls, or target specific instruction which implement the same semantics in a way which better fits the target backend.
LLVM_ABI 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?).
LLVM_ABI MachineFunctionPasscreateGCEmptyBasicBlocksPass ()
 createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without real code) appear as the result of optimization passes removing instructions.
LLVM_ABI MachineFunctionPasscreateBasicBlockSectionsPass ()
 createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections.
LLVM_ABI MachineFunctionPasscreateBasicBlockPathCloningPass ()
LLVM_ABI MachineFunctionPasscreateMachineFunctionSplitterPass ()
 createMachineFunctionSplitterPass - This pass splits machine functions using profile information.
LLVM_ABI MachineFunctionPasscreateStaticDataSplitterPass ()
 createStaticDataSplitterPass - This is a machine-function pass that categorizes static data hotness using profile information.
LLVM_ABI ModulePasscreateStaticDataAnnotatorPass ()
 createStaticDataAnnotatorPASS - This is a module pass that reads from StaticDataProfileInfoWrapperPass and annotates the section prefix of global variables.
LLVM_ABI 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.
LLVM_ABI MachineFunctionPasscreateStackFrameLayoutAnalysisPass ()
 StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool.
LLVM_ABI MachineFunctionPasscreatePrintMIRPass (raw_ostream &OS)
 MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format.
LLVM_ABI MachineFunctionPasscreateResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel)
 This pass resets a MachineFunction when it has the FailedISel property as if it was just created.
LLVM_ABI FunctionPasscreateCodeGenPrepareLegacyPass ()
 createCodeGenPrepareLegacyPass - Transform the code to expose more pattern matching during instruction selection.
LLVM_ABI FunctionPasscreateComplexDeinterleavingPass (const TargetMachine *TM)
 This pass implements generation of target-specific intrinsics to support handling of complex number arithmetic.
LLVM_ABI FunctionPasscreateVirtRegRewriter (bool ClearVirtRegs=true)
LLVM_ABI FunctionPasscreateFastRegisterAllocator ()
 FastRegisterAllocation Pass - This pass register allocates as fast as possible.
LLVM_ABI FunctionPasscreateFastRegisterAllocator (RegAllocFilterFunc F, bool ClearVirtRegs)
LLVM_ABI FunctionPasscreateBasicRegisterAllocator ()
 BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.
LLVM_ABI FunctionPasscreateBasicRegisterAllocator (RegAllocFilterFunc F)
LLVM_ABI FunctionPasscreateGreedyRegisterAllocator ()
 Greedy register allocation pass - This pass implements a global register allocator for optimized builds.
LLVM_ABI FunctionPasscreateGreedyRegisterAllocator (RegAllocFilterFunc F)
LLVM_ABI FunctionPasscreateDefaultPBQPRegisterAllocator ()
 PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.
LLVM_ABI MachineFunctionPasscreatePrologEpilogInserterPass ()
LLVM_ABI FunctionPasscreateIfConverter (std::function< bool(const MachineFunction &)> Ftor)
LLVM_ABI FunctionPasscreateGCLoweringPass ()
 GCLowering Pass - Used by gc.root to perform its default lowering operations.
LLVM_ABI FunctionPasscreateShadowStackGCLoweringPass ()
 ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.
LLVM_ABI MachineFunctionPasscreateMachineCopyPropagationPass (bool UseCopyInstr)
LLVM_ABI FunctionPasscreateStackProtectorPass ()
 createStackProtectorPass - This pass adds stack protectors to functions.
LLVM_ABI FunctionPasscreateMachineVerifierPass (const std::string &Banner)
 createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.
LLVM_ABI FunctionPasscreateDwarfEHPass (CodeGenOptLevel OptLevel)
 createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation.
LLVM_ABI FunctionPasscreateWinEHPass (bool DemoteCatchSwitchPHIOnly=false)
 createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.
LLVM_ABI FunctionPasscreateSjLjEHPreparePass (const TargetMachine *TM)
 createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.
LLVM_ABI FunctionPasscreateWasmEHPass ()
 createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme.
LLVM_ABI FunctionPasscreateUnpackMachineBundles (std::function< bool(const MachineFunction &)> Ftor)
LLVM_ABI FunctionPasscreateInterleavedAccessPass ()
 InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics.
LLVM_ABI FunctionPasscreateInterleavedLoadCombinePass ()
 InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass.
LLVM_ABI ModulePasscreateLowerEmuTLSPass ()
 LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.
LLVM_ABI ModulePasscreatePreISelIntrinsicLoweringPass ()
 This pass lowers the @llvm.load.relative and @llvm.objc.
LLVM_ABI PasscreateGlobalMergePass (const TargetMachine *TM, unsigned MaximalOffset, bool OnlyOptimizeForSize=false, bool MergeExternalByDefault=false, bool MergeConstantByDefault=false, bool MergeConstAggressiveByDefault=false)
 GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes.
LLVM_ABI FunctionPasscreateSafeStackPass ()
 This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities.
LLVM_ABI FunctionPasscreateRegUsageInfoCollector ()
 This pass is executed POST-RA to collect which physical registers are preserved by given machine function.
LLVM_ABI FunctionPasscreateRegUsageInfoPropPass ()
 Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass.
LLVM_ABI FunctionPasscreateFreeMachineFunctionPass ()
 This pass frees the memory occupied by the MachineFunction.
LLVM_ABI ModulePasscreateGlobalMergeFuncPass ()
 This pass performs merging similar functions globally.
LLVM_ABI ModulePasscreateMachineOutlinerPass (RunOutliner RunOutlinerMode)
 This pass performs outlining on machine instructions directly before printing assembly.
LLVM_ABI FunctionPasscreateExpandReductionsPass ()
 This pass expands the reduction intrinsics into sequences of shuffles.
LLVM_ABI FunctionPasscreateReplaceWithVeclibLegacyPass ()
LLVM_ABI FunctionPasscreateExpandLargeDivRemPass ()
LLVM_ABI FunctionPasscreateExpandFpPass ()
LLVM_ABI FunctionPasscreateExpandMemCmpLegacyPass ()
LLVM_ABI FunctionPasscreateBreakFalseDeps ()
 Creates Break False Dependencies pass.
LLVM_ABI FunctionPasscreateIndirectBrExpandPass ()
LLVM_ABI FunctionPasscreateCFIFixup ()
 Creates CFI Fixup pass.
LLVM_ABI FunctionPasscreateCFIInstrInserter ()
 Creates CFI Instruction Inserter pass.
FunctionPasscreateExpandFpPass (CodeGenOptLevel)
LLVM_ABI FunctionPasscreateCFGuardLongjmpPass ()
 Creates CFGuard longjmp target identification pass.
LLVM_ABI FunctionPasscreateEHContGuardTargetsPass ()
 Creates Windows EH Continuation Guard target identification pass.
LLVM_ABI FunctionPasscreateHardwareLoopsLegacyPass ()
 Create Hardware Loop pass.
LLVM_ABI FunctionPasscreatePseudoProbeInserter ()
 This pass inserts pseudo probe annotation for callsite profiling.
LLVM_ABI FunctionPasscreateTypePromotionLegacyPass ()
 Create IR Type Promotion pass.
LLVM_ABI FunctionPasscreateMIRAddFSDiscriminatorsPass (sampleprof::FSDiscriminatorPass P)
 Add Flow Sensitive Discriminators.
LLVM_ABI FunctionPasscreateMIRProfileLoaderPass (std::string File, std::string RemappingFile, sampleprof::FSDiscriminatorPass P, IntrusiveRefCntPtr< vfs::FileSystem > FS)
 Read Flow Sensitive Profile.
LLVM_ABI ModulePasscreateDebugifyMachineModulePass ()
 Creates MIR Debugify pass.
LLVM_ABI ModulePasscreateStripDebugMachineModulePass (bool OnlyDebugified)
 Creates MIR Strip Debug pass.
LLVM_ABI ModulePasscreateCheckDebugMachineModulePass ()
 Creates MIR Check Debug pass.
LLVM_ABI FunctionPasscreateX86LowerAMXTypePass ()
 The pass transforms load/store <256 x i32> to AMX load/store intrinsics or split the data to two <128 x i32>.
LLVM_ABI FunctionPasscreateX86LowerAMXIntrinsicsPass ()
 The pass transforms amx intrinsics to scalar operation if the function has optnone attribute or it is O0.
LLVM_ABI FunctionPasscreateRegAllocScoringPass ()
 When learning an eviction policy, extract score(reward) information, otherwise this does nothing.
LLVM_ABI ModulePasscreateJMCInstrumenterPass ()
 JMC instrument pass.
LLVM_ABI FunctionPasscreateSelectOptimizePass ()
 This pass converts conditional moves to conditional jumps when profitable.
LLVM_ABI FunctionPasscreateCallBrPass ()
LLVM_ABI ModulePasscreateWindowsSecureHotPatchingPass ()
 Creates Windows Secure Hot Patch pass.
LLVM_ABI FunctionPasscreateKCFIPass ()
 Lowers KCFI operand bundles for indirect calls.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const PseudoSourceValue *PSV)
template<>
PasscallDefaultCtor< RegAllocEvictionAdvisorAnalysisLegacy > ()
 Specialization for the API used by the analysis infrastructure to create an instance of the eviction advisor.
RegAllocEvictionAdvisorAnalysisLegacycreateReleaseModeAdvisorAnalysisLegacy ()
RegAllocEvictionAdvisorAnalysisLegacycreateDevelopmentModeAdvisorAnalysisLegacy ()
LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocEvictionAdvisorProvidercreateReleaseModeAdvisorProvider (LLVMContext &Ctx)
RegAllocEvictionAdvisorProvidercreateDevelopmentModeAdvisorProvider (LLVMContext &Ctx)
FunctionPasscreatePBQPRegisterAllocator (char *customPassID=nullptr)
 Create a PBQP register allocator instance.
template<>
PasscallDefaultCtor< RegAllocPriorityAdvisorAnalysisLegacy > ()
 Specialization for the API used by the analysis infrastructure to create an instance of the priority advisor.
RegAllocPriorityAdvisorAnalysisLegacycreateReleaseModePriorityAdvisorAnalysis ()
RegAllocPriorityAdvisorAnalysisLegacycreateDevelopmentModePriorityAdvisorAnalysis ()
LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvidercreateReleaseModePriorityAdvisorProvider ()
LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvidercreateDevelopmentModePriorityAdvisorProvider (LLVMContext &Ctx)
raw_ostreamoperator<< (raw_ostream &OS, const RegisterBank &RegBank)
raw_ostreamoperator<< (raw_ostream &OS, const RegisterBankInfo::PartialMapping &PartMapping)
raw_ostreamoperator<< (raw_ostream &OS, const RegisterBankInfo::ValueMapping &ValMapping)
raw_ostreamoperator<< (raw_ostream &OS, const RegisterBankInfo::InstructionMapping &InstrMapping)
raw_ostreamoperator<< (raw_ostream &OS, const RegisterBankInfo::OperandsMapper &OpdMapper)
hash_code hash_value (const RegisterBankInfo::PartialMapping &PartMapping)
 Hashing function for PartialMapping.
LLVM_ABI void dumpRegSetPressure (ArrayRef< unsigned > SetPressure, const TargetRegisterInfo *TRI)
void scavengeFrameVirtualRegs (MachineFunction &MF, RegScavenger &RS)
 Replaces all frame index virtual registers with physical registers.
bool isTheSameCluster (unsigned A, unsigned B)
 Return whether the input cluster ID's are the same and valid.
raw_ostreamoperator<< (raw_ostream &OS, const ILPValue &Val)
LLVM_ABI ScheduleDAGSDNodescreateBURRListDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel)
 createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler.
LLVM_ABI ScheduleDAGSDNodescreateSourceListDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel)
 createSourceListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible.
LLVM_ABI ScheduleDAGSDNodescreateHybridListDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel)
 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.
LLVM_ABI ScheduleDAGSDNodescreateILPListDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel)
 createILPListDAGScheduler - This creates a bottom up register pressure aware list scheduler that tries to increase instruction level parallelism in low register pressure mode.
LLVM_ABI ScheduleDAGSDNodescreateFastDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel)
 createFastDAGScheduler - This creates a "fast" scheduler.
LLVM_ABI ScheduleDAGSDNodescreateVLIWDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel)
 createVLIWDAGScheduler - Scheduler for VLIW targets.
LLVM_ABI ScheduleDAGSDNodescreateDefaultScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel)
 createDefaultScheduler - This creates an instruction scheduler appropriate for the target.
LLVM_ABI ScheduleDAGSDNodescreateDAGLinearizer (SelectionDAGISel *IS, CodeGenOptLevel OptLevel)
 createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order.
LLVM_ABI void checkForCycles (const SelectionDAG *DAG, bool force=false)
LLVM_ABI void checkForCycles (const SDNode *N, const SelectionDAG *DAG=nullptr, bool force=false)
 LLVM_DECLARE_ENUM_AS_BITMASK (decltype(SDNodeFlags::None), SDNodeFlags::SameSign)
SDNodeFlags operator| (SDNodeFlags LHS, SDNodeFlags RHS)
SDNodeFlags operator& (SDNodeFlags LHS, SDNodeFlags RHS)
LLVM_ABI bool isNullConstant (SDValue V)
 Returns true if V is a constant integer zero.
LLVM_ABI bool isNullConstantOrUndef (SDValue V)
 Returns true if V is a constant integer zero or an UNDEF node.
LLVM_ABI bool isNullFPConstant (SDValue V)
 Returns true if V is an FP constant with a value of positive zero.
LLVM_ABI bool isAllOnesConstant (SDValue V)
 Returns true if V is an integer constant with all bits set.
LLVM_ABI bool isOneConstant (SDValue V)
 Returns true if V is a constant integer one.
LLVM_ABI bool isMinSignedConstant (SDValue V)
 Returns true if V is a constant min signed integer value.
LLVM_ABI bool isNeutralConstant (unsigned Opc, SDNodeFlags Flags, SDValue V, unsigned OperandNo)
 Returns true if V is a neutral element of Opc with Flags.
LLVM_ABI SDValue peekThroughBitcasts (SDValue V)
 Return the non-bitcasted source operand of V if it exists.
LLVM_ABI SDValue peekThroughOneUseBitcasts (SDValue V)
 Return the non-bitcasted and one-use source operand of V if it exists.
LLVM_ABI SDValue peekThroughExtractSubvectors (SDValue V)
 Return the non-extracted vector source operand of V if it exists.
LLVM_ABI SDValue peekThroughInsertVectorElt (SDValue V, const APInt &DemandedElts)
 Recursively peek through INSERT_VECTOR_ELT nodes, returning the source vector operand of V, as long as V is an INSERT_VECTOR_ELT operation that do not insert into any of the demanded vector elts.
LLVM_ABI SDValue peekThroughTruncates (SDValue V)
 Return the non-truncated source operand of V if it exists.
LLVM_ABI bool isBitwiseNot (SDValue V, bool AllowUndefs=false)
 Returns true if V is a bitwise not operation.
LLVM_ABI SDValue getBitwiseNotOperand (SDValue V, SDValue Mask, bool AllowUndefs)
 If V is a bitwise not, returns the inverted operand.
LLVM_ABI ConstantSDNodeisConstOrConstSplat (SDValue N, bool AllowUndefs=false, bool AllowTruncation=false)
 Returns the SDNode if it is a constant splat BuildVector or constant int.
LLVM_ABI ConstantSDNodeisConstOrConstSplat (SDValue N, const APInt &DemandedElts, bool AllowUndefs=false, bool AllowTruncation=false)
 Returns the SDNode if it is a demanded constant splat BuildVector or constant int.
LLVM_ABI ConstantFPSDNodeisConstOrConstSplatFP (SDValue N, bool AllowUndefs=false)
 Returns the SDNode if it is a constant splat BuildVector or constant float.
LLVM_ABI ConstantFPSDNodeisConstOrConstSplatFP (SDValue N, const APInt &DemandedElts, bool AllowUndefs=false)
 Returns the SDNode if it is a demanded constant splat BuildVector or constant float.
LLVM_ABI bool isNullOrNullSplat (SDValue V, bool AllowUndefs=false)
 Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs by default).
LLVM_ABI bool isOneOrOneSplat (SDValue V, bool AllowUndefs=false)
 Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs).
LLVM_ABI bool isAllOnesOrAllOnesSplat (SDValue V, bool AllowUndefs=false)
 Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs).
LLVM_ABI bool isOnesOrOnesSplat (SDValue N, bool AllowUndefs=false)
 Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs).
LLVM_ABI bool isZeroOrZeroSplat (SDValue N, bool AllowUndefs=false)
 Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs).
bool isIntOrFPConstant (SDValue V)
 Return true if V is either a integer or FP constant.
raw_ostreamoperator<< (raw_ostream &os, SlotIndex li)
SpillercreateInlineSpiller (const Spiller::RequiredAnalyses &Analyses, MachineFunction &MF, VirtRegMap &VRM, VirtRegAuxInfo &VRAI, LiveRegMatrix *Matrix=nullptr)
 Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.
LLVM_ABI 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.
bool isPreISelGenericOpcode (unsigned Opcode)
 Check whether the given Opcode is a generic opcode that is not supposed to appear after ISel.
bool isTargetSpecificOpcode (unsigned Opcode)
 Check whether the given Opcode is a target-specific opcode.
bool isPreISelGenericOptimizationHint (unsigned Opcode)
LLVM_ABI void registerCodeGenCallback (PassInstrumentationCallbacks &PIC, TargetMachine &)
LLVM_ABI Printable printReg (Register Reg, const TargetRegisterInfo *TRI=nullptr, unsigned SubIdx=0, const MachineRegisterInfo *MRI=nullptr)
 Prints virtual and physical registers with or without a TRI instance.
LLVM_ABI Printable printRegUnit (unsigned Unit, const TargetRegisterInfo *TRI)
 Create Printable object to print register units on a raw_ostream.
LLVM_ABI Printable printVRegOrUnit (unsigned VRegOrUnit, const TargetRegisterInfo *TRI)
 Create Printable object to print virtual registers and physical registers on a raw_ostream.
LLVM_ABI Printable printRegClassOrBank (Register Reg, const MachineRegisterInfo &RegInfo, const TargetRegisterInfo *TRI)
 Create Printable object to print register classes or register banks on a raw_ostream.
raw_ostreamoperator<< (raw_ostream &OS, const EVT &V)
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.
void calculateSEHStateNumbers (const Function *ParentFn, WinEHFuncInfo &FuncInfo)
void calculateClrEHStateNumbers (const Function *Fn, WinEHFuncInfo &FuncInfo)
void calculateCXXStateForAsynchEH (const BasicBlock *BB, int State, WinEHFuncInfo &FuncInfo)
void calculateSEHStateForAsynchEH (const BasicBlock *BB, int State, WinEHFuncInfo &FuncInfo)
raw_ostreamoperator<< (raw_ostream &OS, const LLT &Ty)
raw_ostreamoperator<< (raw_ostream &OS, const MVT &VT)
LLVM_ABI std::optional< StringRefStripTemplateParameters (StringRef Name)
 If Name is the name of a templated function that includes template parameters, returns a substring of Name containing no template parameters.
LLVM_ABI std::optional< ObjCSelectorNamesgetObjCNamesIfSelector (StringRef Name)
 If Name is the AT_name of a DIE which refers to an Objective-C selector, returns an instance of ObjCSelectorNames.
bool operator< (const DWARFAddressRange &LHS, const DWARFAddressRange &RHS)
bool operator== (const DWARFAddressRange &LHS, const DWARFAddressRange &RHS)
LLVM_ABI 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 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)
LLVM_ABI void dumpTypeQualifiedName (const DWARFDie &DIE, raw_ostream &OS)
LLVM_ABI void dumpTypeUnqualifiedName (const DWARFDie &DIE, raw_ostream &OS, std::string *OriginalFullName=nullptr)
LLVM_ABI void printDwarfExpression (const DWARFExpression *E, raw_ostream &OS, DIDumpOptions DumpOpts, DWARFUnit *U, bool IsEH=false)
 Print a Dwarf expression/.
LLVM_ABI bool printDwarfExpressionCompact (const DWARFExpression *E, raw_ostream &OS, std::function< StringRef(uint64_t RegNum, bool IsEH)> GetNameForDWARFReg=nullptr)
 Print the expression in a format intended to be compact and useful to a user, but not perfectly unambiguous, or capable of representing every valid DWARF expression.
LLVM_ABI bool prettyPrintRegisterOp (DWARFUnit *U, raw_ostream &OS, DIDumpOptions DumpOpts, uint8_t Opcode, ArrayRef< uint64_t > Operands)
 Pretty print a register opcode and operands.
bool operator== (const DWARFLocationExpression &L, const DWARFLocationExpression &R)
bool operator!= (const DWARFLocationExpression &L, const DWARFLocationExpression &R)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const DWARFLocationExpression &Loc)
LLVM_ABI const DWARFUnitIndexgetDWARFUnitIndex (DWARFContext &Context, DWARFSectionKind Kind)
bool isCompileUnit (const std::unique_ptr< DWARFUnit > &U)
const chartoString (DWARFSectionKind Kind)
LLVM_ABI uint32_t serializeSectionKind (DWARFSectionKind Kind, unsigned IndexVersion)
 Convert the internal value for a section kind to an on-disk value.
LLVM_ABI DWARFSectionKind deserializeSectionKind (uint32_t Value, unsigned IndexVersion)
 Convert a value read from an index section to the internal representation.
static bool operator< (const DWARFVerifier::DieRangeInfo &LHS, const DWARFVerifier::DieRangeInfo &RHS)
bool operator== (const DWARFExpression::iterator &LHS, const DWARFExpression::iterator &RHS)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const AddressRange &R)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const AddressRanges &AR)
bool canUseDebuginfod ()
 Returns false if a debuginfod lookup can be determined to have no chance of succeeding.
SmallVector< StringRefgetDefaultDebuginfodUrls ()
 Finds default array of Debuginfod server URLs by checking DEBUGINFOD_URLS environment variable.
std::string getDebuginfodCacheKey (StringRef UrlPath)
 Returns the cache key for a given debuginfod URL path.
void setDefaultDebuginfodUrls (const SmallVector< StringRef > &URLs)
 Sets the list of debuginfod server URLs to query.
Expected< std::string > getDefaultDebuginfodCacheDirectory ()
 Finds a default local file caching directory for the debuginfod client, first checking DEBUGINFOD_CACHE_PATH.
std::chrono::milliseconds getDefaultDebuginfodTimeout ()
 Finds a default timeout for debuginfod HTTP requests.
std::string getDebuginfodSourceUrlPath (object::BuildIDRef ID, StringRef SourceFilePath)
 Get the full URL path for a source request of a given BuildID and file path.
Expected< std::string > getCachedOrDownloadSource (object::BuildIDRef ID, StringRef SourceFilePath)
 Fetches a specified source file by searching the default local cache directory and server URLs.
std::string getDebuginfodExecutableUrlPath (object::BuildIDRef ID)
 Get the full URL path for an executable request of a given BuildID.
Expected< std::string > getCachedOrDownloadExecutable (object::BuildIDRef ID)
 Fetches an executable by searching the default local cache directory and server URLs.
std::string getDebuginfodDebuginfoUrlPath (object::BuildIDRef ID)
 Get the full URL path for a debug binary request of a given BuildID.
Expected< std::string > getCachedOrDownloadDebuginfo (object::BuildIDRef ID)
 Fetches a debug binary by searching the default local cache directory and server URLs.
Expected< std::string > getCachedOrDownloadArtifact (StringRef UniqueKey, StringRef UrlPath)
 Fetches any debuginfod artifact using the default local cache directory and server URLs.
Expected< std::string > getCachedOrDownloadArtifact (StringRef UniqueKey, StringRef UrlPath, StringRef CacheDirectoryPath, ArrayRef< StringRef > DebuginfodUrls, std::chrono::milliseconds Timeout)
 Fetches any debuginfod artifact using the specified local cache directory, server URLs, and request timeout (in milliseconds).
bool operator== (const HTTPRequest &A, const HTTPRequest &B)
bool streamFile (HTTPServerRequest &Request, StringRef FilePath)
 Sets the response to stream the file at FilePath, if available, and otherwise an HTTP 404 error response.
DEMANGLE_ABI charitaniumDemangle (std::string_view mangled_name, bool ParseParams=true)
 Returns a non-NULL pointer to a NUL-terminated C style string that should be explicitly freed, if successful.
DEMANGLE_ABI charmicrosoftDemangle (std::string_view mangled_name, size_t *n_read, int *status, MSDemangleFlags Flags=MSDF_None)
 Demangles the Microsoft symbol pointed at by mangled_name and returns it.
DEMANGLE_ABI std::optional< size_t > getArm64ECInsertionPointInMangledName (std::string_view MangledName)
DEMANGLE_ABI charrustDemangle (std::string_view MangledName)
DEMANGLE_ABI chardlangDemangle (std::string_view MangledName)
DEMANGLE_ABI std::string demangle (std::string_view MangledName)
 Attempt to demangle a string using different demangling schemes.
DEMANGLE_ABI bool nonMicrosoftDemangle (std::string_view MangledName, std::string &Result, bool CanHaveLeadingDot=true, bool ParseParams=true)
LLVM_ABI Error write (MCStreamer &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue)
LLVM_ABI Error handleSection (const StringMap< std::pair< MCSection *, DWARFSectionKind > > &KnownSections, const MCSection *StrSection, const MCSection *StrOffsetSection, const MCSection *TypesSection, const MCSection *CUIndexSection, const MCSection *TUIndexSection, const MCSection *InfoSection, const object::SectionRef &Section, MCStreamer &Out, std::deque< SmallString< 32 > > &UncompressedSections, uint32_t(&ContributionOffsets)[8], UnitIndexEntry &CurEntry, StringRef &CurStrSection, StringRef &CurStrOffsetSection, std::vector< StringRef > &CurTypesSection, std::vector< StringRef > &CurInfoSection, StringRef &AbbrevSection, StringRef &CurCUIndexSection, StringRef &CurTUIndexSection, std::vector< std::pair< DWARFSectionKind, uint32_t > > &SectionLength)
LLVM_ABI Expected< InfoSectionUnitHeaderparseInfoSectionUnitHeader (StringRef Info)
LLVM_ABI void writeStringsAndOffsets (MCStreamer &Out, DWPStringPool &Strings, MCSection *StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version)
LLVM_ABI Error buildDuplicateError (const std::pair< uint64_t, UnitIndexEntry > &PrevE, const CompileUnitIdentifiers &ID, StringRef DWPName)
LLVM_ABI void writeIndex (MCStreamer &Out, MCSection *Section, ArrayRef< unsigned > ContributionOffsets, const MapVector< uint64_t, UnitIndexEntry > &IndexEntries, uint32_t IndexVersion)
GenericValue PTOGV (void *P)
void * GVTOP (const GenericValue &GV)
template<typename T>
T jitTargetAddressToPointer (JITTargetAddress Addr)
 Convert a JITTargetAddress to a pointer.
template<typename T>
T jitTargetAddressToFunction (JITTargetAddress Addr)
 Convert a JITTargetAddress to a callable function pointer.
template<typename T>
JITTargetAddress pointerToJITTargetAddress (T *Ptr)
 Convert a pointer to a JITTargetAddress.
JITSymbolFlags operator& (const JITSymbolFlags &LHS, const JITSymbolFlags::FlagNames &RHS)
JITSymbolFlags operator| (const JITSymbolFlags &LHS, const JITSymbolFlags::FlagNames &RHS)
LLVM_ABI void jitLinkForORC (object::OwningBinary< object::ObjectFile > O, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, bool ProcessAllSections, unique_function< Error(const object::ObjectFile &Obj, RuntimeDyld::LoadedObjectInfo &, std::map< StringRef, JITEvaluatedSymbol >)> OnLoaded, unique_function< void(object::OwningBinary< object::ObjectFile >, std::unique_ptr< RuntimeDyld::LoadedObjectInfo >, Error)> OnEmitted)
LLVM_ABI void parseFuzzerCLOpts (int ArgC, char *ArgV[])
 Parse cl::opts from a fuzz target commandline.
LLVM_ABI void handleExecNameEncodedBEOpts (StringRef ExecName)
 Handle backend options that are encoded in the executable name.
LLVM_ABI void handleExecNameEncodedOptimizerOpts (StringRef ExecName)
 Handle optimizer options which are encoded in the executable name.
LLVM_ABI 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.
LLVM_ABI std::unique_ptr< ModuleparseModule (const uint8_t *Data, size_t Size, LLVMContext &Context)
 Fuzzer friendly interface for the llvm bitcode parser.
LLVM_ABI size_t writeModule (const Module &M, uint8_t *Dest, size_t MaxSize)
 Fuzzer friendly interface for the llvm bitcode printer.
LLVM_ABI std::unique_ptr< ModuleparseAndVerify (const uint8_t *Data, size_t Size, LLVMContext &Context)
 Try to parse module and verify it.
template<typename T, typename GenT>
T uniform (GenT &Gen, T Min, T Max)
 Return a uniformly distributed random value between Min and Max.
template<typename T, typename GenT>
T uniform (GenT &Gen)
 Return a uniformly distributed random value of type T.
template<typename GenT, typename RangeT, typename ElT = std::remove_reference_t< decltype(*std::begin(std::declval<RangeT>()))>>
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)
LLVM_ABI void initializeCore (PassRegistry &)
 Initialize all passes linked into the Core library.
LLVM_ABI void initializeTransformUtils (PassRegistry &)
 Initialize all passes linked into the TransformUtils library.
LLVM_ABI void initializeScalarOpts (PassRegistry &)
 Initialize all passes linked into the ScalarOpts library.
LLVM_ABI void initializeVectorization (PassRegistry &)
 Initialize all passes linked into the Vectorize library.
LLVM_ABI void initializeInstCombine (PassRegistry &)
 Initialize all passes linked into the InstCombine library.
LLVM_ABI void initializeIPO (PassRegistry &)
 Initialize all passes linked into the IPO library.
LLVM_ABI void initializeAnalysis (PassRegistry &)
 Initialize all passes linked into the Analysis library.
LLVM_ABI void initializeCodeGen (PassRegistry &)
 Initialize all passes linked into the CodeGen library.
LLVM_ABI void initializeGlobalISel (PassRegistry &)
 Initialize all passes linked into the GlobalISel library.
LLVM_ABI void initializeTarget (PassRegistry &)
 Initialize all passes linked into the CodeGen library.
LLVM_ABI void initializeAAResultsWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeAlwaysInlinerLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeAssignmentTrackingAnalysisPass (PassRegistry &)
LLVM_ABI void initializeAssumptionCacheTrackerPass (PassRegistry &)
LLVM_ABI void initializeAtomicExpandLegacyPass (PassRegistry &)
LLVM_ABI void initializeBasicBlockPathCloningPass (PassRegistry &)
LLVM_ABI void initializeBasicBlockSectionsProfileReaderWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeBasicBlockSectionsPass (PassRegistry &)
LLVM_ABI void initializeBarrierNoopPass (PassRegistry &)
LLVM_ABI void initializeBasicAAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeBlockFrequencyInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeBranchFolderLegacyPass (PassRegistry &)
LLVM_ABI void initializeBranchProbabilityInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeBranchRelaxationLegacyPass (PassRegistry &)
LLVM_ABI void initializeBreakCriticalEdgesPass (PassRegistry &)
LLVM_ABI void initializeBreakFalseDepsPass (PassRegistry &)
LLVM_ABI void initializeCanonicalizeFreezeInLoopsPass (PassRegistry &)
LLVM_ABI void initializeCFGSimplifyPassPass (PassRegistry &)
LLVM_ABI void initializeCFGuardPass (PassRegistry &)
LLVM_ABI void initializeCFGuardLongjmpPass (PassRegistry &)
LLVM_ABI void initializeCFIFixupPass (PassRegistry &)
LLVM_ABI void initializeCFIInstrInserterPass (PassRegistry &)
LLVM_ABI void initializeCallBrPreparePass (PassRegistry &)
LLVM_ABI void initializeCallGraphDOTPrinterPass (PassRegistry &)
LLVM_ABI void initializeCallGraphViewerPass (PassRegistry &)
LLVM_ABI void initializeCallGraphWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeCheckDebugMachineModulePass (PassRegistry &)
LLVM_ABI void initializeCodeGenPrepareLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeComplexDeinterleavingLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeConstantHoistingLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeCycleInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDAEPass (PassRegistry &)
LLVM_ABI void initializeDAHPass (PassRegistry &)
LLVM_ABI void initializeDCELegacyPassPass (PassRegistry &)
LLVM_ABI void initializeDSELegacyPassPass (PassRegistry &)
LLVM_ABI void initializeDXILMetadataAnalysisWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDXILMetadataAnalysisWrapperPrinterPass (PassRegistry &)
LLVM_ABI void initializeDXILResourceBindingWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDXILResourceImplicitBindingLegacyPass (PassRegistry &)
 Initializer for DXILResourceImplicitBindingLegacyPass.
LLVM_ABI void initializeDXILResourceTypeWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDXILResourceWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDeadMachineInstructionElimPass (PassRegistry &)
LLVM_ABI void initializeDebugifyMachineModulePass (PassRegistry &)
LLVM_ABI void initializeDependenceAnalysisWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDetectDeadLanesLegacyPass (PassRegistry &)
LLVM_ABI void initializeDomOnlyPrinterWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDomOnlyViewerWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDomPrinterWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDomViewerWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDominanceFrontierWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDominatorTreeWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeDwarfEHPrepareLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeEarlyCSELegacyPassPass (PassRegistry &)
LLVM_ABI void initializeEarlyCSEMemSSALegacyPassPass (PassRegistry &)
LLVM_ABI void initializeEarlyIfConverterLegacyPass (PassRegistry &)
LLVM_ABI void initializeEarlyIfPredicatorPass (PassRegistry &)
LLVM_ABI void initializeEarlyMachineLICMPass (PassRegistry &)
LLVM_ABI void initializeEarlyTailDuplicateLegacyPass (PassRegistry &)
LLVM_ABI void initializeEdgeBundlesWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializeEHContGuardTargetsPass (PassRegistry &)
LLVM_ABI void initializeExpandFpLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeExpandLargeDivRemLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeExpandMemCmpLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeExpandPostRALegacyPass (PassRegistry &)
LLVM_ABI void initializeExpandReductionsPass (PassRegistry &)
LLVM_ABI void initializeExpandVariadicsPass (PassRegistry &)
LLVM_ABI void initializeExternalAAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeFEntryInserterLegacyPass (PassRegistry &)
LLVM_ABI void initializeFinalizeISelPass (PassRegistry &)
LLVM_ABI void initializeFixIrreduciblePass (PassRegistry &)
LLVM_ABI void initializeFixupStatepointCallerSavedLegacyPass (PassRegistry &)
LLVM_ABI void initializeFlattenCFGLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeFuncletLayoutPass (PassRegistry &)
LLVM_ABI void initializeGCEmptyBasicBlocksPass (PassRegistry &)
LLVM_ABI void initializeGCMachineCodeAnalysisPass (PassRegistry &)
LLVM_ABI void initializeGCModuleInfoPass (PassRegistry &)
LLVM_ABI void initializeGVNLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeGlobalDCELegacyPassPass (PassRegistry &)
LLVM_ABI void initializeGlobalMergeFuncPassWrapperPass (PassRegistry &)
LLVM_ABI void initializeGlobalMergePass (PassRegistry &)
LLVM_ABI void initializeGlobalsAAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeHardwareLoopsLegacyPass (PassRegistry &)
LLVM_ABI void initializeMIRProfileLoaderPassPass (PassRegistry &)
LLVM_ABI void initializeIRSimilarityIdentifierWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeIRTranslatorPass (PassRegistry &)
LLVM_ABI void initializeIVUsersWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeIfConverterPass (PassRegistry &)
LLVM_ABI void initializeImmutableModuleSummaryIndexWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeImplicitNullChecksPass (PassRegistry &)
LLVM_ABI void initializeIndirectBrExpandLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeInferAddressSpacesPass (PassRegistry &)
LLVM_ABI void initializeInstSimplifyLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeInstructionCombiningPassPass (PassRegistry &)
LLVM_ABI void initializeInstructionSelectPass (PassRegistry &)
LLVM_ABI void initializeInterleavedAccessPass (PassRegistry &)
LLVM_ABI void initializeInterleavedLoadCombinePass (PassRegistry &)
LLVM_ABI void initializeJMCInstrumenterPass (PassRegistry &)
LLVM_ABI void initializeKCFIPass (PassRegistry &)
LLVM_ABI void initializeLCSSAVerificationPassPass (PassRegistry &)
LLVM_ABI void initializeLCSSAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeLazyBFIPassPass (PassRegistry &)
LLVM_ABI void initializeLazyBlockFrequencyInfoPassPass (PassRegistry &)
LLVM_ABI void initializeLazyBranchProbabilityInfoPassPass (PassRegistry &)
LLVM_ABI void initializeLazyMachineBlockFrequencyInfoPassPass (PassRegistry &)
LLVM_ABI void initializeLazyValueInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeLegacyLICMPassPass (PassRegistry &)
LLVM_ABI void initializeLegalizerPass (PassRegistry &)
LLVM_ABI void initializeGISelCSEAnalysisWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeGISelValueTrackingAnalysisLegacyPass (PassRegistry &)
LLVM_ABI void initializeLiveDebugValuesLegacyPass (PassRegistry &)
LLVM_ABI void initializeLiveDebugVariablesWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializeLiveIntervalsWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeLiveRangeShrinkPass (PassRegistry &)
LLVM_ABI void initializeLiveRegMatrixWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializeLiveStacksWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializeLiveVariablesWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeLoadStoreOptPass (PassRegistry &)
LLVM_ABI void initializeLoadStoreVectorizerLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeLocalStackSlotPassPass (PassRegistry &)
LLVM_ABI void initializeLocalizerPass (PassRegistry &)
LLVM_ABI void initializeLoopDataPrefetchLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeLoopExtractorLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeLoopInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeLoopPassPass (PassRegistry &)
 Manually defined generic "LoopPass" dependency initialization.
LLVM_ABI void initializeLoopSimplifyPass (PassRegistry &)
LLVM_ABI void initializeLoopStrengthReducePass (PassRegistry &)
LLVM_ABI void initializeLoopTermFoldPass (PassRegistry &)
LLVM_ABI void initializeLoopUnrollPass (PassRegistry &)
LLVM_ABI void initializeLowerAtomicLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeLowerEmuTLSPass (PassRegistry &)
LLVM_ABI void initializeLowerGlobalDtorsLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeLowerIntrinsicsPass (PassRegistry &)
LLVM_ABI void initializeLowerInvokeLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeLowerSwitchLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeMIRAddFSDiscriminatorsPass (PassRegistry &)
LLVM_ABI void initializeMIRCanonicalizerPass (PassRegistry &)
LLVM_ABI void initializeMIRNamerPass (PassRegistry &)
LLVM_ABI void initializeMIRPrintingPassPass (PassRegistry &)
LLVM_ABI void initializeMachineBlockFrequencyInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineBlockPlacementLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineBlockPlacementStatsLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineBranchProbabilityInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineCFGPrinterPass (PassRegistry &)
LLVM_ABI void initializeMachineCSELegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineCombinerPass (PassRegistry &)
LLVM_ABI void initializeMachineCopyPropagationLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineCycleInfoPrinterLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineCycleInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineDominanceFrontierPass (PassRegistry &)
LLVM_ABI void initializeMachineDominatorTreeWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineFunctionPrinterPassPass (PassRegistry &)
LLVM_ABI void initializeMachineFunctionSplitterPass (PassRegistry &)
LLVM_ABI void initializeMachineLateInstrsCleanupLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineLICMPass (PassRegistry &)
LLVM_ABI void initializeMachineLoopInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineModuleInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineOptimizationRemarkEmitterPassPass (PassRegistry &)
LLVM_ABI void initializeMachineOutlinerPass (PassRegistry &)
LLVM_ABI void initializeStaticDataProfileInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeStaticDataAnnotatorPass (PassRegistry &)
LLVM_ABI void initializeMachinePipelinerPass (PassRegistry &)
LLVM_ABI void initializeMachinePostDominatorTreeWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineRegionInfoPassPass (PassRegistry &)
LLVM_ABI void initializeMachineSanitizerBinaryMetadataLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineSchedulerLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineSinkingLegacyPass (PassRegistry &)
LLVM_ABI void initializeMachineTraceMetricsWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMachineUniformityInfoPrinterPassPass (PassRegistry &)
LLVM_ABI void initializeMachineUniformityAnalysisPassPass (PassRegistry &)
LLVM_ABI void initializeMachineVerifierLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeMemoryDependenceWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMemorySSAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeMergeICmpsLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeModuleSummaryIndexWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeModuloScheduleTestPass (PassRegistry &)
LLVM_ABI void initializeNaryReassociateLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeObjCARCContractLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeOptimizationRemarkEmitterWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeOptimizePHIsLegacyPass (PassRegistry &)
LLVM_ABI void initializePEILegacyPass (PassRegistry &)
LLVM_ABI void initializePHIEliminationPass (PassRegistry &)
LLVM_ABI void initializePartiallyInlineLibCallsLegacyPassPass (PassRegistry &)
LLVM_ABI void initializePatchableFunctionLegacyPass (PassRegistry &)
LLVM_ABI void initializePeepholeOptimizerLegacyPass (PassRegistry &)
LLVM_ABI void initializePhiValuesWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePhysicalRegisterUsageInfoWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializePlaceBackedgeSafepointsLegacyPassPass (PassRegistry &)
LLVM_ABI void initializePostDomOnlyPrinterWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePostDomOnlyViewerWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePostDomPrinterWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePostDomViewerWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePostDominatorTreeWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePostInlineEntryExitInstrumenterPass (PassRegistry &)
LLVM_ABI void initializePostMachineSchedulerLegacyPass (PassRegistry &)
LLVM_ABI void initializePostRAHazardRecognizerLegacyPass (PassRegistry &)
LLVM_ABI void initializePostRAMachineSinkingLegacyPass (PassRegistry &)
LLVM_ABI void initializePostRASchedulerLegacyPass (PassRegistry &)
LLVM_ABI void initializePreISelIntrinsicLoweringLegacyPassPass (PassRegistry &)
LLVM_ABI void initializePrintFunctionPassWrapperPass (PassRegistry &)
LLVM_ABI void initializePrintModulePassWrapperPass (PassRegistry &)
LLVM_ABI void initializeProcessImplicitDefsLegacyPass (PassRegistry &)
LLVM_ABI void initializeProfileSummaryInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializePromoteLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeRABasicPass (PassRegistry &)
LLVM_ABI void initializePseudoProbeInserterPass (PassRegistry &)
LLVM_ABI void initializeRAGreedyLegacyPass (PassRegistry &)
LLVM_ABI void initializeReachingDefAnalysisPass (PassRegistry &)
LLVM_ABI void initializeReassociateLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeRegAllocEvictionAdvisorAnalysisLegacyPass (PassRegistry &)
LLVM_ABI void initializeRegAllocFastPass (PassRegistry &)
LLVM_ABI void initializeRegAllocPriorityAdvisorAnalysisLegacyPass (PassRegistry &)
LLVM_ABI void initializeRegAllocScoringPass (PassRegistry &)
LLVM_ABI void initializeRegBankSelectPass (PassRegistry &)
LLVM_ABI void initializeRegToMemWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeRegUsageInfoCollectorLegacyPass (PassRegistry &)
LLVM_ABI void initializeRegUsageInfoPropagationLegacyPass (PassRegistry &)
LLVM_ABI void initializeRegionInfoPassPass (PassRegistry &)
LLVM_ABI void initializeRegionOnlyPrinterPass (PassRegistry &)
LLVM_ABI void initializeRegionOnlyViewerPass (PassRegistry &)
LLVM_ABI void initializeRegionPrinterPass (PassRegistry &)
LLVM_ABI void initializeRegionViewerPass (PassRegistry &)
LLVM_ABI void initializeRegisterCoalescerLegacyPass (PassRegistry &)
LLVM_ABI void initializeRemoveLoadsIntoFakeUsesLegacyPass (PassRegistry &)
LLVM_ABI void initializeRemoveRedundantDebugValuesLegacyPass (PassRegistry &)
LLVM_ABI void initializeRenameIndependentSubregsLegacyPass (PassRegistry &)
LLVM_ABI void initializeReplaceWithVeclibLegacyPass (PassRegistry &)
LLVM_ABI void initializeResetMachineFunctionPass (PassRegistry &)
LLVM_ABI void initializeSCEVAAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeSROALegacyPassPass (PassRegistry &)
LLVM_ABI void initializeSafeStackLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeSafepointIRVerifierPass (PassRegistry &)
LLVM_ABI void initializeSelectOptimizePass (PassRegistry &)
LLVM_ABI void initializeScalarEvolutionWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeScalarizeMaskedMemIntrinLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeScalarizerLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeScavengerTestPass (PassRegistry &)
LLVM_ABI void initializeScopedNoAliasAAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeSeparateConstOffsetFromGEPLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeShadowStackGCLoweringPass (PassRegistry &)
LLVM_ABI void initializeShrinkWrapLegacyPass (PassRegistry &)
LLVM_ABI void initializeSingleLoopExtractorPass (PassRegistry &)
LLVM_ABI void initializeSinkingLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeSjLjEHPreparePass (PassRegistry &)
LLVM_ABI void initializeSlotIndexesWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeSpeculativeExecutionLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeSpillPlacementWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializeStackColoringLegacyPass (PassRegistry &)
LLVM_ABI void initializeStackFrameLayoutAnalysisLegacyPass (PassRegistry &)
LLVM_ABI void initializeStaticDataSplitterPass (PassRegistry &)
LLVM_ABI void initializeStackMapLivenessPass (PassRegistry &)
LLVM_ABI void initializeStackProtectorPass (PassRegistry &)
LLVM_ABI void initializeStackSafetyGlobalInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeStackSafetyInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeStackSlotColoringLegacyPass (PassRegistry &)
LLVM_ABI void initializeStraightLineStrengthReduceLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeStripDebugMachineModulePass (PassRegistry &)
LLVM_ABI void initializeStructurizeCFGLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeTailCallElimPass (PassRegistry &)
LLVM_ABI void initializeTailDuplicateLegacyPass (PassRegistry &)
LLVM_ABI void initializeTargetLibraryInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeTargetPassConfigPass (PassRegistry &)
LLVM_ABI void initializeTargetTransformInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeTwoAddressInstructionLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeTypeBasedAAWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeTypePromotionLegacyPass (PassRegistry &)
LLVM_ABI void initializeInitUndefLegacyPass (PassRegistry &)
LLVM_ABI void initializeUniformityInfoWrapperPassPass (PassRegistry &)
LLVM_ABI void initializeUnifyLoopExitsLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeUnpackMachineBundlesPass (PassRegistry &)
LLVM_ABI void initializeUnreachableBlockElimLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeUnreachableMachineBlockElimLegacyPass (PassRegistry &)
LLVM_ABI void initializeVerifierLegacyPassPass (PassRegistry &)
LLVM_ABI void initializeVirtRegMapWrapperLegacyPass (PassRegistry &)
LLVM_ABI void initializeVirtRegRewriterLegacyPass (PassRegistry &)
LLVM_ABI void initializeWasmEHPreparePass (PassRegistry &)
LLVM_ABI void initializeWindowsSecureHotPatchingPass (PassRegistry &)
LLVM_ABI void initializeWinEHPreparePass (PassRegistry &)
LLVM_ABI void initializeWriteBitcodePassPass (PassRegistry &)
LLVM_ABI void initializeXRayInstrumentationLegacyPass (PassRegistry &)
template<typename UnaryFunction>
void forEachCallbackCallSite (const CallBase &CB, UnaryFunction Func)
 Apply function Func to each CB's callback call site.
template<typename UnaryFunction>
void forEachCallbackFunction (const CallBase &CB, UnaryFunction Func)
 Apply function Func to each CB's callback function.
LLVM_ABI StringSetgetKnownAssumptionStrings ()
 A set of known assumption strings that are accepted without warning and which can be recommended as typo correction.
LLVM_ABI bool hasAssumption (const Function &F, const KnownAssumptionString &AssumptionStr)
 Return true if F has the assumption AssumptionStr attached.
LLVM_ABI bool hasAssumption (const CallBase &CB, const KnownAssumptionString &AssumptionStr)
 Return true if CB or the callee has the assumption AssumptionStr attached.
LLVM_ABI DenseSet< StringRefgetAssumptions (const Function &F)
 Return the set of all assumptions for the function F.
LLVM_ABI DenseSet< StringRefgetAssumptions (const CallBase &CB)
 Return the set of all assumptions for the call CB.
LLVM_ABI bool addAssumptions (Function &F, const DenseSet< StringRef > &Assumptions)
 Appends the set of assumptions Assumptions to \F.
LLVM_ABI bool addAssumptions (CallBase &CB, const DenseSet< StringRef > &Assumptions)
 Appends the set of assumptions Assumptions to \CB.
LLVMAttributeRef wrap (Attribute Attr)
Attribute unwrap (LLVMAttributeRef Attr)
LLVM_ABI AttributeMask typeIncompatible (Type *Ty, AttributeSet AS, AttributeSafetyKind ASK=ASK_ALL)
 This class holds the attributes for a function, its return value, and its parameters.
LLVM_ABI AttributeMask getUBImplyingAttributes ()
 Get param/return attributes which imply immediate undefined behavior if an invalid value is passed.
LLVM_ABI bool areInlineCompatible (const Function &Caller, const Function &Callee)
LLVM_ABI bool areOutlineCompatible (const Function &A, const Function &B)
 Checks if there are any incompatible function attributes between A and B.
LLVM_ABI void mergeAttributesForInlining (Function &Caller, const Function &Callee)
 Merge caller's and callee's attributes.
LLVM_ABI void mergeAttributesForOutlining (Function &Base, const Function &ToMerge)
 Merges the functions attributes from ToMerge into function Base.
LLVM_ABI void updateMinLegalVectorWidthAttr (Function &Fn, uint64_t Width)
 Update min-legal-vector-width if it is in Attribute and less than Width.
LLVM_ABI bool UpgradeIntrinsicFunction (Function *F, Function *&NewFn, bool CanUpgradeDebugIntrinsicsToRecords=true)
 This is a more granular function that simply checks an intrinsic function for upgrading, and returns true if it requires upgrading.
LLVM_ABI void UpgradeIntrinsicCall (CallBase *CB, 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.
LLVM_ABI void UpgradeInlineAsmString (std::string *AsmStr)
 Upgrade comment in call to inline asm that represents an objc retain release marker.
LLVM_ABI 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.
LLVM_ABI GlobalVariableUpgradeGlobalVariable (GlobalVariable *GV)
 This checks for global variables which should be upgraded.
LLVM_ABI bool UpgradeModuleFlags (Module &M)
 This checks for module flags which should be upgraded.
LLVM_ABI void UpgradeNVVMAnnotations (Module &M)
 Convert legacy nvvm.annotations metadata to appropriate function attributes.
LLVM_ABI void UpgradeARCRuntime (Module &M)
 Convert calls to ARC runtime functions to intrinsic calls and upgrade the old retain release marker to new module flag format.
LLVM_ABI void UpgradeSectionAttributes (Module &M)
LLVM_ABI void UpgradeFunctionAttributes (Function &F)
 Correct any IR that is relying on old function attribute behavior.
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI ConstantUpgradeBitCastExpr (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.
LLVM_ABI bool UpgradeDebugInfo (Module &M)
 Check the debug info version number, if it is out-dated, drop the debug info.
bool mayBeOldLoopAttachmentTag (StringRef Name)
 Check whether a string looks like an old loop attachment tag.
LLVM_ABI MDNodeupgradeInstructionLoopAttachment (MDNode &N)
 Upgrade the loop attachment metadata node.
LLVM_ABI std::string UpgradeDataLayoutString (StringRef DL, StringRef Triple)
 Upgrade the datalayout string by adding a section for address space pointers.
LLVM_ABI void UpgradeAttributes (AttrBuilder &B)
 Upgrade attributes that changed format or kind.
LLVM_ABI void UpgradeOperandBundles (std::vector< OperandBundleDef > &OperandBundles)
 Upgrade operand bundles (without knowing about their user instruction).
LLVM_ABI BasicBlock::iterator skipDebugIntrinsics (BasicBlock::iterator It)
 Advance It while it points to a debug instruction and return the result.
LLVM_ABI void linkAllBuiltinGCs ()
 FIXME: Collector instances are not useful on their own.
LLVM_ABI void linkOcamlGCPrinter ()
 Creates an ocaml-compatible metadata printer.
LLVM_ABI void linkErlangGCPrinter ()
 Creates an erlang-compatible metadata printer.
constexpr bool isCallableCC (CallingConv::ID CC)
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.
pred_range predecessors (BasicBlock *BB)
const_pred_range predecessors (const BasicBlock *BB)
succ_iterator succ_begin (Instruction *I)
const_succ_iterator succ_begin (const Instruction *I)
succ_iterator succ_end (Instruction *I)
const_succ_iterator succ_end (const Instruction *I)
bool succ_empty (const Instruction *I)
unsigned succ_size (const Instruction *I)
succ_range successors (Instruction *I)
const_succ_range successors (const Instruction *I)
succ_iterator succ_begin (BasicBlock *BB)
const_succ_iterator succ_begin (const BasicBlock *BB)
succ_iterator succ_end (BasicBlock *BB)
const_succ_iterator succ_end (const BasicBlock *BB)
bool succ_empty (const BasicBlock *BB)
unsigned succ_size (const BasicBlock *BB)
succ_range successors (BasicBlock *BB)
const_succ_range successors (const BasicBlock *BB)
raw_ostreamoperator<< (raw_ostream &OS, const Comdat &C)
LLVM_ABI ConstantConstantFoldCastInstruction (unsigned opcode, Constant *V, Type *DestTy)
LLVM_ABI ConstantConstantFoldUnaryInstruction (unsigned Opcode, Constant *V)
LLVM_ABI ConstantConstantFoldBinaryInstruction (unsigned Opcode, Constant *V1, Constant *V2)
LLVM_ABI ConstantConstantFoldCompareInstruction (CmpInst::Predicate Predicate, Constant *C1, Constant *C2)
LLVM_ABI ConstantConstantFoldGetElementPtr (Type *Ty, Constant *C, std::optional< ConstantRange > InRange, ArrayRef< Value * > Idxs)
raw_ostreamoperator<< (raw_ostream &OS, const ConstantFPRange &CR)
raw_ostreamoperator<< (raw_ostream &OS, const ConstantRange &CR)
LLVM_ABI ConstantRange getConstantRangeFromMetadata (const MDNode &RangeMD)
 Parse out a conservative ConstantRange from !range metadata.
DataLayoutunwrap (LLVMTargetDataRef P)
LLVMTargetDataRef wrap (const DataLayout *P)
LLVM_ABI TinyPtrVector< DbgVariableRecord * > findDVRDeclares (Value *V)
 Finds dbg.declare records declaring local variables as living in the memory that 'V' points to.
LLVM_ABI TinyPtrVector< DbgVariableRecord * > findDVRValues (Value *V)
 As above, for DVRValues.
LLVM_ABI void findDbgUsers (Value *V, SmallVectorImpl< DbgVariableRecord * > &DbgVariableRecords)
 Finds the debug info records describing a value.
LLVM_ABI void findDbgValues (Value *V, SmallVectorImpl< DbgVariableRecord * > &DbgVariableRecords)
 Finds the dbg.values describing a value.
LLVM_ABI DISubprogramgetDISubprogram (const MDNode *Scope)
 Find subprogram that is enclosing this scope.
LLVM_ABI DebugLoc getDebugValueLoc (DbgVariableRecord *DVR)
 Produce a DebugLoc to use for each dbg.declare that is promoted to a dbg.value.
LLVM_ABI bool StripDebugInfo (Module &M)
 Strip debug info in the module if it exists.
LLVM_ABI bool stripDebugInfo (Function &F)
LLVM_ABI bool stripNonLineTableDebugInfo (Module &M)
 Downgrade the debug info in a module to contain only line table information.
LLVM_ABI void updateLoopMetadataDebugLocations (Instruction &I, function_ref< Metadata *(Metadata *)> Updater)
 Update the debug locations contained within the MD_loop metadata attached to the instruction I, if one exists.
LLVM_ABI unsigned getDebugMetadataVersionFromModule (const Module &M)
 Return Debug Info Metadata Version by checking module flags.
LLVM_ABI bool isAssignmentTrackingEnabled (const Module &M)
 Return true if assignment tracking is enabled for module M.
bool operator== (DIDerivedType::PtrAuthData Lhs, DIDerivedType::PtrAuthData Rhs)
bool operator!= (DIDerivedType::PtrAuthData Lhs, DIDerivedType::PtrAuthData Rhs)
bool operator== (const DIExpression::FragmentInfo &A, const DIExpression::FragmentInfo &B)
bool operator< (const DIExpression::FragmentInfo &A, const DIExpression::FragmentInfo &B)
raw_ostreamoperator<< (raw_ostream &OS, const DbgRecord &R)
static auto filterDbgVars (iterator_range< simple_ilist< DbgRecord >::iterator > R)
 Filter the DbgRecord range to DbgVariableRecord types only and downcast.
raw_ostreamoperator<< (raw_ostream &OS, const DbgMarker &Marker)
iterator_range< simple_ilist< DbgRecord >::iterator > getDbgRecordRange (DbgMarker *DebugMarker)
 Inline helper to return a range of DbgRecords attached to a marker.
LLVM_ABI int getNextAvailablePluginDiagnosticKind ()
 Get the next available kind ID for a plugin diagnostic.
template<class RemarkT>
decltype(auto) operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, StringRef > S)
 Allow the insertion operator to return the actual remark type rather than a common base class.
template<class RemarkT>
decltype(auto) operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, DiagnosticInfoOptimizationBase::Argument > A)
template<class RemarkT>
decltype(auto) operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, DiagnosticInfoOptimizationBase::setIsVerbose > V)
template<class RemarkT>
decltype(auto) operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, DiagnosticInfoOptimizationBase::setExtraArgs > EA)
static DiagnosticSeverity getDiagnosticSeverity (SourceMgr::DiagKind DK)
LLVM_ABI void diagnoseDontCall (const CallInst &CI)
LLVM_ABI EHPersonality classifyEHPersonality (const Value *Pers)
 See if the given exception handling personality function is one that we understand.
LLVM_ABI StringRef getEHPersonalityName (EHPersonality Pers)
LLVM_ABI EHPersonality getDefaultEHPersonality (const Triple &T)
bool isAsynchronousEHPersonality (EHPersonality Pers)
 Returns true if this personality function catches asynchronous exceptions.
bool isFuncletEHPersonality (EHPersonality Pers)
 Returns true if this is a personality function that invokes handler funclets (which must return to it).
bool isScopedEHPersonality (EHPersonality Pers)
 Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret.
bool isNoOpWithoutInvoke (EHPersonality Pers)
 Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function.
LLVM_ABI bool canSimplifyInvokeNoUnwind (const Function *F)
LLVM_ABI DenseMap< BasicBlock *, ColorVectorcolorEHFunclets (Function &F)
 If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet.
FastMathFlags operator| (FastMathFlags LHS, FastMathFlags RHS)
FastMathFlags operator& (FastMathFlags LHS, FastMathFlags RHS)
raw_ostreamoperator<< (raw_ostream &O, FastMathFlags FMF)
LLVM_ABI std::optional< RoundingModeconvertStrToRoundingMode (StringRef)
 Returns a valid RoundingMode enumerator when given a string that is valid as input in constrained intrinsic rounding mode metadata.
LLVM_ABI std::optional< StringRefconvertRoundingModeToStr (RoundingMode)
 For any RoundingMode enumerator, returns a string valid as input in constrained intrinsic rounding mode metadata.
LLVM_ABI std::optional< fp::ExceptionBehaviorconvertStrToExceptionBehavior (StringRef)
 Returns a valid ExceptionBehavior enumerator when given a string valid as input in constrained intrinsic exception behavior metadata.
LLVM_ABI std::optional< StringRefconvertExceptionBehaviorToStr (fp::ExceptionBehavior)
 For any ExceptionBehavior enumerator, returns a string valid as input in constrained intrinsic exception behavior metadata.
bool isDefaultFPEnvironment (fp::ExceptionBehavior EB, RoundingMode RM)
 Returns true if the exception handling behavior and rounding mode match what is used in the default floating point environment.
LLVM_ABI Intrinsic::ID getConstrainedIntrinsicID (const Instruction &Instr)
 Returns constrained intrinsic id to represent the given instruction in strictfp function.
bool canRoundingModeBe (RoundingMode RM, RoundingMode QRM)
 Returns true if the rounding mode RM may be QRM at compile time or at run time.
bool canIgnoreSNaN (fp::ExceptionBehavior EB, FastMathFlags FMF)
 Returns true if the possibility of a signaling NaN can be safely ignored.
LLVM_ABI 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.
LLVM_ABI std::unique_ptr< GCStrategygetGCStrategy (const StringRef Name)
 Lookup the GCStrategy object associated with the given gc name.
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)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, CmpInst::Predicate Pred)
TypecheckGEPType (Type *Ty)
const ValuegetLoadStorePointerOperand (const Value *V)
 A helper function that returns the pointer operand of a load or store instruction.
ValuegetLoadStorePointerOperand (Value *V)
const ValuegetPointerOperand (const Value *V)
 A helper function that returns the pointer operand of a load, store or GEP instruction.
ValuegetPointerOperand (Value *V)
Align getLoadStoreAlignment (const Value *I)
 A helper function that returns the alignment of load or store instruction.
void setLoadStoreAlignment (Value *I, Align NewAlign)
 A helper function that set the alignment of load or store instruction.
unsigned getLoadStoreAddressSpace (const Value *I)
 A helper function that returns the address space of the pointer operand of load or store instruction.
TypegetLoadStoreType (const Value *I)
 A helper function that returns the type of a load or store instruction.
std::optional< SyncScope::IDgetAtomicSyncScopeID (const Instruction *I)
 A helper function that returns an atomic operation's sync scope; returns std::nullopt if it is not an atomic operation.
void setAtomicSyncScopeID (Instruction *I, SyncScope::ID SSID)
 A helper function that sets an atomic operation's sync scope.
static bool isLifetimeIntrinsic (Intrinsic::ID ID)
 Check if ID corresponds to a lifetime intrinsic.
static bool isDbgInfoIntrinsic (Intrinsic::ID ID)
 Check if ID corresponds to a debug info intrinsic.
static bool isConvergenceControlIntrinsic (unsigned IntrinsicID)
 Check if ID corresponds to a convergence control intrinsic.
template<typename FolderTy, typename InserterTy>
 IRBuilder (LLVMContext &, FolderTy, InserterTy, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder< FolderTy, InserterTy >
 IRBuilder (LLVMContext &, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder<>
template<typename FolderTy>
 IRBuilder (BasicBlock *, FolderTy, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder< FolderTy >
 IRBuilder (BasicBlock *, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder<>
 IRBuilder (Instruction *, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder<>
template<typename FolderTy>
 IRBuilder (BasicBlock *, BasicBlock::iterator, FolderTy, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder< FolderTy >
 IRBuilder (BasicBlock *, BasicBlock::iterator, MDNode *, ArrayRef< OperandBundleDef >) -> IRBuilder<>
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI void printLLVMNameWithoutPrefix (raw_ostream &OS, StringRef Name)
 Print out a name of an LLVM value without any prefixes.
LLVM_ABI bool isIRPrintingPass (Pass *P)
 Return true if a pass is for IR printing.
LLVMContext ** unwrap (LLVMContextRef *Tys)
LLVMContextRefwrap (const LLVMContext **Tys)
LLVM_ABI Expected< std::unique_ptr< ToolOutputFile > > setupLLVMOptimizationRemarks (LLVMContext &Context, StringRef RemarksFilename, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, std::optional< uint64_t > RemarksHotnessThreshold=0)
 Setup optimization remarks that output to a file.
LLVM_ABI Error setupLLVMOptimizationRemarks (LLVMContext &Context, raw_ostream &OS, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, std::optional< uint64_t > RemarksHotnessThreshold=0)
 Setup optimization remarks that output directly to a raw_ostream.
LLVM_ABI void emitLinkerFlagsForGlobalCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &TT, Mangler &Mangler)
LLVM_ABI void emitLinkerFlagsForUsedCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &T, Mangler &M)
LLVM_ABI std::optional< std::string > getArm64ECMangledFunctionName (StringRef Name)
 Returns the ARM64EC mangled function name unless the input is already mangled.
LLVM_ABI std::optional< std::string > getArm64ECDemangledFunctionName (StringRef Name)
 Returns the ARM64EC demangled function name, unless the input is not mangled.
bool isArm64ECMangledFunctionName (StringRef Name)
 Check if an ARM64EC function name is mangled.
LLVM_ABI bool canInstructionHaveMMRAs (const Instruction &I)
Metadata ** unwrap (LLVMMetadataRef *MDs)
raw_ostreamoperator<< (raw_ostream &OS, const Metadata &MD)
LLVM_ABI GlobalVariablecollectUsedGlobalVariables (const Module &M, SmallVectorImpl< GlobalValue * > &Vec, bool CompilerUsed)
 Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that global in a SmallVector and return the global itself.
raw_ostreamoperator<< (raw_ostream &O, const Module &M)
 An raw_ostream inserter for modules.
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)
raw_ostreamoperator<< (raw_ostream &OS, const CallsiteInfo &SNI)
raw_ostreamoperator<< (raw_ostream &OS, const MIBInfo &MIB)
raw_ostreamoperator<< (raw_ostream &OS, const AllocInfo &AE)
LLVM_ABI OptPassGategetGlobalPassGate ()
 Singleton instance of the OptPassGate class, so multiple pass managers don't need to coordinate their uses of OptBisect and OptDisable.
LLVM_ABI bool isSpecialPass (StringRef PassID, const std::vector< StringRef > &Specials)
template<typename IRUnitT>
void printIRUnitNameForStackTrace (raw_ostream &OS, const IRUnitT &IR)
template<>
LLVM_ABI void printIRUnitNameForStackTrace< Module > (raw_ostream &OS, const Module &IR)
template<>
LLVM_ABI void printIRUnitNameForStackTrace< Function > (raw_ostream &OS, const Function &IR)
template<typename FunctionPassT>
ModuleToFunctionPassAdaptor createModuleToFunctionPassAdaptor (FunctionPassT &&Pass, bool EagerlyInvalidate=false)
 A function to deduce a function pass type and wrap it in the templated adaptor.
LLVM_ABI void reportAndResetTimings (raw_ostream *OutStream=nullptr)
 If -time-passes has been specified, report the timings immediately and then reset the timers to zero.
LLVM_ABI TimergetPassTimer (Pass *)
 Request the timer for this legacy-pass-manager's pass instance.
bool shouldPrintBeforeSomePass ()
 This is a helper to determine whether to print IR before or after a pass.
bool shouldPrintAfterSomePass ()
bool shouldPrintBeforePass (StringRef PassID)
bool shouldPrintAfterPass (StringRef PassID)
bool shouldPrintBeforeAll ()
bool shouldPrintAfterAll ()
std::vector< std::string > printBeforePasses ()
std::vector< std::string > printAfterPasses ()
bool forcePrintModuleIR ()
bool forcePrintFuncIR ()
bool isPassInPrintList (StringRef PassName)
bool isFilterPassesEmpty ()
bool isFunctionInPrintList (StringRef FunctionName)
std::error_code prepareTempFiles (SmallVector< int > &FD, ArrayRef< StringRef > SR, SmallVector< std::string > &FileName)
std::error_code cleanUpTempFiles (ArrayRef< std::string > FileName)
std::string doSystemDiff (StringRef Before, StringRef After, StringRef OldLineFormat, StringRef NewLineFormat, StringRef UnchangedLineFormat)
LLVM_ABI bool hasProfMD (const Instruction &I)
 Checks if an Instruction has MD_prof Metadata.
LLVM_ABI bool isBranchWeightMD (const MDNode *ProfileData)
 Checks if an MDNode contains Branch Weight Metadata.
LLVM_ABI bool isValueProfileMD (const MDNode *ProfileData)
 Checks if an MDNode contains value profiling Metadata.
LLVM_ABI bool hasBranchWeightMD (const Instruction &I)
 Checks if an instructions has Branch Weight Metadata.
LLVM_ABI bool hasValidBranchWeightMD (const Instruction &I)
 Checks if an instructions has valid Branch Weight Metadata.
LLVM_ABI MDNodegetBranchWeightMDNode (const Instruction &I)
 Get the branch weights metadata node.
LLVM_ABI MDNodegetValidBranchWeightMDNode (const Instruction &I)
 Get the valid branch weights metadata node.
LLVM_ABI bool hasBranchWeightOrigin (const Instruction &I)
 Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic.
LLVM_ABI bool hasBranchWeightOrigin (const MDNode *ProfileData)
 Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic.
LLVM_ABI unsigned getBranchWeightOffset (const MDNode *ProfileData)
 Return the offset to the first branch weight data.
LLVM_ABI unsigned getNumBranchWeights (const MDNode &ProfileData)
LLVM_ABI bool extractBranchWeights (const MDNode *ProfileData, SmallVectorImpl< uint32_t > &Weights)
 Extract branch weights from MD_prof metadata.
LLVM_ABI void extractFromBranchWeightMD32 (const MDNode *ProfileData, SmallVectorImpl< uint32_t > &Weights)
 Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes.
LLVM_ABI void extractFromBranchWeightMD64 (const MDNode *ProfileData, SmallVectorImpl< uint64_t > &Weights)
 Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes.
LLVM_ABI bool extractBranchWeights (const Instruction &I, SmallVectorImpl< uint32_t > &Weights)
 Extract branch weights attatched to an Instruction.
LLVM_ABI bool extractBranchWeights (const Instruction &I, uint64_t &TrueVal, uint64_t &FalseVal)
 Extract branch weights from a conditional branch or select Instruction.
LLVM_ABI bool extractProfTotalWeight (const MDNode *ProfileData, uint64_t &TotalWeights)
 Retrieve the total of all weights from MD_prof data.
LLVM_ABI bool extractProfTotalWeight (const Instruction &I, uint64_t &TotalWeights)
 Retrieve the total of all weights from an instruction.
LLVM_ABI void setBranchWeights (Instruction &I, ArrayRef< uint32_t > Weights, bool IsExpected)
 Create a new branch_weights metadata node and add or overwrite a prof metadata reference to instruction I.
LLVM_ABI SmallVector< uint32_tdownscaleWeights (ArrayRef< uint64_t > Weights, std::optional< uint64_t > KnownMaxCount=std::nullopt)
 downscale the given weights preserving the ratio.
uint64_t calculateCountScale (uint64_t MaxCount)
 Calculate what to divide by to scale counts.
uint32_t scaleBranchCount (uint64_t Count, uint64_t Scale)
 Scale an individual branch count.
LLVM_ABI void setExplicitlyUnknownBranchWeights (Instruction &I, StringRef PassName)
 Specify that the branch weights for this terminator cannot be known at compile time.
LLVM_ABI void setExplicitlyUnknownFunctionEntryCount (Function &F, StringRef PassName)
 Analogous to setExplicitlyUnknownBranchWeights, but for functions and their entry counts.
LLVM_ABI bool isExplicitlyUnknownProfileMetadata (const MDNode &MD)
LLVM_ABI bool hasExplicitlyUnknownBranchWeights (const Instruction &I)
LLVM_ABI void scaleProfData (Instruction &I, uint64_t S, uint64_t T)
 Scaling the profile data attached to 'I' using the ratio of S/T.
SmallVector< uint64_t, 2 > getDisjunctionWeights (const SmallVector< uint32_t, 2 > &B1, const SmallVector< uint32_t, 2 > &B2)
 Get the branch weights of a branch conditioned on b1 || b2, where b1 and b2 are 2 booleans that are the conditions of 2 branches for which we have the branch weights B1 and B2, respectively.
static bool isSentinelProbe (uint32_t Flags)
static bool hasDiscriminator (uint32_t Flags)
LLVM_ABI std::optional< PseudoProbeextractProbe (const Instruction &Inst)
LLVM_ABI void setProbeDistributionFactor (Instruction &Inst, float Factor)
LLVM_ABI bool convertUsersOfConstantsToInstructions (ArrayRef< Constant * > Consts, Function *RestrictToFunc=nullptr, bool RemoveDeadConstants=true, bool IncludeSelf=false)
 Replace constant expressions users of the given constants with instructions.
void verifySafepointIR (Function &F)
 Run the safepoint verifier over a single function. Crashes on failure.
FunctionPasscreateSafepointIRVerifierPass ()
 Create an instance of the safepoint verifier pass which can be added to a pass pipeline to check for relocation bugs.
auto instrs (const BasicBlock &BB)
StatepointDirectives parseStatepointDirectivesFromAttrs (AttributeList AS)
 Parse out statepoint directives from the function attributes present in AS.
bool isStatepointDirectiveAttr (Attribute Attr)
 Return true if the Attr is an attribute that is a statepoint directive.
LLVM_ABI stable_hash StructuralHash (const Function &F, bool DetailedHash=false)
 Returns a hash of the function F.
LLVM_ABI stable_hash StructuralHash (const GlobalVariable &G)
 Returns a hash of the global variable G.
LLVM_ABI stable_hash StructuralHash (const Module &M, bool DetailedHash=false)
 Returns a hash of the module M by hashing all functions and global variables contained within.
LLVM_ABI FunctionHashInfo StructuralHashWithDifferences (const Function &F, IgnoreOperandFunc IgnoreOp)
 Computes a structural hash of a given function, considering the structure and content of the function's instructions while allowing for selective ignoring of certain operands based on custom criteria.
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)
TypetoVectorTy (Type *Scalar, ElementCount EC)
 A helper function for converting Scalar types to vector types.
TypetoVectorTy (Type *Scalar, unsigned VF)
LLVM_ABI TypetoVectorizedStructTy (StructType *StructTy, ElementCount EC)
 A helper for converting structs of scalar types to structs of vector types.
LLVM_ABI TypetoScalarizedStructTy (StructType *StructTy)
 A helper for converting structs of vector types to structs of scalar types.
LLVM_ABI bool isVectorizedStructTy (StructType *StructTy)
 Returns true if StructTy is an unpacked literal struct where all elements are vectors of matching element count.
LLVM_ABI bool canVectorizeStructTy (StructType *StructTy)
 Returns true if StructTy is an unpacked literal struct where all elements are scalars that can be used as vector element types.
TypetoVectorizedTy (Type *Ty, ElementCount EC)
 A helper for converting to vectorized types.
TypetoScalarizedTy (Type *Ty)
 A helper for converting vectorized types to scalarized (non-vector) types.
bool isVectorizedTy (Type *Ty)
 Returns true if Ty is a vector type or a struct of vector types where all vector types share the same VF.
bool canVectorizeTy (Type *Ty)
 Returns true if Ty is a valid vector element type, void, or an unpacked literal struct where all elements are valid vector element types.
ArrayRef< Type * > getContainedTypes (Type *const &Ty)
 Returns the types contained in Ty.
ElementCount getVectorizedTypeVF (Type *Ty)
 Returns the number of vector elements for a vectorized type.
bool isUnpackedStructLiteral (StructType *StructTy)
LLVM_ABI bool verifyFunction (const Function &F, raw_ostream *OS=nullptr)
 Check a function for errors, useful for use when debugging a pass.
LLVM_ABI bool verifyModule (const Module &M, raw_ostream *OS=nullptr, bool *BrokenDebugInfo=nullptr)
 Check a module for errors.
LLVM_ABI FunctionPasscreateVerifierPass (bool FatalErrors=true)
LLVM_ABI std::unique_ptr< ModulegetLazyIRModule (std::unique_ptr< MemoryBuffer > Buffer, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata=false)
 If the given MemoryBuffer holds a bitcode image, return a Module for it which does lazy deserialization of function bodies.
LLVM_ABI 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.
LLVM_ABI std::unique_ptr< ModuleparseIR (MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context, ParserCallbacks Callbacks={})
 If the given MemoryBuffer holds a bitcode image, return a Module for it.
LLVM_ABI std::unique_ptr< ModuleparseIRFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, ParserCallbacks Callbacks={})
 If the given file holds a bitcode image, return a Module for it.
LLVM_ABI void parseCommandLineOptions (std::vector< std::string > &Options)
 A convenience function that calls cl::ParseCommandLineOptions on the given set of options.
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.
LLVM_ABI void thinLTOResolvePrevailingInIndex (const lto::Config &C, ModuleSummaryIndex &Index, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols)
 Resolve linkage for prevailing symbols in the Index.
LLVM_ABI void thinLTOInternalizeAndPromoteInIndex (ModuleSummaryIndex &Index, function_ref< bool(StringRef, ValueInfo)> isExported, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)
 Update the linkages in the given Index to mark exported values as external and non-exported values as internal.
LLVM_ABI std::string computeLTOCacheKey (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 DenseSet< GlobalValue::GUID > &CfiFunctionDefs={}, const DenseSet< GlobalValue::GUID > &CfiFunctionDecls={})
 Computes a unique hash for the Module considering the current list of export/import and other global analysis results.
LLVM_ABI std::string recomputeLTOCacheKey (const std::string &Key, StringRef ExtraID)
 Recomputes the LTO cache key for a given key with an extra identifier.
Printable PrintLaneMask (LaneBitmask LaneMask)
 Create Printable object to print LaneBitmasks on a raw_ostream.
bool operator!= (const MachineLocation &LHS, const MachineLocation &RHS)
MCELFStreamercreateARMELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool IsThumb, bool IsAndroid)
std::unique_ptr< MCObjectWritercreateGOFFObjectWriter (std::unique_ptr< MCGOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
 Construct a new GOFF writer instance.
raw_ostreamoperator<< (raw_ostream &OS, const MCOperand &MO)
raw_ostreamoperator<< (raw_ostream &OS, const MCInst &MI)
LLVM_ABI void dumpBytes (ArrayRef< uint8_t > Bytes, raw_ostream &OS)
 Convert ‘Bytes’ to a hex string and output to ‘OS’.
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)
LLVM_ABI MCAsmParsercreateMCAsmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &, unsigned CB=0)
 Create an MCAsmParser instance for parsing assembly similar to gas syntax.
LLVM_ABI MCAsmParsercreateMCMasmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &, struct tm, unsigned CB=0)
 Create an MCAsmParser instance for parsing Microsoft MASM-style assembly.
hash_code hash_value (const MCRegister &Reg)
std::unique_ptr< MCObjectWritercreateSPIRVObjectWriter (std::unique_ptr< MCSPIRVObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
 Construct a new SPIR-V writer instance.
LLVM_ABI MCStreamercreateNullStreamer (MCContext &Ctx)
 Create a dummy machine code streamer, which does nothing.
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.
std::unique_ptr< MCObjectWritercreateWasmDwoObjectWriter (std::unique_ptr< MCWasmObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS)
std::unique_ptr< MCObjectWritercreateWinCOFFObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
 Construct a new Win COFF writer instance.
std::unique_ptr< MCObjectWritercreateWinCOFFDwoObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS)
std::unique_ptr< MCObjectWritercreateXCOFFObjectWriter (std::unique_ptr< MCXCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS)
LLVM_ABI MCStreamercreateAsmStreamer (MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, std::unique_ptr< MCInstPrinter > InstPrint, std::unique_ptr< MCCodeEmitter > CE, std::unique_ptr< MCAsmBackend > TAB)
 Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.
LLVM_ABI MCStreamercreateELFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
LLVM_ABI MCStreamercreateGOFFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
LLVM_ABI MCStreamercreateMachOStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool DWARFMustBeAtTheEnd, bool LabelSections=false)
LLVM_ABI MCStreamercreateWasmStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
LLVM_ABI MCStreamercreateSPIRVStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
LLVM_ABI MCStreamercreateDXContainerStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
LLVM_ABI MCRelocationInfocreateMCRelocationInfo (const Triple &TT, MCContext &Ctx)
LLVM_ABI MCSymbolizercreateMCSymbolizer (const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo)
LLVM_ABI mca::CustomBehaviourcreateCustomBehaviour (const MCSubtargetInfo &STI, const mca::SourceMgr &SrcMgr, const MCInstrInfo &MCII)
LLVM_ABI mca::InstrPostProcesscreateInstrPostProcess (const MCSubtargetInfo &STI, const MCInstrInfo &MCII)
LLVM_ABI mca::InstrumentManagercreateInstrumentManager (const MCSubtargetInfo &STI, const MCInstrInfo &MCII)
LLVM_ABI Expected< std::string > computeArchiveRelativePath (StringRef From, StringRef To)
LLVM_ABI void warnToStderr (Error Err)
LLVM_ABI Error writeArchiveToStream (raw_ostream &Out, ArrayRef< NewArchiveMember > NewMembers, SymtabWritingMode WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, std::optional< bool > IsEC=std::nullopt, function_ref< void(Error)> Warn=warnToStderr)
LLVM_ABI Error writeArchive (StringRef ArcName, ArrayRef< NewArchiveMember > NewMembers, SymtabWritingMode WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, std::unique_ptr< MemoryBuffer > OldArchiveBuf=nullptr, std::optional< bool > IsEC=std::nullopt, function_ref< void(Error)> Warn=warnToStderr)
LLVM_ABI Expected< std::unique_ptr< MemoryBuffer > > writeArchiveToBuffer (ArrayRef< NewArchiveMember > NewMembers, SymtabWritingMode WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, function_ref< void(Error)> Warn=warnToStderr)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const FaultMapParser::FunctionFaultInfoAccessor &)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const FaultMapParser::FunctionInfoAccessor &)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const FaultMapParser &)
raw_ostreamoperator<< (raw_ostream &OS, const object::WasmSymbol &Sym)
LLVM_ABI StringRef machineToStr (COFF::MachineTypes MT)
LLVM_ABI COFF::MachineTypes getMachineType (StringRef S)
template<typename T>
Triple::ArchType getMachineArchType (T machine)
const charto_string (ThinOrFullLTOPhase Phase)
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.
template<class PassName>
PasscallDefaultCtor ()
LLVM_ABI void gcovOneInput (const GCOV::Options &options, StringRef filename, StringRef gcno, StringRef gcda, GCOVFile &file)
LLVM_ABI Error writeMemProf (ProfOStream &OS, memprof::IndexedMemProfData &MemProfData, memprof::IndexedVersion MemProfVersionRequested, bool MemProfFullSchema, std::unique_ptr< memprof::DataAccessProfData > DataAccessProfileData, std::unique_ptr< memprof::MemProfSummary > MemProfSum)
uint64_t getInstrMaxCountValue ()
 Return the max count value. We reserver a few large values for special use.
LLVM_ABI std::string getInstrProfSectionName (InstrProfSectKind IPSK, Triple::ObjectFormatType OF, bool AddSegmentInfo=true)
 Return the name of the profile section corresponding to IPSK.
StringRef getInstrProfValueProfFuncName ()
 Return the name profile runtime entry point to do value profiling for a given site.
StringRef getInstrProfValueProfMemOpFuncName ()
 Return the name profile runtime entry point to do memop size value profiling.
StringRef getInstrProfNameVarPrefix ()
 Return the name prefix of variables containing instrumented function names.
StringRef getInstrProfVTableVarPrefix ()
 Return the name prefix of variables containing virtual table profile data.
StringRef getInstrProfDataVarPrefix ()
 Return the name prefix of variables containing per-function control data.
StringRef getInstrProfCountersVarPrefix ()
 Return the name prefix of profile counter variables.
StringRef getInstrProfBitmapVarPrefix ()
 Return the name prefix of profile bitmap variables.
StringRef getInstrProfValuesVarPrefix ()
 Return the name prefix of value profile variables.
StringRef getInstrProfVNodesVarName ()
 Return the name of value profile node array variables:
StringRef getInstrProfNamesVarName ()
 Return the name of the variable holding the strings (possibly compressed) of all function's PGO names.
StringRef getInstrProfVTableNamesVarName ()
StringRef getCoverageMappingVarName ()
 Return the name of a covarage mapping variable (internal linkage) for each instrumented source module.
StringRef getCoverageUnusedNamesVarName ()
 Return the name of the internal variable recording the array of PGO name vars referenced by the coverage mapping.
StringRef getInstrProfRegFuncsName ()
 Return the name of function that registers all the per-function control data at program startup time by calling __llvm_register_function.
StringRef getInstrProfRegFuncName ()
 Return the name of the runtime interface that registers per-function control data for one instrumented function.
StringRef getInstrProfNamesRegFuncName ()
 Return the name of the runtime interface that registers the PGO name strings.
StringRef getInstrProfInitFuncName ()
 Return the name of the runtime initialization method that is generated by the compiler.
StringRef getInstrProfRuntimeHookVarName ()
 Return the name of the hook variable defined in profile runtime library.
StringRef getInstrProfRuntimeHookVarUseFuncName ()
 Return the name of the compiler generated function that references the runtime hook variable.
StringRef getInstrProfCounterBiasVarName ()
StringRef getInstrProfBitmapBiasVarName ()
StringRef getInstrProfNameSeparator ()
 Return the marker used to separate PGO names during serialization.
LLVM_ABI bool isGPUProfTarget (const Module &M)
 Determines whether module targets a GPU eligable for PGO instrumentation.
LLVM_ABI std::string getPGOFuncName (const Function &F, bool InLTO=false, uint64_t Version=INSTR_PROF_INDEX_VERSION)
 Please use getIRPGOFuncName for LLVM IR instrumentation.
LLVM_ABI 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.
LLVM_ABI std::string getIRPGOFuncName (const Function &F, bool InLTO=false)
LLVM_ABI std::pair< StringRef, StringRefgetParsedIRPGOName (StringRef IRPGOName)
LLVM_ABI std::string getPGOFuncNameVarName (StringRef FuncName, GlobalValue::LinkageTypes Linkage)
 Return the name of the global variable used to store a function name in PGO instrumentation.
LLVM_ABI GlobalVariablecreatePGOFuncNameVar (Function &F, StringRef PGOFuncName)
 Create and return the global variable for function name used in PGO instrumentation.
LLVM_ABI GlobalVariablecreatePGOFuncNameVar (Module &M, GlobalValue::LinkageTypes Linkage, StringRef PGOFuncName)
 Create and return the global variable for function name used in PGO instrumentation.
LLVM_ABI StringRef getPGOFuncNameVarInitializer (GlobalVariable *NameVar)
 Return the initializer in string of the PGO name var NameVar.
LLVM_ABI StringRef getFuncNameWithoutPrefix (StringRef PGOFuncName, StringRef FileName="<unknown>")
 Given a PGO function name, remove the filename prefix and return the original (static) function name.
LLVM_ABI Error collectGlobalObjectNameStrings (ArrayRef< std::string > NameStrs, bool doCompression, std::string &Result)
 Given a vector of strings (names of global objects like functions or, virtual tables) NameStrs, the method generates a combined string Result that is ready to be serialized.
LLVM_ABI Error collectPGOFuncNameStrings (ArrayRef< GlobalVariable * > NameVars, std::string &Result, bool doCompression=true)
 Produce Result string with the same format described above.
LLVM_ABI Error collectVTableStrings (ArrayRef< GlobalVariable * > VTables, std::string &Result, bool doCompression)
LLVM_ABI bool isIRPGOFlagSet (const Module *M)
 Check if INSTR_PROF_RAW_VERSION_VAR is defined.
LLVM_ABI bool canRenameComdatFunc (const Function &F, bool CheckAddressTaken=false)
 Check if we can safely rename this Comdat function.
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI SmallVector< InstrProfValueData, 4 > getValueProfDataFromInst (const Instruction &Inst, InstrProfValueKind ValueKind, uint32_t MaxNumValueData, uint64_t &TotalC, bool GetNoICPValue=false)
 Extract the value profile data from Inst and returns them if Inst is annotated with value profile data.
StringRef getPGOFuncNameMetadataName ()
StringRef getPGONameMetadataName ()
LLVM_ABI MDNodegetPGOFuncNameMetadata (const Function &F)
 Return the PGOFuncName meta data associated with a function.
LLVM_ABI std::string getPGOName (const GlobalVariable &V, bool InLTO=false)
LLVM_ABI void createPGOFuncNameMetadata (Function &F, StringRef PGOFuncName)
 Create the PGOFuncName meta data if PGOFuncName is different from function's raw name.
LLVM_ABI void createPGONameMetadata (GlobalObject &GO, StringRef PGOName)
 Create the PGOName metadata if a global object's PGO name is different from its mangled name.
LLVM_ABI bool needsComdatForCounter (const GlobalObject &GV, const Module &M)
 Check if we can use Comdat for profile variables.
LLVM_ABI Error readAndDecodeStrings (StringRef NameStrings, std::function< Error(StringRef)> NameCallback)
 NameStrings is a string composed of one or more possibly encoded sub-strings.
LLVM_ABI const std::error_category & instrprof_category ()
std::error_code make_error_code (instrprof_error E)
 INSTR_PROF_DATA (const uint64_t, llvm::Type::getInt64Ty(Ctx), NameRef, ConstantInt::get(llvm::Type::getInt64Ty(Ctx), IndexedInstrProf::ComputeHash(getPGOFuncNameVarInitializer(Inc->getName())))) INSTR_PROF_DATA(const uint64_t
FunctionAddr INSTR_PROF_DATA (IntPtrT, llvm::PointerType::getUnqual(Ctx), Values, ValuesPtrExpr) INSTR_PROF_DATA(const uint32_t
FunctionAddr VTableAddr INSTR_PROF_VTABLE_DATA (const uint32_t, llvm::Type::getInt32Ty(Ctx), VTableSize, ConstantInt::get(llvm::Type::getInt32Ty(Ctx), VTableSizeVal)) INSTR_PROF_VALUE_NODE(uint64_t
FunctionAddr VTableAddr uintptr_t CountersBegin (uintptr_t) DataBegin) INSTR_PROF_RAW_HEADER(uint64_t
FunctionAddr VTableAddr uintptr_t uintptr_t BitmapBegin (uintptr_t) DataBegin) VALUE_PROF_FUNC_PARAM(uint64_t
FunctionAddr VTableAddr uintptr_t uintptr_t WriteoutF COVINIT_FUNC (IntPtrT, llvm::PointerType::getUnqual(Ctx), ResetFunction, ResetF) typedef struct ValueProfRecord
 This is the header of the data structure that defines the on-disk layout of the value profile data of a particular kind for one function.
INSTR_PROF_VISIBILITY ValueProfRecordgetFirstValueProfRecord (ValueProfData *This)
 Return the first ValueProfRecord instance.
INSTR_PROF_VISIBILITY ValueProfRecordgetValueProfRecordNext (ValueProfRecord *This)
 Use this method to advance to the next This ValueProfRecord.
INSTR_PROF_VISIBILITY InstrProfValueData * getValueProfRecordValueData (ValueProfRecord *This)
 Return the pointer to the start of value data array.
INSTR_PROF_VISIBILITY uint32_t getValueProfRecordHeaderSize (uint32_t NumValueSites)
LLVM_ABI void createProfileFileNameVar (Module &M, StringRef InstrProfileOutput)
LLVM_ABI void convertCtxProfToYaml (raw_ostream &OS, const PGOCtxProfile &Profile)
LLVM_ABI Error createCtxProfFromYAML (StringRef Profile, raw_ostream &Out)
LLVM_ABI const std::error_category & sampleprof_category ()
std::error_code make_error_code (sampleprof_error E)
sampleprof_error mergeSampleProfErrors (sampleprof_error &Accumulator, sampleprof_error Result)
std::string getUniqueInternalLinkagePostfix (const StringRef &FName)
LLVM_ABI AArch64BuildAttrSubsections extractBuildAttributesSubsections (const llvm::AArch64AttributeParser &)
Align assumeAligned (uint64_t Value)
 Treats the value 0 as a 1, so Align is always at least 1.
bool isAligned (Align Lhs, uint64_t SizeInBytes)
 Checks that SizeInBytes is a multiple of the alignment.
bool isAddrAligned (Align Lhs, const void *Addr)
 Checks that Addr is a multiple of the alignment.
uint64_t alignTo (uint64_t Size, Align A)
 Returns a multiple of A needed to store Size bytes.
uint64_t alignTo (uint64_t Size, Align A, uint64_t Skew)
 If non-zero Skew is specified, the return value will be a minimal integer that is greater than or equal to Size and equal to A * N + Skew for some integer N.
uintptr_t alignAddr (const void *Addr, Align Alignment)
 Aligns Addr to Alignment bytes, rounding up.
uint64_t offsetToAlignment (uint64_t Value, Align Alignment)
 Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align.
uint64_t offsetToAlignedAddr (const void *Addr, Align Alignment)
 Returns the necessary adjustment for aligning Addr to Alignment bytes, rounding up.
unsigned Log2 (Align A)
 Returns the log2 of the alignment.
Align commonAlignment (Align A, uint64_t Offset)
 Returns the alignment that satisfies both alignments.
unsigned encode (MaybeAlign A)
 Returns a representation of the alignment that encodes undefined as 0.
MaybeAlign decodeMaybeAlign (unsigned Value)
 Dual operation of the encode function above.
unsigned encode (Align A)
 Returns a representation of the alignment, the encoded value is positive by definition.
bool operator== (Align Lhs, uint64_t Rhs)
 Comparisons between Align and scalars. Rhs must be positive.
bool operator!= (Align Lhs, uint64_t Rhs)
bool operator<= (Align Lhs, uint64_t Rhs)
bool operator>= (Align Lhs, uint64_t Rhs)
bool operator< (Align Lhs, uint64_t Rhs)
bool operator> (Align Lhs, uint64_t Rhs)
bool operator== (Align Lhs, Align Rhs)
 Comparisons operators between Align.
bool operator!= (Align Lhs, Align Rhs)
bool operator<= (Align Lhs, Align Rhs)
bool operator>= (Align Lhs, Align Rhs)
bool operator< (Align Lhs, Align Rhs)
bool operator> (Align Lhs, Align Rhs)
bool operator<= (Align Lhs, MaybeAlign Rhs)=delete
bool operator>= (Align Lhs, MaybeAlign Rhs)=delete
bool operator< (Align Lhs, MaybeAlign Rhs)=delete
bool operator> (Align Lhs, MaybeAlign Rhs)=delete
bool operator<= (MaybeAlign Lhs, Align Rhs)=delete
bool operator>= (MaybeAlign Lhs, Align Rhs)=delete
bool operator< (MaybeAlign Lhs, Align Rhs)=delete
bool operator> (MaybeAlign Lhs, Align Rhs)=delete
bool operator<= (MaybeAlign Lhs, MaybeAlign Rhs)=delete
bool operator>= (MaybeAlign Lhs, MaybeAlign Rhs)=delete
bool operator< (MaybeAlign Lhs, MaybeAlign Rhs)=delete
bool operator> (MaybeAlign Lhs, MaybeAlign Rhs)=delete
bool operator== (MaybeAlign Lhs, Align Rhs)
bool operator!= (MaybeAlign Lhs, Align Rhs)
bool operator== (Align Lhs, MaybeAlign Rhs)
bool operator!= (Align Lhs, MaybeAlign Rhs)
bool operator== (MaybeAlign Lhs, MaybeAlign Rhs)
bool operator!= (MaybeAlign Lhs, MaybeAlign Rhs)
bool operator== (MaybeAlign Lhs, std::nullopt_t)
bool operator!= (MaybeAlign Lhs, std::nullopt_t)
bool operator== (std::nullopt_t, MaybeAlign Rhs)
bool operator!= (std::nullopt_t, MaybeAlign Rhs)
std::string DebugStr (const Align &A)
std::string DebugStr (const MaybeAlign &MA)
bool getNonFoldableAlwaysTrue ()
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.
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.
bool isAtLeastOrStrongerThan (AtomicOrdering AO, AtomicOrdering Other)
bool isStrongerThanUnordered (AtomicOrdering AO)
bool isStrongerThanMonotonic (AtomicOrdering AO)
bool isAcquireOrStronger (AtomicOrdering AO)
bool isReleaseOrStronger (AtomicOrdering AO)
AtomicOrdering getMergedAtomicOrdering (AtomicOrdering AO, AtomicOrdering Other)
 Return a single atomic ordering that is at least as strong as both the AO and Other orderings for an atomic operation.
AtomicOrderingCABI toCABI (AtomicOrdering AO)
template<class InputBytes>
std::string encodeBase64 (InputBytes const &Bytes)
LLVM_ABI llvm::Error decodeBase64 (llvm::StringRef Input, std::vector< char > &Output)
int64_t decodePackedBCD (const uint8_t *Ptr, size_t ByteLen, bool IsSigned=true)
template<typename ResultT, typename ValT>
ResultT decodePackedBCD (const ValT Val, bool IsSigned=true)
LLVM_ABI void printRelativeBlockFreq (raw_ostream &OS, BlockFrequency EntryFreq, BlockFrequency Freq)
raw_ostreamoperator<< (raw_ostream &OS, BranchProbability Prob)
LLVM_ABI void BuryPointer (const void *Ptr)
template<typename T>
void BuryPointer (std::unique_ptr< T > Ptr)
LLVM_ABI Expected< CachePruningPolicyparseCachePruningPolicy (StringRef PolicyStr)
 Parse the given string as a cache pruning policy.
LLVM_ABI bool pruneCache (StringRef Path, CachePruningPolicy Policy, const std::vector< std::unique_ptr< MemoryBuffer > > &Files={})
 Peform pruning using the supplied policy, returns true if pruning occurred, i.e.
LLVM_ABI Expected< FileCachelocalCache (const Twine &CacheNameRef, const Twine &TempFilePrefixRef, const Twine &CacheDirectoryPathRef, AddBufferFn AddBuffer=[](size_t Task, const Twine &ModuleName, std::unique_ptr< MemoryBuffer > MB) {})
 Create a local file system cache which uses the given cache name, temporary file prefix, cache directory and file callback.
template<typename T>
static size_t capacity_in_bytes (const T &x)
template<typename To, typename From>
bool isa (const From &Val)
 isa<X> - Return true if the parameter to the template is an instance of one of the template type arguments.
template<typename First, typename Second, typename... Rest, typename From>
bool isa (const From &Val)
template<typename To, typename From>
decltype(auto) cast (const From &Val)
 cast<X> - Return the argument parameter cast to the specified type.
template<typename To, typename From>
decltype(auto) cast (From &Val)
template<typename To, typename From>
decltype(auto) cast (From *Val)
template<typename To, typename From>
decltype(auto) cast (std::unique_ptr< From > &&Val)
template<typename To, typename From>
decltype(auto) dyn_cast (const From &Val)
 dyn_cast<X> - Return the argument parameter cast to the specified type.
template<typename To, typename From>
decltype(auto) dyn_cast (From &Val)
template<typename To, typename From>
decltype(auto) dyn_cast (From *Val)
template<typename To, typename From>
decltype(auto) dyn_cast (std::unique_ptr< From > &Val)
template<typename... X, class Y>
bool isa_and_present (const Y &Val)
 isa_and_present<X> - Functionally identical to isa, except that a null value is accepted.
template<typename... X, class Y>
bool isa_and_nonnull (const Y &Val)
template<class X, class Y>
auto cast_if_present (const Y &Val)
 cast_if_present<X> - Functionally identical to cast, except that a null value is accepted.
template<class X, class Y>
auto cast_if_present (Y &Val)
template<class X, class Y>
auto cast_if_present (Y *Val)
template<class X, class Y>
auto cast_if_present (std::unique_ptr< Y > &&Val)
template<class X, class Y>
auto cast_or_null (const Y &Val)
template<class X, class Y>
auto cast_or_null (Y &Val)
template<class X, class Y>
auto cast_or_null (Y *Val)
template<class X, class Y>
auto cast_or_null (std::unique_ptr< Y > &&Val)
template<class X, class Y>
auto dyn_cast_if_present (const Y &Val)
 dyn_cast_if_present<X> - Functionally identical to dyn_cast, except that a null (or none in the case of optionals) value is accepted.
template<class X, class Y>
auto dyn_cast_if_present (Y &Val)
template<class X, class Y>
auto dyn_cast_if_present (Y *Val)
template<class X, class Y>
auto dyn_cast_or_null (const Y &Val)
template<class X, class Y>
auto dyn_cast_or_null (Y &Val)
template<class X, class Y>
auto dyn_cast_or_null (Y *Val)
template<class X, class Y>
CastInfo< X, std::unique_ptr< Y > >::CastResultType unique_dyn_cast (std::unique_ptr< Y > &Val)
 unique_dyn_cast<X> - Given a unique_ptr<Y>, try to return a unique_ptr<X>, taking ownership of the input pointer iff isa<X>(Val) is true.
template<class X, class Y>
auto unique_dyn_cast (std::unique_ptr< Y > &&Val)
template<class X, class Y>
CastInfo< X, std::unique_ptr< Y > >::CastResultType unique_dyn_cast_or_null (std::unique_ptr< Y > &Val)
template<class X, class Y>
auto unique_dyn_cast_or_null (std::unique_ptr< Y > &&Val)
template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > checkedAdd (T LHS, T RHS)
 Add two signed integers LHS and RHS.
template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > checkedSub (T LHS, T RHS)
 Subtract two signed integers LHS and RHS.
template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > checkedMul (T LHS, T RHS)
 Multiply two signed integers LHS and RHS.
template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > checkedMulAdd (T A, T B, T C)
 Multiply A and B, and add C to the resulting product.
template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, std::optional< T > > checkedAddUnsigned (T LHS, T RHS)
 Add two unsigned integers LHS and RHS.
template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, std::optional< T > > checkedMulUnsigned (T LHS, T RHS)
 Multiply two unsigned integers LHS and RHS.
template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, std::optional< T > > checkedMulAddUnsigned (T A, T B, T C)
 Multiply unsigned integers A and B, and add C to the resulting product.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, sys::TimePoint<> TP)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, sys::UtcTime<> TP)
LLVM_ABI ConversionResult ConvertUTF8toUTF16 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
LLVM_ABI ConversionResult ConvertUTF8toUTF32Partial (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
 Convert a partial UTF8 sequence to UTF32.
LLVM_ABI ConversionResult ConvertUTF8toUTF32 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
 Convert a partial UTF8 sequence to UTF32.
LLVM_ABI ConversionResult ConvertUTF16toUTF8 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
LLVM_ABI ConversionResult ConvertUTF32toUTF8 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
LLVM_ABI ConversionResult ConvertUTF16toUTF32 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
LLVM_ABI ConversionResult ConvertUTF32toUTF16 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
LLVM_ABI Boolean isLegalUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd)
LLVM_ABI Boolean isLegalUTF8String (const UTF8 **source, const UTF8 *sourceEnd)
LLVM_ABI unsigned getUTF8SequenceSize (const UTF8 *source, const UTF8 *sourceEnd)
LLVM_ABI unsigned getNumBytesForUTF8 (UTF8 firstByte)
LLVM_ABI bool ConvertUTF8toWide (unsigned WideCharWidth, llvm::StringRef Source, char *&ResultPtr, const UTF8 *&ErrorPtr)
 Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on WideCharWidth.
LLVM_ABI bool ConvertUTF8toWide (llvm::StringRef Source, std::wstring &Result)
 Converts a UTF-8 StringRef to a std::wstring.
LLVM_ABI bool ConvertUTF8toWide (const char *Source, std::wstring &Result)
 Converts a UTF-8 C-string to a std::wstring.
LLVM_ABI bool convertWideToUTF8 (const std::wstring &Source, std::string &Result)
 Converts a std::wstring to a UTF-8 encoded std::string.
LLVM_ABI bool ConvertCodePointToUTF8 (unsigned Source, char *&ResultPtr)
 Convert an Unicode code point to UTF8 sequence.
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.
LLVM_ABI bool hasUTF16ByteOrderMark (ArrayRef< char > SrcBytes)
 Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark.
LLVM_ABI bool convertUTF16ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out)
 Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.
LLVM_ABI bool convertUTF16ToUTF8String (ArrayRef< UTF16 > Src, std::string &Out)
 Converts a UTF16 string into a UTF8 std::string.
LLVM_ABI bool convertUTF32ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out)
 Converts a stream of raw bytes assumed to be UTF32 into a UTF8 std::string.
LLVM_ABI bool convertUTF32ToUTF8String (ArrayRef< UTF32 > Src, std::string &Out)
 Converts a UTF32 string into a UTF8 std::string.
LLVM_ABI bool convertUTF8ToUTF16String (StringRef SrcUTF8, SmallVectorImpl< UTF16 > &DstUTF16)
 Converts a UTF-8 string into a UTF-16 string with native endianness.
LLVM_ABI bool IsSingleCodeUnitUTF8Codepoint (unsigned)
LLVM_ABI bool IsSingleCodeUnitUTF16Codepoint (unsigned)
LLVM_ABI bool IsSingleCodeUnitUTF32Codepoint (unsigned)
LLVM_ABI uint32_t crc32 (ArrayRef< uint8_t > Data)
LLVM_ABI uint32_t crc32 (uint32_t CRC, ArrayRef< uint8_t > Data)
uint24_t getSwappedBytes (uint24_t C)
 Needed by swapByteOrder().
LLVM_ABI bool isCurrentDebugType (const char *Type, int Level=0)
 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.
LLVM_ABI void setCurrentDebugType (const char *Type)
 setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified.
LLVM_ABI void setCurrentDebugTypes (const char **Types, unsigned Count)
 setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified.
LLVM_ABI raw_ostreamdbgs ()
 dbgs() - This returns a reference to a raw_ostream for debugging messages.
static unsigned getNumFSPasses ()
static unsigned getFSPassBitEnd (sampleprof::FSDiscriminatorPass P)
static unsigned getFSPassBitBegin (sampleprof::FSDiscriminatorPass P)
static int getLastFSPassBitBegin ()
static unsigned getLastFSPassBitEnd ()
static unsigned getBaseFSBitBegin ()
static unsigned getBaseFSBitEnd ()
static unsigned getN1Bits (int N)
uint32_t djbHash (StringRef Buffer, uint32_t H=5381)
 The Bernstein hash function used by the DWARF accelerator tables.
LLVM_ABI 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.
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.
Error joinErrors (Error E1, Error E2)
 Concatenate errors.
LLVM_ABI void report_fatal_error (Error Err, bool gen_crash_diag=true)
LLVM_ABI void reportFatalInternalError (Error Err)
 Report a fatal error that indicates a bug in LLVM.
LLVM_ABI void reportFatalUsageError (Error Err)
 Report a fatal error that does not indicate a bug in LLVM.
void cantFail (Error Err, const char *Msg=nullptr)
 Report a fatal error if Err is a failure value.
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.
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.
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.
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.
void handleAllErrors (Error E)
 Check that E is a non-error, then drop it.
template<typename HandlerT>
void visitErrors (const Error &E, HandlerT H)
 Visit all the ErrorInfo(s) contained in E by passing them to the respective handler, without consuming the error.
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.
LLVM_ABI void logAllUnhandledErrors (Error E, raw_ostream &OS, Twine ErrorBanner={})
 Log all errors (if any) in E to OS.
LLVM_ABI std::string toString (Error E)
 Write all error messages (if any) in E to a string.
LLVM_ABI std::string toStringWithoutConsuming (const Error &E)
 Like toString(), but does not consume the error.
void consumeError (Error Err)
 Consume a Error without doing anything.
template<typename T>
std::optional< TexpectedToOptional (Expected< T > &&E)
 Convert an Expected to an Optional without doing anything.
template<typename T>
std::optional< TexpectedToStdOptional (Expected< T > &&E)
bool errorToBool (Error Err)
 Helper for converting an Error to a bool.
LLVM_ABI 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.
LLVM_ABI Error errorCodeToError (std::error_code EC)
 Helper for converting an std::error_code to a Error.
LLVM_ABI std::error_code errorToErrorCode (Error Err)
 Helper for converting an ECError to a std::error_code.
std::error_code errnoAsErrorCode ()
 Helper to get errno as an std::error_code.
template<typename T>
Expected< TerrorOrToExpected (ErrorOr< T > &&EO)
 Convert an ErrorOr<T> to an Expected<T>.
template<typename T>
ErrorOr< TexpectedToErrorOr (Expected< T > &&E)
 Convert an Expected<T> to an ErrorOr<T>.
template<typename... Ts>
Error createStringError (std::error_code EC, char const *Fmt, const Ts &... Vals)
 Create formatted StringError object.
LLVM_ABI Error createStringError (std::string &&Msg, std::error_code EC)
Error createStringError (std::error_code EC, const char *S)
Error createStringError (std::error_code EC, const Twine &S)
Error createStringError (const Twine &S)
 Create a StringError with an inconvertible error code.
template<typename... Ts>
Error createStringError (char const *Fmt, const Ts &...Vals)
template<typename... Ts>
Error createStringError (std::errc EC, char const *Fmt, const Ts &... Vals)
Error createFileError (const Twine &F, Error E)
 Concatenate a source file path and/or name with an Error.
Error createFileError (const Twine &F, size_t Line, Error E)
 Concatenate a source file path and/or name with line number and an Error.
Error createFileError (const Twine &F, std::error_code EC)
 Concatenate a source file path and/or name with a std::error_code to form an Error object.
Error createFileError (const Twine &F, size_t Line, std::error_code EC)
 Concatenate a source file path and/or name with line number and std::error_code to form an Error object.
Error createFileError (const Twine &F, std::error_code EC, const Twine &S)
 Create a StringError with the specified error code and prepend the file path to it.
template<typename... Ts>
Error createFileError (const Twine &F, std::error_code EC, char const *Fmt, const Ts &...Vals)
 Create a StringError with the specified error code and prepend the file path to it.
Error createFileError (const Twine &F, ErrorSuccess)=delete
LLVMErrorRef wrap (Error Err)
 Conversion from Error to LLVMErrorRef for C error bindings.
Error unwrap (LLVMErrorRef ErrRef)
 Conversion from LLVMErrorRef to Error for C error bindings.
LLVM_ABI 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.
LLVM_ABI void remove_fatal_error_handler ()
 Restores default error handling behaviour.
LLVM_ABI void report_fatal_error (const char *reason, bool gen_crash_diag=true)
LLVM_ABI void report_fatal_error (StringRef reason, bool gen_crash_diag=true)
LLVM_ABI void report_fatal_error (const Twine &reason, bool gen_crash_diag=true)
LLVM_ABI void reportFatalInternalError (const char *reason)
 Report a fatal error that likely indicates a bug in LLVM.
LLVM_ABI void reportFatalInternalError (StringRef reason)
LLVM_ABI void reportFatalInternalError (const Twine &reason)
LLVM_ABI void reportFatalUsageError (const char *reason)
 Report a fatal error that does not indicate a bug in LLVM.
LLVM_ABI void reportFatalUsageError (StringRef reason)
LLVM_ABI void reportFatalUsageError (const Twine &reason)
LLVM_ABI 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.
LLVM_ABI void remove_bad_alloc_error_handler ()
 Restores default bad alloc error handling behavior.
LLVM_ABI void install_out_of_memory_new_handler ()
LLVM_ABI void report_bad_alloc_error (const char *Reason, bool GenCrashDiag=true)
 Reports a bad alloc error, calling any user defined bad alloc error handler.
LLVM_ABI 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.
template<class T, class E>
std::enable_if_t< std::is_error_code_enum< E >::value||std::is_error_condition_enum< E >::value, booloperator== (const ErrorOr< T > &Err, E Code)
LLVM_ABI 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.
template<typename... Ts>
format_object< Ts... > format (const char *Fmt, const Ts &... Vals)
 These are helper functions used to produce formatted output.
FormattedString left_justify (StringRef Str, unsigned Width)
 left_justify - append spaces after string so total output is Width characters.
FormattedString right_justify (StringRef Str, unsigned Width)
 right_justify - add spaces before string so total output is Width characters.
FormattedString center_justify (StringRef Str, unsigned Width)
 center_justify - add spaces before and after string so total output is Width characters.
FormattedNumber format_hex (uint64_t N, unsigned Width, bool Upper=false)
 format_hex - Output N as a fixed width hexadecimal.
FormattedNumber format_hex_no_prefix (uint64_t N, unsigned Width, bool Upper=false)
 format_hex_no_prefix - Output N as a fixed width hexadecimal.
FormattedNumber format_decimal (int64_t N, unsigned Width)
 format_decimal - Output N as a right justified, fixed-width decimal.
FormattedBytes format_bytes (ArrayRef< uint8_t > Bytes, std::optional< uint64_t > FirstByteOffset=std::nullopt, uint32_t NumPerLine=16, uint8_t ByteGroupSize=4, uint32_t IndentLevel=0, bool Upper=false)
FormattedBytes format_bytes_with_ascii (ArrayRef< uint8_t > Bytes, std::optional< uint64_t > FirstByteOffset=std::nullopt, uint32_t NumPerLine=16, uint8_t ByteGroupSize=4, uint32_t IndentLevel=0, bool Upper=false)
template<typename T>
support::detail::AlignAdapter< Tfmt_align (T &&Item, AlignStyle Where, size_t Amount, char Fill=' ')
template<typename T>
support::detail::PadAdapter< Tfmt_pad (T &&Item, size_t Left, size_t Right)
template<typename T>
support::detail::RepeatAdapter< Tfmt_repeat (T &&Item, size_t Count)
support::detail::ErrorAdapter fmt_consume (Error &&Item)
LLVM_ABI formatted_raw_ostreamfouts ()
 fouts() - This returns a reference to a formatted_raw_ostream for standard output.
LLVM_ABI formatted_raw_ostreamferrs ()
 ferrs() - This returns a reference to a formatted_raw_ostream for standard error.
LLVM_ABI formatted_raw_ostreamfdbgs ()
 fdbgs() - This returns a reference to a formatted_raw_ostream for debug output.
template<typename... Ts>
auto formatv (bool Validate, const char *Fmt, Ts &&...Vals)
template<typename... Ts>
auto formatv (const char *Fmt, 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)
template<class BlockT, class LoopT>
raw_ostreamoperator<< (raw_ostream &OS, const LoopBase< BlockT, LoopT > &Loop)
template<class BlockT, class LoopT>
std::pair< BlockT *, boolgetExitBlockHelper (const LoopBase< BlockT, LoopT > *L, bool Unique)
 getExitBlock - If getExitBlocks would return exactly one block, return that block.
template<class BlockT, class LoopT, typename PredicateT>
void getUniqueExitBlocksHelper (const LoopT *L, SmallVectorImpl< BlockT * > &ExitBlocks, PredicateT Pred)
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.
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)
LLVM_ABI 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="")
LLVM_ABI std::string createGraphFilename (const Twine &Name, int &FD)
template<typename GraphType>
std::string WriteGraph (const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="", std::string Filename="")
 Writes graph into a provided Filename.
template<typename GraphType>
LLVM_DUMP_METHOD void dumpDotGraphToFile (const GraphType &G, const Twine &FileName, const Twine &Title, bool ShortNames=false, const Twine &Name="")
 DumpDotGraph - Just dump a dot graph to the user-provided file name.
template<typename GraphType>
void ViewGraph (const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="", GraphProgram::Name Program=GraphProgram::DOT)
 ViewGraph - Emit a dot graph, run 'dot', run gv on the postscript file, then cleanup.
template<typename T>
std::enable_if_t< is_detected< hashbuilder_detail::HashCodeHashBuilder::HasAddHashT, T >::value, hash_codehash_value (const T &Value)
 Provide a default implementation of hash_value when addHash(const T &) is supported.
InstructionCost operator+ (const InstructionCost &LHS, const InstructionCost &RHS)
InstructionCost operator- (const InstructionCost &LHS, const InstructionCost &RHS)
InstructionCost operator* (const InstructionCost &LHS, const InstructionCost &RHS)
InstructionCost operator/ (const InstructionCost &LHS, const InstructionCost &RHS)
raw_ostreamoperator<< (raw_ostream &OS, const InstructionCost &V)
template<typename Range>
InterleavedRange< Rangeinterleaved (const Range &R, StringRef Separator=", ", StringRef Prefix="", StringRef Suffix="")
 Output range R as a sequence of interleaved elements.
template<typename Range>
InterleavedRange< Rangeinterleaved_array (const Range &R, StringRef Separator=", ")
 Output range R as an array of interleaved elements.
KnownBits operator& (KnownBits LHS, const KnownBits &RHS)
KnownBits operator& (const KnownBits &LHS, KnownBits &&RHS)
KnownBits operator| (KnownBits LHS, const KnownBits &RHS)
KnownBits operator| (const KnownBits &LHS, KnownBits &&RHS)
KnownBits operator^ (KnownBits LHS, const KnownBits &RHS)
KnownBits operator^ (const KnownBits &LHS, KnownBits &&RHS)
raw_ostreamoperator<< (raw_ostream &OS, const KnownBits &Known)
KnownFPClass operator| (KnownFPClass LHS, const KnownFPClass &RHS)
KnownFPClass operator| (const KnownFPClass &LHS, KnownFPClass &&RHS)
unsigned encodeSLEB128 (int64_t Value, raw_ostream &OS, unsigned PadTo=0)
 Utility function to encode a SLEB128 value to an output stream.
unsigned encodeSLEB128 (int64_t Value, uint8_t *p, unsigned PadTo=0)
 Utility function to encode a SLEB128 value to a buffer.
unsigned encodeULEB128 (uint64_t Value, raw_ostream &OS, unsigned PadTo=0)
 Utility function to encode a ULEB128 value to an output stream.
unsigned encodeULEB128 (uint64_t Value, uint8_t *p, unsigned PadTo=0)
 Utility function to encode a ULEB128 value to a buffer.
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.
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.
uint64_t decodeULEB128AndInc (const uint8_t *&p, const uint8_t *end, const char **error=nullptr)
int64_t decodeSLEB128AndInc (const uint8_t *&p, const uint8_t *end, const char **error=nullptr)
uint64_t decodeULEB128AndIncUnsafe (const uint8_t *&p)
uint64_t overwriteULEB128 (uint8_t *bufLoc, uint64_t val)
 Overwrite a ULEB128 value and keep the original length.
template<LEB128Sign Sign, typename T, typename U = char, unsigned MaxLEB128SizeBytes = 16>
void appendLEB128 (SmallVectorImpl< U > &Buffer, T Value)
LLVM_ABI unsigned getULEB128Size (uint64_t Value)
 Utility function to get the size of the ULEB128-encoded value.
LLVM_ABI unsigned getSLEB128Size (int64_t Value)
 Utility function to get the size of the SLEB128-encoded value.
LogicalResult success (bool IsSuccess=true)
 Utility function to generate a LogicalResult.
LogicalResult failure (bool IsFailure=true)
 Utility function to generate a LogicalResult.
bool succeeded (LogicalResult Result)
 Utility function that returns true if the provided LogicalResult corresponds to a success value.
bool failed (LogicalResult Result)
 Utility function that returns true if the provided LogicalResult corresponds to a failure value.
template<typename T, typename = std::enable_if_t<!std::is_convertible_v<T, bool>>>
auto success (T &&Y)
 Wrap a value on the success path in a FailureOr of the same value type.
template<typename T>
static std::string debugString (T &&Op)
LLVM_ABI void llvm_shutdown ()
 llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
template<typename T>
constexpr T maskTrailingOnes (unsigned N)
 Create a bitmask with the N right-most bits set to 1, and all other bits set to 0.
template<typename T>
constexpr T maskLeadingOnes (unsigned N)
 Create a bitmask with the N left-most bits set to 1, and all other bits set to 0.
template<typename T>
constexpr T maskTrailingZeros (unsigned N)
 Create a bitmask with the N right-most bits set to 0, and all other bits set to 1.
template<typename T>
constexpr T maskLeadingZeros (unsigned N)
 Create a bitmask with the N left-most bits set to 0, and all other bits set to 1.
template<typename T>
constexpr T reverseBits (T Val)
 Reverse the bits in Val.
constexpr uint32_t Hi_32 (uint64_t Value)
 Return the high 32 bits of a 64 bit value.
constexpr uint32_t Lo_32 (uint64_t Value)
 Return the low 32 bits of a 64 bit value.
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.
template<unsigned N>
constexpr bool isInt (int64_t x)
 Checks if an integer fits into the given bit width.
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.
template<unsigned N>
constexpr bool isUInt (uint64_t x)
 Checks if an unsigned integer fits into the given bit width.
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.
constexpr uint64_t maxUIntN (uint64_t N)
 Gets the maximum value for a N-bit unsigned integer.
constexpr int64_t minIntN (int64_t N)
 Gets the minimum value for a N-bit signed integer.
constexpr int64_t maxIntN (int64_t N)
 Gets the maximum value for a N-bit signed integer.
constexpr bool isUIntN (unsigned N, uint64_t x)
 Checks if an unsigned integer fits into the given (dynamic) bit width.
constexpr bool isIntN (unsigned N, int64_t x)
 Checks if an signed integer fits into the given (dynamic) bit width.
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).
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).
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.
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.)
constexpr bool isPowerOf2_32 (uint32_t Value)
 Return true if the argument is a power of two > 0.
constexpr bool isPowerOf2_64 (uint64_t Value)
 Return true if the argument is a power of two > 0 (64 bit edition.)
bool isShiftedMask_32 (uint32_t Value, unsigned &MaskIdx, unsigned &MaskLen)
 Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit version.) Ex.
bool isShiftedMask_64 (uint64_t Value, unsigned &MaskIdx, unsigned &MaskLen)
 Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.) If true, MaskIdx will specify the index of the lowest set bit and MaskLen is updated to specify the length of the mask, else neither are updated.
template<size_t kValue>
constexpr size_t ConstantLog2 ()
 Compile time Log2.
template<>
constexpr size_t ConstantLog2< 1 > ()
template<size_t kValue>
constexpr size_t CTLog2 ()
unsigned Log2_32 (uint32_t Value)
 Return the floor log base 2 of the specified value, -1 if the value is zero.
unsigned Log2_64 (uint64_t Value)
 Return the floor log base 2 of the specified value, -1 if the value is zero.
unsigned Log2_32_Ceil (uint32_t Value)
 Return the ceil log base 2 of the specified value, 32 if the value is zero.
unsigned Log2_64_Ceil (uint64_t Value)
 Return the ceil log base 2 of the specified value, 64 if the value is zero.
template<typename U, typename V, typename T = common_uint<U, V>>
constexpr T MinAlign (U A, V B)
 A and B are either alignments or offsets.
constexpr uint64_t MinAlign (uint64_t A, uint64_t B)
 Fallback when arguments aren't integral.
constexpr uint64_t NextPowerOf2 (uint64_t A)
 Returns the next power of two (in 64-bits) that is strictly greater than A.
uint64_t PowerOf2Ceil (uint64_t A)
 Returns the power of two which is greater than or equal to the given value.
template<typename U, typename V, typename T = common_uint<U, V>>
constexpr T divideCeil (U Numerator, V Denominator)
 Returns the integer ceil(Numerator / Denominator).
constexpr uint64_t divideCeil (uint64_t Numerator, uint64_t Denominator)
 Fallback when arguments aren't integral.
template<typename U, typename V>
constexpr bool divideSignedWouldOverflow (U Numerator, V Denominator)
template<typename U, typename V, typename T = common_sint<U, V>>
constexpr T divideCeilSigned (U Numerator, V Denominator)
 Returns the integer ceil(Numerator / Denominator).
template<typename U, typename V, typename T = common_sint<U, V>>
constexpr T divideFloorSigned (U Numerator, V Denominator)
 Returns the integer floor(Numerator / Denominator).
template<typename U, typename V, typename T = common_sint<U, V>>
constexpr T mod (U Numerator, V Denominator)
 Returns the remainder of the Euclidean division of LHS by RHS.
template<typename U, typename V, typename T = common_uint<U, V>>
constexpr T divideNearest (U Numerator, V Denominator)
 Returns (Numerator / Denominator) rounded by round-half-up.
template<typename U, typename V, typename T = common_uint<U, V>>
constexpr T alignTo (U Value, V Align)
 Returns the next integer (mod 2**nbits) that is greater than or equal to Value and is a multiple of Align.
constexpr uint64_t alignTo (uint64_t Value, uint64_t Align)
 Fallback when arguments aren't integral.
template<typename U, typename V, typename T = common_uint<U, V>>
constexpr T alignToPowerOf2 (U Value, V Align)
 Will overflow only if result is not representable in T.
constexpr uint64_t alignToPowerOf2 (uint64_t Value, uint64_t Align)
 Fallback when arguments aren't integral.
template<typename U, typename V, typename W, typename T = common_uint<common_uint<U, V>, W>>
constexpr T alignTo (U Value, V Align, W Skew)
 If non-zero Skew is specified, the return value will be a minimal integer that is greater than or equal to Size and equal to A * N + Skew for some integer N.
template<auto Align, typename V, typename T = common_uint<decltype(Align), V>>
constexpr T alignTo (V Value)
 Returns the next integer (mod 2**nbits) that is greater than or equal to Value and is a multiple of Align.
template<typename U, typename V, typename W = uint8_t, typename T = common_uint<common_uint<U, V>, W>>
constexpr T alignDown (U Value, V Align, W Skew=0)
 Returns the largest unsigned integer less than or equal to Value and is Skew mod Align.
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.
int32_t SignExtend32 (uint32_t X, unsigned B)
 Sign-extend the number in the bottom B bits of X to a 32-bit integer.
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.
int64_t SignExtend64 (uint64_t X, unsigned B)
 Sign-extend the number in the bottom B bits of X to a 64-bit integer.
template<typename T, typename U = std::make_unsigned_t<T>>
constexpr U AbsoluteValue (T X)
 Return the absolute value of a signed integer, converted to the corresponding unsigned integer type.
template<typename U, typename V, typename T = common_uint<U, V>>
constexpr T AbsoluteDifference (U X, V Y)
 Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result.
template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, TSaturatingAdd (T X, T Y, bool *ResultOverflowed=nullptr)
 Add two unsigned integers, X and Y, of type T.
template<class T, class... Ts>
std::enable_if_t< std::is_unsigned_v< T >, TSaturatingAdd (T X, T Y, T Z, Ts... Args)
 Add multiple unsigned integers of type T.
template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, TSaturatingMultiply (T X, T Y, bool *ResultOverflowed=nullptr)
 Multiply two unsigned integers, X and Y, of type T.
template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, TSaturatingMultiplyAdd (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.
template<typename T>
std::enable_if_t< std::is_signed_v< T >, TAddOverflow (T X, T Y, T &Result)
 Add two signed integers, computing the two's complement truncated result, returning true if overflow occurred.
template<typename T>
std::enable_if_t< std::is_signed_v< T >, TSubOverflow (T X, T Y, T &Result)
 Subtract two signed integers, computing the two's complement truncated result, returning true if an overflow occurred.
template<typename T>
std::enable_if_t< std::is_signed_v< T >, TMulOverflow (T X, T Y, T &Result)
 Multiply two signed integers, computing the two's complement truncated result, returning true if an overflow occurred.
uint64_t MD5Hash (StringRef Str)
 Helper to compute and return lower 64 bits of the given string's MD5 hash.
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)
LLVM_ABI LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS void * allocate_buffer (size_t Size, size_t Alignment)
 Allocate a buffer of memory with the given size and alignment.
LLVM_ABI void deallocate_buffer (void *Ptr, size_t Size, size_t Alignment)
 Deallocate a buffer of memory with the given size and alignment.
bool isNoModRef (const ModRefInfo MRI)
bool isModOrRefSet (const ModRefInfo MRI)
bool isModAndRefSet (const ModRefInfo MRI)
bool isModSet (const ModRefInfo MRI)
bool isRefSet (const ModRefInfo MRI)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, ModRefInfo MR)
 Debug print ModRefInfo.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, MemoryEffects RMRB)
 Debug print MemoryEffects.
bool capturesNothing (CaptureComponents CC)
bool capturesAnything (CaptureComponents CC)
bool capturesAddressIsNullOnly (CaptureComponents CC)
bool capturesAddress (CaptureComponents CC)
bool capturesReadProvenanceOnly (CaptureComponents CC)
bool capturesFullProvenance (CaptureComponents CC)
bool capturesAnyProvenance (CaptureComponents CC)
bool capturesAll (CaptureComponents CC)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, CaptureComponents CC)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, CaptureInfo Info)
LLVM_ABI size_t getDefaultPrecision (FloatStyle Style)
LLVM_ABI bool isPrefixedHexStyle (HexPrintStyle S)
LLVM_ABI void write_integer (raw_ostream &S, unsigned int N, size_t MinDigits, IntegerStyle Style)
LLVM_ABI void write_integer (raw_ostream &S, int N, size_t MinDigits, IntegerStyle Style)
LLVM_ABI void write_integer (raw_ostream &S, unsigned long N, size_t MinDigits, IntegerStyle Style)
LLVM_ABI void write_integer (raw_ostream &S, long N, size_t MinDigits, IntegerStyle Style)
LLVM_ABI void write_integer (raw_ostream &S, unsigned long long N, size_t MinDigits, IntegerStyle Style)
LLVM_ABI void write_integer (raw_ostream &S, long long N, size_t MinDigits, IntegerStyle Style)
LLVM_ABI void write_hex (raw_ostream &S, uint64_t N, HexPrintStyle Style, std::optional< size_t > Width=std::nullopt)
LLVM_ABI void write_double (raw_ostream &S, double D, FloatStyle Style, std::optional< size_t > Precision=std::nullopt)
LLVM_ABI std::pair< uint64_t, AlignperformOptimizedStructLayout (MutableArrayRef< OptimizedStructLayoutField > Fields)
 Compute a layout for a struct containing the given fields, making a best-effort attempt to minimize the amount of space required.
int StrCmpOptionName (StringRef A, StringRef B, bool FallbackCaseSensitive=true)
int StrCmpOptionPrefixes (ArrayRef< StringRef > APrefixes, ArrayRef< StringRef > BPrefixes)
template<class RandomAccessIterator, class Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>>
void parallelSort (RandomAccessIterator Start, RandomAccessIterator End, const Comparator &Comp=Comparator())
LLVM_ABI void parallelFor (size_t Begin, size_t End, function_ref< void(size_t)> Fn)
template<class IterTy, class FuncTy>
void parallelForEach (IterTy Begin, IterTy End, FuncTy Fn)
template<class IterTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
ResultTy parallelTransformReduce (IterTy Begin, IterTy End, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)
template<class RangeTy, class Comparator = std::less<decltype(*std::begin(RangeTy()))>>
void parallelSort (RangeTy &&R, const Comparator &Comp=Comparator())
template<class RangeTy, class FuncTy>
void parallelForEach (RangeTy &&R, FuncTy Fn)
template<class RangeTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
ResultTy parallelTransformReduce (RangeTy &&R, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)
template<class RangeTy, class FuncTy>
Error parallelForEachError (RangeTy &&R, FuncTy Fn)
static cl::opt< PluginLoader, false, cl::parser< std::string > > LoadOpt ("load", cl::value_desc("pluginfilename"), cl::desc("Load the specified plugin"))
LLVM_ABI void EnablePrettyStackTrace ()
 Enables dumping a "pretty" stack trace when the program crashes.
LLVM_ABI void EnablePrettyStackTraceOnSigInfoForThisThread (bool ShouldEnable=true)
 Enables (or disables) dumping a "pretty" stack trace when the user sends SIGINFO or SIGUSR1 to the current process.
LLVM_ABI void setBugReportMsg (const char *Msg)
 Replaces the generic bug report message that is output upon a crash.
LLVM_ABI const chargetBugReportMsg ()
 Get the bug report message that will be output upon a crash.
LLVM_ABI const void * SavePrettyStackState ()
 Returns the topmost element of the "pretty" stack state.
LLVM_ABI 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().
raw_ostreamoperator<< (raw_ostream &OS, const Printable &P)
LLVM_ABI uintptr_t getStackPointer ()
LLVM_ABI unsigned getDefaultStackSize ()
LLVM_ABI void runOnNewStack (unsigned StackSize, function_ref< void()> Fn)
 Runs Fn on a new stack of at least the given size.
template<typename R, typename... Ts>
std::enable_if_t<!std::is_same_v< R, void >, R > runOnNewStack (unsigned StackSize, function_ref< R(Ts...)> Fn, Ts &&...Args)
template<typename... Ts>
void runOnNewStack (unsigned StackSize, function_ref< void(Ts...)> Fn, Ts &&...Args)
LLVM_ABI std::error_code getRandomBytes (void *Buffer, size_t Size)
template<typename OStream, typename T>
std::enable_if_t<!std::is_reference_v< OStream > &&std::is_base_of_v< raw_ostream, OStream >, OStream && > operator<< (OStream &&OS, const T &Value)
 Call the appropriate insertion operator, given an rvalue reference to a raw_ostream object and return a stream of the same type as the argument.
LLVM_ABI raw_fd_ostreamouts ()
 This returns a reference to a raw_fd_ostream for standard output.
LLVM_ABI raw_fd_ostreamerrs ()
 This returns a reference to a raw_ostream for standard error.
LLVM_ABI raw_ostreamnulls ()
 This returns a reference to a raw_ostream which simply discards output.
raw_ostreamoperator<< (raw_ostream &OS, const indent &Indent)
LLVM_ABI Error writeToOutput (StringRef OutputFileName, std::function< Error(raw_ostream &)> Write)
 This helper creates an output stream and then passes it to Write.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, std::nullopt_t)
template<typename T, typename = decltype(std::declval<raw_ostream &>() << std::declval<const T &>())>
raw_ostreamoperator<< (raw_ostream &OS, const std::optional< T > &O)
LLVM_ABI void PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize)
 PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics.
template<class T = void *>
constexpr bool shouldReverseIterate ()
template<typename T>
 SaveAndRestore (T &) -> SaveAndRestore< T >
template<typename T>
 SaveAndRestore (T &, const T &) -> SaveAndRestore< T >
template<typename T>
 SaveAndRestore (T &, T &&) -> SaveAndRestore< T >
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)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const HexNumber &Value)
template<class T>
std::string to_string (const T &Value)
template<typename T, typename TEnum>
std::string enumToString (T Value, ArrayRef< EnumEntry< TEnum > > EnumValues)
template<typename T, typename TEnum>
StringRef enumToStringRef (T Value, ArrayRef< EnumEntry< TEnum > > EnumValues)
 Retrieves the Value's enum name.
template<>
void ScopedPrinter::printHex< support::ulittle16_t > (StringRef Label, support::ulittle16_t Value)
LLVM_ABI void getSipHash_2_4_64 (ArrayRef< uint8_t > In, const uint8_t(&K)[16], uint8_t(&Out)[8])
 Computes a SipHash-2-4 64-bit result.
LLVM_ABI void getSipHash_2_4_128 (ArrayRef< uint8_t > In, const uint8_t(&K)[16], uint8_t(&Out)[16])
 Computes a SipHash-2-4 128-bit result.
LLVM_ABI uint16_t getPointerAuthStableSipHash (StringRef S)
 Compute a stable non-zero 16-bit hash of the given string.
LLVM_ABI SMTSolverRef CreateZ3Solver ()
 Convenience method to create and Z3Solver object.
LLVM_ABI bool CheckBitcodeOutputToConsole (raw_ostream &stream_to_check)
 Determine if the raw_ostream provided is connected to a terminal.
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.
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.
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.
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.
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.
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.
bool InitializeNativeTarget ()
 InitializeNativeTarget - The main program should call this function to initialize the native target corresponding to the host.
bool InitializeNativeTargetAsmPrinter ()
 InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer.
bool InitializeNativeTargetAsmParser ()
 InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser.
bool InitializeNativeTargetDisassembler ()
 InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler.
void InitializeAllTargetMCAs ()
 InitializeAllTargetMCAs - The main program should call this function to initialize the target CustomBehaviour and InstrPostProcess classes.
constexpr bool llvm_is_multithreaded ()
 Returns true if LLVM is compiled with support for multi-threading, and false otherwise.
template<typename Function, typename... Args>
void call_once (once_flag &flag, Function &&F, Args &&... ArgList)
 Execute the function specified as a parameter once.
LLVM_ABI std::optional< ThreadPoolStrategyget_threadpool_strategy (StringRef Num, ThreadPoolStrategy Default={})
 Build a strategy from a number of threads as a string provided in Num.
ThreadPoolStrategy heavyweight_hardware_concurrency (unsigned ThreadCount=0)
 Returns a thread strategy for tasks requiring significant memory or other resources.
ThreadPoolStrategy heavyweight_hardware_concurrency (StringRef Num)
 Like heavyweight_hardware_concurrency() above, but builds a strategy based on the rules described for get_threadpool_strategy().
ThreadPoolStrategy hardware_concurrency (unsigned ThreadCount=0)
 Returns a default thread strategy where all available hardware resources are to be used, except for those initially excluded by an affinity mask.
ThreadPoolStrategy hardware_concurrency (StringRef Num)
 Like hardware_concurrency() above, but builds a strategy based on the rules described for get_threadpool_strategy().
ThreadPoolStrategy optimal_concurrency (unsigned TaskCount=0)
 Returns an optimal thread strategy to execute specified amount of tasks.
LLVM_ABI uint64_t get_threadid ()
 Return the current thread id, as used in various OS system calls.
LLVM_ABI uint32_t get_max_thread_name_length ()
 Get the maximum length of a thread name on this platform.
LLVM_ABI void set_thread_name (const Twine &Name)
 Set the name of the current thread.
LLVM_ABI void get_thread_name (SmallVectorImpl< char > &Name)
 Get the name of the current thread.
LLVM_ABI llvm::BitVector get_thread_affinity_mask ()
 Returns a mask that represents on which hardware thread, core, CPU, NUMA group, the calling thread can be executed.
LLVM_ABI unsigned get_cpus ()
 Returns how many physical CPUs or NUMA groups the system has.
LLVM_ABI int get_physical_cores ()
 Returns how many physical cores (as opposed to logical cores returned from thread::hardware_concurrency(), which includes hyperthreads).
LLVM_ABI SetThreadPriorityResult set_thread_priority (ThreadPriority Priority)
LLVM_ABI TimeTraceProfilergetTimeTraceProfilerInstance ()
LLVM_ABI bool isTimeTraceVerbose ()
LLVM_ABI void timeTraceProfilerInitialize (unsigned TimeTraceGranularity, StringRef ProcName, bool TimeTraceVerbose=false)
 Initialize the time trace profiler.
LLVM_ABI void timeTraceProfilerCleanup ()
 Cleanup the time trace profiler, if it was initialized.
LLVM_ABI void timeTraceProfilerFinishThread ()
 Finish a time trace profiler running on a worker thread.
bool timeTraceProfilerEnabled ()
 Is the time trace profiler enabled, i.e. initialized?
LLVM_ABI void timeTraceProfilerWrite (raw_pwrite_stream &OS)
 Write profiling data to output stream.
LLVM_ABI Error timeTraceProfilerWrite (StringRef PreferredFileName, StringRef FallbackFileName)
 Write profiling data to a file.
LLVM_ABI TimeTraceProfilerEntrytimeTraceProfilerBegin (StringRef Name, StringRef Detail)
 Manually begin a time section, with the given Name and Detail.
LLVM_ABI TimeTraceProfilerEntrytimeTraceProfilerBegin (StringRef Name, llvm::function_ref< std::string()> Detail)
LLVM_ABI TimeTraceProfilerEntrytimeTraceProfilerBegin (StringRef Name, llvm::function_ref< TimeTraceMetadata()> MetaData)
LLVM_ABI TimeTraceProfilerEntrytimeTraceAsyncProfilerBegin (StringRef Name, StringRef Detail)
 Manually begin a time section, with the given Name and Detail.
LLVM_ABI void timeTraceAddInstantEvent (StringRef Name, llvm::function_ref< std::string()> Detail)
LLVM_ABI void timeTraceProfilerEnd ()
 Manually end the last time section.
LLVM_ABI void timeTraceProfilerEnd (TimeTraceProfilerEntry *E)
template<typename DesiredTypeName>
LLVM_GET_TYPE_NAME_CONSTEXPR StringRef getTypeName ()
 We provide a function which tries to compute the (demangled) name of a type statically.
constexpr TypeSize alignTo (TypeSize Size, uint64_t Align)
 Returns a TypeSize with a known minimum size that is the next integer (mod 2**64) that is greater than or equal to Quantity and is a multiple of Align.
template<typename LeafTy, typename ScalarTy>
raw_ostreamoperator<< (raw_ostream &OS, const details::FixedOrScalableQuantity< LeafTy, ScalarTy > &PS)
 Stream operator function for FixedOrScalableQuantity.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &Out, const VersionTuple &V)
 Print a version number.
raw_ostreamoperator<< (raw_ostream &OS, vfs::OutputConfig Config)
LLVM_ABI bool RunningWindows8OrGreater ()
 Determines if the program is running on Windows 8 or newer.
LLVM_ABI bool RunningWindows11OrGreater ()
 Determines if the program is running on Windows 11 or Windows Server 2022.
LLVM_ABI llvm::VersionTuple GetWindowsOSVersion ()
 Returns the Windows version as Major.Minor.0.BuildNumber.
LLVM_ABI bool MakeErrMsg (std::string *ErrMsg, const std::string &prefix)
void ReportLastErrorFatal (const char *Msg)
template<class T>
SmallVectorImpl< T >::const_pointer c_str (SmallVectorImpl< T > &str)
LLVM_ABI std::error_code mapLastWindowsError ()
LLVM_ABI std::error_code mapWindowsError (unsigned EV)
LLVM_ABI cl::OptionCategorygetColorCategory ()
LLVM_ABI uint64_t xxHash64 (llvm::StringRef Data)
LLVM_ABI uint64_t xxHash64 (llvm::ArrayRef< uint8_t > Data)
LLVM_ABI uint64_t xxh3_64bits (ArrayRef< uint8_t > data)
uint64_t xxh3_64bits (StringRef data)
LLVM_ABI XXH128_hash_t xxh3_128bits (ArrayRef< uint8_t > data)
 XXH3's 128-bit variant.
void PrintNote (const Twine &Msg)
void PrintNote (function_ref< void(raw_ostream &OS)> PrintMsg)
void PrintNote (ArrayRef< SMLoc > NoteLoc, const Twine &Msg)
void PrintFatalNote (const Twine &Msg)
void PrintFatalNote (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
void PrintFatalNote (const Record *Rec, const Twine &Msg)
void PrintFatalNote (const RecordVal *RecVal, const Twine &Msg)
void PrintWarning (const Twine &Msg)
void PrintWarning (ArrayRef< SMLoc > WarningLoc, const Twine &Msg)
void PrintWarning (const char *Loc, const Twine &Msg)
void PrintError (const Twine &Msg)
void PrintError (function_ref< void(raw_ostream &OS)> PrintMsg)
void PrintError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
void PrintError (const char *Loc, const Twine &Msg)
void PrintError (const Record *Rec, const Twine &Msg)
void PrintError (const RecordVal *RecVal, const Twine &Msg)
void PrintFatalError (const Twine &Msg)
void PrintFatalError (ArrayRef< SMLoc > ErrorLoc, const Twine &Msg)
void PrintFatalError (const Record *Rec, const Twine &Msg)
void PrintFatalError (const RecordVal *RecVal, const Twine &Msg)
void PrintFatalError (function_ref< void(raw_ostream &OS)> PrintMsg)
bool CheckAssert (SMLoc Loc, const Init *Condition, const Init *Message)
void dumpMessage (SMLoc Loc, const Init *Message)
int TableGenMain (const char *argv0, std::function< TableGenMainFn > MainFn=nullptr)
bool TableGenParseFile (SourceMgr &InputSrcMgr, RecordKeeper &Records)
 Parse the TableGen file defined within the main buffer of the given SourceMgr.
raw_ostreamoperator<< (raw_ostream &OS, const RecTy &Ty)
const RecTyresolveTypes (const RecTy *T1, const RecTy *T2)
 Find a common type that T1 and T2 convert to.
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 EmitDetailedRecords (const RecordKeeper &RK, raw_ostream &OS)
void EmitJSON (const RecordKeeper &RK, raw_ostream &OS)
void emitSourceFileHeader (StringRef Desc, raw_ostream &OS, const RecordKeeper &Record=RecordKeeper())
 emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.
LLVM_ABI CGPassBuilderOption getCGPassBuilderOption ()
std::optional< CodeModel::Modelunwrap (LLVMCodeModel Model, bool &JIT)
LLVMCodeModel wrap (CodeModel::Model Model)
LLVM_ABI void invokeGlobalTargetPassConfigCallbacks (TargetMachine &TM, PassManagerBase &PM, TargetPassConfig *PassConfig)
LLVM_ABI std::optional< llvm::StringMap< bool > > getCPUDefaultTargetFeatures (StringRef CPU, ArrayRef< BasicSubtargetSubTypeKV > ProcDesc, ArrayRef< BasicSubtargetFeatureKV > ProcFeatures)
template<typename T>
std::ostream & operator<< (std::ostream &OS, const StringMap< T > &M)
 Support for printing to std::ostream, for use with e.g.
template<typename T>
std::ostream & operator<< (std::ostream &OS, const StringMapEntry< T > &E)
 Support for printing to std::ostream, for use with e.g.
template<typename KeyMatcherT, typename ValueMatcherT>
detail::StringMapEntryMatcher< KeyMatcherT, ValueMatcherT > IsStringMapEntry (KeyMatcherT KM, ValueMatcherT VM)
 Returns a gMock matcher that matches a StringMapEntry whose string key matches KeyMatcher, and whose value matches ValueMatcher.
llvm::raw_ostreamoperator<< (llvm::raw_ostream &O, const llvm::Annotations::Range &R)
 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>
testing::Matcher< const detail::ErrorHolder & > FailedWithMessage (M... Matcher)
template<typename M>
testing::Matcher< const detail::ErrorHolder & > FailedWithMessageArray (M Matcher)
template<typename M>
detail::ValueMatchesPoly< M > HasValue (M Matcher)
template<class InnerMatcher>
detail::ValueIsMatcher< InnerMatcher > ValueIs (const InnerMatcher &ValueMatcher)
 Matches an std::optional<T> with a value that conforms to an inner matcher.
template<typename DerivedT, typename KeyInfoT, typename BucketT>
bool operator== (const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > &LHS, const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > &RHS)
template<typename DerivedT, typename KeyInfoT, typename BucketT>
bool operator!= (const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > &LHS, const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > &RHS)
LLVM_ABI int dlltoolDriverMain (ArrayRef< const char * > ArgsArr)
LLVM_ABI int libDriverMain (ArrayRef< const char * > ARgs)
FunctionPasscreateCFGuardCheckPass ()
 Insert Control FLow Guard checks on indirect function calls.
FunctionPasscreateCFGuardDispatchPass ()
 Insert Control FLow Guard dispatches on indirect function calls.
bool isCFGuardFunction (const GlobalValue *GV)
LLVM_ABI FunctionPasscreateInstructionCombiningPass ()
void getAddressSanitizerParams (const Triple &TargetTriple, int LongSize, bool IsKasan, uint64_t *ShadowBase, int *MappingScale, bool *OrShadowOffset)
void removeASanIncompatibleFnAttributes (Function &F, bool ReadsArgMem)
 Remove memory attributes that are incompatible with the instrumentation added by AddressSanitizer and HWAddressSanitizer.
LLVM_ABI void setProfMetadata (Instruction *TI, ArrayRef< uint64_t > EdgeCounts, uint64_t MaxCount)
LLVM_ABI void setIrrLoopHeaderMetadata (Module *M, Instruction *TI, uint64_t Count)
LLVM_ABI ModulePasscreateDeadArgEliminationPass ()
 createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.
LLVM_ABI ModulePasscreateDeadArgHackingPass ()
 DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well.
LLVM_ABI PasscreateLoopExtractorPass ()
 createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can.
LLVM_ABI PasscreateSingleLoopExtractorPass ()
 createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can.
LLVM_ABI ModulePasscreateBarrierNoopPass ()
 createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.
LLVM_ABI PasscreateAlwaysInlinerLegacyPass (bool InsertLifetime=true)
 Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline".
LLVM_ABI ChangeStatus operator| (ChangeStatus l, ChangeStatus r)
 Logic operators for the change status enum class.
LLVM_ABI ChangeStatusoperator|= (ChangeStatus &l, ChangeStatus r)
LLVM_ABI ChangeStatus operator& (ChangeStatus l, ChangeStatus r)
LLVM_ABI ChangeStatusoperator&= (ChangeStatus &l, ChangeStatus r)
 DEBUG_COUNTER (NumAbstractAttributes, "num-abstract-attributes", "How many AAs should be initialized")
 A debug counter to limit the number of AAs created.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const AbstractAttribute &AA)
 Forward declarations of output streams for debug purposes.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, ChangeStatus S)
 Helpers to ease debugging through output streams and print calls.
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, IRPosition::Kind)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const IRPosition &)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const AbstractState &State)
template<typename base_ty, base_ty BestState, base_ty WorstState>
raw_ostreamoperator<< (raw_ostream &OS, const IntegerStateBase< base_ty, BestState, WorstState > &S)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const IntegerRangeState &State)
template<typename StateType>
ChangeStatus clampStateAndIndicateChange (StateType &S, const StateType &R)
 Helper function to clamp a state S of type StateType with the information in R and indicate/return if S did change (as-in update is required to be run again).
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const PotentialConstantIntValuesState &R)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const PotentialLLVMValuesState &R)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &, const AAPointerInfo::Access &)
ModulePasscreateExpandVariadicsPass (ExpandVariadicsMode)
LLVM_ABI MemoryEffects computeFunctionBodyMemoryAccess (Function &F, AAResults &AAR)
 Returns the memory access properties of this copy of the function.
LLVM_ABI bool thinLTOPropagateFunctionAttrs (ModuleSummaryIndex &Index, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)
 Propagate function attributes for function summaries along the index's callgraph during thinlink.
LLVM_ABI void ComputeCrossModuleImport (const ModuleSummaryIndex &Index, const DenseMap< StringRef, GVSummaryMapTy > &ModuleToDefinedGVSummaries, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, FunctionImporter::ImportListsTy &ImportLists, DenseMap< StringRef, FunctionImporter::ExportSetTy > &ExportLists)
 Compute all the imports and exports for every module in the Index.
LLVM_ABI void updateIndirectCalls (ModuleSummaryIndex &Index)
 Update call edges for indirect calls to local functions added from SamplePGO when needed.
LLVM_ABI void computeDeadSymbolsAndUpdateIndirectCalls (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.
LLVM_ABI 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.
LLVM_ABI bool convertToDeclaration (GlobalValue &GV)
 Converts value GV to declaration, or replaces with a declaration if it is an alias.
LLVM_ABI void gatherImportedSummariesForModule (StringRef ModulePath, const DenseMap< StringRef, GVSummaryMapTy > &ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy &ImportList, ModuleToSummariesForIndexTy &ModuleToSummariesForIndex, GVSummaryPtrSet &DecSummaries)
 Compute the set of summaries needed for a ThinLTO backend compilation of ModulePath.
LLVM_ABI Error EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const ModuleToSummariesForIndexTy &ModuleToSummariesForIndex)
 Emit into OutputFilename the files module ModulePath will import from.
LLVM_ABI void processImportsFiles (StringRef ModulePath, const ModuleToSummariesForIndexTy &ModuleToSummariesForIndex, function_ref< void(const std::string &)> F)
 Call F passing each of the files module ModulePath will import from.
LLVM_ABI void thinLTOFinalizeInModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals, bool PropagateAttrs)
 Based on the information recorded in the summaries during global summary-based analysis:
LLVM_ABI void thinLTOInternalizeModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals)
 Internalize TheModule based on the information recorded in the summaries during global summary-based analysis.
LLVM_ABI ModulePasscreateGlobalDCEPass ()
bool internalizeModule (Module &TheModule, std::function< bool(const GlobalValue &)> MustPreserveGV)
 Helper function to internalize functions and variables in a Module.
LLVM_ABI bool hasWholeProgramVisibility (bool WholeProgramVisibilityEnabledInLTO)
LLVM_ABI void updatePublicTypeTestCalls (Module &M, bool WholeProgramVisibilityEnabledInLTO)
LLVM_ABI void updateVCallVisibilityInModule (Module &M, bool WholeProgramVisibilityEnabledInLTO, const DenseSet< GlobalValue::GUID > &DynamicExportSymbols, bool ValidateAllVtablesHaveTypeInfos, function_ref< bool(StringRef)> IsVisibleToRegularObj)
 If whole program visibility asserted, then upgrade all public vcall visibility metadata on vtable definitions to linkage unit visibility in Module IR (for regular or hybrid LTO).
LLVM_ABI void updateVCallVisibilityInIndex (ModuleSummaryIndex &Index, bool WholeProgramVisibilityEnabledInLTO, const DenseSet< GlobalValue::GUID > &DynamicExportSymbols, const DenseSet< GlobalValue::GUID > &VisibleToRegularObjSymbols)
 If whole program visibility asserted, then upgrade all public vcall visibility metadata on vtable definition summaries to linkage unit visibility in Module summary index (for ThinLTO).
LLVM_ABI void getVisibleToRegularObjVtableGUIDs (ModuleSummaryIndex &Index, DenseSet< GlobalValue::GUID > &VisibleToRegularObjSymbols, function_ref< bool(StringRef)> IsVisibleToRegularObj)
 Based on typeID string, get all associated vtable GUIDS that are visible to regular objects.
LLVM_ABI void runWholeProgramDevirtOnIndex (ModuleSummaryIndex &Summary, std::set< GlobalValue::GUID > &ExportedGUIDs, std::map< ValueInfo, std::vector< VTableSlotSummary > > &LocalWPDTargetsMap)
 Perform index-based whole program devirtualization on the Summary index.
LLVM_ABI void updateIndexWPDForExports (ModuleSummaryIndex &Summary, function_ref< bool(StringRef, ValueInfo)> isExported, std::map< ValueInfo, std::vector< VTableSlotSummary > > &LocalWPDTargetsMap)
 Call after cross-module importing to update the recorded single impl devirt target names for any locals that were exported.
LLVM_ABI PasscreateObjCARCContractPass ()
LLVM_ABI FunctionPasscreateDeadCodeEliminationPass ()
LLVM_ABI FunctionPasscreateDeadStoreEliminationPass ()
LLVM_ABI FunctionPasscreateSROAPass (bool PreserveCFG=true)
LLVM_ABI PasscreateLICMPass ()
LLVM_ABI PasscreateLoopStrengthReducePass ()
LLVM_ABI PasscreateLoopTermFoldPass ()
LLVM_ABI PasscreateLoopUnrollPass (int OptLevel=2, bool OnlyWhenForced=false, bool ForgetAllSCEV=false, int Threshold=-1, int Count=-1, int AllowPartial=-1, int Runtime=-1, int UpperBound=-1, int AllowPeeling=-1)
LLVM_ABI FunctionPasscreateReassociatePass ()
LLVM_ABI FunctionPasscreateCFGSimplificationPass (SimplifyCFGOptions Options=SimplifyCFGOptions(), std::function< bool(const Function &)> Ftor=nullptr)
LLVM_ABI FunctionPasscreateFlattenCFGPass ()
LLVM_ABI PasscreateStructurizeCFGPass (bool SkipUniformRegions=false)
 When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches.
LLVM_ABI FunctionPasscreateTailCallEliminationPass ()
LLVM_ABI FunctionPasscreateEarlyCSEPass (bool UseMemorySSA=false)
LLVM_ABI FunctionPasscreateConstantHoistingPass ()
LLVM_ABI FunctionPasscreateSinkingPass ()
LLVM_ABI PasscreateLowerAtomicPass ()
LLVM_ABI PasscreateMergeICmpsLegacyPass ()
LLVM_ABI FunctionPasscreateInferAddressSpacesPass (unsigned AddressSpace=~0u)
LLVM_ABI FunctionPasscreatePartiallyInlineLibCallsPass ()
LLVM_ABI FunctionPasscreateSeparateConstOffsetFromGEPPass (bool LowerGEP=false)
LLVM_ABI FunctionPasscreateSpeculativeExecutionPass ()
LLVM_ABI FunctionPasscreateSpeculativeExecutionIfHasBranchDivergencePass ()
LLVM_ABI FunctionPasscreateStraightLineStrengthReducePass ()
LLVM_ABI FunctionPasscreateNaryReassociatePass ()
LLVM_ABI FunctionPasscreateLoopDataPrefetchPass ()
LLVM_ABI FunctionPasscreateInstSimplifyLegacyPass ()
LLVM_ABI FunctionPasscreateScalarizeMaskedMemIntrinLegacyPass ()
LLVM_ABI FunctionPasscreateGVNPass ()
 Create a legacy GVN pass.
template<typename LoopPassT>
FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor (LoopPassT &&Pass, bool UseMemorySSA=false, bool UseBlockFrequencyInfo=false, bool UseBranchProbabilityInfo=false)
 A function to deduce a loop pass type and wrap it in the templated adaptor.
template<>
FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor< LoopPassManager > (LoopPassManager &&LPM, bool UseMemorySSA, bool UseBlockFrequencyInfo, bool UseBranchProbabilityInfo)
 If Pass is an instance of LoopPassManager, the returned adaptor will be in loop-nest mode if the pass manager contains only loop-nest passes.
bool lowerConstantIntrinsics (Function &F, const TargetLibraryInfo &TLI, DominatorTree *DT)
LLVM_ABI FunctionPasscreateScalarizerPass (const ScalarizerPassOptions &Options=ScalarizerPassOptions())
 Create a legacy pass manager instance of the Scalarizer pass.
LLVM_ABI FunctionPasscreateLowerInvokePass ()
LLVM_ABI FunctionPasscreateLowerSwitchPass ()
LLVM_ABI FunctionPasscreatePostInlineEntryExitInstrumenterPass ()
LLVM_ABI FunctionPasscreateBreakCriticalEdgesPass ()
LLVM_ABI PasscreateLCSSAPass ()
LLVM_ABI FunctionPasscreatePromoteMemoryToRegisterPass ()
LLVM_ABI FunctionPasscreateRegToMemWrapperPass ()
LLVM_ABI PasscreateLoopSimplifyPass ()
LLVM_ABI FunctionPasscreateUnifyLoopExitsPass ()
LLVM_ABI FunctionPasscreateFixIrreduciblePass ()
LLVM_ABI PasscreateCanonicalizeFreezeInLoopsPass ()
LLVM_ABI ModulePasscreateLowerGlobalDtorsLegacyPass ()
LLVM_ABI ValueemitAMDGPUPrintfCall (IRBuilder<> &Builder, ArrayRef< Value * > Args, bool isBuffered)
LLVM_ABI ASanStackFrameLayout ComputeASanStackFrameLayout (SmallVectorImpl< ASanStackVariableDescription > &Vars, uint64_t Granularity, uint64_t MinHeaderSize)
LLVM_ABI SmallString< 64 > ComputeASanStackFrameDescription (const SmallVectorImpl< ASanStackVariableDescription > &Vars)
LLVM_ABI SmallVector< uint8_t, 64 > GetShadowBytes (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout)
LLVM_ABI SmallVector< uint8_t, 64 > GetShadowBytesAfterScope (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout)
LLVM_ABI AssumeInstbuildAssumeFromInst (Instruction *I)
 Build a call to llvm.assume to preserve informations that can be derived from the given instruction.
LLVM_ABI bool salvageKnowledge (Instruction *I, AssumptionCache *AC=nullptr, DominatorTree *DT=nullptr)
 Calls BuildAssumeFromInst and if the resulting llvm.assume is valid insert if before I.
LLVM_ABI AssumeInstbuildAssumeFromKnowledge (ArrayRef< RetainedKnowledge > Knowledge, Instruction *CtxI, AssumptionCache *AC=nullptr, DominatorTree *DT=nullptr)
 Build and return a new assume created from the provided knowledge if the knowledge in the assume is fully redundant this will return nullptr.
LLVM_ABI RetainedKnowledge simplifyRetainedKnowledge (AssumeInst *Assume, RetainedKnowledge RK, AssumptionCache *AC, DominatorTree *DT)
 canonicalize the RetainedKnowledge RK.
LLVM_ABI void detachDeadBlocks (ArrayRef< BasicBlock * > BBs, SmallVectorImpl< DominatorTree::UpdateType > *Updates, bool KeepOneInputPHIs=false)
 Replace contents of every block in BBs with single unreachable instruction.
LLVM_ABI void DeleteDeadBlock (BasicBlock *BB, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false)
 Delete the specified block, which must have no predecessors.
LLVM_ABI void DeleteDeadBlocks (ArrayRef< BasicBlock * > BBs, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false)
 Delete the specified blocks from BB.
LLVM_ABI bool EliminateUnreachableBlocks (Function &F, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false)
 Delete all basic blocks from F that are not reachable from its entry node.
LLVM_ABI bool FoldSingleEntryPHINodes (BasicBlock *BB, MemoryDependenceResults *MemDep=nullptr)
 We know that BB has one predecessor.
LLVM_ABI bool DeleteDeadPHIs (BasicBlock *BB, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Examine each PHI in the given block and delete it if it is dead.
LLVM_ABI bool MergeBlockIntoPredecessor (BasicBlock *BB, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, MemoryDependenceResults *MemDep=nullptr, bool PredecessorWithTwoSuccessors=false, DominatorTree *DT=nullptr)
 Attempts to merge a block into its predecessor, if possible.
LLVM_ABI bool MergeBlockSuccessorsIntoGivenBlocks (SmallPtrSetImpl< BasicBlock * > &MergeBlocks, Loop *L=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr)
 Merge block(s) sucessors, if possible.
LLVM_ABI bool RemoveRedundantDbgInstrs (BasicBlock *BB)
 Try to remove redundant dbg.value instructions from given basic block.
LLVM_ABI void ReplaceInstWithValue (BasicBlock::iterator &BI, Value *V)
 Replace all uses of an instruction (specified by BI) with a value, then remove and delete the original instruction.
LLVM_ABI void ReplaceInstWithInst (BasicBlock *BB, BasicBlock::iterator &BI, Instruction *I)
 Replace the instruction specified by BI with the instruction specified by I.
LLVM_ABI void ReplaceInstWithInst (Instruction *From, Instruction *To)
 Replace the instruction specified by From with the instruction specified by To.
LLVM_ABI bool IsBlockFollowedByDeoptOrUnreachable (const BasicBlock *BB)
 Check if we can prove that all paths starting from this block converge to a block that either has a @llvm.experimental.deoptimize call prior to its terminating return instruction or is terminated by unreachable.
LLVM_ABI void createPHIsForSplitLoopExit (ArrayRef< BasicBlock * > Preds, BasicBlock *SplitBB, BasicBlock *DestBB)
 When a loop exit edge is split, LCSSA form may require new PHIs in the new exit block.
LLVM_ABI BasicBlockSplitCriticalEdge (Instruction *TI, unsigned SuccNum, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions(), const Twine &BBName="")
 If this edge is a critical edge, insert a new node to split the critical edge.
LLVM_ABI BasicBlockSplitKnownCriticalEdge (Instruction *TI, unsigned SuccNum, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions(), const Twine &BBName="")
 If it is known that an edge is critical, SplitKnownCriticalEdge can be called directly, rather than calling SplitCriticalEdge first.
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.
LLVM_ABI unsigned SplitAllCriticalEdges (Function &F, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions())
 Loop over all of the edges in the CFG, breaking critical edges as they are found.
LLVM_ABI BasicBlockSplitEdge (BasicBlock *From, BasicBlock *To, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="")
 Split the edge connecting the specified blocks, and return the newly created basic block between From and To.
LLVM_ABI void setUnwindEdgeTo (Instruction *TI, BasicBlock *Succ)
 Sets the unwind edge of an instruction to a particular successor.
LLVM_ABI void updatePhiNodes (BasicBlock *DestBB, BasicBlock *OldPred, BasicBlock *NewPred, PHINode *Until=nullptr)
 Replaces all uses of OldPred with the NewPred block in all PHINodes in a block.
LLVM_ABI BasicBlockehAwareSplitEdge (BasicBlock *BB, BasicBlock *Succ, LandingPadInst *OriginalPad=nullptr, PHINode *LandingPadReplacement=nullptr, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions(), const Twine &BBName="")
 Split the edge connect the specficed blocks in the case that Succ is an Exception Handling Block.
LLVM_ABI BasicBlockSplitBlock (BasicBlock *Old, BasicBlock::iterator SplitPt, DominatorTree *DT, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="", bool Before=false)
 Split the specified block at the specified instruction.
BasicBlockSplitBlock (BasicBlock *Old, Instruction *SplitPt, DominatorTree *DT, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="", bool Before=false)
LLVM_ABI BasicBlockSplitBlock (BasicBlock *Old, BasicBlock::iterator SplitPt, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="", bool Before=false)
 Split the specified block at the specified instruction.
BasicBlockSplitBlock (BasicBlock *Old, Instruction *SplitPt, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="", bool Before=false)
LLVM_ABI BasicBlocksplitBlockBefore (BasicBlock *Old, BasicBlock::iterator SplitPt, DomTreeUpdater *DTU, LoopInfo *LI, MemorySSAUpdater *MSSAU, const Twine &BBName="")
 Split the specified block at the specified instruction SplitPt.
BasicBlocksplitBlockBefore (BasicBlock *Old, Instruction *SplitPt, DomTreeUpdater *DTU, LoopInfo *LI, MemorySSAUpdater *MSSAU, const Twine &BBName="")
LLVM_ABI BasicBlockSplitBlockPredecessors (BasicBlock *BB, ArrayRef< BasicBlock * > Preds, const char *Suffix, DominatorTree *DT, 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.
LLVM_ABI BasicBlockSplitBlockPredecessors (BasicBlock *BB, ArrayRef< BasicBlock * > Preds, const char *Suffix, DomTreeUpdater *DTU=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.
LLVM_ABI void SplitLandingPadPredecessors (BasicBlock *OrigBB, ArrayRef< BasicBlock * > Preds, const char *Suffix, const char *Suffix2, SmallVectorImpl< BasicBlock * > &NewBBs, DomTreeUpdater *DTU=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.
LLVM_ABI 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.
LLVM_ABI InstructionSplitBlockAndInsertIfThen (Value *Cond, BasicBlock::iterator SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, BasicBlock *ThenBlock=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.
InstructionSplitBlockAndInsertIfThen (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, BasicBlock *ThenBlock=nullptr)
LLVM_ABI InstructionSplitBlockAndInsertIfElse (Value *Cond, BasicBlock::iterator SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, BasicBlock *ElseBlock=nullptr)
 Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false path of the branch.
InstructionSplitBlockAndInsertIfElse (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, BasicBlock *ElseBlock=nullptr)
LLVM_ABI void SplitBlockAndInsertIfThenElse (Value *Cond, BasicBlock::iterator SplitBefore, Instruction **ThenTerm, Instruction **ElseTerm, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr)
 SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen, but also creates the ElseBlock.
void SplitBlockAndInsertIfThenElse (Value *Cond, Instruction *SplitBefore, Instruction **ThenTerm, Instruction **ElseTerm, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr)
LLVM_ABI void SplitBlockAndInsertIfThenElse (Value *Cond, BasicBlock::iterator SplitBefore, BasicBlock **ThenBlock, BasicBlock **ElseBlock, bool UnreachableThen=false, bool UnreachableElse=false, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=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.
void SplitBlockAndInsertIfThenElse (Value *Cond, Instruction *SplitBefore, BasicBlock **ThenBlock, BasicBlock **ElseBlock, bool UnreachableThen=false, bool UnreachableElse=false, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr)
LLVM_ABI std::pair< Instruction *, Value * > SplitBlockAndInsertSimpleForLoop (Value *End, BasicBlock::iterator SplitBefore)
 Insert a for (int i = 0; i < End; i++) loop structure (with the exception that End is assumed > 0, and thus not checked on entry) at SplitBefore.
LLVM_ABI void SplitBlockAndInsertForEachLane (ElementCount EC, Type *IndexTy, BasicBlock::iterator InsertBefore, std::function< void(IRBuilderBase &, Value *)> Func)
 Utility function for performing a given action on each lane of a vector with EC elements.
LLVM_ABI void SplitBlockAndInsertForEachLane (Value *End, BasicBlock::iterator InsertBefore, std::function< void(IRBuilderBase &, Value *)> Func)
 Utility function for performing a given action on each lane of a vector with EVL effective length.
LLVM_ABI BranchInstGetIfCondition (BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse)
 Check whether BB is the merge point of a if-region.
LLVM_ABI bool SplitIndirectBrCriticalEdges (Function &F, bool IgnoreBlocksWithoutPHI, BranchProbabilityInfo *BPI=nullptr, BlockFrequencyInfo *BFI=nullptr)
LLVM_ABI void InvertBranch (BranchInst *PBI, IRBuilderBase &Builder)
LLVM_ABI bool hasOnlySimpleTerminator (const Function &F)
LLVM_ABI bool inferNonMandatoryLibFuncAttrs (Module *M, StringRef Name, const TargetLibraryInfo &TLI)
 Analyze the name and prototype of the given function and set any applicable attributes.
LLVM_ABI bool inferNonMandatoryLibFuncAttrs (Function &F, const TargetLibraryInfo &TLI)
LLVM_ABI FunctionCallee getOrInsertLibFunc (Module *M, const TargetLibraryInfo &TLI, LibFunc TheLibFunc, FunctionType *T, AttributeList AttributeList)
 Calls getOrInsertFunction() and then makes sure to add mandatory argument attributes.
LLVM_ABI FunctionCallee getOrInsertLibFunc (Module *M, const TargetLibraryInfo &TLI, LibFunc TheLibFunc, FunctionType *T)
template<typename... ArgsTy>
FunctionCallee getOrInsertLibFunc (Module *M, const TargetLibraryInfo &TLI, LibFunc TheLibFunc, AttributeList AttributeList, Type *RetTy, ArgsTy... Args)
template<typename... ArgsTy>
FunctionCallee getOrInsertLibFunc (Module *M, const TargetLibraryInfo &TLI, LibFunc TheLibFunc, Type *RetTy, ArgsTy... Args)
 Same as above, but without the attributes.
template<typename... ArgsTy>
FunctionCallee getOrInsertLibFunc (Module *M, const TargetLibraryInfo &TLI, LibFunc TheLibFunc, AttributeList AttributeList, FunctionType *Invalid, ArgsTy... Args)=delete
LLVM_ABI void markRegisterParameterAttributes (Function *F)
LLVM_ABI bool isLibFuncEmittable (const Module *M, const TargetLibraryInfo *TLI, LibFunc TheLibFunc)
 Check whether the library function is available on target and also that it in the current Module is a Function with the right type.
LLVM_ABI bool isLibFuncEmittable (const Module *M, const TargetLibraryInfo *TLI, StringRef Name)
LLVM_ABI bool hasFloatFn (const Module *M, const TargetLibraryInfo *TLI, Type *Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn)
 Check whether the overloaded floating point function corresponding to Ty is available.
LLVM_ABI StringRef getFloatFn (const Module *M, const TargetLibraryInfo *TLI, Type *Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, LibFunc &TheLibFunc)
 Get the name of the overloaded floating point function corresponding to Ty.
LLVM_ABI ValueemitStrLen (Value *Ptr, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the strlen function to the builder, for the specified pointer.
LLVM_ABI ValueemitWcsLen (Value *Ptr, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the wcslen function to the builder, for the specified pointer.
LLVM_ABI ValueemitStrDup (Value *Ptr, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strdup function to the builder, for the specified pointer.
LLVM_ABI ValueemitStrChr (Value *Ptr, char C, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strchr function to the builder, for the specified pointer and character.
LLVM_ABI ValueemitStrNCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the strncmp function to the builder.
LLVM_ABI ValueemitStrCpy (Value *Dst, Value *Src, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strcpy function to the builder, for the specified pointer arguments.
LLVM_ABI ValueemitStpCpy (Value *Dst, Value *Src, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the stpcpy function to the builder, for the specified pointer arguments.
LLVM_ABI ValueemitStrNCpy (Value *Dst, Value *Src, Value *Len, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strncpy function to the builder, for the specified pointer arguments and length.
LLVM_ABI ValueemitStpNCpy (Value *Dst, Value *Src, Value *Len, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the stpncpy function to the builder, for the specified pointer arguments and length.
LLVM_ABI ValueemitMemCpyChk (Value *Dst, Value *Src, Value *Len, Value *ObjSize, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the __memcpy_chk function to the builder.
LLVM_ABI ValueemitMemPCpy (Value *Dst, Value *Src, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the mempcpy function.
LLVM_ABI ValueemitMemChr (Value *Ptr, Value *Val, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the memchr function.
LLVM_ABI ValueemitMemRChr (Value *Ptr, Value *Val, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the memrchr function, analogously to emitMemChr.
LLVM_ABI ValueemitMemCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the memcmp function.
LLVM_ABI ValueemitBCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the bcmp function.
LLVM_ABI ValueemitMemCCpy (Value *Ptr1, Value *Ptr2, Value *Val, Value *Len, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the memccpy function.
LLVM_ABI ValueemitSNPrintf (Value *Dest, Value *Size, Value *Fmt, ArrayRef< Value * > Args, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the snprintf function.
LLVM_ABI ValueemitSPrintf (Value *Dest, Value *Fmt, ArrayRef< Value * > VariadicArgs, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the sprintf function.
LLVM_ABI ValueemitStrCat (Value *Dest, Value *Src, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strcat function.
LLVM_ABI ValueemitStrLCpy (Value *Dest, Value *Src, Value *Size, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strlcpy function.
LLVM_ABI ValueemitStrLCat (Value *Dest, Value *Src, Value *Size, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strlcat function.
LLVM_ABI ValueemitStrNCat (Value *Dest, Value *Src, Value *Size, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the strncat function.
LLVM_ABI ValueemitVSNPrintf (Value *Dest, Value *Size, Value *Fmt, Value *VAList, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the vsnprintf function.
LLVM_ABI ValueemitVSPrintf (Value *Dest, Value *Fmt, Value *VAList, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the vsprintf function.
LLVM_ABI ValueemitUnaryFloatFnCall (Value *Op, const TargetLibraryInfo *TLI, StringRef Name, IRBuilderBase &B, const AttributeList &Attrs)
 Emit a call to the unary function named 'Name' (e.g.
LLVM_ABI ValueemitUnaryFloatFnCall (Value *Op, const TargetLibraryInfo *TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilderBase &B, const AttributeList &Attrs)
 Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op.
LLVM_ABI ValueemitBinaryFloatFnCall (Value *Op1, Value *Op2, const TargetLibraryInfo *TLI, StringRef Name, IRBuilderBase &B, const AttributeList &Attrs)
 Emit a call to the binary function named 'Name' (e.g.
LLVM_ABI ValueemitBinaryFloatFnCall (Value *Op1, Value *Op2, const TargetLibraryInfo *TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilderBase &B, const AttributeList &Attrs)
 Emit a call to the binary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op1.
LLVM_ABI ValueemitPutChar (Value *Char, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the putchar function. This assumes that Char is an 'int'.
LLVM_ABI ValueemitPutS (Value *Str, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the puts function. This assumes that Str is some pointer.
LLVM_ABI ValueemitFPutC (Value *Char, Value *File, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the fputc function.
LLVM_ABI ValueemitFPutS (Value *Str, Value *File, IRBuilderBase &B, const TargetLibraryInfo *TLI)
 Emit a call to the fputs function.
LLVM_ABI ValueemitFWrite (Value *Ptr, Value *Size, Value *File, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the fwrite function.
LLVM_ABI ValueemitMalloc (Value *Num, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI)
 Emit a call to the malloc function.
LLVM_ABI ValueemitCalloc (Value *Num, Value *Size, IRBuilderBase &B, const TargetLibraryInfo &TLI, unsigned AddrSpace)
 Emit a call to the calloc function.
LLVM_ABI ValueemitHotColdNew (Value *Num, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold)
 Emit a call to the hot/cold operator new function.
LLVM_ABI ValueemitHotColdNewNoThrow (Value *Num, Value *NoThrow, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold)
LLVM_ABI ValueemitHotColdNewAligned (Value *Num, Value *Align, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold)
LLVM_ABI ValueemitHotColdNewAlignedNoThrow (Value *Num, Value *Align, Value *NoThrow, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold)
LLVM_ABI ValueemitHotColdSizeReturningNew (Value *Num, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold)
LLVM_ABI ValueemitHotColdSizeReturningNewAligned (Value *Num, Value *Align, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold)
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.
LLVM_ABI bool isLegalToPromote (const CallBase &CB, Function *Callee, const char **FailureReason=nullptr)
 Return true if the given indirect call site can be made to call Callee.
LLVM_ABI CallBasepromoteCall (CallBase &CB, Function *Callee, CastInst **RetBitCast=nullptr)
 Promote the given indirect call site to unconditionally call Callee.
LLVM_ABI CallBasepromoteCallWithIfThenElse (CallBase &CB, Function *Callee, MDNode *BranchWeights=nullptr)
 Promote the given indirect call site to conditionally call Callee.
LLVM_ABI CallBasepromoteCallWithIfThenElse (CallBase &CB, Function &Callee, PGOContextualProfile &CtxProf)
LLVM_ABI CallBasepromoteCallWithVTableCmp (CallBase &CB, Instruction *VPtr, Function *Callee, ArrayRef< Constant * > AddressPoints, MDNode *BranchWeights)
 This is similar to promoteCallWithIfThenElse except that the condition to promote a virtual call is that VPtr is the same as any of AddressPoints.
LLVM_ABI bool tryPromoteCall (CallBase &CB)
 Try to promote (devirtualize) a virtual call on an Alloca.
LLVM_ABI CallBaseversionCallSite (CallBase &CB, Value *Callee, MDNode *BranchWeights)
 Predicate and clone the given call site.
LLVM_ABI std::unique_ptr< ModuleCloneModule (const Module &M)
 Return an exact copy of the specified module.
LLVM_ABI std::unique_ptr< ModuleCloneModule (const Module &M, ValueToValueMapTy &VMap)
LLVM_ABI std::unique_ptr< ModuleCloneModule (const Module &M, ValueToValueMapTy &VMap, function_ref< bool(const GlobalValue *)> ShouldCloneDefinition)
 Return a copy of the specified module.
LLVM_ABI BasicBlockCloneBasicBlock (const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=nullptr, ClonedCodeInfo *CodeInfo=nullptr, bool MapAtoms=true)
 Return a copy of the specified basic block, but without embedding the block into a particular function.
LLVM_ABI void mapAtomInstance (const DebugLoc &DL, ValueToValueMapTy &VMap)
 Mark a cloned instruction as a new instance so that its source loc can be updated when remapped.
LLVM_ABI FunctionCloneFunction (Function *F, ValueToValueMapTy &VMap, ClonedCodeInfo *CodeInfo=nullptr)
 Return a copy of the specified function and add it to that function's module.
LLVM_ABI void CloneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, CloneFunctionChangeType Changes, 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.
LLVM_ABI void CloneFunctionAttributesInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr)
 Clone OldFunc's attributes into NewFunc, transforming values based on the mappings in VMap.
LLVM_ABI void CloneFunctionMetadataInto (Function &NewFunc, const Function &OldFunc, ValueToValueMapTy &VMap, RemapFlags RemapFlag, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Clone OldFunc's metadata into NewFunc.
LLVM_ABI void CloneFunctionBodyInto (Function &NewFunc, const Function &OldFunc, ValueToValueMapTy &VMap, RemapFlags RemapFlag, SmallVectorImpl< ReturnInst * > &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Clone OldFunc's body into NewFunc.
LLVM_ABI 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.
LLVM_ABI void CloneAndPruneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst * > &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr)
 This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly.
LLVM_ABI InlineResult CanInlineCallSite (const CallBase &CB, InlineFunctionInfo &IFI)
 Check if it is legal to perform inlining of the function called by CB into the caller at this particular use, and sets fields in IFI.
LLVM_ABI void InlineFunctionImpl (CallBase &CB, InlineFunctionInfo &IFI, bool MergeAttributes=false, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr, OptimizationRemarkEmitter *ORE=nullptr)
 This should generally not be used, use InlineFunction instead.
LLVM_ABI InlineResult InlineFunction (CallBase &CB, InlineFunctionInfo &IFI, bool MergeAttributes=false, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr, OptimizationRemarkEmitter *ORE=nullptr)
 This function inlines the called function into the basic block of the caller.
LLVM_ABI InlineResult InlineFunction (CallBase &CB, InlineFunctionInfo &IFI, PGOContextualProfile &CtxProf, bool MergeAttributes=false, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr, OptimizationRemarkEmitter *ORE=nullptr)
 Same as above, but it will update the contextual profile.
LLVM_ABI LoopcloneLoopWithPreheader (BasicBlock *Before, BasicBlock *LoopDomBB, Loop *OrigLoop, ValueToValueMapTy &VMap, const Twine &NameSuffix, LoopInfo *LI, DominatorTree *DT, SmallVectorImpl< BasicBlock * > &Blocks)
 Clones a loop OrigLoop.
LLVM_ABI void remapInstructionsInBlocks (ArrayRef< BasicBlock * > Blocks, ValueToValueMapTy &VMap)
 Remaps instructions in Blocks using the mapping in VMap.
LLVM_ABI 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.
LLVM_ABI void updateProfileCallee (Function *Callee, int64_t EntryDelta, const ValueMap< const Value *, WeakTrackingVH > *VMap=nullptr)
 Updates profile information by adjusting the entry count by adding EntryDelta then scaling callsite information by the new count divided by the old count.
LLVM_ABI void identifyNoAliasScopesToClone (ArrayRef< BasicBlock * > BBs, SmallVectorImpl< MDNode * > &NoAliasDeclScopes)
 Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified basic blocks and extract their scope.
LLVM_ABI void identifyNoAliasScopesToClone (BasicBlock::iterator Start, BasicBlock::iterator End, SmallVectorImpl< MDNode * > &NoAliasDeclScopes)
 Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified instruction range and extract their scope.
LLVM_ABI void cloneNoAliasScopes (ArrayRef< MDNode * > NoAliasDeclScopes, DenseMap< MDNode *, MDNode * > &ClonedScopes, StringRef Ext, LLVMContext &Context)
 Duplicate the specified list of noalias decl scopes.
LLVM_ABI void adaptNoAliasScopes (llvm::Instruction *I, const DenseMap< MDNode *, MDNode * > &ClonedScopes, LLVMContext &Context)
 Adapt the metadata for the specified instruction according to the provided mapping.
LLVM_ABI void cloneAndAdaptNoAliasScopes (ArrayRef< MDNode * > NoAliasDeclScopes, ArrayRef< BasicBlock * > NewBlocks, LLVMContext &Context, StringRef Ext)
 Clone the specified noalias decl scopes.
LLVM_ABI void cloneAndAdaptNoAliasScopes (ArrayRef< MDNode * > NoAliasDeclScopes, Instruction *IStart, Instruction *IEnd, LLVMContext &Context, StringRef Ext)
 Clone the specified noalias decl scopes.
LLVM_ABI bool isControlFlowEquivalent (const Instruction &I0, const Instruction &I1, const DominatorTree &DT, const PostDominatorTree &PDT)
 Return true if I0 and I1 are control flow equivalent.
LLVM_ABI bool isControlFlowEquivalent (const BasicBlock &BB0, const BasicBlock &BB1, const DominatorTree &DT, const PostDominatorTree &PDT)
 Return true if BB0 and BB1 are control flow equivalent.
LLVM_ABI bool isSafeToMoveBefore (Instruction &I, Instruction &InsertPoint, DominatorTree &DT, const PostDominatorTree *PDT=nullptr, DependenceInfo *DI=nullptr, bool CheckForEntireBlock=false)
 Return true if I can be safely moved before InsertPoint.
LLVM_ABI bool isSafeToMoveBefore (BasicBlock &BB, Instruction &InsertPoint, DominatorTree &DT, const PostDominatorTree *PDT=nullptr, DependenceInfo *DI=nullptr)
 Return true if all instructions (except the terminator) in BB can be safely moved before InsertPoint.
LLVM_ABI void moveInstructionsToTheBeginning (BasicBlock &FromBB, BasicBlock &ToBB, DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI)
 Move instructions, in an order-preserving manner, from FromBB to the beginning of ToBB when proven safe.
LLVM_ABI void moveInstructionsToTheEnd (BasicBlock &FromBB, BasicBlock &ToBB, DominatorTree &DT, const PostDominatorTree &PDT, DependenceInfo &DI)
 Move instructions, in an order-preserving manner, from FromBB to the end of ToBB when proven safe.
LLVM_ABI bool nonStrictlyPostDominate (const BasicBlock *ThisBlock, const BasicBlock *OtherBlock, const DominatorTree *DT, const PostDominatorTree *PDT)
 In case that two BBs ThisBlock and OtherBlock are control flow equivalent but they do not strictly dominate and post-dominate each other, we determine if ThisBlock is reached after OtherBlock in the control flow.
LLVM_ABI bool isReachedBefore (const Instruction *I0, const Instruction *I1, const DominatorTree *DT, const PostDominatorTree *PDT)
bool optimizeGlobalCtorsList (Module &M, function_ref< bool(uint32_t, Function *)> ShouldRemove)
 Call "ShouldRemove" for every entry in M's global_ctor list and remove the entries for which it returns true.
LLVM_ABI bool applyDebugifyMetadata (Module &M, iterator_range< Module::iterator > Functions, StringRef Banner, std::function< bool(DIBuilder &, Function &)> ApplyToMF)
 Add synthesized debug information to a module.
LLVM_ABI bool stripDebugifyMetadata (Module &M)
 Strip out all of the metadata and debug info inserted by debugify.
LLVM_ABI bool collectDebugInfoMetadata (Module &M, iterator_range< Module::iterator > Functions, DebugInfoPerPass &DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass)
 Collect original debug information before a pass.
LLVM_ABI bool checkDebugInfoMetadata (Module &M, iterator_range< Module::iterator > Functions, DebugInfoPerPass &DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass, StringRef OrigDIVerifyBugsReportFilePath)
 Check original debug information after a pass.
LLVM_ABI void exportDebugifyStats (StringRef Path, const DebugifyStatsMap &Map)
raw_ostreamoperator<< (raw_ostream &OS, const DbgValueDef &DV)
raw_ostreamoperator<< (raw_ostream &OS, const DbgSSAPhi &PHI)
LLVM_ABI void renameModuleForThinLTO (Module &M, const ModuleSummaryIndex &Index, bool ClearDSOLocalOnDeclarations, SetVector< GlobalValue * > *GlobalsToImport=nullptr)
 Perform in-place global value handling on the given Module for exported local functions renamed and promoted for ThinLTO.
bool isSafeToDestroyConstant (const Constant *C)
 It is safe to destroy a constant iff it is only used by constants itself.
void makeGuardControlFlowExplicit (Function *DeoptIntrinsic, CallInst *Guard, bool UseWC)
 Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's first argument.
void widenWidenableBranch (BranchInst *WidenableBR, Value *NewCond)
 Given a branch we know is widenable (defined per Analysis/GuardUtils.h), widen it such that condition 'NewCond' is also known to hold on the taken path.
void setWidenableBranchCond (BranchInst *WidenableBR, Value *Cond)
 Given a branch we know is widenable (defined per Analysis/GuardUtils.h), set it's condition such that (only) 'Cond' is known to hold on the taken path and that the branch remains widenable after transform.
LLVM_ABI bool checkIfAlreadyInstrumented (Module &M, StringRef Flag)
 Check if module has flag attached, if not add the flag.
LLVM_ABI BasicBlock::iterator PrepareToSplitEntryBlock (BasicBlock &BB, BasicBlock::iterator IP)
 Instrumentation passes often insert conditional checks into entry blocks.
LLVM_ABI GlobalVariablecreatePrivateGlobalForString (Module &M, StringRef Str, bool AllowMerging, Twine NamePrefix="")
LLVM_ABI ComdatgetOrCreateFunctionComdat (Function &F, Triple &T)
LLVM_ABI void setGlobalVariableLargeSection (const Triple &TargetTriple, GlobalVariable &GV)
LLVM_ABI void createProfileSamplingVar (Module &M)
LLVM_ABI bool expandRemainder (BinaryOperator *Rem)
 Generate code to calculate the remainder of two integers, replacing Rem with the generated code.
LLVM_ABI bool expandDivision (BinaryOperator *Div)
 Generate code to divide two integers, replacing Div with the generated code.
LLVM_ABI bool expandRemainderUpTo32Bits (BinaryOperator *Rem)
 Generate code to calculate the remainder of two integers, replacing Rem with the generated code.
LLVM_ABI bool expandRemainderUpTo64Bits (BinaryOperator *Rem)
 Generate code to calculate the remainder of two integers, replacing Rem with the generated code.
LLVM_ABI bool expandDivisionUpTo32Bits (BinaryOperator *Div)
 Generate code to divide two integers, replacing Div with the generated code.
LLVM_ABI bool expandDivisionUpTo64Bits (BinaryOperator *Div)
 Generate code to divide two integers, replacing Div with the generated code.
LLVM_ABI 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.
LLVM_ABI bool isInstructionTriviallyDead (Instruction *I, const TargetLibraryInfo *TLI=nullptr)
 Return true if the result produced by the instruction is not used, and the instruction will return.
LLVM_ABI bool wouldInstructionBeTriviallyDead (const 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.
LLVM_ABI bool wouldInstructionBeTriviallyDeadOnUnusedPaths (Instruction *I, const TargetLibraryInfo *TLI=nullptr)
 Return true if the result produced by the instruction has no side effects on any paths other than where it is used.
LLVM_ABI bool RecursivelyDeleteTriviallyDeadInstructions (Value *V, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr, std::function< void(Value *)> AboutToDeleteCallback=std::function< void(Value *)>())
 If the specified value is a trivially dead instruction, delete it.
LLVM_ABI void RecursivelyDeleteTriviallyDeadInstructions (SmallVectorImpl< WeakTrackingVH > &DeadInsts, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr, std::function< void(Value *)> AboutToDeleteCallback=std::function< void(Value *)>())
 Delete all of the instructions in DeadInsts, and all other instructions that deleting these in turn causes to be trivially dead.
LLVM_ABI bool RecursivelyDeleteTriviallyDeadInstructionsPermissive (SmallVectorImpl< WeakTrackingVH > &DeadInsts, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=nullptr, std::function< void(Value *)> AboutToDeleteCallback=std::function< void(Value *)>())
 Same functionality as RecursivelyDeleteTriviallyDeadInstructions, but allow instructions that are not trivially dead.
LLVM_ABI bool RecursivelyDeleteDeadPHINode (PHINode *PN, const TargetLibraryInfo *TLI=nullptr, MemorySSAUpdater *MSSAU=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.
LLVM_ABI 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.
LLVM_ABI bool replaceDbgUsesWithUndef (Instruction *I)
 Replace all the uses of an SSA value in @llvm.dbg intrinsics with undef.
LLVM_ABI void MergeBasicBlockIntoOnlyPred (BasicBlock *BB, DomTreeUpdater *DTU=nullptr)
 BB is a block with one predecessor and its predecessor is known to have one successor (BB!).
LLVM_ABI 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.
LLVM_ABI bool EliminateDuplicatePHINodes (BasicBlock *BB)
 Check for and eliminate duplicate PHI nodes in this block.
LLVM_ABI bool EliminateDuplicatePHINodes (BasicBlock *BB, SmallPtrSetImpl< PHINode * > &ToRemove)
 Check for and eliminate duplicate PHI nodes in this block.
LLVM_ABI bool simplifyCFG (BasicBlock *BB, const TargetTransformInfo &TTI, DomTreeUpdater *DTU=nullptr, const SimplifyCFGOptions &Options={}, ArrayRef< WeakVH > LoopHeaders={})
LLVM_ABI bool FlattenCFG (BasicBlock *BB, AAResults *AA=nullptr)
 This function is used to flatten a CFG.
LLVM_ABI bool foldBranchToCommonDest (BranchInst *BI, llvm::DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr, const TargetTransformInfo *TTI=nullptr, 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.
LLVM_ABI AllocaInstDemoteRegToStack (Instruction &X, bool VolatileLoads=false, std::optional< BasicBlock::iterator > AllocaPoint=std::nullopt)
 This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca.
LLVM_ABI AllocaInstDemotePHIToStack (PHINode *P, std::optional< BasicBlock::iterator > AllocaPoint=std::nullopt)
 This function takes a virtual register computed by a phi node and replaces it with a slot in the stack frame, allocated via alloca.
LLVM_ABI Align tryEnforceAlignment (Value *V, Align PrefAlign, const DataLayout &DL)
 If the specified pointer points to an object that we control, try to modify the object's alignment to PrefAlign.
LLVM_ABI Align getOrEnforceKnownAlignment (Value *V, MaybeAlign 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.
Align 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.
LLVM_ABI CallInstcreateCallMatchingInvoke (InvokeInst *II)
 Create a call that matches the invoke II in terms of arguments, attributes, debug information, etc.
LLVM_ABI CallInstchangeToCall (InvokeInst *II, DomTreeUpdater *DTU=nullptr)
 This function converts the specified invoke into a normal call.
LLVM_ABI void InsertDebugValueAtStoreLoc (DbgVariableRecord *DVR, StoreInst *SI, DIBuilder &Builder)
 ===------------------------------------------------------------------—===// Dbg Intrinsic utilities
LLVM_ABI void ConvertDebugDeclareToDebugValue (DbgVariableRecord *DVR, StoreInst *SI, DIBuilder &Builder)
 Inserts a dbg.value record before a store to an alloca'd value that has an associated dbg.declare record.
LLVM_ABI void ConvertDebugDeclareToDebugValue (DbgVariableRecord *DVR, LoadInst *LI, DIBuilder &Builder)
 Inserts a dbg.value record before a load of an alloca'd value that has an associated dbg.declare record.
LLVM_ABI void ConvertDebugDeclareToDebugValue (DbgVariableRecord *DVR, PHINode *LI, DIBuilder &Builder)
 Inserts a dbg.value record after a phi that has an associated llvm.dbg.declare record.
LLVM_ABI bool LowerDbgDeclare (Function &F)
 Lowers dbg.declare records into appropriate set of dbg.value records.
LLVM_ABI void insertDebugValuesForPHIs (BasicBlock *BB, SmallVectorImpl< PHINode * > &InsertedPHIs)
 Propagate dbg.value intrinsics through the newly inserted PHIs.
LLVM_ABI bool replaceDbgDeclare (Value *Address, Value *NewAddress, DIBuilder &Builder, uint8_t DIExprFlags, int Offset)
 Replaces dbg.declare record when the address it describes is replaced with a new value.
LLVM_ABI void replaceDbgValueForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, int Offset=0)
 Replaces multiple dbg.value records when the alloca it describes is replaced with a new value.
LLVM_ABI void 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.
LLVM_ABI void salvageDebugInfoForDbgValues (Instruction &I, ArrayRef< DbgVariableRecord * > DPInsns)
 Implementation of salvageDebugInfo, applying only to instructions in Insns, rather than all debug users from findDbgUsers( I).
LLVM_ABI ValuesalvageDebugInfoImpl (Instruction &I, uint64_t CurrentLocOps, SmallVectorImpl< uint64_t > &Ops, SmallVectorImpl< Value * > &AdditionalValues)
LLVM_ABI bool replaceAllDbgUsesWith (Instruction &From, Value &To, Instruction &DomPoint, DominatorTree &DT)
 Point debug users of From to To or salvage them.
LLVM_ABI bool handleUnreachableTerminator (Instruction *I, SmallVectorImpl< Value * > &PoisonedValues)
 If a terminator in an unreachable basic block has an operand of type Instruction, transform it into poison.
LLVM_ABI unsigned removeAllNonTerminatorAndEHPadInstructions (BasicBlock *BB)
 Remove all instructions from a basic block other than its terminator and any present EH pad instructions.
LLVM_ABI unsigned changeToUnreachable (Instruction *I, bool PreserveLCSSA=false, DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Insert an unreachable instruction before the specified instruction, making it and the rest of the code in the block dead.
LLVM_ABI BasicBlockchangeToInvokeAndSplitBasicBlock (CallInst *CI, BasicBlock *UnwindEdge, DomTreeUpdater *DTU=nullptr)
 Convert the CallInst to InvokeInst with the specified unwind edge basic block.
LLVM_ABI InstructionremoveUnwindEdge (BasicBlock *BB, DomTreeUpdater *DTU=nullptr)
 Replace 'BB's terminator with one that does not have an unwind successor block.
LLVM_ABI bool removeUnreachableBlocks (Function &F, DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr)
 Remove all blocks that can not be reached from the function's entry.
LLVM_ABI void combineMetadataForCSE (Instruction *K, const Instruction *J, bool DoesKMove)
 Combine the metadata of two instructions so that K can replace J.
LLVM_ABI void combineAAMetadata (Instruction *K, const Instruction *J)
 Combine metadata of two instructions, where instruction J is a memory access that has been merged into K.
LLVM_ABI void copyMetadataForLoad (LoadInst &Dest, const LoadInst &Source)
 Copy the metadata from the source instruction to the destination (the replacement for the source instruction).
LLVM_ABI void patchReplacementInstruction (Instruction *I, Value *Repl)
 Patch the replacement so that it is not more restrictive than the value being replaced.
LLVM_ABI unsigned replaceNonLocalUsesWith (Instruction *From, Value *To)
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI unsigned replaceDominatedUsesWithIf (Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Edge, function_ref< bool(const Use &U, const Value *To)> ShouldReplace)
 Replace each use of 'From' with 'To' if that use is dominated by the given edge and the callback ShouldReplace returns true.
LLVM_ABI unsigned replaceDominatedUsesWithIf (Value *From, Value *To, DominatorTree &DT, const BasicBlock *BB, function_ref< bool(const Use &U, const Value *To)> ShouldReplace)
 Replace each use of 'From' with 'To' if that use is dominated by the end of the given BasicBlock and the callback ShouldReplace returns true.
LLVM_ABI bool callsGCLeafFunction (const CallBase *Call, const TargetLibraryInfo &TLI)
 Return true if this call calls a gc leaf function.
LLVM_ABI void copyNonnullMetadata (const LoadInst &OldLI, MDNode *N, LoadInst &NewLI)
 Copy a nonnull metadata node to a new load instruction.
LLVM_ABI void copyRangeMetadata (const DataLayout &DL, const LoadInst &OldLI, MDNode *N, LoadInst &NewLI)
 Copy a range metadata node to a new load instruction.
LLVM_ABI void dropDebugUsers (Instruction &I)
 Remove the debug intrinsic instructions for the given instruction.
LLVM_ABI 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.
LLVM_ABI DIExpressiongetExpressionForConstant (DIBuilder &DIB, const Constant &C, Type &Ty)
 Given a constant, create a debug information expression.
LLVM_ABI void remapDebugVariable (ValueToValueMapTy &Mapping, Instruction *Inst)
 Remap the operands of the debug records attached to Inst, and the operands of Inst itself if it's a debug intrinsic.
LLVM_ABI bool recognizeBSwapOrBitReverseIdiom (Instruction *I, bool MatchBSwaps, bool MatchBitReversals, SmallVectorImpl< Instruction * > &InsertedInsts)
 Try to match a bswap or bitreverse idiom.
LLVM_ABI 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.
LLVM_ABI bool canReplaceOperandWithVariable (const Instruction *I, unsigned OpIdx)
 Given an instruction, is it legal to set operand OpIdx to a non-constant value?
LLVM_ABI ValueinvertCondition (Value *Condition)
 Invert the given true/false value, possibly reusing an existing copy.
LLVM_ABI bool inferAttributesFromOthers (Function &F)
 If we can infer one attribute from another on the declaration of a function, explicitly materialize the maximal set in the IR.
template<typename Loc, typename Function, typename AnchorList = ArrayRef<std::pair<Loc, Function>>>
void longestCommonSequence (AnchorList AnchorList1, AnchorList AnchorList2, llvm::function_ref< bool(const Function &, const Function &)> FunctionMatchesProfile, llvm::function_ref< void(Loc, Loc)> InsertMatching)
bool canPeel (const Loop *L)
bool canPeelLastIteration (const Loop &L, ScalarEvolution &SE)
 Returns true if the last iteration of L can be peeled off.
bool peelLoop (Loop *L, unsigned PeelCount, bool PeelLast, LoopInfo *LI, ScalarEvolution *SE, DominatorTree &DT, AssumptionCache *AC, bool PreserveLCSSA, ValueToValueMapTy &VMap)
 VMap is the value-map that maps instructions from the original loop to instructions in the last peeled-off iteration.
TargetTransformInfo::PeelingPreferences gatherPeelingPreferences (Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, std::optional< bool > UserAllowPeeling, std::optional< bool > UserAllowProfileBasedPeeling, bool UnrollingSpecficValues=false)
void computePeelCount (Loop *L, unsigned LoopSize, TargetTransformInfo::PeelingPreferences &PP, unsigned TripCount, DominatorTree &DT, ScalarEvolution &SE, const TargetTransformInfo &TTI, AssumptionCache *AC=nullptr, unsigned Threshold=UINT_MAX)
LLVM_ABI 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, bool PrepareForLTO=false)
 Convert a loop into a loop with bottom test.
LLVM_ABI bool simplifyLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, MemorySSAUpdater *MSSAU, bool PreserveLCSSA)
 Simplify each loop in a loop nest recursively.
LLVM_ABI BasicBlockInsertPreheaderForLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA)
 InsertPreheaderForLoop - Once we discover that a loop doesn't have a preheader, this method is called to insert one.
LLVM_ABI bool formDedicatedExitBlocks (Loop *L, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA)
 Ensure that all exit blocks of the loop are dedicated exits.
LLVM_ABI bool formLCSSAForInstructions (SmallVectorImpl< Instruction * > &Worklist, const DominatorTree &DT, const LoopInfo &LI, ScalarEvolution *SE, SmallVectorImpl< PHINode * > *PHIsToRemove=nullptr, SmallVectorImpl< PHINode * > *InsertedPHIs=nullptr)
 Ensures LCSSA form for every instruction from the Worklist in the scope of innermost containing loop.
LLVM_ABI bool formLCSSA (Loop &L, const DominatorTree &DT, const LoopInfo *LI, ScalarEvolution *SE)
 Put loop into LCSSA form.
LLVM_ABI bool formLCSSARecursively (Loop &L, const DominatorTree &DT, const LoopInfo *LI, ScalarEvolution *SE)
 Put a loop nest into LCSSA form.
LLVM_ABI bool sinkRegion (DomTreeNode *, AAResults *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, TargetTransformInfo *, Loop *CurLoop, MemorySSAUpdater &, ICFLoopSafetyInfo *, SinkAndHoistLICMFlags &, OptimizationRemarkEmitter *, Loop *OutermostLoop=nullptr)
 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.
LLVM_ABI bool sinkRegionForLoopNest (DomTreeNode *, AAResults *, LoopInfo *, DominatorTree *, TargetLibraryInfo *, TargetTransformInfo *, Loop *, MemorySSAUpdater &, ICFLoopSafetyInfo *, SinkAndHoistLICMFlags &, OptimizationRemarkEmitter *)
 Call sinkRegion on loops contained within the specified loop in order from innermost to outermost.
LLVM_ABI bool hoistRegion (DomTreeNode *, AAResults *, LoopInfo *, DominatorTree *, AssumptionCache *, TargetLibraryInfo *, Loop *, MemorySSAUpdater &, ScalarEvolution *, ICFLoopSafetyInfo *, SinkAndHoistLICMFlags &, OptimizationRemarkEmitter *, bool, bool AllowSpeculation)
 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.
LLVM_ABI bool isAlmostDeadIV (PHINode *IV, BasicBlock *LatchBlock, Value *Cond)
 Return true if the induction variable IV in a Loop whose latch is LatchBlock would become dead if the exit test Cond were removed.
LLVM_ABI void deleteDeadLoop (Loop *L, DominatorTree *DT, ScalarEvolution *SE, LoopInfo *LI, MemorySSA *MSSA=nullptr)
 This function deletes dead loops.
LLVM_ABI void breakLoopBackedge (Loop *L, DominatorTree &DT, ScalarEvolution &SE, LoopInfo &LI, MemorySSA *MSSA)
 Remove the backedge of the specified loop.
LLVM_ABI bool promoteLoopAccessesToScalars (const SmallSetVector< Value *, 8 > &, SmallVectorImpl< BasicBlock * > &, SmallVectorImpl< BasicBlock::iterator > &, SmallVectorImpl< MemoryAccess * > &, PredIteratorCache &, LoopInfo *, DominatorTree *, AssumptionCache *AC, const TargetLibraryInfo *, TargetTransformInfo *, Loop *, MemorySSAUpdater &, ICFLoopSafetyInfo *, OptimizationRemarkEmitter *, bool AllowSpeculation, bool HasReadsOutsideSet)
 Try to promote memory values to scalars by sinking stores out of the loop and moving loads to before the loop.
LLVM_ABI SmallVector< BasicBlock *, 16 > collectChildrenInLoop (DominatorTree *DT, DomTreeNode *N, const Loop *CurLoop)
 Does a BFS from a given node to all of its children inside a given loop.
LLVM_ABI SmallVector< Instruction *, 8 > findDefsUsedOutsideOfLoop (Loop *L)
 Returns the instructions that use values defined in the loop.
LLVM_ABI std::optional< ElementCountgetOptionalElementCountLoopAttribute (const Loop *TheLoop)
 Find a combination of metadata ("llvm.loop.vectorize.width" and "llvm.loop.vectorize.scalable.enable") for a loop and use it to construct a ElementCount.
LLVM_ABI std::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.
LLVM_ABI bool hasDisableAllTransformsHint (const Loop *L)
 Look for the loop attribute that disables all transformation heuristic.
LLVM_ABI bool hasDisableLICMTransformsHint (const Loop *L)
 Look for the loop attribute that disables the LICM transformation heuristics.
LLVM_ABI void addStringMetadataToLoop (Loop *TheLoop, const char *MDString, unsigned V=0)
 Set input string into loop metadata by keeping other values intact.
LLVM_ABI std::optional< unsignedgetLoopEstimatedTripCount (Loop *L, unsigned *EstimatedLoopInvocationWeight=nullptr)
 Return either:
LLVM_ABI bool setLoopEstimatedTripCount (Loop *L, unsigned EstimatedTripCount, std::optional< unsigned > EstimatedLoopInvocationWeight=std::nullopt)
 Set llvm.loop.estimated_trip_count with the value EstimatedTripCount in the loop metadata of L.
LLVM_ABI bool hasIterationCountInvariantInParent (Loop *L, ScalarEvolution &SE)
 Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop.
LLVM_ABI void getLoopAnalysisUsage (AnalysisUsage &AU)
 Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage.
LLVM_ABI bool canSinkOrHoistInst (Instruction &I, AAResults *AA, DominatorTree *DT, Loop *CurLoop, MemorySSAUpdater &MSSAU, bool TargetExecutesOncePerLoop, SinkAndHoistLICMFlags &LICMFlags, OptimizationRemarkEmitter *ORE=nullptr)
 Returns true if is legal to hoist or sink this instruction disregarding the possible introduction of faults.
LLVM_ABI constexpr Intrinsic::ID getReductionIntrinsicID (RecurKind RK)
 Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence kind.
LLVM_ABI Intrinsic::ID getMinMaxReductionIntrinsicID (Intrinsic::ID IID)
 Returns the llvm.vector.reduce min/max intrinsic that corresponds to the intrinsic op.
LLVM_ABI unsigned getArithmeticReductionInstruction (Intrinsic::ID RdxID)
 Returns the arithmetic instruction opcode used when expanding a reduction.
LLVM_ABI Intrinsic::ID getReductionForBinop (Instruction::BinaryOps Opc)
 Returns the reduction intrinsic id corresponding to the binary operation.
LLVM_ABI Intrinsic::ID getMinMaxReductionIntrinsicOp (Intrinsic::ID RdxID)
 Returns the min/max intrinsic used when expanding a min/max reduction.
LLVM_ABI Intrinsic::ID getMinMaxReductionIntrinsicOp (RecurKind RK)
 Returns the min/max intrinsic used when expanding a min/max reduction.
LLVM_ABI RecurKind getMinMaxReductionRecurKind (Intrinsic::ID RdxID)
 Returns the recurence kind used when expanding a min/max reduction.
LLVM_ABI CmpInst::Predicate getMinMaxReductionPredicate (RecurKind RK)
 Returns the comparison predicate used when expanding a min/max reduction.
LLVM_ABI ValuegetReductionIdentity (Intrinsic::ID RdxID, Type *Ty, FastMathFlags FMF)
 Given information about an @llvm.vector.reduce.
LLVM_ABI ValuegetRecurrenceIdentity (RecurKind K, Type *Tp, FastMathFlags FMF)
 Given information about an recurrence kind, return the identity for the @llvm.vector.reduce.
LLVM_ABI ValuecreateMinMaxOp (IRBuilderBase &Builder, RecurKind RK, Value *Left, Value *Right)
 Returns a Min/Max operation corresponding to MinMaxRecurrenceKind.
LLVM_ABI ValuegetOrderedReduction (IRBuilderBase &Builder, Value *Acc, Value *Src, unsigned Op, RecurKind MinMaxKind=RecurKind::None)
 Generates an ordered vector reduction using extracts to reduce the value.
LLVM_ABI ValuegetShuffleReduction (IRBuilderBase &Builder, Value *Src, unsigned Op, TargetTransformInfo::ReductionShuffle RS, RecurKind MinMaxKind=RecurKind::None)
 Generates a vector reduction using shufflevectors to reduce the value.
LLVM_ABI ValuecreateSimpleReduction (IRBuilderBase &B, Value *Src, RecurKind RdxKind)
 Create a reduction of the given vector.
LLVM_ABI ValuecreateSimpleReduction (IRBuilderBase &B, Value *Src, RecurKind RdxKind, Value *Mask, Value *EVL)
 Overloaded function to generate vector-predication intrinsics for reduction.
LLVM_ABI ValuecreateAnyOfReduction (IRBuilderBase &B, Value *Src, Value *InitVal, PHINode *OrigPhi)
 Create a reduction of the given vector Src for a reduction of kind RecurKind::AnyOf.
LLVM_ABI ValuecreateFindLastIVReduction (IRBuilderBase &B, Value *Src, RecurKind RdxKind, Value *Start, Value *Sentinel)
 Create a reduction of the given vector Src for a reduction of the kind RecurKind::FindLastIV.
LLVM_ABI ValuecreateOrderedReduction (IRBuilderBase &B, RecurKind RdxKind, Value *Src, Value *Start)
 Create an ordered reduction intrinsic using the given recurrence kind RdxKind.
LLVM_ABI ValuecreateOrderedReduction (IRBuilderBase &B, RecurKind RdxKind, Value *Src, Value *Start, Value *Mask, Value *EVL)
 Overloaded function to generate vector-predication intrinsics for ordered reduction.
LLVM_ABI void propagateIRFlags (Value *I, ArrayRef< Value * > VL, Value *OpValue=nullptr, bool IncludeWrapFlags=true)
 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).
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI bool isKnownPositiveInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE)
 Returns true if we can prove that S is defined and always positive in loop L.
LLVM_ABI bool isKnownNonPositiveInLoop (const SCEV *S, const Loop *L, ScalarEvolution &SE)
 Returns true if we can prove that S is defined and always non-positive in loop L.
LLVM_ABI 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.
LLVM_ABI 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.
LLVM_ABI int rewriteLoopExitValues (Loop *L, LoopInfo *LI, TargetLibraryInfo *TLI, ScalarEvolution *SE, const TargetTransformInfo *TTI, SCEVExpander &Rewriter, DominatorTree *DT, ReplaceExitVal ReplaceExitValue, SmallVector< WeakTrackingVH, 16 > &DeadInsts)
 If the final value of any expressions that are recurrent in the loop can be computed, substitute the exit values from the loop into any instructions outside of the loop that use the final values of the current expressions.
LLVM_ABI void setProfileInfoAfterUnrolling (Loop *OrigLoop, Loop *UnrolledLoop, Loop *RemainderLoop, uint64_t UF)
 Set weights for UnrolledLoop and RemainderLoop based on weights for OrigLoop and the following distribution of OrigLoop iteration among UnrolledLoop and RemainderLoop.
template<typename RangeT>
LLVM_TEMPLATE_ABI void appendLoopsToWorklist (RangeT &&, SmallPriorityWorklist< Loop *, 4 > &)
 Utility that implements appending of loops onto a worklist given a range.
template<typename RangeT>
void appendReversedLoopsToWorklist (RangeT &&, SmallPriorityWorklist< Loop *, 4 > &)
 Utility that implements appending of loops onto a worklist given a range.
template LLVM_TEMPLATE_ABI void appendLoopsToWorklist< ArrayRef< Loop * > & > (ArrayRef< Loop * > &Loops, SmallPriorityWorklist< Loop *, 4 > &Worklist)
template LLVM_TEMPLATE_ABI void appendLoopsToWorklist< Loop & > (Loop &L, SmallPriorityWorklist< Loop *, 4 > &Worklist)
LLVM_ABI void appendLoopsToWorklist (LoopInfo &, SmallPriorityWorklist< Loop *, 4 > &)
 Utility that implements appending of loops onto a worklist given LoopInfo.
LLVM_ABI LoopcloneLoop (Loop *L, Loop *PL, ValueToValueMapTy &VM, LoopInfo *LI, LPPassManager *LPM)
 Recursively clone the specified loop and all of its children, mapping the blocks with the specified map.
LLVM_ABI ValueaddRuntimeChecks (Instruction *Loc, Loop *TheLoop, const SmallVectorImpl< RuntimePointerCheck > &PointerChecks, SCEVExpander &Expander, bool HoistRuntimeChecks=false)
 Add code that checks at runtime if the accessed arrays in PointerChecks overlap.
LLVM_ABI ValueaddDiffRuntimeChecks (Instruction *Loc, ArrayRef< PointerDiffInfo > Checks, SCEVExpander &Expander, function_ref< Value *(IRBuilderBase &, unsigned)> GetVF, unsigned IC)
LLVM_ABI std::optional< IVConditionInfohasPartialIVCondition (const Loop &L, unsigned MSSAThreshold, const MemorySSA &MSSA, AAResults &AA)
 Check if the loop header has a conditional branch that is not loop-invariant, because it involves load instructions.
bool lowerAtomicCmpXchgInst (AtomicCmpXchgInst *CXI)
 Convert the given Cmpxchg into primitive load and compare.
std::pair< Value *, Value * > buildCmpXchgValue (IRBuilderBase &Builder, Value *Ptr, Value *Cmp, Value *Val, Align Alignment)
 Emit IR to implement the given cmpxchg operation on values in registers, returning the new value.
bool lowerAtomicRMWInst (AtomicRMWInst *RMWI)
 Convert the given RMWI into primitive load and stores, assuming that doing so is legal.
ValuebuildAtomicRMWValue (AtomicRMWInst::BinOp Op, IRBuilderBase &Builder, Value *Loaded, Value *Val)
 Emit IR to implement the given atomicrmw operation on values in registers, returning the new value.
LLVM_ABI void createMemCpyLoopUnknownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, Value *CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo &TTI, std::optional< unsigned > AtomicSize=std::nullopt)
 Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant.
LLVM_ABI void createMemCpyLoopKnownSize (Instruction *InsertBefore, Value *SrcAddr, Value *DstAddr, ConstantInt *CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo &TTI, std::optional< uint32_t > AtomicCpySize=std::nullopt)
 Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant.
LLVM_ABI void expandMemCpyAsLoop (MemCpyInst *MemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE=nullptr)
 Expand MemCpy as a loop. MemCpy is not deleted.
LLVM_ABI bool expandMemMoveAsLoop (MemMoveInst *MemMove, const TargetTransformInfo &TTI)
 Expand MemMove as a loop.
LLVM_ABI void expandMemSetAsLoop (MemSetInst *MemSet)
 Expand MemSet as a loop. MemSet is not deleted.
LLVM_ABI void expandMemSetPatternAsLoop (MemSetPatternInst *MemSet)
 Expand MemSetPattern as a loop. MemSet is not deleted.
LLVM_ABI void expandAtomicMemCpyAsLoop (AnyMemCpyInst *AtomicMemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE)
 Expand AtomicMemCpy as a loop. AtomicMemCpy is not deleted.
bool lowerUnaryVectorIntrinsicAsLoop (Module &M, CallInst *CI)
 Lower CI as a loop.
LLVM_ABI 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.
LLVM_ABI void appendToGlobalDtors (Module &M, Function *F, int Priority, Constant *Data=nullptr)
 Same as appendToGlobalCtors(), but for global dtors.
LLVM_ABI void transformGlobalCtors (Module &M, const GlobalCtorTransformFn &Fn)
LLVM_ABI void transformGlobalDtors (Module &M, const GlobalCtorTransformFn &Fn)
LLVM_ABI void setKCFIType (Module &M, Function &F, StringRef MangledType)
 Sets the KCFI type for the function.
LLVM_ABI FunctionCallee declareSanitizerInitFunction (Module &M, StringRef InitName, ArrayRef< Type * > InitArgTypes, bool Weak=false)
LLVM_ABI FunctioncreateSanitizerCtor (Module &M, StringRef CtorName)
 Creates sanitizer constructor function.
LLVM_ABI std::pair< Function *, FunctionCalleecreateSanitizerCtorAndInitFunctions (Module &M, StringRef CtorName, StringRef InitName, ArrayRef< Type * > InitArgTypes, ArrayRef< Value * > InitArgs, StringRef VersionCheckName=StringRef(), bool Weak=false)
 Creates sanitizer constructor function, and calls sanitizer's init function from it.
LLVM_ABI std::pair< Function *, FunctionCalleegetOrCreateSanitizerCtorAndInitFunctions (Module &M, StringRef CtorName, StringRef InitName, ArrayRef< Type * > InitArgTypes, ArrayRef< Value * > InitArgs, function_ref< void(Function *, FunctionCallee)> FunctionsCreatedCallback, StringRef VersionCheckName=StringRef(), bool Weak=false)
 Creates sanitizer constructor function lazily.
LLVM_ABI 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.
LLVM_ABI void appendToUsed (Module &M, ArrayRef< GlobalValue * > Values)
 Adds global values to the llvm.used list.
LLVM_ABI void appendToCompilerUsed (Module &M, ArrayRef< GlobalValue * > Values)
 Adds global values to the llvm.compiler.used list.
LLVM_ABI void removeFromUsedLists (Module &M, function_ref< bool(Constant *)> ShouldRemove)
 Removes global values from the llvm.used and llvm.compiler.used arrays.
LLVM_ABI void filterDeadComdatFunctions (SmallVectorImpl< Function * > &DeadComdatFunctions)
 Filter out potentially dead comdat functions where other entries keep the entire comdat group alive.
LLVM_ABI 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.
LLVM_ABI void embedBufferInModule (Module &M, MemoryBufferRef Buf, StringRef SectionName, Align Alignment=Align(1))
 Embed the memory buffer Buf into the module M as a global using the specified section name.
LLVM_ABI bool lowerGlobalIFuncUsersAsGlobalCtor (Module &M, ArrayRef< GlobalIFunc * > IFuncsToLower={})
 Lower all calls to ifuncs by replacing uses with indirect calls loaded out of a global table initialized in a global constructor.
LLVM_ABI bool isAllocaPromotable (const AllocaInst *AI)
 Return true if this alloca is legal for promotion.
LLVM_ABI 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.
void applyFlowInference (const ProfiParams &Params, FlowFunction &Func)
 Apply the profile inference algorithm for a given function and provided profi options.
void applyFlowInference (FlowFunction &Func)
 Apply the profile inference algorithm for a given flow function.
static bool skipProfileForFunction (const Function &F)
static void buildTopDownFuncOrder (LazyCallGraph &CG, std::vector< Function * > &FunctionOrderList)
std::pair< bool, boolsimplifyUsersOfIV (PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, const TargetTransformInfo *TTI, 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.
bool simplifyLoopIVs (Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, const TargetTransformInfo *TTI, SmallVectorImpl< WeakTrackingVH > &Dead)
 SimplifyLoopIVs - Simplify users of induction variables within this loop.
PHINodecreateWideIV (const WideIVInfo &WI, LoopInfo *LI, ScalarEvolution *SE, SCEVExpander &Rewriter, DominatorTree *DT, SmallVectorImpl< WeakTrackingVH > &DeadInsts, unsigned &NumElimExt, unsigned &NumWidened, bool HasGuards, bool UsePostIncrementRanges)
 Widen Induction Variables - Extend the width of an IV to cover its widest uses.
static bool isPGSOColdCodeOnly (ProfileSummaryInfo *PSI)
template<typename FuncT, typename BFIT>
bool shouldFuncOptimizeForSizeImpl (const FuncT *F, ProfileSummaryInfo *PSI, BFIT *BFI, PGSOQueryType QueryType)
template<typename BlockTOrBlockFreq, typename BFIT>
bool shouldOptimizeForSizeImpl (BlockTOrBlockFreq BBOrBlockFreq, ProfileSummaryInfo *PSI, BFIT *BFI, PGSOQueryType QueryType)
LLVM_ABI bool shouldOptimizeForSize (const Function *F, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other)
 Returns true if function F is suggested to be size-optimized based on the profile.
LLVM_ABI bool shouldOptimizeForSize (const BasicBlock *BB, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other)
 Returns true if basic block BB is suggested to be size-optimized based on the profile.
LLVM_ABI void SplitModule (Module &M, unsigned N, function_ref< void(std::unique_ptr< Module > MPart)> ModuleCallback, bool PreserveLocals=false, bool RoundRobin=false)
 Splits the module M into N linkable partitions.
LLVM_ABI void splitModuleTransitiveFromEntryPoints (std::unique_ptr< Module > M, function_ref< std::optional< int >(const Function &F)> EntryPointCategorizer, function_ref< void(std::unique_ptr< Module > Part)> Callback)
 Splits the given module M into parts.
LLVM_ABI 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.
LLVM_ABI LoopUnrollResult UnrollLoop (Loop *L, UnrollLoopOptions ULO, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, const llvm::TargetTransformInfo *TTI, OptimizationRemarkEmitter *ORE, bool PreserveLCSSA, Loop **RemainderLoop=nullptr, AAResults *AA=nullptr)
 Unroll the given loop by Count.
LLVM_ABI bool UnrollRuntimeLoopRemainder (Loop *L, unsigned Count, bool AllowExpensiveTripCount, bool UseEpilogRemainder, bool UnrollRemainder, bool ForgetAllSCEV, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, const TargetTransformInfo *TTI, bool PreserveLCSSA, unsigned SCEVExpansionBudget, bool RuntimeUnrollMultiExit, Loop **ResultLoop=nullptr)
 Insert code in the prolog/epilog code when unrolling a loop with a run-time trip-count.
LLVM_ABI LoopUnrollResult UnrollAndJamLoop (Loop *L, unsigned Count, unsigned TripCount, unsigned TripMultiple, bool UnrollRemainder, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, const TargetTransformInfo *TTI, OptimizationRemarkEmitter *ORE, Loop **EpilogueLoop=nullptr)
LLVM_ABI bool isSafeToUnrollAndJam (Loop *L, ScalarEvolution &SE, DominatorTree &DT, DependenceInfo &DI, LoopInfo &LI)
LLVM_ABI void simplifyLoopAfterUnroll (Loop *L, bool SimplifyIVs, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, const TargetTransformInfo *TTI, AAResults *AA=nullptr)
 Perform some cleanup and simplifications on loops after unrolling.
LLVM_ABI 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").
LLVM_ABI TargetTransformInfo::UnrollingPreferences gatherUnrollingPreferences (Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, BlockFrequencyInfo *BFI, ProfileSummaryInfo *PSI, llvm::OptimizationRemarkEmitter &ORE, int OptLevel, std::optional< unsigned > UserThreshold, std::optional< unsigned > UserCount, std::optional< bool > UserAllowPartial, std::optional< bool > UserRuntime, std::optional< bool > UserUpperBound, std::optional< unsigned > UserFullUnrollMaxCount)
 Gather the various unrolling parameters based on the defaults, compiler flags, TTI overrides and user specified parameters.
LLVM_ABI bool computeUnrollCount (Loop *L, const TargetTransformInfo &TTI, DominatorTree &DT, LoopInfo *LI, AssumptionCache *AC, ScalarEvolution &SE, const SmallPtrSetImpl< const Value * > &EphValues, OptimizationRemarkEmitter *ORE, unsigned TripCount, unsigned MaxTripCount, bool MaxOrZero, unsigned TripMultiple, const UnrollCostEstimator &UCE, TargetTransformInfo::UnrollingPreferences &UP, TargetTransformInfo::PeelingPreferences &PP, bool &UseUpperBound)
LLVM_ABI std::optional< RecurrenceDescriptorcanParallelizeReductionWhenUnrolling (PHINode &Phi, Loop *L, ScalarEvolution *SE)
RemapFlags operator| (RemapFlags LHS, RemapFlags RHS)
ValueMapValue (const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Look up or compute a value in the value map.
MetadataMapMetadata (const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Lookup or compute a mapping for a piece of metadata.
MDNodeMapMetadata (const MDNode *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Version of MapMetadata with type safety for MDNode.
void RemapInstruction (Instruction *I, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Convert the instruction operands from referencing the current values into those specified by VM.
LLVM_ABI void RemapSourceAtom (Instruction *I, ValueToValueMapTy &VM)
 Remap source location atom.
void RemapDbgRecord (Module *M, DbgRecord *DR, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Remap the Values used in the DbgRecord DR using the value map VM.
void RemapDbgRecordRange (Module *M, iterator_range< DbgRecordIterator > Range, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Remap the Values used in the DbgRecords Range using the value map VM.
void RemapFunction (Function &F, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Remap the operands, metadata, arguments, and instructions of a function.
ConstantMapValue (const Constant *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr, const MetadataPredicate *IdentityMD=nullptr)
 Version of MapValue with type safety for Constant.
LLVM_ABI PasscreateLoadStoreVectorizerPass ()
 Create a legacy pass manager instance of the LoadStoreVectorizer pass.
LLVM_ABI void reportVectorizationFailure (const StringRef DebugMsg, const StringRef OREMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I=nullptr)
 Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding optimization remark RemarkName.
void reportVectorizationFailure (const StringRef DebugMsg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I=nullptr)
 Same as above, but the debug message and optimization remark are identical.
LLVM_ABI const chararchToWindowsSDKArch (llvm::Triple::ArchType Arch)
LLVM_ABI const chararchToLegacyVCArch (llvm::Triple::ArchType Arch)
LLVM_ABI const chararchToDevDivInternalArch (llvm::Triple::ArchType Arch)
LLVM_ABI bool appendArchToWindowsSDKLibPath (int SDKMajor, llvm::SmallString< 128 > LibPath, llvm::Triple::ArchType Arch, std::string &path)
LLVM_ABI std::string getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::StringRef SubdirParent="")
LLVM_ABI bool useUniversalCRT (ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::vfs::FileSystem &VFS)
LLVM_ABI bool getWindowsSDKDir (vfs::FileSystem &VFS, std::optional< llvm::StringRef > WinSdkDir, std::optional< llvm::StringRef > WinSdkVersion, std::optional< llvm::StringRef > WinSysRoot, std::string &Path, int &Major, std::string &WindowsSDKIncludeVersion, std::string &WindowsSDKLibVersion)
 Get Windows SDK installation directory.
LLVM_ABI bool getUniversalCRTSdkDir (vfs::FileSystem &VFS, std::optional< llvm::StringRef > WinSdkDir, std::optional< llvm::StringRef > WinSdkVersion, std::optional< llvm::StringRef > WinSysRoot, std::string &Path, std::string &UCRTVersion)
LLVM_ABI bool findVCToolChainViaCommandLine (vfs::FileSystem &VFS, std::optional< llvm::StringRef > VCToolsDir, std::optional< llvm::StringRef > VCToolsVersion, std::optional< llvm::StringRef > WinSysRoot, std::string &Path, ToolsetLayout &VSLayout)
LLVM_ABI bool findVCToolChainViaEnvironment (vfs::FileSystem &VFS, std::string &Path, ToolsetLayout &VSLayout)
LLVM_ABI bool findVCToolChainViaSetupConfig (vfs::FileSystem &VFS, std::optional< llvm::StringRef > VCToolsVersion, std::string &Path, ToolsetLayout &VSLayout)
LLVM_ABI bool findVCToolChainViaRegistry (std::string &Path, ToolsetLayout &VSLayout)
static GVDAGType getGVDT ()
cl::opt< boolCheckBFIUnknownBlockQueries ("check-bfi-unknown-block-queries", cl::init(false), cl::Hidden, cl::desc("Check if block frequency is queried for an unknown block " "for debugging missed BFI updates"))
cl::opt< boolUseIterativeBFIInference ("use-iterative-bfi-inference", cl::Hidden, cl::desc("Apply an iterative post-processing to infer correct BFI counts"))
cl::opt< unsignedIterativeBFIMaxIterationsPerBlock ("iterative-bfi-max-iterations-per-block", cl::init(1000), cl::Hidden, cl::desc("Iterative inference: maximum number of update iterations " "per block"))
cl::opt< double > IterativeBFIPrecision ("iterative-bfi-precision", cl::init(1e-12), cl::Hidden, cl::desc("Iterative inference: delta convergence precision; smaller values " "typically lead to better results at the cost of worsen runtime"))
LLVM_ABI cl::opt< boolEnableDetailedFunctionProperties ("enable-detailed-function-properties", cl::Hidden, cl::init(false), cl::desc("Whether or not to compute detailed function properties."))
static raw_ostreamoperator<< (raw_ostream &R, const ore::NV &Arg)
template<class RemarkT>
decltype(auto) operator<< (RemarkT &&R, const InlineCost &IC)
std::optional< int > getStringFnAttrAsInt (const Attribute &Attr)
std::optional< int > getStringFnAttrAsInt (Function *F, StringRef AttrKind)
template const SimplifyQuery getBestSimplifyQuery (AnalysisManager< Function > &, Function &)
raw_ostreamoperator<< (raw_ostream &OS, ScalarEvolution::LoopDisposition LD)
raw_ostreamoperator<< (raw_ostream &OS, ScalarEvolution::BlockDisposition BD)
StringRef toString (TensorType TT)
static bool hasSingleValue (const ValueLatticeElement &Val)
static Expected< std::unique_ptr< MemoryBuffer > > setupMemoryBuffer (const Twine &Filename, vfs::FileSystem &FS)
bool operator== (const DbgValueLocEntry &A, const DbgValueLocEntry &B)
 Compare two DbgValueLocEntries for equality.
bool operator== (const DbgValueLoc &A, const DbgValueLoc &B)
 Compare two DbgValueLocs for equality.
bool operator< (const DbgValueLoc &A, const DbgValueLoc &B)
 Compare two fragments based on their offset.
bool operator< (const struct FrameIndexExpr &LHS, const struct FrameIndexExpr &RHS)
bool operator< (const struct EntryValueInfo &LHS, const struct EntryValueInfo &RHS)
template<>
raw_ostreamWriteGraph (raw_ostream &O, const EdgeBundles &G, bool ShortNames, const Twine &Title)
 Specialize WriteGraph, the standard implementation won't work.
LDVImplmakeVarLocBasedLiveDebugValues ()
LDVImplmakeInstrRefBasedLiveDebugValues ()
bool debuginfoShouldUseDebugInstrRef (const Triple &T)
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 primary live range LR to a list of newly created live ranges SplitLRs.
cl::opt< unsignedStaticLikelyProb ("static-likely-prob", cl::desc("branch probability threshold in percentage" " to be considered very likely"), cl::init(80), cl::Hidden)
cl::opt< unsignedProfileLikelyProb ("profile-likely-prob", cl::desc("branch probability threshold in percentage to be considered" " very likely when profile is available"), cl::init(51), cl::Hidden)
cl::opt< boolSwpEnableCopyToPhi ("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::desc("Enable CopyToPhi DAG Mutation"))
cl::opt< int > SwpForceIssueWidth ("pipeliner-force-issue-width", cl::desc("Force pipeliner to use specified issue width."), cl::Hidden, cl::init(-1))
 A command line argument to force pipeliner to use specified issue width.
FunctionPasscreateMachineRegionInfoPass ()
cl::opt< MISched::DirectionPreRADirection ("misched-prera-direction", cl::Hidden, cl::desc("Pre reg-alloc list scheduling direction"), cl::init(MISched::Unspecified), cl::values(clEnumValN(MISched::TopDown, "topdown", "Force top-down pre reg-alloc list scheduling"), clEnumValN(MISched::BottomUp, "bottomup", "Force bottom-up pre reg-alloc list scheduling"), clEnumValN(MISched::Bidirectional, "bidirectional", "Force bidirectional pre reg-alloc list scheduling")))
cl::opt< boolVerifyScheduling ("verify-misched", cl::Hidden, cl::desc("Verify machine instrs before and after machine scheduling"))
cl::opt< boolViewMISchedDAGs ("view-misched-dags", cl::Hidden, cl::desc("Pop up a window to show MISched dags after they are processed"))
cl::opt< boolPrintDAGs ("misched-print-dags", cl::Hidden, cl::desc("Print schedule DAGs"))
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.
std::optional< PseudoProbeextractProbe (const MachineInstr &MI)
LLVM_ABI_FOR_TEST void extractInstructionFeatures (llvm::SmallVectorImpl< LRStartEndInfo > &LRPosInfo, MLModelRunner *RegallocRunner, function_ref< int(SlotIndex)> GetOpcode, function_ref< float(SlotIndex)> GetMBBFreq, function_ref< MachineBasicBlock *(SlotIndex)> GetMBBReference, const int InstructionsIndex, const int InstructionsMappingIndex, const int MBBFreqIndex, const int MBBMappingIndex, const SlotIndex LastIndex)
LLVM_ABI_FOR_TEST void extractMBBFrequency (const SlotIndex CurrentIndex, const size_t CurrentInstructionIndex, std::map< MachineBasicBlock *, size_t > &VisitedMBBs, function_ref< float(SlotIndex)> GetMBBFreq, MachineBasicBlock *CurrentMBBReference, MLModelRunner *RegallocRunner, const int MBBFreqIndex, const int MBBMappingIndex)
MachineBasicBlock::iterator findPHICopyInsertPoint (MachineBasicBlock *MBB, MachineBasicBlock *SuccMBB, Register SrcReg)
 findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB.
cl::opt< unsignedEvictInterferenceCutoff ("regalloc-eviction-max-interference-cutoff", cl::Hidden, cl::desc("Number of interferences after which we declare " "an interference unevictable and bail out. This " "is a compilation cost-saving consideration. To " "disable, pass a very large number."), cl::init(10))
RegAllocScore calculateRegAllocScore (const MachineFunction &MF, const MachineBlockFrequencyInfo &MBFI)
 Calculate a score.
LLVM_ABI_FOR_TEST RegAllocScore calculateRegAllocScore (const MachineFunction &MF, llvm::function_ref< double(const MachineBasicBlock &)> GetBBFreq, llvm::function_ref< bool(const MachineInstr &)> IsTriviallyRematerializable)
 Implementation of the above, which is also more easily unittestable.
 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")
static void prettyPrintBaseTypeRef (DWARFUnit *U, raw_ostream &OS, DIDumpOptions DumpOpts, ArrayRef< uint64_t > Operands, unsigned Operand)
static bool printOp (const DWARFExpression::Operation *Op, raw_ostream &OS, DIDumpOptions DumpOpts, const DWARFExpression *Expr, DWARFUnit *U)
static bool printCompactDWARFExpr (raw_ostream &OS, DWARFExpression::iterator I, const DWARFExpression::iterator E, std::function< StringRef(uint64_t RegNum, bool IsEH)> GetNameForDWARFReg=nullptr)
static std::vector< DescgetOpDescriptions ()
static Desc getDescImpl (ArrayRef< Desc > Descriptions, unsigned Opcode)
static Desc getOpDesc (unsigned Opcode)
static std::vector< DescgetSubOpDescriptions ()
static Desc getSubOpDesc (unsigned Opcode, unsigned SubOpcode)
llvm::raw_ostreamoperator<< (llvm::raw_ostream &OS, const GUID &G)
static std::string buildIDToString (BuildIDRef ID)
static bool isHeader (StringRef S)
static SmallVector< std::string, 0 > getHeaders ()
static bool hasELFMagic (StringRef FilePath)
bool isSuperReg (const MCRegisterInfo *MCRI, MCPhysReg Reg)
 This analysis only keeps track and cares about super registers, not the subregisters.
SmallVector< MCPhysReggetSuperRegs (const MCRegisterInfo *MCRI)
SmallVector< MCPhysReggetTrackingRegs (const MCRegisterInfo *MCRI)
MCPhysReg getSuperReg (const MCRegisterInfo *MCRI, MCPhysReg Reg)
static uint64_t getDebugInfoSize (DWARFContext &Dwarf)
 Compute the total size of the debug info.
static CompileUnitgetUnitForOffset (const UnitListTy &Units, uint64_t Offset)
 Similar to DWARFUnitSection::getUnitForOffset(), but returning our CompileUnit object instead.
static bool isODRAttribute (uint16_t Attr)
static bool isTypeTag (uint16_t Tag)
static void resolveRelativeObjectPath (SmallVectorImpl< char > &Buf, DWARFDie CU)
 Resolve the relative path to a build artifact referenced by DWARF by applying DW_AT_comp_dir.
static void analyzeImportedModule (const DWARFDie &DIE, CompileUnit &CU, DWARFLinkerBase::SwiftInterfacesMapTy *ParseableSwiftInterfaces, std::function< void(const Twine &, const DWARFDie &)> ReportWarning)
 Collect references to parseable Swift interfaces in imported DW_TAG_module blocks.
static bool updatePruning (const DWARFDie &Die, CompileUnit &CU, uint64_t ModulesEndOffset)
static void updateChildPruning (const DWARFDie &Die, CompileUnit &CU, CompileUnit::DIEInfo &ChildInfo)
static void analyzeContextInfo (const DWARFDie &DIE, unsigned ParentIdx, CompileUnit &CU, DeclContext *CurrentDeclContext, DeclContextTree &Contexts, uint64_t ModulesEndOffset, DWARFLinkerBase::SwiftInterfacesMapTy *ParseableSwiftInterfaces, std::function< void(const Twine &, const DWARFDie &)> ReportWarning)
 Recursive helper to build the global DeclContext information and gather the child->parent relationships in the original compile unit.
static bool dieNeedsChildrenToBeMeaningful (uint32_t Tag)
static bool isTlsAddressCode (uint8_t DW_OP_Code)
static void constructSeqOffsettoOrigRowMapping (CompileUnit &Unit, const DWARFDebugLine::LineTable &LT, DenseMap< uint64_t, unsigned > &SeqOffToOrigRow)
static void updateChildIncompleteness (const DWARFDie &Die, CompileUnit &CU, CompileUnit::DIEInfo &ChildInfo)
 Helper that updates the completeness of the current DIE based on the completeness of one of its children.
static void updateRefIncompleteness (const DWARFDie &Die, CompileUnit &CU, CompileUnit::DIEInfo &RefInfo)
 Helper that updates the completeness of the current DIE based on the completeness of the DIEs it references.
static bool isODRCanonicalCandidate (const DWARFDie &Die, CompileUnit &CU)
static void verifyKeepChain (CompileUnit &CU)
 Verify the keep chain by looking for DIEs that are kept but who's parent isn't.
static bool shouldSkipAttribute (bool Update, DWARFAbbreviationDeclaration::AttributeSpec AttrSpec, bool SkipPC)
static void patchAddrBase (DIE &Die, DIEInteger Offset)
static void insertLineSequence (std::vector< TrackedRow > &Seq, std::vector< TrackedRow > &Rows)
 Insert the new line info sequence Seq into the current set of already linked line info Rows.
static void patchStmtList (DIE &Die, DIEInteger Offset)
static uint64_t getDwoId (const DWARFDie &CUDie)
static std::string remapPath (StringRef Path, const DWARFLinkerBase::ObjectPrefixMapTy &ObjectPrefixMap)
static std::string getPCMFile (const DWARFDie &CUDie, const DWARFLinkerBase::ObjectPrefixMapTy *ObjectPrefixMap)
static bool inFunctionScope (CompileUnit &U, unsigned Idx)
 Check if the DIE at Idx is in the scope of a function.
static void writeNewOffsetsTo (MCStreamer &Out, DataExtractor &Data, DenseMap< uint64_t, uint32_t > &OffsetRemapping, uint64_t &Offset, uint64_t &Size)
void writeIndexTable (MCStreamer &Out, ArrayRef< unsigned > ContributionOffsets, const MapVector< uint64_t, UnitIndexEntry > &IndexEntries, const AccessField &Field)
void __register_frame (void *)
void __deregister_frame (void *)
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, Align Alignment)
static bool isRequiredForExecution (const SectionRef Section)
static bool isReadOnlyData (const SectionRef Section)
static bool isZeroInit (const SectionRef Section)
static bool isTLS (const SectionRef Section)
static std::unique_ptr< RuntimeDyldCOFFcreateRuntimeDyldCOFF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted)
static std::unique_ptr< RuntimeDyldELFcreateRuntimeDyldELF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted)
static std::unique_ptr< RuntimeDyldMachOcreateRuntimeDyldMachO (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted)
void jitLinkForORC (object::OwningBinary< object::ObjectFile > O, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, bool ProcessAllSections, unique_function< Error(const object::ObjectFile &Obj, RuntimeDyld::LoadedObjectInfo &LoadedObj, std::map< StringRef, JITEvaluatedSymbol >)> OnLoaded, unique_function< void(object::OwningBinary< object::ObjectFile >, std::unique_ptr< RuntimeDyld::LoadedObjectInfo >, Error)> OnEmitted)
static uint32_t extractBits (uint64_t Val, uint32_t Hi, uint32_t Lo)
static uint64_t getLoongArchPageDelta (uint64_t dest, uint64_t pc, uint32_t type)
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 void applyUTypeImmRISCV (uint8_t *InstrAddr, uint32_t Imm)
static void applyITypeImmRISCV (uint8_t *InstrAddr, uint32_t Imm)
static int64_t computeDelta (SectionEntry *A, SectionEntry *B)
static void add16 (uint8_t *p, int16_t v)
static void or32le (void *P, int32_t V)
static void write32AArch64Imm (uint8_t *T, uint64_t imm, uint32_t rangeLimit)
static void write32AArch64Ldr (uint8_t *T, uint64_t imm)
static void write32AArch64Addr (void *T, uint64_t s, uint64_t p, int shift)
static bool isThumbFunc (object::symbol_iterator Symbol, const object::ObjectFile &Obj, object::section_iterator Section)
static sys::MemoryBlock trimBlockToPageSize (sys::MemoryBlock M)
LLVM_ABI_FOR_TEST Expected< APIntexprAdd (const APInt &Lhs, const APInt &Rhs, bool &Overflow)
 Performs operation and.
LLVM_ABI_FOR_TEST Expected< APIntexprSub (const APInt &Lhs, const APInt &Rhs, bool &Overflow)
LLVM_ABI_FOR_TEST Expected< APIntexprMul (const APInt &Lhs, const APInt &Rhs, bool &Overflow)
LLVM_ABI_FOR_TEST Expected< APIntexprDiv (const APInt &Lhs, const APInt &Rhs, bool &Overflow)
Expected< APIntexprMax (const APInt &Lhs, const APInt &Rhs, bool &Overflow)
Expected< APIntexprMin (const APInt &Lhs, const APInt &Rhs, bool &Overflow)
void deleteConstant (Constant *C)
cl::opt< boolEnableFSDiscriminator ("enable-fs-discriminator", cl::Hidden, cl::desc("Enable adding flow sensitive discriminators"))
LLVM_ABI cl::opt< boolPickMergedSourceLocations ("pick-merged-source-locations", cl::init(false), cl::Hidden, cl::desc("Preserve line and column number when merging locations."))
static ValueAsMetadatagetAsMetadata (Value *V)
static const Metadataget_hashable_data (const MDOperand &X)
 Make MDOperand transparent for hashing.
template<class T, class InfoT>
static TgetUniqued (DenseSet< T *, InfoT > &Store, const typename InfoT::KeyTy &Key)
static bool shouldIgnorePass (StringRef PassID)
static bool hasCountTypeMD (const Instruction &I)
std::optional< PseudoProbeextractProbeFromDiscriminator (const DILocation *DIL)
std::optional< PseudoProbeextractProbeFromDiscriminator (const Instruction &Inst)
static bool isExpandableUser (User *U)
static SmallVector< Instruction *, 4 > expandUser (BasicBlock::iterator InsertPt, Constant *C)
template<typename ParentClass>
void invalidateParentIListOrdering (ParentClass *Parent)
 Notify basic blocks when an instruction is inserted.
template<>
void invalidateParentIListOrdering (BasicBlock *BB)
cl::opt< boolEnableLTOInternalization ("enable-lto-internalization", cl::init(true), cl::Hidden, cl::desc("Enable global value internalization in LTO"))
 Enable global value internalization in LTO.
MCAsmParserExtensioncreateDarwinAsmParser ()
MCAsmParserExtensioncreateELFAsmParser ()
MCAsmParserExtensioncreateCOFFAsmParser ()
MCAsmParserExtensioncreateGOFFAsmParser ()
MCAsmParserExtensioncreateXCOFFAsmParser ()
MCAsmParserExtensioncreateWasmAsmParser ()
MCAsmParserExtensioncreateCOFFMasmParser ()
cl::opt< unsignedAsmMacroMaxNestingDepth ("asm-macro-max-nesting-depth", cl::init(20), cl::Hidden, cl::desc("The maximum nesting depth allowed for assembly macros."))
static ErrorOr< SmallString< 128 > > canonicalizePath (StringRef P)
template<typename T>
static llvm::Error readDescriptorRanges (DXContainerYAML::RootParameterHeaderYaml &Header, DXContainerYAML::RootSignatureYamlDesc &RootSigDesc, object::DirectX::DescriptorTableView *DTV)
static void writeMemProfSchema (ProfOStream &OS, const memprof::MemProfSchema &Schema)
static uint64_t writeMemProfRecords (ProfOStream &OS, llvm::MapVector< GlobalValue::GUID, memprof::IndexedMemProfRecord > &MemProfRecordData, memprof::MemProfSchema *Schema, memprof::IndexedVersion Version, llvm::DenseMap< memprof::CallStackId, memprof::LinearCallStackId > *MemProfCallStackIndexes=nullptr)
static uint64_t writeMemProfFrames (ProfOStream &OS, llvm::MapVector< memprof::FrameId, memprof::Frame > &MemProfFrameData)
static llvm::DenseMap< memprof::FrameId, memprof::LinearFrameIdwriteMemProfFrameArray (ProfOStream &OS, llvm::MapVector< memprof::FrameId, memprof::Frame > &MemProfFrameData, llvm::DenseMap< memprof::FrameId, memprof::FrameStat > &FrameHistogram)
static uint64_t writeMemProfCallStacks (ProfOStream &OS, llvm::MapVector< memprof::CallStackId, llvm::SmallVector< memprof::FrameId > > &MemProfCallStackData)
static llvm::DenseMap< memprof::CallStackId, memprof::LinearCallStackIdwriteMemProfCallStackArray (ProfOStream &OS, llvm::MapVector< memprof::CallStackId, llvm::SmallVector< memprof::FrameId > > &MemProfCallStackData, llvm::DenseMap< memprof::FrameId, memprof::LinearFrameId > &MemProfFrameIndexes, llvm::DenseMap< memprof::FrameId, memprof::FrameStat > &FrameHistogram, unsigned &NumElements)
static Error writeMemProfV2 (ProfOStream &OS, memprof::IndexedMemProfData &MemProfData, bool MemProfFullSchema)
static Error writeMemProfRadixTreeBased (ProfOStream &OS, memprof::IndexedMemProfData &MemProfData, memprof::IndexedVersion Version, bool MemProfFullSchema, std::unique_ptr< memprof::DataAccessProfData > DataAccessProfileData=nullptr, std::unique_ptr< memprof::MemProfSummary > MemProfSum=nullptr)
static Error writeMemProfV3 (ProfOStream &OS, memprof::IndexedMemProfData &MemProfData, bool MemProfFullSchema)
static Error writeMemProfV4 (ProfOStream &OS, memprof::IndexedMemProfData &MemProfData, bool MemProfFullSchema, std::unique_ptr< memprof::DataAccessProfData > DataAccessProfileData, std::unique_ptr< memprof::MemProfSummary > MemProfSum)
cl::opt< boolDoInstrProfNameCompression ("enable-name-compression", cl::desc("Enable name/filename string compression"), cl::init(true))
static StringRef stripDirPrefix (StringRef PathNameStr, uint32_t NumPrefix)
static StringRef getStrippedSourceFileName (const GlobalObject &GO)
static std::string getIRPGONameForGlobalObject (const GlobalObject &GO, GlobalValue::LinkageTypes Linkage, StringRef FileName)
static std::optional< std::string > lookupPGONameFromMetadata (MDNode *MD)
static std::string getIRPGOObjectName (const GlobalObject &GO, bool InLTO, MDNode *PGONameMetadata)
void setPGOFuncVisibility (Module &M, GlobalVariable *FuncNameVar)
INSTR_PROF_VISIBILITY INSTR_PROF_INLINE uint32_t getValueProfRecordSize (uint32_t NumValueSites, uint32_t NumValueData)
 Return the total size of the value profile record including the header and the value data.
INSTR_PROF_VISIBILITY INSTR_PROF_INLINE uint32_t getValueProfRecordNumValueData (ValueProfRecord *This)
 Return the total number of value data for This record.
INSTR_PROF_VISIBILITY uint32_t getValueProfDataSize (ValueProfRecordClosure *Closure)
 Return the total size in bytes of the on-disk value profile data given the data stored in Record.
INSTR_PROF_VISIBILITY void serializeValueProfRecordFrom (ValueProfRecord *This, ValueProfRecordClosure *Closure, uint32_t ValueKind, uint32_t NumValueSites)
 Extract value profile data of a function for the profile kind ValueKind from the Closure and serialize the data into This record instance.
INSTR_PROF_VISIBILITY ValueProfDataserializeValueProfDataFrom (ValueProfRecordClosure *Closure, ValueProfData *DstData)
 Extract value profile data of a function from the Closure and serialize the data into DstData if it is not NULL or heap memory allocated by the Closure's allocator method.
uint32_t getNumValueKindsInstrProf (const void *Record)
 ValueProfRecordClosure Interface implementation for InstrProfRecord class.
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)
ValueProfDataallocValueProfDataInstrProf (size_t TotalSizeInBytes)
static std::unique_ptr< ValueProfDataallocValueProfData (uint32_t TotalSize)
MDNodemayHaveValueProfileOfKind (const Instruction &Inst, InstrProfValueKind ValueKind)
static void createPGONameMetadata (GlobalObject &GO, StringRef MetadataName, StringRef PGOName)
cl::opt< boolUseContextLessSummary ("profile-summary-contextless", cl::Hidden, cl::desc("Merge context profiles before calculating thresholds."))
cl::opt< int > ProfileSummaryCutoffHot ("profile-summary-cutoff-hot", cl::Hidden, cl::init(990000), cl::desc("A count is hot if it exceeds the minimum count to" " reach this percentile of total counts."))
cl::opt< int > ProfileSummaryCutoffCold ("profile-summary-cutoff-cold", cl::Hidden, cl::init(999999), cl::desc("A count is cold if it is below the minimum count" " to reach this percentile of total counts."))
cl::opt< unsignedProfileSummaryHugeWorkingSetSizeThreshold ("profile-summary-huge-working-set-size-threshold", cl::Hidden, cl::init(15000), cl::desc("The code working set size is considered huge if the number of" " blocks required to reach the -profile-summary-cutoff-hot" " percentile exceeds this count."))
cl::opt< unsignedProfileSummaryLargeWorkingSetSizeThreshold ("profile-summary-large-working-set-size-threshold", cl::Hidden, cl::init(12500), cl::desc("The code working set size is considered large if the number of" " blocks required to reach the -profile-summary-cutoff-hot" " percentile exceeds this count."))
cl::opt< uint64_tProfileSummaryHotCount ("profile-summary-hot-count", cl::ReallyHidden, cl::desc("A fixed hot count that overrides the count derived from" " profile-summary-cutoff-hot"))
cl::opt< uint64_tProfileSummaryColdCount ("profile-summary-cold-count", cl::ReallyHidden, cl::desc("A fixed cold count that overrides the count derived from" " profile-summary-cutoff-cold"))
static constexpr APFloatBase::ExponentType exponentZero (const fltSemantics &semantics)
static constexpr APFloatBase::ExponentType exponentInf (const fltSemantics &semantics)
static constexpr APFloatBase::ExponentType exponentNaN (const fltSemantics &semantics)
static Error createError (const Twine &Err)
static constexpr unsigned int partCountForBits (unsigned int bits)
static unsigned int decDigitValue (unsigned int c)
static Expected< int > readExponent (StringRef::iterator begin, StringRef::iterator end)
static Expected< int > totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment)
static Expected< StringRef::iteratorskipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator *dot)
static Error interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo *D)
static Expected< lostFractiontrailingHexadecimalFraction (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 APFloat harrisonUlp (const APFloat &X)
static struct tm getStructTM (TimePoint<> TP)
static struct tm getStructTMUtc (UtcTime<> TP)
template<class T>
static void format (const T &Fractional, struct tm &LT, raw_ostream &OS, StringRef Style)
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 initDebugCounterOptions ()
void initGraphWriterOptions ()
void initSignalsOptions ()
void initStatisticOptions ()
void initTimerOptions ()
void initWithColorOptions ()
void initDebugOptions ()
void initRandomSeedOptions ()
void * SearchForAddressOfSpecialSymbol (const char *SymbolName)
static void PrintMessage (ArrayRef< SMLoc > Locs, SourceMgr::DiagKind Kind, const Twine &Msg)
static void fatal_exit ()
cl::opt< boolEmitLongStrLiterals ("long-string-literals", cl::desc("when emitting large string tables, prefer string literals over " "comma-separated char literals. This can be a readability and " "compile-time performance win, but upsets some compilers"), cl::Hidden, cl::init(true))
FunctionPasscreateAArch64DeadRegisterDefinitions ()
FunctionPasscreateAArch64RedundantCopyEliminationPass ()
FunctionPasscreateAArch64CondBrTuning ()
FunctionPasscreateAArch64CompressJumpTablesPass ()
FunctionPasscreateAArch64ConditionalCompares ()
FunctionPasscreateAArch64AdvSIMDScalar ()
FunctionPasscreateAArch64ISelDag (AArch64TargetMachine &TM, CodeGenOptLevel OptLevel)
 createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling.
FunctionPasscreateAArch64StorePairSuppressPass ()
FunctionPasscreateAArch64ExpandPseudoPass ()
 Returns an instance of the pseudo instruction expansion pass.
FunctionPasscreateAArch64SLSHardeningPass ()
FunctionPasscreateAArch64SpeculationHardeningPass ()
 Returns an instance of the pseudo instruction expansion pass.
FunctionPasscreateAArch64LoadStoreOptimizationPass ()
 createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass.
ModulePasscreateAArch64LowerHomogeneousPrologEpilogPass ()
FunctionPasscreateAArch64SIMDInstrOptPass ()
 Returns an instance of the high cost ASIMD instruction replacement optimization pass.
ModulePasscreateAArch64PromoteConstantPass ()
FunctionPasscreateAArch64ConditionOptimizerPass ()
FunctionPasscreateAArch64A57FPLoadBalancing ()
FunctionPasscreateAArch64A53Fix835769 ()
FunctionPasscreateFalkorHWPFFixPass ()
FunctionPasscreateFalkorMarkStridedAccessesPass ()
FunctionPasscreateAArch64PointerAuthPass ()
FunctionPasscreateAArch64BranchTargetsPass ()
FunctionPasscreateAArch64MIPeepholeOptPass ()
FunctionPasscreateAArch64PostCoalescerPass ()
FunctionPasscreateAArch64CleanupLocalDynamicTLSPass ()
FunctionPasscreateAArch64CollectLOHPass ()
FunctionPasscreateSMEABIPass ()
FunctionPasscreateSMEPeepholeOptPass ()
FunctionPasscreateMachineSMEABIPass ()
ModulePasscreateSVEIntrinsicOptsPass ()
InstructionSelectorcreateAArch64InstructionSelector (const AArch64TargetMachine &, const AArch64Subtarget &, const AArch64RegisterBankInfo &)
FunctionPasscreateAArch64O0PreLegalizerCombiner ()
FunctionPasscreateAArch64PreLegalizerCombiner ()
FunctionPasscreateAArch64PostLegalizerCombiner (bool IsOptNone)
FunctionPasscreateAArch64PostLegalizerLowering ()
FunctionPasscreateAArch64PostSelectOptimize ()
FunctionPasscreateAArch64StackTaggingPass (bool IsOptNone)
FunctionPasscreateAArch64StackTaggingPreRAPass ()
ModulePasscreateAArch64Arm64ECCallLoweringPass ()
void initializeAArch64A53Fix835769Pass (PassRegistry &)
void initializeAArch64A57FPLoadBalancingPass (PassRegistry &)
void initializeAArch64AdvSIMDScalarPass (PassRegistry &)
void initializeAArch64AsmPrinterPass (PassRegistry &)
void initializeAArch64PointerAuthPass (PassRegistry &)
void initializeAArch64BranchTargetsPass (PassRegistry &)
void initializeAArch64CFIFixupPass (PassRegistry &)
void initializeAArch64CollectLOHPass (PassRegistry &)
void initializeAArch64CompressJumpTablesPass (PassRegistry &)
void initializeAArch64CondBrTuningPass (PassRegistry &)
void initializeAArch64ConditionOptimizerPass (PassRegistry &)
void initializeAArch64ConditionalComparesPass (PassRegistry &)
void initializeAArch64DAGToDAGISelLegacyPass (PassRegistry &)
void initializeAArch64DeadRegisterDefinitionsPass (PassRegistry &)
void initializeAArch64ExpandPseudoPass (PassRegistry &)
void initializeAArch64LoadStoreOptPass (PassRegistry &)
void initializeAArch64LowerHomogeneousPrologEpilogPass (PassRegistry &)
void initializeAArch64MIPeepholeOptPass (PassRegistry &)
void initializeAArch64O0PreLegalizerCombinerPass (PassRegistry &)
void initializeAArch64PostCoalescerPass (PassRegistry &)
void initializeAArch64PostLegalizerCombinerPass (PassRegistry &)
void initializeAArch64PostLegalizerLoweringPass (PassRegistry &)
void initializeAArch64PostSelectOptimizePass (PassRegistry &)
void initializeAArch64PreLegalizerCombinerPass (PassRegistry &)
void initializeAArch64PromoteConstantPass (PassRegistry &)
void initializeAArch64RedundantCopyEliminationPass (PassRegistry &)
void initializeAArch64SIMDInstrOptPass (PassRegistry &)
void initializeAArch64SLSHardeningPass (PassRegistry &)
void initializeAArch64SpeculationHardeningPass (PassRegistry &)
void initializeAArch64StackTaggingPass (PassRegistry &)
void initializeAArch64StackTaggingPreRAPass (PassRegistry &)
void initializeAArch64StorePairSuppressPass (PassRegistry &)
void initializeFalkorHWPFFixPass (PassRegistry &)
void initializeFalkorMarkStridedAccessesLegacyPass (PassRegistry &)
void initializeLDTLSCleanupPass (PassRegistry &)
void initializeSMEABIPass (PassRegistry &)
void initializeSMEPeepholeOptPass (PassRegistry &)
void initializeMachineSMEABIPass (PassRegistry &)
void initializeSVEIntrinsicOptsPass (PassRegistry &)
void initializeAArch64Arm64ECCallLoweringPass (PassRegistry &)
bool CC_AArch64_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_Thunk (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_Thunk_Native (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_DarwinPCS_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_DarwinPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_DarwinPCS_ILP32_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Win64PCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Win64_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Win64_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Arm64EC_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_AArch64_Preserve_None (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_AArch64_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_AArch64_Arm64EC_Thunk (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_AArch64_Arm64EC_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
std::optional< UsedNZCVexamineCFlagsUse (MachineInstr &MI, MachineInstr &CmpInstr, const TargetRegisterInfo &TRI, SmallVectorImpl< MachineInstr * > *CCUseInstrs=nullptr)
bool isNZCVTouchedInInstructionRange (const MachineInstr &DefMI, const MachineInstr &UseMI, const TargetRegisterInfo *TRI)
 Return true if there is an instruction /after/ DefMI and before UseMI which either reads or clobbers NZCV.
MCCFIInstruction createDefCFA (const TargetRegisterInfo &TRI, unsigned FrameReg, unsigned Reg, const StackOffset &Offset, bool LastAdjustmentWasScalable=true)
MCCFIInstruction createCFAOffset (const TargetRegisterInfo &MRI, unsigned Reg, const StackOffset &OffsetFromDefCFA, std::optional< int64_t > IncomingVGOffsetFromDefCFA)
void emitFrameOffset (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, unsigned DestReg, unsigned SrcReg, StackOffset Offset, const TargetInstrInfo *TII, MachineInstr::MIFlag=MachineInstr::NoFlags, bool SetNZCV=false, bool NeedsWinCFI=false, bool *HasWinCFI=nullptr, bool EmitCFAOffset=false, StackOffset InitialOffset={}, unsigned FrameReg=AArch64::SP)
 emitFrameOffset - Emit instructions as needed to set DestReg to SrcReg plus Offset.
bool rewriteAArch64FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, unsigned FrameReg, StackOffset &Offset, const AArch64InstrInfo *TII)
 rewriteAArch64FrameIndex - Rewrite MI to access 'Offset' bytes from the FP.
int isAArch64FrameOffsetLegal (const MachineInstr &MI, StackOffset &Offset, bool *OutUseUnscaledOp=nullptr, unsigned *OutUnscaledOp=nullptr, int64_t *EmittableOffset=nullptr)
 Check if the Offset is a valid frame offset for MI.
static bool isUncondBranchOpcode (int Opc)
static bool isCondBranchOpcode (int Opc)
static bool isIndirectBranchOpcode (int Opc)
static bool isIndirectCallOpcode (unsigned Opc)
static bool isPTrueOpcode (unsigned Opc)
unsigned getBLRCallOpcode (const MachineFunction &MF)
 Return opcode to be used for indirect calls.
static unsigned getXPACOpcodeForKey (AArch64PACKey::ID K)
 Return XPAC opcode to be used for a ptrauth strip using the given key.
static unsigned getAUTOpcodeForKey (AArch64PACKey::ID K, bool Zero)
 Return AUT opcode to be used for a ptrauth auth using the given key, or its AUT*Z variant that doesn't take a discriminator operand, using zero instead.
static unsigned getPACOpcodeForKey (AArch64PACKey::ID K, bool Zero)
 Return PAC opcode to be used for a ptrauth sign using the given key, or its PAC*Z variant that doesn't take a discriminator operand, using zero instead.
std::unique_ptr< ScheduleDAGMutationcreateAArch64MacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64TargetMachine::createMachineScheduler() to have an effect.
unsigned getPerfectShuffleCost (llvm::ArrayRef< int > M)
bool isZIPMask (ArrayRef< int > M, unsigned NumElts, unsigned &WhichResultOut)
 Return true for zip1 or zip2 masks of the form: <0, 8, 1, 9, 2, 10, 3, 11> or <4, 12, 5, 13, 6, 14, 7, 15>
bool isUZPMask (ArrayRef< int > M, unsigned NumElts, unsigned &WhichResultOut)
 Return true for uzp1 or uzp2 masks of the form: <0, 2, 4, 6, 8, 10, 12, 14> or <1, 3, 5, 7, 9, 11, 13, 15>
bool isTRNMask (ArrayRef< int > M, unsigned NumElts, unsigned &WhichResult)
 Return true for trn1 or trn2 masks of the form: <0, 8, 2, 10, 4, 12, 6, 14> or <1, 9, 3, 11, 5, 13, 7, 15>
bool isREVMask (ArrayRef< int > M, unsigned EltSize, unsigned NumElts, unsigned BlockSize)
 isREVMask - Check if a vector shuffle corresponds to a REV instruction with the specified blocksize.
std::optional< unsignedisDUPQMask (ArrayRef< int > Mask, unsigned Segments, unsigned SegmentSize)
 isDUPQMask - matches a splat of equivalent lanes within segments of a given number of elements.
bool isDUPFirstSegmentMask (ArrayRef< int > Mask, unsigned Segments, unsigned SegmentSize)
 isDUPFirstSegmentMask - matches a splat of the first 128b segment.
static void getLivePhysRegsUpTo (MachineInstr &MI, const TargetRegisterInfo &TRI, LivePhysRegs &LiveRegs)
 Collect live registers from the end of MI's parent up to (including) MI in LiveRegs.
static bool isFuncletReturnInstr (const MachineInstr &MI)
MCStreamercreateAArch64ELFStreamer (const Triple &, MCContext &Context, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter)
MCCodeEmittercreateAArch64MCCodeEmitter (const MCInstrInfo &MCII, 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, bool IsILP32)
std::unique_ptr< MCObjectTargetWritercreateAArch64WinCOFFObjectWriter (const Triple &TheTriple)
MCTargetStreamercreateAArch64AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint)
MCTargetStreamercreateAArch64ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
MCTargetStreamercreateAArch64NullTargetStreamer (MCStreamer &S)
MCStreamercreateAArch64WinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter)
TargetgetTheAArch64leTarget ()
TargetgetTheAArch64beTarget ()
TargetgetTheAArch64_32Target ()
TargetgetTheARM64Target ()
TargetgetTheARM64_32Target ()
static MCRegister getWRegFromXReg (MCRegister Reg)
static MCRegister getXRegFromWReg (MCRegister Reg)
static MCRegister getXRegFromXRegTuple (MCRegister RegTuple)
static MCRegister getBRegFromDReg (MCRegister Reg)
static MCRegister getDRegFromBReg (MCRegister Reg)
static bool atomicBarrierDroppedOnZero (unsigned Opcode)
unsigned getNumElementsFromSVEPredPattern (unsigned Pattern)
 Return the number of active elements for VL1 to VL256 predicate pattern, zero for all other patterns.
std::optional< unsignedgetSVEPredPatternFromNumElements (unsigned MinNumElts)
 Return specific VL predicate pattern based on the number of elements.
 LLVM_DECLARE_ENUM_AS_BITMASK (TailFoldingOpts,(long) TailFoldingOpts::Reverse)
static const charAArch64VectorLayoutToString (AArch64Layout::VectorLayout Layout)
static AArch64Layout::VectorLayout AArch64StringToVectorLayout (StringRef LayoutStr)
static StringRef AArch64PACKeyIDToString (AArch64PACKey::ID KeyID)
 Return 2-letter identifier string for numeric key ID.
static std::optional< AArch64PACKey::IDAArch64StringToPACKeyID (StringRef Name)
 Return numeric key ID for 2-letter identifier string.
void initializeAMDGPUPreLegalizerCombinerPass (PassRegistry &)
FunctionPasscreateAMDGPUPreLegalizeCombiner (bool IsOptNone)
void initializeAMDGPUPostLegalizerCombinerPass (PassRegistry &)
FunctionPasscreateAMDGPUPostLegalizeCombiner (bool IsOptNone)
FunctionPasscreateAMDGPURegBankCombiner (bool IsOptNone)
void initializeAMDGPURegBankCombinerPass (PassRegistry &)
FunctionPasscreateAMDGPUGlobalISelDivergenceLoweringPass ()
FunctionPasscreateAMDGPURegBankSelectPass ()
FunctionPasscreateAMDGPURegBankLegalizePass ()
FunctionPasscreateGCNDPPCombinePass ()
FunctionPasscreateSIAnnotateControlFlowLegacyPass ()
 Create the annotation pass.
FunctionPasscreateSIFoldOperandsLegacyPass ()
FunctionPasscreateSIPeepholeSDWALegacyPass ()
FunctionPasscreateSILowerI1CopiesLegacyPass ()
FunctionPasscreateSIShrinkInstructionsLegacyPass ()
FunctionPasscreateSILoadStoreOptimizerLegacyPass ()
FunctionPasscreateSIWholeQuadModeLegacyPass ()
FunctionPasscreateSIFixControlFlowLiveIntervalsPass ()
FunctionPasscreateSIOptimizeExecMaskingPreRAPass ()
FunctionPasscreateSIOptimizeVGPRLiveRangeLegacyPass ()
FunctionPasscreateSIFixSGPRCopiesLegacyPass ()
FunctionPasscreateLowerWWMCopiesPass ()
FunctionPasscreateSIMemoryLegalizerPass ()
FunctionPasscreateSIInsertWaitcntsPass ()
FunctionPasscreateSIPreAllocateWWMRegsLegacyPass ()
FunctionPasscreateSIFormMemoryClausesLegacyPass ()
FunctionPasscreateSIPostRABundlerPass ()
FunctionPasscreateAMDGPUImageIntrinsicOptimizerPass (const TargetMachine *)
ModulePasscreateAMDGPURemoveIncompatibleFunctionsPass (const TargetMachine *)
FunctionPasscreateAMDGPUCodeGenPreparePass ()
FunctionPasscreateAMDGPULateCodeGenPrepareLegacyPass ()
FunctionPasscreateAMDGPUReserveWWMRegsPass ()
FunctionPasscreateAMDGPURewriteOutArgumentsPass ()
ModulePasscreateAMDGPULowerModuleLDSLegacyPass (const AMDGPUTargetMachine *TM=nullptr)
ModulePasscreateAMDGPULowerBufferFatPointersPass ()
ModulePasscreateAMDGPULowerIntrinsicsLegacyPass ()
FunctionPasscreateSIModeRegisterPass ()
FunctionPasscreateGCNPreRAOptimizationsLegacyPass ()
FunctionPasscreateAMDGPUPreloadKernArgPrologLegacyPass ()
ModulePasscreateAMDGPUPreloadKernelArgumentsLegacyPass (const TargetMachine *)
void initializeAMDGPUDAGToDAGISelLegacyPass (PassRegistry &)
void initializeAMDGPUAlwaysInlinePass (PassRegistry &)
void initializeAMDGPUAsmPrinterPass (PassRegistry &)
FunctionPasscreateAMDGPUAtomicOptimizerPass (ScanOptions ScanStrategy)
void initializeAMDGPUAtomicOptimizerPass (PassRegistry &)
ModulePasscreateAMDGPUCtorDtorLoweringLegacyPass ()
void initializeAMDGPUCtorDtorLoweringLegacyPass (PassRegistry &)
FunctionPasscreateAMDGPULowerKernelArgumentsPass ()
void initializeAMDGPULowerKernelArgumentsPass (PassRegistry &)
FunctionPasscreateAMDGPUPromoteKernelArgumentsPass ()
void initializeAMDGPUPromoteKernelArgumentsPass (PassRegistry &)
ModulePasscreateAMDGPULowerKernelAttributesPass ()
void initializeAMDGPULowerKernelAttributesPass (PassRegistry &)
void initializeAMDGPULowerModuleLDSLegacyPass (PassRegistry &)
void initializeAMDGPULowerBufferFatPointersPass (PassRegistry &)
void initializeAMDGPULowerIntrinsicsLegacyPass (PassRegistry &)
void initializeAMDGPUPrepareAGPRAllocLegacyPass (PassRegistry &)
void initializeAMDGPUReserveWWMRegsLegacyPass (PassRegistry &)
void initializeAMDGPURewriteOutArgumentsPass (PassRegistry &)
void initializeGCNDPPCombineLegacyPass (PassRegistry &)
void initializeSIFoldOperandsLegacyPass (PassRegistry &)
void initializeSIPeepholeSDWALegacyPass (PassRegistry &)
void initializeSIShrinkInstructionsLegacyPass (PassRegistry &)
void initializeSIFixSGPRCopiesLegacyPass (PassRegistry &)
void initializeSIFixVGPRCopiesLegacyPass (PassRegistry &)
void initializeSILowerWWMCopiesLegacyPass (PassRegistry &)
void initializeSILowerI1CopiesLegacyPass (PassRegistry &)
void initializeAMDGPUGlobalISelDivergenceLoweringPass (PassRegistry &)
void initializeAMDGPURegBankSelectPass (PassRegistry &)
void initializeAMDGPURegBankLegalizePass (PassRegistry &)
void initializeAMDGPUMarkLastScratchLoadLegacyPass (PassRegistry &)
void initializeSILowerSGPRSpillsLegacyPass (PassRegistry &)
void initializeSILoadStoreOptimizerLegacyPass (PassRegistry &)
void initializeSIWholeQuadModeLegacyPass (PassRegistry &)
void initializeSILowerControlFlowLegacyPass (PassRegistry &)
void initializeSIPreEmitPeepholeLegacyPass (PassRegistry &)
void initializeSILateBranchLoweringLegacyPass (PassRegistry &)
void initializeSIOptimizeExecMaskingLegacyPass (PassRegistry &)
void initializeSIPreAllocateWWMRegsLegacyPass (PassRegistry &)
void initializeAMDGPUImageIntrinsicOptimizerPass (PassRegistry &)
void initializeAMDGPUPerfHintAnalysisLegacyPass (PassRegistry &)
void initializeGCNRegPressurePrinterPass (PassRegistry &)
void initializeAMDGPUPreloadKernArgPrologLegacyPass (PassRegistry &)
void initializeAMDGPUPreloadKernelArgumentsLegacyPass (PassRegistry &)
FunctionPasscreateAMDGPUPromoteAlloca ()
void initializeAMDGPUPromoteAllocaPass (PassRegistry &)
PasscreateAMDGPUStructurizeCFGPass ()
FunctionPasscreateAMDGPUISelDag (TargetMachine &TM, CodeGenOptLevel OptLevel)
 This pass converts a legalized DAG into a AMDGPU-specific.
ModulePasscreateAMDGPUAlwaysInlinePass (bool GlobalOpt=true)
void initializeAMDGPUSwLowerLDSLegacyPass (PassRegistry &)
ModulePasscreateAMDGPUSwLowerLDSLegacyPass (const AMDGPUTargetMachine *TM=nullptr)
FunctionPasscreateAMDGPUAnnotateUniformValuesLegacy ()
ModulePasscreateAMDGPUPrintfRuntimeBinding ()
void initializeAMDGPUPrintfRuntimeBindingPass (PassRegistry &)
void initializeAMDGPUResourceUsageAnalysisWrapperPassPass (PassRegistry &)
void initializeSIOptimizeExecMaskingPreRALegacyPass (PassRegistry &)
void initializeSIOptimizeVGPRLiveRangeLegacyPass (PassRegistry &)
void initializeAMDGPUAnnotateUniformValuesLegacyPass (PassRegistry &)
void initializeAMDGPUCodeGenPreparePass (PassRegistry &)
void initializeAMDGPURemoveIncompatibleFunctionsLegacyPass (PassRegistry &)
void initializeAMDGPULateCodeGenPrepareLegacyPass (PassRegistry &)
FunctionPasscreateAMDGPURewriteUndefForPHILegacyPass ()
void initializeAMDGPURewriteUndefForPHILegacyPass (PassRegistry &)
void initializeSIAnnotateControlFlowLegacyPass (PassRegistry &)
void initializeSIMemoryLegalizerLegacyPass (PassRegistry &)
void initializeSIModeRegisterLegacyPass (PassRegistry &)
void initializeAMDGPUInsertDelayAluLegacyPass (PassRegistry &)
void initializeAMDGPULowerVGPREncodingLegacyPass (PassRegistry &)
void initializeSIInsertHardClausesLegacyPass (PassRegistry &)
void initializeSIInsertWaitcntsLegacyPass (PassRegistry &)
void initializeSIFormMemoryClausesLegacyPass (PassRegistry &)
void initializeSIPostRABundlerLegacyPass (PassRegistry &)
void initializeGCNCreateVOPDLegacyPass (PassRegistry &)
void initializeAMDGPUUnifyDivergentExitNodesPass (PassRegistry &)
ImmutablePasscreateAMDGPUAAWrapperPass ()
void initializeAMDGPUAAWrapperPassPass (PassRegistry &)
ImmutablePasscreateAMDGPUExternalAAWrapperPass ()
void initializeAMDGPUExternalAAWrapperPass (PassRegistry &)
void initializeAMDGPUArgumentUsageInfoPass (PassRegistry &)
ModulePasscreateAMDGPUExportKernelRuntimeHandlesLegacyPass ()
void initializeAMDGPUExportKernelRuntimeHandlesLegacyPass (PassRegistry &)
void initializeGCNNSAReassignLegacyPass (PassRegistry &)
void initializeGCNPreRALongBranchRegLegacyPass (PassRegistry &)
void initializeGCNPreRAOptimizationsLegacyPass (PassRegistry &)
FunctionPasscreateAMDGPUSetWavePriorityPass ()
void initializeAMDGPUSetWavePriorityLegacyPass (PassRegistry &)
void initializeGCNRewritePartialRegUsesLegacyPass (llvm::PassRegistry &)
void initializeAMDGPUWaitSGPRHazardsLegacyPass (PassRegistry &)
void initializeAMDGPURewriteAGPRCopyMFMALegacyPass (PassRegistry &)
raw_ostreamoperator<< (raw_ostream &OS, const ArgDescriptor &Arg)
std::unique_ptr< ScheduleDAGMutationcreateAMDGPUExportClusteringDAGMutation ()
std::unique_ptr< ScheduleDAGMutationcreateIGroupLPDAGMutation (AMDGPU::SchedulingPhase Phase)
 Phase specifes whether or not this is a reentry into the IGroupLPDAGMutation.
static bool getConstantValue (SDValue N, uint32_t &Out)
static SDNodepackConstantV2I16 (const SDNode *N, SelectionDAG &DAG)
static double log2 (double V)
std::unique_ptr< ScheduleDAGMutationcreateAMDGPUMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUTargetMachine::createMachineScheduler() to have an effect.
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)
GCNRegPressure operator+ (const GCNRegPressure &P1, const GCNRegPressure &P2)
GCNRegPressure operator- (const GCNRegPressure &P1, const GCNRegPressure &P2)
GCNRPTracker::LiveRegSet getLiveRegs (SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI)
LaneBitmask getLiveLaneMask (unsigned Reg, SlotIndex SI, const LiveIntervals &LIS, const MachineRegisterInfo &MRI, LaneBitmask LaneMaskFilter=LaneBitmask::getAll())
LaneBitmask getLiveLaneMask (const LiveInterval &LI, SlotIndex SI, const MachineRegisterInfo &MRI, LaneBitmask LaneMaskFilter=LaneBitmask::getAll())
template<typename Range>
DenseMap< MachineInstr *, GCNRPTracker::LiveRegSetgetLiveRegMap (Range &&R, bool After, LiveIntervals &LIS)
 creates a map MachineInstr -> LiveRegSet R - range of iterators on instructions After - upon entry or exit of every instruction Note: there is no entry in the map for instructions with empty live reg set Complexity = O(NumVirtRegs * averageLiveRangeSegmentsPerReg * lg(R))
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)
bool isEqual (const GCNRPTracker::LiveRegSet &S1, const GCNRPTracker::LiveRegSet &S2)
Printable print (const GCNRegPressure &RP, const GCNSubtarget *ST=nullptr, unsigned DynamicVGPRBlockSize=0)
Printable print (const GCNRPTracker::LiveRegSet &LiveRegs, const MachineRegisterInfo &MRI)
Printable reportMismatch (const GCNRPTracker::LiveRegSet &LISLR, const GCNRPTracker::LiveRegSet &TrackedL, const TargetRegisterInfo *TRI, StringRef Pfx=" ")
raw_ostreamoperator<< (raw_ostream &OS, const GCNSchedStageID &StageID)
raw_ostreamoperator<< (raw_ostream &OS, const ScheduleMetrics &Sm)
bool checkVOPDRegConstraints (const SIInstrInfo &TII, const MachineInstr &FirstMI, const MachineInstr &SecondMI, bool IsVOPD3)
std::unique_ptr< ScheduleDAGMutationcreateVOPDPairingMutation ()
MCELFStreamercreateAMDGPUELFStreamer (const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter)
MCRegisterInfocreateGCNMCRegisterInfo (AMDGPUDwarfFlavour DwarfFlavour)
MCCodeEmittercreateAMDGPUMCCodeEmitter (const MCInstrInfo &MCII, 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)
MCCodeEmittercreateR600MCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCInstrInfocreateR600MCInstrInfo ()
FunctionPasscreateR600VectorRegMerger ()
FunctionPasscreateR600ExpandSpecialInstrsPass ()
FunctionPasscreateR600EmitClauseMarkers ()
FunctionPasscreateR600ClauseMergePass ()
FunctionPasscreateR600Packetizer ()
FunctionPasscreateR600ControlFlowFinalizer ()
FunctionPasscreateR600MachineCFGStructurizerPass ()
FunctionPasscreateR600ISelDag (TargetMachine &TM, CodeGenOptLevel OptLevel)
 This pass converts a legalized DAG into a R600-specific.
ModulePasscreateR600OpenCLImageTypeLoweringPass ()
void initializeR600ClauseMergePassPass (PassRegistry &)
void initializeR600ControlFlowFinalizerPass (PassRegistry &)
void initializeR600ExpandSpecialInstrsPassPass (PassRegistry &)
void initializeR600VectorRegMergerPass (PassRegistry &)
void initializeR600PacketizerPass (PassRegistry &)
void initializeR600EmitClauseMarkersPass (PassRegistry &)
void initializeR600MachineCFGStructurizerPass (PassRegistry &)
AsmPrintercreateR600AsmPrinterPass (TargetMachine &TM, std::unique_ptr< MCStreamer > &&Streamer)
bool isOfRegClass (const TargetInstrInfo::RegSubRegPair &P, const TargetRegisterClass &TRC, MachineRegisterInfo &MRI)
 Returns true if a reg:subreg pair P has a TRC class.
TargetInstrInfo::RegSubRegPair getRegSubRegPair (const MachineOperand &O)
 Create RegSubRegPair from a register MachineOperand.
TargetInstrInfo::RegSubRegPair getRegSequenceSubReg (MachineInstr &MI, unsigned SubReg)
 Return the SubReg component from REG_SEQUENCE.
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.
bool execMayBeModifiedBeforeUse (const MachineRegisterInfo &MRI, Register VReg, const MachineInstr &DefMI, const MachineInstr &UseMI)
 Return false if EXEC is not changed between the def of VReg at DefMI and the use at UseMI.
bool execMayBeModifiedBeforeAnyUse (const MachineRegisterInfo &MRI, Register VReg, const MachineInstr &DefMI)
 Return false if EXEC is not changed between the def of VReg at DefMI and all its uses.
bool isBoolSGPR (SDValue V)
Register createLaneMaskReg (MachineRegisterInfo *MRI, MachineRegisterInfo::VRegAttrs LaneMaskRegAttrs)
TargetgetTheR600Target ()
 The target for R600 GPUs.
TargetgetTheGCNTarget ()
 The target for GCN GPUs.
raw_ostreamoperator<< (raw_ostream &OS, const AMDGPU::IsaInfo::TargetIDSetting S)
FunctionPasscreateARCISelDag (ARCTargetMachine &TM, CodeGenOptLevel OptLevel)
 This pass converts a legalized DAG into a ARC-specific DAG, ready for instruction scheduling.
FunctionPasscreateARCExpandPseudosPass ()
FunctionPasscreateARCOptAddrMode ()
FunctionPasscreateARCBranchFinalizePass ()
void initializeARCAsmPrinterPass (PassRegistry &)
void initializeARCDAGToDAGISelLegacyPass (PassRegistry &)
void initializeARCBranchFinalizePass (PassRegistry &Registry)
void initializeARCOptAddrModePass (PassRegistry &)
TargetgetTheARCTarget ()
PasscreateMVETailPredicationPass ()
FunctionPasscreateARMLowOverheadLoopsPass ()
FunctionPasscreateARMBlockPlacementPass ()
PasscreateARMParallelDSPPass ()
FunctionPasscreateARMISelDag (ARMBaseTargetMachine &TM, CodeGenOptLevel OptLevel)
 createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling.
FunctionPasscreateA15SDOptimizerPass ()
FunctionPasscreateARMLoadStoreOptimizationPass (bool PreAlloc=false)
 Returns an instance of the load / store optimization pass.
FunctionPasscreateARMExpandPseudoPass ()
 createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
FunctionPasscreateARMBranchTargetsPass ()
FunctionPasscreateARMConstantIslandPass ()
 createARMConstantIslandPass - returns an instance of the constpool island pass.
FunctionPasscreateMLxExpansionPass ()
FunctionPasscreateThumb2ITBlockPass ()
 createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass.
FunctionPasscreateMVEVPTBlockPass ()
 createMVEVPTBlock - Returns an instance of the MVE VPT block insertion pass.
FunctionPasscreateMVETPAndVPTOptimisationsPass ()
 createMVETPAndVPTOptimisationsPass
FunctionPasscreateARMOptimizeBarriersPass ()
 createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass.
FunctionPasscreateThumb2SizeReductionPass (std::function< bool(const Function &)> Ftor=nullptr)
 createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass.
InstructionSelectorcreateARMInstructionSelector (const ARMBaseTargetMachine &TM, const ARMSubtarget &STI, const ARMRegisterBankInfo &RBI)
PasscreateMVEGatherScatterLoweringPass ()
FunctionPasscreateARMSLSHardeningPass ()
FunctionPasscreateARMIndirectThunks ()
PasscreateMVELaneInterleavingPass ()
FunctionPasscreateARMFixCortexA57AES1742098Pass ()
void LowerARMMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, ARMAsmPrinter &AP)
void initializeARMAsmPrinterPass (PassRegistry &)
void initializeARMBlockPlacementPass (PassRegistry &)
void initializeARMBranchTargetsPass (PassRegistry &)
void initializeARMConstantIslandsPass (PassRegistry &)
void initializeARMDAGToDAGISelLegacyPass (PassRegistry &)
void initializeARMExpandPseudoPass (PassRegistry &)
void initializeARMFixCortexA57AES1742098Pass (PassRegistry &)
void initializeARMLoadStoreOptPass (PassRegistry &)
void initializeARMLowOverheadLoopsPass (PassRegistry &)
void initializeARMParallelDSPPass (PassRegistry &)
void initializeARMPreAllocLoadStoreOptPass (PassRegistry &)
void initializeARMSLSHardeningPass (PassRegistry &)
void initializeMVEGatherScatterLoweringPass (PassRegistry &)
void initializeMVELaneInterleavingPass (PassRegistry &)
void initializeMVETPAndVPTOptimisationsPass (PassRegistry &)
void initializeMVETailPredicationPass (PassRegistry &)
void initializeMVEVPTBlockPass (PassRegistry &)
void initializeThumb2ITBlockPass (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.
static MachineOperand condCodeOp (unsigned CCReg=0)
 Get the operand corresponding to the conditional code result.
static MachineOperand t1CondCodeOp (bool isDead=false)
 Get the operand corresponding to the conditional code result for Thumb1.
static bool isUncondBranchOpcode (int Opc)
static bool isVPTOpcode (int Opc)
static unsigned VCMPOpcodeToVPT (unsigned Opcode)
static bool isCondBranchOpcode (int Opc)
static bool isJumpTableBranchOpcode (int Opc)
static bool isIndirectBranchOpcode (int Opc)
static bool isIndirectCall (const MachineInstr &MI)
static bool isIndirectControlFlowNotComingBack (const MachineInstr &MI)
static bool isSpeculationBarrierEndBBOpcode (int Opc)
static bool isPopOpcode (int Opc)
static bool isPushOpcode (int Opc)
static bool isSubImmOpcode (int Opc)
static bool isMovRegOpcode (int Opc)
static bool isValidCoprocessorNumber (unsigned Num, const FeatureBitset &featureBits)
 isValidCoprocessorNumber - decide whether an explicit coprocessor number is legal in generic instructions like CDP.
static bool isSEHInstruction (const MachineInstr &MI)
ARMCC::CondCodes getInstrPredicate (const MachineInstr &MI, Register &PredReg)
 getInstrPredicate - If instruction is predicated, returns its predicate condition, otherwise returns AL.
unsigned getMatchingCondBranchOpcode (unsigned Opc)
unsigned convertAddSubFlagsOpcode (unsigned OldOpc)
 Map pseudo instructions that imply an 'S' bit onto real opcodes.
void emitARMRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, Register DestReg, Register BaseReg, int NumBytes, ARMCC::CondCodes Pred, Register PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0)
 emitARMRegPlusImmediate / emitT2RegPlusImmediate - Emits a series of instructions to materializea destreg = basereg + immediate in ARM / Thumb2 code.
void emitT2RegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, Register DestReg, Register BaseReg, int NumBytes, ARMCC::CondCodes Pred, Register PredReg, const ARMBaseInstrInfo &TII, unsigned MIFlags=0)
void emitThumbRegPlusImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, const DebugLoc &dl, Register DestReg, Register 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.
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.
bool rewriteARMFrameIndex (MachineInstr &MI, unsigned FrameRegIdx, Register FrameReg, int &Offset, const ARMBaseInstrInfo &TII)
 rewriteARMFrameIndex / rewriteT2FrameIndex - Rewrite MI to access 'Offset' bytes from the FP.
bool rewriteT2FrameIndex (MachineInstr &MI, unsigned FrameRegIdx, Register FrameReg, int &Offset, const ARMBaseInstrInfo &TII, const TargetRegisterInfo *TRI)
bool registerDefinedBetween (unsigned Reg, MachineBasicBlock::iterator From, MachineBasicBlock::iterator To, const TargetRegisterInfo *TRI)
 Return true if Reg is defd between From and To.
MachineInstrfindCMPToFoldIntoCBZ (MachineInstr *Br, const TargetRegisterInfo *TRI)
 Search backwards from a tBcc to find a tCMPi8 against 0, meaning we can convert them to a tCBZ or tCBNZ.
void addUnpredicatedMveVpredNOp (MachineInstrBuilder &MIB)
void addUnpredicatedMveVpredROp (MachineInstrBuilder &MIB, Register DestReg)
void addPredicatedMveVpredNOp (MachineInstrBuilder &MIB, unsigned Cond)
void addPredicatedMveVpredROp (MachineInstrBuilder &MIB, unsigned Cond, unsigned Inactive)
unsigned ConstantMaterializationCost (unsigned Val, const ARMSubtarget *Subtarget, bool ForCodesize=false)
 Returns the number of instructions required to materialize the given constant in a register, or 3 if a literal pool load is needed.
bool HasLowerConstantMaterializationCost (unsigned Val1, unsigned Val2, const ARMSubtarget *Subtarget, bool ForCodesize=false)
 Returns true if Val1 has a lower Constant Materialization Cost than Val2.
int getAddSubImmediate (MachineInstr &MI)
bool isLegalAddressImm (unsigned Opcode, int Imm, const TargetInstrInfo *TII)
bool isGather (IntrinsicInst *IntInst)
bool isScatter (IntrinsicInst *IntInst)
bool isGatherScatter (IntrinsicInst *IntInst)
unsigned getBLXOpcode (const MachineFunction &MF)
unsigned gettBLXrOpcode (const MachineFunction &MF)
unsigned getBLXpredOpcode (const MachineFunction &MF)
bool isMVEVectorInstruction (const MachineInstr *MI)
static bool isCalleeSavedRegister (MCRegister Reg, const MCPhysReg *CSRegs)
static bool mayOptimizeThumb2Instruction (const MachineInstr *MI)
unsigned UnknownPadding (Align Alignment, unsigned KnownBits)
 UnknownPadding - Return the worst case padding that could result from unknown offset bits.
bool CC_ARM_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_ARM_AAPCS_VFP (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_ARM_APCS_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool FastCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_ARM_Win32_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_ARM_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_ARM_AAPCS_VFP (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetFastCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
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 hasImplicitCPSRUse (const MachineInstr *MI)
static bool mismatchedPred (ARMCC::CondCodes a, ARMCC::CondCodes b)
std::unique_ptr< ScheduleDAGMutationcreateARMLatencyMutations (const ARMSubtarget &ST, AAResults *AA)
std::unique_ptr< ScheduleDAGMutationcreateARMLatencyMutations (const class ARMSubtarget &, AAResults *AA)
 Note that you have to add: DAG.addMutation(createARMLatencyMutation(ST, AA)); to ARMTargetMachine::createMachineScheduler() to have an effect.
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.
std::unique_ptr< ScheduleDAGMutationcreateARMMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMTargetMachine::createMachineScheduler() to have an effect.
void initializeARMExecutionDomainFixPass (PassRegistry &)
bool isVREVMask (ArrayRef< int > M, EVT VT, unsigned BlockSize)
 isVREVMask - Check if a vector shuffle corresponds to a VREV instruction with the specified blocksize.
template<>
bool IsCPSRDead< MCInst > (const MCInst *Instr)
static bool isARMLowRegister (MCRegister Reg)
 isARMLowRegister - Returns true if the register is a low register (r0-r7).
MCTargetStreamercreateARMTargetAsmStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint)
MCTargetStreamercreateARMNullTargetStreamer (MCStreamer &S)
MCTargetStreamercreateARMObjectTargetELFStreamer (MCStreamer &S)
MCTargetStreamercreateARMObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
MCTargetStreamercreateARMObjectTargetMachOStreamer (MCStreamer &S)
MCTargetStreamercreateARMObjectTargetWinCOFFStreamer (MCStreamer &S)
MCCodeEmittercreateARMLEMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCCodeEmittercreateARMBEMCCodeEmitter (const MCInstrInfo &MCII, 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)
std::unique_ptr< MCObjectTargetWritercreateARMELFObjectWriter (uint8_t OSABI)
 Construct an ELF Mach-O object writer.
std::unique_ptr< MCObjectTargetWritercreateARMMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 Construct an ARM Mach-O object writer.
std::unique_ptr< MCObjectTargetWritercreateARMWinCOFFObjectWriter ()
 Construct an ARM PE/COFF object writer.
MCRelocationInfocreateARMMachORelocationInfo (MCContext &Ctx)
 Construct ARM Mach-O relocation info.
static unsigned VCTPOpcodeToLSTP (unsigned Opcode, bool IsDoLoop)
static unsigned getTailPredVectorWidth (unsigned Opcode)
static bool isVCTP (const MachineInstr *MI)
static bool isDoLoopStart (const MachineInstr &MI)
static bool isWhileLoopStart (const MachineInstr &MI)
static bool isLoopStart (const MachineInstr &MI)
MachineBasicBlockgetWhileLoopStartTargetBB (const MachineInstr &MI)
void RevertWhileLoopStartLR (MachineInstr *MI, const TargetInstrInfo *TII, unsigned BrOpc=ARM::t2Bcc, bool UseCmp=false)
void RevertDoLoopStart (MachineInstr *MI, const TargetInstrInfo *TII)
void RevertLoopDec (MachineInstr *MI, const TargetInstrInfo *TII, bool SetFlags=false)
void RevertLoopEnd (MachineInstr *MI, const TargetInstrInfo *TII, unsigned BrOpc=ARM::t2Bcc, bool SkipCmp=false)
TargetgetTheARMLETarget ()
TargetgetTheARMBETarget ()
TargetgetTheThumbLETarget ()
TargetgetTheThumbBETarget ()
ARMCC::CondCodes getITInstrPredicate (const MachineInstr &MI, Register &PredReg)
 getITInstrPredicate - Valid only in Thumb2 mode.
int findFirstVPTPredOperandIdx (const MachineInstr &MI)
ARMVCC::VPTCodes getVPTInstrPredicate (const MachineInstr &MI, Register &PredReg)
ARMVCC::VPTCodes getVPTInstrPredicate (const MachineInstr &MI)
void recomputeVPTBlockMask (MachineInstr &Instr)
ARM::PredBlockMask expandPredBlockMask (ARM::PredBlockMask BlockMask, ARMVCC::VPTCodes Kind)
static const charARMVPTPredToString (ARMVCC::VPTCodes CC)
static unsigned ARMVectorCondCodeFromString (StringRef CC)
static const charARMCondCodeToString (ARMCC::CondCodes CC)
static unsigned ARMCondCodeFromString (StringRef CC)
PasscreateAVRShiftExpandPass ()
FunctionPasscreateAVRISelDag (AVRTargetMachine &TM, CodeGenOptLevel OptLevel)
FunctionPasscreateAVRExpandPseudoPass ()
FunctionPasscreateAVRFrameAnalyzerPass ()
 Creates instance of the frame analyzer pass.
FunctionPasscreateAVRBranchSelectionPass ()
void initializeAVRAsmPrinterPass (PassRegistry &)
void initializeAVRDAGToDAGISelLegacyPass (PassRegistry &)
void initializeAVRExpandPseudoPass (PassRegistry &)
void initializeAVRShiftExpandPass (PassRegistry &)
static void restoreStatusRegister (MachineFunction &MF, MachineBasicBlock &MBB)
static void fixStackStores (MachineBasicBlock &MBB, MachineBasicBlock::iterator StartMI, const TargetInstrInfo &TII)
 Replace pseudo store instructions that pass arguments through the stack with real instructions.
static AVRCC::CondCodes intCCToAVRCC (ISD::CondCode CC)
 IntCCToAVRCC - Convert a DAG integer condition code to an AVR CC.
template<typename ArgT>
static void analyzeArguments (TargetLowering::CallLoweringInfo *CLI, const Function *F, const DataLayout *TD, const SmallVectorImpl< ArgT > &Args, SmallVectorImpl< CCValAssign > &ArgLocs, CCState &CCInfo, bool Tiny)
 Analyze incoming and outgoing function arguments.
template<typename ArgT>
static unsigned getTotalArgumentsSizeInBytes (const SmallVectorImpl< ArgT > &Args)
 Count the total number of bytes needed to pass or return these arguments.
template<typename ArgT>
static void analyzeReturnValues (const SmallVectorImpl< ArgT > &Args, CCState &CCInfo, bool Tiny)
 Analyze incoming and outgoing value of returning from a function.
static void insertMultibyteShift (MachineInstr &MI, MachineBasicBlock *BB, MutableArrayRef< std::pair< Register, int > > Regs, ISD::NodeType Opc, int64_t ShiftAmt)
static bool isCopyMulResult (MachineBasicBlock::iterator const &I)
static void foldFrameOffset (MachineBasicBlock::iterator &II, int &Offset, Register DstReg)
 Fold a frame offset shared between two add instructions into a single one.
static StringRef getCPU (StringRef CPU)
 Processes a CPU name.
static Reloc::Model getEffectiveRelocModel (std::optional< Reloc::Model > RM)
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAVRTarget ()
MCAsmBackendcreateAVRAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const llvm::MCTargetOptions &TO)
 Creates an assembly backend for AVR.
std::unique_ptr< MCObjectTargetWritercreateAVRELFObjectWriter (uint8_t OSABI)
 Creates an ELF object writer for AVR.
static unsigned getEFlagsForFeatureSet (const FeatureBitset &Features)
static void addFixup (SmallVectorImpl< MCFixup > &Fixups, uint32_t Offset, const MCExpr *Value, uint16_t Kind)
MCStreamercreateAVRELFStreamer (Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE)
MCInstrInfocreateAVRMCInstrInfo ()
MCCodeEmittercreateAVRMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
 Creates a machine code emitter for AVR.
TargetgetTheAVRTarget ()
ModulePasscreateBPFCheckAndAdjustIR ()
FunctionPasscreateBPFISelDag (BPFTargetMachine &TM)
FunctionPasscreateBPFMISimplifyPatchablePass ()
FunctionPasscreateBPFMIPeepholePass ()
FunctionPasscreateBPFMIPreEmitPeepholePass ()
FunctionPasscreateBPFMIPreEmitCheckingPass ()
InstructionSelectorcreateBPFInstructionSelector (const BPFTargetMachine &, const BPFSubtarget &, const BPFRegisterBankInfo &)
void initializeBPFAsmPrinterPass (PassRegistry &)
void initializeBPFCheckAndAdjustIRPass (PassRegistry &)
void initializeBPFDAGToDAGISelLegacyPass (PassRegistry &)
void initializeBPFMIPeepholePass (PassRegistry &)
void initializeBPFMIPreEmitCheckingPass (PassRegistry &)
void initializeBPFMIPreEmitPeepholePass (PassRegistry &)
void initializeBPFMISimplifyPatchablePass (PassRegistry &)
MCCodeEmittercreateBPFMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCCodeEmittercreateBPFbeMCCodeEmitter (const MCInstrInfo &MCII, 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)
TargetgetTheBPFleTarget ()
TargetgetTheBPFbeTarget ()
TargetgetTheBPFTarget ()
FunctionPasscreateCSKYISelDag (CSKYTargetMachine &TM, CodeGenOptLevel OptLevel)
FunctionPasscreateCSKYConstantIslandPass ()
 Returns a pass that converts branches to long branches.
void initializeCSKYConstantIslandsPass (PassRegistry &)
void initializeCSKYDAGToDAGISelLegacyPass (PassRegistry &)
static bool CC_CSKY_ABIV2_SOFT_64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
static bool Ret_CSKY_ABIV2_SOFT_64 (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
std::unique_ptr< MCObjectTargetWritercreateCSKYELFObjectWriter ()
MCAsmBackendcreateCSKYAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
MCCodeEmittercreateCSKYMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
TargetgetTheCSKYTarget ()
void initializeWriteDXILPassPass (PassRegistry &)
 Initializer for dxil writer pass.
void initializeEmbedDXILPassPass (PassRegistry &)
 Initializer for dxil embedder pass.
void initializeDXILPrepareModulePass (PassRegistry &)
 Initializer for DXIL-prepare.
ModulePasscreateDXILPrepareModulePass ()
 Pass to convert modules into DXIL-compatable modules.
void initializeDXILIntrinsicExpansionLegacyPass (PassRegistry &)
 Initializer for DXIL Intrinsic Expansion.
ModulePasscreateDXILIntrinsicExpansionLegacyPass ()
 Pass to expand intrinsic operations that lack DXIL opCodes.
void initializeDXILCBufferAccessLegacyPass (PassRegistry &)
 Initializer for DXIL CBuffer Access Pass.
ModulePasscreateDXILCBufferAccessLegacyPass ()
 Pass to translate loads in the cbuffer address space to intrinsics.
void initializeDXILDataScalarizationLegacyPass (PassRegistry &)
 Initializer for DXIL Data Scalarization Pass.
ModulePasscreateDXILDataScalarizationLegacyPass ()
 Pass to scalarize llvm global data into a DXIL legal form.
void initializeDXILFlattenArraysLegacyPass (PassRegistry &)
 Initializer for DXIL Array Flatten Pass.
ModulePasscreateDXILFlattenArraysLegacyPass ()
 Pass to flatten arrays into a one dimensional DXIL legal form.
void initializeDXILForwardHandleAccessesLegacyPass (PassRegistry &)
 Initializer for DXIL Forward Handle Accesses Pass.
FunctionPasscreateDXILForwardHandleAccessesLegacyPass ()
 Pass to eliminate redundant stores and loads from handle globals.
void initializeDXILLegalizeLegacyPass (PassRegistry &)
 Initializer DXIL legalizationPass.
FunctionPasscreateDXILLegalizeLegacyPass ()
 Pass to Legalize DXIL by remove i8 truncations and i64 insert/extract elements.
void initializeDXILOpLoweringLegacyPass (PassRegistry &)
 Initializer for DXILOpLowering.
ModulePasscreateDXILOpLoweringLegacyPass ()
 Pass to lowering LLVM intrinsic call to DXIL op function call.
void initializeDXILResourceAccessLegacyPass (PassRegistry &)
 Initializer for DXILResourceAccess.
FunctionPasscreateDXILResourceAccessLegacyPass ()
 Pass to update resource accesses to use load/store directly.
ModulePasscreateDXILResourceImplicitBindingLegacyPass ()
 Pass to assign register slots to resources without binding.
void initializeDXILTranslateMetadataLegacyPass (PassRegistry &)
 Initializer for DXILTranslateMetadata.
ModulePasscreateDXILTranslateMetadataLegacyPass ()
 Pass to emit metadata for DXIL.
ModulePasscreateDXILPrettyPrinterLegacyPass (raw_ostream &OS)
 Pass to pretty print DXIL metadata.
void initializeDXILPrettyPrinterLegacyPass (PassRegistry &)
 Initializer for DXILPrettyPrinter.
void initializeDXILPostOptimizationValidationLegacyPass (PassRegistry &)
 Initializer for DXILPostOptimizationValidation.
ModulePasscreateDXILPostOptimizationValidationLegacyPass ()
 Pass to lowering LLVM intrinsic call to DXIL op function call.
void initializeShaderFlagsAnalysisWrapperPass (PassRegistry &)
 Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
void initializeRootSignatureAnalysisWrapperPass (PassRegistry &)
 Initializer for dxil::RootSignatureAnalysisWrapper pass.
void initializeDXContainerGlobalsPass (PassRegistry &)
 Initializer for DXContainerGlobals pass.
ModulePasscreateDXContainerGlobalsPass ()
 Pass for generating DXContainer part globals.
void initializeDXILFinalizeLinkageLegacyPass (PassRegistry &)
 Initializer for DXILFinalizeLinkage pass.
ModulePasscreateDXILFinalizeLinkageLegacyPass ()
 Pass to finalize linkage of functions.
ModulePasscreateDXILWriterPass (raw_ostream &Str)
 Create and return a pass that writes the module to the specified ostream.
ModulePasscreateDXILEmbedderPass ()
 Create and return a pass that writes the module to a global variable in the module for later emission in the MCStreamer.
std::unique_ptr< MCObjectTargetWritercreateDXContainerTargetObjectWriter ()
TargetgetTheDirectXTarget ()
raw_ostreamoperator<< (raw_ostream &OS, const BT::BitValue &BV)
raw_ostreamoperator<< (raw_ostream &OS, const BT::RegisterCell &RC)
void initializeHexagonAsmPrinterPass (PassRegistry &)
void initializeHexagonBitSimplifyPass (PassRegistry &)
void initializeHexagonBranchRelaxationPass (PassRegistry &)
void initializeHexagonCFGOptimizerPass (PassRegistry &)
void initializeHexagonCommonGEPPass (PassRegistry &)
void initializeHexagonCopyHoistingPass (PassRegistry &)
void initializeHexagonConstExtendersPass (PassRegistry &)
void initializeHexagonConstPropagationPass (PassRegistry &)
void initializeHexagonCopyToCombinePass (PassRegistry &)
void initializeHexagonDAGToDAGISelLegacyPass (PassRegistry &)
void initializeHexagonEarlyIfConversionPass (PassRegistry &)
void initializeHexagonExpandCondsetsPass (PassRegistry &)
void initializeHexagonGenMemAbsolutePass (PassRegistry &)
void initializeHexagonGenMuxPass (PassRegistry &)
void initializeHexagonHardwareLoopsPass (PassRegistry &)
void initializeHexagonLoopIdiomRecognizeLegacyPassPass (PassRegistry &)
void initializeHexagonLoopAlignPass (PassRegistry &)
void initializeHexagonLoopReschedulingPass (PassRegistry &)
void initializeHexagonMaskPass (PassRegistry &)
void initializeHexagonMergeActivateWeightPass (PassRegistry &)
void initializeHexagonNewValueJumpPass (PassRegistry &)
void initializeHexagonOptAddrModePass (PassRegistry &)
void initializeHexagonPacketizerPass (PassRegistry &)
void initializeHexagonRDFOptPass (PassRegistry &)
void initializeHexagonSplitDoubleRegsPass (PassRegistry &)
void initializeHexagonTfrCleanupPass (PassRegistry &)
void initializeHexagonVExtractPass (PassRegistry &)
void initializeHexagonVectorCombineLegacyPass (PassRegistry &)
void initializeHexagonVectorLoopCarriedReuseLegacyPassPass (PassRegistry &)
void initializeHexagonFixupHwLoopsPass (PassRegistry &)
void initializeHexagonCallFrameInformationPass (PassRegistry &)
void initializeHexagonGenExtractPass (PassRegistry &)
void initializeHexagonGenInsertPass (PassRegistry &)
void initializeHexagonGenPredicatePass (PassRegistry &)
void initializeHexagonLoadWideningPass (PassRegistry &)
void initializeHexagonStoreWideningPass (PassRegistry &)
void initializeHexagonOptimizeSZextendsPass (PassRegistry &)
void initializeHexagonPeepholePass (PassRegistry &)
void initializeHexagonSplitConst32AndConst64Pass (PassRegistry &)
void initializeHexagonVectorPrintPass (PassRegistry &)
PasscreateHexagonLoopIdiomPass ()
PasscreateHexagonVectorLoopCarriedReuseLegacyPass ()
ImmutablePasscreateHexagonTargetTransformInfoPass (const HexagonTargetMachine *TM)
 Creates a Hexagon-specific Target Transformation Info pass.
FunctionPasscreateHexagonBitSimplify ()
FunctionPasscreateHexagonBranchRelaxation ()
FunctionPasscreateHexagonCallFrameInformation ()
FunctionPasscreateHexagonCFGOptimizer ()
FunctionPasscreateHexagonCommonGEP ()
FunctionPasscreateHexagonConstExtenders ()
FunctionPasscreateHexagonConstPropagationPass ()
FunctionPasscreateHexagonCopyHoisting ()
FunctionPasscreateHexagonCopyToCombine ()
FunctionPasscreateHexagonEarlyIfConversion ()
FunctionPasscreateHexagonFixupHwLoops ()
FunctionPasscreateHexagonGenExtract ()
FunctionPasscreateHexagonGenInsert ()
FunctionPasscreateHexagonGenMemAbsolute ()
FunctionPasscreateHexagonGenMux ()
FunctionPasscreateHexagonGenPredicate ()
FunctionPasscreateHexagonHardwareLoops ()
FunctionPasscreateHexagonISelDag (HexagonTargetMachine &TM, CodeGenOptLevel OptLevel)
 createHexagonISelDag - This pass converts a legalized DAG into a Hexagon-specific DAG, ready for instruction scheduling.
FunctionPasscreateHexagonLoopAlign ()
FunctionPasscreateHexagonLoopRescheduling ()
FunctionPasscreateHexagonMask ()
FunctionPasscreateHexagonMergeActivateWeight ()
FunctionPasscreateHexagonNewValueJump ()
FunctionPasscreateHexagonOptAddrMode ()
FunctionPasscreateHexagonOptimizeSZextends ()
FunctionPasscreateHexagonPacketizer (bool Minimal)
FunctionPasscreateHexagonPeephole ()
FunctionPasscreateHexagonRDFOpt ()
FunctionPasscreateHexagonSplitConst32AndConst64 ()
FunctionPasscreateHexagonSplitDoubleRegs ()
FunctionPasscreateHexagonStoreWidening ()
FunctionPasscreateHexagonLoadWidening ()
FunctionPasscreateHexagonTfrCleanup ()
FunctionPasscreateHexagonVectorCombineLegacyPass ()
FunctionPasscreateHexagonVectorPrint ()
FunctionPasscreateHexagonVExtract ()
FunctionPasscreateHexagonExpandCondsets ()
void HexagonLowerToMC (const MCInstrInfo &MCII, const MachineInstr *MI, MCInst &MCB, HexagonAsmPrinter &AP)
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)
bool is_TC1 (unsigned SchedClass)
bool is_TC2 (unsigned SchedClass)
bool is_TC2early (unsigned SchedClass)
bool is_TC3x (unsigned SchedClass)
bool is_TC4x (unsigned SchedClass)
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 ReportErrors, 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)
MCInstrInfocreateHexagonMCInstrInfo ()
MCRegisterInfocreateHexagonMCRegisterInfo (StringRef TT)
MCCodeEmittercreateHexagonMCCodeEmitter (const MCInstrInfo &MCII, 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 ()
unsigned HexagonConvertUnits (unsigned ItinUnits, unsigned *Lanes)
TargetgetTheHexagonTarget ()
FunctionPasscreateLanaiISelDag (LanaiTargetMachine &TM)
FunctionPasscreateLanaiDelaySlotFillerPass (const LanaiTargetMachine &TM)
FunctionPasscreateLanaiMemAluCombinerPass ()
FunctionPasscreateLanaiSetflagAluCombinerPass ()
void initializeLanaiAsmPrinterPass (PassRegistry &)
void initializeLanaiDAGToDAGISelLegacyPass (PassRegistry &)
void initializeLanaiMemAluCombinerPass (PassRegistry &)
static bool isSPLSOpcode (unsigned Opcode)
static bool isRMOpcode (unsigned Opcode)
static bool isRRMOpcode (unsigned Opcode)
static unsigned getLanaiRegisterNumbering (MCRegister Reg)
static Lanai::Fixups FixupKind (const MCExpr *Expr)
static unsigned adjustPqBits (const MCInst &Inst, unsigned Value, unsigned PBitShift, unsigned QBitShift)
MCCodeEmittercreateLanaiMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateLanaiAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateLanaiELFObjectWriter (uint8_t OSABI)
TargetgetTheLanaiTarget ()
bool lowerLoongArchMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP)
bool lowerLoongArchMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &MCOp, const AsmPrinter &AP)
FunctionPasscreateLoongArchDeadRegisterDefinitionsPass ()
FunctionPasscreateLoongArchExpandAtomicPseudoPass ()
FunctionPasscreateLoongArchISelDag (LoongArchTargetMachine &TM, CodeGenOptLevel OptLevel)
FunctionPasscreateLoongArchMergeBaseOffsetOptPass ()
 Returns an instance of the Merge Base Offset Optimization pass.
FunctionPasscreateLoongArchOptWInstrsPass ()
FunctionPasscreateLoongArchPreRAExpandPseudoPass ()
FunctionPasscreateLoongArchExpandPseudoPass ()
void initializeLoongArchAsmPrinterPass (PassRegistry &)
void initializeLoongArchDAGToDAGISelLegacyPass (PassRegistry &)
void initializeLoongArchDeadRegisterDefinitionsPass (PassRegistry &)
void initializeLoongArchExpandAtomicPseudoPass (PassRegistry &)
void initializeLoongArchMergeBaseOffsetOptPass (PassRegistry &)
void initializeLoongArchOptWInstrsPass (PassRegistry &)
void initializeLoongArchPreRAExpandPseudoPass (PassRegistry &)
void initializeLoongArchExpandPseudoPass (PassRegistry &)
MCELFStreamercreateLoongArchELFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > MOW, std::unique_ptr< MCCodeEmitter > MCE)
MCCodeEmittercreateLoongArchMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateLoongArchAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateLoongArchELFObjectWriter (uint8_t OSABI, bool Is64Bit)
TargetgetTheLoongArch32Target ()
TargetgetTheLoongArch64Target ()
InstructionSelectorcreateM68kInstructionSelector (const M68kTargetMachine &TM, const M68kSubtarget &Subtarget, const M68kRegisterBankInfo &RBI)
FunctionPasscreateM68kISelDag (M68kTargetMachine &TM)
 This pass converts a legalized DAG into a M68k-specific DAG, ready for instruction scheduling.
FunctionPasscreateM68kExpandPseudoPass ()
 Return a Machine IR pass that expands M68k-specific pseudo instructions into a sequence of actual instructions.
FunctionPasscreateM68kGlobalBaseRegPass ()
 This pass initializes a global base register for PIC on M68k.
FunctionPasscreateM68kCollapseMOVEMPass ()
 Finds sequential MOVEM instruction and collapse them into a single one.
void initializeM68kAsmPrinterPass (PassRegistry &)
void initializeM68kDAGToDAGISelLegacyPass (PassRegistry &)
void initializeM68kExpandPseudoPass (PassRegistry &)
void initializeM68kGlobalBaseRegPass (PassRegistry &)
void initializeM68kCollapseMOVEMPass (PassRegistry &)
bool CC_M68k_Any_AssignToReg (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
 NOTE this function is used to select registers for formal arguments and call FIXME: Handling on pointer arguments is not complete.
static unsigned getFixupKindLog2Size (unsigned Kind)
MCAsmBackendcreateM68kAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
MCCodeEmittercreateM68kMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
std::unique_ptr< MCObjectTargetWritercreateM68kELFObjectWriter (uint8_t OSABI)
 Construct an M68k ELF object writer.
TargetgetTheM68kTarget ()
MCStreameroperator<< (MCStreamer &OS, MipsABIFlagsSection &ABIFlagsSection)
static MCRegister getMSARegFromFReg (MCRegister Reg)
MCELFStreamercreateMipsELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter)
MCCodeEmittercreateMipsMCCodeEmitterEB (const MCInstrInfo &MCII, MCContext &Ctx)
MCCodeEmittercreateMipsMCCodeEmitterEL (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateMipsAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
MCStreamercreateMipsWinCOFFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > &&AB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
 Construct an MIPS Windows COFF machine code streamer which will generate PE/COFF format object files.
std::unique_ptr< MCObjectTargetWritercreateMipsELFObjectWriter (const Triple &TT, bool IsN32)
 Construct a Mips ELF object writer.
std::unique_ptr< MCObjectTargetWritercreateMipsWinCOFFObjectWriter ()
 Construct a Mips Win COFF object writer.
ModulePasscreateMipsOs16Pass ()
ModulePasscreateMips16HardFloatPass ()
FunctionPasscreateMipsModuleISelDagPass ()
FunctionPasscreateMipsOptimizePICCallPass ()
 Return an OptimizeCall object.
FunctionPasscreateMipsDelaySlotFillerPass ()
 createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions
FunctionPasscreateMipsBranchExpansion ()
FunctionPasscreateMipsConstantIslandPass ()
 Returns a pass that converts branches to long branches.
FunctionPasscreateMicroMipsSizeReducePass ()
 Returns an instance of the MicroMips size reduction pass.
FunctionPasscreateMipsExpandPseudoPass ()
 createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
FunctionPasscreateMipsPreLegalizeCombiner ()
FunctionPasscreateMipsPostLegalizeCombiner (bool IsOptNone)
FunctionPasscreateMipsMulMulBugPass ()
InstructionSelectorcreateMipsInstructionSelector (const MipsTargetMachine &, const MipsSubtarget &, const MipsRegisterBankInfo &)
void initializeMicroMipsSizeReducePass (PassRegistry &)
void initializeMipsAsmPrinterPass (PassRegistry &)
void initializeMipsBranchExpansionPass (PassRegistry &)
void initializeMipsDAGToDAGISelLegacyPass (PassRegistry &)
void initializeMipsDelaySlotFillerPass (PassRegistry &)
void initializeMipsMulMulBugFixPass (PassRegistry &)
void initializeMipsPostLegalizerCombinerPass (PassRegistry &)
void initializeMipsPreLegalizerCombinerPass (PassRegistry &)
FunctionPasscreateMips16ISelDag (MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
const MipsFrameLoweringcreateMips16FrameLowering (const MipsSubtarget &ST)
 Create MipsFrameLowering objects.
const MipsFrameLoweringcreateMipsSEFrameLowering (const MipsSubtarget &ST)
const MipsInstrInfocreateMips16InstrInfo (const MipsSubtarget &STI)
 Create MipsInstrInfo objects.
const MipsInstrInfocreateMipsSEInstrInfo (const MipsSubtarget &STI)
const MipsTargetLoweringcreateMips16TargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI)
 Create MipsTargetLowering objects.
const MipsTargetLoweringcreateMipsSETargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI)
FunctionPasscreateMipsSEISelDag (MipsTargetMachine &TM, CodeGenOptLevel OptLevel)
TargetgetTheMipsTarget ()
TargetgetTheMipselTarget ()
TargetgetTheMips64Target ()
TargetgetTheMips64elTarget ()
MCTargetStreamercreateMSP430ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
static void addFixup (SmallVectorImpl< MCFixup > &Fixups, uint32_t Offset, const MCExpr *Value, uint16_t Kind)
MCCodeEmittercreateMSP430MCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
 Creates a machine code emitter for MSP430.
MCAsmBackendcreateMSP430MCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateMSP430ELFObjectWriter (uint8_t OSABI)
FunctionPasscreateMSP430ISelDag (MSP430TargetMachine &TM, CodeGenOptLevel OptLevel)
 createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling.
FunctionPasscreateMSP430BranchSelectionPass ()
 Returns an instance of the Branch Selection Pass.
void initializeMSP430AsmPrinterPass (PassRegistry &)
void initializeMSP430DAGToDAGISelLegacyPass (PassRegistry &)
TargetgetTheMSP430Target ()
FunctionPasscreateNVPTXISelDag (NVPTXTargetMachine &TM, llvm::CodeGenOptLevel OptLevel)
 createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling.
ModulePasscreateNVPTXAssignValidGlobalNamesPass ()
ModulePasscreateGenericToNVVMLegacyPass ()
ModulePasscreateNVPTXCtorDtorLoweringLegacyPass ()
FunctionPasscreateNVVMIntrRangePass ()
ModulePasscreateNVVMReflectPass (unsigned int SmVersion)
MachineFunctionPasscreateNVPTXPrologEpilogPass ()
MachineFunctionPasscreateNVPTXReplaceImageHandlesPass ()
FunctionPasscreateNVPTXImageOptimizerPass ()
FunctionPasscreateNVPTXLowerArgsPass ()
FunctionPasscreateNVPTXLowerAllocaPass ()
FunctionPasscreateNVPTXLowerUnreachablePass (bool TrapUnreachable, bool NoTrapAfterNoreturn)
FunctionPasscreateNVPTXTagInvariantLoadsPass ()
MachineFunctionPasscreateNVPTXPeephole ()
MachineFunctionPasscreateNVPTXProxyRegErasurePass ()
MachineFunctionPasscreateNVPTXForwardParamsPass ()
void initializeNVVMReflectLegacyPassPass (PassRegistry &)
void initializeGenericToNVVMLegacyPassPass (PassRegistry &)
void initializeNVPTXAllocaHoistingPass (PassRegistry &)
void initializeNVPTXAsmPrinterPass (PassRegistry &)
void initializeNVPTXAssignValidGlobalNamesPass (PassRegistry &)
void initializeNVPTXAtomicLowerPass (PassRegistry &)
void initializeNVPTXCtorDtorLoweringLegacyPass (PassRegistry &)
void initializeNVPTXLowerAggrCopiesPass (PassRegistry &)
void initializeNVPTXLowerAllocaPass (PassRegistry &)
void initializeNVPTXLowerUnreachablePass (PassRegistry &)
void initializeNVPTXLowerArgsLegacyPassPass (PassRegistry &)
void initializeNVPTXProxyRegErasurePass (PassRegistry &)
void initializeNVPTXForwardParamsPassPass (PassRegistry &)
void initializeNVVMIntrRangePass (PassRegistry &)
void initializeNVVMReflectPass (PassRegistry &)
void initializeNVPTXAAWrapperPassPass (PassRegistry &)
void initializeNVPTXExternalAAWrapperPass (PassRegistry &)
void initializeNVPTXPeepholePass (PassRegistry &)
void initializeNVPTXTagInvariantLoadLegacyPassPass (PassRegistry &)
void initializeNVPTXPrologEpilogPassPass (PassRegistry &)
void initializeNVPTXDAGToDAGISelLegacyPass (PassRegistry &)
ImmutablePasscreateNVPTXAAWrapperPass ()
ImmutablePasscreateNVPTXExternalAAWrapperPass ()
FunctionPasscreateAllocaHoisting ()
FunctionPasscreateNVPTXAtomicLowerPass ()
FunctionPasscreateLowerAggrCopies ()
StringRef getNVPTXRegClassName (TargetRegisterClass const *RC)
StringRef getNVPTXRegClassStr (TargetRegisterClass const *RC)
void clearAnnotationCache (const Module *Mod)
static void cacheAnnotationFromMD (const MDNode *MetadataNode, key_val_pair_t &retval)
static void cacheAnnotationFromMD (const Module *m, const GlobalValue *gv)
static std::optional< unsignedfindOneNVVMAnnotation (const GlobalValue *gv, const std::string &prop)
static bool findAllNVVMAnnotation (const GlobalValue *gv, const std::string &prop, std::vector< unsigned > &retval)
static bool globalHasNVVMAnnotation (const Value &V, const std::string &Prop)
static bool argHasNVVMAnnotation (const Value &Val, const std::string &Annotation)
static std::optional< unsignedgetFnAttrParsedInt (const Function &F, StringRef Attr)
static SmallVector< unsigned, 3 > getFnAttrParsedVector (const Function &F, StringRef Attr)
static std::optional< uint64_tgetVectorProduct (ArrayRef< unsigned > V)
bool isParamGridConstant (const Argument &Arg)
bool isTexture (const Value &V)
bool isSurface (const Value &V)
bool isSampler (const Value &V)
bool isImageReadOnly (const Value &V)
bool isImageWriteOnly (const Value &V)
bool isImageReadWrite (const Value &V)
bool isImage (const Value &V)
bool isManaged (const Value &V)
StringRef getTextureName (const Value &V)
StringRef getSurfaceName (const Value &V)
StringRef getSamplerName (const Value &V)
SmallVector< unsigned, 3 > getMaxNTID (const Function &F)
SmallVector< unsigned, 3 > getReqNTID (const Function &F)
SmallVector< unsigned, 3 > getClusterDim (const Function &F)
std::optional< uint64_tgetOverallMaxNTID (const Function &F)
std::optional< uint64_tgetOverallReqNTID (const Function &F)
std::optional< uint64_tgetOverallClusterRank (const Function &F)
std::optional< unsignedgetMaxClusterRank (const Function &F)
std::optional< unsignedgetMinCTASm (const Function &F)
std::optional< unsignedgetMaxNReg (const Function &F)
bool hasBlocksAreClusters (const Function &F)
MaybeAlign getAlign (const CallInst &I, unsigned Index)
FunctiongetMaybeBitcastedCallee (const CallBase *CB)
bool shouldEmitPTXNoReturn (const Value *V, const TargetMachine &TM)
bool isKernelFunction (const Function &F)
MaybeAlign getAlign (const Function &F, unsigned Index)
unsigned promoteScalarArgumentSize (unsigned size)
bool shouldPassAsArray (Type *Ty)
TargetgetTheNVPTXTarget32 ()
TargetgetTheNVPTXTarget64 ()
InstructionSelectorcreatePPCInstructionSelector (const PPCTargetMachine &TM, const PPCSubtarget &Subtarget, const PPCRegisterBankInfo &RBI)
std::optional< boolisPartOfGOTToPCRelPair (const MCInst &Inst, const MCSubtargetInfo &STI)
MCStreamercreatePPCELFStreamer (const Triple &, MCContext &, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter)
static uint16_t getSpecifier (const MCSymbolRefExpr *SRE)
MCCodeEmittercreatePPCMCCodeEmitter (const MCInstrInfo &MCII, 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.
std::unique_ptr< MCObjectTargetWritercreatePPCMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 Construct a PPC Mach-O object writer.
std::unique_ptr< MCObjectTargetWritercreatePPCXCOFFObjectWriter (bool Is64Bit)
 Construct a PPC XCOFF object writer.
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.
static bool isRunOfOnes64 (uint64_t Val, unsigned &MB, unsigned &ME)
MCStreamercreatePPCXCOFFStreamer (const Triple &, MCContext &, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter)
FunctionPasscreatePPCCTRLoopsVerify ()
FunctionPasscreatePPCLoopInstrFormPrepPass (PPCTargetMachine &TM)
FunctionPasscreatePPCTOCRegDepsPass ()
FunctionPasscreatePPCEarlyReturnPass ()
FunctionPasscreatePPCVSXWACCCopyPass ()
FunctionPasscreatePPCVSXFMAMutatePass ()
FunctionPasscreatePPCVSXSwapRemovalPass ()
FunctionPasscreatePPCReduceCRLogicalsPass ()
FunctionPasscreatePPCMIPeepholePass ()
FunctionPasscreatePPCBranchSelectionPass ()
FunctionPasscreatePPCBranchCoalescingPass ()
 createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass
FunctionPasscreatePPCISelDag (PPCTargetMachine &TM, CodeGenOptLevel OL)
 createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling.
FunctionPasscreatePPCTLSDynamicCallPass ()
FunctionPasscreatePPCBoolRetToIntPass ()
FunctionPasscreatePPCExpandISELPass ()
FunctionPasscreatePPCPreEmitPeepholePass ()
FunctionPasscreatePPCExpandAtomicPseudoPass ()
FunctionPasscreatePPCCTRLoopsPass ()
void LowerPPCMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP)
bool LowerPPCMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &OutMO, AsmPrinter &AP)
void initializePPCCTRLoopsVerifyPass (PassRegistry &)
void initializePPCLoopInstrFormPrepPass (PassRegistry &)
void initializePPCTOCRegDepsPass (PassRegistry &)
void initializePPCEarlyReturnPass (PassRegistry &)
void initializePPCVSXWACCCopyPass (PassRegistry &)
void initializePPCVSXFMAMutatePass (PassRegistry &)
void initializePPCVSXSwapRemovalPass (PassRegistry &)
void initializePPCReduceCRLogicalsPass (PassRegistry &)
void initializePPCBSelPass (PassRegistry &)
void initializePPCBranchCoalescingPass (PassRegistry &)
void initializePPCBoolRetToIntPass (PassRegistry &)
void initializePPCExpandISELPass (PassRegistry &)
void initializePPCPreEmitPeepholePass (PassRegistry &)
void initializePPCTLSDynamicCallPass (PassRegistry &)
void initializePPCMIPeepholePass (PassRegistry &)
void initializePPCExpandAtomicPseudoPass (PassRegistry &)
void initializePPCCTRLoopsPass (PassRegistry &)
void initializePPCDAGToDAGISelLegacyPass (PassRegistry &)
void initializePPCLinuxAsmPrinterPass (PassRegistry &)
void initializePPCAIXAsmPrinterPass (PassRegistry &)
ModulePasscreatePPCLowerMASSVEntriesPass ()
void initializePPCLowerMASSVEntriesPass (PassRegistry &)
ModulePasscreatePPCGenScalarMASSEntriesPass ()
void initializePPCGenScalarMASSEntriesPass (PassRegistry &)
bool RetCC_PPC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_PPC64_ELF_FIS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool RetCC_PPC_Cold (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_PPC32_SVR4 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_PPC64_ELF (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_PPC64_ELF_FIS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_PPC32_SVR4_ByVal (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_PPC32_SVR4_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
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.
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.
bool isIntS16Immediate (SDValue Op, int16_t &Imm)
bool isIntS34Immediate (SDNode *N, int64_t &Imm)
 isIntS34Immediate - This method tests if value of node given can be accurately represented as a sign extension from a 34-bit value.
bool isIntS34Immediate (SDValue Op, int64_t &Imm)
bool convertToNonDenormSingle (APInt &ArgAPInt)
bool convertToNonDenormSingle (APFloat &ArgAPFloat)
bool checkConvertToNonDenormSingle (APFloat &ArgAPFloat)
std::unique_ptr< ScheduleDAGMutationcreatePowerPCMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createPowerPCMacroFusionDAGMutation()); to PPCTargetMachine::createMachineScheduler() to have an effect.
static unsigned getCRFromCRBit (unsigned SrcReg)
TargetgetThePPC32Target ()
TargetgetThePPC32LETarget ()
TargetgetThePPC64Target ()
TargetgetThePPC64LETarget ()
InstructionSelectorcreateRISCVInstructionSelector (const RISCVTargetMachine &TM, const RISCVSubtarget &Subtarget, const RISCVRegisterBankInfo &RBI)
MCStreamercreateRISCVELFStreamer (const Triple &, MCContext &C, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&MOW, std::unique_ptr< MCCodeEmitter > &&MCE)
MCCodeEmittercreateRISCVMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateRISCVAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateRISCVELFObjectWriter (uint8_t OSABI, bool Is64Bit)
FunctionPasscreateRISCVCodeGenPreparePass ()
void initializeRISCVCodeGenPreparePass (PassRegistry &)
FunctionPasscreateRISCVDeadRegisterDefinitionsPass ()
void initializeRISCVDeadRegisterDefinitionsPass (PassRegistry &)
FunctionPasscreateRISCVIndirectBranchTrackingPass ()
void initializeRISCVIndirectBranchTrackingPass (PassRegistry &)
FunctionPasscreateRISCVLandingPadSetupPass ()
void initializeRISCVLandingPadSetupPass (PassRegistry &)
FunctionPasscreateRISCVISelDag (RISCVTargetMachine &TM, CodeGenOptLevel OptLevel)
FunctionPasscreateRISCVLateBranchOptPass ()
void initializeRISCVLateBranchOptPass (PassRegistry &)
FunctionPasscreateRISCVMakeCompressibleOptPass ()
 Returns an instance of the Make Compressible Optimization pass.
void initializeRISCVMakeCompressibleOptPass (PassRegistry &)
FunctionPasscreateRISCVGatherScatterLoweringPass ()
void initializeRISCVGatherScatterLoweringPass (PassRegistry &)
FunctionPasscreateRISCVVectorPeepholePass ()
void initializeRISCVVectorPeepholePass (PassRegistry &)
FunctionPasscreateRISCVOptWInstrsPass ()
void initializeRISCVOptWInstrsPass (PassRegistry &)
FunctionPasscreateRISCVFoldMemOffsetPass ()
void initializeRISCVFoldMemOffsetPass (PassRegistry &)
FunctionPasscreateRISCVMergeBaseOffsetOptPass ()
 Returns an instance of the Merge Base Offset Optimization pass.
void initializeRISCVMergeBaseOffsetOptPass (PassRegistry &)
FunctionPasscreateRISCVExpandPseudoPass ()
void initializeRISCVExpandPseudoPass (PassRegistry &)
FunctionPasscreateRISCVPreRAExpandPseudoPass ()
void initializeRISCVPreRAExpandPseudoPass (PassRegistry &)
FunctionPasscreateRISCVExpandAtomicPseudoPass ()
void initializeRISCVExpandAtomicPseudoPass (PassRegistry &)
FunctionPasscreateRISCVInsertVSETVLIPass ()
 Returns an instance of the Insert VSETVLI pass.
void initializeRISCVInsertVSETVLIPass (PassRegistry &)
FunctionPasscreateRISCVPostRAExpandPseudoPass ()
void initializeRISCVPostRAExpandPseudoPass (PassRegistry &)
FunctionPasscreateRISCVInsertReadWriteCSRPass ()
void initializeRISCVInsertReadWriteCSRPass (PassRegistry &)
FunctionPasscreateRISCVInsertWriteVXRMPass ()
void initializeRISCVInsertWriteVXRMPass (PassRegistry &)
FunctionPasscreateRISCVRedundantCopyEliminationPass ()
void initializeRISCVRedundantCopyEliminationPass (PassRegistry &)
FunctionPasscreateRISCVMoveMergePass ()
 createRISCVMoveMergePass - returns an instance of the move merge pass.
void initializeRISCVMoveMergePass (PassRegistry &)
FunctionPasscreateRISCVPushPopOptimizationPass ()
 createRISCVPushPopOptimizationPass - returns an instance of the Push/Pop optimization pass.
void initializeRISCVPushPopOptPass (PassRegistry &)
FunctionPasscreateRISCVLoadStoreOptPass ()
void initializeRISCVLoadStoreOptPass (PassRegistry &)
FunctionPasscreateRISCVZacasABIFixPass ()
void initializeRISCVZacasABIFixPass (PassRegistry &)
void initializeRISCVDAGToDAGISelLegacyPass (PassRegistry &)
FunctionPasscreateRISCVPostLegalizerCombiner ()
void initializeRISCVPostLegalizerCombinerPass (PassRegistry &)
FunctionPasscreateRISCVO0PreLegalizerCombiner ()
void initializeRISCVO0PreLegalizerCombinerPass (PassRegistry &)
FunctionPasscreateRISCVPreLegalizerCombiner ()
void initializeRISCVPreLegalizerCombinerPass (PassRegistry &)
FunctionPasscreateRISCVVLOptimizerPass ()
void initializeRISCVVLOptimizerPass (PassRegistry &)
FunctionPasscreateRISCVVMV0EliminationPass ()
void initializeRISCVVMV0EliminationPass (PassRegistry &)
void initializeRISCVAsmPrinterPass (PassRegistry &)
bool CC_RISCV (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsRet, Type *OrigTy)
bool CC_RISCV_FastCC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsRet, Type *OrigTy)
bool CC_RISCV_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
std::unique_ptr< ScheduleDAGMutationcreateRISCVVectorMaskDAGMutation (const TargetRegisterInfo *TRI)
static bool isCopyToV0 (const MachineInstr &MI)
static bool isSoleUseCopyToV0 (SUnit &SU)
TargetgetTheRISCV32Target ()
TargetgetTheRISCV64Target ()
TargetgetTheRISCV32beTarget ()
TargetgetTheRISCV64beTarget ()
MCCodeEmittercreateSparcMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateSparcAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateSparcELFObjectWriter (bool Is64Bit, bool IsV8Plus, uint8_t OSABI)
FunctionPasscreateSparcISelDag (SparcTargetMachine &TM)
 createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling.
FunctionPasscreateSparcDelaySlotFillerPass ()
 createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions
void initializeSparcAsmPrinterPass (PassRegistry &)
void initializeSparcDAGToDAGISelLegacyPass (PassRegistry &)
void initializeErrataWorkaroundPass (PassRegistry &)
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)
TargetgetTheSparcTarget ()
TargetgetTheSparcV9Target ()
TargetgetTheSparcelTarget ()
std::string getSymbolicOperandMnemonic (SPIRV::OperandCategory::OperandCategory Category, int32_t Value)
VersionTuple getSymbolicOperandMinVersion (SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
VersionTuple getSymbolicOperandMaxVersion (SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
CapabilityList getSymbolicOperandCapabilities (SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
EnvironmentList getSymbolicOperandAllowedEnvironments (SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
CapabilityList getCapabilitiesEnabledByExtension (SPIRV::Extension::Extension Extension)
ExtensionList getSymbolicOperandExtensions (SPIRV::OperandCategory::OperandCategory Category, uint32_t Value)
std::string getLinkStringForBuiltIn (SPIRV::BuiltIn::BuiltIn BuiltInValue)
bool getSpirvBuiltInIdByName (llvm::StringRef Name, SPIRV::BuiltIn::BuiltIn &BI)
std::string getExtInstSetName (SPIRV::InstructionSet::InstructionSet Set)
SPIRV::InstructionSet::InstructionSet getExtInstSetFromString (std::string SetName)
std::string getExtInstName (SPIRV::InstructionSet::InstructionSet Set, uint32_t InstructionNumber)
template<class InstType>
std::string getSPIRVStringOperand (const InstType &MI, unsigned StartIndex)
MCCodeEmittercreateSPIRVMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateSPIRVAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
ModulePasscreateSPIRVPrepareFunctionsPass (const SPIRVTargetMachine &TM)
FunctionPasscreateSPIRVStructurizerPass ()
FunctionPasscreateSPIRVMergeRegionExitTargetsPass ()
FunctionPasscreateSPIRVStripConvergenceIntrinsicsPass ()
ModulePasscreateSPIRVLegalizeImplicitBindingPass ()
FunctionPasscreateSPIRVLegalizePointerCastPass (SPIRVTargetMachine *TM)
FunctionPasscreateSPIRVRegularizerPass ()
FunctionPasscreateSPIRVPreLegalizerCombiner ()
FunctionPasscreateSPIRVPreLegalizerPass ()
FunctionPasscreateSPIRVPostLegalizerPass ()
ModulePasscreateSPIRVEmitIntrinsicsPass (SPIRVTargetMachine *TM)
MachineFunctionPasscreateSPIRVEmitNonSemanticDIPass (SPIRVTargetMachine *TM)
InstructionSelectorcreateSPIRVInstructionSelector (const SPIRVTargetMachine &TM, const SPIRVSubtarget &Subtarget, const RegisterBankInfo &RBI)
void initializeSPIRVModuleAnalysisPass (PassRegistry &)
void initializeSPIRVAsmPrinterPass (PassRegistry &)
void initializeSPIRVConvergenceRegionAnalysisWrapperPassPass (PassRegistry &)
void initializeSPIRVPreLegalizerPass (PassRegistry &)
void initializeSPIRVPreLegalizerCombinerPass (PassRegistry &)
void initializeSPIRVPostLegalizerPass (PassRegistry &)
void initializeSPIRVStructurizerPass (PassRegistry &)
void initializeSPIRVEmitIntrinsicsPass (PassRegistry &)
void initializeSPIRVEmitNonSemanticDIPass (PassRegistry &)
void initializeSPIRVLegalizePointerCastPass (PassRegistry &)
void initializeSPIRVRegularizerPass (PassRegistry &)
void initializeSPIRVMergeRegionExitTargetsPass (PassRegistry &)
void initializeSPIRVPrepareFunctionsPass (PassRegistry &)
void initializeSPIRVStripConvergentIntrinsicsPass (PassRegistry &)
void initializeSPIRVLegalizeImplicitBindingPass (PassRegistry &)
LLVM_EXTERNAL_VISIBILITY bool SPIRVTranslate (Module *M, std::string &SpirvObj, std::string &ErrMsg, const std::vector< std::string > &AllowExtNames, llvm::CodeGenOptLevel OLevel, Triple TargetTriple)
LLVM_EXTERNAL_VISIBILITY bool SPIRVTranslateModule (Module *M, std::string &SpirvObj, std::string &ErrMsg, const std::vector< std::string > &AllowExtNames, const std::vector< std::string > &Opts)
static std::unique_ptr< const SPIRV::IncomingCalllookupBuiltin (StringRef DemangledCall, SPIRV::InstructionSet::InstructionSet Set, Register ReturnRegister, const SPIRVType *ReturnType, const SmallVectorImpl< Register > &Arguments)
 Looks up the demangled builtin call in the SPIRVBuiltins.td records using the provided DemangledCall and specified Set.
static MachineInstrgetBlockStructInstr (Register ParamReg, MachineRegisterInfo *MRI)
static unsigned getConstFromIntrinsic (Register Reg, MachineRegisterInfo *MRI)
static const TypegetMachineInstrType (MachineInstr *MI)
static const TypegetBlockStructType (Register ParamReg, MachineRegisterInfo *MRI)
static std::tuple< Register, SPIRVType * > buildBoolRegister (MachineIRBuilder &MIRBuilder, const SPIRVType *ResultType, SPIRVGlobalRegistry *GR)
 Helper function building either a resulting scalar or vector bool register depending on the expected ResultType.
static bool buildSelectInst (MachineIRBuilder &MIRBuilder, Register ReturnRegister, Register SourceRegister, const SPIRVType *ReturnType, SPIRVGlobalRegistry *GR)
 Helper function for building either a vector or scalar select instruction depending on the expected ResultType.
static Register buildLoadInst (SPIRVType *BaseType, Register PtrRegister, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR, LLT LowLevelType, Register DestinationReg=Register(0))
 Helper function for building a load instruction loading into the DestinationReg.
static Register buildBuiltinVariableLoad (MachineIRBuilder &MIRBuilder, SPIRVType *VariableType, SPIRVGlobalRegistry *GR, SPIRV::BuiltIn::BuiltIn BuiltinValue, LLT LLType, Register Reg=Register(0), bool isConst=true, bool hasLinkageTy=true)
 Helper function for building a load instruction for loading a builtin global variable of BuiltinValue value.
void insertAssignInstr (Register Reg, Type *Ty, SPIRVType *SpirvTy, SPIRVGlobalRegistry *GR, MachineIRBuilder &MIB, MachineRegisterInfo &MRI)
 Helper external function for inserting ASSIGN_TYPE instuction between Reg and its definition, set the new register as a destination of the definition, assign SPIRVType to both registers.
static SPIRV::MemorySemantics::MemorySemantics getSPIRVMemSemantics (std::memory_order MemOrder)
static SPIRV::Scope::Scope getSPIRVScope (SPIRV::CLMemoryScope ClScope)
static Register buildConstantIntReg32 (uint64_t Val, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static Register buildScopeReg (Register CLScopeRegister, SPIRV::Scope::Scope Scope, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR, MachineRegisterInfo *MRI)
static void setRegClassIfNull (Register Reg, MachineRegisterInfo *MRI, SPIRVGlobalRegistry *GR)
static Register buildMemSemanticsReg (Register SemanticsRegister, Register PtrRegister, unsigned &Semantics, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool buildOpFromWrapper (MachineIRBuilder &MIRBuilder, unsigned Opcode, const SPIRV::IncomingCall *Call, Register TypeReg, ArrayRef< uint32_t > ImmArgs={})
static bool buildAtomicInitInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder)
 Helper function for translating atomic init to OpStore.
static bool buildAtomicLoadInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building an atomic load instruction.
static bool buildAtomicStoreInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building an atomic store instruction.
static bool buildAtomicCompareExchangeInst (const SPIRV::IncomingCall *Call, const SPIRV::DemangledBuiltin *Builtin, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building an atomic compare-exchange instruction.
static bool buildAtomicRMWInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building atomic instructions.
static bool buildAtomicFloatingRMWInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building an atomic floating-type instruction.
static bool buildAtomicFlagInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building atomic flag instructions (e.g.
static bool buildBarrierInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building barriers, i.e., memory/control ordering operations.
static bool buildExtendedBitOpsInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building extended bit operations.
static bool buildBindlessImageINTELInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building Intel's bindless image instructions.
static bool buildTernaryBitwiseFunctionINTELInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building Intel's OpBitwiseFunctionINTEL instruction.
static bool build2DBlockIOINTELInst (const SPIRV::IncomingCall *Call, unsigned Opcode, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
 Helper function for building Intel's 2d block io instructions.
static unsigned getNumComponentsForDim (SPIRV::Dim::Dim dim)
static unsigned getNumSizeComponents (SPIRVType *imgType)
 Helper function for obtaining the number of size components.
static bool generateExtInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateRelationalInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateGroupInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateIntelSubgroupsInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateGroupUniformInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateKernelClockInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool genWorkgroupQuery (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR, SPIRV::BuiltIn::BuiltIn BuiltinValue, uint64_t DefaultValue)
static bool generateBuiltinVar (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateAtomicInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateAtomicFloatingInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateBarrierInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateCastToPtrInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateDotOrFMulInst (const StringRef DemangledCall, const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateWaveInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateICarryBorrowInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateGetQueryInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateImageSizeQueryInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateImageMiscQueryInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRV::SamplerAddressingMode::SamplerAddressingMode getSamplerAddressingModeFromBitmask (unsigned Bitmask)
static unsigned getSamplerParamFromBitmask (unsigned Bitmask)
static SPIRV::SamplerFilterMode::SamplerFilterMode getSamplerFilterModeFromBitmask (unsigned Bitmask)
static bool generateReadImageInst (const StringRef DemangledCall, const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateWriteImageInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateSampleImageInst (const StringRef DemangledCall, const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateSelectInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder)
static bool generateConstructInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateCoopMatrInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateSpecConstantInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateExtendedBitOpsInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateBindlessImageINTELInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateTernaryBitwiseFunctionINTELInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generate2DBlockIOINTELInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool buildNDRange (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetOrCreateSPIRVDeviceEventPointer (MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool buildEnqueueKernel (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateEnqueueInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateAsyncCopy (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateConvertInst (const StringRef DemangledCall, const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateVectorLoadStoreInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static bool generateLoadStoreInst (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static TypeparseTypeString (const StringRef Name, LLVMContext &Context)
static SPIRVTypegetNonParameterizedType (const TargetExtType *ExtensionType, const SPIRV::BuiltinType *TypeRecord, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetSamplerType (MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetPipeType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetCoopMatrType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetSampledImageType (const TargetExtType *OpaqueType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetInlineSpirvType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetVulkanBufferType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
static SPIRVTypegetLayoutType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR)
MDStringgetOCLKernelArgAccessQual (const Function &F, unsigned ArgIdx)
MDStringgetOCLKernelArgTypeQual (const Function &F, unsigned ArgIdx)
void processInstr (MachineInstr &MI, MachineIRBuilder &MIB, MachineRegisterInfo &MRI, SPIRVGlobalRegistry *GR, SPIRVType *KnownResType)
static uint32_t convertCharsToWord (const StringRef &Str, unsigned i)
static size_t getPaddedLen (const StringRef &Str)
void addStringImm (const StringRef &Str, MCInst &Inst)
void addStringImm (const StringRef &Str, MachineInstrBuilder &MIB)
void addStringImm (const StringRef &Str, IRBuilder<> &B, std::vector< Value * > &Args)
std::string getStringImm (const MachineInstr &MI, unsigned StartIndex)
std::string getStringValueFromReg (Register Reg, MachineRegisterInfo &MRI)
void addNumImm (const APInt &Imm, MachineInstrBuilder &MIB)
void buildOpName (Register Target, const StringRef &Name, MachineIRBuilder &MIRBuilder)
void buildOpName (Register Target, const StringRef &Name, MachineInstr &I, const SPIRVInstrInfo &TII)
static void finishBuildOpDecorate (MachineInstrBuilder &MIB, const std::vector< uint32_t > &DecArgs, StringRef StrImm)
void buildOpDecorate (Register Reg, MachineIRBuilder &MIRBuilder, SPIRV::Decoration::Decoration Dec, const std::vector< uint32_t > &DecArgs, StringRef StrImm)
void buildOpDecorate (Register Reg, MachineInstr &I, const SPIRVInstrInfo &TII, SPIRV::Decoration::Decoration Dec, const std::vector< uint32_t > &DecArgs, StringRef StrImm)
void buildOpMemberDecorate (Register Reg, MachineIRBuilder &MIRBuilder, SPIRV::Decoration::Decoration Dec, uint32_t Member, const std::vector< uint32_t > &DecArgs, StringRef StrImm)
void buildOpMemberDecorate (Register Reg, MachineInstr &I, const SPIRVInstrInfo &TII, SPIRV::Decoration::Decoration Dec, uint32_t Member, const std::vector< uint32_t > &DecArgs, StringRef StrImm)
void buildOpSpirvDecorations (Register Reg, MachineIRBuilder &MIRBuilder, const MDNode *GVarMD)
MachineBasicBlock::iterator getOpVariableMBBIt (MachineInstr &I)
MachineBasicBlock::iterator getInsertPtValidEnd (MachineBasicBlock *MBB)
SPIRV::StorageClass::StorageClass addressSpaceToStorageClass (unsigned AddrSpace, const SPIRVSubtarget &STI)
SPIRV::MemorySemantics::MemorySemantics getMemSemanticsForStorageClass (SPIRV::StorageClass::StorageClass SC)
SPIRV::MemorySemantics::MemorySemantics getMemSemantics (AtomicOrdering Ord)
SPIRV::Scope::Scope getMemScope (LLVMContext &Ctx, SyncScope::ID Id)
MachineInstrgetDefInstrMaybeConstant (Register &ConstReg, const MachineRegisterInfo *MRI)
uint64_t getIConstVal (Register ConstReg, const MachineRegisterInfo *MRI)
bool isSpvIntrinsic (const MachineInstr &MI, Intrinsic::ID IntrinsicID)
TypegetMDOperandAsType (const MDNode *N, unsigned I)
static bool isPipeOrAddressSpaceCastBI (const StringRef MangledName)
static bool isEnqueueKernelBI (const StringRef MangledName)
static bool isKernelQueryBI (const StringRef MangledName)
static bool isNonMangledOCLBuiltin (StringRef Name)
std::string getOclOrSpirvBuiltinDemangledName (StringRef Name)
bool hasBuiltinTypePrefix (StringRef Name)
bool isSpecialOpaqueType (const Type *Ty)
bool isEntryPoint (const Function &F)
TypeparseBasicTypeName (StringRef &TypeName, LLVMContext &Ctx)
bool sortBlocks (Function &F)
MachineInstrgetVRegDef (MachineRegisterInfo &MRI, Register Reg)
bool getVacantFunctionName (Module &M, std::string &Name)
void setRegClassType (Register Reg, SPIRVType *SpvType, SPIRVGlobalRegistry *GR, MachineRegisterInfo *MRI, const MachineFunction &MF, bool Force)
void setRegClassType (Register Reg, const Type *Ty, SPIRVGlobalRegistry *GR, MachineIRBuilder &MIRBuilder, SPIRV::AccessQualifier::AccessQualifier AccessQual, bool EmitIR, bool Force)
Register createVirtualRegister (SPIRVType *SpvType, SPIRVGlobalRegistry *GR, MachineRegisterInfo *MRI, const MachineFunction &MF)
Register createVirtualRegister (SPIRVType *SpvType, SPIRVGlobalRegistry *GR, MachineIRBuilder &MIRBuilder)
Register createVirtualRegister (const Type *Ty, SPIRVGlobalRegistry *GR, MachineIRBuilder &MIRBuilder, SPIRV::AccessQualifier::AccessQualifier AccessQual, bool EmitIR)
CallInstbuildIntrWithMD (Intrinsic::ID IntrID, ArrayRef< Type * > Types, Value *Arg, Value *Arg2, ArrayRef< Constant * > Imms, IRBuilder<> &B)
bool isNestedPointer (const Type *Ty)
bool isSpvIntrinsic (const Value *Arg)
SmallVector< MachineInstr *, 4 > createContinuedInstructions (MachineIRBuilder &MIRBuilder, unsigned Opcode, unsigned MinWC, unsigned ContinuedOpcode, ArrayRef< Register > Args, Register ReturnRegister, Register TypeID)
SmallVector< unsigned, 1 > getSpirvLoopControlOperandsFromLoopMetadata (Loop *L)
const std::set< unsigned > & getTypeFoldingSupportedOpcodes ()
bool isTypeFoldingSupported (unsigned Opcode)
MachineInstrpassCopy (MachineInstr *Def, const MachineRegisterInfo *MRI)
MachineInstrgetDef (const MachineOperand &MO, const MachineRegisterInfo *MRI)
MachineInstrgetImm (const MachineOperand &MO, const MachineRegisterInfo *MRI)
int64_t foldImm (const MachineOperand &MO, const MachineRegisterInfo *MRI)
unsigned getArrayComponentCount (const MachineRegisterInfo *MRI, const MachineInstr *ResType)
MachineBasicBlock::iterator getFirstValidInstructionInsertPoint (MachineBasicBlock &BB)
constexpr bool isGenericCastablePtr (SPIRV::StorageClass::StorageClass SC)
constexpr unsigned storageClassToAddressSpace (SPIRV::StorageClass::StorageClass SC)
bool hasInitializer (const GlobalVariable *GV)
bool isTypedPointerTy (const Type *T)
bool isUntypedPointerTy (const Type *T)
bool isPointerTy (const Type *T)
unsigned getPointerAddressSpace (const Type *T)
bool hasPointeeTypeAttr (Argument *Arg)
TypegetPointeeTypeByAttr (Argument *Arg)
TypereconstructFunctionType (Function *F)
TypegetTypedPointerWrapper (Type *ElemTy, unsigned AS)
bool isTypedPointerWrapper (const TargetExtType *ExtTy)
bool isPointerTyOrWrapper (const Type *Ty)
TypeapplyWrappers (Type *Ty)
TypegetPointeeType (const Type *Ty)
bool isUntypedEquivalentToTyExt (Type *Ty1, Type *Ty2)
bool isEquivalentTypes (Type *Ty1, Type *Ty2)
TypetoTypedPointer (Type *Ty)
TypetoTypedFunPointer (FunctionType *FTy)
const TypeunifyPtrType (const Type *Ty)
bool isVector1 (Type *Ty)
TypenormalizeType (Type *Ty)
PoisonValuegetNormalizedPoisonValue (Type *Ty)
MetadataAsValuebuildMD (Value *Arg)
void setRegClassType (Register Reg, const MachineInstr *SpvType, SPIRVGlobalRegistry *GR, MachineRegisterInfo *MRI, const MachineFunction &MF, bool Force=false)
Register createVirtualRegister (const MachineInstr *SpvType, SPIRVGlobalRegistry *GR, MachineRegisterInfo *MRI, const MachineFunction &MF)
Register createVirtualRegister (const MachineInstr *SpvType, SPIRVGlobalRegistry *GR, MachineIRBuilder &MIRBuilder)
FPDecorationId demangledPostfixToDecorationId (const std::string &S)
TargetgetTheSPIRV32Target ()
TargetgetTheSPIRV64Target ()
TargetgetTheSPIRVLogicalTarget ()
MCCodeEmittercreateSystemZMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateSystemZMCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateSystemZELFObjectWriter (uint8_t OSABI)
std::unique_ptr< MCObjectTargetWritercreateSystemZGOFFObjectWriter ()
FunctionPasscreateSystemZISelDag (SystemZTargetMachine &TM, CodeGenOptLevel OptLevel)
FunctionPasscreateSystemZElimComparePass (SystemZTargetMachine &TM)
FunctionPasscreateSystemZShortenInstPass (SystemZTargetMachine &TM)
FunctionPasscreateSystemZLongBranchPass (SystemZTargetMachine &TM)
FunctionPasscreateSystemZLDCleanupPass (SystemZTargetMachine &TM)
FunctionPasscreateSystemZCopyPhysRegsPass (SystemZTargetMachine &TM)
FunctionPasscreateSystemZPostRewritePass (SystemZTargetMachine &TM)
FunctionPasscreateSystemZTDCPass ()
void initializeSystemZAsmPrinterPass (PassRegistry &)
void initializeSystemZCopyPhysRegsPass (PassRegistry &)
void initializeSystemZDAGToDAGISelLegacyPass (PassRegistry &)
void initializeSystemZElimComparePass (PassRegistry &)
void initializeSystemZLDCleanupPass (PassRegistry &)
void initializeSystemZLongBranchPass (PassRegistry &)
void initializeSystemZPostRewritePass (PassRegistry &)
void initializeSystemZShortenInstPass (PassRegistry &)
void initializeSystemZTDCPassPass (PassRegistry &)
bool CC_SystemZ_I128Indirect (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
bool CC_XPLINK64_Pointer (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
bool CC_XPLINK64_Shadow_Reg (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
bool CC_XPLINK64_Allocate128BitVararg (unsigned &ValNo, MVT &ValVT, MVT &LocVT, CCValAssign::LocInfo &LocInfo, ISD::ArgFlagsTy &ArgFlags, CCState &State)
bool RetCC_SystemZ_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
bool CC_SystemZ_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
bool CC_SystemZ_GHC_Error (unsigned &, MVT &, MVT &, CCValAssign::LocInfo &, ISD::ArgFlagsTy &, CCState &)
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI)
 Add a BDX memory reference for frame object FI to MIB.
TargetgetTheSystemZTarget ()
MCCodeEmittercreateVEMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateVEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateVEELFObjectWriter (uint8_t OSABI)
TargetgetTheVETarget ()
FunctionPasscreateVEISelDag (VETargetMachine &TM)
 createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction scheduling.
FunctionPasscreateLVLGenPass ()
void initializeVEAsmPrinterPass (PassRegistry &)
void initializeVEDAGToDAGISelLegacyPass (PassRegistry &)
void LowerVEMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP)
static const charVECondCodeToString (VECC::CondCode CC)
static VECC::CondCode stringToVEICondCode (StringRef S)
static VECC::CondCode stringToVEFCondCode (StringRef S)
static bool isIntVECondCode (VECC::CondCode CC)
static unsigned VECondCodeToVal (VECC::CondCode CC)
static VECC::CondCode VEValToCondCode (unsigned Val, bool IsInteger)
static const charVERDToString (VERD::RoundingMode R)
static VERD::RoundingMode stringToVERD (StringRef S)
static unsigned VERDToVal (VERD::RoundingMode R)
static VERD::RoundingMode VEValToRD (unsigned Val)
static bool isMImmVal (uint64_t Val)
static bool isMImm32Val (uint32_t Val)
static uint64_t val2MImm (uint64_t Val)
 val2MImm - Convert an integer immediate value to target MImm immediate.
static uint64_t mimm2Val (uint64_t Val)
 mimm2Val - Convert a target MImm immediate to an integer immediate value.
unsigned M0 (unsigned Val)
unsigned M1 (unsigned Val)
bool isPackedVectorType (EVT SomeVT)
MVT splitVectorType (MVT VT)
MVT getLegalVectorType (Packing P, MVT ElemVT)
Packing getTypePacking (EVT VT)
bool isMaskType (EVT SomeVT)
bool isMaskArithmetic (SDValue Op)
std::optional< unsignedgetVVPOpcode (unsigned Opcode)
bool maySafelyIgnoreMask (SDValue Op)
bool supportsPackedMode (unsigned Opcode, EVT IdiomVT)
bool isPackingSupportOpcode (unsigned Opc)
bool isVVPOrVEC (unsigned Opcode)
bool isVVPUnaryOp (unsigned VVPOpcode)
bool isVVPBinaryOp (unsigned VVPOpcode)
bool isVVPReductionOp (unsigned Opcode)
std::optional< int > getAVLPos (unsigned)
 The VE backend uses a two-staged process to lower and legalize vector instructions:
std::optional< int > getMaskPos (unsigned Opc)
bool isLegalAVL (SDValue AVL)
SDValue getNodeChain (SDValue Op)
 Node Properties {.
SDValue getMemoryPtr (SDValue Op)
std::optional< EVTgetIdiomaticVectorType (SDNode *Op)
 } AVL Functions
SDValue getLoadStoreStride (SDValue Op, VECustomDAG &CDAG)
SDValue getGatherScatterIndex (SDValue Op)
SDValue getGatherScatterScale (SDValue Op)
SDValue getStoredValue (SDValue Op)
SDValue getNodePassthru (SDValue Op)
bool hasReductionStartParam (unsigned OPC)
unsigned getScalarReductionOpcode (unsigned VVPOC, bool IsMask)
SDValue getNodeAVL (SDValue Op)
 } Node Properties
SDValue getNodeMask (SDValue Op)
std::pair< SDValue, boolgetAnnotatedNodeAVL (SDValue Op)
static const MachineInstrBuilderaddFrameReference (const MachineInstrBuilder &MIB, int FI, int Offset=0, bool ThreeOp=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.
static VECC::CondCode intCondCode2Icc (ISD::CondCode CC)
 Convert a DAG integer condition code to a VE ICC condition.
static VECC::CondCode fpCondCode2Fcc (ISD::CondCode CC)
 Convert a DAG floating point condition code to a VE FCC condition.
static uint64_t getImmVal (const ConstantSDNode *N)
 getImmVal - get immediate representation of integer value
static uint64_t getFpImmVal (const ConstantFPSDNode *N)
 getFpImmVal - get immediate representation of floating point value
static bool compareTypes (ArrayRef< wasm::ValType > TypesA, ArrayRef< wasm::ValType > TypesB)
MCCodeEmittercreateWebAssemblyMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateWebAssemblyAsmBackend (const Triple &TT)
std::unique_ptr< MCObjectTargetWritercreateWebAssemblyWasmObjectWriter (bool Is64Bit, bool IsEmscripten)
TargetgetTheWebAssemblyTarget32 ()
TargetgetTheWebAssemblyTarget64 ()
ModulePasscreateWebAssemblyLowerEmscriptenEHSjLj ()
ModulePasscreateWebAssemblyAddMissingPrototypes ()
ModulePasscreateWebAssemblyFixFunctionBitcasts ()
FunctionPasscreateWebAssemblyOptimizeReturned ()
FunctionPasscreateWebAssemblyLowerRefTypesIntPtrConv ()
FunctionPasscreateWebAssemblyRefTypeMem2Local ()
FunctionPasscreateWebAssemblyISelDag (WebAssemblyTargetMachine &TM, CodeGenOptLevel OptLevel)
 This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling.
FunctionPasscreateWebAssemblyArgumentMove ()
FunctionPasscreateWebAssemblySetP2AlignOperands ()
FunctionPasscreateWebAssemblyCleanCodeAfterTrap ()
FunctionPasscreateWebAssemblyReplacePhysRegs ()
FunctionPasscreateWebAssemblyNullifyDebugValueLists ()
FunctionPasscreateWebAssemblyOptimizeLiveIntervals ()
FunctionPasscreateWebAssemblyMemIntrinsicResults ()
FunctionPasscreateWebAssemblyRegStackify (CodeGenOptLevel OptLevel)
FunctionPasscreateWebAssemblyRegColoring ()
FunctionPasscreateWebAssemblyFixBrTableDefaults ()
FunctionPasscreateWebAssemblyFixIrreducibleControlFlow ()
FunctionPasscreateWebAssemblyLateEHPrepare ()
FunctionPasscreateWebAssemblyCFGSort ()
FunctionPasscreateWebAssemblyCFGStackify ()
FunctionPasscreateWebAssemblyExplicitLocals ()
FunctionPasscreateWebAssemblyLowerBrUnless ()
FunctionPasscreateWebAssemblyRegNumbering ()
FunctionPasscreateWebAssemblyDebugFixup ()
FunctionPasscreateWebAssemblyPeephole ()
ModulePasscreateWebAssemblyMCLowerPrePass ()
void initializeFixFunctionBitcastsPass (PassRegistry &)
void initializeOptimizeReturnedPass (PassRegistry &)
void initializeWebAssemblyRefTypeMem2LocalPass (PassRegistry &)
void initializeWebAssemblyAddMissingPrototypesPass (PassRegistry &)
void initializeWebAssemblyArgumentMovePass (PassRegistry &)
void initializeWebAssemblyAsmPrinterPass (PassRegistry &)
void initializeWebAssemblyCleanCodeAfterTrapPass (PassRegistry &)
void initializeWebAssemblyCFGSortPass (PassRegistry &)
void initializeWebAssemblyCFGStackifyPass (PassRegistry &)
void initializeWebAssemblyDAGToDAGISelLegacyPass (PassRegistry &)
void initializeWebAssemblyDebugFixupPass (PassRegistry &)
void initializeWebAssemblyExceptionInfoPass (PassRegistry &)
void initializeWebAssemblyExplicitLocalsPass (PassRegistry &)
void initializeWebAssemblyFixBrTableDefaultsPass (PassRegistry &)
void initializeWebAssemblyFixIrreducibleControlFlowPass (PassRegistry &)
void initializeWebAssemblyLateEHPreparePass (PassRegistry &)
void initializeWebAssemblyLowerBrUnlessPass (PassRegistry &)
void initializeWebAssemblyLowerEmscriptenEHSjLjPass (PassRegistry &)
void initializeWebAssemblyLowerRefTypesIntPtrConvPass (PassRegistry &)
void initializeWebAssemblyMCLowerPrePassPass (PassRegistry &)
void initializeWebAssemblyMemIntrinsicResultsPass (PassRegistry &)
void initializeWebAssemblyNullifyDebugValueListsPass (PassRegistry &)
void initializeWebAssemblyOptimizeLiveIntervalsPass (PassRegistry &)
void initializeWebAssemblyPeepholePass (PassRegistry &)
void initializeWebAssemblyRegColoringPass (PassRegistry &)
void initializeWebAssemblyRegNumberingPass (PassRegistry &)
void initializeWebAssemblyRegStackifyPass (PassRegistry &)
void initializeWebAssemblyReplacePhysRegsPass (PassRegistry &)
void initializeWebAssemblySetP2AlignOperandsPass (PassRegistry &)
raw_ostreamoperator<< (raw_ostream &OS, const WebAssemblyException &WE)
void computeLegalValueVTs (const WebAssemblyTargetLowering &TLI, LLVMContext &Ctx, const DataLayout &DL, Type *Ty, SmallVectorImpl< MVT > &ValueVTs)
void computeLegalValueVTs (const Function &F, const TargetMachine &TM, Type *Ty, SmallVectorImpl< MVT > &ValueVTs)
void computeSignatureVTs (const FunctionType *Ty, const Function *TargetFunc, const Function &ContextFunc, const TargetMachine &TM, SmallVectorImpl< MVT > &Params, SmallVectorImpl< MVT > &Results)
void valTypesFromMVTs (ArrayRef< MVT > In, SmallVectorImpl< wasm::ValType > &Out)
wasm::WasmSignaturesignatureFromMVTs (MCContext &Ctx, const SmallVectorImpl< MVT > &Results, const SmallVectorImpl< MVT > &Params)
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 isImmUnsignedi4Value (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.
MCCodeEmittercreateX86MCCodeEmitter (const MCInstrInfo &MCII, 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 *InstPrinter)
 Implements X86-only directives for assembly emission.
MCTargetStreamercreateX86ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI)
 Implements X86-only directives for object files.
MCStreamercreateX86WinCOFFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > &&AB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE)
 Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files.
MCStreamercreateX86ELFStreamer (const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&MOW, std::unique_ptr< MCCodeEmitter > &&MCE)
std::unique_ptr< MCObjectTargetWritercreateX86MachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)
 Construct an X86 Mach-O object writer.
std::unique_ptr< MCObjectTargetWritercreateX86ELFObjectWriter (bool IsELF64, uint8_t OSABI, uint16_t EMachine)
 Construct an X86 ELF object writer.
std::unique_ptr< MCObjectTargetWritercreateX86WinCOFFObjectWriter (bool Is64Bit)
 Construct an X86 Win COFF object writer.
MCRegister getX86SubSuperRegister (MCRegister Reg, unsigned Size, bool High=false)
void DecodeINSERTPSMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask, bool SrcIsMem)
 Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.
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.
void DecodeMOVLHPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask.
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)
 Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps.
void DecodePSHUFHWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshufhw.
void DecodePSHUFLWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshuflw.
void DecodePSWAPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a PSWAPD 3DNow! instruction.
void DecodeSHUFPMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for shufp*.
void DecodeUNPCKHMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.
void DecodeUNPCKLMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.
void DecodeVectorBroadcast (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of the first element of a vector.
void DecodeSubVectorBroadcast (unsigned DstNumElts, unsigned SrcNumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of a subvector to a larger vector type.
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.
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.
void DecodeBLENDMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a BLEND immediate mask into a shuffle mask.
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.
void DecodeVPERMMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for VPERMQ/VPERMPD.
void DecodeZeroExtendMask (unsigned SrcScalarBits, unsigned DstScalarBits, unsigned NumDstElts, bool IsAnyExtend, SmallVectorImpl< int > &ShuffleMask)
 Decode a zero extension instruction as a shuffle mask.
void DecodeZeroMoveLowMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a move lower and zero upper instruction as a shuffle mask.
void DecodeScalarMoveMask (unsigned NumElts, bool IsLoad, SmallVectorImpl< int > &ShuffleMask)
 Decode a scalar float move instruction as a shuffle mask.
void DecodeEXTRQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A EXTRQ instruction as a shuffle mask.
void DecodeINSERTQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A INSERTQ instruction as a shuffle mask.
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.
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.
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.
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.
MCTargetStreamercreateX86NullTargetStreamer (MCStreamer &S)
 Implements X86-only null emission.
TargetgetTheX86_32Target ()
TargetgetTheX86_64Target ()
FunctionPasscreateX86ISelDag (X86TargetMachine &TM, CodeGenOptLevel OptLevel)
 This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling.
FunctionPasscreateX86GlobalBaseRegPass ()
 This pass initializes a global base register for PIC on x86-32.
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.
FunctionPasscreateX86FloatingPointStackifierPass ()
 This function returns a pass which converts floating-point register references and pseudo instructions into floating-point stack references and physical instructions.
FunctionPasscreateX86IssueVZeroUpperPass ()
 This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE.
FunctionPasscreateX86IndirectBranchTrackingPass ()
 This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechanism.
FunctionPasscreateX86PadShortFunctions ()
 Return a pass that pads short functions with NOOPs.
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.
FunctionPasscreateX86FixupInstTuning ()
 Return a pass that replaces equivalent slower instructions with faster ones.
FunctionPasscreateX86FixupVectorConstants ()
 Return a pass that reduces the size of vector constant pool loads.
FunctionPasscreateX86OptimizeLEAs ()
 Return a pass that removes redundant LEA instructions and redundant address recalculations.
FunctionPasscreateX86FixupSetCC ()
 Return a pass that transforms setcc + movzx pairs into xor + setcc.
FunctionPasscreateX86AvoidStoreForwardingBlocks ()
 Return a pass that avoids creating store forward block issues in the hardware.
FunctionPasscreateX86FlagsCopyLoweringPass ()
 Return a pass that lowers EFLAGS copy pseudo instructions.
FunctionPasscreateX86DynAllocaExpander ()
 Return a pass that expands DynAlloca pseudo-instructions.
FunctionPasscreateX86TileConfigPass ()
 Return a pass that config the tile registers.
FunctionPasscreateX86FastPreTileConfigPass ()
 Return a pass that preconfig the tile registers before fast reg allocation.
FunctionPasscreateX86FastTileConfigPass ()
 Return a pass that config the tile registers after fast reg allocation.
FunctionPasscreateX86PreTileConfigPass ()
 Return a pass that insert pseudo tile config instruction.
FunctionPasscreateX86LowerTileCopyPass ()
 Return a pass that lower the tile copy instruction.
FunctionPasscreateX86AvoidTrailingCallPass ()
 Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction.
FunctionPasscreateX86CallFrameOptimization ()
 Return a pass that optimizes the code-size of x86 call sequences.
FunctionPasscreateX86WinEHStatePass ()
 Return an IR pass that inserts EH registration stack objects and explicit EH state updates.
FunctionPasscreateX86ExpandPseudoPass ()
 Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual instructions.
FunctionPasscreateX86CmovConverterPass ()
 This pass converts X86 cmov instructions into branch when profitable.
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.
FunctionPasscreateX86DomainReassignmentPass ()
 Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable.
FunctionPasscreateX86CompressEVEXPass ()
 This pass compress instructions from EVEX space to legacy/VEX/EVEX space when possible in order to reduce code size or facilitate HW decoding.
FunctionPasscreateX86IndirectThunksPass ()
 This pass creates the thunks for the retpoline feature.
FunctionPasscreateX86ReturnThunksPass ()
 This pass replaces ret instructions with jmp's to __x86_return thunk.
FunctionPasscreateX86DiscriminateMemOpsPass ()
 This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to each other)
FunctionPasscreateX86InsertPrefetchPass ()
 This pass applies profiling information to insert cache prefetches.
FunctionPasscreateX86InsertX87waitPass ()
 This pass insert wait instruction after X87 instructions which could raise fp exceptions when strict-fp enabled.
FunctionPasscreateX86PartialReductionPass ()
 This pass optimizes arithmetic based on knowledge that is only used by a reduction sequence and is therefore safe to reassociate in interesting ways.
FunctionPasscreateX86WinEHUnwindV2Pass ()
 // Analyzes and emits pseudos to support Win x64 Unwind V2.
InstructionSelectorcreateX86InstructionSelector (const X86TargetMachine &TM, const X86Subtarget &, const X86RegisterBankInfo &)
FunctionPasscreateX86LoadValueInjectionLoadHardeningPass ()
FunctionPasscreateX86LoadValueInjectionRetHardeningPass ()
FunctionPasscreateX86SpeculativeLoadHardeningPass ()
FunctionPasscreateX86SpeculativeExecutionSideEffectSuppression ()
FunctionPasscreateX86ArgumentStackSlotPass ()
FunctionPasscreateX86SuppressAPXForRelocationPass ()
void initializeCompressEVEXPassPass (PassRegistry &)
void initializeFPSPass (PassRegistry &)
void initializeFixupBWInstPassPass (PassRegistry &)
void initializeFixupLEAPassPass (PassRegistry &)
void initializeX86ArgumentStackSlotPassPass (PassRegistry &)
void initializeX86AsmPrinterPass (PassRegistry &)
void initializeX86FixupInstTuningPassPass (PassRegistry &)
void initializeX86FixupVectorConstantsPassPass (PassRegistry &)
void initializeWinEHStatePassPass (PassRegistry &)
void initializeX86AvoidSFBPassPass (PassRegistry &)
void initializeX86AvoidTrailingCallPassPass (PassRegistry &)
void initializeX86CallFrameOptimizationPass (PassRegistry &)
void initializeX86CmovConverterPassPass (PassRegistry &)
void initializeX86DAGToDAGISelLegacyPass (PassRegistry &)
void initializeX86DomainReassignmentPass (PassRegistry &)
void initializeX86DynAllocaExpanderPass (PassRegistry &)
void initializeX86ExecutionDomainFixPass (PassRegistry &)
void initializeX86ExpandPseudoPass (PassRegistry &)
void initializeX86FastPreTileConfigPass (PassRegistry &)
void initializeX86FastTileConfigPass (PassRegistry &)
void initializeX86FixupSetCCPassPass (PassRegistry &)
void initializeX86FlagsCopyLoweringPassPass (PassRegistry &)
void initializeX86LoadValueInjectionLoadHardeningPassPass (PassRegistry &)
void initializeX86LoadValueInjectionRetHardeningPassPass (PassRegistry &)
void initializeX86LowerAMXIntrinsicsLegacyPassPass (PassRegistry &)
void initializeX86LowerAMXTypeLegacyPassPass (PassRegistry &)
void initializeX86LowerTileCopyPass (PassRegistry &)
void initializeX86OptimizeLEAPassPass (PassRegistry &)
void initializeX86PartialReductionPass (PassRegistry &)
void initializeX86PreTileConfigPass (PassRegistry &)
void initializeX86ReturnThunksPass (PassRegistry &)
void initializeX86SpeculativeExecutionSideEffectSuppressionPass (PassRegistry &)
void initializeX86SpeculativeLoadHardeningPassPass (PassRegistry &)
void initializeX86TileConfigPass (PassRegistry &)
void initializeX86SuppressAPXForRelocationPassPass (PassRegistry &)
void initializeX86WinEHUnwindV2Pass (PassRegistry &)
bool RetCC_X86 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
bool CC_X86 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, CCState &State)
static X86AddressMode getAddressFromInstr (const MachineInstr *MI, unsigned Operand)
 Compute the addressing mode from an machine instruction starting with the given operand.
static const MachineInstrBuilderaddDirectMem (const MachineInstrBuilder &MIB, Register 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.
static void setDirectAddressInInstr (MachineInstr *MI, unsigned Operand, Register Reg)
 Replace the address used in the instruction with the direct memory reference.
static const MachineInstrBuilderaddOffset (const MachineInstrBuilder &MIB, int Offset)
static const MachineInstrBuilderaddOffset (const MachineInstrBuilder &MIB, const MachineOperand &Offset)
static const MachineInstrBuilderaddRegOffset (const MachineInstrBuilder &MIB, Register 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.
static const MachineInstrBuilderaddRegReg (const MachineInstrBuilder &MIB, Register Reg1, bool isKill1, unsigned SubReg1, Register Reg2, bool isKill2, unsigned SubReg2)
 addRegReg - This function is used to add a memory reference of the form: [Reg + Reg].
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.
static const MachineInstrBuilderaddConstantPoolReference (const MachineInstrBuilder &MIB, unsigned CPI, Register 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.
const X86InstrFMA3GroupgetFMA3Group (unsigned Opcode, uint64_t TSFlags)
 Returns a reference to a group of FMA3 opcodes to where the given Opcode is included.
const X86FoldTableEntrylookupTwoAddrFoldTable (unsigned RegOp)
const X86FoldTableEntrylookupFoldTable (unsigned RegOp, unsigned OpNum)
const X86FoldTableEntrylookupBroadcastFoldTable (unsigned RegOp, unsigned OpNum)
const X86FoldTableEntrylookupUnfoldTable (unsigned MemOp)
const X86FoldTableEntrylookupBroadcastFoldTableBySize (unsigned MemOp, unsigned BroadcastBits)
bool matchBroadcastSize (const X86FoldTableEntry &Entry, unsigned BroadcastBits)
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.
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).
static bool isScale (const MachineOperand &MO)
static bool isLeaMem (const MachineInstr &MI, unsigned Op)
static bool isMem (const MachineInstr &MI, unsigned Op)
static bool isAddMemInstrWithRelocation (const MachineInstr &MI)
static bool isMemInstrWithGOTPCREL (const MachineInstr &MI)
static const IntrinsicDatagetIntrinsicWithChain (unsigned IntNo)
static const IntrinsicDatagetIntrinsicWithoutChain (unsigned IntNo)
static void verifyIntrinsicTables ()
void createUnpackShuffleMask (EVT VT, SmallVectorImpl< int > &Mask, bool Lo, bool Unary)
 Generate unpacklo/unpackhi shuffle mask.
void createSplat2ShuffleMask (MVT VT, SmallVectorImpl< int > &Mask, bool Lo)
 Similar to unpacklo/unpackhi, but without the 128-bit lane limitation imposed by AVX and specific to the unary pattern.
std::unique_ptr< ScheduleDAGMutationcreateX86MacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86TargetMachine::createMachineScheduler() to have an effect.
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.
void DecodeVPERMILPMask (const Constant *C, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILP variable mask from an IR-level vector constant.
void DecodeVPERMIL2PMask (const Constant *C, unsigned M2Z, unsigned ElSize, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILP2 variable mask from an IR-level vector constant.
void DecodeVPPERMMask (const Constant *C, unsigned Width, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPPERM variable mask from an IR-level vector constant.
TargetgetTheXCoreTarget ()
void initializeXCoreLowerThreadLocalPass (PassRegistry &p)
FunctionPasscreateXCoreFrameToArgsOffsetEliminationPass ()
 createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass
FunctionPasscreateXCoreISelDag (XCoreTargetMachine &TM, CodeGenOptLevel OptLevel)
 createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling.
ModulePasscreateXCoreLowerThreadLocalPass ()
void initializeXCoreAsmPrinterPass (PassRegistry &)
void initializeXCoreDAGToDAGISelLegacyPass (PassRegistry &)
MCCodeEmittercreateXtensaMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx)
MCAsmBackendcreateXtensaAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)
std::unique_ptr< MCObjectTargetWritercreateXtensaObjectWriter (uint8_t OSABI, bool IsLittleEndian)
TargetgetTheXtensaTarget ()
FunctionPasscreateXtensaISelDag (XtensaTargetMachine &TM, CodeGenOptLevel OptLevel)
void initializeXtensaAsmPrinterPass (PassRegistry &)
raw_ostreamoperator<< (raw_ostream &O, const XtensaConstantPoolValue &V)
static void dumpBasicBlockLabel (const BasicBlock *BB, ModuleSlotTracker &MST)
cl::opt< boolDebugInfoCorrelate ("debug-info-correlate", cl::desc("Use debug info to correlate profiles. (Deprecated, use " "-profile-correlate=debug-info)"), cl::init(false))
LLVM_ABI cl::opt< InstrProfCorrelator::ProfCorrelatorKindProfileCorrelate ("profile-correlate", cl::desc("Use debug info or binary file to correlate profiles."), cl::init(InstrProfCorrelator::NONE), cl::values(clEnumValN(InstrProfCorrelator::NONE, "", "No profile correlation"), clEnumValN(InstrProfCorrelator::DEBUG_INFO, "debug-info", "Use debug info to correlate"), clEnumValN(InstrProfCorrelator::BINARY, "binary", "Use binary to correlate")))
cl::opt< boolPGOWarnMissing ("pgo-warn-missing-function", cl::init(false), cl::Hidden, cl::desc("Use this option to turn on/off " "warnings about missing profile data for " "functions."))
cl::opt< boolNoPGOWarnMismatch ("no-pgo-warn-mismatch", cl::init(false), cl::Hidden, cl::desc("Use this option to turn off/on " "warnings about profile cfg mismatch."))
cl::opt< boolNoPGOWarnMismatchComdatWeak ("no-pgo-warn-mismatch-comdat-weak", cl::init(true), cl::Hidden, cl::desc("The option is used to turn on/off " "warnings about hash mismatch for comdat " "or weak functions."))
template<>
ChangeStatus clampStateAndIndicateChange< DerefState > (DerefState &S, const DerefState &R)
cl::opt< boolEnableMemProfContextDisambiguation ("enable-memprof-context-disambiguation", cl::init(false), cl::Hidden, cl::ZeroOrMore, cl::desc("Enable MemProf context disambiguation"))
cl::opt< boolSupportsHotColdNew ("supports-hot-cold-new", cl::init(false), cl::Hidden, cl::desc("Linking with hot/cold operator new interfaces"))
cl::opt< boolSortProfiledSCC ("sort-profiled-scc-member", cl::init(true), cl::Hidden, cl::desc("Sort profiled recursion by edge weights."))
cl::opt< int > ProfileInlineGrowthLimit ("sample-profile-inline-growth-limit", cl::Hidden, cl::init(12), cl::desc("The size growth ratio limit for proirity-based sample profile " "loader inlining."))
cl::opt< int > ProfileInlineLimitMin ("sample-profile-inline-limit-min", cl::Hidden, cl::init(100), cl::desc("The lower bound of size growth limit for " "proirity-based sample profile loader inlining."))
cl::opt< int > ProfileInlineLimitMax ("sample-profile-inline-limit-max", cl::Hidden, cl::init(10000), cl::desc("The upper bound of size growth limit for " "proirity-based sample profile loader inlining."))
cl::opt< int > SampleHotCallSiteThreshold ("sample-profile-hot-inline-threshold", cl::Hidden, cl::init(3000), cl::desc("Hot callsite threshold for proirity-based sample profile loader " "inlining."))
cl::opt< int > SampleColdCallSiteThreshold ("sample-profile-cold-inline-threshold", cl::Hidden, cl::init(45), cl::desc("Threshold for inlining cold callsites"))
raw_ostreamoperator<< (raw_ostream &OS, BBState &BBState) LLVM_ATTRIBUTE_UNUSED
static void analyzeICmp (ScalarEvolution &SE, ICmpInst *ICmp, ConditionInfo &Cond, const Loop &L)
static bool calculateUpperBound (const Loop &L, ScalarEvolution &SE, ConditionInfo &Cond, bool IsExitCond)
static bool hasProcessableCondition (const Loop &L, ScalarEvolution &SE, ICmpInst *ICmp, ConditionInfo &Cond, bool IsExitCond)
static bool isProcessableCondBI (const ScalarEvolution &SE, const BranchInst *BI)
static bool canSplitLoopBound (const Loop &L, const DominatorTree &DT, ScalarEvolution &SE, ConditionInfo &Cond)
static bool isProfitableToTransform (const Loop &L, const BranchInst *BI)
static BranchInstfindSplitCandidate (const Loop &L, ScalarEvolution &SE, ConditionInfo &ExitingCond, ConditionInfo &SplitCandidateCond)
static bool splitLoopBound (Loop &L, DominatorTree &DT, LoopInfo &LI, ScalarEvolution &SE, LPMUpdater &U)
static InstructionCost ComputeSpeculationCost (const Instruction *I, const TargetTransformInfo &TTI)
static bool CompareVars (const ASanStackVariableDescription &a, const ASanStackVariableDescription &b)
static uint64_t VarAndRedzoneSize (uint64_t Size, uint64_t Granularity, uint64_t Alignment)
LLVM_ABI cl::opt< boolShouldPreserveAllAttributes ("assume-preserve-all", cl::init(false), cl::Hidden, cl::desc("enable preservation of all attributes. even those that are " "unlikely to be useful"))
cl::opt< boolEnableKnowledgeRetention ("enable-knowledge-retention", cl::init(false), cl::Hidden, cl::desc("enable preservation of attributes throughout code transformation"))
cl::opt< boolEnableExtTspBlockPlacement ("enable-ext-tsp-block-placement", cl::Hidden, cl::init(false), cl::desc("Enable machine block placement based on the ext-tsp model, " "optimizing I-cache utilization."))
cl::opt< boolApplyExtTspWithoutProfile ("ext-tsp-apply-without-profile", cl::desc("Whether to apply ext-tsp placement for instances w/o profile"), cl::init(true), cl::Hidden)
bool shouldRename (Value *V)
void collectCmpOps (CmpInst *Comparison, SmallVectorImpl< Value * > &CmpOperands)
static void replaceCreatedSSACopys (PredicateInfo &PredInfo, Function &F)
cl::opt< unsignedSampleProfileMaxPropagateIterations ("sample-profile-max-propagate-iterations", cl::init(100), cl::desc("Maximum number of iterations to go through when propagating " "sample block/edge weights through the CFG."))
cl::opt< unsignedSampleProfileRecordCoverage ("sample-profile-check-record-coverage", cl::init(0), cl::value_desc("N"), cl::desc("Emit a warning if less than N% of records in the input profile " "are matched to the IR."))
cl::opt< unsignedSampleProfileSampleCoverage ("sample-profile-check-sample-coverage", cl::init(0), cl::value_desc("N"), cl::desc("Emit a warning if less than N% of samples in the input profile " "are matched to the IR."))
cl::opt< boolNoWarnSampleUnused ("no-warn-sample-unused", cl::init(false), cl::Hidden, cl::desc("Use this option to turn off/on warnings about function with " "samples but without debug information to use those samples. "))
cl::opt< boolSampleProfileUseProfi ("sample-profile-use-profi", cl::Hidden, cl::desc("Use profi to infer block and edge counts."))
static ConstantRange getRange (Value *Op, SCCPSolver &Solver, const SmallPtrSetImpl< Value * > &InsertedValues)
 Helper for getting ranges from Solver.
static bool refineInstruction (SCCPSolver &Solver, const SmallPtrSetImpl< Value * > &InsertedValues, Instruction &Inst)
 Try to use Inst's value range from Solver to infer the NUW flag.
static bool replaceSignedInst (SCCPSolver &Solver, SmallPtrSetImpl< Value * > &InsertedValues, Instruction &Inst)
 Try to replace signed instructions with their unsigned equivalent.
static ValuesimplifyInstruction (SCCPSolver &Solver, SmallPtrSetImpl< Value * > &InsertedValues, Instruction &Inst)
 Try to use Inst's value range from Solver to simplify it.
static void inferAttribute (Function *F, unsigned AttrIndex, const ValueLatticeElement &Val)
static bool isUniformLoop (Loop *Lp, Loop *OuterLp)
static bool isUniformLoopNest (Loop *Lp, Loop *OuterLp)
static IntegerTypegetInductionIntegerTy (const DataLayout &DL, Type *Ty)
static IntegerTypegetWiderInductionTy (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.
static bool storeToSameAddress (ScalarEvolution *SE, StoreInst *A, StoreInst *B)
 Returns true if A and B have same pointer operands or same SCEVs addresses.
static bool isTLIScalarize (const TargetLibraryInfo &TLI, const CallInst &CI)
 Checks if a function is scalarizable according to the TLI, in the sense that it should be vectorized and then expanded in multiple scalar calls.
static bool canWidenCallReturnType (Type *Ty)
 Returns true if the call return type Ty can be widened by the loop vectorizer.
static bool findHistogram (LoadInst *LI, StoreInst *HSt, Loop *TheLoop, const PredicatedScalarEvolution &PSE, SmallVectorImpl< HistogramInfo > &Histograms)
 Find histogram operations that match high-level code in loops:
ValuecreateStepForVF (IRBuilderBase &B, Type *Ty, ElementCount VF, int64_t Step)
 Return a value for Step multiplied by VF.
ValuegetRuntimeVF (IRBuilderBase &B, Type *Ty, ElementCount VF)
 Return the runtime value for VF.
static void reportVectorizationInfo (const StringRef Msg, const StringRef ORETag, OptimizationRemarkEmitter *ORE, Loop *TheLoop, Instruction *I=nullptr, DebugLoc DL={})
 Reports an informative message: print Msg for debugging purposes as well as an optimization remark.
static void reportVectorization (OptimizationRemarkEmitter *ORE, Loop *TheLoop, VectorizationFactor VF, unsigned IC)
 Report successful vectorization of the loop.
static bool areAllOperandsNonInsts (Value *V)
 Checks if the provided value does not require scheduling.
static bool isUsedOutsideBlock (Value *V)
 Checks if the provided value does not require scheduling.
static bool doesNotNeedToBeScheduled (Value *V)
 Checks if the specified value does not require scheduling.
static void inversePermutation (ArrayRef< unsigned > Indices, SmallVectorImpl< int > &Mask)
static void reorderScalars (SmallVectorImpl< Value * > &Scalars, ArrayRef< int > Mask)
 Reorders the list of scalars in accordance with the given Mask.
static bool doesNotNeedToSchedule (ArrayRef< Value * > VL)
 Checks if the specified array of instructions does not require scheduling.
static bool hasFullVectorsOrPowerOf2 (const TargetTransformInfo &TTI, Type *Ty, unsigned Sz)
 Returns true if widened type of Ty elements with size Sz represents full vector type, i.e.
static unsigned getNumberOfParts (const TargetTransformInfo &TTI, VectorType *VecTy, const unsigned Limit=std::numeric_limits< unsigned >::max())
 Returns number of parts, the type VecTy will be split at the codegen phase.
raw_ostreamoperator<< (raw_ostream &OS, const VPlan &Plan)
void collectEphemeralRecipesForVPlan (VPlan &Plan, DenseSet< VPRecipeBase * > &EphRecipes)
SmallVector< VPRegisterUsage, 8 > calculateRegisterUsageForPlan (VPlan &Plan, ArrayRef< ElementCount > VFs, const TargetTransformInfo &TTI, const SmallPtrSetImpl< const Value * > &ValuesToIgnore)
 Estimate the register usage for Plan and vectorization factors in VFs by calculating the highest number of values that are live at a single location as a rough estimate.
iterator_range< df_iterator< VPBlockShallowTraversalWrapper< VPBlockBase * > > > vp_depth_first_shallow (VPBlockBase *G)
 Returns an iterator range to traverse the graph starting at G in depth-first order.
iterator_range< df_iterator< VPBlockShallowTraversalWrapper< const VPBlockBase * > > > vp_depth_first_shallow (const VPBlockBase *G)
iterator_range< po_iterator< VPBlockShallowTraversalWrapper< VPBlockBase * > > > vp_post_order_shallow (VPBlockBase *G)
 Returns an iterator range to traverse the graph starting at G in post order.
iterator_range< po_iterator< VPBlockDeepTraversalWrapper< VPBlockBase * > > > vp_post_order_deep (VPBlockBase *G)
 Returns an iterator range to traverse the graph starting at G in post order while traversing through region blocks.
iterator_range< df_iterator< VPBlockDeepTraversalWrapper< VPBlockBase * > > > vp_depth_first_deep (VPBlockBase *G)
 Returns an iterator range to traverse the graph starting at G in depth-first order while traversing through region blocks.
iterator_range< df_iterator< VPBlockDeepTraversalWrapper< const VPBlockBase * > > > vp_depth_first_deep (const VPBlockBase *G)
unsigned getPredBlockCostDivisor (TargetTransformInfo::TargetCostKind CostKind)
 A helper function that returns how much we should divide the cost of a predicated block by.
raw_ostreamoperator<< (raw_ostream &OS, const VPRecipeBase &R)
LLVM_ABI_FOR_TEST bool verifyVPlanIsValid (const VPlan &Plan, bool VerifyLate=false)
 Verify invariants for general VPlans.
bool getWindowsSDKDir (vfs::FileSystem &VFS, std::optional< StringRef > WinSdkDir, std::optional< StringRef > WinSdkVersion, std::optional< StringRef > WinSysRoot, std::string &Path, int &Major, std::string &WindowsSDKIncludeVersion, std::string &WindowsSDKLibVersion)
 Get Windows SDK installation directory.
bool getUniversalCRTSdkDir (vfs::FileSystem &VFS, std::optional< StringRef > WinSdkDir, std::optional< StringRef > WinSdkVersion, std::optional< StringRef > WinSysRoot, std::string &Path, std::string &UCRTVersion)
bool findVCToolChainViaCommandLine (vfs::FileSystem &VFS, std::optional< StringRef > VCToolsDir, std::optional< StringRef > VCToolsVersion, std::optional< StringRef > WinSysRoot, std::string &Path, ToolsetLayout &VSLayout)
bool findVCToolChainViaSetupConfig (vfs::FileSystem &VFS, std::optional< StringRef > VCToolsVersion, std::string &Path, ToolsetLayout &VSLayout)
ArrayRef Deduction guides

Deduction guide to construct an ArrayRef from a single element.

template<typename T>
 ArrayRef (const T &OneElt) -> ArrayRef< T >
template<typename T>
 ArrayRef (const T *data, size_t length) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a pointer and length.
template<typename T>
 ArrayRef (const T *data, const T *end) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a range.
template<typename T>
 ArrayRef (const SmallVectorImpl< T > &Vec) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a SmallVector.
template<typename T, unsigned N>
 ArrayRef (const SmallVector< T, N > &Vec) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a SmallVector.
template<typename T>
 ArrayRef (const std::vector< T > &Vec) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a std::vector.
template<typename T, std::size_t N>
 ArrayRef (const std::array< T, N > &Vec) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a std::array.
template<typename T>
 ArrayRef (const ArrayRef< T > &Vec) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from an ArrayRef (const)
template<typename T>
 ArrayRef (ArrayRef< T > &Vec) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from an ArrayRef.
template<typename T, size_t N>
 ArrayRef (const T(&Arr)[N]) -> ArrayRef< T >
 Deduction guide to construct an ArrayRef from a C array.
MutableArrayRef Deduction guides

Deduction guide to construct a MutableArrayRef from a single element

template<class T>
 MutableArrayRef (T &OneElt) -> MutableArrayRef< T >
template<class T>
 MutableArrayRef (T *data, size_t length) -> MutableArrayRef< T >
 Deduction guide to construct a MutableArrayRef from a pointer and length.
template<class T>
 MutableArrayRef (SmallVectorImpl< T > &Vec) -> MutableArrayRef< T >
 Deduction guide to construct a MutableArrayRef from a SmallVector.
template<class T, unsigned N>
 MutableArrayRef (SmallVector< T, N > &Vec) -> MutableArrayRef< T >
template<class T>
 MutableArrayRef (std::vector< T > &Vec) -> MutableArrayRef< T >
 Deduction guide to construct a MutableArrayRef from a std::vector.
template<class T, std::size_t N>
 MutableArrayRef (std::array< T, N > &Vec) -> MutableArrayRef< T >
 Deduction guide to construct a MutableArrayRef from a std::array.
template<typename T, size_t N>
 MutableArrayRef (T(&Arr)[N]) -> MutableArrayRef< T >
 Deduction guide to construct a MutableArrayRef from a C array.
ArrayRef Comparison Operators
template<typename T>
bool operator== (ArrayRef< T > LHS, ArrayRef< T > RHS)
template<typename T>
bool operator== (SmallVectorImpl< T > &LHS, ArrayRef< T > RHS)
template<typename T>
bool operator!= (ArrayRef< T > LHS, ArrayRef< T > RHS)
template<typename T>
bool operator!= (SmallVectorImpl< T > &LHS, ArrayRef< T > RHS)
template<typename T>
bool operator< (ArrayRef< T > LHS, ArrayRef< T > RHS)
template<typename T>
bool operator> (ArrayRef< T > LHS, ArrayRef< T > RHS)
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
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)
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().
Twine operator+ (const StringRef &LHS, const char *RHS)
 Additional overload to guarantee simplified codegen; this is equivalent to concat().
raw_ostreamoperator<< (raw_ostream &OS, const Twine &RHS)
LLVM_ABI void describeFuzzerIntOps (std::vector< fuzzerop::OpDescriptor > &Ops)
 Getters for the default sets of operations, per general category.
LLVM_ABI void describeFuzzerFloatOps (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI void describeFuzzerControlFlowOps (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI void describeFuzzerPointerOps (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI void describeFuzzerAggregateOps (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI void describeFuzzerVectorOps (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI void describeFuzzerUnaryOperations (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI void describeFuzzerOtherOps (std::vector< fuzzerop::OpDescriptor > &Ops)
LLVM_ABI TransformationMode hasUnrollTransformation (const Loop *L)
LLVM_ABI TransformationMode hasUnrollAndJamTransformation (const Loop *L)
LLVM_ABI TransformationMode hasVectorizeTransformation (const Loop *L)
LLVM_ABI TransformationMode hasDistributeTransformation (const Loop *L)
LLVM_ABI TransformationMode hasLICMVersioningTransformation (const Loop *L)

Variables

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr unsigned BitWidth
template<typename NodeT>
constexpr bool GraphHasNodeNumbers
 Indicate whether a GraphTraits<NodeT>::getNumber() is supported.
constexpr force_iteration_on_noniterable_enum_t force_iteration_on_noniterable_enum
template<typename T, unsigned N>
class LLVM_GSL_OWNER SmallVector
 Forward declaration of SmallVector so that calculateSmallVectorDefaultInlinedElements can reference sizeof(SmallVector<T, 0>).
template<typename T = void, typename... Ts>
constexpr bool all_types_equal_v = all_types_equal<T, Ts...>::value
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.
template<typename T>
constexpr bool is_incomplete_v = !is_detected<detail::has_sizeof, T>::value
 Detects when type T is incomplete.
constexpr from_range_t from_range {}
constexpr StringRef IgnoreBundleTag = "ignore"
 Tag in operand bundle indicating that this bundle should be ignored.
llvm::cl::opt< boolCheckBFIUnknownBlockQueries
llvm::cl::opt< boolUseIterativeBFIInference
llvm::cl::opt< unsignedIterativeBFIMaxIterationsPerBlock
llvm::cl::opt< double > IterativeBFIPrecision
template class LLVM_TEMPLATE_ABI AllAnalysesOn< LazyCallGraph::SCC >
 Extern template declaration for the analysis set for this IR unit.
template class LLVM_TEMPLATE_ABI AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >
template class LLVM_TEMPLATE_ABI OuterAnalysisManagerProxy< ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph & >
template class LLVM_TEMPLATE_ABI OuterAnalysisManagerProxy< CGSCCAnalysisManager, Function >
template class LLVM_TEMPLATE_ABI GenericDomTreeUpdater< DomTreeUpdater, DominatorTree, PostDominatorTree >
LLVM_ABI const char *const DecisionName = "inlining_decision"
LLVM_ABI const TensorSpec InlineDecisionSpec
LLVM_ABI const char *const DefaultDecisionName = "inlining_default"
LLVM_ABI const TensorSpec DefaultDecisionSpec
LLVM_ABI const char *const RewardName = "delta_size"
LLVM_ABI cl::opt< unsignedDefMaxInstsToScan
 The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue().
template class LLVM_TEMPLATE_ABI AllAnalysesOn< Loop >
 Extern template declaration for the analysis set for this IR unit.
template class LLVM_TEMPLATE_ABI AnalysisManager< Loop, LoopStandardAnalysisResults & >
template class LLVM_TEMPLATE_ABI OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & >
template class LLVM_TEMPLATE_ABI LoopBase< BasicBlock, Loop >
template class LLVM_TEMPLATE_ABI LoopInfoBase< BasicBlock, Loop >
LLVM_ABI bool VerifyLoopInfo = false
 Enable verification of loop info.
LLVM_ABI bool VerifyMemorySSA = false
 Enables verification of MemorySSA.
template<class Tr>
bool RegionInfoBase< Tr >::VerifyRegionInfo = false
template<class Tr>
Tr::RegionT::PrintStyle RegionInfoBase< Tr >::printStyle
LLVM_ABI bool VerifySCEV = false
constexpr unsigned MaxAnalysisRecursionDepth = 6
constexpr unsigned MaxLookupSearchDepth = 10
 The max limit of the search depth in DecomposeGEPExpression() and getUnderlyingObject().
cl::opt< std::string > BBSectionsColdTextPrefix
cl::opt< unsignedPartialUnrollingThreshold
template class LLVM_TEMPLATE_ABI Registry< GCMetadataPrinter >
LLVM_ABI cl::opt< boolDisableGISelLegalityCheck
LLVM_ABI cl::opt< boolUseSegmentSetForPhysRegs
template class LLVM_TEMPLATE_ABI DomTreeNodeBase< MachineBasicBlock >
template class LLVM_TEMPLATE_ABI DominatorTreeBase< MachineBasicBlock, false >
template class LLVM_TEMPLATE_ABI GenericDomTreeUpdater< MachineDomTreeUpdater, MachineDominatorTree, MachinePostDominatorTree >
template class LLVM_TEMPLATE_ABI AnalysisManager< MachineFunction >
template class LLVM_TEMPLATE_ABI LoopBase< MachineBasicBlock, MachineLoop >
template class LLVM_TEMPLATE_ABI LoopInfoBase< MachineBasicBlock, MachineLoop >
template class LLVM_TEMPLATE_ABI OuterAnalysisManagerProxy< ModuleAnalysisManager, MachineFunction >
cl::opt< boolSwpEnableCopyToPhi
cl::opt< int > SwpForceIssueWidth
 A command line argument to force pipeliner to use specified issue width.
static const int DefaultProcResSize = 16
template class LLVM_TEMPLATE_ABI DominatorTreeBase< MachineBasicBlock, true >
LLVM_ABI cl::opt< MISched::DirectionPreRADirection
LLVM_ABI cl::opt< boolVerifyScheduling
cl::opt< boolViewMISchedDAGs
cl::opt< boolPrintDAGs
LLVM_ABI charAtomicExpandID = AtomicExpandLegacy::ID
 AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.
LLVM_ABI charMachineLoopInfoID = MachineLoopInfoWrapperPass::ID
 MachineLoopInfo - This pass is a loop analysis pass.
LLVM_ABI charMachineDominatorsID = MachineDominatorTreeWrapperPass::ID
 MachineDominators - This pass is a machine dominators analysis pass.
LLVM_ABI charMachineDominanceFrontierID = MachineDominanceFrontier::ID
 MachineDominanaceFrontier - This pass is a machine dominators analysis.
LLVM_ABI charMachineRegionInfoPassID
 MachineRegionInfo - This pass computes SESE regions for machine functions.
LLVM_ABI charEdgeBundlesWrapperLegacyID
 EdgeBundles analysis - Bundle machine CFG edges.
LLVM_ABI charLiveVariablesID = LiveVariablesWrapperPass::ID
 LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.
LLVM_ABI charPHIEliminationID = PHIElimination::ID
 PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions.
LLVM_ABI charLiveIntervalsID = LiveIntervalsWrapperPass::ID
 LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.
LLVM_ABI charLiveStacksID = LiveStacksWrapperLegacy::ID
 LiveStacks pass. An analysis keeping track of the liveness of stack slots.
LLVM_ABI charTwoAddressInstructionPassID = TwoAddressInstructionLegacyPass::ID
 TwoAddressInstruction - This pass reduces two-address instructions to use two operands.
LLVM_ABI charProcessImplicitDefsID = ProcessImplicitDefsLegacy::ID
 ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
LLVM_ABI charRegisterCoalescerID = RegisterCoalescerLegacy::ID
 RegisterCoalescer - This pass merges live ranges to eliminate copies.
LLVM_ABI charMachineSchedulerID = MachineSchedulerLegacy::ID
 MachineScheduler - This pass schedules machine instructions.
LLVM_ABI charPostMachineSchedulerID = PostMachineSchedulerLegacy::ID
 PostMachineScheduler - This pass schedules machine instructions postRA.
LLVM_ABI charSpillPlacementID = SpillPlacementWrapperLegacy::ID
 SpillPlacement analysis.
LLVM_ABI charShrinkWrapID = ShrinkWrapLegacy::ID
 ShrinkWrap pass. Look for the best place to insert save and restore.
LLVM_ABI charLiveRangeShrinkID = LiveRangeShrink::ID
 LiveRangeShrink pass.
LLVM_ABI charRAGreedyLegacyID = RAGreedyLegacy::ID
 Greedy register allocator.
LLVM_ABI charRABasicID = RABasic::ID
 Basic register allocator.
LLVM_ABI charVirtRegRewriterID = VirtRegRewriterLegacy::ID
 VirtRegRewriter pass.
LLVM_ABI charUnreachableMachineBlockElimID
 UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.
LLVM_ABI charDeadMachineInstructionElimID = DeadMachineInstructionElim::ID
 DeadMachineInstructionElim - This pass removes dead machine instructions.
LLVM_ABI charDetectDeadLanesID = DetectDeadLanesLegacy::ID
 This pass adds dead/undef flags after analyzing subregister lanes.
LLVM_ABI charPostRAMachineSinkingID = PostRAMachineSinkingLegacy::ID
 This pass perform post-ra machine sink for COPY instructions.
LLVM_ABI charMIRAddFSDiscriminatorsID
 This pass adds flow sensitive discriminators.
LLVM_ABI charMIRProfileLoaderPassID = MIRProfileLoaderPass::ID
 This pass reads flow sensitive profile.
LLVM_ABI charInitUndefID = InitUndefLegacy::ID
LLVM_ABI charPrologEpilogCodeInserterID = PEILegacy::ID
 PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.
LLVM_ABI charExpandPostRAPseudosID = ExpandPostRALegacy::ID
 ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.
LLVM_ABI charPostRAHazardRecognizerID = PostRAHazardRecognizerLegacy::ID
 PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.
LLVM_ABI charPostRASchedulerID = PostRASchedulerLegacy::ID
 PostRAScheduler - This pass performs post register allocation scheduling.
LLVM_ABI charBranchFolderPassID = BranchFolderLegacy::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.
LLVM_ABI charBranchRelaxationPassID = BranchRelaxationLegacy::ID
 BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.
LLVM_ABI charMachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
 MachineFunctionPrinterPass - This pass prints out MachineInstr's.
LLVM_ABI charMIRPrintingPassID = MIRPrintingPass::ID
 MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.
LLVM_ABI charTailDuplicateLegacyID = TailDuplicateLegacy::ID
 TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.
LLVM_ABI charEarlyTailDuplicateLegacyID = EarlyTailDuplicateLegacy::ID
 Duplicate blocks with unconditional branches into tails of their predecessors.
LLVM_ABI charMachineTraceMetricsID = MachineTraceMetricsWrapperPass::ID
 MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.
LLVM_ABI charEarlyIfConverterLegacyID = EarlyIfConverterLegacy::ID
 EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.
LLVM_ABI charEarlyIfPredicatorID = EarlyIfPredicator::ID
 EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point.
LLVM_ABI charMachineCombinerID = MachineCombiner::ID
 This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.
LLVM_ABI charStackColoringLegacyID = StackColoringLegacy::ID
 StackSlotColoring - This pass performs stack coloring and merging.
LLVM_ABI charStackFrameLayoutAnalysisPassID = StackFrameLayoutAnalysisLegacy::ID
 StackFramePrinter - This pass prints the stack frame layout and variable mappings.
LLVM_ABI charIfConverterID = IfConverter::ID
 IfConverter - This pass performs machine code if conversion.
LLVM_ABI charMachineBlockPlacementID = MachineBlockPlacementLegacy::ID
 MachineBlockPlacement - This pass places basic blocks based on branch probabilities.
LLVM_ABI charMachineBlockPlacementStatsID = MachineBlockPlacementStatsLegacy::ID
 MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.
LLVM_ABI charGCLoweringID = LowerIntrinsics::ID
 GCLowering Pass - Used by gc.root to perform its default lowering operations.
LLVM_ABI charShadowStackGCLoweringID = ShadowStackGCLowering::ID
 ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.
LLVM_ABI charGCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
 GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code.
LLVM_ABI charMachineCSELegacyID = MachineCSELegacy::ID
 MachineCSE - This pass performs global CSE on machine instructions.
LLVM_ABI charMIRCanonicalizerID = MIRCanonicalizer::ID
 MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code.
LLVM_ABI charImplicitNullChecksID = ImplicitNullChecks::ID
 ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.
LLVM_ABI charMachineLICMID = MachineLICM::ID
 This pass performs loop invariant code motion on machine instructions.
LLVM_ABI charEarlyMachineLICMID = EarlyMachineLICM::ID
 This pass performs loop invariant code motion on machine instructions.
LLVM_ABI charMachineSinkingLegacyID = MachineSinkingLegacy::ID
 MachineSinking - This pass performs sinking on machine instructions.
LLVM_ABI charMachineCopyPropagationID = MachineCopyPropagationLegacy::ID
 MachineCopyPropagation - This pass performs copy propagation on machine instructions.
LLVM_ABI charMachineLateInstrsCleanupID = MachineLateInstrsCleanupLegacy::ID
 MachineLateInstrsCleanup - This pass removes redundant identical instructions after register allocation and rematerialization.
LLVM_ABI charPeepholeOptimizerLegacyID = PeepholeOptimizerLegacy::ID
 PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.
LLVM_ABI charOptimizePHIsLegacyID = OptimizePHIsLegacy::ID
 OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.
LLVM_ABI charStackSlotColoringID = StackSlotColoringLegacy::ID
 StackSlotColoring - This pass performs stack slot coloring.
LLVM_ABI charFuncletLayoutID = FuncletLayout::ID
 This pass lays out funclets contiguously.
LLVM_ABI charXRayInstrumentationID = XRayInstrumentationLegacy::ID
 This pass inserts the XRay instrumentation sleds if they are supported by the target platform.
LLVM_ABI charFEntryInserterID = FEntryInserterLegacy::ID
 This pass inserts FEntry calls.
LLVM_ABI charPatchableFunctionID = PatchableFunctionLegacy::ID
 This pass implements the "patchable-function" attribute.
LLVM_ABI 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.
LLVM_ABI charFinalizeISelID = FinalizeISel::ID
 This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.
LLVM_ABI charUnpackMachineBundlesID = UnpackMachineBundles::ID
 UnpackMachineBundles - This pass unpack machine instruction bundles.
LLVM_ABI 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.
LLVM_ABI charMachineSanitizerBinaryMetadataID
LLVM_ABI charRemoveLoadsIntoFakeUsesID = RemoveLoadsIntoFakeUsesLegacy::ID
 RemoveLoadsIntoFakeUses pass.
LLVM_ABI charRemoveRedundantDebugValuesID = RemoveRedundantDebugValuesLegacy::ID
 RemoveRedundantDebugValues pass.
LLVM_ABI charMachineCFGPrinterID = MachineCFGPrinter::ID
 MachineCFGPrinter pass.
LLVM_ABI charLiveDebugValuesID = LiveDebugValuesLegacy::ID
 LiveDebugValues pass.
LLVM_ABI charRenameIndependentSubregsID = RenameIndependentSubregsLegacy::ID
 This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers.
LLVM_ABI charMachinePipelinerID = MachinePipeliner::ID
 This pass performs software pipelining on machine instructions.
LLVM_ABI charFixupStatepointCallerSavedID = FixupStatepointCallerSavedLegacy::ID
 The pass fixups statepoint machine instruction to replace usage of caller saved registers with stack slots.
template<class T>
MachinePassRegistry< typename RegisterRegAllocBase< T >::FunctionPassCtorRegisterRegAllocBase< T >::Registry
 RegisterRegAlloc's global Registry tracks allocator registration.
constexpr unsigned InvalidClusterId = ~0u
template<typename IRUnitT>
AnalysisSetKey AllAnalysesOn< IRUnitT >::SetKey
template class LLVM_TEMPLATE_ABI AllAnalysesOn< Module >
template class LLVM_TEMPLATE_ABI AllAnalysesOn< Function >
constexpr StringRef AssumptionAttrKey = "llvm.assume"
 The key we use for assumption attributes.
LLVM_ABI cl::opt< boolEnableFSDiscriminator
template class LLVM_TEMPLATE_ABI DbgRecordParamRef< DIExpression >
template class LLVM_TEMPLATE_ABI DbgRecordParamRef< DILabel >
template class LLVM_TEMPLATE_ABI DbgRecordParamRef< DILocalVariable >
template class LLVM_TEMPLATE_ABI DomTreeNodeBase< BasicBlock >
template class LLVM_TEMPLATE_ABI DominatorTreeBase< BasicBlock, false >
template class LLVM_TEMPLATE_ABI DominatorTreeBase< BasicBlock, true >
LLVM_ABI bool VerifyDomInfo = false
 Enables verification of dominator trees.
template class LLVM_TEMPLATE_ABI Registry< GCStrategy >
constexpr char GlobalIdentifierDelimiter = ';'
constexpr int PoisonMaskElem = -1
constexpr char HybridPatchableTargetSuffixArr [] = "$hp_target"
constexpr std::string_view HybridPatchableTargetSuffix
const uint64_t NOMORE_ICP_MAGICNUM = -1
 Magic number in the value profile metadata showing a target has been promoted for the instruction and shouldn't be promoted again.
template class LLVM_TEMPLATE_ABI PassManager< Module >
template class LLVM_TEMPLATE_ABI PassManager< Function >
template class LLVM_TEMPLATE_ABI AnalysisManager< Module >
template class LLVM_TEMPLATE_ABI AnalysisManager< Function >
template<typename AnalysisManagerT, typename IRUnitT, typename... ExtraArgTs>
LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key
template<typename AnalysisManagerT, typename IRUnitT, typename... ExtraArgTs>
AnalysisKey OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key
template class LLVM_TEMPLATE_ABI OuterAnalysisManagerProxy< ModuleAnalysisManager, Function >
cl::opt< ChangePrinterPrintChanged
LLVM_ABI const charLLVMLoopEstimatedTripCount = "llvm.loop.estimated_trip_count"
 Profile-based loop metadata that should be accessed only by using llvm::getLoopEstimatedTripCount and llvm::setLoopEstimatedTripCount.
constexpr const charPseudoProbeDescMetadataName = "llvm.pseudo_probe_desc"
static constexpr uint64_t PseudoProbeFullDistributionFactor
template class LLVM_TEMPLATE_ABI SymbolTableListTraits< BasicBlock >
template class LLVM_TEMPLATE_ABI SymbolTableListTraits< Function >
template class LLVM_TEMPLATE_ABI SymbolTableListTraits< GlobalAlias >
template class LLVM_TEMPLATE_ABI SymbolTableListTraits< GlobalIFunc >
template class LLVM_TEMPLATE_ABI SymbolTableListTraits< GlobalVariable >
LLVM_ABI cl::opt< boolEnableLTOInternalization
 Enable global value internalization in LTO.
const char AsmRewritePrecedence []
LLVM_ABI 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.
LLVM_ABI bool TimePassesPerRun = false
 If TimePassesPerRun is true, there would be one line of report for each pass invocation.
LLVM_ABI cl::opt< boolPrintPipelinePasses
 Common option used by multiple tools to print pipeline passes.
 FuncHash
 FunctionPointer
FunctionAddr NumCounters
FunctionAddr Int16ArrayTy
FunctionAddr NumValueSites [IPVK_Last+1]
FunctionAddr NumBitmapBytes
FunctionAddr VTableNameHash
FunctionAddr VTablePointer
FunctionAddr VTableAddr Value
FunctionAddr VTableAddr Count
FunctionAddr VTableAddr Next
FunctionAddr VTableAddr CountersDelta
FunctionAddr VTableAddr uintptr_t BitmapDelta
FunctionAddr VTableAddr uintptr_t uintptr_t TargetValue
FunctionAddr VTableAddr uintptr_t uintptr_t Data
FunctionAddr VTableAddr uintptr_t uintptr_t DataSize
FunctionAddr VTableAddr uintptr_t uintptr_t Int32Ty
FunctionAddr VTableAddr uintptr_t uintptr_t NRecords
FunctionAddr VTableAddr uintptr_t uintptr_t FilenamesSize
FunctionAddr VTableAddr uintptr_t uintptr_t CoverageSize
FunctionAddr VTableAddr uintptr_t uintptr_t Version
FunctionAddr VTableAddr uintptr_t uintptr_t WriteoutFunction
 ValueProfRecord
LLVM_ABI cl::opt< boolDoInstrProfNameCompression
LLVM_ABI cl::opt< boolUseContextLessSummary
LLVM_ABI cl::opt< int > ProfileSummaryCutoffHot
LLVM_ABI cl::opt< int > ProfileSummaryCutoffCold
LLVM_ABI cl::opt< unsignedProfileSummaryHugeWorkingSetSizeThreshold
LLVM_ABI cl::opt< unsignedProfileSummaryLargeWorkingSetSizeThreshold
LLVM_ABI cl::opt< uint64_tProfileSummaryHotCount
LLVM_ABI cl::opt< uint64_tProfileSummaryColdCount
template<typename T>
constexpr bool IsNullable
template<typename... Types>
constexpr detail::IsaCheckPredicate< Types... > IsaPred {}
 Function object wrapper for the llvm::isa type check.
template<typename... Types>
constexpr detail::IsaAndPresentCheckPredicate< Types... > IsaAndPresentPred {}
 Function object wrapper for the llvm::isa_and_present type check.
LLVM_ABI bool DebugFlag = false
 This boolean is set to true if the '-debug' command line option is specified.
LLVM_ABI bool EnableDebugBuffering = false
 EnableDebugBuffering - This defaults to false.
static const unsigned BaseDiscriminatorBitWidth = 8
static const unsigned FSDiscriminatorBitWidth = 6
static const unsigned char BitReverseTable256 [256]
 Macro compressed bit reversal table for 256 bits.
LLVM_ABI const float huge_valf = HUGE_VALF
 Use this rather than HUGE_VALF; the latter causes warnings on MSVC.
SourceMgr SrcMgr
unsigned ErrorsPrinted = 0
cl::opt< boolEmitLongStrLiterals
 Controls emitting large character arrays as strings or character arrays.
const unsigned MAX_SUBTARGET_WORDS = 6
const unsigned MAX_SUBTARGET_FEATURES = MAX_SUBTARGET_WORDS * 64
static constexpr unsigned InstCombineDefaultMaxIterations = 1
LLVM_ABI cl::opt< boolDebugInfoCorrelate
constexpr int kSanitizerBinaryMetadataAtomicsBit = 0
constexpr int kSanitizerBinaryMetadataUARBit = 1
constexpr int kSanitizerBinaryMetadataUARHasSizeBit = 2
constexpr uint64_t kSanitizerBinaryMetadataAtomics
constexpr uint64_t kSanitizerBinaryMetadataUAR
constexpr uint64_t kSanitizerBinaryMetadataUARHasSize
constexpr char kSanitizerBinaryMetadataCoveredSection []
constexpr char kSanitizerBinaryMetadataAtomicsSection []
LLVM_ABI unsigned MaxInitializationChainLength
 The value passed to the line option that defines the maximal initialization chain length.
LLVM_ABI cl::opt< int > SampleHotCallSiteThreshold
LLVM_ABI cl::opt< int > SampleColdCallSiteThreshold
LLVM_ABI cl::opt< int > ProfileInlineGrowthLimit
LLVM_ABI cl::opt< int > ProfileInlineLimitMin
LLVM_ABI cl::opt< int > ProfileInlineLimitMax
LLVM_ABI cl::opt< boolSortProfiledSCC
LLVM_ABI charInferAddressSpacesID
cl::opt< unsignedSetLicmMssaOptCap
cl::opt< unsignedSetLicmMssaNoAccForPromotionCap
cl::opt< boolForgetSCEVInLoopUnroll
LLVM_ABI charLowerInvokePassID = LowerInvokeLegacyPass::ID
LLVM_ABI charLowerSwitchID = LowerSwitchLegacyPass::ID
LLVM_ABI charBreakCriticalEdgesID
LLVM_ABI charLCSSAID = LCSSAWrapperPass::ID
LLVM_ABI charLoopSimplifyID = LoopSimplify::ID
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
LLVM_ABI cl::opt< boolEnableKnowledgeRetention
LLVM_ABI cl::opt< boolRequireAndPreserveDomTree
 This function is used to do simplification of a CFG.
cl::opt< boolSampleProfileUseProfi
cl::opt< unsignedSampleProfileMaxPropagateIterations
cl::opt< unsignedSampleProfileRecordCoverage
cl::opt< unsignedSampleProfileSampleCoverage
cl::opt< boolNoWarnSampleUnused
LLVM_ABI cl::opt< unsignedSCEVCheapExpansionBudget
LLVM_ABI cl::opt< boolEnablePGSO
LLVM_ABI cl::opt< boolPGSOLargeWorkingSetSizeOnly
LLVM_ABI cl::opt< boolPGSOColdCodeOnly
LLVM_ABI cl::opt< boolPGSOColdCodeOnlyForInstrPGO
LLVM_ABI cl::opt< boolPGSOColdCodeOnlyForSamplePGO
LLVM_ABI cl::opt< boolPGSOColdCodeOnlyForPartialSamplePGO
LLVM_ABI cl::opt< boolForcePGSO
LLVM_ABI cl::opt< int > PgsoCutoffInstrProf
LLVM_ABI cl::opt< int > PgsoCutoffSampleProf
LLVM_ABI cl::opt< boolEnableLoopInterleaving
LLVM_ABI cl::opt< boolEnableLoopVectorization
cl::opt< std::string > ViewBlockFreqFuncName ("view-bfi-func-name", cl::Hidden, cl::desc("The option to specify " "the name of the function " "whose CFG will be displayed."))
cl::opt< unsignedViewHotFreqPercent ("view-hot-freq-percent", cl::init(10), cl::Hidden, cl::desc("An integer in percent used to specify " "the hot blocks/edges to be displayed " "in red: a block or edge whose frequency " "is no less than the max frequency of the " "function multiplied by this percent."))
cl::opt< PGOViewCountsTypePGOViewCounts ("pgo-view-counts", cl::Hidden, cl::desc("A boolean option to show CFG dag or text with " "block profile counts and branch probabilities " "right after PGO profile annotation step. The " "profile counts are computed using branch " "probabilities from the runtime profile data and " "block frequency propagation algorithm. To view " "the raw counts from the profile, use option " "-pgo-view-raw-counts instead. To limit graph " "display to only one function, use filtering option " "-view-bfi-func-name."), cl::values(clEnumValN(PGOVCT_None, "none", "do not show."), clEnumValN(PGOVCT_Graph, "graph", "show a graph."), clEnumValN(PGOVCT_Text, "text", "show in text.")))
static cl::opt< boolPrintBFI ("print-bfi", cl::init(false), cl::Hidden, cl::desc("Print the block frequency info."))
cl::opt< std::string > PrintBFIFuncName ("print-bfi-func-name", cl::Hidden, cl::desc("The option to specify the name of the function " "whose block frequency info is printed."))
cl::opt< unsignedMaxDevirtIterations ("max-devirt-iterations", cl::ReallyHidden, cl::init(4))
static cl::opt< boolAbortOnMaxDevirtIterationsReached ("abort-on-max-devirt-iterations-reached", cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " "pass is reached"))
template class LLVM_EXPORT_TEMPLATE InnerAnalysisManagerProxy< CGSCCAnalysisManager, Module >
static cl::opt< unsignedBigBasicBlockInstructionThreshold ("big-basic-block-instruction-threshold", cl::Hidden, cl::init(500), cl::desc("The minimum number of instructions a basic block should contain " "before being considered big."))
static cl::opt< unsignedMediumBasicBlockInstructionThreshold ("medium-basic-block-instruction-threshold", cl::Hidden, cl::init(15), cl::desc("The minimum number of instructions a basic block should contain " "before being considered medium-sized."))
static const unsigned heatSize = 100
static const char heatPalette [heatSize][8]
cl::opt< InlinerFunctionImportStatsOptsInlinerFunctionImportStats ("inliner-function-import-stats", cl::init(InlinerFunctionImportStatsOpts::No), cl::values(clEnumValN(InlinerFunctionImportStatsOpts::Basic, "basic", "basic statistics"), clEnumValN(InlinerFunctionImportStatsOpts::Verbose, "verbose", "printing of statistics for each inlined function")), cl::Hidden, cl::desc("Enable inliner stats for imported functions"))
cl::opt< boolDisableBranches ("no-ir-sim-branch-matching", cl::init(false), cl::ReallyHidden, cl::desc("disable similarity matching, and outlining, " "across branches for debugging purposes."))
cl::opt< boolDisableIndirectCalls ("no-ir-sim-indirect-calls", cl::init(false), cl::ReallyHidden, cl::desc("disable outlining indirect calls."))
static cl::opt< boolMatchCallsByName ("ir-sim-calls-by-name", cl::init(false), cl::ReallyHidden, cl::desc("only allow matching call instructions if the " "name and type signature match."))
cl::opt< boolDisableIntrinsics ("no-ir-sim-intrinsics", cl::init(false), cl::ReallyHidden, cl::desc("Don't match or outline intrinsics"))
template class LLVM_EXPORT_TEMPLATE InnerAnalysisManagerProxy< LoopAnalysisManager, Function >
FunctionSummary::ForceSummaryHotnessType ForceSummaryEdgesCold
static std::array< std::string, static_cast< size_t >(TensorType::Total)> TensorTypeNames
cl::OptionCategory GICombinerOptionCategory ("GlobalISel Combiner", "Control the rules which are enabled. These options all take a comma " "separated list of rules to disable and may be specified by number " "or number range (e.g. 1-10)." " They may also be specified by name.")
static cl::opt< GVDAGTypeViewMachineBlockFreqPropagationDAG ("view-machine-block-freq-propagation-dags", cl::Hidden, cl::desc("Pop up a window to show a dag displaying how machine block " "frequencies propagate through the CFG."), cl::values(clEnumValN(GVDT_None, "none", "do not display graphs."), clEnumValN(GVDT_Fraction, "fraction", "display a graph using the " "fractional block frequency representation."), clEnumValN(GVDT_Integer, "integer", "display a graph using the raw " "integer fractional block frequency representation."), clEnumValN(GVDT_Count, "count", "display a graph using the real " "profile count if available.")))
cl::opt< GVDAGTypeViewBlockLayoutWithBFI ("view-block-layout-with-bfi", cl::Hidden, cl::desc("Pop up a window to show a dag displaying MBP layout and associated " "block frequencies of the CFG."), cl::values(clEnumValN(GVDT_None, "none", "do not display graphs."), clEnumValN(GVDT_Fraction, "fraction", "display a graph using the " "fractional block frequency representation."), clEnumValN(GVDT_Integer, "integer", "display a graph using the raw " "integer fractional block frequency representation."), clEnumValN(GVDT_Count, "count", "display a graph using the real " "profile count if available.")))
static cl::opt< boolPrintMachineBlockFreq ("print-machine-bfi", cl::init(false), cl::Hidden, cl::desc("Print the machine block frequency info."))
cl::opt< boolEnableExtTspBlockPlacement
cl::opt< boolApplyExtTspWithoutProfile
cl::opt< unsignedStaticLikelyProb
cl::opt< unsignedProfileLikelyProb
bool VerifyMachineDomInfo = false
template class LLVM_EXPORT_TEMPLATE InnerAnalysisManagerProxy< MachineFunctionAnalysisManager, Module >
template class LLVM_EXPORT_TEMPLATE InnerAnalysisManagerProxy< MachineFunctionAnalysisManager, Function >
static cl::opt< WindowSchedulingFlagWindowSchedulingOption ("window-sched", cl::Hidden, cl::init(WindowSchedulingFlag::WS_On), cl::desc("Set how to use window scheduling algorithm."), cl::values(clEnumValN(WindowSchedulingFlag::WS_Off, "off", "Turn off window algorithm."), clEnumValN(WindowSchedulingFlag::WS_On, "on", "Use window algorithm after SMS algorithm fails."), clEnumValN(WindowSchedulingFlag::WS_Force, "force", "Use window algorithm instead of SMS algorithm.")))
 A command line argument to set the window scheduling option.
static cl::opt< MISched::DirectionPostRADirection ("misched-postra-direction", cl::Hidden, cl::desc("Post reg-alloc list scheduling direction"), cl::init(MISched::Unspecified), cl::values(clEnumValN(MISched::TopDown, "topdown", "Force top-down post reg-alloc list scheduling"), clEnumValN(MISched::BottomUp, "bottomup", "Force bottom-up post reg-alloc list scheduling"), clEnumValN(MISched::Bidirectional, "bidirectional", "Force bidirectional post reg-alloc list scheduling")))
static cl::opt< boolDumpCriticalPathLength ("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout"))
cl::opt< boolMISchedDumpReservedCycles ("misched-dump-reserved-cycles", cl::Hidden, cl::init(false), cl::desc("Dump resource usage at schedule boundary."))
cl::opt< boolMischedDetailResourceBooking ("misched-detail-resource-booking", cl::Hidden, cl::init(false), cl::desc("Show details of invoking getNextResoufceCycle."))
cl::opt< boolImprovedFSDiscriminator ("improved-fs-discriminator", cl::Hidden, cl::init(false), cl::desc("New FS discriminators encoding (incompatible with the original " "encoding)"))
charMIRNamerID = MIRNamer::ID
cl::opt< unsignedEvictInterferenceCutoff
static const int64_t MaxInterferences = 32
static const int64_t CandidateVirtRegPos = MaxInterferences
static const int64_t NumberOfInterferences = CandidateVirtRegPos + 1
static const int ModelMaxSupportedInstructionCount = 300
static const std::vector< int64_t > InstructionsShape
static const std::vector< int64_t > InstructionsMappingShape
static const int64_t ModelMaxSupportedMBBCount = 100
static const std::vector< int64_t > MBBFrequencyShape
static const std::vector< int64_t > PerLiveRangeShape {1}
static const TensorSpec DecisionSpec
static const std::vector< TensorSpecInputFeatures
llvm::cl::opt< llvm::InstrProfCorrelator::ProfCorrelatorKindProfileCorrelate
template class LLVM_EXPORT_TEMPLATE InnerAnalysisManagerProxy< FunctionAnalysisManager, Module >
static cl::opt< bool, true > EnableTiming ("time-passes", cl::location(TimePassesIsEnabled), cl::Hidden, cl::desc("Time each pass, printing elapsed time for each on exit"))
static cl::opt< bool, true > EnableTimingPerRun ("time-passes-per-run", cl::location(TimePassesPerRun), cl::Hidden, cl::desc("Time each pass run, printing elapsed time for each run on exit"), cl::callback([](const bool &) { TimePassesIsEnabled=true;}))
static cl::opt< boolLTOKeepSymbolCopies ("lto-keep-symbol-copies", cl::init(false), cl::Hidden, cl::desc("Keep copies of symbols in LTO indexing"))
cl::opt< boolSupportsHotColdNew
 Indicate we are linking with an allocator that supports hot/cold operator new interfaces.
cl::opt< boolEnableMemProfContextDisambiguation
 Enable MemProf context disambiguation for thin link.
cl::opt< boolNoPGOWarnMismatch
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< boolRemarksWithHotness ("lto-pass-remarks-with-hotness", cl::desc("With PGO, include profile count in optimization remarks"), cl::Hidden)
cl::opt< std::optional< uint64_t >, false, remarks::HotnessThresholdParserRemarksHotnessThreshold ("lto-pass-remarks-hotness-threshold", cl::desc("Minimum profile count required for an " "optimization remark to be output." " Use 'auto' to apply the threshold from profile summary."), cl::value_desc("uint or 'auto'"), cl::init(0), cl::Hidden)
cl::opt< std::string > RemarksFilename ("lto-pass-remarks-output", cl::desc("Output filename for pass remarks"), cl::value_desc("filename"))
cl::opt< std::string > RemarksPasses ("lto-pass-remarks-filter", cl::desc("Only record optimization remarks from passes whose " "names match the given regular expression"), cl::value_desc("regex"))
cl::opt< std::string > RemarksFormat ("lto-pass-remarks-format", cl::desc("The format used for serializing remarks (default: YAML)"), cl::value_desc("format"), cl::init("yaml"))
static cl::opt< std::string > LTOStatsFile ("lto-stats-file", cl::desc("Save statistics to the specified file"), cl::Hidden)
static cl::opt< std::string > AIXSystemAssemblerPath ("lto-aix-system-assembler", cl::desc("Path to a system assembler, picked up on AIX only"), cl::value_desc("path"))
static cl::opt< boolLTORunCSIRInstr ("cs-profile-generate", cl::desc("Perform context sensitive PGO instrumentation"))
static cl::opt< std::string > LTOCSIRProfile ("cs-profile-path", cl::desc("Context sensitive profile file path"))
cl::opt< cl::boolOrDefaultUseLEB128Directives ("use-leb128-directives", cl::Hidden, cl::desc("Disable the usage of LEB128 directives, and generate .byte instead."), cl::init(cl::BOU_UNSET))
cl::opt< unsignedAsmMacroMaxNestingDepth
cl::opt< boolEnableVTableValueProfiling ("enable-vtable-value-profiling", cl::init(false), cl::desc("If true, the virtual table address will be instrumented to know " "the types of a C++ pointer. The information is used in indirect " "call promotion to do selective vtable-based comparison."))
cl::opt< boolEnableVTableProfileUse ("enable-vtable-profile-use", cl::init(false), cl::desc("If ThinLTO and WPD is enabled and this option is true, vtable " "profiles will be used by ICP pass for more efficient indirect " "call sequence. If false, type profiles won't be used."))
static ValueProfRecordClosure InstrProfRecordClosure
int DisableABIBreakingChecks
static constexpr fltSemantics semIEEEhalf = {15, -14, 11, 16}
static constexpr fltSemantics semBFloat = {127, -126, 8, 16}
static constexpr fltSemantics semIEEEsingle = {127, -126, 24, 32}
static constexpr fltSemantics semIEEEdouble = {1023, -1022, 53, 64}
static constexpr fltSemantics semIEEEquad = {16383, -16382, 113, 128}
static constexpr fltSemantics semFloat8E5M2 = {15, -14, 3, 8}
static constexpr fltSemantics semFloat8E5M2FNUZ
static constexpr fltSemantics semFloat8E4M3 = {7, -6, 4, 8}
static constexpr fltSemantics semFloat8E4M3FN
static constexpr fltSemantics semFloat8E4M3FNUZ
static constexpr fltSemantics semFloat8E4M3B11FNUZ
static constexpr fltSemantics semFloat8E3M4 = {3, -2, 5, 8}
static constexpr fltSemantics semFloatTF32 = {127, -126, 11, 19}
static constexpr fltSemantics semFloat8E8M0FNU
static constexpr fltSemantics semFloat6E3M2FN
static constexpr fltSemantics semFloat6E2M3FN
static constexpr fltSemantics semFloat4E2M1FN
static constexpr fltSemantics semX87DoubleExtended = {16383, -16382, 64, 80}
static constexpr fltSemantics semBogus = {0, 0, 0, 0}
static constexpr fltSemantics semPPCDoubleDouble = {-1, 0, 0, 128}
static constexpr fltSemantics semPPCDoubleDoubleLegacy
const unsigned int maxExponent = 16383
const unsigned int maxPrecision = 113
const unsigned int maxPowerOfFiveExponent = maxExponent + maxPrecision - 1
const unsigned int maxPowerOfFiveParts
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::pair< std::string, std::optional< int > > > > CurrentDebugType
 The current debug type and an optional debug level.
static const MachineMemOperand::Flags MOSuppressPair
static const MachineMemOperand::Flags MOStridedAccess
static const unsigned PerfectShuffleTable [6561+1]
charAMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID
charAMDGPUCtorDtorLoweringLegacyPassID
charAMDGPULowerKernelArgumentsID
charAMDGPUPromoteKernelArgumentsID
charAMDGPULowerKernelAttributesID
charAMDGPULowerModuleLDSLegacyPassID = AMDGPULowerModuleLDSLegacy::ID
charAMDGPULowerBufferFatPointersID = AMDGPULowerBufferFatPointers::ID
charAMDGPUPrepareAGPRAllocLegacyID = AMDGPUPrepareAGPRAllocLegacy::ID
charAMDGPUReserveWWMRegsLegacyID
charAMDGPURewriteOutArgumentsID
charGCNDPPCombineLegacyID
charSIFoldOperandsLegacyID
charSIPeepholeSDWALegacyID
charSIShrinkInstructionsLegacyID
charSIFixSGPRCopiesLegacyID = SIFixSGPRCopiesLegacy::ID
charSIFixVGPRCopiesID
charSILowerWWMCopiesLegacyID = SILowerWWMCopiesLegacy::ID
charSILowerI1CopiesLegacyID = SILowerI1CopiesLegacy::ID
charAMDGPUGlobalISelDivergenceLoweringID
charAMDGPURegBankSelectID = AMDGPURegBankSelect::ID
charAMDGPURegBankLegalizeID = AMDGPURegBankLegalize::ID
charAMDGPUMarkLastScratchLoadID = AMDGPUMarkLastScratchLoadLegacy::ID
charSILowerSGPRSpillsLegacyID = SILowerSGPRSpillsLegacy::ID
charSILoadStoreOptimizerLegacyID = SILoadStoreOptimizerLegacy::ID
charSIWholeQuadModeID = SIWholeQuadModeLegacy::ID
charSILowerControlFlowLegacyID = SILowerControlFlowLegacy::ID
charSIPreEmitPeepholeID
charSILateBranchLoweringPassID = SILateBranchLoweringLegacy::ID
charSIOptimizeExecMaskingLegacyID = SIOptimizeExecMaskingLegacy::ID
charSIPreAllocateWWMRegsLegacyID = SIPreAllocateWWMRegsLegacy::ID
charAMDGPUImageIntrinsicOptimizerID
charAMDGPUPerfHintAnalysisLegacyID = AMDGPUPerfHintAnalysisLegacy::ID
charGCNRegPressurePrinterID = GCNRegPressurePrinter::ID
charAMDGPUPreloadKernArgPrologLegacyID
charAMDGPUPreloadKernelArgumentsLegacyID
charAMDGPUPromoteAllocaID = AMDGPUPromoteAlloca::ID
charAMDGPUSwLowerLDSLegacyPassID = AMDGPUSwLowerLDSLegacy::ID
charAMDGPUPrintfRuntimeBindingID = AMDGPUPrintfRuntimeBinding::ID
charAMDGPUResourceUsageAnalysisID
charSIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRALegacy::ID
charSIOptimizeVGPRLiveRangeLegacyID = SIOptimizeVGPRLiveRangeLegacy::ID
charAMDGPUAnnotateUniformValuesLegacyPassID
charAMDGPUCodeGenPrepareID
charAMDGPURemoveIncompatibleFunctionsID
charAMDGPULateCodeGenPrepareLegacyID
charAMDGPURewriteUndefForPHILegacyPassID
charSIAnnotateControlFlowLegacyPassID
charSIMemoryLegalizerID = SIMemoryLegalizerLegacy::ID
charSIModeRegisterID
charAMDGPUInsertDelayAluID = AMDGPUInsertDelayAluLegacy::ID
charAMDGPULowerVGPREncodingLegacyID = AMDGPULowerVGPREncodingLegacy::ID
charSIInsertHardClausesID = SIInsertHardClausesLegacy::ID
charSIInsertWaitcntsID = SIInsertWaitcntsLegacy::ID
charSIFormMemoryClausesID = SIFormMemoryClausesLegacy::ID
charSIPostRABundlerLegacyID
charGCNCreateVOPDID = GCNCreateVOPDLegacy::ID
charAMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID
charAMDGPUExportKernelRuntimeHandlesLegacyID
charGCNNSAReassignID = GCNNSAReassignLegacy::ID
charGCNPreRALongBranchRegID
charGCNPreRAOptimizationsID = GCNPreRAOptimizationsLegacy::ID
charGCNRewritePartialRegUsesID = GCNRewritePartialRegUsesLegacy::ID
charAMDGPUWaitSGPRHazardsLegacyID = AMDGPUWaitSGPRHazardsLegacy::ID
charAMDGPURewriteAGPRCopyMFMALegacyID
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"))
const SubtargetFeatureKV AMDGPUFeatureKV [AMDGPU::NumSubtargetFeatures - 1]
charR600ClauseMergePassID = R600ClauseMergePass::ID
charR600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID
charR600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID
charR600VectorRegMergerID = R600VectorRegMerger::ID
charR600PacketizerID = R600Packetizer::ID
constexpr unsigned DefaultMemoryClusterDWordsLimit = 8
static const MachineMemOperand::Flags MONoClobber
 Mark the MMO of a uniform load if there are no potentially clobbering stores on any path from the start of an entry function to this load.
static const MachineMemOperand::Flags MOLastUse
 Mark the MMO of a load as the last use.
static const MachineMemOperand::Flags MOCooperative
 Mark the MMO of cooperative load/store atomics.
static cl::opt< unsignedArcKillAddrMode ("arc-kill-addr-mode", cl::init(0), cl::ReallyHidden)
cl::opt< boolReuseFrameIndexVals
static const MCPhysReg RegList8AVR []
 Registers for calling conventions, ordered in reverse as required by ABI.
static const MCPhysReg RegList8Tiny []
static const MCPhysReg RegList16AVR []
static const MCPhysReg RegList16Tiny []
const int SIZE_LONG = 4
const int SIZE_WORD = 2
charHexagonCopyHoistingID = HexagonCopyHoisting::ID
charHexagonExpandCondsetsID = HexagonExpandCondsets::ID
charHexagonTfrCleanupID = HexagonTfrCleanup::ID
cl::opt< boolHexagonDisableCompound
cl::opt< boolHexagonDisableDuplex
const InstrStage HexagonStages []
charPPCVSXFMAMutateID = PPCVSXFMAMutate::ID
charPPCLowerMASSVEntriesID = PPCLowerMASSVEntries::ID
charPPCGenScalarMASSEntriesID = PPCGenScalarMASSEntries::ID
static SmallVector< RegisterTargetPassConfigCallback *, 1 > TargetPassConfigCallbacks {}
const SubtargetFeatureKV RISCVFeatureKV [RISCV::NumSubtargetFeatures]
static constexpr std::pair< uint8_t, uint8_tLoadFP32ImmArr []
charRISCVInsertVSETVLIID = RISCVInsertVSETVLI::ID
static const MachineMemOperand::Flags MONontemporalBit0
static const MachineMemOperand::Flags MONontemporalBit1
static const unsigned StandardVectorWidth = 256
static const unsigned PackedVectorWidth = 512
const SubtargetFeatureKV WebAssemblyFeatureKV [WebAssembly::NumSubtargetFeatures]
static const IntrinsicData IntrinsicsWithChain []
static const IntrinsicData IntrinsicsWithoutChain []
static const unsigned CodeModelLargeSize = 256
Target TheXtensaTarget
cl::opt< boolPGOWarnMissing
cl::opt< boolNoPGOWarnMismatchComdatWeak
static cl::opt< boolMemProfRequireDefinitionForPromotion ("memprof-require-definition-for-promotion", cl::init(false), cl::Hidden, cl::desc("Require target function definition when promoting indirect calls"))
static const uint64_t kMinAlignment = 16
static cl::opt< boolPGOWarnMisExpect ("pgo-warn-misexpect", cl::init(false), cl::Hidden, cl::desc("Use this option to turn on/off " "warnings about incorrect usage of llvm.expect intrinsics."))
static cl::opt< uint32_tMisExpectTolerance ("misexpect-tolerance", cl::init(0), cl::desc("Prevents emitting diagnostics when profile counts are " "within N% of the threshold.."))
cl::opt< boolEnableVPlanNativePath
cl::opt< unsignedForceTargetInstructionCost
static cl::opt< boolAlwaysVerify ("sbvec-always-verify", cl::init(false), cl::Hidden, cl::desc("Helps find bugs by verifying the IR whenever we " "emit new instructions (*very* expensive)."))
static constexpr const unsigned long StopAtDisabled
static cl::opt< unsigned long > StopAt ("sbvec-stop-at", cl::init(StopAtDisabled), cl::Hidden, cl::desc("Vectorize if the invocation count is < than this. 0 " "disables vectorization."))
static constexpr const unsigned long StopBundleDisabled
static cl::opt< unsigned long > StopBundle ("sbvec-stop-bndl", cl::init(StopBundleDisabled), cl::Hidden, cl::desc("Vectorize up to this many bundles."))
static cl::opt< unsignedOverrideVecRegBits ("sbvec-vec-reg-bits", cl::init(0), cl::Hidden, cl::desc("Override the vector register size in bits, " "which is otherwise found by querying TTI."))
static cl::opt< boolAllowNonPow2 ("sbvec-allow-non-pow2", cl::init(false), cl::Hidden, cl::desc("Allow non-power-of-2 vectorization."))
cl::opt< std::string > CollectSeeds ("sbvec-collect-seeds", cl::init(StoreSeedsDef), cl::Hidden, cl::desc("Collect these seeds. Use empty for none or a comma-separated " "list of '" StoreSeedsDef "' and '" LoadSeedsDef "'."))
static cl::opt< int > CostThreshold ("sbvec-cost-threshold", cl::init(0), cl::Hidden, cl::desc("Vectorization cost threshold."))
cl::opt< boolVerifyEachVPlan
const char *const LLVMLoopUnrollFollowupAll = "llvm.loop.unroll.followup_all"
const char *const LLVMLoopUnrollFollowupUnrolled
const char *const LLVMLoopUnrollFollowupRemainder

Detailed Description

This is an optimization pass for GlobalISel generic memory operations.

Specializations of GraphTraits that allow VPBlockBase graphs to be treated as proper graphs for generic algorithms;.

---------------------— PointerInfo ------------------------------------—

DXILFinalizeLinkage pass updates the linkage of functions to make sure only shader entry points and exported functions are visible from the module (have program linkage).

Structures necessary for reading CallSiteInfo from YAML.

Calculate a measure of the register allocation policy quality.

The score injection pass.

Defines the TAPI Record Visitor.

This file contains the registry for PassConfigCallbacks that enable changes to the TargetPassConfig during the initialization of TargetMachine.

This file implements support for optimizing divisions by a constant.

The contextual profile is a directed tree where each node has one parent.

Specifically, it focuses on merging stores and loads to consecutive addresses.


The core of the Dwarf linking logic.

The generation of the dwarf information from the object files will be driven by the selection of 'root DIEs', which are DIEs that describe variables or functions that resolves to the corresponding code section(and thus have entries in the Addresses map). All the debug information that will be generated(the DIEs, but also the line tables, ranges, ...) is derived from that set of root DIEs.

The root DIEs are identified because they contain relocations that points to code section(the low_pc for a function, the location for a variable). These relocations are gathered as a very first step when we start processing a object file by AddressesMap.

The overall linking process looks like this:

parrallel_for_each(ObjectFile) { for_each (Compile Unit) {

  1. Load Clang modules. }

parrallel_for_each(Compile Unit) {

  1. Load input DWARF for Compile Unit.
  2. Report warnings for Clang modules.
  3. Analyze live DIEs and type names(if ODR deduplication is requested).
  4. Clone DIEs(Generate output DIEs and resulting DWARF tables). The result is in an OutDebugInfoBytes, which is an ELF file containing DWARF tables corresponding to the current compile unit.
  5. Cleanup Input and Output DIEs. }

Deallocate loaded Object file. }

if (ODR deduplication is requested) Generate an artificial compilation unit ("Type Table": used to partially generate DIEs at the clone stage).

for_each (ObjectFile) { for_each (Compile Unit) {

  1. Set offsets to Compile Units DWARF tables.
  2. Sort offsets/attributes/patches to have a predictable result.
  3. Patch size/offsets fields.
  4. Generate index tables.
  5. Move DWARF tables of compile units into the resulting file. } }

Every compile unit is processed separately, visited only once (except case inter-CU references exist), and used data is freed after the compile unit is processed. The resulting file is glued together from the generated debug tables which correspond to separate compile units.

Handling inter-CU references: inter-CU references are hard to process using only one pass. f.e. if CU1 references CU100 and CU100 references CU1, we could not finish handling of CU1 until we finished CU100. Thus we either need to load all CUs into the memory, either load CUs several times. This implementation loads inter-connected CU into memory at the first pass and processes them at the second pass.

ODR deduplication: Artificial compilation unit will be constructed to keep type dies. All types are moved into that compilation unit. Type's references are patched so that they point to the corresponding types from artificial compilation unit. All partial type definitions would be merged into single type definition.

A node (ContextNode) corresponds to a function activation. The root of the tree is at a function that was marked as entrypoint to the compiler. A node stores counter values for edges and a vector of subcontexts. These are the contexts of callees. The index in the subcontext vector corresponds to the index of the callsite (as was instrumented via llvm.instrprof.callsite). At that index we find a linked list, potentially empty, of ContextNodes. Direct calls will have 0 or 1 values in the linked list, but indirect callsites may have more.

The ContextNode has a fixed sized header describing it - the GUID of the function, the size of the counter and callsite vectors. It is also an (intrusive) linked list for the purposes of the indirect call case above.

Allocation is expected to happen on an Arena. The allocation lays out inline the counter and subcontexts vectors. The class offers APIs to correctly reference the latter.

The layout is as follows:

[[declared fields][counters vector][vector of ptrs to subcontexts]]

See also documentation on the counters and subContexts members below.

The structure of the ContextNode is known to LLVM, because LLVM needs to: (1) increment counts, and (2) form a GEP for the position in the subcontext list of a callsite This means changes to LLVM contextual profile lowering and changes here must be coupled. Note: the header content isn't interesting to LLVM (other than its size)

Part of contextual collection is the notion of "scratch contexts". These are buffers that are "large enough" to allow for memory-safe acceses during counter increments - meaning the counter increment code in LLVM doesn't need to be concerned with memory safety. Their subcontexts never get populated, though. The runtime code here produces and recognizes them.

This pass calculates the score for a function and inserts it in the log, but this happens only in development mode. It's a no-op otherwise.

This is used to construct a reward for the training of the ML-driven allocation policy. Currently, the score is the sum of the machine basic block frequency-weighed number of loads, stores, copies, and remat instructions, each factored with a relative weight.

All other functions will be updated to have internal linkage.

Typedef Documentation

◆ AAAlignmentStateType

Initial value:
Specialization of the integer state for an increasing value, hence ~0u is the best state and 0 the wo...

Definition at line 4317 of file Attributor.h.

◆ AddBufferFn

Initial value:
std::function<void(unsigned Task, const Twine &ModuleName,
std::unique_ptr<MemoryBuffer> MB)>
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Definition Twine.h:82

This type defines the callback to add a pre-existing file (e.g.

in a cache).

Buffer callbacks must be thread safe.

Definition at line 108 of file Caching.h.

◆ AddStreamFn

Initial value:
std::function<Expected<std::unique_ptr<CachedFileStream>>(
unsigned Task, const Twine &ModuleName)>

This type defines the callback to add a file that is generated on the fly.

Stream callbacks must be thread safe.

Definition at line 59 of file Caching.h.

◆ AliasAnalysis

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

Definition at line 721 of file AliasAnalysis.h.

◆ all_types_equal

template<typename T = void, typename... Ts>
using llvm::all_types_equal = std::conjunction<std::is_same<T, Ts>...>

traits class for checking whether type T is same as all other types in Ts.

Definition at line 120 of file STLExtras.h.

◆ AnalysisID

using llvm::AnalysisID = const void *

Definition at line 51 of file Pass.h.

◆ AnchorList

using llvm::AnchorList = std::vector<std::pair<LineLocation, FunctionId>>

Definition at line 22 of file SampleProfileMatcher.h.

◆ AnchorMap

Definition at line 23 of file SampleProfileMatcher.h.

◆ are_base_of

template<typename T, typename... Ts>
using llvm::are_base_of = std::conjunction<std::is_base_of<T, Ts>...>

traits class for checking whether type T is a base class for all the given types in the variadic list.

Definition at line 115 of file STLExtras.h.

◆ ArgAuxType

using llvm::ArgAuxType = std::variant<unsigned, const Init *>

Definition at line 490 of file Record.h.

◆ Assume2KnowledgeMap

A mapping from intrinsics (=llvm.assume calls) to a value range (=knowledge) that is encoded in them.

How the value range is interpreted depends on the RetainedKnowledgeKey that was used to get this out of the RetainedKnowledgeMap.

Definition at line 81 of file AssumeBundleQueries.h.

◆ BBInfoVector

◆ BBOrMBB

Definition at line 30 of file WasmEHFuncInfo.h.

◆ BBSideEffectsSet

Definition at line 112 of file GVNHoist.cpp.

◆ bf_iterator_default_set

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

Definition at line 40 of file BreadthFirstIterator.h.

◆ BFIDOTGTraitsBase

◆ binop_eval_t

Type of functions evaluating a given binary operation.

Definition at line 305 of file FileCheckImpl.h.

◆ BLAKE3Result

template<size_t NumBytes = LLVM_BLAKE3_OUT_LEN>
using llvm::BLAKE3Result = std::array<uint8_t, NumBytes>

The constant LLVM_BLAKE3_OUT_LEN provides the default output length, 32 bytes, which is recommended for most callers.

Outputs shorter than the default length of 32 bytes (256 bits) provide less security. An N-bit BLAKE3 output is intended to provide N bits of first and second preimage resistance and N/2 bits of collision resistance, for any N up to 256. Longer outputs don't provide any additional security.

Shorter BLAKE3 outputs are prefixes of longer ones. Explicitly requesting a short output is equivalent to truncating the default-length output.

Definition at line 35 of file BLAKE3.h.

◆ BlockIdMap

using llvm::BlockIdMap = std::unordered_map<BasicBlock *, uint32_t>

Definition at line 36 of file SampleProfileProbe.h.

◆ BlockSequence

A sequence of basic blocks.

A 0-sized SmallVector is slightly cheaper to move than a std::vector.

Definition at line 34 of file HotColdSplitting.h.

◆ Boolean

Definition at line 132 of file ConvertUTF.h.

◆ BuildFnTy

using llvm::BuildFnTy = std::function<void(MachineIRBuilder &)>

Definition at line 93 of file CombinerHelper.h.

◆ BuildIDRef

A reference to a BuildID in binary form.

Definition at line 29 of file BuildID.h.

◆ BumpPtrAllocator

The standard BumpPtrAllocator which just uses the default template parameters.

Definition at line 383 of file Allocator.h.

◆ BumpPtrList

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

Definition at line 228 of file AllocatorList.h.

◆ CacheCostTy

Definition at line 35 of file LoopCacheAnalysis.h.

◆ CapabilityList

using llvm::CapabilityList = SmallVector<SPIRV::Capability::Capability, 8>

Definition at line 252 of file SPIRVBaseInfo.h.

◆ CCAssignFn

typedef bool llvm::CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, Type *OrigTy, 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 157 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 164 of file CallingConvLower.h.

◆ CFGUpdate

Definition at line 53 of file MemorySSAUpdater.h.

◆ CGSCCAnalysisManager

Initial value:
A container for analyses that lazily runs them and caches their results.

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 123 of file CGSCCPassManager.h.

◆ CGSCCAnalysisManagerFunctionProxy

Initial value:
An analysis over an "inner" IR unit that provides access to an analysis manager over a "outer" IR uni...

A proxy from a CGSCCAnalysisManager to a Function.

Definition at line 414 of file CGSCCPassManager.h.

◆ CGSCCAnalysisManagerModuleProxy

Initial value:
An analysis over an "outer" IR unit that provides access to an analysis manager over an "inner" IR un...

A proxy from a CGSCCAnalysisManager to a Module.

Definition at line 168 of file CGSCCPassManager.h.

◆ CGSCCPassManager

Initial value:
An SCC of the call graph.
A lazily constructed view of the call graph of a module.
Manages a sequence of passes over a particular unit of IR.
AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & > CGSCCAnalysisManager
The CGSCC analysis manager.
Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager...

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 143 of file CGSCCPassManager.h.

◆ CHIArgs

Definition at line 151 of file GVNHoist.cpp.

◆ CHIIt

Definition at line 150 of file GVNHoist.cpp.

◆ ClusterInfo

Keep record of which SUnit are in the same cluster group.

Definition at line 240 of file ScheduleDAG.h.

◆ ColorVector

Definition at line 110 of file EHPersonalities.h.

◆ common_sint

template<typename T, typename U, typename = enableif_int<T, U>>
using llvm::common_sint
Initial value:
std::common_type_t<std::make_signed_t<T>, std::make_signed_t<U>>

Definition at line 40 of file MathExtras.h.

◆ common_uint

template<typename T, typename U, typename = enableif_int<T, U>>
using llvm::common_uint
Initial value:
std::common_type_t<std::make_unsigned_t<T>, std::make_unsigned_t<U>>

Definition at line 37 of file MathExtras.h.

◆ const_gvsummary_iterator

using llvm::const_gvsummary_iterator = GlobalValueSummaryMapTy::const_iterator

Type used for iterating through the global value summary map.

Definition at line 1347 of file ModuleSummaryIndex.h.

◆ const_inst_iterator

Initial value:

Definition at line 122 of file InstIterator.h.

◆ const_inst_range

◆ const_memoryaccess_def_iterator

Initial value:
Iterator base class used to implement const and non-const iterators over the defining accesses of a M...
Definition MemorySSA.h:1133

Definition at line 135 of file MemorySSA.h.

◆ const_pred_iterator

◆ const_pred_range

Definition at line 109 of file CFG.h.

◆ const_succ_iterator

◆ const_succ_range

Definition at line 246 of file CFG.h.

◆ ConstMap

Definition at line 106 of file FunctionSpecialization.h.

◆ ConstMemoryAccessPair

Definition at line 1125 of file MemorySSA.h.

◆ ConstOperandBundleDef

◆ ConvergenceVerifier

◆ Cost

Definition at line 103 of file FunctionSpecialization.h.

◆ CostTblEntry

Definition at line 30 of file CostTable.h.

◆ CreateCmpXchgInstFun

Initial value:
Common base class shared among various IRBuilders.
Definition IRBuilder.h:114
LLVM Value Representation.
Definition Value.h:75
An efficient, type-erasing, non-owning reference to a callable.
AtomicOrdering
Atomic ordering for LLVM's memory model.
This struct is a compact representation of a valid (non-zero power of two) alignment.
Definition Alignment.h:39

Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT ‍/ success, / OUT *‍/ new_loaded, MetadataSrc)

Definition at line 25 of file AtomicExpandUtils.h.

◆ CtxProfContextualProfiles

Initial value:
std::map<GlobalValue::GUID, PGOCtxProfContext>

Definition at line 187 of file PGOCtxProfReader.h.

◆ CtxProfFlatIndirectCallProfile

◆ CtxProfFlatProfile

Initial value:
std::map<GlobalValue::GUID, SmallVector<uint64_t, 1>>

Definition at line 81 of file PGOCtxProfReader.h.

◆ Cycle

Definition at line 24 of file CycleInfo.h.

◆ CycleInfo

Definition at line 23 of file CycleInfo.h.

◆ DataLayoutCallbackFuncTy

typedef std::function<std::optional<std::string>(StringRef, StringRef)> llvm::DataLayoutCallbackFuncTy

Definition at line 46 of file BitcodeReader.h.

◆ DataLayoutCallbackTy

typedef llvm::function_ref< std::optional< std::string >(StringRef, StringRef)> llvm::DataLayoutCallbackTy

Definition at line 35 of file Parser.h.

◆ DbgInstPtr

Definition at line 44 of file DIBuilder.h.

◆ DbgRecordIterator

Definition at line 39 of file ValueMapper.h.

◆ DDGBase

Definition at line 31 of file DDG.h.

◆ DDGDotGraphTraits

◆ DDGEdgeBase

Definition at line 30 of file DDG.h.

◆ DDGInfo

Definition at line 304 of file DDG.h.

◆ DDGNodeBase

Definition at line 29 of file DDG.h.

◆ DebugLocTrackingRef

Definition at line 114 of file DebugLoc.h.

◆ DefaultThreadPool

Definition at line 250 of file ThreadPool.h.

◆ Desc

Definition at line 23 of file DWARFExpressionPrinter.cpp.

◆ DiagnosticHandlerFunction

using llvm::DiagnosticHandlerFunction = std::function<void(const DiagnosticInfo &)>

Definition at line 141 of file DiagnosticInfo.h.

◆ DILineInfoTable

Definition at line 91 of file DIContext.h.

◆ DomTreeBase

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

Definition at line 1020 of file GenericDomTree.h.

◆ DomTreeNode

◆ DWARFAddressRangesVector

DWARFAddressRangesVector - represents a set of absolute address ranges.

Definition at line 90 of file DWARFAddressRange.h.

◆ DWARFLocationExpressionsVector

Represents a set of absolute location expressions.

Definition at line 46 of file DWARFLocationExpression.h.

◆ DWARFRegNum

Definition at line 25 of file DWARFCFIState.h.

◆ enableif_int

template<typename T, typename U>
using llvm::enableif_int
Initial value:
std::enable_if_t<std::is_integral_v<T> && std::is_integral_v<U>>

Some template parameter helpers to optimize for bitwidth, for functions that take multiple arguments.

Definition at line 32 of file MathExtras.h.

◆ EnableIfConvertibleToInputIterator

template<class Iterator>
using llvm::EnableIfConvertibleToInputIterator
Initial value:
std::enable_if_t<std::is_convertible<
typename std::iterator_traits<Iterator>::iterator_category,
std::input_iterator_tag>::value>

Definition at line 41 of file SmallVector.h.

◆ EnvironmentList

using llvm::EnvironmentList = SmallVector<SPIRV::Environment::Environment, 8>

Definition at line 254 of file SPIRVBaseInfo.h.

◆ ExceptionSymbolProvider

typedef MCSymbol * llvm::ExceptionSymbolProvider(AsmPrinter *Asm, const MachineBasicBlock *MBB)

Definition at line 29 of file AsmPrinterHandler.h.

◆ ExtensionList

using llvm::ExtensionList = SmallVector<SPIRV::Extension::Extension, 8>

Definition at line 253 of file SPIRVBaseInfo.h.

◆ fatal_error_handler_t

typedef void(* llvm::fatal_error_handler_t) (void *user_data, const char *reason, bool gen_crash_diag)

An error handler callback.

Definition at line 24 of file ErrorHandling.h.

◆ FileCacheFunction

Initial value:
std::function<Expected<AddStreamFn>(
unsigned Task, StringRef Key, const Twine &ModuleName)>
StringRef - Represent a constant reference to a string, i.e.
Definition StringRef.h:55
LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

This is a callable that manages file caching operations.

It accepts a task ID Task, a unique key Key, and a module name ModuleName, and returns AddStreamFn(). This function determines whether a cache hit or miss occurs and handles the appropriate actions.

Definition at line 66 of file Caching.h.

◆ filter_iterator

template<typename WrappedIteratorT, typename PredicateT>
using llvm::filter_iterator
Initial value:
Specialization of filter_iterator_base for forward iteration only.
Definition STLExtras.h:486
std::conditional_t< std::is_base_of_v< std::bidirectional_iterator_tag, typename std::iterator_traits< IterT >::iterator_category >, std::bidirectional_iterator_tag, std::forward_iterator_tag > fwd_or_bidi_tag
A type alias which is std::bidirectional_iterator_tag if the category of IterT derives from it,...
Definition STLExtras.h:529

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

Definition at line 539 of file STLExtras.h.

◆ FlatIndirectTargets

◆ FloatingPointPredicateUtils

◆ FoldingSetNode

Definition at line 412 of file FoldingSet.h.

◆ ForwardIDFCalculator

Definition at line 55 of file IteratedDominanceFrontier.h.

◆ FuncProbeFactorMap

◆ FunctionAnalysisManager

Convenience typedef for the Function analysis manager.

Definition at line 564 of file PassManager.h.

◆ FunctionAnalysisManagerLoopProxy

◆ FunctionAnalysisManagerModuleProxy

◆ FunctionCreator

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

Definition at line 95 of file ExecutionEngine.h.

◆ FunctionModRefBehavior

Definition at line 302 of file ModRef.h.

◆ FunctionPassManager

Convenience typedef for a pass manager over functions.

Definition at line 248 of file PassManager.h.

◆ FuzzerInitFun

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

Definition at line 46 of file FuzzerCLI.h.

◆ FuzzerTestFun

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

Definition at line 45 of file FuzzerCLI.h.

◆ GCMetadataPrinterRegistry

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

Definition at line 35 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, you must also register your GCMetadataPrinter subclass with the GCMetadataPrinterRegistery as well.

Definition at line 144 of file GCStrategy.h.

◆ gep_type_iterator

◆ GetContainedTypeIDTy

Definition at line 50 of file BitcodeReader.h.

◆ GetTypeByIDTy

typedef std::function< Type *(unsigned)> llvm::GetTypeByIDTy

Definition at line 48 of file BitcodeReader.h.

◆ GlobalCtorTransformFn

Apply 'Fn' to the list of global ctors of module M and replace contructor record with the one returned by Fn.

If nullptr was returned, the corresponding constructor will be removed from the array. For details see https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable

Definition at line 53 of file ModuleUtils.h.

◆ GlobalValueSummaryList

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

Definition at line 140 of file ModuleSummaryIndex.h.

◆ GlobalValueSummaryMapTy

Initial value:
std::map<GlobalValue::GUID, GlobalValueSummaryInfo>

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 179 of file ModuleSummaryIndex.h.

◆ gvsummary_iterator

using llvm::gvsummary_iterator = GlobalValueSummaryMapTy::iterator

Definition at line 1348 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 1356 of file ModuleSummaryIndex.h.

◆ GVSummaryPtrSet

using llvm::GVSummaryPtrSet = std::unordered_set<GlobalValueSummary *>

A set of global value summary pointers.

Definition at line 1364 of file ModuleSummaryIndex.h.

◆ HashNodeIdMapTy

◆ HoistingPointInfo

Definition at line 118 of file GVNHoist.cpp.

◆ HoistingPointList

Definition at line 120 of file GVNHoist.cpp.

◆ HTTPContentProvider

typedef std::function<StringRef(size_t , size_t )> llvm::HTTPContentProvider

An HTTPContentProvider is called by the HTTPServer to obtain chunks of the streaming response body.

The returned chunk should be located at Offset bytes and have Length bytes.

Definition at line 80 of file HTTPServer.h.

◆ HTTPRequestHandler

typedef std::function<void(HTTPServerRequest &)> llvm::HTTPRequestHandler

Definition at line 74 of file HTTPServer.h.

◆ IdHashNodeMapTy

◆ IdHashNodeStableMapTy

Definition at line 32 of file OutlinedHashTreeRecord.h.

◆ IdxMBBPair

Definition at line 293 of file SlotIndexes.h.

◆ IgnoreOperandFunc

A function that takes an instruction and an operand index and returns true if the operand should be ignored in the function hash computation.

Definition at line 56 of file StructuralHash.h.

◆ ilist

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

Definition at line 344 of file ilist.h.

◆ IndexInstrMap

A map from an instruction index to an instruction pointer.

Definition at line 49 of file StructuralHash.h.

◆ IndexOperandHashMapType

A map from an IndexPair to a stable hash.

Definition at line 52 of file StructuralHash.h.

◆ IndexOperandHashVecType

◆ IndexPair

using llvm::IndexPair = std::pair<unsigned, unsigned>

The pair of an instruction index and a operand index.

Definition at line 46 of file StructuralHash.h.

◆ IndexPairHash

Definition at line 29 of file StableFunctionMap.h.

◆ InlineCostFeatures

Initial value:

Definition at line 79 of file InlineModelFeatureMaps.h.

◆ InlineFeatures

using llvm::InlineFeatures = std::vector<int64_t>

Definition at line 169 of file InlineModelFeatureMaps.h.

◆ InlineSite

using llvm::InlineSite = std::tuple<uint64_t, uint32_t>

Definition at line 102 of file MCPseudoProbe.h.

◆ InsnRange

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

Definition at line 39 of file LexicalScopes.h.

◆ inst_iterator

Initial value:
InstListType::iterator iterator
Instruction iterators...
Definition BasicBlock.h:170
BasicBlockListType::iterator iterator
Definition Function.h:69

Definition at line 119 of file InstIterator.h.

◆ inst_range

Definition at line 126 of file InstIterator.h.

◆ InstrGRegsMap

using llvm::InstrGRegsMap = std::map<SmallVector<size_t>, unsigned>

Definition at line 214 of file SPIRVModuleAnalysis.h.

◆ InstrSignature

Definition at line 212 of file SPIRVModuleAnalysis.h.

◆ InstrTraces

using llvm::InstrTraces = std::set<InstrSignature>

Definition at line 213 of file SPIRVModuleAnalysis.h.

◆ InstructionIdMap

using llvm::InstructionIdMap = std::unordered_map<Instruction *, uint32_t>

Definition at line 37 of file SampleProfileProbe.h.

◆ InValuesType

◆ is_detected

template<template< class... > class Op, class... Args>
using llvm::is_detected = typename detail::detector<void, Op, Args...>::value_t

Detects if a given trait holds for some set of arguments 'Args'.

For example, the given trait could be used to detect if a given type has a copy assignment operator: template<class T> using has_copy_assign_t = decltype(std::declval<T&>() = std::declval<const T&>()); bool fooHasCopyAssign = is_detected<has_copy_assign_t, FooClass>::value;

Definition at line 70 of file STLForwardCompat.h.

◆ is_one_of

template<typename T, typename... Ts>
using llvm::is_one_of = std::disjunction<std::is_same<T, Ts>...>

traits class for checking whether type T is one of any of the given types in the variadic list.

Definition at line 110 of file STLExtras.h.

◆ JITTargetAddress

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

Definition at line 43 of file JITSymbol.h.

◆ LargestSDNode

Initial value:
This is an SDNode representing atomic operations.
This SDNode is used for PSEUDO_PROBE values, which are the function guid and the index of the basic b...
Completely target-dependent object reference.
A suitably aligned and sized character array member which can hold elements of any type.
Definition AlignOf.h:22

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 3286 of file SelectionDAGNodes.h.

◆ LegalityPredicate

using llvm::LegalityPredicate = std::function<bool (const LegalityQuery &)>

Definition at line 199 of file LegalizerInfo.h.

◆ LegalizeMutation

Initial value:
std::function<std::pair<unsigned, LLT>(const LegalityQuery &)>
The LegalityQuery object bundles together all the information that's needed to decide whether a given...

Definition at line 200 of file LegalizerInfo.h.

◆ LiveVirtRegBitSet

Definition at line 35 of file LiveIntervalUnion.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

◆ 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 181 of file LoopPassManager.h.

◆ LoopToScevMapT

◆ LoopVectorTy

Definition at line 36 of file LoopCacheAnalysis.h.

◆ MachineBasicBlockComparator

◆ MachineConvergenceVerifier

◆ MachineCycle

◆ MachineCycleInfo

◆ MachineDomTreeNode

◆ MachineFloatingPointPredicateUtils

◆ MachineFunctionAnalysisManager

◆ MachineFunctionAnalysisManagerFunctionProxy

◆ MachineFunctionAnalysisManagerModuleProxy

◆ MachineFunctionPassManager

Convenience typedef for a pass manager over functions.

Definition at line 231 of file MachinePassManager.h.

◆ MachineSSAContext

◆ MachineUniformityInfo

◆ MacroFusionPredTy

Initial value:
bool (*)(const TargetInstrInfo &TII,
const TargetSubtargetInfo &STI,
const MachineInstr *FirstMI,
const MachineInstr &SecondMI)
const HexagonInstrInfo * TII
Representation of each machine instruction.
TargetInstrInfo - Interface to description of machine instruction set.
TargetSubtargetInfo - Generic base class for all target subtargets.

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 33 of file MacroFusion.h.

◆ MBBOrBasicBlock

◆ MBFIDOTGraphTraitsBase

Initial value:

Definition at line 114 of file MachineBlockFrequencyInfo.cpp.

◆ MCAsmMacroParameters

Definition at line 134 of file MCAsmMacro.h.

◆ MCFixupKind

Extensible enumeration to represent the type of a fixup.

Definition at line 22 of file MCFixup.h.

◆ MCLOHArgs

◆ MCLOHDirectives

◆ MCPhysReg

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

Definition at line 21 of file MCRegister.h.

◆ MCPseudoProbeFrameLocation

Definition at line 187 of file MCPseudoProbe.h.

◆ MCPseudoProbeInlineStack

Definition at line 103 of file MCPseudoProbe.h.

◆ MCRegUnit

Register units are used to compute register aliasing.

Every register has at least one register unit, but it can have more. Two registers overlap if and only if they have a common register unit.

A target with a complicated sub-register structure will typically have many fewer register units than actual registers. MCRI::getNumRegUnits() returns the number of register units in the target.

Definition at line 30 of file MCRegister.h.

◆ MCSectionSubPair

using llvm::MCSectionSubPair = std::pair<MCSection *, uint32_t>

Definition at line 66 of file MCStreamer.h.

◆ MCSymbolTableEntry

MCContext stores MCSymbolTableValue in a string map (see MCSymbol::operator new).

To avoid redundant storage of the name, MCSymbol stores a pointer (8 bytes – half the size of a StringRef) to the entry to access it.

Definition at line 41 of file MCSymbolTableEntry.h.

◆ MDTypeCallbackTy

Definition at line 58 of file BitcodeReader.h.

◆ memoryaccess_def_iterator

◆ MemoryAccessPair

Definition at line 1124 of file MemorySSA.h.

◆ MemoryEffects

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.

Definition at line 296 of file ModRef.h.

◆ MemProfCallStackHashTable

Initial value:

Definition at line 600 of file InstrProfReader.h.

◆ MemProfFrameHashTable

◆ MemProfRecordHashTable

◆ MetadataPredicate

using llvm::MetadataPredicate = std::function<bool(const Metadata *)>

Definition at line 41 of file ValueMapper.h.

◆ MetadataSetTy

Definition at line 40 of file ValueMapper.h.

◆ ModuleAnalysisManager

Convenience typedef for the Module analysis manager.

Definition at line 39 of file MIRParser.h.

◆ ModuleAnalysisManagerCGSCCProxy

Initial value:
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
Definition MIRParser.h:39

A proxy from a ModuleAnalysisManager to an SCC.

Definition at line 214 of file CGSCCPassManager.h.

◆ ModuleAnalysisManagerFunctionProxy

◆ ModuleAnalysisManagerMachineFunctionProxy

◆ ModuleHash

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

160 bits SHA1

Definition at line 1344 of file ModuleSummaryIndex.h.

◆ ModulePassManager

Convenience typedef for a pass manager over modules.

Definition at line 239 of file PassManager.h.

◆ ModulePathStringTableTy

String table to hold/own module path strings, as well as a hash of the module.

The StringMap makes a copy of and owns inserted strings.

Definition at line 1352 of file ModuleSummaryIndex.h.

◆ ModuleToSummariesForIndexTy

Initial value:
std::map<std::string, GVSummaryMapTy, std::less<>>

Map of a module name to the GUIDs and summaries we will import from that module.

Definition at line 1360 of file ModuleSummaryIndex.h.

◆ MostAlignedSDNode

The SDNode class with the greatest alignment requirement.

Definition at line 3292 of file SelectionDAGNodes.h.

◆ Name2RegBankMap

Definition at line 52 of file MIParser.h.

◆ Name2RegClassMap

Definition at line 51 of file MIParser.h.

◆ NewLoopsMap

Definition at line 41 of file UnrollLoop.h.

◆ NfaPath

Definition at line 39 of file Automaton.h.

◆ NormalizePredTy

◆ OffsetsStringPool

◆ OnDiskHashTableImplV3

◆ Op

◆ OperandBuildSteps

Initial value:
SmallVector<std::function<void(MachineInstrBuilder &)>, 4>
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

Definition at line 95 of file CombinerHelper.h.

◆ OperandBundleDef

Definition at line 34 of file AutoUpgrade.h.

◆ OperandVector

Definition at line 34 of file MCTargetAsmParser.h.

◆ OutValuesType

Definition at line 152 of file GVNHoist.cpp.

◆ ParamLoadedValue

Definition at line 73 of file TargetInstrInfo.h.

◆ ParamLocs

Definition at line 43 of file GlobalMergeFunctions.h.

◆ ParamLocsVecTy

Definition at line 45 of file GlobalMergeFunctions.h.

◆ ParamSet

Collection used for storing debug call site parameters.

Definition at line 332 of file DwarfDebug.h.

◆ PassConfigCallback

Initial value:
std::function<void(TargetMachine &, PassManagerBase &, TargetPassConfig *)>
Primary interface to the complete machine description for the target machine.
Target-Independent Code Generator Pass Configuration Options.
PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...

Definition at line 22 of file RegisterTargetPassConfigCallback.h.

◆ PBQPRAGraph

◆ PhiToDefMap

Definition at line 52 of file MemorySSAUpdater.h.

◆ PointerTy

using llvm::PointerTy = void *

Definition at line 21 of file GenericValue.h.

◆ PointTypeIsValid

template<typename T>
using llvm::PointTypeIsValid = std::bool_constant<std::is_fundamental<T>::value>

Definition at line 240 of file IntervalTree.h.

◆ PostDomTreeBase

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

Definition at line 1023 of file GenericDomTree.h.

◆ PostIncLoopSet

Definition at line 49 of file ScalarEvolutionNormalization.h.

◆ PotentialConstantIntValuesState

◆ PotentialLLVMValuesState

◆ pred_iterator

◆ pred_range

Definition at line 108 of file CFG.h.

◆ ProbeFactorMap

Initial value:
std::unordered_map<std::pair<uint64_t, uint64_t>, float,

Definition at line 40 of file SampleProfileProbe.h.

◆ ProfileCount

◆ RandomEngine

using llvm::RandomEngine = std::mt19937

Definition at line 36 of file RandomIRBuilder.h.

◆ raw_pointer_iterator

template<typename WrappedIteratorT, typename T1 = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>, typename T2 = std::add_pointer_t<T1>>
using llvm::raw_pointer_iterator

◆ RawInstrProfReader32

◆ RawInstrProfReader64

◆ ReferenceGroupsTy

◆ ReferenceGroupTy

using llvm::ReferenceGroupTy = SmallVector<std::unique_ptr<IndexedReference>, 8>

A reference group represents a set of memory references that exhibit temporal or spacial reuse.

Two references belong to the same reference group with respect to a inner loop L iff:

  1. they have a loop independent dependency, or
  2. they have a loop carried dependence with a small dependence distance (e.g. less than 2) carried by the inner loop, or
  3. they refer to the same array, and the subscript in their innermost dimension is less than or equal to 'd' (where 'd' is less than the cache line size)

Intuitively a reference group represents memory references that access the same cache line. Conditions 1,2 above account for temporal reuse, while contition 3 accounts for spacial reuse.

Definition at line 172 of file LoopCacheAnalysis.h.

◆ RegAllocFilterFunc

Filter function for register classes during regalloc.

Default register class filter is nullptr, where all registers should be allocated.

Definition at line 25 of file RegAllocCommon.h.

◆ RegClassOrRegBank

Initial value:
A discriminated union of two or more pointer types, with the discriminator in the low bit of the poin...

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

Definition at line 47 of file MachineRegisterInfo.h.

◆ RegionBoundaries

Initial value:
std::pair<MachineBasicBlock::iterator, MachineBasicBlock::iterator>

A region's boundaries i.e.

a pair of instruction bundle iterators. The lower boundary is inclusive, the upper boundary is exclusive.

Definition at line 221 of file GCNSchedStrategy.h.

◆ RegUnit2SUnitsMap

Initial value:
Fast multiset implementation for objects that can be identified by small unsigned keys.

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 92 of file ScheduleDAGInstrs.h.

◆ RelocAddrMap

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 35 of file DWARFRelocMap.h.

◆ RequireAnalysisLoopPass

template<typename AnalysisT>
using llvm::RequireAnalysisLoopPass
Initial value:
This class provides an interface for updating the loop pass manager based on mutations to the loop ne...
Represents a single loop in the control flow graph.
Definition LoopInfo.h:40
AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
The loop analysis manager.
The adaptor from a function pass to a loop pass computes these analyses and makes them available to t...
A utility pass template to force an analysis result to be available.

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

Definition at line 207 of file LoopPassManager.h.

◆ RetainedKnowledgeKey

The map Key contains the Value on for which the attribute is valid and the Attribute that is valid for that value.

If the Attribute is not on any value, the Value is nullptr.

Definition at line 70 of file AssumeBundleQueries.h.

◆ RetainedKnowledgeMap

◆ ReverseIDFCalculator

Definition at line 56 of file IteratedDominanceFrontier.h.

◆ RISCVCCAssignFn

typedef bool llvm::RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsRet, Type *OrigTy)

RISCVCCAssignFn - This target-specific function extends the default CCValAssign with additional information used to lower RISC-V calling conventions.

Definition at line 21 of file RISCVCallingConv.h.

◆ RTDyldSymbolTable

◆ RuntimePointerCheck

A memcheck which made up of a pair of grouped pointers.

Definition at line 488 of file LoopAccessAnalysis.h.

◆ ScopedCommonHandle

◆ ScopedCryptContext

◆ ScopedFileHandle

◆ ScopedFindHandle

◆ ScopedJobHandle

◆ ScopedRegHandle

Definition at line 185 of file WindowsSupport.h.

◆ SDNodeTSFlags

Definition at line 58 of file SDNodeInfo.h.

◆ SectionSymbolsTy

using llvm::SectionSymbolsTy = std::vector<SymbolInfoTy>

Definition at line 75 of file MCDisassembler.h.

◆ SmallInstListTy

Definition at line 582 of file Utils.h.

◆ SmallVecImplInsn

Definition at line 114 of file GVNHoist.cpp.

◆ SmallVecInsn

Definition at line 113 of file GVNHoist.cpp.

◆ SmallVectorSizeType

template<class T>
using llvm::SmallVectorSizeType
Initial value:
std::conditional_t<sizeof(T) < 4 && sizeof(void *) >= 8, uint64_t,
#define T

Definition at line 106 of file SmallVector.h.

◆ SmallVirtRegSet

Definition at line 36 of file RegAllocEvictionAdvisor.h.

◆ SMTExprRef

Shared pointer for SMTExprs, used by SMTSolver API.

Definition at line 149 of file SMTAPI.h.

◆ SMTSolverRef

using llvm::SMTSolverRef = std::shared_ptr<SMTSolver>

Shared pointer for SMTSolvers.

Definition at line 468 of file SMTAPI.h.

◆ SMTSortRef

Shared pointer for SMTSorts, used by SMTSolver API.

Definition at line 100 of file SMTAPI.h.

◆ SpecMap

using llvm::SpecMap = DenseMap<Function *, std::pair<unsigned, unsigned>>

Definition at line 100 of file FunctionSpecialization.h.

◆ SPIRVType

Definition at line 28 of file SPIRVGlobalRegistry.h.

◆ SSAContext

◆ stable_hash

An opaque object representing a stable hash code.

It can be serialized, deserialized, and is stable across processes and executions.

Definition at line 28 of file StableHashing.h.

◆ stack_float_t

using llvm::stack_float_t = float

Type to force float point values onto the stack, so that x86 doesn't add hidden precision, avoiding rounding differences on various platforms.

Definition at line 797 of file MathExtras.h.

◆ Statistic

Definition at line 162 of file Statistic.h.

◆ StructOffsetDecorator

using llvm::StructOffsetDecorator = std::function<void(Register)>

Definition at line 29 of file SPIRVGlobalRegistry.h.

◆ succ_iterator

Definition at line 243 of file CFG.h.

◆ succ_range

Definition at line 245 of file CFG.h.

◆ SummaryEntryVector

Definition at line 44 of file ProfileSummary.h.

◆ TableGenMainFn

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

Returns true on error, false otherwise.

Definition at line 26 of file Main.h.

◆ TagNameMap

Definition at line 25 of file ELFAttributes.h.

◆ TargetFlagsType

Holds target-specific properties for a symbol.

Definition at line 36 of file RuntimeDyldChecker.h.

◆ TrackingMDNodeRef

◆ TrackingValueAsMetadataRef

◆ TTI

◆ TUVectorTy

Definition at line 402 of file AccelTable.h.

◆ TypeAtIndex

template<size_t I, typename... Ts>
using llvm::TypeAtIndex = std::tuple_element_t<I, std::tuple<Ts...>>

Find the type at a given index in a list of types.

TypeAtIndex<I, Ts...> is the type at index I in Ts.

Definition at line 159 of file STLExtras.h.

◆ TypeConversionCostTblEntry

◆ TypeGetter

using llvm::TypeGetter = std::function<Type *(LLVMContext &)>

Definition at line 61 of file IRMutator.h.

◆ TypeIdCompatibleVtableInfo

List of vtable definitions decorated by a particular type identifier, and their corresponding offsets in that type identifier's metadata.

Note that each type identifier may be compatible with multiple vtables, due to inheritance, which is why this is a vector.

Definition at line 1392 of file ModuleSummaryIndex.h.

◆ TypeIdSummaryMapTy

Initial value:
std::multimap<GlobalValue::GUID, std::pair<StringRef, TypeIdSummary>>

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

Definition at line 1368 of file ModuleSummaryIndex.h.

◆ uint24_t

Definition at line 34 of file DataExtractor.h.

◆ UnderlyingObjectsVector

◆ UniformityInfo

◆ unique_value

using llvm::unique_value = 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 898 of file Value.h.

◆ UniquingStringPool

◆ UseListOrderStack

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

Definition at line 39 of file UseListOrder.h.

◆ UTF16

typedef unsigned short llvm::UTF16

Definition at line 130 of file ConvertUTF.h.

◆ UTF32

typedef unsigned int llvm::UTF32

Definition at line 129 of file ConvertUTF.h.

◆ UTF8

Definition at line 131 of file ConvertUTF.h.

◆ Value2VPValueTy

Definition at line 190 of file VPlanValue.h.

◆ ValueName

Definition at line 56 of file Value.h.

◆ ValuePlaneTy

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

Definition at line 54 of file Interpreter.h.

◆ ValueProfData

typedef struct llvm::ValueProfData llvm::ValueProfData

Per-function header/control data structure for value profiling data in indexed format.

◆ ValueProfRecordClosure

typedef struct llvm::ValueProfRecordClosure llvm::ValueProfRecordClosure

◆ ValueToSCEVMapTy

◆ ValueToValueMap

Definition at line 901 of file ScalarEvolutionExpressions.h.

◆ ValueToValueMapTy

◆ ValueType

◆ ValueTypeCallbackTy

Definition at line 54 of file BitcodeReader.h.

◆ ValueTypeFromRangeType

template<typename RangeType>
using llvm::ValueTypeFromRangeType
Initial value:
std::remove_const_t<std::remove_reference_t<decltype(*std::begin(
std::declval<RangeType &>()))>>

Definition at line 1292 of file SmallVector.h.

◆ ValueTypeIsValid

template<typename T>
using llvm::ValueTypeIsValid
Initial value:
std::bool_constant<std::is_fundamental<T>::value ||
std::is_pointer<T>::value>

Definition at line 243 of file IntervalTree.h.

◆ VarID

using llvm::VarID
Initial value:
std::tuple<const DIScope *, const DIScope *, const DILocalVariable *>

A unique key that represents a debug variable.

First const DIScope *: Represents the scope of the debug variable. Second const DIScope *: Represents the InlinedAt scope of the debug variable. const DILocalVariable *: It is a pointer to the debug variable itself.

Definition at line 36 of file DroppedVariableStats.h.

◆ VNtoInsns

Definition at line 125 of file GVNHoist.cpp.

◆ VNType

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

Definition at line 123 of file GVNHoist.cpp.

◆ VPDomTreeNode

◆ VPlanPtr

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

Definition at line 77 of file VPlan.h.

◆ VPValue2ValueTy

Definition at line 191 of file VPlanValue.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 98 of file ScheduleDAGInstrs.h.

◆ VReg2SUnitOperIdxMultiMap

◆ VTableFuncList

using llvm::VTableFuncList = std::vector<VirtFuncOffset>

List of functions referenced by a particular vtable definition.

Definition at line 1116 of file ModuleSummaryIndex.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SM_SentinelUndef 
SM_SentinelZero 

Definition at line 28 of file X86ShuffleDecode.h.

◆ anonymous enum

anonymous enum
Enumerator
kSanitizerStatKindBits 

Definition at line 23 of file SanitizerStats.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 26 of file Demangle.h.

◆ anonymous enum

anonymous enum
Enumerator
FirstLiteralRelocationKind 
FK_NONE 

A no-op fixup.

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_Data_leb128 

A leb128 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.

FirstTargetFixupKind 

Definition at line 23 of file MCFixup.h.

◆ anonymous enum

anonymous enum : uintptr_t
Enumerator
InvalidVN 

Definition at line 158 of file GVNHoist.cpp.

◆ anonymous enum

anonymous enum : unsigned
Enumerator
INVALID_MEMORYACCESS_ID 

Definition at line 127 of file MemorySSA.h.

◆ anonymous enum

anonymous enum
Enumerator
GICXXPred_Invalid 
GICXXCustomAction_Invalid 

Definition at line 56 of file GIMatchTableExecutor.h.

◆ anonymous enum

anonymous enum

The MatchTable is encoded as an array of bytes.

Thus, opcodes are expected to be <255.

Operands can be variable-sized, their size is always after their name in the docs, e.g. "Foo(4)" means that "Foo" takes 4 entries in the table, so 4 bytes. "Foo()"

As a general rule of thumb:

  • Instruction & Operand IDs are ULEB128
  • LLT IDs are 1 byte
  • Predicates and target opcodes, register and register class IDs are 2 bytes.
  • Indexes into the table are 4 bytes.
  • Inline constants are 8 bytes

Design notes:

  • Inst/Op IDs have to be LEB128 because some targets generate extremely long patterns which need more than 255 temporaries. We could just use 2 bytes everytime, but then some targets like X86/AMDGPU that have no need for it will pay the price all the time.
Enumerator
GIM_Try 

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

  • OnFail(4) - 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(ULEB128) - Instruction ID
  • LowerBound(2) - numerically minimum opcode supported
  • UpperBound(2) - numerically maximum + 1 opcode supported
  • Default(4) - failure jump target
  • JumpTable(4)... - (UpperBound - LowerBound) (at least 2) jump targets
GIM_SwitchType 

Switch over the LLT on the specified instruction operand.

GIM_RecordInsn 

Record the specified instruction.

The IgnoreCopies variant ignores COPY instructions.

GIM_RecordInsnIgnoreCopies 
GIM_CheckFeatures 

Check the feature bits Feature(2) - Expected features.

GIM_CheckOpcode 

Check the opcode on the specified instruction.

GIM_CheckOpcodeIsEither 

Check the opcode on the specified instruction, checking 2 acceptable alternatives.

GIM_CheckNumOperands 

Check the instruction has the right number of operands.

GIM_CheckNumOperandsLE 

Check the instruction has a number of operands <= or >= than given number.

GIM_CheckNumOperandsGE 
GIM_CheckI64ImmPredicate 

Check an immediate predicate on the specified instruction.

  • InsnID(ULEB128) - Instruction ID
  • Pred(2) - The predicate to test
GIM_CheckAPIntImmPredicate 

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

  • InsnID(ULEB128) - Instruction ID
  • Pred(2) - The predicate to test
GIM_CheckAPFloatImmPredicate 

Check a floating point immediate predicate on the specified instruction.

  • InsnID(ULEB128) - Instruction ID
  • Pred(2) - The predicate to test
GIM_CheckImmOperandPredicate 

Check an immediate predicate on the specified instruction.

GIM_CheckLeafOperandPredicate 

Check a leaf predicate on the specified instruction.

GIM_CheckAtomicOrdering 

Check a memory operation has the specified atomic ordering.

GIM_CheckAtomicOrderingOrStrongerThan 
GIM_CheckAtomicOrderingWeakerThan 
GIM_CheckMemorySizeEqualTo 

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

  • InsnID(ULEB128) - Instruction ID
  • MMOIdx(ULEB128) - MMO index
  • Size(4) - The size in bytes of the memory access
GIM_CheckMemoryAddressSpace 

Check the address space of the memory access for the given machine memory operand.

  • InsnID(ULEB128) - Instruction ID
  • MMOIdx(ULEB128) - MMO index
  • NumAddrSpace(1) - Number of valid address spaces
  • AddrSpaceN(ULEB128) - An allowed space of the memory access
  • AddrSpaceN+1 ...
GIM_CheckMemoryAlignment 

Check the minimum alignment of the memory access for the given machine memory operand.

  • InsnID(ULEB128) - Instruction ID
  • MMOIdx(ULEB128) - MMO index
  • MinAlign(1) - Minimum acceptable alignment
GIM_CheckMemorySizeEqualToLLT 

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

GIM_CheckMemorySizeLessThanLLT 
GIM_CheckMemorySizeGreaterThanLLT 
GIM_CheckIsBuildVectorAllOnes 

Check if this is a vector that can be treated as a vector splat constant.

This is valid for both G_BUILD_VECTOR as well as G_BUILD_VECTOR_TRUNC. For AllOnes refers to individual bits, so a -1 element.

GIM_CheckIsBuildVectorAllZeros 
GIM_CheckSimplePredicate 

Check a trivial predicate which takes no arguments.

This can be used by executors to implement custom flags that don't fit in target features.

GIM_CheckCxxInsnPredicate 

Check a generic C++ instruction predicate.

  • InsnID(ULEB128) - Instruction ID
  • PredicateID(2) - The ID of the predicate function to call
GIM_CheckHasNoUse 

Check if there's no use of the first result.

GIM_CheckHasOneUse 

Check if there's one use of the first result.

GIM_CheckType 

Check the type for the specified operand.

GIM_RootCheckType 

GIM_CheckType but InsnID is omitted and defaults to zero.

GIM_CheckPointerToAny 

Check the type of a pointer to any address space.

GIM_CheckRegBankForClass 

Check the register bank for the specified operand.

GIM_RootCheckRegBankForClass 

GIM_CheckRegBankForClass but InsnID is omitted and defaults to zero.

GIM_CheckComplexPattern 

Check the operand matches a complex predicate.

GIM_CheckConstantInt 

Check the operand is a specific integer.

GIM_CheckConstantInt8 

Check the operand is a specific 8-bit signed 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_CheckCmpPredicate 

Check the operand is a specific predicate.

GIM_CheckIsMBB 

Check the specified operand is an MBB.

GIM_CheckIsImm 

Check the specified operand is an Imm.

GIM_CheckIsSafeToFold 

Checks if the matched instructions numbered [1, 1+N) can be folded into the root (inst 0).

  • Num(1)
GIM_CheckIsSameOperand 

Check the specified operands are identical.

The IgnoreCopies variant looks through COPY instructions before comparing the operands. The "All" variants check all operands starting from the index.

  • InsnID(ULEB128) - Instruction ID
  • OpIdx(ULEB128) - Operand index
  • OtherInsnID(ULEB128) - Other instruction ID
  • OtherOpIdx(ULEB128) - Other operand index
GIM_CheckIsSameOperandIgnoreCopies 
GIM_CheckAllSameOperand 
GIM_CheckAllSameOperandIgnoreCopies 
GIM_CheckCanReplaceReg 

Check we can replace all uses of a register with another.

  • OldInsnID(ULEB128)
  • OldOpIdx(ULEB128)
  • NewInsnID(ULEB128)
  • NewOpIdx(ULEB128)
GIM_MIFlags 

Check that a matched instruction has, or doesn't have a MIFlag.

  • InsnID(ULEB128) - Instruction to check.
  • Flags(4) - (can be one or more flags OR'd together)
GIM_MIFlagsNot 
GIM_RecordNamedOperand 

Predicates with 'let PredicateCodeUsesOperands = 1' need to examine some named operands that will be recorded in RecordedOperands.

Names of these operands are referenced in predicate argument list. Emitter determines StoreIdx(corresponds to the order in which names appear in argument list).

GIM_RecordRegType 

Records an operand's register type into the set of temporary types.

GIM_Reject 

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

GIR_MutateOpcode 

Mutate an instruction.

  • NewInsnID(ULEB128) - Instruction ID to define
  • OldInsnID(ULEB128) - Instruction ID to mutate
  • NewOpcode(2) - The new opcode to use
GIR_BuildMI 

Build a new instruction.

  • InsnID(ULEB128) - Instruction ID to define
  • Opcode(2) - The new opcode to use
GIR_BuildRootMI 

GIR_BuildMI but InsnID is omitted and defaults to zero.

GIR_BuildConstant 

Builds a constant and stores its result in a TempReg.

  • TempRegID(ULEB128) - Temp Register to define.
  • Imm(8) - The immediate to add
GIR_Copy 

Copy an operand to the specified instruction.

GIR_RootToRootCopy 

GIR_Copy but with both New/OldInsnIDs omitted and defaulting to zero.

GIR_CopyRemaining 

Copies all operand starting from OpIdx in OldInsnID into the new instruction NewInsnID.

GIR_CopyOrAddZeroReg 

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

GIR_CopySubReg 

Copy an operand to the specified instruction.

GIR_AddImplicitDef 

Add an implicit register def to the specified instruction.

GIR_AddImplicitUse 

Add an implicit register use to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • RegNum(2) - The register to add
GIR_AddRegister 

Add an register to the specified instruction.

GIR_AddIntrinsicID 

Adds an intrinsic ID to the specified instruction.

GIR_SetImplicitDefDead 

Marks the implicit def of a register as dead.

OpIdx starts at 0 for the first implicit def.

GIR_SetMIFlags 

Set or unset a MIFlag on an instruction.

  • InsnID(ULEB128) - Instruction to modify.
  • Flags(4) - (can be one or more flags OR'd together)
GIR_UnsetMIFlags 
GIR_CopyMIFlags 

Copy the MIFlags of a matched instruction into an output instruction.

The flags are OR'd together.

  • InsnID(ULEB128) - Instruction to modify.
  • OldInsnID(ULEB128) - Matched instruction to copy flags from.
GIR_AddTempRegister 

Add a temporary register to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • TempRegID(ULEB128) - The temporary register ID to add
  • TempRegFlags(2) - The register flags to set
GIR_AddSimpleTempRegister 

Add a temporary register to the specified instruction without setting any flags.

  • InsnID(ULEB128) - Instruction ID to modify
  • TempRegID(ULEB128) - The temporary register ID to add
GIR_AddTempSubRegister 

Add a temporary register to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • TempRegID(ULEB128) - The temporary register ID to add
  • TempRegFlags(2) - The register flags to set
  • SubRegIndex(2) - The subregister index to set
GIR_AddImm 

Add an immediate to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • Imm(8) - The immediate to add
GIR_AddImm8 

Add signed 8 bit immediate to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • Imm(1) - The immediate to add
GIR_AddCImm 

Add an CImm to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • Ty(1) - Type of the constant immediate.
  • Imm(8) - The immediate to add
GIR_ComplexRenderer 

Render complex operands to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • RendererID(2) - The renderer to call
GIR_ComplexSubOperandRenderer 

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

  • InsnID(ULEB128) - Instruction ID to modify
  • RendererID(2) - The renderer to call
  • RenderOpID(ULEB128) - The suboperand to render.
GIR_ComplexSubOperandSubRegRenderer 

Render subregisters of suboperands of complex operands to the specified instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • RendererID(2) - The renderer to call
  • RenderOpID(ULEB128) - The suboperand to render
  • SubRegIdx(2) - The subregister to extract
GIR_CustomRenderer 

Render operands to the specified instruction using a custom function.

  • InsnID(ULEB128) - Instruction ID to modify
  • OldInsnID(ULEB128) - Instruction ID to get the matched operand from
  • RendererFnID(2) - Custom renderer function to call
GIR_DoneWithCustomAction 

Calls a C++ function that concludes the current match.

The C++ function is free to return false and reject the match, or return true and mutate the instruction(s) (or do nothing, even).

  • FnID(2) - The function to call.
GIR_CustomOperandRenderer 

Render operands to the specified instruction using a custom function, reading from a specific operand.

  • InsnID(ULEB128) - Instruction ID to modify
  • OldInsnID(ULEB128) - Instruction ID to get the matched operand from
  • OpIdx(ULEB128) - Operand index in OldInsnID the render function should read from..
  • RendererFnID(2) - Custom renderer function to call
GIR_CopyConstantAsSImm 

Render a G_CONSTANT operator as a sign-extended immediate.

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

Render a G_FCONSTANT operator as a sign-extended immediate.

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

Constrain an instruction operand to a register class.

GIR_ConstrainSelectedInstOperands 

Constrain an instructions operands according to the instruction description.

GIR_RootConstrainSelectedInstOperands 

GIR_ConstrainSelectedInstOperands but InsnID is omitted and defaults to zero.

GIR_MergeMemOperands 

Merge all memory operands into instruction.

  • InsnID(ULEB128) - Instruction ID to modify
  • NumInsnID(1) - Number of instruction IDs following this argument
  • MergeInsnID(ULEB128)... - One or more Instruction ID to merge into the result.
GIR_EraseFromParent 

Erase from parent.

GIR_EraseRootFromParent_Done 

Combines both a GIR_EraseFromParent 0 + GIR_Done.

GIR_MakeTempReg 

Create a new temporary register that's not constrained.

  • TempRegID(ULEB128) - The temporary register ID to initialize.
  • Ty(1) - Expected type
GIR_ReplaceReg 

Replaces all references to a register from an instruction with another register from another instruction.

  • OldInsnID(ULEB128)
  • OldOpIdx(ULEB128)
  • NewInsnID(ULEB128)
  • NewOpIdx(ULEB128)
GIR_ReplaceRegWithTempReg 

Replaces all references to a register with a temporary register.

  • OldInsnID(ULEB128)
  • OldOpIdx(ULEB128)
  • TempRegIdx(ULEB128)
GIR_Done 

A successful emission.

GIR_Coverage 

Increment the rule coverage counter.

  • RuleID(4) - 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 81 of file GIMatchTableExecutor.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_1 
TB_ALIGN_16 
TB_ALIGN_32 
TB_ALIGN_64 
TB_ALIGN_MASK 
TB_BCAST_TYPE_SHIFT 
TB_BCAST_W 
TB_BCAST_D 
TB_BCAST_Q 
TB_BCAST_SS 
TB_BCAST_SD 
TB_BCAST_SH 
TB_BCAST_MASK 

Definition at line 13 of file X86FoldTablesUtils.h.

◆ 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 675 of file AArch64InstrInfo.h.

◆ AArch64MachineCombinerPattern

Enumerator
SUBADD_OP1 
SUBADD_OP2 
MULADDW_OP1 
MULADDW_OP2 
MULSUBW_OP1 
MULSUBW_OP2 
MULADDWI_OP1 
MULSUBWI_OP1 
MULADDX_OP1 
MULADDX_OP2 
MULSUBX_OP1 
MULSUBX_OP2 
MULADDXI_OP1 
MULSUBXI_OP1 
MULADDv8i8_OP1 
MULADDv8i8_OP2 
MULADDv16i8_OP1 
MULADDv16i8_OP2 
MULADDv4i16_OP1 
MULADDv4i16_OP2 
MULADDv8i16_OP1 
MULADDv8i16_OP2 
MULADDv2i32_OP1 
MULADDv2i32_OP2 
MULADDv4i32_OP1 
MULADDv4i32_OP2 
MULSUBv8i8_OP1 
MULSUBv8i8_OP2 
MULSUBv16i8_OP1 
MULSUBv16i8_OP2 
MULSUBv4i16_OP1 
MULSUBv4i16_OP2 
MULSUBv8i16_OP1 
MULSUBv8i16_OP2 
MULSUBv2i32_OP1 
MULSUBv2i32_OP2 
MULSUBv4i32_OP1 
MULSUBv4i32_OP2 
MULADDv4i16_indexed_OP1 
MULADDv4i16_indexed_OP2 
MULADDv8i16_indexed_OP1 
MULADDv8i16_indexed_OP2 
MULADDv2i32_indexed_OP1 
MULADDv2i32_indexed_OP2 
MULADDv4i32_indexed_OP1 
MULADDv4i32_indexed_OP2 
MULSUBv4i16_indexed_OP1 
MULSUBv4i16_indexed_OP2 
MULSUBv8i16_indexed_OP1 
MULSUBv8i16_indexed_OP2 
MULSUBv2i32_indexed_OP1 
MULSUBv2i32_indexed_OP2 
MULSUBv4i32_indexed_OP1 
MULSUBv4i32_indexed_OP2 
FMULADDH_OP1 
FMULADDH_OP2 
FMULSUBH_OP1 
FMULSUBH_OP2 
FMULADDS_OP1 
FMULADDS_OP2 
FMULSUBS_OP1 
FMULSUBS_OP2 
FMULADDD_OP1 
FMULADDD_OP2 
FMULSUBD_OP1 
FMULSUBD_OP2 
FNMULSUBH_OP1 
FNMULSUBS_OP1 
FNMULSUBD_OP1 
FMLAv1i32_indexed_OP1 
FMLAv1i32_indexed_OP2 
FMLAv1i64_indexed_OP1 
FMLAv1i64_indexed_OP2 
FMLAv4f16_OP1 
FMLAv4f16_OP2 
FMLAv8f16_OP1 
FMLAv8f16_OP2 
FMLAv2f32_OP2 
FMLAv2f32_OP1 
FMLAv2f64_OP1 
FMLAv2f64_OP2 
FMLAv4i16_indexed_OP1 
FMLAv4i16_indexed_OP2 
FMLAv8i16_indexed_OP1 
FMLAv8i16_indexed_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 
FMLSv4f16_OP1 
FMLSv4f16_OP2 
FMLSv8f16_OP1 
FMLSv8f16_OP2 
FMLSv2f32_OP1 
FMLSv2f32_OP2 
FMLSv2f64_OP1 
FMLSv2f64_OP2 
FMLSv4i16_indexed_OP1 
FMLSv4i16_indexed_OP2 
FMLSv8i16_indexed_OP1 
FMLSv8i16_indexed_OP2 
FMLSv2i32_indexed_OP1 
FMLSv2i32_indexed_OP2 
FMLSv2i64_indexed_OP1 
FMLSv2i64_indexed_OP2 
FMLSv4f32_OP1 
FMLSv4f32_OP2 
FMLSv4i32_indexed_OP1 
FMLSv4i32_indexed_OP2 
FMULv2i32_indexed_OP1 
FMULv2i32_indexed_OP2 
FMULv2i64_indexed_OP1 
FMULv2i64_indexed_OP2 
FMULv4i16_indexed_OP1 
FMULv4i16_indexed_OP2 
FMULv4i32_indexed_OP1 
FMULv4i32_indexed_OP2 
FMULv8i16_indexed_OP1 
FMULv8i16_indexed_OP2 
FNMADD 
GATHER_LANE_i32 
GATHER_LANE_i16 
GATHER_LANE_i8 

Definition at line 37 of file AArch64InstrInfo.h.

◆ AccelTableKind

enum class 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 343 of file DwarfDebug.h.

◆ AccessField

Enumerator
Offset 
Length 

Definition at line 477 of file DWP.cpp.

◆ AlignStyle

enum class llvm::AlignStyle
strong
Enumerator
Left 
Center 
Right 

Definition at line 17 of file FormatCommon.h.

◆ AllocationType

enum class llvm::AllocationType : uint8_t
strong
Enumerator
None 
NotCold 
Cold 
Hot 
All 

Definition at line 358 of file ModuleSummaryIndex.h.

◆ AllocFnKind

enum class llvm::AllocFnKind : uint64_t
strong
Enumerator
Unknown 
Alloc 
Realloc 
Free 
Uninitialized 
Zeroed 
Aligned 

Definition at line 51 of file Attributes.h.

◆ AMDGPUDwarfFlavour

Enumerator
Wave64 
Wave32 

Definition at line 33 of file AMDGPUMCTargetDesc.h.

◆ AMXProgModelEnum

Enumerator
None 
DirectReg 
ManagedRA 

Definition at line 26 of file X86MachineFunctionInfo.h.

◆ AsanCtorKind

enum class llvm::AsanCtorKind
strong

Types of ASan module constructors supported.

Enumerator
None 
Global 

Definition at line 23 of file AddressSanitizerOptions.h.

◆ AsanDetectStackUseAfterReturnMode

Mode of ASan detect stack use after return.

Enumerator
Never 

Never detect stack use after return.

Runtime 

Detect stack use after return if not disabled runtime with (ASAN_OPTIONS=detect_stack_use_after_return=0).

Always 

Always detect stack use after return.

Invalid 

Not a valid detect mode.

Definition at line 29 of file AddressSanitizerOptions.h.

◆ AsanDtorKind

enum class llvm::AsanDtorKind
strong

Types of ASan module destructors supported.

Enumerator
None 

Do not emit any destructors for ASan.

Global 

Append to llvm.global_dtors.

Invalid 

Not a valid destructor Kind.

Definition at line 16 of file AddressSanitizerOptions.h.

◆ AsmRewriteKind

Enumerator
AOK_Align 
AOK_EVEN 
AOK_Emit 
AOK_CallInput 
AOK_Input 
AOK_Output 
AOK_SizeDirective 
AOK_Label 
AOK_EndOfStatement 
AOK_Skip 
AOK_IntelExpr 

Definition at line 36 of file MCTargetAsmParser.h.

◆ AssumeBundleArg

Index of elements in the operand bundle.

If the element exist it is guaranteed to be what is specified in this enum but it may not exist.

Enumerator
ABA_WasOn 
ABA_Argument 

Definition at line 29 of file AssumeBundleQueries.h.

◆ AtomicOrdering

enum class llvm::AtomicOrdering : unsigned
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 
LAST 

Definition at line 56 of file AtomicOrdering.h.

◆ AtomicOrderingCABI

enum class llvm::AtomicOrderingCABI
strong

Atomic ordering for C11 / C++11's memory 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 28 of file AtomicOrdering.h.

◆ AttributorRunOption

Run options, used by the pass manager.

Enumerator
NONE 
MODULE 
CGSCC 
ALL 

Definition at line 6611 of file Attributor.h.

◆ BasicBlockSection

enum class llvm::BasicBlockSection
strong
Enumerator
All 
List 
Preset 
None 

Definition at line 55 of file TargetOptions.h.

◆ BinaryStreamFlags

Enumerator
BSF_None 
BSF_Write 
BSF_Append 

Definition at line 20 of file BinaryStream.h.

◆ BitcodeError

enum class llvm::BitcodeError
strong
Enumerator
CorruptedBitcode 

Definition at line 314 of file BitcodeReader.h.

◆ BitstreamWrapperHeader

Offsets of the 32-bit fields of bitstream wrapper header.

Enumerator
BWH_MagicField 
BWH_VersionField 
BWH_OffsetField 
BWH_SizeField 
BWH_CPUTypeField 
BWH_HeaderSize 

Definition at line 26 of file BitCodeEnums.h.

◆ CaptureComponents

enum class llvm::CaptureComponents : uint8_t
strong

Components of the pointer that may be captured.

Enumerator
None 
AddressIsNull 
Address 
ReadProvenance 
Provenance 
All 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 305 of file ModRef.h.

◆ CfiFunctionLinkage

The type of CFI jumptable needed for a function.

Enumerator
CFL_Definition 
CFL_Declaration 
CFL_WeakDeclaration 

Definition at line 33 of file TypeMetadataUtils.h.

◆ cgdata_error

enum class llvm::cgdata_error
strong
Enumerator
success 
eof 
bad_magic 
bad_header 
empty_cgdata 
malformed 
unsupported_version 

Definition at line 53 of file CodeGenData.h.

◆ CGDataKind

enum class llvm::CGDataKind
strong
Enumerator
Unknown 
FunctionOutlinedHashTree 
StableFunctionMergingMap 

Definition at line 42 of file CodeGenData.h.

◆ CGDataMode

Enumerator
None 
Read 
Write 

Definition at line 106 of file CodeGenData.h.

◆ CGDataSectKind

Enumerator
CG_DATA_SECT_ENTRY 
CG_DATA_SECT_ENTRY 

Definition at line 33 of file CodeGenData.h.

◆ ChangePrinter

enum class llvm::ChangePrinter
strong
Enumerator
None 
Verbose 
Quiet 
DiffVerbose 
DiffQuiet 
ColourDiffVerbose 
ColourDiffQuiet 
DotCfgVerbose 
DotCfgQuiet 

Definition at line 18 of file PrintPasses.h.

◆ ChangeStatus

enum class llvm::ChangeStatus
strong

{

Enumerator
CHANGED 
UNCHANGED 

Definition at line 496 of file Attributor.h.

◆ CloneFunctionChangeType

enum class llvm::CloneFunctionChangeType
strong
Enumerator
LocalChangesOnly 
GlobalChanges 
DifferentModule 
ClonedModule 

Definition at line 155 of file Cloning.h.

◆ ClrHandlerType

enum class llvm::ClrHandlerType
strong
Enumerator
Catch 
Finally 
Fault 
Filter 

Definition at line 79 of file WinEHFuncInfo.h.

◆ CodeGenFileType

enum class llvm::CodeGenFileType
strong

These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit, and returned by it to indicate what type of file could actually be made.

Enumerator
AssemblyFile 
ObjectFile 
Null 

Definition at line 111 of file CodeGen.h.

◆ CodeGenOptLevel

enum class llvm::CodeGenOptLevel
strong

Code generation optimization level.

Enumerator
None 

-O0

Less 

-O1

Default 

-O2, -Os

Aggressive 

-O3

Definition at line 82 of file CodeGen.h.

◆ CodeObjectVersionKind

Enumeration value for AMDGPU code object version, which is the code object version times 100.

Enumerator
COV_None 
COV_2 
COV_3 
COV_4 
COV_5 
COV_6 

Definition at line 109 of file TargetOptions.h.

◆ ColorMode

enum class llvm::ColorMode
strong
Enumerator
Auto 

Determine whether to use color based on the command line argument and the raw_ostream.

Enable 

Enable colors.

Because raw_ostream is the one implementing colors, this has no effect if the stream does not support colors or has colors disabled.

Disable 

Disable colors.

Definition at line 40 of file WithColor.h.

◆ CombineLevel

Enumerator
BeforeLegalizeTypes 
AfterLegalizeTypes 
AfterLegalizeVectorOps 
AfterLegalizeDAG 

Definition at line 15 of file DAGCombine.h.

◆ CombinerObjective

enum class llvm::CombinerObjective
strong

The combiner's goal may differ based on which pattern it is attempting to optimize.

Enumerator
MustReduceDepth 
MustReduceRegisterPressure 
Default 

Definition at line 21 of file MachineCombinerPattern.h.

◆ ComplexDeinterleavingOperation

Enumerator
CAdd 
CMulPartial 
CDot 
Deinterleave 
Splat 
Symmetric 
ReductionPHI 
ReductionOperation 
ReductionSelect 
ReductionSingle 

Definition at line 35 of file ComplexDeinterleavingPass.h.

◆ ComplexDeinterleavingRotation

Enumerator
Rotation_0 
Rotation_90 
Rotation_180 
Rotation_270 

Definition at line 50 of file ComplexDeinterleavingPass.h.

◆ ContextWorklistItemType

The distinct types of work performed by the work loop in analyzeContextInfo.

Enumerator
AnalyzeContextInfo 
UpdateChildPruning 
UpdatePruning 

Definition at line 238 of file DWARFLinker.cpp.

◆ ConvergenceKind

enum struct llvm::ConvergenceKind
strong
Enumerator
None 
Controlled 
ExtendedLoop 
Uncontrolled 

Definition at line 30 of file CodeMetrics.h.

◆ ConversionFlags

Enumerator
strictConversion 
lenientConversion 

Definition at line 156 of file ConvertUTF.h.

◆ ConversionResult

Enumerator
conversionOK 
sourceExhausted 
targetExhausted 
sourceIllegal 

Definition at line 149 of file ConvertUTF.h.

◆ CurStreamTypeType

CurStreamTypeType - A type for CurStreamType.

Enumerator
UnknownBitstream 
LLVMIRBitstream 
ClangSerializedASTBitstream 
ClangSerializedDiagnosticsBitstream 
LLVMBitstreamRemarks 

Definition at line 30 of file BitcodeAnalyzer.h.

◆ DebugCompressionType

enum class llvm::DebugCompressionType
strong
Enumerator
None 

No compression.

Zlib 

zlib

Zstd 

Zstandard.

Definition at line 28 of file Compression.h.

◆ DebuggerKind

enum class 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.

Enumerator
Default 

No specific tuning requested.

GDB 

Tune debug info for gdb.

LLDB 

Tune debug info for lldb.

SCE 

Tune debug info for SCE targets (e.g. PS4).

DBX 

Tune debug info for dbx.

Definition at line 80 of file TargetOptions.h.

◆ DepClassTy

enum class llvm::DepClassTy
strong
Enumerator
REQUIRED 

The target cannot be valid if the source is not.

OPTIONAL 

The target may be valid if the source is not.

NONE 

Do not track a dependence between source and target.

Definition at line 506 of file Attributor.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_Generic 
DK_GenericWithLoc 
DK_InlineAsm 
DK_RegAllocFailure 
DK_ResourceLimit 
DK_StackSize 
DK_Linker 
DK_Lowering 
DK_LegalizationFailure 
DK_DebugMetadataVersion 
DK_DebugMetadataInvalid 
DK_Instrumentation 
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_SrcMgr 
DK_DontCall 
DK_MisExpect 
DK_FirstPluginKind 

Definition at line 62 of file DiagnosticInfo.h.

◆ DiagnosticSeverity

Defines the different supported severity of a diagnostic.

Enumerator
DS_Error 
DS_Warning 
DS_Remark 
DS_Note 

Definition at line 51 of file DiagnosticInfo.h.

◆ DIDumpType

Selects which debug sections get dumped.

Enumerator
DIDT_Null 
DIDT_All 
DIDT_UUID 

Definition at line 184 of file DIContext.h.

◆ DIDumpTypeCounter

This is just a helper to programmatically construct DIDumpType.

Enumerator
DIDT_ID_UUID 
DIDT_ID_Count 

Definition at line 173 of file DIContext.h.

◆ DINameKind

enum class 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 142 of file DIContext.h.

◆ DWARFSectionKind

The enum of section identifiers to be used in internal interfaces.

Pre-standard implementation of package files defined a number of section identifiers with values that clash definitions in the DWARFv5 standard. See https://gcc.gnu.org/wiki/DebugFissionDWP and Section 7.3.5.3 in DWARFv5.

The following identifiers are the same in the proposal and in DWARFv5:

  • DW_SECT_INFO = 1 (.debug_info.dwo)
  • DW_SECT_ABBREV = 3 (.debug_abbrev.dwo)
  • DW_SECT_LINE = 4 (.debug_line.dwo)
  • DW_SECT_STR_OFFSETS = 6 (.debug_str_offsets.dwo)

The following identifiers are defined only in DWARFv5:

  • DW_SECT_LOCLISTS = 5 (.debug_loclists.dwo)
  • DW_SECT_RNGLISTS = 8 (.debug_rnglists.dwo)

The following identifiers are defined only in the GNU proposal:

  • DW_SECT_TYPES = 2 (.debug_types.dwo)
  • DW_SECT_LOC = 5 (.debug_loc.dwo)
  • DW_SECT_MACINFO = 7 (.debug_macinfo.dwo)

DW_SECT_MACRO for the .debug_macro.dwo section is defined in both standards, but with different values, 8 in GNU and 7 in DWARFv5.

This enum defines constants to represent the identifiers of both sets. For DWARFv5 ones, the values are the same as defined in the standard. For pre-standard ones that correspond to sections being deprecated in DWARFv5, the values are chosen arbitrary and a tag "_EXT_" is added to the names.

The enum is for internal use only. The user should not expect the values to correspond to any input/output constants. Special conversion functions, serializeSectionKind() and deserializeSectionKind(), should be used for the translation.

Enumerator
DW_SECT_EXT_unknown 

Denotes a value read from an index section that does not correspond to any of the supported standards.

DW_SECT_EXT_TYPES 
DW_SECT_EXT_LOC 
DW_SECT_EXT_MACINFO 

Definition at line 57 of file DWARFUnitIndex.h.

◆ EABI

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

Definition at line 73 of file CodeGen.h.

◆ EHPersonality

enum class llvm::EHPersonality
strong
Enumerator
Unknown 
GNU_Ada 
GNU_C 
GNU_C_SjLj 
GNU_CXX 
GNU_CXX_SjLj 
GNU_ObjC 
MSVC_X86SEH 
MSVC_TableSEH 
MSVC_CXX 
CoreCLR 
Rust 
Wasm_CXX 
XL_CXX 
ZOS_CXX 

Definition at line 22 of file EHPersonalities.h.

◆ EmitDwarfUnwindType

enum class llvm::EmitDwarfUnwindType
strong
Enumerator
Always 
NoCompactUnwind 
Default 

Definition at line 21 of file MCTargetOptions.h.

◆ endianness

enum class llvm::endianness
strong
Enumerator
big 
little 
native 

Definition at line 71 of file bit.h.

◆ errc

enum class llvm::errc
strong
Enumerator
argument_list_too_long 
argument_out_of_domain 
bad_address 
bad_file_descriptor 
broken_pipe 
delete_pending 
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 35 of file Errc.h.

◆ ExceptionHandling

enum class llvm::ExceptionHandling
strong
Enumerator
None 

No exception support.

DwarfCFI 

DWARF-like instruction based exceptions.

SjLj 

setjmp/longjmp based exceptions

ARM 

ARM EHABI.

WinEH 

Windows Exception Handling.

Wasm 

WebAssembly Exception Handling.

AIX 

AIX Exception Handling.

ZOS 

z/OS MVS Exception Handling.

Very similar to DwarfCFI, but the PPA1 is used instead of an .eh_frame section.

Definition at line 53 of file CodeGen.h.

◆ ExpandVariadicsMode

enum class llvm::ExpandVariadicsMode
strong
Enumerator
Unspecified 
Disable 
Optimize 
Lowering 

Definition at line 19 of file ExpandVariadics.h.

◆ ExplorationDirection

enum class llvm::ExplorationDirection
strong

Enum that allows us to spell out the direction.

Enumerator
BACKWARD 
FORWARD 

Definition at line 179 of file MustExecute.h.

◆ FeatureIDs

Enumerator
FeatureCount 

Definition at line 85 of file MLRegAllocPriorityAdvisor.cpp.

◆ FeatureIndex

enum class llvm::FeatureIndex : size_t
strong
Enumerator
callee_embedding 
caller_embedding 

Definition at line 141 of file InlineModelFeatureMaps.h.

◆ FloatStyle

enum class llvm::FloatStyle
strong
Enumerator
Exponent 
ExponentUpper 
Fixed 
Percent 

Definition at line 18 of file NativeFormatting.h.

◆ fltNanEncoding

enum class llvm::fltNanEncoding
strong
Enumerator
IEEE 
AllOnes 
NegativeZero 

Definition at line 81 of file APFloat.cpp.

◆ fltNonfiniteBehavior

enum class llvm::fltNonfiniteBehavior
strong
Enumerator
IEEE754 
NanOnly 
FiniteOnly 

Definition at line 57 of file APFloat.cpp.

◆ FPClassTest

Floating-point class tests, supported by 'is_fpclass' intrinsic.

Actual test may be an OR combination of basic tests.

Enumerator
fcNone 
fcSNan 
fcQNan 
fcNegInf 
fcNegNormal 
fcNegSubnormal 
fcNegZero 
fcPosZero 
fcPosSubnormal 
fcPosNormal 
fcPosInf 
fcNan 
fcInf 
fcNormal 
fcSubnormal 
fcZero 
fcPosFinite 
fcNegFinite 
fcFinite 
fcPositive 
fcNegative 
fcAllFlags 

Definition at line 240 of file FloatingPointMode.h.

◆ FPDecorationId

Enumerator
NONE 
RTE 
RTZ 
RTP 
RTN 
SAT 

Definition at line 476 of file SPIRVUtils.h.

◆ FramePointerKind

enum class llvm::FramePointerKind
strong
Enumerator
None 
NonLeaf 
All 
Reserved 

Definition at line 118 of file CodeGen.h.

◆ FunctionReturnThunksKind

enum class llvm::FunctionReturnThunksKind : unsigned int
strong
Enumerator
Keep 

No function return thunk.

Extern 

Replace returns with jump to thunk, don't emit thunk.

Invalid 

Not used.

Definition at line 155 of file CodeGen.h.

◆ GCNSchedStageID

enum class llvm::GCNSchedStageID : unsigned
strong
Enumerator
OccInitialSchedule 
UnclusteredHighRPReschedule 
ClusteredLowOccupancyReschedule 
PreRARematerialize 
ILPInitialSchedule 
MemoryClauseInitialSchedule 

Definition at line 29 of file GCNSchedStrategy.h.

◆ GlobalISelAbortMode

enum class llvm::GlobalISelAbortMode
strong

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

Enumerator
Disable 
Enable 
DisableWithDiag 

Definition at line 90 of file TargetOptions.h.

◆ GVDAGType

Enumerator
GVDT_None 
GVDT_Fraction 
GVDT_Integer 
GVDT_Count 

Definition at line 1772 of file BlockFrequencyInfoImpl.h.

◆ HexPrintStyle

enum class llvm::HexPrintStyle
strong
Enumerator
Upper 
Lower 
PrefixUpper 
PrefixLower 

Definition at line 23 of file NativeFormatting.h.

◆ HighlightColor

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

Definition at line 27 of file WithColor.h.

◆ HTTPMethod

enum class llvm::HTTPMethod
strong
Enumerator
GET 

Definition at line 27 of file HTTPClient.h.

◆ InitStatus

Enumerator
Uninitialized 
Wait 
Done 

Definition at line 60 of file Threading.h.

◆ InlineCostFeatureIndex

enum class llvm::InlineCostFeatureIndex : size_t
strong
Enumerator
NumberOfFeatures 

Definition at line 70 of file InlineModelFeatureMaps.h.

◆ InlinePass

enum class llvm::InlinePass : int
strong
Enumerator
AlwaysInliner 
CGSCCInliner 
EarlyInliner 
ModuleInliner 
MLInliner 
ReplayCGSCCInliner 
ReplaySampleProfileInliner 
SampleProfileInliner 

Definition at line 46 of file InlineAdvisor.h.

◆ InlinerFunctionImportStatsOpts

Enumerator
No 
Basic 
Verbose 

Definition at line 105 of file ImportedFunctionsInliningStatistics.h.

◆ InliningAdvisorMode

enum class llvm::InliningAdvisorMode : int
strong

There are 4 scenarios we can use the InlineAdvisor:

  • Default - use manual heuristics.
  • Release mode, the expected mode for production, day to day deployments. In this mode, when building the compiler, we also compile a pre-trained ML model to native code, and link it as a static library. This mode has low overhead and no additional dependencies for the compiler runtime.
  • Development mode, for training new models. In this mode, we trade off runtime performance for flexibility. This mode requires the TFLite library, and evaluates models dynamically. This mode also permits generating training logs, for offline training.
  • Dynamically load an advisor via a plugin (PluginInlineAdvisorAnalysis)
Enumerator
Default 
Release 
Development 

Definition at line 43 of file InlineAdvisor.h.

◆ instrprof_error

enum class llvm::instrprof_error
strong
Enumerator
success 
eof 
unrecognized_format 
bad_magic 
bad_header 
unsupported_version 
unsupported_hash_type 
too_large 
truncated 
malformed 
missing_correlation_info 
unexpected_correlation_info 
unable_to_correlate_profile 
unknown_function 
invalid_prof 
hash_mismatch 
count_mismatch 
bitmap_mismatch 
counter_overflow 
value_site_count_mismatch 
compress_failed 
uncompress_failed 
empty_raw_profile 
zlib_unavailable 
raw_profile_version_mismatch 
counter_value_too_large 

Definition at line 399 of file InstrProf.h.

◆ InstrProfKind

enum class llvm::InstrProfKind
strong

An enum describing the attributes of an instrumented profile.

Enumerator
Unknown 
FrontendInstrumentation 
IRInstrumentation 
FunctionEntryInstrumentation 
ContextSensitive 
SingleByteCoverage 
FunctionEntryOnly 
MemProf 
TemporalProfile 
LoopEntriesInstrumentation 

Definition at line 374 of file InstrProf.h.

◆ InstrProfSectKind

Enumerator
INSTR_PROF_DATA 
INSTR_PROF_DATA 

Definition at line 92 of file InstrProf.h.

◆ InstrProfValueKind

Enumerator
INSTR_PROF_DATA 
INSTR_PROF_DATA 

Definition at line 312 of file InstrProf.h.

◆ InstructionUniformity

enum class llvm::InstructionUniformity
strong

Enum describing how instructions behave with respect to uniformity and divergence, to answer the question: if the same instruction is executed by two threads in a convergent set of threads, will its result value(s) be uniform, i.e.

the same on both threads?

Enumerator
Default 

The result values are uniform if and only if all operands are uniform.

AlwaysUniform 

The result values are always uniform.

NeverUniform 

The result values can never be assumed to be uniform.

Definition at line 18 of file Uniformity.h.

◆ IntegerStyle

enum class llvm::IntegerStyle
strong
Enumerator
Integer 
Number 

Definition at line 19 of file NativeFormatting.h.

◆ InternalRelocationType

Enumerator
INTERNAL_REL_ARM64_LONG_BRANCH26 

Definition at line 28 of file RuntimeDyldCOFFAArch64.h.

◆ IntrinsicType

Enumerator
CVTNEPS2BF16_MASK 
GATHER 
SCATTER 
PREFETCH 
RDSEED 
RDRAND 
RDPMC 
RDTSC 
XTEST 
XGETBV 
ADX 
FPCLASSS 
INTR_TYPE_1OP 
INTR_TYPE_2OP 
INTR_TYPE_3OP 
INTR_TYPE_4OP_IMM8 
INTR_TYPE_3OP_IMM8 
CFMA_OP_MASK 
CFMA_OP_MASKZ 
CMP_MASK_CC 
CMP_MASK_SCALAR_CC 
VSHIFT 
COMI 
COMI_RM 
BLENDV 
BEXTRI 
CVTPD2PS_MASK 
INTR_TYPE_1OP_SAE 
INTR_TYPE_2OP_SAE 
INTR_TYPE_1OP_MASK_SAE 
INTR_TYPE_2OP_MASK_SAE 
INTR_TYPE_3OP_MASK_SAE 
INTR_TYPE_1OP_MASK 
INTR_TYPE_2OP_MASK 
IFMA_OP 
VPERM_2OP 
INTR_TYPE_SCALAR_MASK 
INTR_TYPE_SCALAR_MASK_SAE 
INTR_TYPE_SCALAR_MASK_RND 
INTR_TYPE_3OP_SCALAR_MASK_SAE 
COMPRESS_EXPAND_IN_REG 
TRUNCATE_TO_REG 
TRUNCATE2_TO_REG 
CVTPS2PH_MASK 
CVTPD2DQ_MASK 
CVTQQ2PS_MASK 
TRUNCATE_TO_MEM_VI8 
TRUNCATE_TO_MEM_VI16 
TRUNCATE_TO_MEM_VI32 
FIXUPIMM 
FIXUPIMM_MASKZ 
GATHER_AVX2 
ROUNDP 
ROUNDS 
RDPRU 
INTR_TYPE_CAST_MMX 

Definition at line 22 of file X86IntrinsicsInfo.h.

◆ IR2VecKind

enum class llvm::IR2VecKind
strong

IR2Vec computes two kinds of embeddings: Symbolic and Flow-aware.

Symbolic embeddings capture the "syntactic" and "statistical correlation" of the IR entities. Flow-aware embeddings build on top of symbolic embeddings and additionally capture the flow information in the IR. IR2VecKind is used to specify the type of embeddings to generate. Note: Implementation of FlowAware embeddings is not same as the one described in the paper. The current implementation is a simplified version that captures the flow information (SSA-based use-defs) without tracing through memory level use-defs in the embedding computation described in the paper.

Enumerator
Symbolic 
FlowAware 

Definition at line 69 of file IR2Vec.h.

◆ IRMemLocation

enum class llvm::IRMemLocation
strong

The locations at which a function might access memory.

Enumerator
ArgMem 

Access to memory via argument pointers.

InaccessibleMem 

Memory that is inaccessible via LLVM IR.

ErrnoMem 

Errno memory.

Other 

Any other memory.

First 

Helpers to iterate all locations in the MemoryEffectsBase class.

Last 

Definition at line 60 of file ModRef.h.

◆ IttEventType

Enumerator
LoadBinaryModule 
LoadBinarySection 
UnloadBinaryModule 
UnloadBinarySection 

Definition at line 24 of file IntelJITEventsWrapper.h.

◆ LEB128Sign

enum class llvm::LEB128Sign
strong
Enumerator
Unsigned 
Signed 

Definition at line 234 of file LEB128.h.

◆ LegalizeAction

Definition at line 45 of file LegalizerInfo.h.

◆ LibFunc

Enumerator
NumLibFuncs 
NotLibFunc 

Definition at line 72 of file TargetLibraryInfo.h.

◆ LiveRangeStage

Enumerator
RS_New 

Newly created live range that has never been queued.

RS_Assign 

Only attempt assignment and eviction. Then requeue as RS_Split.

RS_Split 

Attempt live range splitting if assignment is impossible.

RS_Split2 

Attempt more aggressive live range splitting that is guaranteed to make progress.

This is used for split products that may not be making progress.

RS_Spill 

Live range will be spilled. No more splitting will be attempted.

RS_Done 

There is nothing more we can do to this live range.

Abort compilation if it can't be assigned.

Definition at line 51 of file RegAllocEvictionAdvisor.h.

◆ LLVMConstants

Enumerator
DEBUG_METADATA_VERSION 

Definition at line 52 of file Metadata.h.

◆ LocalNum

Enumerator
LN_First 
LN_Middle 
LN_Last 

Definition at line 71 of file PredicateInfo.cpp.

◆ LoopIdiomVectorizeStyle

enum class llvm::LoopIdiomVectorizeStyle
strong
Enumerator
Masked 
Predicated 

Definition at line 16 of file LoopIdiomVectorize.h.

◆ LoopPeelDirection

Enumerator
LPD_Front 

Peel the first iteration of the loop.

LPD_Back 

Peel the last iteration of the loop.

Definition at line 17 of file MachineLoopUtils.h.

◆ LoopUnrollResult

enum class llvm::LoopUnrollResult
strong

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 58 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 50 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 
ACC_CHAIN 
TARGET_PATTERN_START 

Definition at line 28 of file MachineCombinerPattern.h.

◆ MachineFunctionDataHotness

Enumerator
Unknown 
Cold 
Hot 

Definition at line 94 of file MachineFunction.h.

◆ MachineTraceStrategy

enum class llvm::MachineTraceStrategy
strong

Strategies for selecting traces.

Enumerator
TS_MinInstrCount 

Select the trace through a block that has the fewest instructions.

TS_Local 

Select the trace that contains only the current basic block.

For instance, this strategy can be used by MachineCombiner to make better decisions when we estimate critical path for in-order cores.

TS_NumStrategies 

Definition at line 87 of file MachineTraceMetrics.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 53 of file MCDirectives.h.

◆ MCLOHType

Linker Optimization Hint Type.

Enumerator
MCLOH_AdrpAdrp 

Adrp xY, _v1@PAGE -> Adrp xY, _v2@PAGE.

MCLOH_AdrpLdr 

Adrp _v@PAGE -> Ldr _v@PAGEOFF.

MCLOH_AdrpAddLdr 

Adrp _v@PAGE -> Add _v@PAGEOFF -> Ldr.

MCLOH_AdrpLdrGotLdr 

Adrp _v@GOTPAGE -> Ldr _v@GOTPAGEOFF -> Ldr.

MCLOH_AdrpAddStr 

Adrp _v@PAGE -> Add _v@PAGEOFF -> Str.

MCLOH_AdrpLdrGotStr 

Adrp _v@GOTPAGE -> Ldr _v@GOTPAGEOFF -> Str.

MCLOH_AdrpAdd 

Adrp _v@PAGE -> Add _v@PAGEOFF.

MCLOH_AdrpLdrGot 

Adrp _v@GOTPAGE -> Ldr _v@GOTPAGEOFF.

Definition at line 34 of file MCLinkerOptimizationHint.h.

◆ MCPseudoProbeFlag

enum class llvm::MCPseudoProbeFlag
strong
Enumerator
AddressDelta 

Definition at line 81 of file MCPseudoProbe.h.

◆ MCSymbolAttr

Enumerator
MCSA_Invalid 

Not a valid directive.

MCSA_Cold 

.cold (MachO)

MCSA_ELF_TypeFunction 

.type _foo, STT_FUNC # aka @function

MCSA_ELF_TypeIndFunction 

.type _foo, STT_GNU_IFUNC

MCSA_ELF_TypeObject 

.type _foo, STT_OBJECT # aka @object

MCSA_ELF_TypeTLS 

.type _foo, STT_TLS # aka @tls_object

MCSA_ELF_TypeCommon 

.type _foo, STT_COMMON # aka @common

MCSA_ELF_TypeNoType 

.type _foo, STT_NOTYPE # aka @notype

MCSA_ELF_TypeGnuUniqueObject 
MCSA_Global 

.type _foo, @gnu_unique_object

.globl

MCSA_LGlobal 

.lglobl (XCOFF)

MCSA_Extern 

.extern (XCOFF)

MCSA_Hidden 

.hidden (ELF)

MCSA_Exported 

.globl _foo, exported (XCOFF)

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)

MCSA_WeakAntiDep 

.weak_anti_dep (COFF)

MCSA_Memtag 

.memtag (ELF)

Definition at line 18 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 61 of file MCDirectives.h.

◆ ModRefInfo

enum class 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.

Enumerator
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.

LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 28 of file ModRef.h.

◆ MSDemangleFlags

Enumerator
MSDF_None 
MSDF_DumpBackrefs 
MSDF_NoAccessSpecifier 
MSDF_NoCallingConvention 
MSDF_NoReturnType 
MSDF_NoMemberType 
MSDF_NoVariableType 

Definition at line 40 of file Demangle.h.

◆ OnCuIndexOverflow

Enumerator
HardStop 
SoftStop 
Continue 

Definition at line 19 of file DWP.h.

◆ OverflowResult

enum class llvm::OverflowResult
strong
Enumerator
AlwaysOverflowsLow 

Always overflows in the direction of signed/unsigned min value.

AlwaysOverflowsHigh 

Always overflows in the direction of signed/unsigned max value.

MayOverflow 

May or may not overflow.

NeverOverflows 

Never overflows.

Definition at line 616 of file ValueTracking.h.

◆ PackElem

enum class llvm::PackElem : int8_t
strong
Enumerator
Lo 
Hi 

Definition at line 130 of file VECustomDAG.h.

◆ Packing

enum class llvm::Packing
strong

} Node Properties

Enumerator
Normal 
Dense 

Definition at line 119 of file VECustomDAG.h.

◆ PassDebuggingString

Enumerator
EXECUTION_MSG 
MODIFICATION_MSG 
FREEING_MSG 
ON_FUNCTION_MSG 
ON_MODULE_MSG 
ON_REGION_MSG 
ON_LOOP_MSG 
ON_CG_MSG 

Definition at line 97 of file LegacyPassManagers.h.

◆ PassKind

Enumerator
PT_Region 
PT_Loop 
PT_Function 
PT_CallGraphSCC 
PT_Module 
PT_PassManager 

Definition at line 67 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_Last 

Definition at line 56 of file Pass.h.

◆ PassSummaryAction

enum class llvm::PassSummaryAction
strong

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 54 of file IPO.h.

◆ PGOCtxProfileBlockIDs

Enumerator
FIRST_VALID 
ProfileMetadataBlockID 
ContextsSectionBlockID 
ContextRootBlockID 
ContextNodeBlockID 
FlatProfilesSectionBlockID 
FlatProfileBlockID 
UnhandledBlockID 
LAST_VALID 

Definition at line 32 of file PGOCtxProfWriter.h.

◆ PGOCtxProfileRecords

Enumerator
Invalid 
Guid 
CallsiteIndex 
Counters 
TotalRootEntryCount 

Definition at line 23 of file PGOCtxProfWriter.h.

◆ PGOInstrumentationType

enum class llvm::PGOInstrumentationType
strong
Enumerator
Invalid 
FDO 
CSFDO 
CTXPROF 

Definition at line 54 of file PGOInstrumentation.h.

◆ PGOViewCountsType

Enumerator
PGOVCT_None 
PGOVCT_Graph 
PGOVCT_Text 

Definition at line 34 of file BlockFrequencyInfo.h.

◆ PGSOQueryType

enum class llvm::PGSOQueryType
strong
Enumerator
IRPass 
Test 
Other 

Definition at line 35 of file SizeOpts.h.

◆ PPCMachineCombinerPattern

Enumerator
REASSOC_XY_AMM_BMM 
REASSOC_XMM_AMM_BMM 
REASSOC_XY_BCA 
REASSOC_XY_BAC 

Definition at line 92 of file PPCInstrInfo.h.

◆ PredicateType

Enumerator
PT_Branch 
PT_Assume 
PT_Switch 

Definition at line 70 of file PredicateInfo.h.

◆ PrevailingType

enum class llvm::PrevailingType
strong

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

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

Enumerator
Yes 
No 
Unknown 

Definition at line 371 of file FunctionImport.h.

◆ PseudoProbeAttributes

enum class llvm::PseudoProbeAttributes
strong
Enumerator
Reserved 
Sentinel 
HasDiscriminator 

Definition at line 32 of file PseudoProbe.h.

◆ PseudoProbeReservedId

enum class llvm::PseudoProbeReservedId
strong
Enumerator
Invalid 
Last 

Definition at line 28 of file PseudoProbe.h.

◆ PseudoProbeType

enum class llvm::PseudoProbeType
strong
Enumerator
Block 
IndirectCall 
DirectCall 

Definition at line 30 of file PseudoProbe.h.

◆ RecurKind

enum class llvm::RecurKind
strong

These are the kinds of recurrences that we support.

Enumerator
None 

Not a recurrence.

Add 

Sum of integers.

Sub 

Subtraction of integers.

AddChainWithSubs 

A chain of adds and subs.

Mul 

Product of integers.

Or 

Bitwise or logical OR of integers.

And 

Bitwise or logical AND of integers.

Xor 

Bitwise or logical XOR of integers.

SMin 

Signed integer min implemented in terms of select(cmp()).

SMax 

Signed integer max implemented in terms of select(cmp()).

UMin 

Unsigned integer min implemented in terms of select(cmp()).

UMax 

Unsigned integer max implemented in terms of select(cmp()).

FAdd 

Sum of floats.

FMul 

Product of floats.

FMin 

FP min implemented in terms of select(cmp()).

FMax 

FP max implemented in terms of select(cmp()).

FMinNum 

FP min with llvm.minnum semantics including NaNs.

FMaxNum 

FP max with llvm.maxnum semantics including NaNs.

FMinimum 

FP min with llvm.minimum semantics.

FMaximum 

FP max with llvm.maximum semantics.

FMinimumNum 

FP min with llvm.minimumnum semantics.

FMaximumNum 

FP max with llvm.maximumnum semantics.

FMulAdd 

Sum of float products with llvm.fmuladd(a * b + sum).

AnyOf 

AnyOf reduction with select(cmp(),x,y) where one of (x,y) is loop invariant, and both x and y are integer type.

FindFirstIVSMin 
FindFirstIVUMin 

FindFirst reduction with select(icmp(),x,y) where one of (x,y) is a decreasing loop induction, and both x and y are integer type, producing a SMin reduction.

FindLastIVSMax 

FindFirst reduction with select(icmp(),x,y) where one of (x,y) is a decreasing loop induction, and both x and y are integer type, producing a UMin reduction.

FindLast reduction with select(cmp(),x,y) where one of (x,y) is increasing loop induction, and both x and y are integer type, producing a SMax reduction.

FindLastIVUMax 

FindLast reduction with select(cmp(),x,y) where one of (x,y) is increasing loop induction, and both x and y are integer type, producing a UMax reduction.

Definition at line 34 of file IVDescriptors.h.

◆ RegAllocType

enum class llvm::RegAllocType
strong
Enumerator
Unset 
Default 
Basic 
Fast 
Greedy 
PBQP 

Definition at line 31 of file CGPassBuilderOption.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_ReuseAndMutateDistinctMDs 

Instruct the remapper to reuse and mutate distinct metadata (remapping them in place) instead of cloning remapped copies.

This flag has no effect when RF_NoModuleLevelChanges, since that implies an identity mapping.

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.

RF_DoNotRemapAtoms 

Do not remap source location atoms.

Only safe if to do this if the cloned instructions being remapped are inserted into a new function, or an existing function where the inlined-at fields are updated. If in doubt, don't use this flag. It's used when remapping is known to be un-necessary to save some compile-time.

Definition at line 74 of file ValueMapper.h.

◆ ReplaceExitVal

Enumerator
NeverRepl 
OnlyCheapRepl 
NoHardUse 
UnusedIndVarInLoop 
AlwaysRepl 

Definition at line 516 of file LoopUtils.h.

◆ ReplacementType

enum class llvm::ReplacementType
strong
Enumerator
Format 
Literal 

Definition at line 47 of file FormatVariadic.h.

◆ RISCVMachineCombinerPattern

Enumerator
FMADD_AX 
FMADD_XA 
FMSUB 
FNMSUB 
SHXADD_ADD_SLLI_OP1 
SHXADD_ADD_SLLI_OP2 

Definition at line 53 of file RISCVInstrInfo.h.

◆ RISCVOptionArchArgType

enum class llvm::RISCVOptionArchArgType
strong
Enumerator
Full 
Plus 
Minus 

Definition at line 20 of file RISCVTargetStreamer.h.

◆ RoundingMode

enum class llvm::RoundingMode : int8_t
strong

Rounding mode.

Enumerates supported rounding modes, as well as some special values. The set of the modes must agree with IEEE-754, 4.3.1 and 4.3.2. The constants assigned to the IEEE rounding modes must agree with the values used by FLT_ROUNDS (C11, 5.2.4.2.2p8).

This value is packed into bitfield in some cases, including FPOptions, so the rounding mode values and the special value Dynamic must fit into the the bit field (now - 3 bits). The value Invalid is used only in values returned by intrinsics to indicate errors, it should never be stored as rounding mode value, so it does not need to fit the bit fields.

Enumerator
TowardZero 

roundTowardZero.

NearestTiesToEven 

roundTiesToEven.

TowardPositive 

roundTowardPositive.

TowardNegative 

roundTowardNegative.

NearestTiesToAway 

roundTiesToAway.

Dynamic 

Denotes mode unknown at compile time.

Invalid 

Denotes invalid value.

Definition at line 38 of file FloatingPointMode.h.

◆ RunOutliner

enum class llvm::RunOutliner
strong
Enumerator
TargetDefault 
AlwaysOutline 
OptimisticPGO 
ConservativePGO 
NeverOutline 

Definition at line 24 of file CGPassBuilderOption.h.

◆ sampleprof_error

enum class llvm::sampleprof_error
strong
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 
uncompress_failed 
zlib_unavailable 
hash_mismatch 
illegal_line_offset 

Definition at line 49 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.

◆ ScalarEpilogueLowering

Enumerator
CM_ScalarEpilogueAllowed 
CM_ScalarEpilogueNotAllowedOptSize 
CM_ScalarEpilogueNotAllowedLowTripLoop 
CM_ScalarEpilogueNotNeededUsePredicate 
CM_ScalarEpilogueNotAllowedUsePredicate 

Definition at line 860 of file LoopVectorize.cpp.

◆ ScanOptions

enum class llvm::ScanOptions
strong
Enumerator
DPP 
Iterative 
None 

Definition at line 104 of file AMDGPU.h.

◆ SCEVTypes

enum llvm::SCEVTypes : unsigned short
Enumerator
scConstant 
scVScale 
scTruncate 
scZeroExtend 
scSignExtend 
scAddExpr 
scMulExpr 
scUDivExpr 
scAddRecExpr 
scUMaxExpr 
scSMaxExpr 
scUMinExpr 
scSMinExpr 
scSequentialUMinExpr 
scPtrToInt 
scUnknown 
scCouldNotCompute 

Definition at line 38 of file ScalarEvolutionExpressions.h.

◆ SDNF

enum llvm::SDNF
Enumerator
SDNFIsStrictFP 

Definition at line 47 of file SDNodeInfo.h.

◆ SDNP

enum llvm::SDNP
Enumerator
SDNPHasChain 
SDNPOutGlue 
SDNPInGlue 
SDNPOptInGlue 
SDNPMemOperand 
SDNPVariadic 

Definition at line 22 of file SDNodeInfo.h.

◆ SDTC

Enumerator
SDTCisVT 
SDTCisPtrTy 
SDTCisInt 
SDTCisFP 
SDTCisVec 
SDTCisSameAs 
SDTCisVTSmallerThanOp 
SDTCisOpSmallerThanOp 
SDTCisEltOfVec 
SDTCisSubVecOfVec 
SDTCVecEltisVT 
SDTCisSameNumEltsAs 
SDTCisSameSizeAs 

Definition at line 31 of file SDNodeInfo.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 828 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 842 of file ValueTracking.h.

◆ SetThreadPriorityResult

enum class llvm::SetThreadPriorityResult
strong
Enumerator
FAILURE 
SUCCESS 

Definition at line 267 of file Threading.h.

◆ SGPRSaveKind

enum class llvm::SGPRSaveKind : uint8_t
strong
Enumerator
COPY_TO_SCRATCH_SGPR 
SPILL_TO_VGPR_LANE 
SPILL_TO_MEM 

Definition at line 377 of file SIMachineFunctionInfo.h.

◆ SIRCFlags

Enumerator
RegTupleAlignUnitsWidth 
HasVGPRBit 
HasAGPRBit 
HasSGPRbit 
HasVGPR 
HasAGPR 
HasSGPR 
RegTupleAlignUnitsMask 
RegKindMask 

Definition at line 18 of file SIDefines.h.

◆ SIScheduleBlockLinkKind

Enumerator
NoData 

Definition at line 53 of file SIMachineScheduler.h.

◆ SIScheduleCandReason

Enumerator
NoCand 
RegUsage 
Latency 
Successor 
Depth 
NodeOrder 

Definition at line 31 of file SIMachineScheduler.h.

◆ SISchedulerBlockCreatorVariant

Enumerator
LatenciesAlone 
LatenciesGrouped 
LatenciesAlonePlusConsecutive 

Definition at line 216 of file SIMachineScheduler.h.

◆ SISchedulerBlockSchedulerVariant

Enumerator
BlockLatencyRegUsage 
BlockRegUsageLatency 
BlockRegUsage 

Definition at line 312 of file SIMachineScheduler.h.

◆ SpillOpcodeKey

Enumerator
SOK_Int4Spill 
SOK_Int8Spill 
SOK_Float8Spill 
SOK_Float4Spill 
SOK_CRSpill 
SOK_CRBitSpill 
SOK_VRVectorSpill 
SOK_VSXVectorSpill 
SOK_VectorFloat8Spill 
SOK_VectorFloat4Spill 
SOK_SpillToVSR 
SOK_PairedVecSpill 
SOK_AccumulatorSpill 
SOK_UAccumulatorSpill 
SOK_WAccumulatorSpill 
SOK_DMRpSpill 
SOK_DMRSpill 
SOK_SPESpill 
SOK_PairedG8Spill 
SOK_LastOpcodeSpill 

Definition at line 68 of file PPCInstrInfo.h.

◆ SROAOptions

enum class llvm::SROAOptions : bool
strong
Enumerator
ModifyCFG 
PreserveCFG 

Definition at line 24 of file SROA.h.

◆ StatepointFlags

enum class 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 39 of file Statepoint.h.

◆ stream_error_code

enum class llvm::stream_error_code
strong
Enumerator
unspecified 
stream_too_short 
invalid_array_size 
invalid_offset 
filesystem_error 

Definition at line 19 of file BinaryStreamError.h.

◆ StructuralHashOptions

enum class llvm::StructuralHashOptions
strong
Enumerator
None 
Detailed 

Hash with opcode only.

CallTargetIgnored 

Hash with opcode and operands.

Definition at line 16 of file StructuralHash.h.

◆ SubDirectoryType

enum class llvm::SubDirectoryType
strong
Enumerator
Bin 
Include 
Lib 

Definition at line 25 of file MSVCPaths.h.

◆ SwiftAsyncFramePointerMode

Indicates when and how the Swift async frame pointer bit should be set.

Enumerator
DeploymentBased 

Determine whether to set the bit statically or dynamically based on the deployment target.

Always 

Always set the bit.

Never 

Never set the bit.

Definition at line 97 of file TargetOptions.h.

◆ SymtabWritingMode

enum class llvm::SymtabWritingMode
strong
Enumerator
NoSymtab 
NormalSymtab 
BigArchive32 
BigArchive64 

Definition at line 45 of file ArchiveWriter.h.

◆ SystemZAsmDialect

Enumerator
AD_GNU 
AD_HLASM 

Definition at line 18 of file SystemZMCAsmInfo.h.

◆ TailFoldingOpts

enum class llvm::TailFoldingOpts : uint8_t
strong

An enum to describe what types of loops we should attempt to tail-fold: Disabled: None Reductions: Loops containing reductions Recurrences: Loops with first-order recurrences, i.e.

that would require a SVE splice instruction Reverse: Reverse loops Simple: Loops that are not reversed and don't contain reductions or first-order recurrences. All: All

Enumerator
Disabled 
Simple 
Reductions 
Recurrences 
Reverse 
All 

Definition at line 604 of file AArch64BaseInfo.h.

◆ TailFoldingStyle

enum class llvm::TailFoldingStyle
strong
Enumerator
None 

Don't use tail folding.

Data 

Use predicate only to mask operations on data in the loop.

When the VL is not known to be a power-of-2, this method requires a runtime overflow check for the i + VL in the loop because it compares the scalar induction variable against the tripcount rounded up by VL which may overflow. When the VL is a power-of-2, both the increment and uprounded tripcount will overflow to 0, which does not require a runtime check since the loop is exited when the loop induction variable equals the uprounded trip-count, which are both 0.

DataWithoutLaneMask 

Same as Data, but avoids using the get.active.lane.mask intrinsic to calculate the mask and instead implements this with a splat/stepvector/cmp.

FIXME: Can this kind be removed now that SelectionDAGBuilder expands the active.lane.mask intrinsic when it is not natively supported?

DataAndControlFlow 

Use predicate to control both data and control flow.

This method always requires a runtime overflow check for the i + VL increment inside the loop, because it uses the result direclty in the active.lane.mask to calculate the mask for the next iteration. If the increment overflows, the mask is no longer correct.

DataAndControlFlowWithoutRuntimeCheck 

Use predicate to control both data and control flow, but modify the trip count so that a runtime overflow check can be avoided and such that the scalar epilogue loop can always be removed.

DataWithEVL 

Use predicated EVL instructions for tail-folding.

Indicates that VP intrinsics should be used.

Definition at line 172 of file TargetTransformInfo.h.

◆ TensorType

enum class llvm::TensorType
strong
Enumerator
Invalid 
Total 

Definition at line 55 of file TensorSpec.h.

◆ TextEncoding

enum class llvm::TextEncoding
strong
Enumerator
UTF8 

UTF-8 character set encoding.

IBM1047 

IBM EBCDIC 1047 character set encoding.

Definition at line 73 of file TextEncoding.h.

◆ ThinOrFullLTOPhase

enum class llvm::ThinOrFullLTOPhase
strong

This enumerates the LLVM full LTO or ThinLTO optimization phases.

Enumerator
None 

No LTO/ThinLTO behavior needed.

ThinLTOPreLink 

ThinLTO prelink (summary) phase.

ThinLTOPostLink 

ThinLTO postlink (backend compile) phase.

FullLTOPreLink 

Full LTO prelink phase.

FullLTOPostLink 

Full LTO postlink (backend compile) phase.

Definition at line 77 of file Pass.h.

◆ ThreadPriority

enum class llvm::ThreadPriority
strong
Enumerator
Background 

Lower the current thread's priority as much as possible.

Can be used for long-running tasks that are not time critical; more energy- efficient than Low.

Low 

Lower the current thread's priority such that it does not affect foreground tasks significantly.

This is a good default for long- running, latency-insensitive tasks to make sure cpu is not hogged by this task.

Default 

Restore the current thread's priority to default scheduling priority.

Definition at line 252 of file Threading.h.

◆ TimeTraceEventType

enum class llvm::TimeTraceEventType
strong
Enumerator
CompleteEvent 
InstantEvent 
AsyncEvent 

Definition at line 88 of file TimeProfiler.h.

◆ ToolsetLayout

enum class llvm::ToolsetLayout
strong
Enumerator
OlderVS 
VS2017OrNewer 
DevDivInternal 

Definition at line 31 of file MSVCPaths.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 284 of file LoopUtils.h.

◆ UnitKind

enum class llvm::UnitKind
strong
Enumerator
Skeleton 
Full 

Definition at line 43 of file DwarfCompileUnit.h.

◆ UWTableKind

enum class llvm::UWTableKind
strong
Enumerator
None 

No unwind table requested.

Sync 

"Synchronous" unwind tables

Async 

"Asynchronous" unwind tables (instr precise)

Default 

Definition at line 148 of file CodeGen.h.

◆ VariableID

enum class llvm::VariableID : unsigned
strong

Type wrapper for integer ID for Variables. 0 is reserved.

Enumerator
Reserved 

Definition at line 26 of file AssignmentTrackingAnalysis.h.

◆ VFISAKind

enum class llvm::VFISAKind
strong

Describes the type of Instruction Set Architecture.

Enumerator
AdvancedSIMD 
SVE 
RVV 
SSE 
AVX 
AVX2 
AVX512 
LLVM 
Unknown 

Definition at line 45 of file VFABIDemangler.h.

◆ VFParamKind

enum class llvm::VFParamKind
strong

Describes the type of Parameters.

Enumerator
Vector 
OMP_Linear 
OMP_LinearRef 
OMP_LinearVal 
OMP_LinearUVal 
OMP_LinearPos 
OMP_LinearValPos 
OMP_LinearRefPos 
OMP_LinearUValPos 
OMP_Uniform 
GlobalPredicate 
Unknown 

Definition at line 26 of file VFABIDemangler.h.

◆ VMOVModImmType

Enumerator
VMOVModImm 
VMVNModImm 
MVEVMVNModImm 
OtherModImm 

Definition at line 1023 of file ARMISelLowering.h.

◆ VPExpansionDetails

enum class llvm::VPExpansionDetails
strong

Represents the details the expansion of a VP intrinsic.

Enumerator
IntrinsicUnchanged 

No change happened during expansion.

IntrinsicUpdated 

At least one operand was updated.

IntrinsicReplaced 

The whole intrinsic was replaced.

Definition at line 20 of file ExpandVectorPredication.h.

◆ WaitForUnlockResult

enum class llvm::WaitForUnlockResult
strong

Describes the result of waiting for the owner to release the lock.

Enumerator
Success 

The lock was released successfully.

OwnerDied 

Owner died while holding the lock.

Timeout 

Reached timeout while waiting for the owner to release the lock.

Definition at line 18 of file AdvisoryLock.h.

◆ WindowSchedulingFlag

Enumerator
WS_Off 
WS_On 

Turn off window algorithm.

WS_Force 

Use window algorithm after SMS algorithm fails.

Use window algorithm instead of SMS algorithm.

Definition at line 53 of file WindowScheduler.h.

◆ WinX64EHUnwindV2Mode

enum class llvm::WinX64EHUnwindV2Mode
strong
Enumerator
Disabled 
BestEffort 
Required 

Definition at line 161 of file CodeGen.h.

◆ X86MachineCombinerPattern

Enumerator
DPWSSD 

Definition at line 30 of file X86InstrInfo.h.

Function Documentation

◆ __deregister_frame()

◆ __register_frame()

void llvm::__register_frame ( void * )

◆ AArch64PACKeyIDToString()

StringRef llvm::AArch64PACKeyIDToString ( AArch64PACKey::ID KeyID)
inlinestatic

Return 2-letter identifier string for numeric key ID.

Definition at line 904 of file AArch64BaseInfo.h.

References llvm::AArch64PACKey::DA, llvm::AArch64PACKey::DB, llvm::AArch64PACKey::IA, llvm::AArch64PACKey::IB, and llvm_unreachable.

Referenced by getAuthPtrSlotSymbolHelper(), and llvm::AArch64AuthMCExpr::print().

◆ AArch64StringToPACKeyID()

std::optional< AArch64PACKey::ID > llvm::AArch64StringToPACKeyID ( StringRef Name)
inlinestatic

Return numeric key ID for 2-letter identifier string.

Definition at line 920 of file AArch64BaseInfo.h.

References llvm::AArch64PACKey::DA, llvm::AArch64PACKey::DB, llvm::AArch64PACKey::IA, and llvm::AArch64PACKey::IB.

◆ AArch64StringToVectorLayout()

◆ AArch64VectorLayoutToString()

◆ abs() [1/2]

APFloat llvm::abs ( APFloat X)
inline

Returns the absolute value of the argument.

Definition at line 1563 of file APFloat.h.

References X.

Referenced by isValidLSDoubleOffset(), and llvm::DynamicAPInt::lcm.

◆ abs() [2/2]

Definition at line 367 of file DynamicAPInt.h.

◆ AbsoluteDifference()

template<typename U, typename V, typename T = common_uint<U, V>>
T llvm::AbsoluteDifference ( U X,
V Y )
constexpr

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

Definition at line 611 of file MathExtras.h.

References T, X, and Y.

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

◆ AbsoluteValue()

template<typename T, typename U = std::make_unsigned_t<T>>
U llvm::AbsoluteValue ( T X)
constexpr

Return the absolute value of a signed integer, converted to the corresponding unsigned integer type.

Avoids undefined behavior in std::abs when you pass it INT_MIN or similar.

Definition at line 603 of file MathExtras.h.

References T, and X.

Referenced by llvm::ARMTargetLowering::isLegalAddImmediate().

◆ accumulate()

template<typename R, typename E>
auto llvm::accumulate ( R && Range,
E && Init )

Wrapper for std::accumulate.

Definition at line 1690 of file STLExtras.h.

References adl_begin(), adl_end(), E(), and Range.

◆ adaptNoAliasScopes()

void llvm::adaptNoAliasScopes ( llvm::Instruction * I,
const DenseMap< MDNode *, MDNode * > & ClonedScopes,
LLVMContext & Context )

Adapt the metadata for the specified instruction according to the provided mapping.

This is normally used after cloning an instruction, when some noalias scopes needed to be cloned.

Definition at line 1174 of file CloneFunction.cpp.

References dyn_cast(), llvm::MDNode::get(), I, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by cloneAndAdaptNoAliasScopes(), cloneAndAdaptNoAliasScopes(), and llvm::JumpThreadingPass::cloneInstructions().

◆ add16()

void llvm::add16 ( uint8_t * p,
int16_t v )
static

◆ addAssumptions() [1/2]

bool llvm::addAssumptions ( CallBase & CB,
const DenseSet< StringRef > & Assumptions )

Appends the set of assumptions Assumptions to \CB.

Definition at line 99 of file Assumptions.cpp.

◆ addAssumptions() [2/2]

bool llvm::addAssumptions ( Function & F,
const DenseSet< StringRef > & Assumptions )

Appends the set of assumptions Assumptions to \F.

Definition at line 95 of file Assumptions.cpp.

References F.

◆ 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 150 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(), UnrollAndJamLoop(), and UnrollLoop().

◆ addConstantPoolReference()

const MachineInstrBuilder & llvm::addConstantPoolReference ( const MachineInstrBuilder & MIB,
unsigned CPI,
Register 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 220 of file X86InstrBuilder.h.

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

◆ addDiffRuntimeChecks()

◆ addDirectMem()

const MachineInstrBuilder & llvm::addDirectMem ( const MachineInstrBuilder & MIB,
Register 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 118 of file X86InstrBuilder.h.

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

◆ addEnumValues()

template<typename EnumTy1, typename EnumTy2, typename UT1 = std::enable_if_t<std::is_enum<EnumTy1>::value, std::underlying_type_t<EnumTy1>>, typename UT2 = std::enable_if_t<std::is_enum<EnumTy2>::value, std::underlying_type_t<EnumTy2>>>
auto llvm::addEnumValues ( EnumTy1 LHS,
EnumTy2 RHS )
constexpr

Helper which adds two underlying types of enumeration type.

Implicit conversion to a common type is accepted.

Definition at line 168 of file STLExtras.h.

References LHS, and RHS.

◆ addFixup() [1/2]

void llvm::addFixup ( SmallVectorImpl< MCFixup > & Fixups,
uint32_t Offset,
const MCExpr * Value,
uint16_t Kind )
static

Definition at line 38 of file AVRMCCodeEmitter.cpp.

References llvm::MCFixup::create(), llvm::AVR::fixup_13_pcrel, llvm::AVR::fixup_7_pcrel, and Offset.

Referenced by llvm::PPCMCCodeEmitter::getAbsCondBrEncoding(), llvm::PPCMCCodeEmitter::getAbsDirectBrEncoding(), llvm::MipsMCCodeEmitter::getBranchTarget21OpValue(), llvm::MipsMCCodeEmitter::getBranchTarget21OpValueMM(), llvm::MipsMCCodeEmitter::getBranchTarget26OpValue(), llvm::MipsMCCodeEmitter::getBranchTarget26OpValueMM(), llvm::MipsMCCodeEmitter::getBranchTarget7OpValueMM(), llvm::MipsMCCodeEmitter::getBranchTargetOpValue(), llvm::MipsMCCodeEmitter::getBranchTargetOpValue1SImm16(), llvm::MipsMCCodeEmitter::getBranchTargetOpValueLsl2MMR6(), llvm::MipsMCCodeEmitter::getBranchTargetOpValueMM(), llvm::MipsMCCodeEmitter::getBranchTargetOpValueMMPC10(), llvm::MipsMCCodeEmitter::getBranchTargetOpValueMMR6(), llvm::PPCMCCodeEmitter::getCondBrEncoding(), llvm::PPCMCCodeEmitter::getDirectBrEncoding(), llvm::PPCMCCodeEmitter::getDispRI34PCRelEncoding(), llvm::PPCMCCodeEmitter::getDispRIEncoding(), llvm::PPCMCCodeEmitter::getDispRIX16Encoding(), llvm::PPCMCCodeEmitter::getDispRIXEncoding(), llvm::MipsMCCodeEmitter::getExprOpValue(), llvm::PPCMCCodeEmitter::getImm16Encoding(), llvm::PPCMCCodeEmitter::getImm34Encoding(), llvm::MipsMCCodeEmitter::getImmOpValue(), llvm::MipsMCCodeEmitter::getJumpOffset16OpValue(), llvm::MipsMCCodeEmitter::getJumpTargetOpValue(), llvm::MipsMCCodeEmitter::getJumpTargetOpValueMM(), llvm::MipsMCCodeEmitter::getSimm18Lsl3Encoding(), llvm::MipsMCCodeEmitter::getSimm19Lsl2Encoding(), llvm::PPCMCCodeEmitter::getTLSCallEncoding(), and llvm::PPCMCCodeEmitter::getTLSRegEncoding().

◆ addFixup() [2/2]

◆ addFrameReference() [1/4]

◆ addFrameReference() [2/4]

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 195 of file X86InstrBuilder.h.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addMemOperand(), addOffset(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), MI, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, llvm::MachineMemOperand::MOStore, and Offset.

◆ addFrameReference() [3/4]

const MachineInstrBuilder & llvm::addFrameReference ( const MachineInstrBuilder & MIB,
int FI,
int Offset = 0,
bool mem = true )
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 32 of file PPCInstrBuilder.h.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), and Offset.

Referenced by llvm::X86FrameLowering::emitEpilogue(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::X86FrameLowering::emitPrologue(), llvm::VETargetLowering::emitSjLjDispatchBlock(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::XtensaInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadStoreTileReg(), llvm::PPCRegisterInfo::lowerACCRestore(), llvm::PPCRegisterInfo::lowerACCSpilling(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDMRRestore(), llvm::PPCRegisterInfo::lowerDMRSpilling(), llvm::PPCRegisterInfo::lowerQuadwordRestore(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::PPCRegisterInfo::lowerWACCRestore(), llvm::PPCRegisterInfo::lowerWACCSpilling(), restoreCRs(), llvm::VETargetLowering::setupEntryBlockForSjLj(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), and llvm::XtensaInstrInfo::storeRegToStackSlot().

◆ addFrameReference() [4/4]

const MachineInstrBuilder & llvm::addFrameReference ( const MachineInstrBuilder & MIB,
int FI,
int Offset = 0,
bool ThreeOp = true )
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 32 of file VEInstrBuilder.h.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), and Offset.

◆ addFullAddress()

◆ addInnerLoopsToHeadersMap()

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

◆ addLiveIns()

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

Adds registers contained in LiveRegs to the block live-in list of MBB.

Does not add reserved registers.

Definition at line 268 of file LivePhysRegs.cpp.

References any_of(), assert(), llvm::MachineFunction::getRegInfo(), MBB, MRI, and TRI.

Referenced by computeAndAddLiveIns(), and llvm::MachineBasicBlock::splitAt().

◆ addLocationToRemarks()

void llvm::addLocationToRemarks ( OptimizationRemark & Remark,
DebugLoc DLoc )

Add location info to ORE message.

Definition at line 500 of file InlineAdvisor.cpp.

References First, llvm::DebugLoc::get(), Offset, and Remark.

Referenced by emitInlinedInto().

◆ addNumImm()

◆ addOffset() [1/2]

◆ addOffset() [2/2]

◆ AddOverflow()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, T > llvm::AddOverflow ( T X,
T Y,
T & Result )

Add two signed integers, computing the two's complement truncated result, returning true if overflow occurred.

Definition at line 712 of file MathExtras.h.

References T, X, and Y.

Referenced by llvm::ConstraintSystem::negate(), llvm::detail::CheckedInt::operator+(), llvm::DynamicAPInt::operator+(), llvm::DynamicAPInt::operator+=(), and llvm::InstructionCost::operator+=().

◆ addPredicatedMveVpredNOp()

void llvm::addPredicatedMveVpredNOp ( MachineInstrBuilder & MIB,
unsigned Cond )

◆ addPredicatedMveVpredROp()

void llvm::addPredicatedMveVpredROp ( MachineInstrBuilder & MIB,
unsigned Cond,
unsigned Inactive )

◆ addRegOffset()

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

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.

An example is: DWORD PTR [EAX + 4].

Definition at line 151 of file X86InstrBuilder.h.

References addOffset(), llvm::MachineInstrBuilder::addReg(), getKillRegState(), Offset, and Reg.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::emitEpilogue(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitSPUpdate(), and llvm::X86FrameLowering::restoreWin32EHStackPointers().

◆ addRegReg()

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

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

Definition at line 159 of file X86InstrBuilder.h.

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

Referenced by llvm::X86InstrInfo::convertToThreeAddress().

◆ addressSpaceToStorageClass()

SPIRV::StorageClass::StorageClass llvm::addressSpaceToStorageClass ( unsigned AddrSpace,
const SPIRVSubtarget & STI )

◆ addRuntimeChecks()

Value * llvm::addRuntimeChecks ( Instruction * Loc,
Loop * TheLoop,
const SmallVectorImpl< RuntimePointerCheck > & PointerChecks,
SCEVExpander & Expander,
bool HoistRuntimeChecks = false )

Add code that checks at runtime if the accessed arrays in PointerChecks overlap.

Returns the final comparator value or NULL if no check is needed.

Definition at line 2064 of file LoopUtils.cpp.

References A(), assert(), B(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateICmpSLT(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateOr(), expandBounds(), HoistRuntimeChecks, and llvm::IRBuilderBase::SetInsertPoint().

Referenced by llvm::LoopVersioning::versionLoop().

◆ addStringImm() [1/3]

void llvm::addStringImm ( const StringRef & Str,
IRBuilder<> & B,
std::vector< Value * > & Args )

Definition at line 70 of file SPIRVUtils.cpp.

References B(), convertCharsToWord(), and getPaddedLen().

◆ addStringImm() [2/3]

void llvm::addStringImm ( const StringRef & Str,
MachineInstrBuilder & MIB )

◆ addStringImm() [3/3]

◆ addStringMetadataToLoop()

◆ addUnpredicatedMveVpredNOp()

◆ addUnpredicatedMveVpredROp()

void llvm::addUnpredicatedMveVpredROp ( MachineInstrBuilder & MIB,
Register DestReg )

◆ adjustKnownBitsForSelectArm()

◆ adjustPqBits()

◆ adl_begin()

template<typename RangeT>
auto llvm::adl_begin ( RangeT && range) -> decltype(adl_detail::begin_impl(std::forward<RangeT>(range)))
constexpr

Returns the begin iterator to range using std::begin and function found through Argument-Dependent Lookup (ADL).

Definition at line 78 of file ADL.h.

References llvm::adl_detail::begin_impl().

Referenced by accumulate(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::addRange(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::addRangeElements(), all_equal(), all_of(), any_of(), append_range(), binary_search(), binary_search(), llvm::concat_iterator< ValueT, decltype(adl_begin(std::declval< RangeTs & >()))... >::concat_iterator(), copy(), copy_if(), count(), count_if(), llvm::DenseMap< const BlockT *, const BlockT * >::DenseMap(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::DenseSetImpl(), drop_begin(), drop_end(), equal(), equal(), fill(), find(), find_if(), find_if_not(), for_each(), llvm::DagInit::getArgAndNames(), llvm::MachineInstr::getDebugOperandIndex(), getSingleElement(), hash_combine_range(), hasNItems(), hasNItemsOrLess(), hasNItemsOrMore(), hasSingleElement(), includes(), includes(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::insert_range(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::insert_range(), llvm::SetVector< EdgeType * >::insert_range(), llvm::SmallPtrSetImpl< MachineInstr * >::insert_range(), llvm::SmallSet< Register, 16 >::insert_range(), llvm::StringSet< AllocatorTy >::insert_range(), interleave(), interleave(), is_contained(), is_sorted(), is_sorted(), llvm::MachineInstr::isDebugOperand(), llvm::iterator_range< iterator >::iterator_range(), lower_bound(), lower_bound(), make_early_inc_range(), make_filter_range(), make_first_range(), make_second_range(), map_range(), max_element(), max_element(), min_element(), min_element(), mismatch(), move(), none_of(), llvm::BranchProbability::normalizeProbabilities(), partition(), partition_point(), range_size(), remove_if(), replace(), replace(), replace_copy(), replace_copy_if(), reverse(), llvm::SetVector< EdgeType * >::SetVector(), llvm::SmallDenseMap< LocPair, CacheEntry, 8 >::SmallDenseMap(), llvm::SmallPtrSet< NodeRef, SmallSize >::SmallPtrSet(), llvm::SmallSet< Register, 16 >::SmallSet(), sort(), sort(), stable_sort(), stable_sort(), llvm::StringSet< AllocatorTy >::StringSet(), transform(), uninitialized_copy(), unique(), unique(), upper_bound(), and upper_bound().

◆ adl_end()

template<typename RangeT>
auto llvm::adl_end ( RangeT && range) -> decltype(adl_detail::end_impl(std::forward<RangeT>(range)))
constexpr

Returns the end iterator to range using std::end and functions found through Argument-Dependent Lookup (ADL).

Definition at line 86 of file ADL.h.

References llvm::adl_detail::end_impl().

Referenced by accumulate(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::addRange(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::addRangeElements(), all_equal(), all_of(), any_of(), append_range(), binary_search(), binary_search(), llvm::concat_iterator< ValueT, decltype(adl_begin(std::declval< RangeTs & >()))... >::concat_iterator(), copy(), copy_if(), count(), count_if(), llvm::DenseMap< const BlockT *, const BlockT * >::DenseMap(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::DenseSetImpl(), drop_begin(), drop_end(), equal(), equal(), fill(), find(), find_if(), find_if_not(), for_each(), hash_combine_range(), hasNItems(), hasNItemsOrLess(), hasNItemsOrMore(), hasSingleElement(), includes(), includes(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::insert_range(), llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair< ValueT > >, ValueInfoT >< ValueT, ValueInfoT >::insert_range(), llvm::SetVector< EdgeType * >::insert_range(), llvm::SmallPtrSetImpl< MachineInstr * >::insert_range(), llvm::SmallSet< Register, 16 >::insert_range(), llvm::StringSet< AllocatorTy >::insert_range(), interleave(), interleave(), is_contained(), is_sorted(), is_sorted(), llvm::MachineInstr::isDebugOperand(), llvm::iterator_range< iterator >::iterator_range(), lower_bound(), lower_bound(), make_early_inc_range(), make_filter_range(), map_range(), max_element(), max_element(), min_element(), min_element(), mismatch(), move(), none_of(), llvm::BranchProbability::normalizeProbabilities(), partition(), partition_point(), range_size(), remove_if(), replace(), replace(), replace_copy(), replace_copy_if(), reverse(), llvm::SetVector< EdgeType * >::SetVector(), llvm::SmallDenseMap< LocPair, CacheEntry, 8 >::SmallDenseMap(), llvm::SmallPtrSet< NodeRef, SmallSize >::SmallPtrSet(), llvm::SmallSet< Register, 16 >::SmallSet(), sort(), sort(), stable_sort(), stable_sort(), llvm::StringSet< AllocatorTy >::StringSet(), transform(), uninitialized_copy(), unique(), unique(), upper_bound(), and upper_bound().

◆ adl_rbegin()

template<typename RangeT>
auto llvm::adl_rbegin ( RangeT && range) -> decltype(adl_detail::rbegin_impl(std::forward<RangeT>(range)))
constexpr

Returns the reverse-begin iterator to range using std::rbegin and function found through Argument-Dependent Lookup (ADL).

Definition at line 94 of file ADL.h.

References llvm::adl_detail::rbegin_impl().

Referenced by reverse().

◆ adl_rend()

template<typename RangeT>
auto llvm::adl_rend ( RangeT && range) -> decltype(adl_detail::rend_impl(std::forward<RangeT>(range)))
constexpr

Returns the reverse-end iterator to range using std::rend and functions found through Argument-Dependent Lookup (ADL).

Definition at line 102 of file ADL.h.

References llvm::adl_detail::rend_impl().

Referenced by reverse().

◆ adl_size()

template<typename RangeT>
auto llvm::adl_size ( RangeT && range) -> decltype(adl_detail::size_impl(std::forward<RangeT>(range)))
constexpr

Returns the size of range using std::size and functions found through Argument-Dependent Lookup (ADL).

Definition at line 118 of file ADL.h.

References llvm::adl_detail::size_impl().

Referenced by range_size().

◆ adl_swap()

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

Swaps lhs with rhs using std::swap and functions found through Argument-Dependent Lookup (ADL).

Definition at line 110 of file ADL.h.

References llvm::adl_detail::swap_impl(), and T.

◆ alignAddr()

◆ alignDown()

◆ alignTo() [1/7]

TypeSize llvm::alignTo ( TypeSize Size,
uint64_t Align )
inlineconstexpr

Returns a TypeSize with a known minimum size that is the next integer (mod 2**64) that is greater than or equal to Quantity and is a multiple of Align.

Align must be non-zero.

Similar to the alignTo functions in MathExtras.h

Definition at line 418 of file TypeSize.h.

References assert(), and Size.

◆ alignTo() [2/7]

template<typename U, typename V, typename T = common_uint<U, V>>
T llvm::alignTo ( U Value,
V Align )
constexpr

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

Align must be non-zero.

Examples:

alignTo(5, 8) = 8
alignTo(17, 8) = 24
alignTo(~0LL, 8) = 0
alignTo(321, 255) = 510
uint64_t alignTo(uint64_t Size, Align A)
Returns a multiple of A needed to store Size bytes.
Definition Alignment.h:155

Will overflow only if result is not representable in T.

Definition at line 489 of file MathExtras.h.

References assert(), divideCeil(), and T.

◆ alignTo() [3/7]

template<typename U, typename V, typename W, typename T = common_uint<common_uint<U, V>, W>>
T llvm::alignTo ( U Value,
V Align,
W Skew )
constexpr

If non-zero Skew is specified, the return value will be a minimal integer that is greater than or equal to Size and equal to A * N + Skew for some integer N.

If Skew is larger than A, its value is adjusted to 'Skew mod A'. Align must be non-zero.

Examples:

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

May overflow.

Definition at line 535 of file MathExtras.h.

References alignTo(), assert(), and T.

◆ alignTo() [4/7]

uint64_t llvm::alignTo ( uint64_t Size,
Align A )
inline

Returns a multiple of A needed to store Size bytes.

Definition at line 155 of file Alignment.h.

References A(), and Size.

Referenced by llvm::StringTableBuilder::add(), addByteCountSuffix(), llvm::codeview::DebugChecksumsSubsection::addChecksum(), addData(), llvm::DwarfExpression::addExpression(), llvm::trailing_objects_internal::TrailingObjectsImpl< Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys... >::additionalSizeToAllocImpl(), addSection(), llvm::objcopy::coff::addSection(), AdjustStackOffset(), AdjustStackOffset(), AdjustStackOffset(), alignAddr(), llvm::memtag::alignAndPadAlloca(), llvm::LegalizeRuleSet::alignNumElementsTo(), alignTo(), alignTo(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::MapperJITLinkMemoryManager::allocate(), llvm::AMDGPUMachineFunction::allocateLDSGlobal(), llvm::cas::MappedFileRegionArena::allocateOffset(), llvm::SITargetLowering::allocatePreloadKernArgSGPRs(), llvm::CCState::AllocateStack(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), analyzeArguments(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), analyzeReturnValues(), llvm::CSKYAsmBackend::applyFixup(), llvm::LoongArchAsmBackend::applyFixup(), llvm::RISCVAsmBackend::applyFixup(), llvm::jitlink::aarch32::applyFixupThumb(), llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), buildCopyToRegs(), buildFatArchList(), buildFrameType(), buildRPathLoadCommand(), calculateDiSymbolStreamSize(), llvm::codeview::DebugSubsectionRecordBuilder::calculateSerializedLength(), llvm::pdb::const_iterator< SrcHeaderBlockEntry >::calculateSerializedLength(), llvm::pdb::DbiModuleDescriptorBuilder::calculateSerializedLength(), CalculateStackSlotUsed(), callBufferedPrintfStart(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), CC_AArch64_Custom_Block(), CC_AIX(), CC_ARM_AAPCS_Custom_Aggregate(), llvm::codeview::DebugSubsectionRecordBuilder::commit(), computeAllocationSizeForSections(), computeCalleeSaveRegisterPairs(), computeFPBPAlignmentGap(), ComputeLinkerOptionsLoadCommandSize(), computeMemberData(), llvm::MachObjectWriter::computeSectionAddresses(), llvm::RuntimeDyldImpl::computeTotalAllocSize(), llvm::jitlink::SimpleSegmentAlloc::Create(), llvm::orc::LocalIndirectStubsInfo< ORCABI >::create(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), llvm::gsym::GsymCreator::createSegment(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), determineSVEStackObjectOffsets(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::M68kFrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::AsmPrinter::emitConstantPool(), llvm::DWARFYAML::emitDebugAranges(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::M68kFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::CodeViewContext::emitFileChecksums(), emitGlobalConstantLargeInt(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitHiddenKernelArgs(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV5::emitHiddenKernelArgs(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), llvm::M68kFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), emitThumbRegPlusImmediate(), EnsureStackAlignment(), llvm::LegalizerHelper::equalizeVectorShuffleLengths(), llvm::MachineFunction::estimateFunctionSizeInBytes(), llvm::MachineFrameInfo::estimateStackSize(), llvm::MipsFrameLowering::estimateStackSize(), llvm::DWARFDebugNames::Header::extract(), llvm::orc::EPCGenericJITLinkMemoryManager::InFlightAlloc::finalize(), llvm::orc::EPCGenericRTDyldMemoryManager::finalizeMemory(), llvm::wholeprogramdevirt::findLowestOffset(), llvm::AMDGPU::getAddrSizeMIMGOp(), llvm::SparcSubtarget::getAdjustedFrameSize(), llvm::VESubtarget::getAdjustedFrameSize(), llvm::CCState::getAlignedCallFrameSize(), getBaseObjectSize(), llvm::AArch64FunctionInfo::getCalleeSavedStackSize(), llvm::jitlink::BasicLayout::getContiguousPageBasedLayoutSizes(), getCoverTy(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::SIProgramInfo::getFunctionCodeSize(), llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), llvm::orc::getIndirectStubsBlockSizes(), getInputSegmentList(), M68kDisassembler::getInstruction(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::X86TTIImpl::getIntImmCost(), llvm::AMDGPUSubtarget::getKernArgSegmentSize(), getMaxBitmapSize(), llvm::GCNSubtarget::getMaxNumVectorRegs(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::object::ArchiveMemberHeader::getNextChildLoc(), llvm::objcopy::coff::getNextRVA(), llvm::InstrProfMCDCBitmapInstBase::getNumBitmapBytes(), llvm::AMDGPU::IsaInfo::getNumWavesPerEUWithNumVGPRs(), llvm::object::BigArchiveMemberHeader::getRawName(), llvm::pdb::DbiModuleDescriptor::getRecordLength(), llvm::GCNTTIImpl::getShuffleCost(), llvm::object::BigArchiveMemberHeader::getSize(), llvm::X86InstrInfo::getSPAdjust(), llvm::RISCVZC::getStackAdjBase(), llvm::RISCVFrameLowering::getStackSizeWithRVVPadding(), llvm::AMDGPU::getTotalNumVGPRs(), llvm::DataLayout::getTypeAllocSize(), llvm::GCNRegPressure::getUnifiedVGPRNum(), getUUID(), llvm::AArch64FrameLowering::getWinEHFuncletFrameSize(), llvm::CCState::HandleByVal(), llvm::MipsTargetLowering::HandleByVal(), INITIALIZE_PASS(), initializeOptionalHeader(), isOutsideLoopWorkProfitable(), llvm::orc::MachOBuilder< MachOTraits >::layout(), layoutCOFF(), layoutSections(), layoutSectionsForOnlyKeepDebug(), layoutSegments(), loadBinaryFormat(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::NVPTXTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), lowerKernelArguments(), llvm::AMDGPUCallLowering::lowerTailCall(), markKernelArgsAsInreg(), offsetToAlignment(), llvm::VarStreamArrayExtractor< T >::operator()(), llvm::VarStreamArrayExtractor< codeview::DebugSubsectionRecord >::operator()(), llvm::raw_ostream::operator<<(), pad(), llvm::BinaryStreamReader::padToAlignment(), llvm::BinaryStreamWriter::padToAlignment(), llvm::object::DirectX::PSVRuntimeInfo::parse(), performOptimizedStructLayout(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::SystemZXPLINKFrameLowering::processFunctionBeforeFrameFinalized(), llvm::RuntimeDyldELF::processRelocationRef(), readGSIHashBuckets(), llvm::BitstreamCursor::readRecord(), llvm::jitlink::relaxAlign(), llvm::orc::EPCGenericRTDyldMemoryManager::reserveAllocationSpace(), llvm::BitVector::reset(), scavengeStackSlot(), serializePublic(), llvm::BitVector::set(), llvm::AMDGPUMachineFunction::setDynLDSAlign(), setSectionType(), llvm::RuntimeDyldCOFF::sizeAfterAddingDLLImportStub(), sizeOfPublic(), llvm::BitstreamCursor::skipRecord(), tagGlobalDefinition(), llvm::hlsl::translateCBufArrayOffset(), updateLoadCommandPayloadString(), llvm::StrOffsetsContributionDescriptor::validateContributionSize(), VarAndRedzoneSize(), verifyNoteSection(), llvm::LegalizeMutations::widenScalarOrEltToNextMultipleOf(), llvm::object::OffloadBinary::write(), writeArchiveToStream(), llvm::DXContainerObjectWriter::writeObject(), llvm::MachObjectWriter::writeObject(), llvm::pdb::writeSparseBitVector(), llvm::orc::OrcAArch64::writeTrampolines(), llvm::orc::OrcLoongArch64::writeTrampolines(), and llvm::orc::OrcRiscv64::writeTrampolines().

◆ alignTo() [5/7]

uint64_t llvm::alignTo ( uint64_t Size,
Align A,
uint64_t Skew )
inline

If non-zero Skew is specified, the return value will be a minimal integer that is greater than or equal to Size and equal to A * N + Skew for some integer N.

If Skew is larger than A, its value is adjusted to 'Skew mod A'.

Examples:

alignTo(5, Align(8), 7) = 7
alignTo(17, Align(8), 1) = 17
alignTo(~0LL, Align(8), 3) = 3

Definition at line 180 of file Alignment.h.

References A(), alignTo(), and Size.

◆ alignTo() [6/7]

uint64_t llvm::alignTo ( uint64_t Value,
uint64_t Align )
constexpr

Fallback when arguments aren't integral.

Definition at line 496 of file MathExtras.h.

References assert(), and divideCeil().

◆ alignTo() [7/7]

template<auto Align, typename V, typename T = common_uint<decltype(Align), V>>
T llvm::alignTo ( V Value)
constexpr

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

Align must be non-zero.

Will overflow only if result is not representable in T.

Definition at line 546 of file MathExtras.h.

References divideCeil(), and T.

◆ alignToPowerOf2() [1/2]

template<typename U, typename V, typename T = common_uint<U, V>>
T llvm::alignToPowerOf2 ( U Value,
V Align )
constexpr

◆ alignToPowerOf2() [2/2]

uint64_t llvm::alignToPowerOf2 ( uint64_t Value,
uint64_t Align )
constexpr

Fallback when arguments aren't integral.

Definition at line 512 of file MathExtras.h.

References assert().

◆ all_equal() [1/2]

template<typename R>
bool llvm::all_equal ( R && Range)

Returns true if all elements in Range are equal or when the Range is empty.

Definition at line 2080 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

◆ all_equal() [2/2]

◆ 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 1705 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by llvm::ResourceSegments::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::Loc::MMI::addFrameIndexExpr(), addFullyUnrolledInstructionsToIgnore(), addNoUndefAttrs(), llvm::DebugLocEntry::addValues(), llvm::ConstraintSystem::addVariableRow(), llvm::ConstraintSystem::addVariableRowFill(), allCallersPassValidPointerForArgument(), allConstant(), llvm::BitsInit::allInComplete(), llvm::ISD::allOperandsUndef(), allSameBlock(), allSameType(), allZeroIndices(), llvm::BitVector::apply(), llvm::LoopNest::areAllLoopsRotatedForm(), llvm::LoopNest::areAllLoopsSimplifyForm(), areAllOperandsNonInsts(), llvm::X86TTIImpl::areInlineCompatible(), areLoadedOffsetButOtherwiseSame(), areTypesABICompatible(), blockEndIsUnreachable(), llvm::slpvectorizer::BoUpSLP::buildExternalUses(), llvm::MachineIRBuilder::buildInstr(), buildModuleSummaryIndex(), llvm::SwitchInstProfUpdateWrapper::buildProfBranchWeightsMD(), llvm::ValueInfo::canAutoHide(), canConvertToFMA(), canConvertToMinOrMaxIntrinsic(), canonicalizeShuffleMaskWithHorizOp(), canPeel(), canRemat(), canSinkInstructions(), canTrackGlobalVariableInterprocedurally(), canTRE(), llvm::LoopVectorizationLegality::canVectorizeFPMath(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::LoopVectorizationCostModel::canVectorizeReductions(), canVectorizeStructTy(), llvm::MCSubtargetInfo::checkFeatures(), llvm::Attributor::checkForAllReturnedValues(), checkLoopsStructure(), llvm::SCEVExpanderCleaner::cleanup(), clusterSortPtrAccesses(), llvm::VPRecipeBuilder::collectScaledReductions(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), combineAnd(), combineBitcastvxi1(), combineConcatVectorOfShuffleAndItsOperands(), combineConcatVectorOps(), combineEXTRACT_SUBVECTOR(), combineExtractVectorElt(), combineHorizOpWithShuffle(), combineINSERT_SUBVECTOR(), combineShuffleToZeroExtendVectorInReg(), combineUnpackingMovIntoLoad(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), completeEphemeralValues(), llvm::VPWidenSelectRecipe::computeCost(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computePointerICmp(), ConstantFoldGetElementPtr(), ConstantFoldInstruction(), ConstantFoldShuffleVectorInstruction(), constructSVEIntrinsicInfo(), containsOnlyConstantData(), llvm::AllocationOrder::create(), llvm::RISCVFrameLowering::determineCalleeSaves(), doesNotNeedToSchedule(), doesStoreDominatesAllLatches(), dropTypeTests(), llvm::BitstreamWriter::emitBlob(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::DwarfDebug::emitInitialLocDirective(), LiveDebugValues::MLocTracker::emitLoc(), llvm::HexagonInstrInfo::expandPostRAPseudo(), expandToSwitch(), filterDeadComdatFunctions(), llvm::DebugLocEntry::finalize(), llvm::RISCVInstrInfo::finalizeInsInstrs(), findBestNonTrivialUnswitchCandidate(), findReturnsToZap(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), foldBranchToCommonDest(), FoldBUILD_VECTOR(), foldCONCAT_VECTORS(), llvm::SelectionDAG::FoldConstantArithmetic(), foldGEPChainAsStructAccess(), llvm::InstCombinerImpl::foldICmpWithConstant(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldPHIArgIntToPtrToPHI(), formSplatFromShuffles(), functionWillReturn(), llvm::AMDGPU::ClusterDimsAttr::get(), llvm::ScalarEvolution::getAddRecExpr(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), getGEPCosts(), getHeaders(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::VPlan::getLiveIns(), getMask(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::TargetLowering::getNegatedExpression(), getPerfectShuffleCost(), llvm::AArch64RegisterInfo::getRegAllocationHints(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getSameOpcode(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), getShuffleDemandedElts(), getShufflevectorNumGroups(), getSHUFPDImm(), llvm::Constant::getSplatValue(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getV4X86ShuffleImm(), llvm::SelectionDAG::getVectorShuffle(), llvm::InstCombinerImpl::handlePotentiallyDeadBlocks(), llvm::TextCodeGenDataReader::hasFormat(), llvm::Loop::hasLoopInvariantOperands(), hasOnlySelectUsers(), hasPartialIVCondition(), hoistGEP(), hoistLockstepIdenticalDbgVariableRecords(), hoistPreviousBeforeFORUsers(), hoistRegion(), llvm::SCEVUnionPredicate::implies(), impliesPoison(), llvm::BasicTTIImplBase< BasicTTIImpl >::improveShuffleKindFromMask(), incomingValuesAreCompatible(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), llvm::yaml::ScalarTraits< memprof::GUIDHex64 >::input(), insert1BitVector(), llvm::SCEVUnionPredicate::isAlwaysTrue(), isASCastInGVar(), isAsciiString(), llvm::IRSimilarity::isClose(), isCommutative(), llvm::BitsInit::isComplete(), llvm::CondOpInit::isComplete(), llvm::ListInit::isComplete(), llvm::PHINode::isComplete(), llvm::BitsInit::isConcrete(), llvm::CondOpInit::isConcrete(), llvm::DagInit::isConcrete(), llvm::ListInit::isConcrete(), llvm::ConstraintSystem::isConditionImplied(), isConsecutiveInterleaveGroup(), isDeadRecipe(), llvm::ValueInfo::isDSOLocal(), isDUPFirstSegmentMask(), isDUPQMask(), isEphemeralValueOf(), isFSqrtDivToFMulLegal(), isFullDominator(), isFullPostDominator(), isGuaranteedNotToBeUndefOrPoison(), isGuaranteedNotToBeUndefOrPoison(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), llvm::TargetLowering::isGuaranteedNotToBeUndefOrPoisonForTargetNode(), isHeader(), isHorizontalBinOp(), llvm::slpvectorizer::BoUpSLP::isIdentityOrder(), isInvariantLoad(), isKnownNonZeroFromOperator(), isKnownToBeAPowerOfTwo(), llvm::ScalarEvolution::isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::Loop::isLCSSAForm(), isLoopDead(), isLowHalfOnly(), isLowSourceShuffle(), llvm::ShuffleVectorInst::isOneUseSingleSourceMask(), isOnlyUsedInZeroComparison(), isOnlyUsedInZeroEqualityComparison(), llvm::slpvectorizer::BoUpSLP::isProfitableToReorder(), llvm::Loop::isRecursivelyLCSSAForm(), isReplicationMaskWithParams(), llvm::MachineRegisterInfo::isReservedRegUnit(), isReverseOrder(), isSafeToMoveBefore(), llvm::IRSimilarity::IRSimilarityCandidate::isSimilar(), llvm::vputils::isSingleScalar(), llvm::orc::SpeculateQuery::isStraightLine(), isStructurallyValidScheme(), isTargetShuffleEquivalent(), llvm::slpvectorizer::BoUpSLP::isTreeNotExtendable(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), isUndefInRange(), isUndefOrEqual(), isUndefOrEqualInRange(), isUndefOrInRange(), isUndefOrZeroInRange(), isUndefOrZeroOrInRange(), llvm::LoopVectorizationLegality::isUniform(), llvm::vputils::isUniformAcrossVFsAndUFs(), isUsedOutsideBlock(), isVariantApplicableInContextHelper(), isVectorizedStructTy(), llvm::jitlink::JITLinkerBase::linkPhase1(), lowerBUILD_VECTOR(), LowerBUILD_VECTOR_i1(), lowerBuildVectorAsBroadcast(), llvm::AMDGPUCallLowering::lowerChainCall(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), lowerShuffleAsLanePermuteAndShuffle(), lowerV4F64Shuffle(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE(), llvm::PatternMatch::m_SplatOrPoisonMask::match(), llvm::PatternMatch::m_ZeroMask::match(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::CombinerHelper::matchAllExplicitUsesAreUndef(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchUndefShuffleVectorMask(), MatchVectorAllEqualTest(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::MemSeedBundle(), llvm::TargetInstrInfo::mergeOutliningCandidateAttributes(), moveLCSSAPhis(), llvm::VPlanTransforms::narrowInterleaveGroups(), narrowToSingleScalarRecipes(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::needToDelay(), llvm::VPBlendRecipe::onlyFirstLaneUsed(), llvm::vputils::onlyFirstLaneUsed(), llvm::VPWidenIntrinsicRecipe::onlyFirstLaneUsed(), llvm::vputils::onlyFirstPartUsed(), llvm::vputils::onlyScalarValuesUsed(), operator==(), optimizeDivRem(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), optimizeMaskToEVL(), OptimizeNonTrivialIFuncs(), llvm::RISCVISAInfo::parseArchString(), llvm::RISCVISAInfo::parseNormalizedArchString(), partitionShuffleOfConcats(), llvm::AMDGPUCallLowering::passSpecialInputs(), llvm::SITargetLowering::passSpecialInputs(), performConcatVectorsCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), llvm::ARMTargetLowering::PerformMVETruncCombine(), performZExtDeinterleaveShuffleCombine(), preparePlanForEpilogueVectorLoop(), llvm::InstCombinerImpl::prepareWorklist(), llvm::X86InstrInfo::preservesZeroValueInReg(), PrintShuffleMask(), promoteLoopAccessesToScalars(), pushAddIntoCmovOfConsts(), llvm::SDValue::reachesChainWithoutSideEffects(), llvm::sandboxir::SchedBundle::ready(), recognizeBSwapOrBitReverseIdiom(), TransferTracker::redefVar(), refineInstruction(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::objcopy::elf::Object::removeSections(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), reorderOrder(), rewritePHIs(), runAttributorLightOnFunctions(), runAttributorOnFunctions(), runIPSCCP(), runOnKernelFunction(), scalarizeInstruction(), llvm::RISCVDAGToDAGISel::selectInvLogicImm(), llvm::RISCVDAGToDAGISel::selectNegImm(), shiftAmountKnownInRange(), llvm::LoopVectorizationCostModel::shouldConsiderInvariant(), llvm::X86TargetLowering::shouldReduceLoadWidth(), shouldSplitOnPredicatedArgument(), shouldUseSwitchConditionAsTableIndex(), simplifyBranchConditionForVFAndUF(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyGEPInst(), simplifyInstructionWithOperands(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), simplifyRecipe(), simplifyShuffleVectorInst(), simplifySwitchLookup(), simplifyUsingControlFlow(), simplifyX86varShift(), sinkCommonCodeFromPredecessors(), sinkLoopInvariantInstructions(), sinkScalarOperands(), sortPtrAccesses(), StrengthenNoWrapFlags(), stripDebugLocFromLoopID(), llvm::MachineBasicBlock::terminatorIsComputedGotoWithSuccessors(), toVectorizedStructTy(), llvm::slpvectorizer::BoUpSLP::transformNodes(), transformRecipestoEVLRecipes(), llvm::HexagonShuffler::tryAuction(), tryInterleave(), llvm::sandboxir::Scheduler::trySchedule(), tryToFindDuplicates(), tryToFindRegisterToRename(), tryToReplaceALMWithWideALM(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), turnVectorIntoSplatVector(), llvm::RecordRecTy::typeIsConvertibleTo(), unswitchNontrivialInvariants(), unswitchTrivialSwitch(), llvm::mca::Instruction::updateDispatched(), llvm::ARMFrameLowering::updateLRRestored(), llvm::mca::Instruction::updatePending(), validThroughout(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::SIInstrInfo::verifyInstruction(), verifySubExpr(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitIntToPtr(), llvm::InstCombinerImpl::visitPHINode(), llvm::InstCombinerImpl::visitSwitchInst(), widenBuildVec(), widenSubVector(), wouldInstructionBeTriviallyDead(), llvm::coverage::CoverageMappingWriter::write(), and llvm::TimeTraceProfiler::write().

◆ all_of_zip()

template<typename... ArgsAndPredicate>
bool llvm::all_of_zip ( ArgsAndPredicate &&... argsAndPredicate)

Compare two zipped ranges using the provided predicate (as last argument).

Return true if all elements satisfy the predicate and false otherwise.

Definition at line 2500 of file STLExtras.h.

References llvm::detail::all_of_zip_predicate_last().

◆ allocate_buffer()

LLVM_ATTRIBUTE_RETURNS_NONNULL LLVM_ATTRIBUTE_RETURNS_NOALIAS void * llvm::allocate_buffer ( size_t Size,
size_t Alignment )

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

When the compiler supports aligned operator new, this will use it 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 15 of file MemAlloc.cpp.

References report_bad_alloc_error(), and Size.

Referenced by llvm::MallocAllocator::Allocate(), and llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase().

◆ allocValueProfData()

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

Definition at line 1247 of file InstrProf.cpp.

◆ allocValueProfDataInstrProf()

ValueProfData * llvm::allocValueProfDataInstrProf ( size_t TotalSizeInBytes)

Definition at line 1162 of file InstrProf.cpp.

◆ analyzeArguments()

template<typename ArgT>
void llvm::analyzeArguments ( TargetLowering::CallLoweringInfo * CLI,
const Function * F,
const DataLayout * TD,
const SmallVectorImpl< ArgT > & Args,
SmallVectorImpl< CCValAssign > & ArgLocs,
CCState & CCInfo,
bool Tiny )
static

Analyze incoming and outgoing function arguments.

We need custom C++ code to handle special constraints in the ABI. 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 1176 of file AVRISelLowering.cpp.

References llvm::CCState::addLoc(), alignTo(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), ArrayRef(), assert(), F, llvm::CCValAssign::Full, llvm::DataLayout::getABITypeAlign(), llvm::CCState::getContext(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getStoreSize(), llvm::DataLayout::getTypeAllocSize(), llvm::EVT::getTypeForEVT(), llvm_unreachable, Offset, Reg, RegList16AVR, RegList16Tiny, RegList8AVR, RegList8Tiny, and llvm::ArrayRef< T >::size().

◆ analyzeContextInfo()

void llvm::analyzeContextInfo ( const DWARFDie & DIE,
unsigned ParentIdx,
CompileUnit & CU,
DeclContext * CurrentDeclContext,
DeclContextTree & Contexts,
uint64_t ModulesEndOffset,
DWARFLinkerBase::SwiftInterfacesMapTy * ParseableSwiftInterfaces,
std::function< void(const Twine &, const DWARFDie &)> ReportWarning )
static

Recursive helper to build the global DeclContext information and gather the child->parent relationships in the original compile unit.

This function uses the same work list approach as lookForDIEsToKeep.

Returns
true when this DIE and all of its children are only forward declarations to types defined in external clang modules (i.e., forward declarations that are children of a DW_TAG_module).

Definition at line 305 of file DWARFLinker.cpp.

References AnalyzeContextInfo, analyzeImportedModule(), llvm::DWARFDie::children(), llvm::ContextWorklistItem::Context, llvm::ContextWorklistItem::Die, llvm::DWARFDie::find(), llvm::dwarf_linker::classic::DeclContextTree::getChildDeclContext(), llvm::DWARFDie::getTag(), Info, llvm::ContextWorklistItem::InImportedModule, llvm::ContextWorklistItem::OtherInfo, llvm::ContextWorklistItem::ParentIdx, reverse(), llvm::dwarf::toString(), llvm::ContextWorklistItem::Type, UpdateChildPruning, updateChildPruning(), UpdatePruning, and updatePruning().

Referenced by llvm::dwarf_linker::classic::DWARFLinker::link().

◆ analyzeICmp()

◆ analyzeImportedModule()

void llvm::analyzeImportedModule ( const DWARFDie & DIE,
CompileUnit & CU,
DWARFLinkerBase::SwiftInterfacesMapTy * ParseableSwiftInterfaces,
std::function< void(const Twine &, const DWARFDie &)> ReportWarning )
static

◆ analyzeKnownBitsFromAndXorOr()

KnownBits llvm::analyzeKnownBitsFromAndXorOr ( const Operator * I,
const KnownBits & KnownLHS,
const KnownBits & KnownRHS,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Using KnownBits LHS/RHS produce the known bits for logic op (and/xor/or).

Definition at line 1084 of file ValueTracking.cpp.

References Depth, dyn_cast(), llvm::APInt::getAllOnes(), getKnownBitsFromAndXorOr(), and I.

Referenced by llvm::InstCombinerImpl::SimplifyDemandedUseBits(), and llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits().

◆ AnalyzePhysRegInBundle()

PhysRegInfo llvm::AnalyzePhysRegInBundle ( const MachineInstr & MI,
Register Reg,
const TargetRegisterInfo * TRI )

AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses a physical register.

This function should not be called after operator++(), it expects a fresh iterator.

Parameters
RegThe physical register to analyze.
Returns
A filled-in PhysRegInfo struct.

Definition at line 308 of file MachineInstrBundle.cpp.

References assert(), llvm::PhysRegInfo::Clobbered, const_mi_bundle_ops(), llvm::PhysRegInfo::DeadDef, llvm::PhysRegInfo::Defined, llvm::PhysRegInfo::FullyDefined, llvm::PhysRegInfo::FullyRead, llvm::Register::isPhysical(), llvm::PhysRegInfo::Killed, MI, llvm::PhysRegInfo::PartialDeadDef, llvm::PhysRegInfo::Read, and TRI.

Referenced by llvm::MachineBasicBlock::computeRegisterLiveness().

◆ analyzeReturnValues()

template<typename ArgT>
void llvm::analyzeReturnValues ( const SmallVectorImpl< ArgT > & Args,
CCState & CCInfo,
bool Tiny )
static

Analyze incoming and outgoing value of returning from a function.

The algorithm is similar to analyzeArguments, but there can only be one value, possibly an aggregate, and it is limited to 8 bytes.

Definition at line 1269 of file AVRISelLowering.cpp.

References llvm::CCState::addLoc(), alignTo(), llvm::CCState::AllocateReg(), ArrayRef(), assert(), llvm::CCValAssign::Full, llvm::CCValAssign::getReg(), llvm::MVT::getStoreSize(), getTotalArgumentsSizeInBytes(), llvm_unreachable, Reg, RegList16AVR, RegList16Tiny, RegList8AVR, and RegList8Tiny.

◆ AnalyzeVirtRegInBundle()

VirtRegInfo llvm::AnalyzeVirtRegInBundle ( MachineInstr & MI,
Register Reg,
SmallVectorImpl< std::pair< MachineInstr *, unsigned > > * Ops = nullptr )

AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses a virtual register.

This function should not be called after operator++(), it expects a fresh iterator.

Parameters
RegThe virtual register to analyze.
OpsWhen set, this vector will receive an (MI, OpNum) entry for each operand referring to Reg.
Returns
A filled-in RegInfo struct.

Definition at line 251 of file MachineInstrBundle.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), llvm::MachineInstr::isRegTiedToDefOperand(), MI, llvm::VirtRegInfo::Reads, llvm::MachineOperand::readsReg(), llvm::VirtRegInfo::Tied, and llvm::VirtRegInfo::Writes.

Referenced by foldInlineAsmMemOperand(), and getInstReadLaneMask().

◆ AnalyzeVirtRegLanesInBundle()

std::pair< LaneBitmask, LaneBitmask > llvm::AnalyzeVirtRegLanesInBundle ( const MachineInstr & MI,
Register Reg,
const MachineRegisterInfo & MRI,
const TargetRegisterInfo & TRI )

Return a pair of lane masks (reads, writes) indicating which lanes this instruction uses with Reg.

Definition at line 282 of file MachineInstrBundle.cpp.

References const_mi_bundle_ops(), MI, MRI, SubReg, and TRI.

◆ AnnotateInlinePassName()

std::string llvm::AnnotateInlinePassName ( InlineContext IC)

◆ annotateValueSite() [1/2]

void llvm::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.

This function will not annotate !prof metadata on the instruction if the referenced array is empty.

Definition at line 1347 of file InstrProf.cpp.

References llvm::MDBuilder::createConstant(), llvm::MDBuilder::createString(), llvm::ArrayRef< T >::empty(), llvm::MDNode::get(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Instruction::setMetadata(), and llvm::MDProfLabels::ValueProfile.

◆ annotateValueSite() [2/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 1334 of file InstrProf.cpp.

References annotateValueSite(), llvm::InstrProfRecord::getValueArrayForSite(), and SaturatingAdd().

Referenced by addVPMetadata(), annotateValueSite(), and updateIDTMetaData().

◆ any_cast() [1/5]

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

Definition at line 147 of file Any.h.

◆ any_cast() [2/5]

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

Definition at line 142 of file Any.h.

◆ any_cast() [3/5]

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

Definition at line 159 of file Any.h.

◆ any_cast() [4/5]

◆ any_cast() [5/5]

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

Definition at line 152 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 1712 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by llvm::Instruction::addAnnotationMetadata(), addIntrinsicToSummary(), addLiveIns(), llvm::DwarfExpression::addMachineRegExpression(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::adjustExtracts(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), llvm::TypeBasedAAResult::aliasErrno(), allPathsGoThroughCold(), analyzeCandidate(), llvm::Bitset< AEK_NUM_EXTENSIONS >::any(), llvm::BitVector::any(), llvm::FeatureBitset::any(), llvm::DIExpression::appendOpsToArg(), applyFirstDebugLoc(), areInnerLoopExitPHIsSupported(), llvm::AArch64TTIImpl::areTypesABICompatible(), llvm::MultiHazardRecognizer::atIssueLimit(), llvm::DebugHandlerBase::beginFunction(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), buildVRegToDbgValueMap(), callHasFloatingPointArgument(), callHasFP128Argument(), canConstantFoldCallTo(), llvm::AutoInitRemark::canHandle(), canHoistIVInc(), canLoopBeDeleted(), canonicalizeShuffleMaskWithHorizOp(), canParallelizeReductionWhenUnrolling(), CanRedirectPredsOfEmptyBBToSucc(), canRenameUpToDef(), canRotateDeoptimizingLatchExit(), canSinkInstructions(), llvm::sandboxir::LegalityAnalysis::canVectorize(), llvm::LoopVectorizationLegality::canVectorizeFPMath(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), checkDenormalAttributeConsistency(), checkForMustTailInVarArgFn(), checkFunctionsAttributeConsistency(), checkLoopsStructure(), llvm::AArch64FunctionInfo::clearLinkerOptimizationHints(), clusterSortPtrAccesses(), collectEphemeralRecipesForVPlan(), collectPrivatizingConstructs(), collectUnswitchCandidates(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), combineExtractFromVectorLoad(), combineExtractWithShuffle(), combineShiftToMULH(), combineTargetShuffle(), combineX86ShuffleChain(), combineX86ShufflesConstants(), combineX86ShufflesRecursively(), llvm::IRSimilarity::IRSimilarityCandidate::compareStructure(), llvm::LoopVectorizationPlanner::computeBestVF(), computeDeadSymbolsAndUpdateIndirectCalls(), computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), containsBF16Type(), containsEpilogue(), containsGCPtrType(), containsGCPtrType(), llvm::DIExpression::convertToVariadicExpression(), llvm::VPlan::cost(), LiveDebugValues::DbgValue::DbgValue(), llvm::DbgValueLoc::DbgValueLoc(), directlyImpliesPoison(), doesInTreeUserNeedToExtract(), dontUseFastISelFor(), llvm::BasicBlock::dumpDbgValues(), ehAwareSplitEdge(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::DwarfDebug::emitDebugLocValue(), llvm::CodeViewContext::emitLineTableForFunction(), emitSelectPseudo(), emitSelectPseudo(), emitThumbRegPlusImmInReg(), llvm::VPRegisterUsage::exceedsMaxNumRegs(), llvm::logicalview::LVCompare::execute(), expandToSwitch(), llvm::AArch64CallLowering::fallBackToDAGISel(), llvm::objcopy::elf::ELFWriter< ELFT >::finalize(), findDefsUsedOutsideOfLoop(), findForkedSCEVs(), llvm::sys::Process::FindInEnvPath(), findNextInsertLocation(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), fixupDebugInfoPostExtraction(), foldCondBranchOnValueKnownInPredecessorImpl(), foldExtractSubvectorFromShuffleVector(), llvm::ConstantFolder::FoldGEP(), llvm::TargetFolder::FoldGEP(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), foldTwoEntryPHINode(), forAllMIsUntilDef(), gatherPossiblyVectorizableLoads(), getAppleRuntimeUnrollPreferences(), llvm::TargetTransformInfoImplBase::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), getCommonExitBlock(), llvm::SCCPInstVisitor::getConstantOrNull(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), getFauxShuffleMask(), getFreezeInsertPt(), llvm::SIInstrInfo::getGenericInstructionUniformity(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::PPCRegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::SIInstrInfo::getInstructionUniformity(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), llvm::GCNTTIImpl::getIntrinsicInstrCost(), getIntrinsicNameImpl(), getInvertedVectorForFMA(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(), llvm::NVPTXAAResult::getMemoryEffects(), llvm::TargetLowering::getNegatedExpression(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeLabel(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), getOpcode(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), llvm::ARMBaseInstrInfo::getOutliningCandidateInfo(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::StringSubstitution::getResultForDiagnostics(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), llvm::X86TTIImpl::getShuffleCost(), getSplatIndex(), getTargetConstantBitsFromNode(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), getVectorSplat(), llvm::SIInstrInfo::hasAnyModifiersSet(), hasAutoInitMetadata(), llvm::object::ObjectFile::hasDebugInfo(), llvm::MachineInstr::hasDebugOperandForReg(), llvm::mca::InstructionBase::hasDependentUsers(), hasHugeExpression(), hasIGLPInstrs(), llvm::HexagonShuffler::HasInstWith(), llvm::MachineInstr::hasOrderedMemoryRef(), hasPartialIVCondition(), llvm::LoopVectorizationPlanner::hasPlanWithVF(), hasReplicatorRegion(), hasSameValue(), llvm::VPlan::hasScalableVF(), hasSideeffectFreeStaticResolution(), hasTiedUseOf(), hasUsersIn(), llvm::sandboxir::CollectDescr::hasVectorInputs(), llvm::SIInstrInfo::hasVGPRUses(), hoistAndMergeSGPRInits(), llvm::SCEVUnionPredicate::implies(), insertIfNotContained(), insertSpills(), llvm::X86TTIImpl::instCombineIntrinsic(), isAddressBase(), isAnyArgRegReserved(), llvm::AArch64RegisterInfo::isAnyArgRegReserved(), llvm::slpvectorizer::BoUpSLP::isAnyGathered(), isAnyInRange(), llvm::outliner::Candidate::isAnyUnavailableAcrossOrOutOfSeq(), isAnyZero(), llvm::X86RegisterInfo::isArgumentRegister(), isBufferFatPtrConst(), isConditionTrueViaVFAndUF(), isCycleInvariant(), isEarlyClobberMI(), llvm::CodeExtractor::isEligible(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), isFixedVectorShuffle(), llvm::AArch64_MC::isFpOrNEON(), llvm::AArch64InstrInfo::isFpOrNEON(), isFSqrtDivToFMulLegal(), isGuaranteedNotToBeUndefOrPoison(), llvm::AArch64_MC::isHForm(), llvm::AArch64InstrInfo::isHForm(), isHorizontalBinOp(), llvm::AANoCapture::isImpliedByIR(), llvm::LoopVectorizationLegality::isInvariantAddressOfReduction(), llvm::LoopVectorizationLegality::isInvariantStoreOfReduction(), llvm::DbgVariableRecord::isKillLocation(), llvm::RawLocationWrapper::isKillLocation(), llvm::AArch64InstrInfo::isLdStPairSuppressed(), isLoopDead(), isLRSpilled(), llvm::ARMBaseInstrInfo::isMBBSafeToOutlineFrom(), isNZCVTouchedInInstructionRange(), llvm::SDNode::isOperandOf(), isOverflowIntrinsicNoWrap(), llvm::NVPTX::isPackedElementTy(), llvm::NVPTX::isPackedVectorTy(), llvm::PreservedCFGCheckerInstrumentation::CFG::isPoisoned(), llvm::slpvectorizer::BoUpSLP::isProfitableToReorder(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::GCNTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::X86TTIImpl::isProfitableToSinkOperands(), llvm::AArch64_MC::isQForm(), llvm::AArch64InstrInfo::isQForm(), isReachableImpl(), isRegLiveIn(), isSafeToMoveBefore(), isSafeToUnrollAndJam(), isSpecialPass(), llvm::AArch64InstrInfo::isStridedAccess(), llvm::RecordRecTy::isSubClassOf(), isSVERegOp(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), llvm::SelectionDAG::isUndef(), llvm::LiveRange::isUndefIn(), isUnsupportedFunction(), isUpperSubvectorUndef(), llvm::AA::isValidAtPosition(), isVariableIndexable(), isVectorOp(), licm(), llvm::coverage::LineCoverageStats::LineCoverageStats(), lowerBuildVectorToBitOp(), LowerDbgDeclare(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerReturn(), lowerV8I16Shuffle(), lowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE(), makePostTransformationMetadata(), llvm::CombinerHelper::matchAnyExplicitUseIsUndef(), llvm::CombinerHelper::matchEqualDefs(), llvm::SIInstrInfo::mayAccessScratchThroughFlat(), mayBeVisibleThroughUnwinding(), llvm::VPExpressionRecipe::mayReadOrWriteMemory(), mergeCompatibleInvokesImpl(), llvm::AliasSet::mergeSetIn(), mustExecuteUBIfPoisonOnPathTo(), llvm::sys::unicode::nameToGeneratedCodePoint(), llvm::VPlanTransforms::narrowInterleaveGroups(), llvm::PHITransAddr::needsPHITranslationFromBlock(), llvm::TextChangeReporter< std::string >::omitAfter(), optimizeCallInst(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeNonTrivialIFuncs(), outputHasNonPHI(), passingValueIsAlwaysUndefined(), peelToTurnInvariantLoadsDerefencebale(), PerformVECREDUCE_ADDCombine(), planContainsAdditionalSimplifications(), llvm::SMDiagnostic::print(), llvm::JumpThreadingPass::processBranchOnXOR(), llvm::LoopVectorizePass::processLoop(), profitableToRotateLoopExitingLatch(), llvm::SwiftErrorValueTracking::propagateVRegs(), rematerializeLiveValuesAtUses(), removeUndefDbgLocsFromEntryBlock(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::HexagonShuffler::restrictPreferSlot3(), rewriteLoopExitValues(), llvm::DevirtSCCRepeatedPass::run(), llvm::InlinerPass::run(), GCEmptyBasicBlocks::runOnMachineFunction(), llvm::MipsInstrInfo::SafeInLoadDelaySlot(), llvm::SelectionDAG::salvageDebugInfo(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::LoopVectorizationPlanner::selectInterleaveCount(), setBranchWeights(), shouldCanonicalizeGEPToPtrAdd(), llvm::AArch64RegisterInfo::shouldCoalesce(), llvm::HexagonRegisterInfo::shouldCoalesce(), shouldConvertOrWithNoCommonBitsToAdd(), llvm::VPReplicateRecipe::shouldPack(), llvm::MultiHazardRecognizer::ShouldPreferAnother(), llvm::TailDuplicator::shouldTailDuplicate(), shouldUnrollMultiExitLoop(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyFPOp(), simplifyGEPInst(), simplifyIntrinsic(), simplifySwitchLookup(), simplifyWithOpsReplaced(), sinkCommonCodeFromPredecessors(), sinkLastInstruction(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), SplitKnownCriticalEdge(), stashEntryDbgValues(), stripNonValidData(), tailMergeBlocksWithSimilarFunctionTerminators(), llvm::slpvectorizer::BoUpSLP::transformNodes(), transformRecipestoEVLRecipes(), llvm::sandboxir::Scheduler::trySchedule(), tryToFindRegisterToRename(), tryToWidenSetCCOperands(), llvm::LegalityPredicates::typePairAndMemDescInSet(), UnrollLoop(), unswitchAllTrivialConditions(), llvm::LoopVectorizationPlanner::updateLoopMetadataAndProfileInfo(), UpdatePredRedefs(), llvm::ScheduleDAGMILive::updatePressureDiffs(), updateValueInfoForIndirectCalls(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::GenericCycle< ContextT >::verifyCycle(), violatesLegacyMultiExitLoopCheck(), llvm::SelectionDAGBuilder::visitDbgInfo(), llvm::InstCombinerImpl::visitGetElementPtrInst(), widenBuildVec(), willGenerateVectors(), llvm::MCAssembler::writeSectionData(), llvm::object::writeUniversalBinary(), and writtenBetween().

◆ append_range()

template<typename Container, typename Range>
void llvm::append_range ( Container & C,
Range && R )

Wrapper function to append range R to container C.

C.insert(C.end(), R.begin(), R.end());

Definition at line 2116 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.

Referenced by addBasicBlockMetadata(), llvm::InstrProfWriter::addBinaryIds(), addBlockAndPredsToSet(), llvm::memprof::CallStackTrie::addCallStack(), addData(), addDefaultPrefixes(), llvm::SubtargetFeatures::addFeaturesVector(), llvm::lowertypetests::GlobalLayoutBuilder::addFragment(), llvm::logicalview::LVPatterns::addOffsetPatterns(), llvm::pdb::TpiStreamBuilder::addTypeRecords(), llvm::TargetLibraryInfoImpl::addVectorizableFunctions(), allUsersAreInFunction(), llvm::mca::Scheduler::analyzeResourcePressure(), llvm::DIExpression::appendOpsToArg(), llvm::pdb::NamedStreamMap::appendStringData(), llvm::DominatorTreeBase< BlockT, false >::applyUpdates(), buildIntrWithMD(), llvm::ScalarEvolution::canReuseInstruction(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), CloneAndPruneIntoFromInst(), collectEHScopeMembers(), llvm::DDGNode::collectInstructions(), collectLeaves(), collectUnswitchCandidates(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), combineConcatVectorOfShuffleAndItsOperands(), llvm::rdf::Liveness::computePhiInfo(), ConcatListInits(), llvm::IRSimilarity::IRInstructionMapper::convertToUnsignedVec(), createAtomicLibcall(), createLibcall(), createMemLibcall(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), doPromotion(), llvm::detail::BCRecordCoding< BCArray< ElementTy > >::emit(), llvm::UnwindOpcodeAssembler::EmitRaw(), emitSNPrintf(), emitSPrintf(), llvm::WinCFGuard::endFunction(), llvm::WinException::endFunction(), llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamWriter::EnterSubblock(), llvm::rdf::DeadCodeElimination::erase(), llvm::SCEVExpander::eraseDeadInstructions(), llvm::yaml::escape(), llvm::logicalview::LVCompare::execute(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), findArgParts(), findForkedSCEVs(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), llvm::DirectedGraph< DDGNode, DDGEdge >::findIncomingEdgesToNode(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::FindPredecessorBlocks(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), llvm::BinOpInit::Fold(), llvm::UnOpInit::Fold(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), forEachUser(), llvm::ScalarEvolution::forgetLoop(), llvm::msf::MSFBuilder::generateLayout(), generateReproducer(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::rdf::Liveness::getAllReachingDefs(), getBaseType(), llvm::CacheCost::getCacheCost(), llvm::GraphDiff< MachineBasicBlock *, false >::getChildren(), llvm::SelectionDAG::getConstant(), llvm::DWARFContext::getDIEsForAddress(), llvm::GenericCycle< ContextT >::getExitBlocks(), llvm::MachineFunction::getFilterIDFor(), llvm::ReachingDefAnalysis::getGlobalUses(), llvm::sandboxir::ShuffleMask::getIdentity(), getInputSegmentList(), llvm::RegisterBankInfo::getInstrPossibleMappings(), llvm::logicalview::LVSymbol::getLocations(), llvm::ScalarEvolution::getMinMaxExpr(), llvm::BasicAAResult::getModRefInfoMask(), llvm::ScalarEvolution::getMulExpr(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), getObjCNamesIfSelector(), getOffsetFromIndices(), llvm::object::ELFObjectFileBase::getPltEntries(), getRelevantOperands(), GetRPOList(), llvm::SDDbgValue::getSDNodes(), getStatepointArgs(), llvm::ScalarEvolution::getUDivExactExpr(), getUnderlyingObjectAggressive(), getUnderlyingObjects(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), handleCallSite(), llvm::orc::LazyReexportsManager::handleTransferResources(), inferInitializes(), INITIALIZE_PASS(), llvm::IRSimilarity::IRInstructionData::initializeInstruction(), InlineFunctionImpl(), insertLineSequence(), isObjectSizeLessThanOrEq(), lle_X_fprintf(), lle_X_printf(), llvm::WebAssemblyAsmTypeCheck::localDecl(), llvm::orc::lookupSymbolsAsyncHelper(), llvm::LoopNest::LoopNest(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), llvm::SITargetLowering::LowerCall(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::VPlanTransforms::materializeBroadcasts(), llvm::AliasSet::mergeSetIn(), llvm::LegalizerHelper::narrowScalar(), llvm::symbolize::MarkupParser::nextNode(), nodes_for_root(), llvm::orc::VTuneSupportPlugin::notifyTransferringResources(), llvm::orc::SimpleLazyReexportsSpeculator::onLazyReexportsTransfered(), llvm::OperandBundleDefT< Value * >::OperandBundleDefT(), llvm::jitlink::EHFrameEdgeFixer::operator()(), parseScalarValue(), llvm::PeelingModuloScheduleExpander::peelPrologAndEpilogs(), performBranchToCommonDestFolding(), ProcessElementList(), push(), llvm::sampleprof::SampleProfileReaderGCC::readOneFunctionProfile(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::reconstituteName(), recursivelyVisitUsers(), llvm::SMSchedule::reorderInstructions(), resolveRecordTypes(), llvm::WindowScheduler::restoreMBB(), llvm::PlaceSafepointsPass::runImpl(), saveFilteredNewMIBNodes(), llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(), llvm::MachineRegisterInfo::setCalleeSavedRegs(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::orc::JITDylib::setLinkOrder(), llvm::msf::MSFBuilder::setStreamSize(), llvm::ShapeT::ShapeT(), sinkInstruction(), sortBlocks(), llvm::AbstractDependenceGraphBuilder< GraphType >::sortNodesTopologically(), llvm::CfiFunctionIndex::symbols(), llvm::orc::SymbolsNotFound::SymbolsNotFound(), llvm::X86InstrInfo::unfoldMemoryOperand(), unswitchLoop(), llvm::SelectionDAG::updateDivergence(), llvm::AddrLabelMap::UpdateForRAUWBlock(), usersDominator(), llvm::ScalarEvolution::verify(), verifyCTRBranch(), llvm::codeview::VFTableRecord::VFTableRecord(), llvm::InstCombinerImpl::visitGetElementPtrInst(), visitPointers(), writeFunctionHeapProfileRecords(), writeFunctionTypeMetadataRecords(), and writeWholeProgramDevirtResolutionByArg().

◆ append_values()

template<typename Container, typename... Args>
void llvm::append_values ( Container & C,
Args &&... Values )

Appends all Values to container C.

Definition at line 2122 of file STLExtras.h.

References llvm::CallingConv::C, and range_size().

◆ appendArchToWindowsSDKLibPath()

bool llvm::appendArchToWindowsSDKLibPath ( int SDKMajor,
llvm::SmallString< 128 > LibPath,
llvm::Triple::ArchType Arch,
std::string & path )

◆ appendLEB128()

template<LEB128Sign Sign, typename T, typename U = char, unsigned MaxLEB128SizeBytes = 16>
void llvm::appendLEB128 ( SmallVectorImpl< U > & Buffer,
T Value )
inline

◆ appendLoopsToWorklist() [1/2]

void llvm::appendLoopsToWorklist ( LoopInfo & LI,
SmallPriorityWorklist< Loop *, 4 > & Worklist )

Utility that implements appending of loops onto a worklist given LoopInfo.

Calls the templated utility taking a Range of loops, handing it the Loops in LoopInfo, iterated in reverse. This is because the loops are stored in RPO w.r.t. the control flow graph in LoopInfo. For the purpose of unrolling, loop deletion, and LICM, we largely want to work forward across the CFG so that we visit defs before uses and can propagate simplifications from one loop nest into the next. Calls appendReversedLoopsToWorklist with the already reversed loops in LI. FIXME: Consider changing the order in LoopInfo.

Definition at line 1936 of file LoopUtils.cpp.

References appendReversedLoopsToWorklist().

◆ appendLoopsToWorklist() [2/2]

template<typename RangeT>
LLVM_TEMPLATE_ABI void llvm::appendLoopsToWorklist ( RangeT && ,
SmallPriorityWorklist< Loop *, 4 > &  )

Utility that implements appending of loops onto a worklist given a range.

We want to process loops in postorder, but the worklist is a LIFO data structure, so we append to it in reverse postorder. For trees, a preorder traversal is a viable reverse postorder, so we actually append using a preorder walk algorithm.

Referenced by llvm::LPMUpdater::addChildLoops(), llvm::LPMUpdater::addSiblingLoops(), appendLoopsToWorklist< ArrayRef< Loop * > & >(), llvm::FunctionToLoopPassAdaptor::run(), llvm::IRCEPass::run(), llvm::LoopAccessInfoPrinterPass::run(), llvm::LoopUnrollPass::run(), sinkRegionForLoopNest(), and tryToUnrollAndJamLoop().

◆ appendLoopsToWorklist< ArrayRef< Loop * > & >()

template LLVM_EXPORT_TEMPLATE void llvm::appendLoopsToWorklist< ArrayRef< Loop * > & > ( ArrayRef< Loop * > & Loops,
SmallPriorityWorklist< Loop *, 4 > & Worklist )
extern

◆ appendLoopsToWorklist< Loop & >()

template LLVM_EXPORT_TEMPLATE void llvm::appendLoopsToWorklist< Loop & > ( Loop & L,
SmallPriorityWorklist< Loop *, 4 > & Worklist )
extern

◆ appendReversedLoopsToWorklist()

template<typename RangeT>
void llvm::appendReversedLoopsToWorklist ( RangeT && Loops,
SmallPriorityWorklist< Loop *, 4 > & Worklist )

Utility that implements appending of loops onto a worklist given a range.

Utility that implements appending of loops onto a worklist.

It has the same behavior as appendLoopsToWorklist, but assumes the range of loops has already been reversed, so it processes loops in the given order.

Loops are added in preorder (analogous for reverse postorder for trees), and the worklist is processed LIFO.

Definition at line 1898 of file LoopUtils.cpp.

References llvm::SmallVectorImpl< T >::append(), assert(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::PriorityWorklist< T, VectorT, MapT >::insert(), Loops, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by appendLoopsToWorklist().

◆ appendToCompilerUsed()

◆ 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 https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable

Definition at line 74 of file ModuleUtils.cpp.

References appendToGlobalArray(), Data, and F.

Referenced by llvm::SanitizerStatReport::finish(), lowerGlobalIFuncUsersAsGlobalCtor(), llvm::NumericalStabilitySanitizerPass::run(), llvm::RealtimeSanitizerPass::run(), llvm::TypeSanitizerPass::run(), and runImpl().

◆ appendToGlobalDtors()

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

Same as appendToGlobalCtors(), but for global dtors.

Definition at line 78 of file ModuleUtils.cpp.

References appendToGlobalArray(), Data, and F.

◆ appendToUsed()

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

Adds global values to the llvm.used list.

Definition at line 158 of file ModuleUtils.cpp.

References appendToUsedList().

Referenced by llvm::sampleprofutil::createFSDiscriminatorVariable(), createSanitizerCtor(), and runImpl().

◆ applyDebugifyMetadata()

LLVM_ABI bool llvm::applyDebugifyMetadata ( Module & M,
iterator_range< Module::iterator > Functions,
StringRef Banner,
std::function< bool(DIBuilder &, Function &)> ApplyToMF )

Add synthesized debug information to a module.

Parameters
MThe module to add debug information to.
FunctionsA range of functions to add debug information to.
BannerA prefix string to add to debug/error messages.
ApplyToMFA call back that will add debug information to the MachineFunction for a Function. If nullptr, then the MachineFunction (if any) will not be modified.

References LLVM_ABI.

Referenced by applyDebugify(), applyDebugify(), and NewPMDebugifyPass::run().

◆ ApplyExtTspWithoutProfile()

cl::opt< bool > llvm::ApplyExtTspWithoutProfile ( "ext-tsp-apply-without-profile" ,
cl::desc("Whether to apply ext-tsp placement for instances w/o profile") ,
cl::init(true) ,
cl::Hidden  )

◆ applyFlowInference() [1/2]

void llvm::applyFlowInference ( const ProfiParams & Params,
FlowFunction & Func )

Apply the profile inference algorithm for a given function and provided profi options.

Definition at line 1323 of file SampleProfileInference.cpp.

References Block, llvm::FlowJump::Flow, and llvm::FlowJump::Weight.

Referenced by llvm::SampleProfileInference< FT >::apply(), and applyFlowInference().

◆ applyFlowInference() [2/2]

◆ applyITypeImmRISCV()

void llvm::applyITypeImmRISCV ( uint8_t * InstrAddr,
uint32_t Imm )
static

Definition at line 1270 of file RuntimeDyldELF.cpp.

◆ applyPPCha()

uint16_t llvm::applyPPCha ( uint64_t value)
inlinestatic

Definition at line 1045 of file RuntimeDyldELF.cpp.

◆ applyPPChi()

uint16_t llvm::applyPPChi ( uint64_t value)
inlinestatic

Definition at line 1041 of file RuntimeDyldELF.cpp.

◆ applyPPChigher()

uint16_t llvm::applyPPChigher ( uint64_t value)
inlinestatic

Definition at line 1049 of file RuntimeDyldELF.cpp.

◆ applyPPChighera()

uint16_t llvm::applyPPChighera ( uint64_t value)
inlinestatic

Definition at line 1053 of file RuntimeDyldELF.cpp.

◆ applyPPChighest()

uint16_t llvm::applyPPChighest ( uint64_t value)
inlinestatic

Definition at line 1057 of file RuntimeDyldELF.cpp.

◆ applyPPChighesta()

uint16_t llvm::applyPPChighesta ( uint64_t value)
inlinestatic

Definition at line 1061 of file RuntimeDyldELF.cpp.

◆ applyPPClo()

uint16_t llvm::applyPPClo ( uint64_t value)
inlinestatic

Definition at line 1039 of file RuntimeDyldELF.cpp.

◆ applyUTypeImmRISCV()

void llvm::applyUTypeImmRISCV ( uint8_t * InstrAddr,
uint32_t Imm )
static

Definition at line 1264 of file RuntimeDyldELF.cpp.

◆ applyWrappers()

◆ archToDevDivInternalArch()

const char * llvm::archToDevDivInternalArch ( llvm::Triple::ArchType Arch)

◆ archToLegacyVCArch()

const char * llvm::archToLegacyVCArch ( llvm::Triple::ArchType Arch)

◆ archToWindowsSDKArch()

◆ areAllOperandsNonInsts()

bool llvm::areAllOperandsNonInsts ( Value * V)
static

Checks if the provided value does not require scheduling.

It does not require scheduling if this is not an instruction or it is an instruction that does not read/write memory and all operands are either not instructions or phi nodes or instructions from different blocks.

Definition at line 1838 of file SLPVectorizer.cpp.

References all_of(), dyn_cast(), I, and mayHaveNonDefUseDependency().

Referenced by doesNotNeedToBeScheduled(), and doesNotNeedToSchedule().

◆ areInlineCompatible()

LLVM_ABI bool llvm::areInlineCompatible ( const Function & Caller,
const Function & Callee )
Returns
Return true if the two functions have compatible target-independent attributes for inlining purposes.

References A(), areInlineCompatible(), areOutlineCompatible(), B(), llvm::sampleprof::Base, LLVM_ABI, mergeAttributesForInlining(), mergeAttributesForOutlining(), and updateMinLegalVectorWidthAttr().

Referenced by areInlineCompatible().

◆ areOutlineCompatible()

bool AttributeFuncs::areOutlineCompatible ( const Function & A,
const Function & B )

Checks if there are any incompatible function attributes between A and B.

Parameters
[in]A- The first function to be compared with.
[in]B- The second function to be compared with.
Returns
true if the functions have compatible attributes.

Definition at line 2706 of file Attributes.cpp.

References A(), and B().

Referenced by areInlineCompatible().

◆ AreStatisticsEnabled()

◆ argHasNVVMAnnotation()

bool llvm::argHasNVVMAnnotation ( const Value & Val,
const std::string & Annotation )
static

◆ ARMCondCodeFromString()

◆ ARMCondCodeToString()

◆ ARMVectorCondCodeFromString()

unsigned llvm::ARMVectorCondCodeFromString ( StringRef CC)
inlinestatic

◆ ARMVPTPredToString()

const char * llvm::ARMVPTPredToString ( ARMVCC::VPTCodes CC)
inlinestatic

◆ 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 1584 of file STLExtras.h.

References get_array_pod_sort_comparator.

Referenced by casesAreContiguous(), llvm::object::computeSymbolSizes(), findArrayDimensions(), llvm::MachineModuleInfoImpl::getSortedExprStubs(), llvm::MachineModuleInfoImpl::getSortedStubs(), lowerV16I8Shuffle(), lowerV8I16GeneralSingleInputShuffle(), performOptimizedStructLayout(), llvm::PassNameParser::printOptionInfo(), llvm::TargetRegistry::printRegisteredTargetsForVersion(), setUsedInitializer(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), sort(), sortOpts(), sortSubCommands(), and valuesOverlap().

◆ array_pod_sort() [2/2]

template<class IteratorTy>
void llvm::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 *) )
inline

Definition at line 1596 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 1534 of file STLExtras.h.

References T.

◆ ArrayRef() [1/10]

template<typename T>
llvm::ArrayRef ( ArrayRef< T > & Vec) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from an ArrayRef.

◆ ArrayRef() [2/10]

template<typename T>
llvm::ArrayRef ( const ArrayRef< T > & Vec) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from an ArrayRef (const)

◆ ArrayRef() [3/10]

template<typename T, unsigned N>
llvm::ArrayRef ( const SmallVector< T, N > & Vec) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a SmallVector.

◆ ArrayRef() [4/10]

template<typename T>
llvm::ArrayRef ( const SmallVectorImpl< T > & Vec) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a SmallVector.

◆ ArrayRef() [5/10]

template<typename T, std::size_t N>
llvm::ArrayRef ( const std::array< T, N > & Vec) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a std::array.

◆ ArrayRef() [6/10]

template<typename T>
llvm::ArrayRef ( const std::vector< T > & Vec) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a std::vector.

◆ ArrayRef() [7/10]

template<typename T>
llvm::ArrayRef ( const T & OneElt) -> ArrayRef< T >
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Referenced by llvm::orc::EPCGenericJITLinkMemoryManager::InFlightAlloc::abandon(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::add(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::add(), llvm::codeview::DebugChecksumsSubsection::addChecksum(), llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::VPlanTransforms::addMinimumIterationCheck(), llvm::pdb::TpiStreamBuilder::addTypeRecord(), llvm::ConstraintSystem::addVariableRow(), llvm::ConstraintSystem::addVariableRowFill(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::adjustExtracts(), llvm::HashBuilder< hashbuilder_detail::HashCodeHasher, llvm::endianness::native >::adjustForEndiannessAndAdd(), allocateSGPR32InputImpl(), allocateVGPR32Input(), analyzeArguments(), analyzeReturnValues(), llvm::APInt::APInt(), appendToGlobalArray(), arrayRefFromStringRef(), buildClonedLoops(), llvm::ifs::buildStub(), BuildSubAggregate(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), CollectOpsToWiden(), CombineVLDDUP(), llvm::codeview::DebugSymbolRVASubsection::commit(), CompressEVEXImpl(), llvm::FoldingSetNodeIDRef::computeStableHash(), llvm::DomConditionCache::conditionsFor(), ConstantFoldGetElementPtr(), constructSeqOffsettoOrigRowMapping(), llvm::object::convertUTF16LEToUTF8String(), llvm::IRBuilderBase::CreateAggregateCast(), llvm::MBBReachingDefsInfo::defs(), llvm::object::ELFFile< ELFT >::dynamicEntries(), llvm::ImmutableGraph< NodeValueT, EdgeValueT >::Node::edges(), llvm::ImmutableGraph< MachineInstr *, int >::edges(), llvm::StringRef::edit_distance(), llvm::StringRef::edit_distance_insensitive(), llvm::StructType::elements(), llvm::MCDwarfLineTableHeader::Emit(), llvm::BitstreamWriter::emitBlob(), llvm::MCObjectStreamer::emitBytes(), llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), llvm::BitstreamWriter::EmitRecord(), llvm::BitstreamWriter::EmitRecordWithAbbrev(), llvm::BitstreamWriter::EmitRecordWithArray(), llvm::BitstreamWriter::EmitRecordWithArray(), llvm::BitstreamWriter::EmitRecordWithBlob(), llvm::BitstreamWriter::EmitRecordWithBlob(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARM::WinEH::ExceptionDataRecord::EpilogueScopes(), llvm::APInt::extractBits(), llvm::object::SFrameParser< E >::fdes(), llvm::MD5::final(), llvm::pdb::DbiStreamBuilder::finalizeMsfLayout(), findDefaultVersion(), FindInsertedValue(), findTargetSubtable(), llvm::pdb::LinePrinter::formatMsfStreamBlocks(), GenerateFixedLengthSVETBL(), llvm::msf::MSFBuilder::generateLayout(), llvm::fuzzerop::gepDescriptor(), llvm::ConstantDataArray::get(), llvm::PredIteratorCache::get(), llvm::sandboxir::ConstantDataArray::get(), llvm::sframe::getAArch64PAuthKeys(), llvm::sframe::getABIs(), llvm::SDDbgValue::getAdditionalDependencies(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::SIRegisterInfo::getAllSGPR128(), llvm::SIRegisterInfo::getAllSGPR32(), llvm::SIRegisterInfo::getAllSGPR64(), getAllVariants(), getArgGPR16s(), getArgGPR32s(), llvm::RISCV::getArgGPRs(), llvm::DWARFFormValue::getAsBlock(), llvm::sframe::getBaseRegisters(), llvm::IRSimilarity::IRInstructionData::getBlockOperVals(), getBuildVectorSplat(), llvm::DebugLocStream::getBytes(), llvm::MipsABIInfo::GetByValArgRegs(), llvm::codeview::getCallingConventions(), getCapabilitiesEnabledByExtension(), llvm::codeview::getClassOptionNames(), llvm::DWARFUnitIndex::getColumnKinds(), llvm::DebugLocStream::getComments(), llvm::dxbc::getComparisonFuncs(), llvm::cl::getCompilerBuildConfig(), llvm::codeview::getCompileSym2FlagNames(), llvm::codeview::getCompileSym3FlagNames(), llvm::dxbc::PSV::getComponentTypes(), llvm::omp::getCompoundConstruct(), llvm::SDNodeInfo::getConstraints(), getContainedTypes(), llvm::object::DynamicRelocRef::getContents(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getCopyToReg(), llvm::codeview::getCPUTypeNames(), llvm::dxbc::getD3DSystemValues(), getDataSliceAsArrayOf(), llvm::dxbc::getDescriptorRangeFlags(), llvm::object::MachOObjectFile::getDyldExportsTrie(), llvm::object::MachOObjectFile::getDyldInfoBindOpcodes(), llvm::object::MachOObjectFile::getDyldInfoExportsTrie(), llvm::object::MachOObjectFile::getDyldInfoLazyBindOpcodes(), llvm::object::MachOObjectFile::getDyldInfoRebaseOpcodes(), llvm::object::MachOObjectFile::getDyldInfoWeakBindOpcodes(), llvm::ListInit::getElements(), llvm::DebugLocStream::getEntries(), llvm::object::XCOFFObjectFile::getExceptionEntries(), llvm::codeview::getExportSymFlagNames(), llvm::object::SFrameParser< E >::getExtraOffsets(), getFastCCArgGPRF16s(), getFastCCArgGPRF32s(), getFastCCArgGPRs(), llvm::sframe::getFDETypes(), llvm::codeview::getFileChecksumNames(), llvm::MCFragment::getFixups(), llvm::sframe::getFlags(), getFMA3Group(), llvm::codeview::getFrameCookieKindNames(), llvm::codeview::getFrameProcSymFlagNames(), llvm::sframe::getFREOffsets(), llvm::sframe::getFRETypes(), llvm::codeview::getFunctionOptionEnum(), llvm::ConstantExpr::getGetElementPtr(), llvm::HexagonSubtarget::getHVXElementTypes(), llvm::codeview::getImageSectionCharacteristicNames(), llvm::MCFragment::getInst(), llvm::dxbc::PSV::getInterpolationModes(), llvm::ARMBaseRegisterInfo::getIntraCallClobberedRegs(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::codeview::getJumpTableEntrySizeNames(), llvm::codeview::getLabelTypeEnum(), llvm::omp::getLeafConstructs(), llvm::omp::getLeafConstructsOrSelf(), llvm::RTLIB::RuntimeLibcallsInfo::getLibcallImpls(), llvm::CodeViewContext::getLinesForExtent(), llvm::codeview::getLocalFlagNames(), llvm::SDDbgValue::getLocationOps(), llvm::ShuffleVectorSDNode::getMask(), llvm::dxil::ValueEnumerator::getMDStrings(), llvm::ValueEnumerator::getMDStrings(), llvm::codeview::getMemberAccessNames(), llvm::codeview::getMemberKindNames(), llvm::codeview::VFTableRecord::getMethodNames(), llvm::codeview::getMethodOptionNames(), llvm::codeview::getModuleSubstreamKindNames(), llvm::codeview::VFTableRecord::getName(), llvm::dxil::ValueEnumerator::getNonMDStrings(), llvm::ValueEnumerator::getNonMDStrings(), llvm::pdb::getOMFSegMapDescFlagNames(), llvm::dwarf::CFIProgram::getOperandTypes(), getOrInsertValueProfilingCall(), getPopFromX87Reg(), llvm::MachineTraceMetrics::getProcReleaseAtCycles(), llvm::MachineTraceMetrics::Ensemble::getProcResourceDepths(), llvm::MachineTraceMetrics::Ensemble::getProcResourceHeights(), llvm::codeview::getProcSymFlagNames(), llvm::NVPTXTargetLowering::getPrototype(), llvm::codeview::getPtrKindNames(), llvm::codeview::getPtrMemberRepNames(), llvm::codeview::getPtrModeNames(), llvm::codeview::getPublicSymFlagNames(), llvm::codeview::getRegisterNames(), llvm::TargetRegisterClass::getRegisters(), llvm::SIRegisterInfo::getRegSplitParts(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::dxbc::PSV::getResourceKinds(), llvm::dxbc::PSV::getResourceTypes(), llvm::coro::Shape::getRetconResultTypes(), GetRMWLibcall(), llvm::dxbc::getRootDescriptorFlags(), llvm::dxbc::getRootFlags(), llvm::dxbc::getRootParameterTypes(), llvm::DWARFUnitIndex::getRows(), llvm::dxbc::getSamplerFilters(), llvm::SDDbgInfo::getSDDbgValues(), llvm::object::COFFObjectFile::getSectionContents(), llvm::object::ELFObjectFile< ELFT >::getSectionContents(), llvm::object::XCOFFObjectFile::getSectionContents(), llvm::object::ELFFile< ELFT >::getSectionContentsAsArray(), llvm::object::MachOObjectFile::getSectionRawFinalSegmentName(), llvm::object::MachOObjectFile::getSectionRawName(), llvm::object::ELFFile< ELFT >::getSegmentContents(), llvm::dxbc::PSV::getSemanticKinds(), llvm::ARMBaseInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::LoongArchInstrInfo::getSerializableBitmaskMachineOperandTargetFlags(), llvm::ARMBaseInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::LanaiInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::LoongArchInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::M68kInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::MipsInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::PPCInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::RISCVInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::SIInstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::RISCVInstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::SIInstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::SIInstrInfo::getSerializableTargetIndices(), llvm::WebAssemblyInstrInfo::getSerializableTargetIndices(), llvm::SIMachineFunctionInfo::getSGPRSpillToPhysicalVGPRLanes(), llvm::SIMachineFunctionInfo::getSGPRSpillToVirtualVGPRLanes(), llvm::dxbc::getShaderVisibility(), llvm::dxbc::getSigComponentTypes(), llvm::dxbc::getSigMinPrecisions(), llvm::sandboxir::SeedBundle::getSlice(), llvm::codeview::getSourceLanguageNames(), llvm::dxbc::getStaticBorderColors(), llvm::ConstantDataArray::getString(), llvm::object::COFFObjectFile::getSymbolAuxData(), getSymbolicOperandAllowedEnvironments(), getSymbolicOperandCapabilities(), getSymbolicOperandExtensions(), getSymbolicOperandMnemonic(), llvm::codeview::getSymbolTypeNames(), llvm::dxbc::getTextureAddressModes(), llvm::codeview::getThunkOrdinalNames(), llvm::SelectionDAG::getTokenFactor(), llvm::codeview::getTrampolineNames(), llvm::codeview::getTypeLeafNames(), llvm::codeview::getTypeModifierNames(), llvm::object::MachOObjectFile::getUuid(), llvm::CondOpInit::getVals(), llvm::MipsABIInfo::getVarArgRegs(), llvm::MCFragment::getVarContents(), llvm::MCFragment::getVarFixups(), llvm::Hexagon_MC::GetVectRegRev(), llvm::sframe::getVersions(), getX86MaskVec(), llvm::CallLowering::handleAssignments(), llvm::codeview::GloballyHashedType::hashType(), hoistLockstepIdenticalDbgVariableRecords(), llvm::pdb::UDTLayoutBase::initializeChildren(), llvm::TargetExtType::int_params(), llvm::ConstraintSystem::isConditionImplied(), isLoopDead(), llvm::slpvectorizer::BoUpSLP::isProfitableToReorder(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::RISCVISAInfo::isSupportedExtensionFeature(), llvm::slpvectorizer::BoUpSLP::isTreeNotExtendable(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), layout(), llvm::AMDGPULegalizerInfo::legalizeFDIV64(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), LLVMBuildCall2(), LLVMBuildCallBr(), LLVMBuildCallWithOperandBundles(), LLVMBuildCatchPad(), LLVMBuildCleanupPad(), LLVMBuildInvoke2(), LLVMBuildInvokeWithOperandBundles(), LLVMConstNamedStruct(), LLVMConstStructInContext(), LLVMConstVector(), LLVMCreateConstantRangeAttribute(), LLVMCreateOperandBundle(), LLVMDIBuilderCreateEnumeratorOfArbitraryPrecision(), LLVMMDNodeInContext(), llvm::orc::COFFVCRuntimeBootstrapper::loadDynamicVCRuntime(), llvm::orc::COFFVCRuntimeBootstrapper::loadStaticVCRuntime(), lookupBroadcastFoldTable(), lookupFoldTable(), lowerBUILD_VECTOR(), lowerBuildVectorAsBroadcast(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), llvm::LoongArchTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::X86TargetLowering::lowerInterleavedStore(), lowerMSASplatZExt(), LowerMULH(), llvm::SelectionDAGBuilder::LowerStatepoint(), llvm::codeview::CodeViewRecordIO::maxFieldLength(), llvm::sys::fs::md5_contents(), llvm::MachineInstr::memoperands(), llvm::MachineSDNode::memoperands(), mergePartStores(), llvm::InjectorIRStrategy::mutate(), llvm::InsertCFGStrategy::mutate(), llvm::InsertFunctionStrategy::mutate(), llvm::SinkInstructionStrategy::mutate(), llvm::LegalizerHelper::narrowScalarAddSub(), llvm::ImmutableGraph< MachineInstr *, int >::nodes(), llvm::coro::normalizeCoroutine(), llvm::MCInstrDesc::operands(), llvm::SCEVNAryExpr::operands(), llvm::SDNode::ops(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::output(), llvm::FunctionType::params(), llvm::opt::OptTable::parseArgs(), llvm::RISCVISAInfo::parseFeatures(), llvm::ELFCompactAttrParser::parseSubsection(), performExtractLastActiveCombine(), PerformMVEVLDCombine(), performNEONPostLDSTCombine(), PerformVMOVhrCombine(), performVSelectCombine(), prepareIndirectCall(), llvm::SMDiagnostic::print(), llvm::AttributeListImpl::Profile(), llvm::AttributeSetNode::Profile(), llvm::object::ELFFile< ELF32LE >::program_headers(), llvm::AppendingBinaryByteStream::readBytes(), llvm::AppendingBinaryByteStream::readLongestContiguousChunk(), readMemprof(), llvm::coverage::BinaryCoverageReader::readNextRecord(), llvm::LiveRangeEdit::regs(), llvm::jitlink::relaxBlock(), llvm::object::XCOFFObjectFile::relocations(), llvm::sys::path::remove_dots(), RemoveUnusedGlue(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::LoopConstrainer::run(), llvm::object::ELFFile< ELFT >::sections(), llvm::object::XCOFFObjectFile::sections32(), llvm::object::XCOFFObjectFile::sections64(), serializePublic(), setCurrentDebugTypes(), simplifyNeonTbl1(), simplifyX86pshufb(), simplifyX86vpermilvar(), simplifyX86vpermv(), simplifyX86vpermv3(), sinkInstruction(), llvm::coro::AsyncABI::splitCoroutine(), stabilize(), stabilize(), llvm::cas::builtin::BuiltinCAS::storeFromNullTerminatedRegion(), llvm::Type::subtypes(), llvm::TargetRegisterClass::superclasses(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::object::ELFFile< ELF32LE >::symbols(), llvm::DbgValueHistoryMap::trimLocationRanges(), TryCombineBaseUpdate(), llvm::dxil::DXILOpBuilder::tryCreateOp(), tryToVectorizeSequence(), llvm::TargetExtType::type_params(), unpackLoadToAggregate(), unpackStoreToAggregate(), unswitchNontrivialInvariants(), llvm::ARM::WinEH::ExceptionDataRecord::UnwindByteCode(), llvm::HashBuilderBase< HasherT >::update(), llvm::MD5::update(), upgradeNVVMFnVectorAttr(), upgradeX86ALIGNIntrinsics(), upgradeX86IntrinsicCall(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::codeview::TypeRecordMapping::visitTypeBegin(), xxh3_64bits(), and llvm::yaml::yaml2minidump().

◆ ArrayRef() [8/10]

template<typename T>
llvm::ArrayRef ( const T * data,
const T * end ) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a range.

References data, and T.

◆ ArrayRef() [9/10]

template<typename T>
llvm::ArrayRef ( const T * data,
size_t length ) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a pointer and length.

References data, and T.

◆ ArrayRef() [10/10]

template<typename T, size_t N>
llvm::ArrayRef ( const T(&) Arr[N]) -> ArrayRef< T >

Deduction guide to construct an ArrayRef from a C array.

References N, and T.

◆ arrayRefFromStringRef()

◆ AsmMacroMaxNestingDepth()

cl::opt< unsigned > llvm::AsmMacroMaxNestingDepth ( "asm-macro-max-nesting-depth" ,
cl::init(20) ,
cl::Hidden ,
cl::desc("The maximum nesting depth allowed for assembly macros.")  )

◆ assumeAligned()

Align llvm::assumeAligned ( uint64_t Value)
inline

Treats the value 0 as a 1, so Align is always at least 1.

Definition at line 111 of file Alignment.h.

Referenced by llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), and llvm::LegalizerHelper::lowerDynStackAlloc().

◆ atomicBarrierDroppedOnZero()

bool llvm::atomicBarrierDroppedOnZero ( unsigned Opcode)
inlinestatic

Definition at line 207 of file AArch64BaseInfo.h.

Referenced by llvm::AArch64InstPrinter::printInst().

◆ 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 592 of file Analysis.cpp.

References cast(), F, and I.

Referenced by returnTypeIsEligibleForTailCall().

◆ avoidZeroOffsetLandingPad()

◆ 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(), G, and T.

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(), G, and T.

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 3852 of file MachineScheduler.cpp.

References llvm::SUnit::getInstr(), MI, llvm::SUnit::NumPredsLeft, and llvm::SUnit::NumSuccsLeft.

Referenced by llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), llvm::GenericScheduler::tryCandidate(), and llvm::PPCPreRASchedStrategy::tryCandidate().

◆ binary_search() [1/2]

template<typename R, typename T>
auto llvm::binary_search ( R && Range,
T && Value )

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

Definition at line 1961 of file STLExtras.h.

References adl_begin(), adl_end(), Range, and T.

Referenced by llvm::sys::UnicodeCharSet::contains(), and isIntrinsicInline().

◆ binary_search() [2/2]

template<typename R, typename T, typename Compare>
auto llvm::binary_search ( R && Range,
T && Value,
Compare C )

Definition at line 1967 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, Range, and T.

◆ bit_cast()

template<typename To, typename From, typename = std::enable_if_t<sizeof(To) == sizeof(From)>, typename = std::enable_if_t<std::is_trivially_constructible<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<From>::value>>
To llvm::bit_cast ( const From & from)
inlinenodiscardnoexcept

Definition at line 90 of file bit.h.

Referenced by llvm::APInt::bitsToDouble(), llvm::APInt::bitsToFloat(), covertDoubleImmToSingleImm(), llvm::APInt::doubleToBits(), emitReciprocalU64(), llvm::TargetLowering::expandUINT_TO_FP(), llvm::APInt::floatToBits(), llvm::PPC::get_VSPLTI_elt(), llvm::object::MachOObjectFile::getDyldChainedFixupTargets(), llvm::RISCVLoadFPImm::getFPImm(), llvm::AArch64_AM::getFPImmFloat(), llvm::ARM_AM::getFPImmFloat(), getInlineImmVal32(), getInlineImmVal64(), getLit32Encoding(), getLit64Encoding(), llvm::MipsMCCodeEmitter::getMachineOpValue(), llvm::PointerSumType< TagT, MemberTs... >::getOpaqueValue(), llvm::sys::getSwappedBytes(), llvm::sys::getSwappedBytes(), hash_value(), llvm::AMDGPU::isInlinableLiteral32(), llvm::AMDGPU::isInlinableLiteral64(), llvm::AArch64_AM::isSVEMaskOfIdenticalElements(), llvm::AArch64_AM::isSVEMoveMaskPreferredLogicalImmediate(), llvm::MipsLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeFFloor(), llvm::AMDGPULegalizerInfo::legalizeFPTOI(), llvm::AMDGPULegalizerInfo::legalizeUnsignedDIV_REM32Impl(), llvm::AMDGPUTargetLowering::LowerFP_TO_INT64(), llvm::ARMAsmPrinter::lowerOperand(), llvm::LegalizerHelper::lowerU64ToF64BitFloatOps(), LowerUINT_TO_FP_i32(), lowerUINT_TO_FP_v2i32(), parseImmediate(), llvm::MCOperand::print(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::msgpack::Reader::read(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::APIntOps::RoundDoubleToAPInt(), llvm::APInt::roundToDouble(), llvm::MCOperand::setFPImm(), llvm::FixedPointSemantics::toOpaqueInt(), llvm::support::endian::write< double >(), and llvm::support::endian::write< float >().

◆ bit_ceil()

◆ bit_floor()

◆ bit_width()

◆ BitcodeErrorCategory()

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

Definition at line 8311 of file BitcodeReader.cpp.

Referenced by make_error_code().

◆ BitmapBegin()

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::BitmapBegin ( uintptr_t )

◆ 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(), G, make_range(), and T.

Referenced by llvm::CacheCost::getCacheCost(), and llvm::LoopNest::LoopNest().

◆ breakLoopBackedge()

void llvm::breakLoopBackedge ( Loop * L,
DominatorTree & DT,
ScalarEvolution & SE,
LoopInfo & LI,
MemorySSA * MSSA )

Remove the backedge of the specified loop.

Handles loop nests and general loop structures subject to the precondition that the loop has no parent loop and has a single latch block. Preserves all listed analyses.

Definition at line 711 of file LoopUtils.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), changeToUnreachable(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::LoopInfo::erase(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLoop(), formLCSSARecursively(), and SplitEdge().

Referenced by breakBackedgeIfNotTaken(), and UnrollRuntimeLoopRemainder().

◆ build2DBlockIOINTELInst()

bool llvm::build2DBlockIOINTELInst ( const SPIRV::IncomingCall * Call,
unsigned Opcode,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ buildAssumeFromInst()

AssumeInst * llvm::buildAssumeFromInst ( Instruction * I)

Build a call to llvm.assume to preserve informations that can be derived from the given instruction.

If no information derived from I, this call returns null. The returned instruction is not inserted anywhere.

Definition at line 284 of file AssumeBundleBuilder.cpp.

References EnableKnowledgeRetention, and I.

◆ buildAssumeFromKnowledge()

AssumeInst * llvm::buildAssumeFromKnowledge ( ArrayRef< RetainedKnowledge > Knowledge,
Instruction * CtxI,
AssumptionCache * AC = nullptr,
DominatorTree * DT = nullptr )

Build and return a new assume created from the provided knowledge if the knowledge in the assume is fully redundant this will return nullptr.

Definition at line 309 of file AssumeBundleBuilder.cpp.

References llvm::Instruction::getModule().

Referenced by llvm::InstCombinerImpl::visitCallInst().

◆ buildAtomicCompareExchangeInst()

◆ buildAtomicFlagInst()

bool llvm::buildAtomicFlagInst ( const SPIRV::IncomingCall * Call,
unsigned Opcode,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ buildAtomicFloatingRMWInst()

bool llvm::buildAtomicFloatingRMWInst ( const SPIRV::IncomingCall * Call,
unsigned Opcode,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

Helper function for building an atomic floating-type instruction.

Definition at line 878 of file SPIRVBuiltins.cpp.

References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), Call, and llvm::SPIRVGlobalRegistry::getSPIRVTypeID().

Referenced by generateAtomicFloatingInst().

◆ buildAtomicInitInst()

bool llvm::buildAtomicInitInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder )
static

Helper function for translating atomic init to OpStore.

Definition at line 648 of file SPIRVBuiltins.cpp.

References llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), Call, and Register.

Referenced by generateAtomicInst().

◆ buildAtomicLoadInst()

◆ buildAtomicRMWInst()

◆ buildAtomicRMWValue()

◆ buildAtomicStoreInst()

◆ buildBarrierInst()

◆ buildBindlessImageINTELInst()

bool llvm::buildBindlessImageINTELInst ( const SPIRV::IncomingCall * Call,
unsigned Opcode,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ buildBoolRegister()

◆ buildBuiltinVariableLoad()

◆ buildCmpXchgValue()

std::pair< Value *, Value * > llvm::buildCmpXchgValue ( IRBuilderBase & Builder,
Value * Ptr,
Value * Cmp,
Value * Val,
Align Alignment )

Emit IR to implement the given cmpxchg operation on values in registers, returning the new value.

Definition at line 40 of file LowerAtomic.cpp.

References llvm::Value::getType(), and Ptr.

Referenced by llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), and lowerAtomicCmpXchgInst().

◆ buildConstantIntReg32()

◆ buildDbgValueForSpill() [1/2]

◆ buildDbgValueForSpill() [2/2]

◆ buildDuplicateError()

Error llvm::buildDuplicateError ( const std::pair< uint64_t, UnitIndexEntry > & PrevE,
const CompileUnitIdentifiers & ID,
StringRef DWPName )

Definition at line 544 of file DWP.cpp.

References buildDWODescription(), make_error(), and utohexstr().

Referenced by write().

◆ buildEnqueueKernel()

◆ buildExtendedBitOpsInst()

◆ buildIDToString()

std::string llvm::buildIDToString ( BuildIDRef ID)
static

◆ buildIntrWithMD()

CallInst * llvm::buildIntrWithMD ( Intrinsic::ID IntrID,
ArrayRef< Type * > Types,
Value * Arg,
Value * Arg2,
ArrayRef< Constant * > Imms,
IRBuilder<> & B )

◆ buildLoadInst()

Register llvm::buildLoadInst ( SPIRVType * BaseType,
Register PtrRegister,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR,
LLT LowLevelType,
Register DestinationReg = Register(0) )
static

Helper function for building a load instruction loading into the DestinationReg.

Definition at line 492 of file SPIRVBuiltins.cpp.

References llvm::MachineIRBuilder::buildLoad(), and createVirtualRegister().

Referenced by buildAtomicCompareExchangeInst(), and buildBuiltinVariableLoad().

◆ buildMD()

◆ buildMemSemanticsReg()

◆ BuildMI() [1/16]

◆ BuildMI() [2/16]

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 404 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::copyMIMetadata(), llvm::RegState::Define, llvm::MIMetadata::getDL(), llvm::MachineBasicBlock::getParent(), I, llvm::MachineBasicBlock::insert(), and MI.

◆ BuildMI() [3/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineBasicBlock::iterator I,
const DebugLoc & DL,
const MCInstrDesc & MCID,
bool IsIndirect,
ArrayRef< MachineOperand > MOs,
const MDNode * Variable,
const MDNode * Expr )

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

Definition at line 2407 of file MachineInstr.cpp.

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

◆ BuildMI() [4/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineBasicBlock::iterator I,
const DebugLoc & DL,
const MCInstrDesc & MCID,
bool IsIndirect,
Register 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 2396 of file MachineInstr.cpp.

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

◆ BuildMI() [5/16]

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 435 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::copyMIMetadata(), llvm::MIMetadata::getDL(), llvm::MachineBasicBlock::getParent(), I, llvm::MachineBasicBlock::insert(), and MI.

◆ BuildMI() [6/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineBasicBlock::iterator I,
const MIMetadata & MIMD,
const MCInstrDesc & MCID,
Register 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 387 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::copyMIMetadata(), llvm::RegState::Define, llvm::MIMetadata::getDL(), llvm::MachineBasicBlock::getParent(), I, llvm::MachineBasicBlock::insert(), and MI.

◆ BuildMI() [7/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineInstr & I,
const MIMetadata & MIMD,
const MCInstrDesc & MCID )
inline

Definition at line 455 of file MachineInstrBuilder.h.

References BuildMI(), and I.

◆ BuildMI() [8/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineInstr & I,
const MIMetadata & MIMD,
const MCInstrDesc & MCID,
Register DestReg )
inline

Definition at line 415 of file MachineInstrBuilder.h.

References BuildMI(), and I.

◆ BuildMI() [9/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineInstr * I,
const MIMetadata & MIMD,
const MCInstrDesc & MCID )
inline

Definition at line 465 of file MachineInstrBuilder.h.

References BuildMI(), and I.

◆ BuildMI() [10/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock & BB,
MachineInstr * I,
const MIMetadata & MIMD,
const MCInstrDesc & MCID,
Register DestReg )
inline

Definition at line 426 of file MachineInstrBuilder.h.

References BuildMI(), and I.

◆ BuildMI() [11/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock * BB,
const MIMetadata & MIMD,
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 473 of file MachineInstrBuilder.h.

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

◆ BuildMI() [12/16]

MachineInstrBuilder llvm::BuildMI ( MachineBasicBlock * BB,
const MIMetadata & MIMD,
const MCInstrDesc & MCID,
Register 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 482 of file MachineInstrBuilder.h.

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

◆ BuildMI() [13/16]

◆ BuildMI() [14/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction & MF,
const DebugLoc & DL,
const MCInstrDesc & MCID,
bool IsIndirect,
Register 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 2346 of file MachineInstr.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), cast(), DL, isa(), and isValid().

◆ BuildMI() [15/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction & MF,
const MIMetadata & MIMD,
const MCInstrDesc & MCID )
inline

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

Definition at line 369 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::copyMIMetadata(), and llvm::MIMetadata::getDL().

Referenced by addAsmInstr(), addImplicitDefs(), llvm::MachineBasicBlock::addLiveIn(), llvm::SITargetLowering::AddMemOpInit(), llvm::M68kInstrInfo::AddSExt(), addUnreachableAfterTryTables(), llvm::M68kInstrInfo::AddZExt(), AdjustBaseAndOffset(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::RISCVRegisterInfo::adjustReg(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::XtensaInstrInfo::adjustStackPtr(), llvm::RISCVFrameLowering::allocateStack(), llvm::AVRInstrInfo::analyzeBranch(), llvm::M68kInstrInfo::AnalyzeBranchImpl(), appendEndToFunction(), llvm::CombinerHelper::applyUseVectorTruncate(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::Mips16InstrInfo::BuildAddiuSpImm(), buildCFAOffs(), llvm::MSP430FrameLowering::BuildCFI(), llvm::X86FrameLowering::BuildCFI(), llvm::X86InstrInfo::buildClearRegister(), buildDbgValueForSpill(), buildDbgValueForSpill(), llvm::R600InstrInfo::buildDefaultInstruction(), buildDefCFAReg(), llvm::MachineIRBuilder::buildDirectDbgValue(), llvm::SIInstrInfo::buildExtractSubReg(), buildGitPtr(), llvm::MachineIRBuilder::buildIndirectDbgValue(), llvm::MachineIRBuilder::buildInstrNoInsert(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), BuildMI(), buildMUBUFOffsetLoadStore(), buildOpDecorate(), buildOpMemberDecorate(), buildOpName(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), llvm::RISCVInstrInfo::buildOutlinedFrame(), llvm::X86InstrInfo::buildOutlinedFrame(), BuildPACM(), buildScratchExecCopy(), llvm::SIInstrInfo::buildShrunkInst(), llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SITargetLowering::bundleInstWithWaitcnt(), llvm::X86InstrInfo::classifyLEAReg(), CMSEPopCalleeSaves(), CMSEPushCalleeSaves(), CombineCVTAToLocal(), combineFPFusedMultiply(), llvm::PPCInstrInfo::commuteInstructionImpl(), CompressEVEXImpl(), constrainOperandRegClass(), llvm::FastISel::constrainOperandRegClass(), llvm::RISCVInstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::BPFInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::LoongArchInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::RISCVInstrInfo::copyPhysRegVector(), copyPhysSubRegs(), llvm::ARMBaseInstrInfo::copyToCPSR(), createCallWithOps(), llvm::SwiftErrorValueTracking::createEntriesInEntryBlock(), llvm::PeelingModuloScheduleExpander::CreateLCSSAExitingBlock(), llvm::SIInstrInfo::createPHIDestinationCopy(), llvm::TargetInstrInfo::createPHIDestinationCopy(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::SIInstrInfo::createPHISourceCopy(), llvm::TargetInstrInfo::createPHISourceCopy(), createPostIncLoadStore(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::LoongArchRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::XtensaRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), llvm::AArch64TargetLowering::EmitAllocateSMESaveBuffer(), llvm::AArch64TargetLowering::EmitAllocateZABuffer(), emitARMRegPlusImmediate(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBuildPairF64Pseudo(), emitBuildPairF64Pseudo(), EmitCfiOffset(), llvm::AArch64TargetLowering::EmitCheckMatchingVL(), llvm::SIFrameLowering::emitCSRSpillRestores(), llvm::SIFrameLowering::emitCSRSpillStores(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::InstrEmitter::EmitDbgLabel(), llvm::InstrEmitter::EmitDbgNoLocation(), llvm::InstrEmitter::EmitDbgValueFromSingleOp(), llvm::InstrEmitter::EmitDbgValueList(), llvm::LiveDebugVariables::LDVImpl::emitDebugValues(), EmitDefCfaOffset(), EmitDefCfaRegister(), llvm::RISCVTargetLowering::emitDynamicProbedAlloc(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::SystemZTargetLowering::emitEHSjLjLongJmp(), llvm::VETargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::SystemZTargetLowering::emitEHSjLjSetJmp(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AArch64TargetLowering::EmitEntryPStateSM(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::CSKYFrameLowering::emitEpilogue(), llvm::LanaiFrameLowering::emitEpilogue(), llvm::M68kFrameLowering::emitEpilogue(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::VEFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::XtensaFrameLowering::emitEpilogue(), llvm::VEFrameLowering::emitEpilogueInsns(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::AArch64TargetLowering::EmitFill(), emitFrameOffset(), emitFrameOffsetAdj(), emitFROUND(), llvm::HexagonDAGToDAGISel::emitFunctionEntryCode(), llvm::AArch64TargetLowering::EmitGetSMESaveSize(), emitGPDisp(), llvm::SITargetLowering::emitGWSMemViolTestLoop(), emitIncrement(), emitIndirectDst(), emitIndirectSrc(), llvm::AArch64TargetLowering::EmitInitTPIDR2Object(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::XtensaTargetLowering::EmitInstrWithCustomInserter(), llvm::AArch64TargetLowering::EmitKCFICheck(), llvm::RISCVTargetLowering::EmitKCFICheck(), llvm::X86TargetLowering::EmitKCFICheck(), llvm::AArch64InstrInfo::emitLdStWithAddr(), llvm::RISCVInstrInfo::emitLdStWithAddr(), llvm::MachineRegisterInfo::EmitLiveInCopies(), emitLoad(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitLoadM0FromVGPRLoop(), emitLoadScalarOpsFromVGPRLoop(), LiveDebugValues::MLocTracker::emitLoc(), EmitLoweredCascadedSelect(), emitLpad(), TransferTracker::emitMOLoc(), llvm::AArch64FrameLowering::emitPacRetPlusLeafHardening(), emitPACSymOffsetIntoX16(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::TargetLoweringBase::emitPatchPoint(), emitPostLd(), emitPostSt(), llvm::PPCTargetLowering::emitProbedAlloca(), llvm::AArch64PrologueEmitter::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::AVRFrameLowering::emitPrologue(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::M68kFrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::SystemZXPLINKFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::XtensaFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), llvm::VEFrameLowering::emitPrologueInsns(), emitPseudoCTPOP(), emitPseudoVMSKCOND(), emitPseudoXVINSGR2VR(), emitQuietFCMP(), emitReadCounterWidePseudo(), emitRegUpdate(), emitSCSEpilogue(), emitSCSPrologue(), emitSelectPseudo(), emitSelectPseudo(), emitSelectPseudo(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitSiFiveCLICPreemptibleRestores(), emitSiFiveCLICPreemptibleSaves(), emitSiFiveCLICStackSwap(), llvm::VETargetLowering::emitSjLjDispatchBlock(), emitSplitF64Pseudo(), emitSplitPairF64Pseudo(), llvm::M68kFrameLowering::emitSPUpdate(), llvm::X86FrameLowering::emitSPUpdate(), llvm::X86FrameLowering::emitStackProbe(), emitStackProbeInline(), emitStore(), emitT2RegPlusImmediate(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::AArch64TargetLowering::EmitTileLoad(), emitVecCondBranchPseudo(), emitVFROUND_NOEXCEPT_MASK(), emitXBegin(), llvm::AArch64TargetLowering::EmitZAInstr(), llvm::AArch64TargetLowering::EmitZero(), llvm::AArch64TargetLowering::EmitZTInstr(), llvm::SIInstrInfo::enforceOperandRCAlignment(), ensureEntrySetPrio(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), Expand64BitScalarArithmetic(), llvm::VEInstrInfo::expandExtendStackPseudo(), expandFillPPRFromZPRSlotPseudo(), llvm::VEInstrInfo::expandGetStackTopPseudo(), expandLoadStackGuard(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), expandMOV32r1(), llvm::SIInstrInfo::expandMovDPP64(), llvm::M68kInstrInfo::ExpandMOVEM(), llvm::M68kInstrInfo::ExpandMOVI(), ExpandMOVImmSExti8(), llvm::M68kInstrInfo::ExpandMOVSZX_RR(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::VEInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::expandPostRAPseudo(), expandPseudoLogM(), expandPseudoVFMK(), llvm::M68kInstrInfo::ExpandPUSH_POP(), llvm::SparcTargetLowering::expandSelectCC(), expandSGPRCopy(), expandSpillPPRToZPRSlotPseudo(), 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(), llvm::AArch64TargetLowering::fixupPtrauthDiscriminator(), llvm::ARMBaseInstrInfo::foldImmediate(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::RISCVInstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldVGPRCopyIntoRegSequence(), forceReg(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), genAlternativeDpCodeSequence(), generateEndPgm(), generateGatherLanePattern(), generateStackAdjustment(), genFNegatedMAD(), genFusedMultiply(), genIndexedMultiply(), llvm::MipsInstrInfo::genInstrWithNewOpc(), genMaddR(), genNeg(), genShXAddAddShift(), genSubAdd2SubSub(), genTPEntry(), genTPLoopBody(), llvm::SIInstrInfo::getAddNoCarry(), llvm::SIInstrInfo::getAddNoCarry(), getFunctionLiveInPhysReg(), llvm::CSKYInstrInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::VEInstrInfo::getGlobalBaseReg(), getIndirectSGPRIdx(), getLegalRegBank(), getOrCreateFrameHelper(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVBoolType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getOrCreateUndef(), llvm::SITargetLowering::getPrefLoopAlignment(), llvm::FastISel::handleDbgInfo(), handleNDDOrNFInstructions(), IfNeededExtSP(), IfNeededLDAWSP(), indirectCopyToAGPR(), llvm::MipsFunctionInfo::initGlobalBaseReg(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::SystemZELFFrameLowering::inlineStackProbe(), llvm::SystemZXPLINKFrameLowering::inlineStackProbe(), llvm::AArch64InstrInfo::insertBranch(), llvm::ARCInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::AVRInstrInfo::insertBranch(), llvm::BPFInstrInfo::insertBranch(), llvm::CSKYInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::LanaiInstrInfo::insertBranch(), llvm::LoongArchInstrInfo::insertBranch(), llvm::M68kInstrInfo::insertBranch(), llvm::MipsInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::NVPTXInstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), llvm::RISCVInstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::SparcInstrInfo::insertBranch(), llvm::SPIRVInstrInfo::insertBranch(), llvm::SystemZInstrInfo::insertBranch(), llvm::VEInstrInfo::insertBranch(), llvm::WebAssemblyInstrInfo::insertBranch(), llvm::X86InstrInfo::insertBranch(), llvm::XCoreInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), llvm::CFIInstBuilder::insertCFIInst(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::SITargetLowering::insertCopiesSplitCSR(), insertCopy(), insertDivByZeroTrap(), insertDivByZeroTrap(), llvm::SIInstrInfo::insertEQ(), InsertFPConstInst(), InsertFPImmInst(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AVRInstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), llvm::XtensaInstrInfo::insertIndirectBranch(), InsertLDR_STR(), insertMultibyteShift(), llvm::SIInstrInfo::insertNE(), InsertNewDef(), llvm::AArch64InstrInfo::insertNoop(), llvm::HexagonInstrInfo::insertNoop(), llvm::MipsInstrInfo::insertNoop(), llvm::PPCInstrInfo::insertNoop(), llvm::X86InstrInfo::insertNoop(), llvm::SIInstrInfo::insertNoops(), insertNoopsInBundle(), llvm::ErrataWorkaround::insertNop(), llvm::MipsInstrInfo::insertNop(), insertNopBeforeInstruction(), llvm::ARMBaseInstrInfo::insertOutlinedCall(), llvm::RISCVInstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), insertPHI(), insertRememberRestorePair(), llvm::SIInstrInfo::insertReturn(), llvm::SIInstrInfo::insertScratchExecCopy(), InsertSEH(), insertSEH(), llvm::AArch64InstrInfo::insertSelect(), llvm::PPCInstrInfo::insertSelect(), llvm::SIInstrInfo::insertSelect(), llvm::SystemZInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), llvm::SIInstrInfo::insertSimulatedTrap(), InsertSPConstInst(), insertSpeculationBarrier(), InsertSPImmInst(), insertUndefLaneMask(), llvm::SIInstrInfo::insertVectorSelect(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsVALUt16(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::AMDGPULegalizerInfo::legalizeTrapEndpgm(), llvm::ARCInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::XtensaInstrInfo::loadImmediate(), loadM0FromVGPR(), loadMBUFScalarOperandsFromVGPR(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::CSKYInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::loadRegFromStackSlot(), llvm::LoongArchInstrInfo::loadRegFromStackSlot(), llvm::M68kInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::XtensaInstrInfo::loadRegFromStackSlot(), loadRegPairFromStackSlot(), llvm::X86InstrInfo::loadStoreTileReg(), llvm::PPCRegisterInfo::lowerACCRestore(), llvm::PPCRegisterInfo::lowerACCSpilling(), LowerCallResults(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::FastISel::lowerDbgDeclare(), llvm::FastISel::lowerDbgValue(), llvm::PPCRegisterInfo::lowerDMRRestore(), llvm::PPCRegisterInfo::lowerDMRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), LowerFPToInt(), LowerMemcpy(), LowerMemset(), llvm::PPCRegisterInfo::lowerPrepareProbedAlloca(), llvm::PPCRegisterInfo::lowerQuadwordRestore(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), llvm::PPCRegisterInfo::lowerWACCRestore(), llvm::PPCRegisterInfo::lowerWACCSpilling(), lowerWaveReduce(), llvm::Mips16InstrInfo::makeFrame(), makeM0Inst(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::RISCVRegisterInfo::materializeFrameBaseRegister(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::PPCInstrInfo::materializeImmPostRA(), maybeRewriteToFallthrough(), moveAndTeeForMultiUse(), llvm::ARMBlockPlacement::moveBasicBlock(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::CSKYInstrInfo::movImm(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::RISCVInstrInfo::mulImm(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::SIInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::RISCVInstrInfo::optimizeCondBranch(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::RISCVInstrInfo::optimizeSelect(), llvm::Thumb2InstrInfo::optimizeSelect(), popRegsFromStack(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::SGPRSpillBuilder::prepare(), llvm::PPCRegisterInfo::prepareDynamicAlloca(), llvm::VETargetLowering::prepareMBB(), llvm::VETargetLowering::prepareSymbol(), llvm::AArch64InstrInfo::probedStackAlloc(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCInstrInfo::promoteInstr32To64ForElimEXTSW(), llvm::SwiftErrorValueTracking::propagateVRegs(), pushRegsToStack(), llvm::SIInstrInfo::readlaneVGPRToSGPR(), llvm::SGPRSpillBuilder::readWriteTmpVGPR(), llvm::TargetInstrInfo::reduceAccumulatorTree(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::X86InstrInfo::replaceBranchWithTailCall(), replaceFI(), replaceFrameIndex(), reportIllegalCopy(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::SGPRSpillBuilder::restore(), llvm::TargetFrameLowering::restoreCalleeSavedRegister(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::AVRFrameLowering::restoreCalleeSavedRegisters(), llvm::M68kFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::RISCVFrameLowering::restoreCalleeSavedRegisters(), llvm::SIFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZELFFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZXPLINKFrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SIInstrInfo::restoreExec(), llvm::Mips16InstrInfo::restoreFrame(), llvm::SIRegisterInfo::restoreSGPR(), RestoreSpillList(), restoreStatusRegister(), llvm::X86FrameLowering::restoreWin32EHStackPointers(), RevertDoLoopStart(), RevertLoopDec(), RevertLoopEnd(), RevertWhileLoopSetup(), RevertWhileLoopStartLR(), llvm::ARMBlockPlacement::revertWhileToDoLoop(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::FastISel::selectCall(), selectCopy(), llvm::FastISel::selectFreeze(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::FastISel::selectXRayCustomEvent(), llvm::FastISel::selectXRayTypedEvent(), llvm::FunctionLoweringInfo::set(), setCallTargetReg(), llvm::ARMBaseInstrInfo::setExecutionDomain(), setM0ToIndexFromSGPR(), llvm::VETargetLowering::setupEntryBlockForSjLj(), signOutlinedFunction(), llvm::TargetFrameLowering::spillCalleeSavedRegister(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::M68kFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), llvm::SIFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZELFFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZXPLINKFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillEmergencySGPR(), llvm::SIRegisterInfo::spillSGPR(), spillVGPRtoAGPR(), splitEdge(), splitMBB(), storeRegPairToStackSlot(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::M68kInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::unfoldMemoryOperand(), unstackifyVRegsUsedInSplitBB(), and llvm::WebAssemblyFrameLowering::writeSPToGlobal().

◆ BuildMI() [16/16]

MachineInstrBuilder llvm::BuildMI ( MachineFunction & MF,
const MIMetadata & MIMD,
const MCInstrDesc & MCID,
Register DestReg )
inline

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

Definition at line 377 of file MachineInstrBuilder.h.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::copyMIMetadata(), llvm::RegState::Define, and llvm::MIMetadata::getDL().

◆ buildModuleSummaryIndex()

ModuleSummaryIndex llvm::buildModuleSummaryIndex ( const Module & M,
std::function< BlockFrequencyInfo *(const Function &F)> GetBFICallback,
ProfileSummaryInfo * PSI,
std::function< const StackSafetyInfo *(const Function &F)> GetSSICallback = [](const Function &F) -> const StackSafetyInfo * { return nullptr; } )

◆ buildNDRange()

◆ buildOpDecorate() [1/2]

void llvm::buildOpDecorate ( Register Reg,
MachineInstr & I,
const SPIRVInstrInfo & TII,
SPIRV::Decoration::Decoration Dec,
const std::vector< uint32_t > & DecArgs,
StringRef StrImm )

◆ buildOpDecorate() [2/2]

◆ buildOpFromWrapper()

◆ buildOpMemberDecorate() [1/2]

void llvm::buildOpMemberDecorate ( Register Reg,
MachineInstr & I,
const SPIRVInstrInfo & TII,
SPIRV::Decoration::Decoration Dec,
uint32_t Member,
const std::vector< uint32_t > & DecArgs,
StringRef StrImm )

◆ buildOpMemberDecorate() [2/2]

void llvm::buildOpMemberDecorate ( Register Reg,
MachineIRBuilder & MIRBuilder,
SPIRV::Decoration::Decoration Dec,
uint32_t Member,
const std::vector< uint32_t > & DecArgs,
StringRef StrImm )

◆ buildOpName() [1/2]

void llvm::buildOpName ( Register Target,
const StringRef & Name,
MachineInstr & I,
const SPIRVInstrInfo & TII )

Definition at line 121 of file SPIRVUtils.cpp.

References addStringImm(), llvm::MachineInstrBuilder::addUse(), BuildMI(), I, and TII.

◆ buildOpName() [2/2]

◆ buildOpSpirvDecorations()

◆ buildScopeReg()

Register llvm::buildScopeReg ( Register CLScopeRegister,
SPIRV::Scope::Scope Scope,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR,
MachineRegisterInfo * MRI )
static

◆ buildSelectInst()

bool llvm::buildSelectInst ( MachineIRBuilder & MIRBuilder,
Register ReturnRegister,
Register SourceRegister,
const SPIRVType * ReturnType,
SPIRVGlobalRegistry * GR )
static

◆ buildTernaryBitwiseFunctionINTELInst()

bool llvm::buildTernaryBitwiseFunctionINTELInst ( const SPIRV::IncomingCall * Call,
unsigned Opcode,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ buildTopDownFuncOrder()

void llvm::buildTopDownFuncOrder ( LazyCallGraph & CG,
std::vector< Function * > & FunctionOrderList )
inlinestatic

◆ BuryPointer() [1/2]

void llvm::BuryPointer ( const void * Ptr)

Definition at line 15 of file BuryPointer.cpp.

References LLVM_ATTRIBUTE_USED, and Ptr.

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(), and Ptr.

◆ 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.

◆ byteswap()

◆ c_str()

◆ cacheAnnotationFromMD() [1/2]

◆ cacheAnnotationFromMD() [2/2]

◆ calculateClrEHStateNumbers()

◆ calculateCountScale()

uint64_t llvm::calculateCountScale ( uint64_t MaxCount)
inline

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 161 of file ProfDataUtils.h.

Referenced by createBranchWeights(), downscaleWeights(), and setProfMetadata().

◆ calculateCXXStateForAsynchEH()

◆ calculateDbgEntityHistory()

◆ calculateRegAllocScore() [1/2]

RegAllocScore llvm::calculateRegAllocScore ( const MachineFunction & MF,
const MachineBlockFrequencyInfo & MBFI )

Calculate a score.

When comparing 2 scores for the same function but different policies, the better policy would have a smaller score. The implementation is the overload below (which is also easily unittestable)

Definition at line 74 of file RegAllocScore.cpp.

References calculateRegAllocScore(), llvm::MachineBlockFrequencyInfo::getBlockFreqRelativeToEntryBlock(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFunction::getSubtarget(), llvm::TargetInstrInfo::isTriviallyReMaterializable(), MBB, and MI.

Referenced by calculateRegAllocScore().

◆ calculateRegAllocScore() [2/2]

RegAllocScore llvm::calculateRegAllocScore ( const MachineFunction & MF,
llvm::function_ref< double(const MachineBasicBlock &)> GetBBFreq,
llvm::function_ref< bool(const MachineInstr &)> IsTriviallyRematerializable )

◆ calculateRegisterUsageForPlan()

SmallVector< VPRegisterUsage, 8 > llvm::calculateRegisterUsageForPlan ( VPlan & Plan,
ArrayRef< ElementCount > VFs,
const TargetTransformInfo & TTI,
const SmallPtrSetImpl< const Value * > & ValuesToIgnore )

◆ calculateSEHStateForAsynchEH()

◆ calculateSEHStateNumbers()

◆ calculateUpperBound()

◆ calculateWasmEHInfo()

◆ 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 616 of file WinEHPrepare.cpp.

References calculateCXXStateForAsynchEH(), calculateCXXStateNumbers(), calculateStateNumbersForInvokes(), llvm::WinEHFuncInfo::EHPadStateMap, llvm::Function::getEntryBlock(), llvm::Module::getModuleFlag(), llvm::GlobalValue::getParent(), and isTopLevelPadForMSVC().

Referenced by 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);
void call_once(once_flag &flag, Function &&F, Args &&... ArgList)
Execute the function specified as a parameter once.
Definition Threading.h:86
Parameters
flagFlag used for tracking whether or not this has run.
FFunction to call once.

Definition at line 86 of file Threading.h.

References llvm::sys::CompareAndSwap(), Done, F, llvm::sys::MemoryFence(), llvm::once_flag::status, TsanHappensAfter, TsanHappensBefore, TsanIgnoreWritesBegin, TsanIgnoreWritesEnd, Uninitialized, and Wait.

Referenced by llvm::AArch64RegisterBankInfo::AArch64RegisterBankInfo(), llvm::AMDGPURegisterBankInfo::AMDGPURegisterBankInfo(), llvm::ARMRegisterBankInfo::ARMRegisterBankInfo(), llvm::TargetPassConfig::createRegAllocPass(), and llvm::SIRegisterInfo::SIRegisterInfo().

◆ callDefaultCtor()

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

Definition at line 68 of file PassSupport.h.

References PassName, and report_fatal_error().

Referenced by llvm::RegisterPass< passName >::RegisterPass().

◆ callDefaultCtor< RegAllocEvictionAdvisorAnalysisLegacy >()

◆ callDefaultCtor< RegAllocPriorityAdvisorAnalysisLegacy >()

◆ callsGCLeafFunction()

bool llvm::callsGCLeafFunction ( const CallBase * Call,
const TargetLibraryInfo & TLI )

Return true if this call 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3254 of file Local.cpp.

References Call, F, llvm::TargetLibraryInfo::getLibFunc(), and llvm::TargetLibraryInfo::has().

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

◆ canConstantFoldCallTo()

bool llvm::canConstantFoldCallTo ( const CallBase * Call,
const Function * F )

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

Definition at line 1588 of file ConstantFolding.cpp.

References any_of(), Call, DisableFPCallFolding, F, and llvm::Intrinsic::not_intrinsic.

Referenced by CanConstantFold(), ConstantFoldBinaryIntrinsic(), and tryConstantFoldCall().

◆ canConvertToMinOrMaxIntrinsic()

std::pair< Intrinsic::ID, bool > llvm::canConvertToMinOrMaxIntrinsic ( ArrayRef< Value * > VL)

Check if the values in VL are select instructions that can be converted to a min or max (vector) intrinsic.

Returns the intrinsic ID, if such a conversion is possible, together with a bool indicating whether all select conditions are only used by the selects. Otherwise return Intrinsic::not_intrinsic.

Definition at line 9091 of file ValueTracking.cpp.

References all_of(), llvm::SelectPatternResult::Flavor, I, llvm::SelectPatternResult::isMinOrMax(), llvm_unreachable, llvm::MIPatternMatch::m_OneUse(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), matchSelectPattern(), llvm::Intrinsic::not_intrinsic, SPF_FMAXNUM, SPF_FMINNUM, SPF_SMAX, SPF_SMIN, SPF_UMAX, SPF_UMIN, and SPF_UNKNOWN.

◆ canCreatePoison() [1/2]

bool llvm::canCreatePoison ( const Operator * Op,
bool ConsiderFlagsAndMetadata = true )

◆ canCreatePoison() [2/2]

LLVM_ABI bool llvm::canCreatePoison ( Register Reg,
const MachineRegisterInfo & MRI,
bool ConsiderFlagsAndMetadata = true )

Returns true if Reg can create poison from non-poison operands.

References llvm::CallingConv::C, Depth, LLVM_ABI, MI, MRI, and Reg.

◆ canCreateUndefOrPoison() [1/2]

bool llvm::canCreateUndefOrPoison ( const Operator * Op,
bool ConsiderFlagsAndMetadata = true )

canCreateUndefOrPoison returns true if Op can create undef or poison from non-undef & non-poison operands.

For vectors, canCreateUndefOrPoison returns true if there is potential poison or undef in any element of the result when vectors without undef/poison poison are given as operands. For example, given Op = shl <2 x i32> x, <0, 32>, this function returns true. If Op raises immediate UB but never creates poison or undef (e.g. sdiv I, 0), canCreatePoison returns false.

ConsiderFlagsAndMetadata controls whether poison producing flags and metadata on the instruction are considered. This can be used to see if the instruction could still introduce undef or poison even without poison generating flags and metadata which might be on the instruction. (i.e. could the result of Op->dropPoisonGeneratingFlags() still create poison or undef)

canCreatePoison returns true if Op can create poison from non-poison operands.

Definition at line 7521 of file ValueTracking.cpp.

References UndefOrPoison.

Referenced by llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), isGuaranteedNotToBeUndefOrPoison(), isGuaranteedNotToBeUndefOrPoison(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), and llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating().

◆ canCreateUndefOrPoison() [2/2]

bool llvm::canCreateUndefOrPoison ( Register Reg,
const MachineRegisterInfo & MRI,
bool ConsiderFlagsAndMetadata = true )

Returns true if Reg can create undef or poison from non-undef & non-poison operands.

ConsiderFlagsAndMetadata controls whether poison producing flags and metadata on the instruction are considered. This can be used to see if the instruction could still introduce undef or poison even without poison generating flags and metadata which might be on the instruction.

Definition at line 2000 of file Utils.cpp.

References MRI, and UndefOrPoison.

◆ canIgnoreSignBitOfNaN()

bool llvm::canIgnoreSignBitOfNaN ( const Use & U)

Return true if the sign bit of the FP value can be ignored by the user when the value is NaN.

Definition at line 6035 of file ValueTracking.cpp.

References cast(), dyn_cast(), fcNan, and II.

◆ canIgnoreSignBitOfZero()

bool llvm::canIgnoreSignBitOfZero ( const Use & U)

Return true if the sign bit of the FP value can be ignored by the user when the value is zero.

Definition at line 5996 of file ValueTracking.cpp.

References cast(), dyn_cast(), fcNone, fcZero, II, and Test.

Referenced by llvm::InstCombinerImpl::visitFAdd().

◆ canIgnoreSNaN()

bool llvm::canIgnoreSNaN ( fp::ExceptionBehavior EB,
FastMathFlags FMF )
inline

Returns true if the possibility of a signaling NaN can be safely ignored.

Definition at line 86 of file FPEnv.h.

References llvm::fp::ebIgnore, and llvm::FastMathFlags::noNaNs().

Referenced by simplifyFAddInst(), and simplifyFSubInst().

◆ CanInlineCallSite()

llvm::InlineResult llvm::CanInlineCallSite ( const CallBase & CB,
InlineFunctionInfo & IFI )

◆ canInstructionHaveMMRAs()

bool llvm::canInstructionHaveMMRAs ( const Instruction & I)
Returns
true if I can have !mmra metadata.

Definition at line 166 of file MemoryModelRelaxationAnnotations.cpp.

References I, isa(), and isReadWriteMemCall().

◆ cannotBeMaxInLoop()

◆ cannotBeMinInLoop()

◆ cannotBeNegativeZero()

bool llvm::cannotBeNegativeZero ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

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

Users should use caution when considering PreserveSign denormal-fp-math.

Definition at line 5951 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, fcNegZero, and llvm::KnownFPClass::isKnownNeverNegZero().

Referenced by foldSelectBinOpIdentity(), simplifyFAddInst(), simplifyFSubInst(), and llvm::InstCombinerImpl::visitFSub().

◆ cannotBeOrderedLessThanZero()

bool llvm::cannotBeOrderedLessThanZero ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

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 5957 of file ValueTracking.cpp.

References llvm::KnownFPClass::cannotBeOrderedLessThanZero(), computeKnownFPClass(), Depth, and llvm::KnownFPClass::OrderedLessThanZeroMask.

Referenced by llvm::AMDGPULibCalls::fold(), and foldSqrt().

◆ canonicalizePath()

ErrorOr< SmallString< 128 > > llvm::canonicalizePath ( StringRef P)
static

◆ canParallelizeReductionWhenUnrolling()

◆ canPeel()

◆ canPeelLastIteration()

◆ 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 1516 of file InstrProf.cpp.

References assert(), llvm::GlobalValue::AvailableExternallyLinkage, F, llvm::GlobalValue::isDiscardableIfUnused(), and needsComdatForCounter().

Referenced by canRenameComdat(), and getVarName().

◆ canReplaceOperandWithVariable()

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

Given an instruction, is it legal to set operand OpIdx to a non-constant value?

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3842 of file Local.cpp.

References cast(), gep_type_begin(), I, isa(), llvm::generic_gep_type_iterator< ItTy >::isStruct(), and OpIdx.

Referenced by canSinkInstructions().

◆ canReplacePointersIfEqual()

bool llvm::canReplacePointersIfEqual ( const Value * From,
const Value * To,
const DataLayout & DL )

Returns true if a pointer value From can be replaced with another pointer value \To if they are deemed equal through some means (e.g.

information from conditions). NOTE: The current implementation allows replacement in Icmp and PtrToInt instructions, as well as when we are replacing with a null pointer. Additionally it also allows replacement of pointers when both pointers have the same underlying object.

Definition at line 853 of file Loads.cpp.

References assert(), DL, llvm::Value::getType(), isPointerAlwaysReplaceable(), and llvm::Type::isPointerTy().

Referenced by simplifySelectWithICmpCond().

◆ canReplacePointersInUseIfEqual()

bool llvm::canReplacePointersInUseIfEqual ( const Use & U,
const Value * To,
const DataLayout & DL )

◆ canReplaceReg()

◆ canReturn()

bool llvm::canReturn ( const Function & F)

Return true if there is at least a path through which F can return, false if there is no such path.

Definition at line 342 of file CFG.cpp.

References basicBlockCanReturn(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and successors().

Referenced by addNoReturnAttrs().

◆ canRoundingModeBe()

bool llvm::canRoundingModeBe ( RoundingMode RM,
RoundingMode QRM )
inline

Returns true if the rounding mode RM may be QRM at compile time or at run time.

Definition at line 80 of file FPEnv.h.

References Dynamic.

Referenced by simplifyFAddInst(), and simplifyFSubInst().

◆ canSimplifyInvokeNoUnwind()

bool llvm::canSimplifyInvokeNoUnwind ( const Function * F)

◆ canSinkOrHoistInst()

bool llvm::canSinkOrHoistInst ( Instruction & I,
AAResults * AA,
DominatorTree * DT,
Loop * CurLoop,
MemorySSAUpdater & MSSAU,
bool TargetExecutesOncePerLoop,
SinkAndHoistLICMFlags & LICMFlags,
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 1166 of file LICM.cpp.

References assert(), cast(), DEBUG_TYPE, llvm::MemoryEffectsBase< LocationEnum >::doesNotAccessMemory(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::MemorySSA::getMemoryAccess(), llvm::MemorySSAUpdater::getMemorySSA(), I, isLoadInvariantInLoop(), llvm::Loop::isLoopInvariant(), isModSet(), llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::match(), noConflictingReadWrites(), llvm::MemoryEffectsBase< LocationEnum >::onlyReadsMemory(), llvm::MemoryEffectsBase< LocationEnum >::onlyWritesMemory(), and pointerInvalidatedByLoop().

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

◆ canSplitLoopBound()

bool llvm::canSplitLoopBound ( const Loop & L,
const DominatorTree & DT,
ScalarEvolution & SE,
ConditionInfo & Cond )
static

◆ 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));
Lightweight error class with error context and mandatory checking.
Definition Error.h:159
void cantFail(Error Err, const char *Msg=nullptr)
Report a fatal error if Err is a failure value.
Definition Error.h:769

Definition at line 769 of file Error.h.

References llvm_unreachable.

Referenced by llvm::orc::EPCGenericJITLinkMemoryManager::InFlightAlloc::abandon(), addPadding(), addPadding(), llvm::orc::EPCGenericJITLinkMemoryManager::allocate(), llvm::ARMAsmBackendDarwin::ARMAsmBackendDarwin(), llvm::codeview::ContinuationRecordBuilder::begin(), llvm::MCPseudoProbeDecoder::buildGUID2FuncDescMap(), llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), llvm::FileCheckString::CheckNot(), commitFpm(), llvm::orc::COFFPlatform::Create(), llvm::msf::WritableMappedBlockStream::createFpmStream(), llvm::ARMAsmBackendDarwin::createObjectTargetWriter(), createRecord(), llvm::orc::EPCGenericJITLinkMemoryManager::deallocate(), llvm::DebuginfodServer::DebuginfodServer(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), llvm::orc::SharedMemoryMapper::deinitialize(), llvm::object::describe(), llvm::orc::deserializeModule(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::MCStreamer::emitDwarfFileDirective(), llvm::MCJIT::emitObject(), emitTargetCall(), llvm::codeview::ContinuationRecordBuilder::end(), exprMin(), llvm::orc::EPCGenericJITLinkMemoryManager::InFlightAlloc::finalize(), llvm::orc::EPCGenericRTDyldMemoryManager::finalizeMemory(), llvm::pdb::NativeFunctionSymbol::findInlineFramesByVA(), llvm::pdb::LinePrinter::formatMsfStreamBlocks(), llvm::CodeViewYAML::fromDebugH(), llvm::orc::JITCompileCallbackManager::getCompileCallback(), llvm::object::ELFObjectFile< ELFT >::getCrelDecodeProblem(), llvm::MCDwarfDwoLineTable::getFile(), llvm::MCDwarfLineTable::getFile(), llvm::object::COFFObjectFile::getHybridObjectView(), llvm::DWARFDataExtractorBase< Relocator >::getInitialLength(), llvm::orc::getMachOObjectFileSymbolInfo(), llvm::pdb::NativeInlineSiteSymbol::getName(), llvm::pdb::SymbolCache::getOrCreateGlobalSymbolByOffset(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::object::COFFObjectFile::getSymbolAddress(), llvm::object::MachOObjectFile::getSymbolAlignment(), llvm::codeview::getSymbolName(), llvm::RuntimeDyldCOFF::getSymbolOffset(), handleAllErrors(), handleAllErrors(), llvm::pdb::PDBFile::hasPDBIpiStream(), importedSymbolBegin(), importedSymbolEnd(), llvm::orc::SharedMemoryMapper::initialize(), isCodeViewDebugSubsection(), isDebugSSection(), isDebugTSection(), llvm::object::XCOFFSymbolRef::isFunction(), llvm::orc::EPCGenericDylibManager::lookupAsync(), llvm::orc::EPCGenericDylibManager::lookupAsync(), llvm::jitlink::aarch64::lowerPointer64AuthEdgesToSigningFunction(), llvm::orc::shared::detail::ResultDeserializer< SPSError, Error >::makeSafe(), llvm::orc::shared::detail::ResultDeserializer< SPSExpected< SPSTagT >, Expected< T > >::makeSafe(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), llvm::orc::EHFrameRegistrationPlugin::modifyPassConfig(), llvm::orc::PerfSupportPlugin::modifyPassConfig(), llvm::orc::VTuneSupportPlugin::modifyPassConfig(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::orc::ConcurrentIRCompiler::operator()(), llvm::Pattern::parsePattern(), llvm::orc::PerfSupportPlugin::PerfSupportPlugin(), llvm::jitlink::printSymbolEntry(), processConstantStringArg(), llvm::xray::Profile::Profile(), readBBAddrMapImpl(), readDynsymVersionsImpl(), llvm::orc::SharedMemoryMapper::release(), llvm::orc::SharedMemoryMapper::reserve(), resolveTypeIndexReferences(), llvm::object::ELFObjectFile< ELFT >::section_rel_begin(), llvm::codeview::SimpleTypeSerializer::serialize(), llvm::CodeViewYAML::toDebugH(), llvm::DWARFDebugLoclists::visitLocationList(), writeDIE(), writeDWARFOffset(), writeExtendedOpcode(), writeInitialLength(), writeListEntry(), writeListEntry(), llvm::codeview::ContinuationRecordBuilder::writeMemberType(), llvm::orc::InProcessMemoryMapper::~InProcessMemoryMapper(), and llvm::orc::PerfSupportPlugin::~PerfSupportPlugin().

◆ 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 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));
static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")
Tagged union holding either a T or a Error.
Definition Error.h:485

Definition at line 828 of file Error.h.

References E(), llvm_unreachable, and T.

◆ 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 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 797 of file Error.h.

References E(), llvm_unreachable, and T.

◆ 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 19 of file ValueLatticeUtils.cpp.

References F.

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 27 of file ValueLatticeUtils.cpp.

References all_of(), llvm::GlobalVariable::hasDefinitiveInitializer(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalVariable::isConstant(), 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 23 of file ValueLatticeUtils.cpp.

References F.

Referenced by runIPSCCP(), and runSCCP().

◆ canUseDebuginfod()

bool llvm::canUseDebuginfod ( )

Returns false if a debuginfod lookup can be determined to have no chance of succeeding.

Definition at line 67 of file Debuginfod.cpp.

References getDefaultDebuginfodUrls(), and llvm::HTTPClient::isAvailable().

◆ canVectorizeStructTy()

bool llvm::canVectorizeStructTy ( StructType * StructTy)

Returns true if StructTy is an unpacked literal struct where all elements are scalars that can be used as vector element types.

Definition at line 58 of file VectorTypeUtils.cpp.

References all_of(), llvm::StructType::elements(), isUnpackedStructLiteral(), and llvm::VectorType::isValidElementType().

Referenced by canVectorizeTy().

◆ canVectorizeTy()

bool llvm::canVectorizeTy ( Type * Ty)
inline

Returns true if Ty is a valid vector element type, void, or an unpacked literal struct where all elements are valid vector element types.

Note: Even if a type can be vectorized that does not mean it is valid to do so in all cases. For example, a vectorized struct (as returned by toVectorizedTy) does not perform (de)interleaving, so it can't be used for vectorizing loads/stores.

Definition at line 85 of file VectorTypeUtils.h.

References canVectorizeStructTy(), dyn_cast(), and llvm::VectorType::isValidElementType().

Referenced by canWidenCallReturnType(), maybeVectorizeType(), and scalarizeInstruction().

◆ canWidenCallReturnType()

bool llvm::canWidenCallReturnType ( Type * Ty)
static

Returns true if the call return type Ty can be widened by the loop vectorizer.

Definition at line 787 of file LoopVectorizationLegality.cpp.

References canVectorizeTy(), and dyn_cast().

◆ capacity_in_bytes() [1/4]

BitVector::size_type llvm::capacity_in_bytes ( const BitVector & X)
inline

Definition at line 828 of file BitVector.h.

References X.

Referenced by capacity_in_bytes().

◆ capacity_in_bytes() [2/4]

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

Definition at line 1299 of file DenseMap.h.

References X.

◆ capacity_in_bytes() [3/4]

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

Definition at line 1287 of file SmallVector.h.

References capacity_in_bytes(), and X.

◆ capacity_in_bytes() [4/4]

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

Definition at line 22 of file Capacity.h.

References T.

◆ capturesAddress()

bool llvm::capturesAddress ( CaptureComponents CC)
inline

Definition at line 327 of file ModRef.h.

References Address, and None.

Referenced by isParamGridConstant(), and operator<<().

◆ capturesAddressIsNullOnly()

bool llvm::capturesAddressIsNullOnly ( CaptureComponents CC)
inline

Definition at line 323 of file ModRef.h.

References Address, and AddressIsNull.

Referenced by operator<<().

◆ capturesAll()

bool llvm::capturesAll ( CaptureComponents CC)
inline

Definition at line 344 of file ModRef.h.

References All.

Referenced by addArgumentAttrs().

◆ capturesAnyProvenance()

bool llvm::capturesAnyProvenance ( CaptureComponents CC)
inline

Definition at line 340 of file ModRef.h.

References None, and Provenance.

Referenced by addArgumentAttrs(), llvm::AAResults::callCapturesBefore(), and determinePointerAccessAttrs().

◆ capturesAnything()

◆ capturesFullProvenance()

bool llvm::capturesFullProvenance ( CaptureComponents CC)
inline

Definition at line 336 of file ModRef.h.

References Provenance.

Referenced by llvm::SimpleCaptureAnalysis::getCapturesBefore(), isParamGridConstant(), and operator<<().

◆ capturesNothing()

◆ capturesReadProvenanceOnly()

bool llvm::capturesReadProvenanceOnly ( CaptureComponents CC)
inline

Definition at line 331 of file ModRef.h.

References Provenance, and ReadProvenance.

Referenced by llvm::BasicAAResult::getModRefInfo(), and operator<<().

◆ 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 72 of file DJB.cpp.

References llvm::CallingConv::C, chopOneUTF32(), djbHash(), llvm::StringRef::empty(), fastCaseFoldingDjbHash(), foldCharDwarf(), H, and toUTF8().

Referenced by llvm::DWARF5AccelTableData::hash().

◆ cast() [1/4]

template<typename To, typename From>
decltype(auto) llvm::cast ( const From & Val)
inlinenodiscard

cast<X> - Return the argument parameter cast to the specified type.

This casting operator asserts that the type is correct, so it does not return null on failure. It does not allow a null argument (use cast_if_present for that). It is typically used like this:

cast<Instruction>(myVal)->getParent()

Definition at line 565 of file Casting.h.

References assert(), llvm::CastInfo< To, From, Enable >::doCast(), and isa().

Referenced by llvm::AbstractCallSite::AbstractCallSite(), accessedBetween(), AccessQualFromMD(), llvm::GetElementPtrInst::accumulateConstantOffset(), llvm::sandboxir::GetElementPtrInst::accumulateConstantOffset(), llvm::orc::CtorDtorRunner::add(), llvm::orc::IRSymbolMapper::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), llvm::VPlanTransforms::addActiveLaneMask(), AddAlignmentAssumptions(), llvm::DwarfUnit::addAnnotation(), llvm::Instruction::addAnnotationMetadata(), llvm::Instruction::addAnnotationMetadata(), addAssumeNonNull(), llvm::sandboxir::SwitchInst::addCase(), addConditions(), addConstantsToTrack(), llvm::DwarfDebug::addDwarfTypeUnitType(), llvm::CSKYConstantPool::addEntry(), addExitUsersForFirstOrderRecurrences(), llvm::VPlanTransforms::addExplicitVectorLength(), addFullyUnrolledInstructionsToIgnore(), llvm::sandboxir::CatchSwitchInst::addHandler(), llvm::vfs::InMemoryFileSystem::addHardLink(), llvm::sandboxir::PHINode::addIncoming(), addInitialSkeleton(), addInstToMergeableList(), addIntrinsicToSummary(), llvm::MachineFunction::addLandingPad(), llvm::VPlanTransforms::addMiddleCheck(), llvm::VPlanTransforms::addMinimumIterationCheck(), AddNodeIDCustom(), llvm::GISelInstProfileBuilder::addNodeIDRegType(), llvm::RecurrenceDescriptor::AddReductionVar(), AddReturnAttributes(), addScalarResumePhis(), addStringMetadataToLoop(), llvm::DwarfUnit::addThrownTypes(), addToAccessGroupList(), addTryBlockMapEntry(), llvm::IVUsers::AddUsersIfInteresting(), llvm::DbgValueRangeTable::addVariable(), addVPLaneMaskPhiAndUpdateExitBranch(), adjustBitcastSrcVectorSSE1(), adjustByValArgAlignment(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), llvm::AAMDNodes::adjustForAccess(), adjustForLTGFR(), adjustICmpTruncate(), adjustSubwordCmp(), llvm::sandboxir::Utils::aliasAnalysisGetModRefInfo(), llvm::memtag::alignAndPadAlloca(), llvm::StatepointLoweringState::allocateStackSlot(), allowsPreservingNUW(), allSameBlock(), allSameOpcode(), AllUsesOfValueWillTrapIfNull(), llvm::ValueMapCallbackVH< KeyT, ValueT, Config >::allUsesReplacedWith(), allUsesTruncate(), llvm::AMDGPULibFunc::AMDGPULibFunc(), llvm::coro::Shape::analyze(), analyzeCostOfVecReduction(), analyzeGlobalAux(), analyzeICmp(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), llvm::Instruction::andIRFlags(), annotateFunctionWithHashMismatch(), appendIndirectedGlobal(), llvm::DebugLoc::appendInlinedAt(), appendToGlobalArray(), llvm::CombinerHelper::applyCombineConstPtrAddToI2P(), llvm::CombinerHelper::applyCombineShuffleToBuildVector(), llvm::CombinerHelper::applyExtendThroughPhis(), llvm::VPIRFlags::applyFlags(), llvm::AMDGPUCombinerHelper::applyFoldableFneg(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::MipsRegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::CombinerHelper::applyPtrAddZero(), llvm::CombinerHelper::applySDivByPow2(), llvm::CombinerHelper::applySextInRegOfLoad(), llvm::MCAsmParser::applySpecifier(), llvm::CombinerHelper::applyUDivByPow2(), llvm::CombinerHelper::applyUseVectorTruncate(), applyX86MaskOn1BitsVec(), areCommutative(), llvm::sandboxir::VecUtils::areConsecutive(), AreEquivalentAddressValues(), areExtractExts(), areExtractExts(), areExtractShuffleVectors(), areInnerLoopLatchPHIsSupported(), areInverseVectorBitmasks(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::RISCVDAGToDAGISel::areOffsetsWithinAlignment(), areTwoInsertFromSameBuildVector(), llvm::sandboxir::Function::arg_empty(), llvm::sandboxir::FuncletPadInst::arg_size(), llvm::sandboxir::Function::arg_size(), ArgTypeFromMD(), llvm::ValueLatticeElement::asConstantInteger(), aspaceWrapValue(), assertBranchOrSelectConditionHoisted(), llvm::NVPTXTargetLowering::atomicOperationOrderAfterFenceSplit(), llvm::VPlanTransforms::attachCheckBlock(), attributesPermitTailCall(), AVRDAGToDAGISel::select< ISD::FrameIndex >(), AVRDAGToDAGISel::select< ISD::LOAD >(), AVRDAGToDAGISel::select< ISD::STORE >(), llvm::TinyPtrVector< ReachingDef >::back(), llvm::sandboxir::Function::begin(), llvm::TinyPtrVector< ReachingDef >::begin(), llvm::CodeViewDebug::beginModule(), llvm::DwarfDebug::beginModule(), binaryOpKnownBitsMapHelper(), llvm::LegalizerHelper::bitcastExtractSubvector(), llvm::LegalizerHelper::bitcastInsertSubvector(), llvm::LegalizerHelper::bitcastShuffleVector(), llvm::sandboxir::PHINode::block_begin(), llvm::sandboxir::PHINode::block_end(), blockIsSimpleEnoughToThreadThrough(), llvm::VPBlockUtils::blocksOnly(), buildBitSets(), buildBoolRegister(), buildClonedLoopBlocks(), buildClonedLoops(), BuildConstantFromSCEV(), llvm::SPIRVGlobalRegistry::buildConstantInt(), llvm::MachineIRBuilder::buildConstDbgValue(), llvm::MachineIRBuilder::buildDbgLabel(), llvm::MachineIRBuilder::buildDirectDbgValue(), buildEnqueueKernel(), llvm::MachineIRBuilder::buildFIDbgValue(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::VPlanSlp::buildGraph(), llvm::MachineIRBuilder::buildIndirectDbgValue(), BuildMI(), BuildMI(), buildModuleSummaryIndex(), buildNDRange(), buildNew(), buildPartialInvariantUnswitchConditionalBranch(), llvm::CombinerHelper::buildSDivOrSRemUsingMul(), BuildSubAggregate(), llvm::CombinerHelper::buildUDivOrURemUsingMul(), calcArraySize(), calcPredicateUsingBooleans(), calculateByteProvider(), calculateByteProvider(), calculateClrEHStateNumbers(), calculateCXXStateForAsynchEH(), calculateCXXStateNumbers(), calculateGEPOffset(), calculateRegisterUsageForPlan(), calculateSEHStateForAsynchEH(), calculateSEHStateNumbers(), calculateShufflevectorMask(), calculateSrcByte(), calculateSubRanges(), llvm::IRPosition::callsite_argument(), llvm::MachineFunction::CallSiteInfo::CallSiteInfo(), llvm::objcarc::CanAlterRefCount(), canConvertValue(), canCreateUndefOrPoison(), canCreateUndefOrPoison(), llvm::SelectionDAG::canCreateUndefOrPoison(), canEvaluateSExtd(), canEvaluateShifted(), canEvaluateShuffled(), canEvaluateTruncated(), canEvaluateZExtd(), llvm::FastISel::canFoldAddIntoGEP(), llvm::LoopVectorizationLegality::canFoldTailByMasking(), canFoldTermCondOfLoop(), llvm::InstCombiner::canFreelyInvertAllUsersOf(), CanGenerateTest(), canIgnoreSignBitOfNaN(), canIgnoreSignBitOfZero(), llvm::ModuleSummaryIndex::canImportGlobalVar(), llvm::sandboxir::GlobalObject::canIncreaseAlignment(), CanInlineCallSite(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), cannotBeMaxInLoop(), cannotBeMinInLoop(), canonicalHeaderAndLatch(), canonicalizeAbs(), canonicalizeBitCastExtElt(), llvm::VPlanTransforms::canonicalizeEVLLoops(), canonicalizeGEPOfConstGEPI8(), canonicalizeInsertSplat(), canonicalizeSaturatedAdd(), canParallelizeReductionWhenUnrolling(), CanPropagatePredecessorsForPHIs(), canReplaceOperandWithVariable(), canReplaceReg(), llvm::ScalarEvolution::canReuseInstruction(), canSinkInstructions(), canSinkOrHoistInst(), canSplitIdx(), canSplitLoopBound(), canUseShiftPair(), llvm::sandboxir::LegalityAnalysis::canVectorize(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), cast_if_present(), cast_if_present(), cast_if_present(), llvm::CastInst::castIsValid(), llvm::Attributor::changeAfterManifest(), ChangeCalleesToFastCall(), changeCallSitesToColdCC(), llvm::sandboxir::ShuffleVectorInst::changesLength(), llvm::ShuffleVectorInst::changesLength(), cheapToScalarize(), checkAllocContextIds(), CheckAndCreateOffsetAdd(), checkAsyncContextProjectFunction(), checkBitsConcrete(), CheckCondCode(), checkConstLocationCompatible(), checkCVTFixedPointOperandWithFBits(), checkDebugInfoMetadata(), CheckForMaskedLoad(), CheckForPhysRegDependency(), checkIfSafeAddSequence(), checkIfSupported(), checkIfSupported(), checkIntrinsicImmArg(), checkNoWrapFlags(), checkOffsetSize(), checkOrAndOpImpliedByOther(), checkOverflow(), llvm::IRSimilarity::IRSimilarityCandidate::checkRelativeLocations(), checkSignTestSetCCCombine(), CheckValueType(), checkValueWidth(), checkValueWidth(), checkVectorTypesForPromotion(), llvm::GraphTraits< ValueInfo >::child_begin(), llvm::GraphTraits< ValueInfo >::child_edge_begin(), llvm::GraphTraits< ValueInfo >::child_edge_end(), llvm::GraphTraits< ValueInfo >::child_end(), classifyConstantWithOpaquePtr(), classifyGlobalCtorPointerType(), llvm::AddrSpaceCastInst::classof(), llvm::AllocaInst::classof(), llvm::AnyCoroEndInst::classof(), llvm::AnyCoroIdInst::classof(), llvm::AnyCoroIdRetconInst::classof(), llvm::AnyCoroSuspendInst::classof(), llvm::AnyMemCpyInst::classof(), llvm::AnyMemIntrinsic::classof(), llvm::AnyMemMoveInst::classof(), llvm::AnyMemSetInst::classof(), llvm::AnyMemTransferInst::classof(), llvm::AssumeInst::classof(), llvm::AtomicCmpXchgInst::classof(), llvm::AtomicRMWInst::classof(), llvm::BinaryConstantExpr::classof(), llvm::BinaryOperator::classof(), llvm::BinaryOpIntrinsic::classof(), llvm::BitCastInst::classof(), llvm::BranchInst::classof(), llvm::CallBase::classof(), llvm::CallBrInst::classof(), llvm::CallInst::classof(), llvm::CastConstantExpr::classof(), llvm::CastInst::classof(), llvm::CatchPadInst::classof(), llvm::CatchReturnInst::classof(), llvm::CatchSwitchInst::classof(), llvm::CleanupPadInst::classof(), llvm::CleanupReturnInst::classof(), llvm::CmpInst::classof(), llvm::CmpIntrinsic::classof(), llvm::ConcreteOperator< SuperClass, Opc >::classof(), llvm::ConstrainedFPCmpIntrinsic::classof(), llvm::ConstrainedFPIntrinsic::classof(), llvm::ConvergenceControlInst::classof(), llvm::CoroAlignInst::classof(), llvm::CoroAllocaAllocInst::classof(), llvm::CoroAllocaFreeInst::classof(), llvm::CoroAllocaGetInst::classof(), llvm::CoroAllocInst::classof(), llvm::CoroAsyncContextAllocInst::classof(), llvm::CoroAsyncContextDeallocInst::classof(), llvm::CoroAsyncEndInst::classof(), llvm::CoroAsyncResumeInst::classof(), llvm::CoroAsyncSizeReplace::classof(), llvm::CoroAwaitSuspendInst::classof(), llvm::CoroBeginInst::classof(), llvm::CoroEndInst::classof(), llvm::CoroEndResults::classof(), llvm::CoroFrameInst::classof(), llvm::CoroFreeInst::classof(), llvm::CoroIdAsyncInst::classof(), llvm::CoroIdInst::classof(), llvm::CoroIdRetconInst::classof(), llvm::CoroIdRetconOnceInst::classof(), llvm::CoroPromiseInst::classof(), llvm::CoroSaveInst::classof(), llvm::CoroSizeInst::classof(), llvm::CoroSubFnInst::classof(), llvm::CoroSuspendAsyncInst::classof(), llvm::CoroSuspendInst::classof(), llvm::CoroSuspendRetconInst::classof(), llvm::DbgAssignIntrinsic::classof(), llvm::DbgDeclareInst::classof(), llvm::DbgInfoIntrinsic::classof(), llvm::DbgLabelInst::classof(), llvm::DbgValueInst::classof(), llvm::DbgVariableIntrinsic::classof(), llvm::dxil::AnyResourceExtType::classof(), llvm::dxil::CBufferExtType::classof(), llvm::dxil::FeedbackTextureExtType::classof(), llvm::dxil::LayoutExtType::classof(), llvm::dxil::MSTextureExtType::classof(), llvm::dxil::RawBufferExtType::classof(), llvm::dxil::SamplerExtType::classof(), llvm::dxil::TextureExtType::classof(), llvm::dxil::TypedBufferExtType::classof(), llvm::ExtractElementConstantExpr::classof(), llvm::ExtractElementInst::classof(), llvm::ExtractValueInst::classof(), llvm::FCmpInst::classof(), llvm::FenceInst::classof(), llvm::FPExtInst::classof(), llvm::FPToSIInst::classof(), llvm::FPToUIInst::classof(), llvm::FPTruncInst::classof(), llvm::FreezeInst::classof(), llvm::FuncletPadInst::classof(), llvm::GCProjectionInst::classof(), llvm::GCRelocateInst::classof(), llvm::GCResultInst::classof(), llvm::GCStatepointInst::classof(), llvm::GetElementPtrConstantExpr::classof(), llvm::GetElementPtrInst::classof(), llvm::ICmpInst::classof(), llvm::IndirectBrInst::classof(), llvm::InsertElementConstantExpr::classof(), llvm::InsertElementInst::classof(), llvm::InsertValueInst::classof(), llvm::InstrProfCallsite::classof(), llvm::InstrProfCoverInst::classof(), llvm::InstrProfIncrementInst::classof(), llvm::InstrProfIncrementInstStep::classof(), llvm::InstrProfMCDCBitmapInstBase::classof(), llvm::InstrProfMCDCBitmapParameters::classof(), llvm::InstrProfMCDCTVBitmapUpdate::classof(), llvm::InstrProfTimestampInst::classof(), llvm::InstrProfValueProfileInst::classof(), llvm::IntrinsicInst::classof(), llvm::IntToPtrInst::classof(), llvm::InvokeInst::classof(), llvm::LandingPadInst::classof(), llvm::LifetimeIntrinsic::classof(), llvm::LoadInst::classof(), llvm::MemCpyInst::classof(), llvm::MemIntrinsic::classof(), llvm::MemMoveInst::classof(), llvm::MemSetInst::classof(), llvm::MemSetPatternInst::classof(), llvm::MemTransferInst::classof(), llvm::MinMaxIntrinsic::classof(), llvm::NoAliasScopeDeclInst::classof(), llvm::OverflowingBinaryOperator::classof(), llvm::PHINode::classof(), llvm::PossiblyDisjointInst::classof(), llvm::PossiblyExactOperator::classof(), llvm::PossiblyNonNegInst::classof(), llvm::PseudoProbeInst::classof(), llvm::PtrToAddrInst::classof(), llvm::PtrToIntInst::classof(), llvm::ResumeInst::classof(), llvm::ReturnInst::classof(), llvm::sandboxir::OverflowingBinaryOperator::classof(), llvm::sandboxir::OverflowingBinaryOperator::classof(), llvm::sandboxir::PossiblyDisjointInst::classof(), llvm::sandboxir::UnaryInstruction::classof(), llvm::SaturatingInst::classof(), llvm::SelectInst::classof(), llvm::SExtInst::classof(), llvm::ShuffleVectorConstantExpr::classof(), llvm::ShuffleVectorInst::classof(), llvm::SIToFPInst::classof(), llvm::StoreInst::classof(), llvm::SwitchInst::classof(), llvm::TruncInst::classof(), llvm::UIToFPInst::classof(), llvm::UnaryInstruction::classof(), llvm::UnaryOperator::classof(), llvm::UnreachableInst::classof(), llvm::VAArgInst::classof(), llvm::VACopyInst::classof(), llvm::VAEndInst::classof(), llvm::VAStartInst::classof(), llvm::VPBinOpIntrinsic::classof(), llvm::VPCastIntrinsic::classof(), llvm::VPCmpIntrinsic::classof(), llvm::VPInstructionWithType::classof(), llvm::VPIntrinsic::classof(), llvm::VPReductionIntrinsic::classof(), llvm::WithOverflowInst::classof(), llvm::ZExtInst::classof(), llvm::coro::Shape::cleanCoroutine(), llvm::TinyPtrVector< ReachingDef >::clear(), clearAssumptionsOfUsers(), llvm::CoroIdInst::clearPromise(), llvm::DbgRecord::clone(), llvm::DIType::clone(), llvm::VPFirstOrderRecurrencePHIRecipe::clone(), llvm::VPWidenCanonicalIVRecipe::clone(), llvm::VPWidenCastRecipe::clone(), llvm::VPWidenGEPRecipe::clone(), llvm::VPWidenIntrinsicRecipe::clone(), llvm::VPWidenLoadRecipe::clone(), llvm::VPWidenPHIRecipe::clone(), llvm::VPWidenPointerInductionRecipe::clone(), llvm::VPWidenSelectRecipe::clone(), llvm::VPWidenStoreRecipe::clone(), CloneAndPruneIntoFromInst(), cloneAndReplaceParentScope(), cloneConstantExprWithNewAddressSpace(), cloneForLane(), CloneFunctionBodyInto(), llvm::orc::cloneFunctionDecl(), cloneInstructionInExitBlock(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), cloneLoop(), CloneLoopBlocks(), cloneLoopBlocks(), cloneLoopNest(), cloneLoopWithPreheader(), CloneModule(), llvm::DILocalScope::cloneScopeForSubprogram(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpOperations(), llvm::FunctionComparator::cmpTypes(), CollectAddOperandsWithScales(), collectAllocaUses(), collectBitParts(), collectCastInstrs(), llvm::CodeMetrics::collectEphemeralValues(), llvm::CodeMetrics::collectEphemeralValues(), llvm::DDGNode::collectInstructions(), collectMemAccessInfo(), collectMetadataInfo(), llvm::GetElementPtrInst::collectOffset(), collectReleaseInsertPts(), collectShuffleElements(), collectSingleShuffleElements(), llvm::coro::collectSpillsAndAllocasFromInsts(), llvm::coro::collectSpillsFromArgs(), CollectSubexprs(), llvm::SITargetLowering::CollectTargetIntrinsicOperands(), collectUnswitchCandidates(), collectUnswitchCandidatesWithInjections(), collectUsedGlobals(), collectUsersRecursively(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), colorEHFunclets(), combine_CC(), combine_CC(), combineADDRSPACECAST(), combineADDToADDZE(), combineAndLoadToBZHI(), combineBallotPattern(), combineBinOpOfExtractToReduceTree(), combineBitcast(), combineBitcastToBoolVector(), combineBitcastvxi1(), combineBROADCAST_LOAD(), combineBVOfConsecutiveLoads(), combineBVZEXTLOAD(), combineConcatVectorOps(), combineConstantPoolLoads(), combineCVTP2I_CVTTP2I(), combineCVTPH2PS(), combineEXTEND_VECTOR_INREG(), combineEXTRACT_SUBVECTOR(), combineExtractWithShuffle(), combineExtSetcc(), llvm::AMDGPUTargetLowering::combineFMinMaxLegacyImpl(), combineGatherScatter(), combineINSERT_SUBVECTOR(), combineIRFlags(), combineLoad(), combineMaskedLoad(), combineMaskedLoadConstantMask(), combineMaskedStore(), combineMOVDQ2Q(), combinePackingMovIntoStore(), combinePredicateReduction(), combineSelect(), llvm::VETargetLowering::combineSelectCC(), combineSelectOfTwoConstants(), combineSelectToBinOp(), combineSetCC(), combineSetCCAtomicArith(), combineSextInRegCmov(), combineShuffleToFMAddSub(), combineSignExtendInReg(), combineSIntToFP(), combineSTORE(), combineStore(), combineSubOfBoolean(), combineTargetShuffle(), combineTruncOfSraSext(), combineTruncSelectToSMaxUSat(), combineVectorSizedSetCCEquality(), combineVEXTRACT_STORE(), CombineVLDDUP(), combineVSelectWithAllOnesOrZeros(), combineX86CloadCstore(), combineX86GatherScatter(), combineX86INT_TO_FP(), llvm::sandboxir::Instruction::comesBefore(), llvm::InstCombinerImpl::commonIDivRemTransforms(), llvm::InstCombinerImpl::commonIDivTransforms(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::sandboxir::ShuffleVectorInst::commute(), llvm::ShuffleVectorInst::commute(), compareCmp(), CompareSCEVComplexity(), CompareValueComplexity(), llvm::BTFTypeEnum64::completeType(), llvm::BTFTypeEnum::completeType(), llvm::BTFTypeStruct::completeType(), llvm::CommonPointerBase::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), llvm::BaseIndexOffset::computeAliasing(), computeCommonAlignment(), llvm::ScalarEvolution::computeConstantDifference(), computeConstantRange(), llvm::VPExpressionRecipe::computeCost(), llvm::VPInstruction::computeCost(), llvm::VPInterleaveBase::computeCost(), llvm::VPReductionRecipe::computeCost(), llvm::VPReplicateRecipe::computeCost(), llvm::VPWidenCastRecipe::computeCost(), llvm::VPWidenLoadEVLRecipe::computeCost(), llvm::VPWidenMemoryRecipe::computeCost(), llvm::VPWidenSelectRecipe::computeCost(), llvm::VPWidenStoreEVLRecipe::computeCost(), ComputeCrossModuleImport(), llvm::MCAssembler::computeFragmentSize(), computeFunctionSummary(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsForLoadV(), llvm::SITargetLowering::computeKnownBitsForTargetInstr(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::PPCTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromCond(), computeKnownBitsFromContext(), computeKnownBitsFromICmpCond(), computeKnownBitsFromOperator(), computeKnownFPClass(), computeKnownFPClassFromContext(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::GISelValueTracking::computeNumSignBits(), ComputeNumSignBitsImpl(), computeNumSignBitsVectorConstant(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), computeUnlikelySuccessors(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), computeVirtualCallSiteTypeInfoMap(), concatenateTwoVectors(), ConnectEpilog(), ConnectProlog(), llvm::VPBasicBlock::connectToPredecessors(), llvm::RandomIRBuilder::connectToSink(), ConstantBuildVector(), constantFoldAndGroupOps(), ConstantFoldBinaryInstruction(), ConstantFoldCastInstruction(), ConstantFoldCastOperand(), ConstantFoldCompareInstruction(), ConstantFoldExtractElementInstruction(), ConstantFoldGetElementPtr(), ConstantFoldInsertElementInstruction(), ConstantFoldInsertValueInstruction(), ConstantFoldInstruction(), ConstantFoldLoadFromConstPtr(), ConstantFoldSelectInstruction(), ConstantFoldShuffleVectorInstruction(), constantFoldUser(), llvm::ConstantPtrAuthKeyType::ConstantPtrAuthKeyType(), llvm::RegisterBankInfo::constrainGenericRegister(), llvm::MachineRegisterInfo::constrainRegAttrs(), llvm::DwarfCompileUnit::constructAbstractSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), containsAddRecDependentOnLoop(), llvm::Type::containsNonGlobalTargetExtType(), llvm::Type::containsNonLocalTargetExtType(), llvm::Type::containsNonLocalTargetExtType(), containsUndefinedElement(), convertAnnotation2Metadata(), convertFixedMaskToScalableVector(), convertFSqrtDivIntoFMul(), convertImplicitDefToConstZero(), llvm::TypedInit::convertInitializerTo(), convertIntLogicToFPLogic(), ConvertSelectToConcatVector(), ConvertShiftToMul(), convertTo16Bit(), llvm::VPlanTransforms::convertToConcreteRecipes(), convertToDeclaration(), llvm::BasicBlock::convertToNewDbgValues(), convertToParamAS(), convertToRelLookupTable(), convertUsersOfConstantsToInstructions(), convertValue(), llvm::sandboxir::Instruction::copyFastMathFlags(), llvm::GlobalObject::copyMetadata(), copyNonnullMetadata(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::VPRegionBlock::cost(), costAndCollectOperands(), countToEliminateCompares(), llvm::CallBase::Create(), llvm::ConstantPtrAuthKeyType::create(), llvm::coro::BaseCloner::create(), llvm::coro::SwitchCloner::create(), llvm::object::Slice::create(), llvm::sandboxir::BranchInst::create(), llvm::sandboxir::CallInst::create(), llvm::sandboxir::CastInst::create(), llvm::sandboxir::CatchReturnInst::create(), llvm::sandboxir::CatchSwitchInst::create(), llvm::sandboxir::CleanupReturnInst::create(), llvm::sandboxir::CmpInst::create(), llvm::sandboxir::ExtractElementInst::create(), llvm::sandboxir::ExtractValueInst::create(), llvm::sandboxir::FreezeInst::create(), llvm::sandboxir::GetElementPtrInst::create(), llvm::sandboxir::InsertElementInst::create(), llvm::sandboxir::InsertValueInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::UnaryOperator::create(), llvm::vfs::RedirectingFileSystem::create(), llvm::DwarfCompileUnit::createAbstractEntity(), CreateAdd(), llvm::MatrixBuilder::CreateAdd(), llvm::ScalarEvolution::createAddRecFromPHIWithCasts(), llvm::IRBuilderBase::CreateAlignmentAssumption(), llvm::sandboxir::Context::createAllocaInst(), llvm::ConvergenceControlInst::CreateAnchor(), llvm::DIBuilder::createArrayType(), llvm::sandboxir::Context::createAtomicCmpXchgInst(), llvm::sandboxir::Context::createAtomicRMWInst(), llvm::sandboxir::Context::createBasicBlock(), llvm::sandboxir::Context::createBinaryOperator(), createBitOrPointerCast(), llvm::sandboxir::Context::createBranchInst(), llvm::sandboxir::Context::createCallBrInst(), llvm::sandboxir::Context::createCallInst(), llvm::IRSimilarity::IRSimilarityCandidate::createCanonicalRelationFrom(), llvm::sandboxir::Context::createCastInst(), llvm::sandboxir::Context::createCatchPadInst(), llvm::sandboxir::Context::createCatchReturnInst(), llvm::sandboxir::Context::createCatchSwitchInst(), llvm::sandboxir::Context::createCleanupPadInst(), llvm::sandboxir::Context::createCleanupReturnInst(), createCMovFP(), llvm::AArch64TargetLowering::createComplexDeinterleavingIR(), llvm::ARMTargetLowering::createComplexDeinterleavingIR(), createCondBranch(), createCoroSave(), llvm::DbgLabelRecord::createDebugIntrinsic(), llvm::DbgRecord::createDebugIntrinsic(), llvm::DbgVariableRecord::createDebugIntrinsic(), llvm::BinaryOperator::CreateDisjoint(), llvm::BinaryOperator::CreateDisjoint(), llvm::MCAsmBackend::createDwoObjectWriter(), llvm::dxil::ResourceTypeInfo::createElementStruct(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemCpy(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemSet(), llvm::ConvergenceControlInst::CreateEntry(), llvm::sandboxir::Context::createExtractElementInst(), createExtractsForLiveOuts(), llvm::sandboxir::Context::createExtractValueInst(), createFakeIntVal(), llvm::sandboxir::Context::createFCmpInst(), llvm::sandboxir::Context::createFenceInst(), createFoldedExitCond(), createFPCmp(), llvm::sandboxir::Context::createFreezeInst(), llvm::sandboxir::Context::createFunction(), CreateGCRelocates(), llvm::sandboxir::Context::createGetElementPtrInst(), llvm::sandboxir::Context::createICmpInst(), llvm::MatrixBuilder::CreateIndexAssumption(), llvm::sandboxir::Context::createInsertElementInst(), llvm::sandboxir::Context::createInsertValueInst(), llvm::VPlanTransforms::createInterleaveGroups(), createInvariantCond(), llvm::sandboxir::Context::createInvokeInst(), llvm::EpilogueVectorizerMainLoop::createIterationCountCheck(), llvm::DIBuilder::createLabel(), llvm::sandboxir::Context::createLandingPadInst(), llvm::sandboxir::LegalityAnalysis::createLegalityResult(), llvm::DbgVariableRecord::createLinkedDVRAssign(), llvm::jitlink::createLinkGraphFromELFObject_aarch32(), llvm::jitlink::createLinkGraphFromELFObject_aarch64(), llvm::jitlink::createLinkGraphFromELFObject_loongarch(), llvm::jitlink::createLinkGraphFromELFObject_ppc64(), llvm::jitlink::createLinkGraphFromELFObject_riscv(), llvm::jitlink::createLinkGraphFromELFObject_x86(), llvm::jitlink::createLinkGraphFromELFObject_x86_64(), llvm::jitlink::createLinkGraphFromXCOFFObject_ppc64(), llvm::sandboxir::Context::createLoadInst(), createLocalVariable(), createLogicFromTable(), llvm::ConvergenceControlInst::CreateLoop(), llvm::BasicBlock::createMarker(), createMaskedBitTest(), llvm::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::IRBuilderBase::CreateMaskedScatter(), llvm::IRBuilderBase::CreateMaskedStore(), createMaskInstrs(), llvm::MatrixBuilder::CreateMatrixMultiply(), llvm::MatrixBuilder::CreateMatrixTranspose(), createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), llvm::IRBuilderBase::CreateMemSet(), llvm::IRBuilderBase::CreateMemSetInline(), llvm::IRBuilderBase::CreateMemTransferInst(), llvm::DIBuilder::createMethod(), CreateMul(), llvm::MDBuilder::createMutableTBAAAccessTag(), llvm::MCAsmBackend::createObjectWriter(), createOrderedReduction(), createOverflowTuple(), llvm::sandboxir::Context::createPHINode(), llvm::CastInst::CreatePointerCast(), llvm::sandboxir::Region::createRegionsFromMD(), createReplacement(), llvm::sandboxir::Context::createResumeInst(), llvm::sandboxir::Context::createReturnInst(), createReverseEVL(), createSanitizerCtorAndInitFunctions(), llvm::MatrixBuilder::CreateScalarDiv(), createScalarIVSteps(), llvm::sandboxir::Context::createSelectInst(), createShiftShuffle(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::sandboxir::Context::createShuffleVectorInst(), createSimpleReduction(), createSimpleReduction(), llvm::IRBuilderBase::CreateStepVector(), llvm::sandboxir::Context::createStoreInst(), llvm::MatrixBuilder::CreateSub(), llvm::sandboxir::Context::createSwitchInst(), createTblForTrunc(), createTblShuffleForSExt(), createTblShuffleForZExt(), llvm::IRBuilderBase::CreateThreadLocalAddress(), createTileStore(), llvm::DwarfUnit::createTypeDIE(), llvm::DwarfUnit::createTypeDIE(), llvm::sandboxir::Context::createUnaryOperator(), llvm::sandboxir::Context::createUnreachableInst(), llvm::sandboxir::Context::createVAArgInst(), llvm::IRBuilderBase::CreateVectorInterleave(), llvm::EpilogueVectorizerMainLoop::createVectorizedLoopSkeleton(), llvm::IRBuilderBase::CreateVectorReverse(), llvm::IRBuilderBase::CreateVectorSplice(), llvm::VPlanTransforms::cse(), llvm::sandboxir::CallBase::data_operands_end(), llvm::sandboxir::CallBase::data_operands_end(), declareSanitizerInitFunction(), DecodeFixedType(), llvm::RISCVTargetLowering::decomposeMulByConstant(), defaultComponentBroadcast(), llvm::sandboxir::SwitchInst::defaultDestUnreachable(), llvm::bfi_detail::BFICallbackVH< BasicBlock, BFIImplT >::deleted(), llvm::DbgRecord::deleteRecord(), DemotePHIToStack(), DemoteRegToStack(), llvm::AADepGraphNode::DepGetValAA(), llvm::coro::BaseCloner::deriveNewFramePointer(), llvm::Constant::destroyConstant(), detectEvenOddMultiplyOperand(), llvm::NewArchiveMember::detectKindFromObject(), detectPopcountIdiom(), detectShiftUntilLessThanIdiom(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), determinePointerAccessAttrs(), DetermineUseCaptureKind(), llvm::vfs::RedirectingFileSystem::dir_begin(), llvm::VPRegionBlock::dissolveToCFGLoop(), llvm::CastInfoVPPhiAccessors< SrcTy >::doCast(), doesInTreeUserNeedToExtract(), DoFlattenLoopPair(), DoLowering(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::MemorySSA::dominates(), llvm::InstCombinerImpl::dominatesAllUses(), doPromotion(), llvm::coro::doRematerializations(), llvm::Instruction::dropDbgRecords(), llvm::Instruction::dropPoisonGeneratingMetadata(), dropTypeTests(), llvm::Instruction::dropUBImplyingAttrsAndUnknownMetadata(), llvm::DbgValueHistoryMap::dump(), llvm::MCFragment::dump(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::BasicBlock::dumpDbgValues(), llvm::sandboxir::Function::dumpNameAndArgs(), llvm::sandboxir::Function::dumpOS(), llvm::ModuleSummaryIndex::dumpSCCs(), llvm::VPlan::duplicate(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), duplicateCPV(), llvm::object::elf_relocation_iterator::elf_relocation_iterator(), llvm::object::elf_symbol_iterator::elf_symbol_iterator(), eliminateDeadSwitchCases(), eliminateSwiftErrorAlloca(), eliminateSwiftErrorArgument(), llvm::MachineOptimizationRemarkEmitter::emit(), llvm::OptimizationRemarkEmitter::emit(), emitAMDGPUPrintfCall(), llvm::SelectionDAGBuilder::EmitBranchForMergedCondition(), llvm::TargetLoweringObjectFile::emitCGProfileMetadata(), llvm::MCObjectStreamer::emitConditionalAssignment(), emitConjunctionRec(), llvm::InstrEmitter::EmitDbgLabel(), llvm::InstrEmitter::EmitDbgValue(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::WebAssemblyAsmPrinter::EmitFunctionAttributes(), llvm::WebAssemblyAsmPrinter::emitFunctionBodyStart(), emitGEPOffset(), emitGlobalConstantVector(), llvm::SystemZHLASMAsmStreamer::emitHLASMValueImpl(), llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelAttrs(), llvm::NVPTXTargetLowering::emitLeadingFence(), llvm::TargetLoweringObjectFileCOFF::emitLinkerDirectives(), llvm::TargetLoweringObjectFileELF::emitLinkerDirectives(), llvm::TargetLoweringObjectFileMachO::emitLinkerDirectives(), llvm::ARMAsmPrinter::emitMachineConstantPoolValue(), llvm::CSKYAsmPrinter::emitMachineConstantPoolValue(), llvm::XtensaAsmPrinter::emitMachineConstantPoolValue(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::AsmPrinter::emitPCSections(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitPrintf(), llvm::WebAssemblyAsmPrinter::EmitProducerInfo(), llvm::TargetLoweringObjectFile::emitPseudoProbeDescMetadata(), emitSetAndGetSwiftErrorValueAround(), llvm::AsmPrinter::emitSpecialLLVMGlobal(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForSetTag(), llvm::WebAssemblyAsmPrinter::EmitTargetFeatures(), emitTargetTaskProxyFunction(), llvm::NVPTXTargetLowering::emitTrailingFence(), emitTransformedIndex(), EmitUnrolledSetTag(), llvm::NVPTXTargetStreamer::emitValue(), emitX86Select(), llvm::TinyPtrVector< ReachingDef >::empty(), llvm::sandboxir::end(), llvm::sandboxir::Function::end(), llvm::TinyPtrVector< ReachingDef >::end(), llvm::AIXException::endFunction(), llvm::DwarfDebug::endFunctionImpl(), llvm::DwarfDebug::endModule(), ensureValueAvailableInSuccessor(), llvm::GVNExpression::AggregateValueExpression::equals(), llvm::GVNExpression::BasicExpression::equals(), llvm::GVNExpression::ConstantExpression::equals(), llvm::GVNExpression::MemoryExpression::equals(), llvm::GVNExpression::PHIExpression::equals(), llvm::GVNExpression::UnknownExpression::equals(), llvm::GVNExpression::VariableExpression::equals(), llvm::sandboxir::ConstantInt::equalsInt(), llvm::MDOperand::equalsStr(), equivalentAddressValues(), llvm::TinyPtrVector< ReachingDef >::erase(), llvm::TinyPtrVector< ReachingDef >::erase(), llvm::sandboxir::EraseFromParent::EraseFromParent(), llvm::objcarc::EraseInstruction(), evaluate(), llvm::MCExpr::evaluateAsRelocatableImpl(), EvaluateConstantChrecAtConstant(), EvaluateCRExpr(), llvm::RISCVAsmBackend::evaluateFixup(), llvm::Evaluator::EvaluateFunction(), evaluateICmpRelation(), evaluateInDifferentElementOrder(), llvm::InstCombinerImpl::EvaluateInDifferentType(), llvm::GVNExpression::CallExpression::exactlyEquals(), llvm::GVNExpression::LoadExpression::exactlyEquals(), llvm::GVNExpression::StoreExpression::exactlyEquals(), llvm::VPHistogramRecipe::execute(), llvm::VPlan::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPWidenGEPRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), llvm::VPWidenRecipe::execute(), executeFCMP_ORD(), executeFCMP_UNO(), llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary(), llvm::LoopVectorizationPlanner::executePlan(), expand16BitIsFinite(), expand16BitIsInf(), expand16BitIsNaN(), expand16BitIsNormal(), expandAbs(), expandBounds(), llvm::SCEVExpander::expandCodeForPredicate(), expandCrossIntrinsic(), expandDivisionUpTo32Bits(), expandDivisionUpTo64Bits(), expandExpIntrinsic(), llvm::TargetLowering::expandFP_TO_INT_SAT(), expandFPToI(), expandFRem(), expandIToFP(), expandLoadStackGuard(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), expandLogIntrinsic(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), llvm::HexagonInstrInfo::expandPostRAPseudo(), expandRemainderUpTo32Bits(), expandRemainderUpTo64Bits(), llvm::VPlanTransforms::expandSCEVs(), expandToSwitch(), llvm::TargetLowering::expandUnalignedLoad(), llvm::TargetLowering::expandUnalignedStore(), expandUser(), llvm::SelectionDAG::expandVAArg(), llvm::SelectionDAG::expandVACopy(), llvm::TargetLowering::expandVECTOR_COMPRESS(), llvm::TargetLowering::expandVectorSplice(), llvm::PPCTargetLowering::expandVSXLoadForLE(), llvm::PPCTargetLowering::expandVSXStoreForLE(), llvm::SCEVExpander::expandWrapPredicate(), explicifyGuards(), exportKernelRuntimeHandles(), extendsConvergenceOutsideLoop(), ExtendUsesToFormExtLoad(), llvm::mdconst::extract(), llvm::mdconst::extract_or_null(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), llvm::CodeExtractor::extractCodeRegion(), extractConstantMask(), llvm::ExtractElementConstantExpr::ExtractElementConstantExpr(), extractInteger(), extractNumericCGTypeId(), extractSubModule(), ExtractTypeInfo(), llvm::fuzzerop::extractValueDescriptor(), extractVector(), feedsIntoVectorReduction(), llvm::LegalizerHelper::fewerElementsVector(), llvm::LegalizerHelper::fewerElementsVectorReductions(), fillIndirectionTable(), filterDbgVars(), FilterHelper(), llvm::DIBuilder::finalize(), llvm::RuntimeDyldMachOARM::finalizeSection(), llvm::RuntimeDyldMachOI386::finalizeSection(), finalizeTS1AM(), llvm::ThreadSafeTrieRawHashMapBase::find(), FindAllMemoryUses(), llvm::CodeExtractor::findAllocas(), findArgumentCopyElisionCandidates(), llvm::MCExpr::findAssociatedFragment(), findBaseDefiningValue(), findBasePointer(), findBasePointers(), findBestNonTrivialUnswitchCandidate(), findBuildAggregateRec(), findCallsAtConstantOffset(), llvm::sandboxir::SwitchInst::findCaseDest(), findConsecutiveLoad(), llvm::OutlinableRegion::findCorrespondingBlockIn(), findDbgIntrinsics(), findDefsUsedOutsideOfLoop(), findDemandedEltsByAllUsers(), findDemandedEltsBySingleUser(), findEltLoadSrc(), findForkedSCEVs(), findFuncPointers(), findGlobalCtors(), findHeaderMask(), findHistogram(), findInstructionWithOpcode(), findLoopComponents(), FindLoopCounter(), findMayClobberedPtrAccess(), findMoreOptimalIndexType(), findOrCreatePHIBlock(), findOrCreatePHIInBlock(), findPHIToPartitionLoops(), FindPreallocatedCall(), findPreviousSpillSlot(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), findScalarElement(), FindSingleUseIdentifiedObject(), findSplitCandidate(), findStoresToUninstrumentedArgAllocas(), FindUsedValues(), findUsedValues(), first_use_of_in_block(), fixIrreducible(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), fixReductionScalarResumeWhenVectorizingEpilog(), fixScalarResumeValuesFromBypass(), fixupDebugInfoPostExtraction(), flattenGlobalArrays(), FlattenLoopPair(), fnegFoldsIntoMI(), llvm::UnOpInit::Fold(), llvm::AMDGPULibCalls::fold(), foldAndOrOfSETCC(), foldAnyOrAllBitsSet(), foldBitCastSelect(), foldBitOrderCrossLogicOp(), foldBranchToCommonDest(), foldCastShuffle(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldComplexAndOrPatterns(), foldCondBranchOnValueKnownInPredecessorImpl(), llvm::SelectionDAG::FoldConstantArithmetic(), llvm::SelectionDAG::FoldConstantBuildVector(), foldConstantInsEltIntoShuffle(), foldConstantsIntoIntrinsics(), foldCSELOfCSEL(), foldDependentIVs(), foldExit(), foldExtendedSignBitTest(), llvm::InstCombinerImpl::foldFMulReassoc(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), llvm::InstCombinerImpl::foldGEPICmp(), foldGEPOfPhi(), foldGuardedFunnelShift(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpAndConstConst(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpBitCast(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(), llvm::InstCombinerImpl::foldICmpIntrinsicWithConstant(), foldICmpOfUAddOv(), llvm::InstCombinerImpl::foldICmpOrConstant(), llvm::InstCombinerImpl::foldICmpShlConstant(), llvm::InstCombinerImpl::foldICmpTruncWithTruncOrExt(), llvm::InstCombinerImpl::foldICmpWithCastOp(), llvm::InstCombinerImpl::foldICmpWithConstant(), foldICmpWithDominatingICmp(), llvm::InstCombinerImpl::foldICmpWithZero(), llvm::InstCombinerImpl::foldICmpWithZextOrSext(), foldIdempotentBinaryIntrinsicRecurrence(), foldIdentityExtractShuffle(), foldIdentityPaddedShuffles(), foldIdentityShuffles(), foldIDivShl(), foldInsEltIntoIdentityShuffle(), foldInsEltIntoSplat(), foldInsSequenceIntoSplat(), foldIntegerPackFromVector(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), foldIntrinsicUsingDistributiveLaws(), foldIsPowerOf2(), foldIsPowerOf2OrZero(), llvm::InstCombinerImpl::foldItoFPtoI(), foldMaskedShiftToScaledMask(), foldMinimumOverTrailingOrLeadingZeroCount(), foldMulShl1(), llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), foldPHINodeOrSelectInst(), FoldReturnIntoUncondBranch(), foldSelectICmpAndBinOp(), foldSelectICmpLshrAshr(), foldSelectICmpMinMax(), llvm::InstCombinerImpl::foldSelectIntoOp(), foldSelectOfConstantsUsingSra(), foldSelectOfCTTZOrCTLZ(), llvm::InstCombinerImpl::foldSelectOpOp(), llvm::InstCombinerImpl::foldSelectShuffle(), foldSelectShuffleWith1Binop(), foldSelectZeroOrFixedOp(), llvm::InstCombinerImpl::FoldShiftByConstant(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), llvm::InstSimplifyFolder::FoldShuffleVector(), foldShuffleWithInsert(), llvm::InstCombinerImpl::foldSignBitTest(), foldSqrtWithFcmpZero(), FoldSTEP_VECTOR(), foldToMaskedStore(), foldTruncShuffle(), foldTwoEntryPHINode(), foldURemOfLoopIncrement(), foldVecExtTruncToExtElt(), llvm::InstCombinerImpl::foldVectorBinop(), foldVectorCmp(), foldVecTruncToExtElt(), llvm::X86TTIImpl::forceScalarizeMaskedGather(), ForeachHelper(), llvm::InformationCache::foreachUse(), formatTypeName(), formLCSSAForInstructionsImpl(), freelyInvert(), llvm::InstCombinerImpl::freelyInvertAllUsersOf(), llvm::InstCombinerImpl::freezeOtherUses(), llvm::JITSymbolFlags::fromGlobalValue(), llvm::TinyPtrVector< ReachingDef >::front(), llvm::IRPosition::function_scope(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(), generateAssignInstrs(), generateInstLaneVectorFromOperand(), generateKeySubkey(), generateNewInstTree(), generateUnsignedDivisionCode(), genLoopLimit(), gep_type_begin(), gep_type_begin(), llvm::ConstantInt::get(), llvm::DbgRecordParamRef< T >::get(), llvm::hlsl::CBufferMetadata::get(), llvm::ListInit::get(), llvm::PointerUnion< TrivialCallback *, NonTrivialCallbacks * >::get(), llvm::sandboxir::BlockAddress::get(), llvm::sandboxir::BlockAddress::get(), llvm::sandboxir::ConstantAggregateZero::get(), llvm::sandboxir::ConstantArray::get(), llvm::sandboxir::ConstantFP::get(), llvm::sandboxir::ConstantInt::get(), llvm::sandboxir::ConstantInt::get(), llvm::sandboxir::ConstantInt::get(), llvm::sandboxir::ConstantInt::get(), llvm::sandboxir::ConstantPointerNull::get(), llvm::sandboxir::ConstantPtrAuth::get(), llvm::sandboxir::ConstantStruct::get(), llvm::sandboxir::ConstantTokenNone::get(), llvm::sandboxir::ConstantVector::get(), llvm::sandboxir::DSOLocalEquivalent::get(), llvm::sandboxir::NoCFIValue::get(), llvm::sandboxir::PointerType::get(), llvm::sandboxir::PoisonValue::get(), llvm::sandboxir::UndefValue::get(), llvm::VPTransformState::get(), llvm::VPTransformState::get(), llvm::PPC::get_VSPLTI_elt(), getAArch64Cmp(), llvm::sandboxir::Instruction::getAccessType(), llvm::GCStatepointInst::getActualReturnType(), llvm::ScalarEvolution::getAddExpr(), llvm::ConstantPtrAuth::getAddrDiscriminator(), llvm::sandboxir::ConstantPtrAuth::getAddrDiscriminator(), llvm::DbgAssignIntrinsic::getAddress(), llvm::DbgVariableRecord::getAddress(), llvm::DbgAssignIntrinsic::getAddressExpression(), getAddressForMemoryInput(), llvm::AVR::getAddressSpace(), llvm::sandboxir::AllocaInst::getAddressSpace(), llvm::sandboxir::GetElementPtrInst::getAddressSpace(), llvm::sandboxir::GlobalValue::getAddressSpace(), llvm::PointerUnion< TrivialCallback *, NonTrivialCallbacks * >::getAddrOfPtr1(), getAggregateSize(), llvm::sandboxir::GlobalAlias::getAliasee(), llvm::sandboxir::GlobalAlias::getAliaseeObject(), llvm::sandboxir::AllocaInst::getAlign(), llvm::sandboxir::AtomicCmpXchgInst::getAlign(), llvm::sandboxir::AtomicRMWInst::getAlign(), llvm::sandboxir::Function::getAlign(), llvm::sandboxir::GlobalVariable::getAlign(), llvm::sandboxir::LoadInst::getAlign(), llvm::sandboxir::StoreInst::getAlign(), llvm::CoroAllocaAllocInst::getAlignment(), llvm::CoroPromiseInst::getAlignment(), llvm::sandboxir::ConstantInt::getAlignValue(), llvm::ReplaceableMetadataImpl::getAllArgListUsers(), llvm::ReplaceableMetadataImpl::getAllDbgVariableRecordUsers(), llvm::CoroAllocaFreeInst::getAlloc(), llvm::CoroAllocaGetInst::getAlloc(), getAllocaName(), llvm::sandboxir::AllocaInst::getAllocatedType(), getAllocationFamily(), llvm::sandboxir::AllocaInst::getAllocationSize(), llvm::sandboxir::AllocaInst::getAllocationSizeInBits(), llvm::AnyCoroIdRetconInst::getAllocFunction(), llvm::Constant::getAllOnesValue(), getAlternateBinop(), getAltInstrMask(), llvm::IRPosition::getAnchorScope(), getAnyNonZeroConstInt(), getAppleRuntimeUnrollPreferences(), llvm::objcarc::GetARCInstKind(), llvm::sandboxir::Function::getArg(), GetArgMD(), llvm::sandboxir::FuncletPadInst::getArgOperand(), llvm::sandboxir::CallBase::getArgOperandNo(), llvm::objcarc::GetArgRCIdentityRoot(), getArgSPIRVType(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::SystemZTTIImpl::getArithmeticInstrCost(), llvm::WebAssemblyTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getArithmeticReductionCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), getArrayElements(), llvm::Type::getArrayNumElements(), llvm::sandboxir::AllocaInst::getArraySize(), llvm::SDNode::getAsAPIntVal(), llvm::dwarf_linker::parallel::CompileUnit::OutputUnitVariantPtr::getAsCompileUnit(), llvm::sandboxir::ConstantDataSequential::getAsCString(), llvm::ConstantExpr::getAsInstruction(), getAsMetadata(), getAsMetadata(), llvm::DbgAssignIntrinsic::getAssignID(), llvm::DbgVariableRecord::getAssignID(), getAssignmentTrackingModuleFlag(), llvm::IRPosition::getAssociatedArgument(), llvm::IRPosition::getAssociatedValue(), llvm::sandboxir::ConstantDataSequential::getAsString(), llvm::Attributor::getAssumedConstant(), llvm::dwarf_linker::parallel::CompileUnit::OutputUnitVariantPtr::getAsTypeUnit(), llvm::CoroSuspendAsyncInst::getAsyncContextProjectionFunction(), llvm::coro::Shape::getAsyncCoroId(), llvm::CoroAsyncContextAllocInst::getAsyncFunctionPointer(), llvm::CoroIdAsyncInst::getAsyncFunctionPointer(), llvm::SDNode::getAsZExtVal(), llvm::objcarc::getAttachedARCFunction(), llvm::sandboxir::GlobalVariable::getAttribute(), llvm::sandboxir::GlobalVariable::getAttribute(), getAttributeBasedInliningDecision(), llvm::PseudoProbeInst::getAttributes(), llvm::sandboxir::GlobalVariable::getAttributes(), llvm::sandboxir::GlobalVariable::getAttributesAsList(), getAVX2GatherNode(), llvm::GCRelocateInst::getBasePtr(), llvm::GCRelocateInst::getBasePtrIndex(), getBaseWithConstantOffset(), llvm::BlockAddress::getBasicBlock(), llvm::sandboxir::BlockAddress::getBasicBlock(), llvm::sandboxir::PHINode::getBasicBlockIndex(), llvm::InstrProfMCDCTVBitmapUpdate::getBitmapIndex(), llvm::sandboxir::ConstantInt::getBitWidth(), llvm::CSKYConstantPoolConstant::getBlockAddress(), llvm::ValueDFS_Compare::getBlockEdge(), llvm::sandboxir::ConstantInt::getBool(), llvm::SystemZTTIImpl::getBoolVecToIntConversionCost(), llvm::sandboxir::MemDGNodeIntervalBuilder::getBotMemDGNode(), getBranchHint(), getBranchWeight(), getBrevLdObject(), getBundleFromUse(), llvm::AbstractCallSite::getCallbackUses(), llvm::sandboxir::CallBase::getCalledFunction(), llvm::sandboxir::CallBase::getCalledOperand(), llvm::sandboxir::CallBase::getCalledOperandUse(), llvm::VPWidenCallRecipe::getCalledScalarFunction(), llvm::sandboxir::CallBase::getCaller(), llvm::sandboxir::CallBase::getCallingConv(), getCallsiteCost(), llvm::Loop::getCanonicalInductionVariable(), llvm::VPlan::getCanonicalIV(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCastInstrCost(), llvm::RISCVTTIImpl::getCastInstrCost(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::WebAssemblyTTIImpl::getCastInstrCost(), getCastsForInductionPHI(), llvm::TypedInit::getCastTo(), llvm::CatchReturnInst::getCatchPad(), llvm::sandboxir::CatchReturnInst::getCatchPad(), llvm::CatchPadInst::getCatchSwitch(), llvm::sandboxir::CatchReturnInst::getCatchSwitchParentPad(), llvm::dxil::ResourceTypeInfo::getCBufferSize(), getCHRConditionValuesForRegion(), llvm::LandingPadInst::getClause(), llvm::sandboxir::LandingPadInst::getClause(), llvm::CleanupReturnInst::getCleanupPad(), llvm::sandboxir::CleanupReturnInst::getCleanupPad(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::SystemZTTIImpl::getCmpSelInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::sandboxir::GlobalVariable::getCodeModel(), llvm::sandboxir::GlobalVariable::getCodeModelRaw(), llvm::AsmPrinter::getCodeViewJumpTableInfo(), llvm::gvn::AvailableValue::getCoercedLoadValue(), ShapeCalculator::getColFromRow(), llvm::GlobalValue::getComdat(), llvm::sandboxir::AtomicCmpXchgInst::getCompareOperand(), llvm::sandboxir::BranchInst::getCondition(), llvm::sandboxir::SwitchInst::getCondition(), llvm::ScalarEvolution::getConstant(), llvm::ValueAsMetadata::getConstant(), llvm::SelectionDAG::getConstantDbgValue(), getConstantInt(), llvm::VNCoercion::getConstantMemInstValueForLoad(), llvm::SDNode::getConstantOperandAPInt(), llvm::SDNode::getConstantOperandVal(), llvm::SCCPInstVisitor::getConstantOrNull(), llvm::LazyValueInfo::getConstantRangeAtUse(), llvm::TargetTransformInfoImplBase::getConstantStrideStep(), llvm::ExecutionEngine::getConstantValue(), llvm::InductionDescriptor::getConstIntStepValue(), llvm::PredicateBase::getConstraint(), getConstraintFromMemoryAccess(), llvm::ContextAndReplaceableUses::getContext(), getContextInstForUse(), getCoopAtomicOperandsInfo(), llvm::CoroIdInst::getCoroutine(), GetCostForDef(), llvm::AArch64TTIImpl::getCostOfKeepingLiveOverCall(), llvm::DISubrange::getCount(), llvm::object::ELFObjectFileBase::getCrelDecodeProblem(), llvm::CoroBeginInst::getCustomABI(), llvm::sandboxir::Instruction::getDataLayout(), llvm::pdb::DataMemberLayoutItem::getDataMember(), llvm::sandboxir::CallBase::getDataOperandNo(), llvm::SelectionDAG::getDbgLabel(), llvm::Instruction::getDbgReinsertionPosition(), llvm::SelectionDAG::getDbgValue(), llvm::SelectionDAG::getDbgValueList(), llvm::AnyCoroIdRetconInst::getDeallocFunction(), llvm::MachineInstr::getDebugExpression(), llvm::GlobalVariable::getDebugInfo(), llvm::MachineInstr::getDebugLabel(), llvm::MachineInstr::getDebugVariable(), llvm::CallBrInst::getDefaultDest(), llvm::sandboxir::CallBrInst::getDefaultDest(), llvm::sandboxir::SwitchInst::getDefaultDest(), llvm::SwitchInst::getDefaultDest(), llvm::ValueDFS_Compare::getDefOrUser(), getDeinterleavedVectorType(), llvm::DemandedBits::getDemandedBits(), llvm::GCRelocateInst::getDerivedPtr(), llvm::GCRelocateInst::getDerivedPtrIndex(), getDesignatedContinueBlock(), getDesignatedMergeBlock(), llvm::MemIntrinsicBase< Derived >::getDestAddressSpace(), llvm::sandboxir::CastInst::getDestTy(), llvm::ConstantPtrAuth::getDiscriminator(), llvm::sandboxir::ConstantPtrAuth::getDiscriminator(), llvm::PPCMCCodeEmitter::getDispRI34PCRelEncoding(), llvm::FixedVectorType::getDoubleElementsVectorType(), llvm::sandboxir::FixedVectorType::getDoubleElementsVectorType(), llvm::sandboxir::ScalableVectorType::getDoubleElementsVectorType(), llvm::sandboxir::VectorType::getDoubleElementsVectorType(), llvm::ScalableVectorType::getDoubleElementsVectorType(), llvm::at::getDVRAssignmentMarkers(), getEHPadFromPredecessor(), llvm::sandboxir::ConstantDataSequential::getElementAsAPFloat(), llvm::sandboxir::ConstantDataSequential::getElementAsAPInt(), llvm::sandboxir::ConstantDataSequential::getElementAsConstant(), llvm::sandboxir::ConstantDataSequential::getElementAsDouble(), llvm::sandboxir::ConstantDataSequential::getElementAsFloat(), llvm::sandboxir::ConstantDataSequential::getElementAsInteger(), llvm::sandboxir::ConstantDataSequential::getElementByteSize(), llvm::sandboxir::ConstantAggregateZero::getElementCount(), llvm::sandboxir::VectorType::getElementCount(), llvm::AnyMemIntrinsic::getElementSizeInBytes(), llvm::ConstantDataSequential::getElementType(), llvm::ListInit::getElementType(), llvm::sandboxir::ConstantDataSequential::getElementType(), llvm::sandboxir::VectorType::getElementType(), llvm::sandboxir::VecUtils::getElementType(), llvm::ConstantAggregateZero::getElementValue(), llvm::PoisonValue::getElementValue(), llvm::sandboxir::ConstantAggregateZero::getElementValue(), llvm::sandboxir::ConstantAggregateZero::getElementValue(), llvm::sandboxir::PoisonValue::getElementValue(), llvm::sandboxir::PoisonValue::getElementValue(), llvm::sandboxir::UndefValue::getElementValue(), llvm::sandboxir::UndefValue::getElementValue(), llvm::UndefValue::getElementValue(), getELFSectionNameForGlobal(), getEnqueuedBlockSymbolName(), llvm::DwarfStringPoolEntryRef::getEntry(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::EVT::getEVT(), llvm::ConstrainedFPIntrinsic::getExceptionBehavior(), llvm::ARMConstantPoolConstant::getExistingMachineCPValue(), llvm::ARMConstantPoolValue::getExistingMachineCPValueImpl(), llvm::CSKYConstantPoolValue::getExistingMachineCPValueImpl(), llvm::XtensaConstantPoolValue::getExistingMachineCPValueImpl(), llvm::VPBlockBase::getExitingBasicBlock(), llvm::VPBlockBase::getExitingBasicBlock(), llvm::HexagonMCInstrInfo::getExpr(), getExprBase(), llvm::DbgVariableIntrinsic::getExpression(), llvm::DIGlobalVariableExpression::getExpression(), getExpressionForConstant(), llvm::MipsMCCodeEmitter::getExprOpValue(), llvm::FixedVectorType::getExtendedElementVectorType(), llvm::sandboxir::FixedVectorType::getExtendedElementVectorType(), llvm::sandboxir::ScalableVectorType::getExtendedElementVectorType(), llvm::sandboxir::VectorType::getExtendedElementVectorType(), llvm::ScalableVectorType::getExtendedElementVectorType(), llvm::VectorType::getExtendedElementVectorType(), llvm::Type::getExtendedType(), GetExtendHigh(), getExtendTypeForNode(), getExtOpcodeForPromotedOp(), llvm::ConstantExpr::getExtractElement(), getExtractIndex(), llvm::PseudoProbeInst::getFactor(), llvm::sandboxir::AtomicCmpXchgInst::getFailureOrdering(), llvm::sandboxir::ConstantInt::getFalse(), llvm::Instruction::getFastMathFlags(), llvm::sandboxir::FPMathOperator::getFastMathFlags(), llvm::sandboxir::Instruction::getFastMathFlags(), getFauxShuffleMask(), llvm::dxil::ResourceTypeInfo::getFeedbackType(), llvm::vputils::getFirstLoopHeader(), llvm::GCStatepointInst::getFlags(), llvm::Type::getFltSemantics(), llvm::MemoryLocation::getForArgument(), llvm::MemoryLocation::getForDest(), llvm::MemoryLocation::getForSource(), llvm::FPMathOperator::getFPAccuracy(), llvm::sandboxir::FPMathOperator::getFPAccuracy(), getFPPredicateFromMD(), llvm::LifetimeSDNode::getFrameIndex(), llvm::SelectionDAG::getFrameIndexDbgValue(), llvm::SelectionDAG::getFrameIndexDbgValue(), llvm::InstCombiner::getFreelyInvertedImpl(), getFromRangeMetadata(), llvm::AMDGPULibFuncBase::Param::getFromTy(), getFSqrtDivOptPattern(), llvm::PseudoProbeInst::getFuncGuid(), llvm::sandboxir::BlockAddress::getFunction(), llvm::TargetLoweringObjectFileXCOFF::getFunctionEntryPointSymbol(), llvm::Type::getFunctionNumParams(), llvm::Type::getFunctionParamType(), llvm::Function::getFunctionType(), llvm::sandboxir::CallBase::getFunctionType(), llvm::sandboxir::Function::getFunctionType(), getFunctionTypeFromAsyncSuspend(), getGatherNode(), llvm::AArch64TTIImpl::getGatherScatterOpCost(), llvm::ARMTTIImpl::getGatherScatterOpCost(), llvm::RISCVTTIImpl::getGatherScatterOpCost(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::SelectionDAG::getGatherVP(), getGEPCosts(), llvm::ScalarEvolution::getGEPExpr(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getGetElementPtr(), llvm::DSOLocalEquivalent::getGlobalValue(), llvm::NoCFIValue::getGlobalValue(), llvm::sandboxir::DSOLocalEquivalent::getGlobalValue(), llvm::sandboxir::NoCFIValue::getGlobalValue(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), llvm::AssignGUIDPass::getGUID(), llvm::CSKYConstantPoolConstant::getGV(), llvm::FixedVectorType::getHalfElementsVectorType(), llvm::sandboxir::FixedVectorType::getHalfElementsVectorType(), llvm::sandboxir::ScalableVectorType::getHalfElementsVectorType(), llvm::sandboxir::VectorType::getHalfElementsVectorType(), llvm::ScalableVectorType::getHalfElementsVectorType(), llvm::InstrProfInstBase::getHash(), llvm::DenseMapInfo< const SwitchSuccWrapper * >::getHashValue(), llvm::MDNodeKeyImpl< DIGenericSubrange >::getHashValue(), llvm::MDNodeKeyImpl< DISubrange >::getHashValue(), llvm::MDNodeKeyImpl< DISubrangeType >::getHashValue(), llvm::ARMBankConflictHazardRecognizer::getHazardType(), llvm::GCStatepointInst::getID(), llvm::MemoryAccess::getID(), llvm::CoroBeginInst::getId(), getIDFromInst(), llvm::ConstantDataSequential::getImpl(), llvm::sandboxir::PHINode::getIncomingBlock(), llvm::sandboxir::PHINode::getIncomingBlock(), llvm::sandboxir::PHINode::getIncomingValue(), llvm::sandboxir::PHINode::getIncomingValueForBlock(), llvm::InstrProfCntrInstBase::getIndex(), llvm::InstrProfValueProfileInst::getIndex(), llvm::PseudoProbeInst::getIndex(), llvm::SelectionDAG::getIndexedLoad(), llvm::SelectionDAG::getIndexedLoadVP(), llvm::SelectionDAG::getIndexedMaskedLoad(), llvm::SelectionDAG::getIndexedMaskedStore(), llvm::DataLayout::getIndexedOffsetInType(), llvm::SelectionDAG::getIndexedStore(), llvm::SelectionDAG::getIndexedStoreVP(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), llvm::RISCVTTIImpl::getIndexedVectorInstrCostFromEnd(), llvm::coro::Shape::getIndexType(), llvm::DataLayout::getIndexTypeSizeInBits(), llvm::sandboxir::ExtractValueInst::getIndices(), llvm::sandboxir::InsertValueInst::getIndices(), llvm::sandboxir::CallBrInst::getIndirectDest(), llvm::sandboxir::CallBrInst::getIndirectDestLabelUse(), getInductionIntegerTy(), GetInductionVariable(), llvm::sandboxir::ConstantFP::getInfinity(), llvm::CoroIdInst::getInfo(), llvm::sandboxir::GlobalVariable::getInitializer(), llvm::DebugLoc::getInlinedAtScope(), llvm::ConstantExpr::getInsertElement(), llvm::Instruction::getInsertionPointAfterDef(), llvm::coro::Shape::getInsertPtAfterFramePtr(), llvm::InterestingMemoryOperand::getInsn(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappingsIntrinsic(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappingsIntrinsicWSideEffects(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::FixedVectorType::getInteger(), llvm::sandboxir::FixedVectorType::getInteger(), llvm::sandboxir::ScalableVectorType::getInteger(), llvm::sandboxir::VectorType::getInteger(), llvm::ScalableVectorType::getInteger(), llvm::Type::getIntegerBitWidth(), llvm::ConstantInt::getIntegerType(), llvm::sandboxir::ConstantInt::getIntegerType(), llvm::AMDGPU::getInterestingMemoryOperands(), llvm::AArch64TTIImpl::getInterleavedMemoryOpCost(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getInterleavedMemoryOpCost(), llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::WebAssemblyTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCost(), llvm::ARMTTIImpl::getIntImmCostInst(), llvm::RISCVTTIImpl::getIntImmCostInst(), getIntPredicateFromMD(), llvm::IntrinsicInst::getIntrinsicID(), llvm::sandboxir::CallBase::getIntrinsicID(), llvm::sandboxir::IntrinsicInst::getIntrinsicID(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::RISCVTTIImpl::getIntrinsicInstrCost(), getIntToFPVal(), llvm::ConstantExpr::getIntToPtr(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getInvertibleOperands(), llvm::VPIRPhi::getIRPhi(), getISDForVPIntrinsic(), llvm::sandboxir::GlobalWithNodeAPI< GlobalT, LLVMGlobalT, ParentT, LLVMParentT >::getIterator(), llvm::sandboxir::Instruction::getIterator(), llvm::SCEVExpander::getIVIncOperand(), llvm::RuntimeDyldCOFFThumb::getJITSymbolFlags(), KernelInfo::getKernelEnvironementFromKernelInitCB(), KernelInfo::getKernelEnvironementGVFromKernelInitCB(), llvm::ConstantPtrAuth::getKey(), llvm::sandboxir::ConstantPtrAuth::getKey(), llvm::TargetLoweringObjectFile::getKindForGlobal(), getKnowledgeFromUse(), getKnowledgeFromUseInAssume(), llvm::DbgLabel::getLabel(), llvm::DbgLabelInst::getLabel(), llvm::InvokeInst::getLandingPadInst(), llvm::sandboxir::InvokeInst::getLandingPadInst(), llvm::AMDGPULibFunc::getLeads(), llvm::AMDGPULibFunc::getLeads(), llvm::sandboxir::ConstantInt::getLimitedValue(), GetLinearExpression(), getLinkedToSymbol(), llvm::SelectionDAG::getLoadFFVP(), getLoadStoreAddressSpace(), getLoadStoreAlignment(), getLoadStoreType(), llvm::ValueAsMetadata::getLocal(), getLocalFunctionMetadata(), getLoopConvergenceHeart(), llvm::DISubrange::getLowerBound(), llvm::sandboxir::VecUtils::getLowest(), llvm::SelectionDAG::getMachineNode(), getMangledTypeStr(), getMask(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedHistogram(), llvm::SelectionDAG::getMaskedLoad(), llvm::AArch64TTIImpl::getMaskedMemoryOpCost(), llvm::ARMTTIImpl::getMaskedMemoryOpCost(), llvm::SelectionDAG::getMaskedScatter(), llvm::SelectionDAG::getMaskedStore(), llvm::sandboxir::ShuffleVectorInst::getMaskValue(), llvm::sandboxir::ConstantInt::getMaybeAlignValue(), llvm::InstrProfMCDCTVBitmapUpdate::getMCDCCondBitmapAddr(), getMDOperandAsType(), getMemberOffset(), llvm::ARMTTIImpl::getMemcpyCost(), llvm::VNCoercion::getMemInstValueForLoad(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::gvn::AvailableValue::getMemIntrinValue(), getMemOperands(), llvm::MemorySSA::getMemoryAccess(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::ARMTTIImpl::getMemoryOpCost(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::PPCTTIImpl::getMemoryOpCost(), llvm::SystemZTTIImpl::getMemoryOpCost(), getMemVTFromNode(), llvm::sandboxir::AtomicCmpXchgInst::getMergedOrdering(), llvm::memprof::getMIBStackNode(), llvm::VPlan::getMiddleBlock(), llvm::ScalarEvolution::getMinMaxExpr(), llvm::ARMTTIImpl::getMinMaxReductionCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMinMaxReductionCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::sandboxir::ScalableVectorType::getMinNumElements(), llvm::ScalarEvolution::getMulExpr(), llvm::dxil::ResourceTypeInfo::getMultiSampleCount(), llvm::CoroAsyncEndInst::getMustTailCallFunction(), llvm::CoroSuspendAsyncInst::getMustTailCallFunction(), getMVEIndexedAddressParts(), llvm::InstrProfInstBase::getName(), llvm::Record::getName(), llvm::RecordVal::getName(), llvm::VarInit::getName(), llvm::sandboxir::ConstantFP::getNaN(), llvm::TargetLowering::getNegatedExpression(), getNegativeIsTrueBoolVec(), llvm::ScalarEvolution::getNegativeSCEV(), llvm::sandboxir::ConstantFP::getNegativeZero(), getNegOperand(), getNewAlignmentDiff(), getNewDefiningAccessForClone(), llvm::sandboxir::AtomicCmpXchgInst::getNewValOperand(), getNextNode(), llvm::LoopVersioning::getNoAliasMetadataFor(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), getNonCompileUnitScope(), llvm::detail::UniqueFunctionBase< R, P... >::getNonTrivialCallbacks(), getNoopInput(), llvm::InvokeInst::getNormalDest(), llvm::sandboxir::InvokeInst::getNormalDest(), getNormalLoadInput(), llvm::ScalarEvolution::getNotSCEV(), llvm::GetElementPtrInst::getNoWrapFlags(), llvm::sandboxir::GetElementPtrInst::getNoWrapFlags(), llvm::sandboxir::OverflowingBinaryOperator::getNoWrapKind(), llvm::Constant::getNullValue(), llvm::InstrProfMCDCBitmapInstBase::getNumBitmapBits(), llvm::GCStatepointInst::getNumCallArgs(), llvm::sandboxir::SwitchInst::getNumCases(), llvm::sandboxir::LandingPadInst::getNumClauses(), llvm::InstrProfCntrInstBase::getNumCounters(), llvm::ConstantDataSequential::getNumElements(), llvm::sandboxir::ConstantDataSequential::getNumElements(), llvm::sandboxir::FixedVectorType::getNumElements(), llvm::sandboxir::UndefValue::getNumElements(), llvm::sandboxir::VecUtils::getNumElements(), llvm::UndefValue::getNumElements(), llvm::sandboxir::CatchSwitchInst::getNumHandlers(), llvm::sandboxir::PHINode::getNumIncomingValues(), llvm::sandboxir::ExtractValueInst::getNumIndices(), llvm::sandboxir::GetElementPtrInst::getNumIndices(), llvm::sandboxir::InsertValueInst::getNumIndices(), llvm::sandboxir::CallBrInst::getNumIndirectDests(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::sandboxir::User::getNumOperands(), llvm::GCStatepointInst::getNumPatchBytes(), llvm::CallBase::getNumSubclassExtraOperandsDynamic(), llvm::sandboxir::CallBrInst::getNumSuccessors(), llvm::sandboxir::CatchReturnInst::getNumSuccessors(), llvm::sandboxir::CleanupReturnInst::getNumSuccessors(), llvm::sandboxir::InvokeInst::getNumSuccessors(), llvm::sandboxir::ResumeInst::getNumSuccessors(), llvm::sandboxir::SwitchInst::getNumSuccessors(), llvm::sandboxir::CallBase::getNumTotalBundleOperands(), llvm::DbgVariableRecord::getNumVariableLocationOps(), llvm::RawLocationWrapper::getNumVariableLocationOps(), getNumVectorRegs(), GetObjCImageInfo(), llvm::object::ELFRelocationRef::getObject(), llvm::object::ELFSectionRef::getObject(), llvm::object::ELFSymbolRef::getObject(), llvm::object::GOFFSymbolRef::getObject(), llvm::object::SymbolRef::getObject(), getOCLKernelArgAttribute(), getOpcode(), llvm::Operator::getOpcode(), llvm::sandboxir::getOperand(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::VPExpressionRecipe::getOperandOfResultType(), getOperands(), getOperands(), llvm::sandboxir::User::getOperandUseDefault(), llvm::sandboxir::AtomicRMWInst::getOperation(), llvm::SDNode::getOperationName(), llvm::MemoryUseOrDef::getOptimized(), llvm::sandboxir::Context::getOrCreateArgument(), llvm::SPIRVGlobalRegistry::getOrCreateConsIntVector(), llvm::sandboxir::Context::getOrCreateConstant(), llvm::SPIRVGlobalRegistry::getOrCreateConstInt(), llvm::SPIRVGlobalRegistry::getOrCreateConstIntArray(), llvm::SPIRVGlobalRegistry::getOrCreateConstVector(), llvm::SPIRVGlobalRegistry::getOrCreateConstVector(), llvm::DwarfCompileUnit::getOrCreateContextDIE(), llvm::DIBuilder::getOrCreateGenericSubrange(), llvm::SPIRVGlobalRegistry::getOrCreateLayoutType(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeCoopMatr(), llvm::DIBuilder::getOrCreateTypeArray(), llvm::DwarfUnit::getOrCreateTypeDIE(), llvm::sandboxir::Context::getOrCreateValueInternal(), getOrderedReduction(), llvm::BasicTTIImplBase< BasicTTIImpl >::getOrderedReductionCost(), llvm::sandboxir::AtomicRMWInst::getOrdering(), llvm::sandboxir::FenceInst::getOrdering(), llvm::Intrinsic::getOrInsertDeclaration(), getOrInsertLibFunc(), llvm::MemoryLocation::getOrNone(), getOutlineAtomicLibcall(), getOverloadKind(), llvm::sandboxir::Function::getParent(), llvm::sandboxir::GlobalWithNodeAPI< GlobalT, LLVMGlobalT, ParentT, LLVMParentT >::getParent(), llvm::sandboxir::Instruction::getParent(), getParentPad(), getParentPad(), llvm::sandboxir::CatchSwitchInst::getParentPad(), llvm::sandboxir::FuncletPadInst::getParentPad(), getPGOFuncNameVarInitializer(), llvm::VPWidenInductionRecipe::getPHINode(), llvm::HexagonTargetLowering::getPICJumpTableRelocBase(), llvm::ConstantPtrAuth::getPointer(), llvm::sandboxir::ConstantPtrAuth::getPointer(), getPointerAddressSpace(), llvm::PtrToAddrOperator::getPointerAddressSpace(), llvm::PtrToIntOperator::getPointerAddressSpace(), llvm::sandboxir::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::sandboxir::AtomicRMWInst::getPointerAddressSpace(), llvm::sandboxir::GetElementPtrInst::getPointerAddressSpace(), llvm::Type::getPointerAddressSpace(), getPointerAtOffset(), llvm::sandboxir::AtomicRMWInst::getPointerOperand(), llvm::sandboxir::GetElementPtrInst::getPointerOperand(), llvm::sandboxir::StoreInst::getPointerOperand(), llvm::sandboxir::VAArgInst::getPointerOperand(), getPointerOperands(), llvm::sandboxir::GetElementPtrInst::getPointerOperandType(), getPointersDiff(), llvm::DataLayout::getPointerTypeSizeInBits(), llvm::SCEVAddRecExpr::getPostIncExpr(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), getPotentialCopiesOfMemoryValue(), llvm::IRSimilarity::IRInstructionData::getPredicate(), llvm::LazyValueInfo::getPredicateAt(), getPredicatedMask(), getPredicatedThenBlock(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), getProductID(), llvm::CoroIdInst::getPromise(), llvm::AnyCoroIdRetconInst::getPrototype(), llvm::ConstantExpr::getPtrToAddr(), llvm::ConstantExpr::getPtrToInt(), llvm::sandboxir::ConstantFP::getQNaN(), getRangeForSelectPattern(), llvm::DbgAssignIntrinsic::getRawAddress(), llvm::DbgAssignIntrinsic::getRawAddressExpression(), llvm::DbgAssignIntrinsic::getRawAssignID(), llvm::sandboxir::ConstantDataSequential::getRawDataValues(), llvm::DbgVariableIntrinsic::getRawExpression(), llvm::CoroSubFnInst::getRawIndex(), llvm::CoroIdInst::getRawInfo(), llvm::DbgLabelInst::getRawLabel(), llvm::DbgVariableIntrinsic::getRawLocation(), llvm::DbgVariableIntrinsic::getRawVariable(), llvm::objcarc::GetRCIdentityRoot(), llvm::Init::getRecordKeeper(), getReductionInstr(), llvm::RecurrenceDescriptor::getReductionOpChain(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), llvm::MachineRegisterInfo::getRegBank(), llvm::MachineRegisterInfo::getRegClass(), llvm::FastISel::getRegForValue(), llvm::RISCVTTIImpl::getRegUsageForType(), getRelevantOperands(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::ContextAndReplaceableUses::getReplaceableUses(), llvm::sandboxir::GlobalIFunc::getResolver(), llvm::sandboxir::GlobalIFunc::getResolverFunction(), llvm::GEPOperator::getResultElementType(), llvm::sandboxir::GetElementPtrInst::getResultElementType(), llvm::AnyCoroEndInst::getResults(), llvm::CoroSuspendAsyncInst::getResumeFunction(), getRetainedNodeScope(), llvm::coro::Shape::getRetconCoroId(), llvm::sandboxir::ReturnInst::getReturnValue(), llvm::sandboxir::GlobalWithNodeAPI< GlobalT, LLVMGlobalT, ParentT, LLVMParentT >::getReverseIterator(), llvm::slpvectorizer::BoUpSLP::getRootNodeTypeWithNoCast(), llvm::ConstrainedFPIntrinsic::getRoundingMode(), ShapeCalculator::getRowFromCol(), llvm::AMDGPU::RegBankLegalizeRules::getRulesForOpc(), llvm::InstCombiner::getSafeVectorConstantForBinop(), getSameOpcode(), llvm::dxil::ResourceTypeInfo::getSamplerType(), llvm::sandboxir::CollectDescr::ExtractElementDescr::getScalar(), llvm::BasicTTIImplBase< BasicTTIImpl >::getScalarizationOverhead(), llvm::RISCVTTIImpl::getScalarizationOverhead(), llvm::SystemZTTIImpl::getScalarizationOverhead(), llvm::VPCostContext::getScalarizationOverhead(), llvm::X86TTIImpl::getScalarizationOverhead(), llvm::VPlan::getScalarPreheader(), getScatterNode(), llvm::SelectionDAG::getScatterVP(), llvm::DILexicalBlockBase::getScope(), llvm::DILocalVariable::getScope(), llvm::NoAliasScopeDeclInst::getScopeList(), llvm::GlobalValue::getSection(), llvm::sandboxir::GlobalObject::getSection(), getSectionID(), llvm::GlobalObject::getSectionPrefix(), llvm::gvn::AvailableValue::getSelectValue(), llvm::ConstantAggregateZero::getSequentialElement(), llvm::PoisonValue::getSequentialElement(), llvm::sandboxir::ConstantAggregateZero::getSequentialElement(), llvm::sandboxir::PoisonValue::getSequentialElement(), llvm::sandboxir::UndefValue::getSequentialElement(), llvm::UndefValue::getSequentialElement(), llvm::ScalarEvolution::getSequentialMinMaxExpr(), llvm::sandboxir::ConstantInt::getSExtValue(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), ShapeCalculator::getShape(), getShiftedValue(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::GCNTTIImpl::getShuffleCost(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), getShuffleDemandedElts(), llvm::ConstantExpr::getShuffleMask(), llvm::sandboxir::ShuffleVectorInst::getShuffleMask(), llvm::sandboxir::ShuffleVectorInst::getShuffleMask(), llvm::sandboxir::ShuffleVectorInst::getShuffleMask(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::ConstantExpr::getShuffleMaskForBitcode(), llvm::sandboxir::ShuffleVectorInst::getShuffleMaskForBitcode(), getShuffleReduction(), llvm::ConstantExpr::getShuffleVector(), getShufflevectorNumGroups(), llvm::sandboxir::ConstantInt::getSigned(), llvm::ScalarEvolution::getSignExtendExprImpl(), getSmallConstantTripCount(), llvm::sandboxir::ConstantFP::getSNaN(), getSortedConstantKeys(), llvm::MemTransferBase< BaseCL >::getSourceAddressSpace(), llvm::GEPOperator::getSourceElementType(), llvm::sandboxir::GetElementPtrInst::getSourceElementType(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::coro::getSpillInsertionPt(), getSpillSlotSize(), llvm::ConstantVector::getSplat(), llvm::sandboxir::ConstantDataVector::getSplat(), llvm::sandboxir::ConstantVector::getSplat(), llvm::PPC::getSplatIdxForPPCMnemonics(), llvm::SelectionDAG::getSplatSourceVector(), llvm::Constant::getSplatValue(), llvm::sandboxir::ConstantDataVector::getSplatValue(), llvm::sandboxir::ConstantVector::getSplatValue(), getSplatValueAllowUndef(), llvm::sandboxir::CastInst::getSrcTy(), getStackAlignedMMO(), llvm::GCProjectionInst::getStatepoint(), llvm::VPIntrinsic::getStaticVectorLength(), llvm::AnyCoroIdRetconInst::getStorageAlignment(), llvm::CoroIdAsyncInst::getStorageAlignment(), llvm::CoroIdAsyncInst::getStorageArgumentIndex(), llvm::CoroSuspendAsyncInst::getStorageArgumentIndex(), llvm::AnyCoroIdRetconInst::getStorageSize(), llvm::CoroIdAsyncInst::getStorageSize(), llvm::SelectionDAG::getStore(), getStoreStride(), llvm::VNCoercion::getStoreValueForLoadHelper(), llvm::SelectionDAG::getStoreVP(), llvm::DISubrange::getStride(), llvm::SelectionDAG::getStridedLoadVP(), llvm::RISCVTTIImpl::getStridedMemoryOpCost(), llvm::SelectionDAG::getStridedStoreVP(), llvm::DwarfStringPoolEntryRef::getString(), getStringValueFromReg(), llvm::dxil::ResourceTypeInfo::getStruct(), llvm::sandboxir::ConstantAggregateZero::getStructElement(), llvm::sandboxir::PoisonValue::getStructElement(), llvm::sandboxir::UndefValue::getStructElement(), llvm::Type::getStructElementType(), llvm::Type::getStructName(), llvm::Type::getStructNumElements(), llvm::generic_gep_type_iterator< ItTy >::getStructType(), llvm::FixedVectorType::getSubdividedVectorType(), llvm::sandboxir::FixedVectorType::getSubdividedVectorType(), llvm::sandboxir::ScalableVectorType::getSubdividedVectorType(), llvm::sandboxir::VectorType::getSubdividedVectorType(), llvm::ScalableVectorType::getSubdividedVectorType(), getSubprogram(), llvm::DILocalScope::getSubprogram(), llvm::CatchReturnInst::getSuccessor(), llvm::CatchSwitchInst::getSuccessor(), llvm::IndirectBrInst::getSuccessor(), llvm::Instruction::getSuccessor(), llvm::sandboxir::BranchInst::getSuccessor(), llvm::sandboxir::CallBrInst::getSuccessor(), llvm::sandboxir::CatchReturnInst::getSuccessor(), llvm::sandboxir::CatchSwitchInst::getSuccessor(), llvm::sandboxir::InvokeInst::getSuccessor(), llvm::sandboxir::SwitchInst::getSuccessor(), llvm::SwitchInst::getSuccessor(), llvm::sandboxir::AtomicCmpXchgInst::getSuccessOrdering(), getSuccPad(), getSummaryFromMD(), llvm::coro::Shape::getSwitchCoroId(), llvm::coro::Shape::getSwitchResumePointerType(), llvm::ModuleSymbolTable::getSymbolFlags(), llvm::SelectionDAG::getSymbolFunctionGlobalAddress(), getSymbolSectionID(), llvm::sandboxir::AtomicCmpXchgInst::getSyncScopeID(), llvm::sandboxir::AtomicRMWInst::getSyncScopeID(), llvm::sandboxir::FenceInst::getSyncScopeID(), getTargetConstantBitsFromNode(), llvm::Type::getTargetExtName(), llvm::RISCVTargetLowering::getTargetMMOFlags(), llvm::TargetLoweringObjectFileXCOFF::getTargetSymbol(), llvm::InstrProfValueProfileInst::getTargetValue(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), llvm::NVPTXTargetLowering::getTgtMemIntrinsic(), llvm::RISCVTargetLowering::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::SPIRVTargetLowering::getTgtMemIntrinsic(), llvm::PPCMCCodeEmitter::getTLSRegEncoding(), llvm::sandboxir::MemDGNodeIntervalBuilder::getTopMemDGNode(), llvm::sandboxir::Instruction::getTopmostLLVMInstruction(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTreeReductionCost(), llvm::detail::UniqueFunctionBase< R, P... >::getTrivialCallback(), llvm::sandboxir::ConstantInt::getTrue(), getTrueOrFalseValue(), llvm::FixedVectorType::getTruncatedElementVectorType(), llvm::sandboxir::FixedVectorType::getTruncatedElementVectorType(), llvm::sandboxir::ScalableVectorType::getTruncatedElementVectorType(), llvm::sandboxir::VectorType::getTruncatedElementVectorType(), llvm::ScalableVectorType::getTruncatedElementVectorType(), llvm::ScalarEvolution::getTruncateExpr(), llvm::SelectionDAG::getTruncStoreVP(), llvm::SelectionDAG::getTruncStridedStoreVP(), llvm::AllocaInst::getType(), llvm::ConstantArray::getType(), llvm::ConstantDataArray::getType(), llvm::ConstantDataVector::getType(), llvm::ConstantPointerNull::getType(), llvm::ConstantStruct::getType(), llvm::ConstantTargetNone::getType(), llvm::ConstantVector::getType(), llvm::GlobalValue::getType(), llvm::InsertElementInst::getType(), llvm::NoCFIValue::getType(), llvm::sandboxir::AllocaInst::getType(), llvm::sandboxir::ConstantArray::getType(), llvm::sandboxir::ConstantDataArray::getType(), llvm::sandboxir::ConstantDataVector::getType(), llvm::sandboxir::ConstantPointerNull::getType(), llvm::sandboxir::ConstantStruct::getType(), llvm::sandboxir::ConstantVector::getType(), llvm::sandboxir::NoCFIValue::getType(), llvm::sandboxir::ShuffleVectorInst::getType(), llvm::SCEV::getType(), llvm::ShuffleVectorInst::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), getTypedElementType(), getTypeID(), getTypeName(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getTypeName(), getTypePartition(), llvm::DataLayout::getTypeSizeInBits(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingArgRegs(), getUnderlyingExtractedFromVec(), llvm::VPSingleDefRecipe::getUnderlyingInstr(), llvm::VPSingleDefRecipe::getUnderlyingInstr(), llvm::objcarc::GetUnderlyingObjCPtr(), getUnderlyingObject(), getUnderlyingObjectsForCodeGen(), getUniformBase(), getUniqueInsertion(), llvm::Constant::getUniqueInteger(), getUniqueModuleId(), llvm::ScalarEvolution::getUnknown(), llvm::sandboxir::GlobalValue::getUnnamedAddr(), llvm::AArch64TTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::BasicTTIImplBase< BasicTTIImpl >::getUnrollingPreferences(), llvm::RISCVTTIImpl::getUnrollingPreferences(), llvm::SystemZTTIImpl::getUnrollingPreferences(), llvm::WebAssemblyTTIImpl::getUnrollingPreferences(), llvm::VPUnrollPartAccessor< PartOpIdx >::getUnrollPart(), llvm::CatchSwitchInst::getUnwindDest(), llvm::CleanupReturnInst::getUnwindDest(), llvm::InvokeInst::getUnwindDest(), llvm::sandboxir::CatchSwitchInst::getUnwindDest(), llvm::sandboxir::CleanupReturnInst::getUnwindDest(), llvm::sandboxir::InvokeInst::getUnwindDest(), llvm::WasmEHFuncInfo::getUnwindDest(), llvm::WasmEHFuncInfo::getUnwindDest(), getUnwindDestToken(), getUnwindDestTokenHelper(), llvm::WasmEHFuncInfo::getUnwindSrcs(), llvm::WasmEHFuncInfo::getUnwindSrcs(), llvm::DISubrange::getUpperBound(), getUsefulBitsFromAndWithImmediate(), getUsefulBitsFromBFM(), getUsefulBitsFromOrWithShiftedReg(), getUsefulBitsFromUBFM(), llvm::IVStrideUse::getUser(), getUserBB(), getVal(), getVal(), llvm::TrackingVH< ValueTy >::getValPtr(), llvm::ConstantAsMetadata::getValue(), llvm::sandboxir::CollectDescr::ExtractElementDescr::getValue(), llvm::sandboxir::ConstantFP::getValue(), llvm::sandboxir::ConstantInt::getValue(), llvm::sandboxir::ResumeInst::getValue(), llvm::sandboxir::ConstantFP::getValueAPF(), llvm::LazyValueInfoImpl::getValueAtUse(), getValueFromMetadata(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::InstrProfValueProfileInst::getValueKind(), llvm::sandboxir::StoreInst::getValueOperand(), llvm::DbgVariable::getVariable(), llvm::DbgVariableIntrinsic::getVariable(), llvm::DbgVariableRecord::getVariableLocationOp(), llvm::RawLocationWrapper::getVariableLocationOp(), llvm::GlobalObject::getVCallVisibility(), llvm::sandboxir::GlobalObject::getVCallVisibility(), getVectorElementType(), getVectorInstrCost(), llvm::ARMTTIImpl::getVectorInstrCost(), llvm::GCNTTIImpl::getVectorInstrCost(), llvm::HexagonTTIImpl::getVectorInstrCost(), llvm::R600TTIImpl::getVectorInstrCost(), llvm::RISCVTTIImpl::getVectorInstrCost(), llvm::X86TTIImpl::getVectorInstrCost(), getVectorizedTypeVF(), llvm::ExtractElementInst::getVectorOperandType(), llvm::sandboxir::ExtractElementInst::getVectorOperandType(), llvm::VPlan::getVectorPreheader(), llvm::SystemZTTIImpl::getVectorTruncCost(), getVFScaleFactor(), llvm::sandboxir::GlobalValue::getVisibility(), llvm::MemIntrinsic::getVolatileCst(), llvm::MemSetPatternInst::getVolatileCst(), llvm::RISCVTTIImpl::getVPLegalizationStrategy(), llvm::SelectionDAG::getVRegDbgValue(), getVRGatherIndexType(), llvm::MVT::getVT(), llvm::TargetLibraryInfoImpl::getWCharSize(), llvm::sandboxir::VecUtils::getWideType(), llvm::MachinePointerInfo::getWithOffset(), llvm::ConstantExpr::getWithOperands(), llvm::sandboxir::ConstantPtrAuth::getWithSameSchema(), llvm::CoroAwaitSuspendInst::getWrapperFunction(), getX86MaskVec(), llvm::sandboxir::ConstantFP::getZero(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::sandboxir::ConstantInt::getZExtValue(), handleByValParam(), HandleCallsInBlockInlinedThroughInvoke(), llvm::DebugValueUser::handleChangedValue(), llvm::FastISel::handleDbgInfo(), llvm::VPlanTransforms::handleEarlyExits(), llvm::coro::BaseCloner::handleFinalSuspend(), handleGuaranteedWellDefinedOps(), HandleInlinedEHPad(), llvm::VPlanTransforms::handleMaxMinNumReductions(), handlePhiDef(), llvm::VPRecipeBuilder::handleReplication(), llvm::VPlanTransforms::handleUncountableEarlyExit(), llvm::InstCombinerImpl::handleUnreachableFrom(), llvm::InstructionWorklist::handleUseCountDecrement(), llvm::sandboxir::ConstantPtrAuth::hasAddressDiscriminator(), HasAddressTaken(), llvm::sandboxir::GetElementPtrInst::hasAllConstantIndices(), hasAllGatScatUsers(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), llvm::sandboxir::FPMathOperator::hasAllowContract(), llvm::sandboxir::Instruction::hasAllowContract(), llvm::sandboxir::FPMathOperator::hasAllowReassoc(), llvm::sandboxir::Instruction::hasAllowReassoc(), llvm::sandboxir::FPMathOperator::hasAllowReciprocal(), llvm::sandboxir::Instruction::hasAllowReciprocal(), llvm::RISCVTargetLowering::hasAndNotCompare(), llvm::X86TargetLowering::hasAndNotCompare(), llvm::sandboxir::FPMathOperator::hasApproxFunc(), llvm::sandboxir::Instruction::hasApproxFunc(), llvm::sandboxir::GlobalValue::hasAtLeastLocalUnnamedAddr(), llvm::Instruction::hasAtomicLoad(), llvm::sandboxir::Instruction::hasAtomicLoad(), llvm::sandboxir::Instruction::hasAtomicStore(), llvm::sandboxir::GlobalVariable::hasAttribute(), llvm::sandboxir::GlobalVariable::hasAttribute(), hasAttributeInAssume(), llvm::sandboxir::GlobalVariable::hasAttributes(), llvm::sandboxir::GlobalObject::hasComdat(), llvm::sandboxir::GlobalValue::hasComdat(), llvm::X86TTIImpl::hasConditionalLoadStoreForType(), hasConditionalTerminator(), llvm::sandboxir::PHINode::hasConstantOrUndefValue(), llvm::sandboxir::PHINode::hasConstantValue(), llvm::sandboxir::GlobalValue::hasDefaultVisibility(), llvm::sandboxir::GlobalVariable::hasDefinitiveInitializer(), llvm::MDNode::hasGeneralizedMDString(), llvm::sandboxir::GlobalValue::hasGlobalUnnamedAddr(), hasGOTReference(), hasHardUserWithinLoop(), llvm::sandboxir::GlobalValue::hasHiddenVisibility(), llvm::sandboxir::GlobalVariable::hasImplicitSection(), llvm::sandboxir::ExtractValueInst::hasIndices(), llvm::sandboxir::GetElementPtrInst::hasIndices(), llvm::sandboxir::InsertValueInst::hasIndices(), llvm::sandboxir::GlobalVariable::hasInitializer(), hasInstrProfHashMismatch(), llvm::sandboxir::Instruction::hasMetadata(), llvm::sandboxir::Instruction::hasMetadata(), llvm::sandboxir::Instruction::hasMetadataOtherThanDebugLoc(), hasMustTailCallers(), llvm::sandboxir::FPMathOperator::hasNoInfs(), llvm::sandboxir::Instruction::hasNoInfs(), llvm::sandboxir::FPMathOperator::hasNoNaNs(), llvm::sandboxir::Instruction::hasNoNaNs(), llvm::sandboxir::PossiblyNonNegInst::hasNonNeg(), llvm::PredicatedScalarEvolution::hasNoOverflow(), hasNormalLoadOperand(), llvm::Instruction::hasNoSignedWrap(), llvm::sandboxir::Instruction::hasNoSignedWrap(), llvm::sandboxir::OverflowingBinaryOperator::hasNoSignedWrap(), llvm::Instruction::hasNoSignedZeros(), llvm::sandboxir::FPMathOperator::hasNoSignedZeros(), llvm::sandboxir::Instruction::hasNoSignedZeros(), llvm::GetElementPtrInst::hasNoUnsignedSignedWrap(), llvm::sandboxir::GetElementPtrInst::hasNoUnsignedSignedWrap(), llvm::GetElementPtrInst::hasNoUnsignedWrap(), llvm::sandboxir::GetElementPtrInst::hasNoUnsignedWrap(), llvm::sandboxir::Instruction::hasNoUnsignedWrap(), llvm::sandboxir::OverflowingBinaryOperator::hasNoUnsignedWrap(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), hasOutsideLoopUser(), hasPartialIVCondition(), llvm::Operator::hasPoisonGeneratingFlags(), llvm::sandboxir::Operator::hasPoisonGeneratingFlags(), llvm::Instruction::hasPoisonGeneratingMetadata(), hasPossibleIncompatibleOps(), hasProcessableCondition(), llvm::sandboxir::GlobalValue::hasProtectedVisibility(), hasSameExtUse(), llvm::Instruction::hasSameSpecialState(), llvm::sandboxir::GlobalObject::hasSection(), hasSourceMods(), llvm::sandboxir::ConstantPtrAuth::hasSpecialAddressDiscriminator(), llvm::Instruction::hasUBImplyingAttrs(), hasUndefSource(), llvm::sandboxir::GlobalVariable::hasUniqueInitializer(), llvm::sandboxir::CatchSwitchInst::hasUnwindDest(), llvm::sandboxir::CleanupReturnInst::hasUnwindDest(), hasUsesToReplace(), hasVariantSymbol(), hasVectorBeenPadded(), hoistAdd(), hoistAddSub(), hoistConditionalLoadsStores(), llvm::SCEVExpander::hoistIVInc(), hoistMinMax(), hoistMulAddAssociation(), hoistPreviousBeforeFORUsers(), hoistScopeConditions(), hoistSub(), hostParallelCallback(), llvm::Attributor::identifyDefaultAbstractAttributes(), llvm::sandboxir::ExtractValueInst::idx_begin(), llvm::sandboxir::InsertValueInst::idx_begin(), llvm::sandboxir::ExtractValueInst::idx_end(), llvm::sandboxir::InsertValueInst::idx_end(), impliesPoison(), llvm::sandboxir::ShuffleVectorInst::increasesLength(), llvm::ShuffleVectorInst::increasesLength(), llvm::sandboxir::ExtractValueInst::indices(), llvm::sandboxir::InsertValueInst::indices(), InferPointerInfo(), llvm::SelectionDAG::InferPtrAlign(), llvm::FunctionVarLocs::init(), llvm::objcarc::BottomUpPtrState::InitBottomUp(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::ExecutionEngine::InitializeMemory(), injectPendingInvariantConditions(), InlineFunctionImpl(), llvm::InnerLoopVectorizer::InnerLoopVectorizer(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::insert(), llvm::ThreadSafeTrieRawHashMapBase::insert(), llvm::TinyPtrVector< ReachingDef >::insert(), llvm::TinyPtrVector< ReachingDef >::insert(), insertDebugValuesForPHIs(), insertInlineAsmProcess(), insertInteger(), llvm::sandboxir::Instruction::insertInto(), insertLifetimeMarkersSurroundingCall(), insertParsePoints(), InsertRootInitializers(), insertSpills(), InsertStackProtectors(), insertUniqueBackedgeBlock(), insertUseHolderAfter(), llvm::fuzzerop::insertValueDescriptor(), insertVector(), instCombineConvertFromSVBool(), llvm::ARMTTIImpl::instCombineIntrinsic(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineLD1GatherIndex(), instCombineST1ScatterIndex(), instCombineSVECmpNE(), instCombineSVECntElts(), instCombineSVECondLast(), instCombineSVEDup(), instCombineSVEDupqLane(), instCombineSVEDupX(), instCombineSVELast(), instCombineSVETBL(), instCombineSVEUnpack(), instCombineSVEUxt(), instCombineSVEUzp1(), instCombineSVEVectorFuseMulAddSub(), llvm::SampleProfileProber::instrumentOneFunc(), IntCondCCodeToICC(), interleaveVectors(), llvm::FMFSource::intersect(), intersectAccessGroups(), llvm::EpilogueVectorizerMainLoop::introduceCheckBlockInVPlan(), llvm::VPlanTransforms::introduceMasksAndLinearize(), InvertBranch(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), isAddSubOrSubAdd(), isAllActivePredicate(), isAllocSiteRemovable(), isAlternateInstruction(), llvm::Loop::isAnnotatedParallel(), isAnyArm64COFF(), llvm::RecurrenceDescriptor::isAnyOfPattern(), llvm::sandboxir::CallBase::isArgOperand(), isArgUnmodifiedByAllCalls(), llvm::sandboxir::AllocaInst::isArrayAllocation(), llvm::sandboxir::Instruction::isAssociative(), llvm::sandboxir::IntrinsicInst::isAssociative(), llvm::Attributor::isAssumedDead(), llvm::sandboxir::IntrinsicInst::isAssumeLikeIntrinsic(), llvm::Instruction::isAtomic(), llvm::sandboxir::Instruction::isAtomic(), llvm::MCOperand::isBareSymbolRef(), llvm::ScalarEvolution::isBasicBlockEntryGuardedByCond(), llvm::sandboxir::Instruction::isBinaryOp(), isBitfieldExtractOpFromSExtInReg(), isBlockInLCSSAForm(), isBlockValidForExtraction(), isBrevLdIntrinsic(), llvm::sandboxir::CallBase::isCallee(), isCalleeLoad(), llvm::VPWidenIntOrFpInductionRecipe::isCanonical(), llvm::SITargetLowering::isCanonicalized(), llvm::sandboxir::Instruction::isCast(), llvm::sandboxir::LandingPadInst::isCatch(), llvm::sandboxir::LandingPadInst::isCleanup(), llvm::AMDGPU::isClobberedInFunction(), llvm::IRSimilarity::isClose(), llvm::CmpInst::isCommutative(), llvm::sandboxir::Instruction::isCommutative(), llvm::sandboxir::IntrinsicInst::isCommutative(), isCompatibleLoad(), isCompatibleReplacement(), llvm::sandboxir::PHINode::isComplete(), llvm::sandboxir::ShuffleVectorInst::isConcat(), llvm::ShuffleVectorInst::isConcat(), llvm::sandboxir::BranchInst::isConditional(), isConditionalOnXorOfPHIs(), isConsecutiveLSLoc(), llvm::sandboxir::GlobalVariable::isConstant(), isConstantIntVector(), isConstReg(), IsCopyFromSGPR(), llvm::sandboxir::ConstantDataSequential::isCString(), llvm::sandboxir::CallBase::isDataOperand(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), isDenselyPacked(), llvm::MachinePointerInfo::isDereferenceable(), llvm::X86TargetLowering::IsDesirableToPromoteOp(), llvm::sandboxir::PossiblyDisjointInst::isDisjoint(), llvm::GenericUniformityAnalysisImpl< ContextT >::isDivergentUse(), llvm::X86Operand::isDstIdx(), isECObject(), IsElementEquivalent(), llvm::Constant::isElementWiseEqual(), XtensaOperand::isentry_imm12(), llvm::DenseMapInfo< const SwitchSuccWrapper * >::isEqual(), isEqualImpl(), isEvaluated(), llvm::InstrInfoQuery::isExact(), llvm::Instruction::isExact(), llvm::sandboxir::Instruction::isExact(), llvm::sandboxir::ConstantFP::isExactlyValue(), llvm::sandboxir::ConstantFP::isExactlyValue(), isExtendedFrom16Bits(), isExtendOrShiftOperand(), llvm::sandboxir::GlobalVariable::isExternallyInitialized(), llvm::AArch64TTIImpl::isExtPartOfAvgExpr(), isExtractBitsCandidateUse(), llvm::sandboxir::ShuffleVectorInst::isExtractSubvectorMask(), llvm::sandboxir::ShuffleVectorInst::isExtractSubvectorMask(), llvm::ShuffleVectorInst::isExtractSubvectorMask(), llvm::sandboxir::FPMathOperator::isFast(), llvm::sandboxir::Instruction::isFast(), llvm::sandboxir::Instruction::isFenceLike(), llvm::sandboxir::LandingPadInst::isFilter(), llvm::CoroSuspendInst::isFinal(), llvm::RecurrenceDescriptor::isFixedOrderRecurrence(), isFixedVectorShuffle(), isFloatDIType(), llvm::sandboxir::AtomicRMWInst::isFloatingPointOperation(), llvm::RecurrenceDescriptor::isFMulAddIntrinsic(), isFNEG(), isFoldableInLoop(), llvm::SystemZTTIImpl::isFoldableLoad(), isFPIntrinsic(), isFPIntrinsic(), isFPSatMinMaxPattern(), isFreeConcat(), isFreeEltLoad(), llvm::CoroPromiseInst::isFromPromise(), isFSqrtDivToFMulLegal(), llvm::sandboxir::Instruction::isFuncletPad(), isFunctionMallocLike(), llvm::Type::isFunctionVarArg(), isFusableLoadOpStorePattern(), isFusableLoadOpStorePattern(), isGEPAndLoad(), isGEPAndStore(), isGEPKnownNonNull(), isGuaranteedNotToBeUndefOrPoison(), isGuaranteedNotToBeUndefOrPoison(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), isGuardAsWidenableBranch(), llvm::vputils::isHeaderMask(), isHighCostExpansion(), llvm::sandboxir::Instruction::isIdempotent(), llvm::Instruction::isIdenticalTo(), llvm::DbgRecord::isIdenticalToWhenDefined(), llvm::sandboxir::ShuffleVectorInst::isIdentity(), llvm::sandboxir::ShuffleVectorInst::isIdentityMask(), llvm::sandboxir::ShuffleVectorInst::isIdentityWithExtract(), llvm::ShuffleVectorInst::isIdentityWithExtract(), llvm::sandboxir::ShuffleVectorInst::isIdentityWithPadding(), llvm::ShuffleVectorInst::isIdentityWithPadding(), XtensaOperand::isImm64n_4n(), XtensaOperand::isImm8_sh8(), llvm::GetElementPtrInst::isInBounds(), llvm::sandboxir::GetElementPtrInst::isInBounds(), IsIncrementNSW(), IsIncrementNUW(), llvm::MaskedGatherScatterSDNode::isIndexScaled(), llvm::VPGatherScatterSDNode::isIndexScaled(), llvm::sandboxir::CallBase::isIndirectCall(), llvm::sandboxir::ConstantFP::isInfinity(), llvm::sandboxir::CallBase::isInlineAsm(), isInlineViable(), llvm::sandboxir::ShuffleVectorInst::isInsertSubvectorMask(), llvm::sandboxir::ShuffleVectorInst::isInsertSubvectorMask(), llvm::ShuffleVectorInst::isInsertSubvectorMask(), llvm::sandboxir::Instruction::isIntDivRem(), llvm::sandboxir::ShuffleVectorInst::isInterleave(), isIntS34Immediate(), llvm::MDNodeKeyImpl< DISubrange >::isKeyOf(), llvm::MDNodeKeyImpl< DISubrangeType >::isKeyOf(), llvm::sandboxir::ConstantPtrAuth::isKnownCompatibleWith(), isKnownIntegral(), isKnownNegation(), isKnownNonEqual(), isKnownNonEqualFromContext(), isKnownNonNullFromDominatingCondition(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), IsKnownPredicateViaAddRecStart(), isKnownToBeAPowerOfTwo(), isKnownTypeIdMember(), isLeakCheckerRoot(), llvm::AArch64TargetLowering::isLegalAddressingMode(), llvm::X86TTIImpl::isLegalAltInstr(), llvm::X86TTIImpl::isLegalMaskedExpandLoad(), llvm::X86TTIImpl::isLegalMaskedLoad(), llvm::X86TTIImpl::isLegalMaskedStore(), llvm::CodeExtractor::isLegalToShrinkwrapLifetimeMarkers(), llvm::Instruction::isLifetimeStartOrEnd(), isLoadCombineCandidateImpl(), llvm::ARMBaseInstrInfo::isLoadFromStackSlotPostFE(), llvm::LanaiInstrInfo::isLoadFromStackSlotPostFE(), llvm::SystemZInstrInfo::isLoadFromStackSlotPostFE(), llvm::X86InstrInfo::isLoadFromStackSlotPostFE(), isLoadInvariantInLoop(), isLoadOrMultipleLoads(), llvm::sandboxir::Instruction::isLogicalShift(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), isLoopExitTestBasedOn(), isLowerSaturatingConditional(), llvm::Constant::isManifestConstant(), isMaskedLoadCompress(), isMaskedStoreOverwrite(), llvm::sandboxir::ConstantInt::isMaxValue(), isMemOPCandidate(), llvm::SITargetLowering::isMemOpHasNoClobberedMemOperand(), isMemSrcFromConstant(), llvm::sandboxir::ConstantInt::isMinusOne(), llvm::sandboxir::ConstantInt::isMinValue(), isModifyingBinopOfNonZero(), llvm::AArch64TargetLowering::isMulAddWithConstProfitable(), llvm::ARMTargetLowering::isMulAddWithConstProfitable(), llvm::RISCVTargetLowering::isMulAddWithConstProfitable(), llvm::sandboxir::CallBase::isMustTailCall(), llvm::sandboxir::ConstantFP::isNaN(), llvm::sandboxir::ConstantFP::isNegative(), llvm::sandboxir::ConstantInt::isNegative(), llvm::sandboxir::Instruction::isNilpotent(), llvm::AANoSync::isNonRelaxedAtomic(), llvm::objcarc::IsNoopInstruction(), isNotUsedOrFoldableInLoop(), isNullOrUndef(), IsNullTerminatedString(), XtensaOperand::isOffset4m32(), XtensaOperand::isOffset8m16(), XtensaOperand::isOffset8m32(), llvm::sandboxir::ConstantInt::isOne(), llvm::sandboxir::ShuffleVectorInst::isOneUseSingleSourceMask(), isOnlyCopiedFromConstantMemory(), isOnlyUsedInEntryBlock(), llvm::sandboxir::Instruction::isOnlyUserOfAnyOperand(), isOperandOfVmullHighP64(), llvm::MemoryUseOrDef::isOptimized(), llvm::sandboxir::StructType::isPacked(), isPoisonShift(), llvm::LoopVectorizationCostModel::isPredicatedInst(), llvm::PPCTargetLowering::isProfitableToHoist(), isProfitableToInterleave(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::WebAssemblyTTIImpl::isProfitableToSinkOperands(), llvm::X86TTIImpl::isProfitableToSinkOperands(), llvm::AVR::isProgramMemoryAddress(), isPtrKnownNeverNull(), isPTruePromoted(), isReachableFromPHI(), llvm::GCNTTIImpl::isReadRegisterSourceOfDivergence(), isRegImmLoadOrStore(), isRegRegScaleLoadOrStore(), llvm::sandboxir::ShuffleVectorInst::isReplicationMask(), llvm::sandboxir::ShuffleVectorInst::isReplicationMask(), llvm::ShuffleVectorInst::isReplicationMask(), isReturnNonNull(), llvm::sandboxir::ShuffleVectorInst::isReverse(), llvm::sandboxir::ShuffleVectorInst::isReverseMask(), isROV(), IsSafeComputationToRemove(), isSafeDecreasingBound(), isSafeIncreasingBound(), llvm::Instruction::isSameOperationAs(), isSaturatingMinMax(), llvm::Type::isScalableTy(), llvm::Type::isScalableTy(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), llvm::AMDGPUTargetLowering::isSDNodeAlwaysUniform(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), llvm::sandboxir::ShuffleVectorInst::isSelect(), llvm::sandboxir::ShuffleVectorInst::isSelectMask(), isSetCC(), llvm::DwarfUnit::isShareableAcrossCUs(), llvm::sandboxir::Instruction::isShift(), isShuffleEquivalentToSelect(), isShuffleExtractingFromLHS(), isSignedMinMaxClamp(), isSignificantBitCheckWellFormed(), llvm::sandboxir::LoadInst::isSimple(), llvm::sandboxir::StoreInst::isSimple(), isSimpleEnoughValueToCommitHelper(), IsSimplerBaseSCEVForTarget(), isSimpleVIDSequence(), llvm::sandboxir::ShuffleVectorInst::isSingleSource(), llvm::sandboxir::ShuffleVectorInst::isSingleSourceMask(), llvm::sandboxir::Instruction::isSpecialTerminator(), llvm::sandboxir::ConstantDataVector::isSplat(), llvm::SelectionDAG::isSplatValue(), llvm::sandboxir::ShuffleVectorInst::isSplice(), llvm::sandboxir::ShuffleVectorInst::isSpliceMask(), llvm::X86Operand::isSrcIdx(), isSSATMinMaxPattern(), llvm::sandboxir::AllocaInst::isStaticAlloca(), llvm::ARMBaseInstrInfo::isStoreToStackSlotPostFE(), llvm::SystemZInstrInfo::isStoreToStackSlotPostFE(), llvm::X86InstrInfo::isStoreToStackSlotPostFE(), llvm::slpvectorizer::BoUpSLP::isStridedLoad(), llvm::sandboxir::ConstantDataSequential::isString(), isSupportedReturnType(), isSupportedType(), llvm::sandboxir::CallBase::isTailCall(), llvm::X86TargetLowering::isTargetCanonicalConstantNode(), llvm::sandboxir::Instruction::isTerminator(), isThumbFunc(), llvm::sandboxir::ShuffleVectorInst::isTranspose(), llvm::sandboxir::ShuffleVectorInst::isTransposeMask(), isTriviallyUniform(), isTruePredicate(), llvm::sandboxir::Instruction::isUnaryOp(), llvm::sandboxir::BranchInst::isUnconditional(), llvm::sandboxir::LoadInst::isUnordered(), llvm::sandboxir::StoreInst::isUnordered(), llvm::DebugHandlerBase::isUnsignedDIType(), isUnsupportedAMDGPUAddrspace(), isUntypedEquivalentToTyExt(), llvm::AnyCoroEndInst::isUnwind(), llvm::DemandedBits::isUseDead(), isUsedOutsideOfDefiningBlock(), llvm::sandboxir::AllocaInst::isUsedWithInAlloca(), isValidCandidateForColdCC(), llvm::Attributor::isValidFunctionSignatureRewrite(), isValidIndirectionTable(), llvm::AAIndirectCallInfo::isValidIRPositionForInit(), llvm::AAIsDead::isValidIRPositionForInit(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorizedStructTy(), isVectorPromotionViableForSlice(), llvm::Instruction::isVolatile(), llvm::sandboxir::AtomicCmpXchgInst::isVolatile(), llvm::sandboxir::AtomicRMWInst::isVolatile(), llvm::sandboxir::Instruction::isVolatile(), llvm::sandboxir::LoadInst::isVolatile(), llvm::sandboxir::StoreInst::isVolatile(), llvm::PPC::isVSLDOIShuffleMask(), llvm::sandboxir::AtomicCmpXchgInst::isWeak(), isWorthFoldingAdd(), isWorthFoldingADDlow(), isWorthFoldingIntoRegRegScale(), isZero(), llvm::sandboxir::ConstantFP::isZero(), llvm::sandboxir::ConstantInt::isZero(), llvm::sandboxir::ShuffleVectorInst::isZeroEltSplat(), llvm::sandboxir::ShuffleVectorInst::isZeroEltSplatMask(), isZeroInit(), knownBitsMapHelper(), layout(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), legalizeAndOptimizeInductions(), llvm::AMDGPULegalizerInfo::legalizeBVHDualOrBVH8IntersectRayIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeGlobalValue(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIntrinsic(), llvm::MipsLegalizerInfo::legalizeIntrinsic(), llvm::RISCVLegalizerInfo::legalizeIntrinsic(), legalizeIntrinsicImmArg(), llvm::TargetLowering::LegalizeSetCCCondCode(), llvm::SITargetLowering::legalizeTargetIndependentNode(), likeBitCastFromVector(), LinearizeExprTree(), LLVMDIBuilderInsertDbgValueRecordAtEnd(), LLVMDIBuilderInsertDbgValueRecordBefore(), LLVMDIBuilderInsertDeclareRecordAtEnd(), LLVMDIBuilderInsertDeclareRecordBefore(), LLVMDIBuilderInsertLabelAtEnd(), LLVMDIBuilderInsertLabelBefore(), LLVMGetCmpXchgFailureOrdering(), LLVMGetCmpXchgSuccessOrdering(), LLVMGetElementType(), LLVMGetExact(), LLVMGetFastMathFlags(), LLVMGetInlineAsmAsmString(), LLVMGetInlineAsmCanUnwind(), LLVMGetInlineAsmConstraintString(), LLVMGetInlineAsmDialect(), LLVMGetInlineAsmFunctionType(), LLVMGetInlineAsmHasSideEffects(), LLVMGetInlineAsmNeedsAlignedStack(), LLVMGetIsDisjoint(), LLVMGetMaskValue(), LLVMGetMDNodeNumOperands(), LLVMGetMDNodeOperands(), LLVMGetNNeg(), LLVMGetNSW(), LLVMGetNumMaskElements(), LLVMGetNumOperands(), LLVMGetNUW(), LLVMGetOperand(), LLVMGetOperandUse(), LLVMGetOrdering(), LLVMGetVolatile(), LLVMMachOUniversalBinaryCopyObjectForArch(), LLVMObjectFileCopySectionIterator(), LLVMObjectFileCopySymbolIterator(), LLVMObjectFileIsSectionIteratorAtEnd(), LLVMObjectFileIsSymbolIteratorAtEnd(), LLVMReplaceMDNodeOperandWith(), LLVMSetCmpXchgFailureOrdering(), LLVMSetCmpXchgSuccessOrdering(), LLVMSetCurrentDebugLocation(), LLVMSetExact(), LLVMSetFastMathFlags(), LLVMSetIsDisjoint(), LLVMSetNNeg(), LLVMSetNSW(), LLVMSetNUW(), LLVMSetOrdering(), LLVMSetVolatile(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), loadBinaryFormat(), llvm::HexagonDAGToDAGISel::LoadInstrForLoadIntrinsic(), llvm::ExecutionEngine::LoadValueFromMemory(), llvm::DbgVariableRecord::location_ops(), lookThroughAnd(), lookThroughShuffles(), lookThroughSignExtension(), llvm::sandboxir::BlockAddress::lookup(), llvm::GVNPass::ValueTable::lookupOrAdd(), llvm::GVNPass::ValueTable::lookupOrAdd(), llvm::vfs::RedirectingFileSystemParser::lookupOrCreateEntry(), lookupPGONameFromMetadata(), llvm::LegalizerHelper::lower(), lower1BitShuffle(), LowerADDRSPACECAST(), LowerADDRSPACECAST(), lowerAddrSpaceCast(), lowerAllowChecks(), LowerAndToBT(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), LowerAsSplatVectorLoad(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerATOMIC_LOAD_STORE(), LowerATOMIC_STORE(), llvm::VETargetLowering::lowerATOMIC_SWAP(), lowerAtomicArith(), lowerAtomicArithWithLOCK(), LowerAtomicLoadStore(), llvm::HexagonTargetLowering::LowerBlockAddress(), llvm::LanaiTargetLowering::LowerBlockAddress(), llvm::MSP430TargetLowering::LowerBlockAddress(), llvm::MSP430TargetLowering::LowerBR_CC(), LowerBR_CC(), lowerBUILD_VECTOR(), lowerBUILD_VECTORAsBroadCastLoad(), lowerBuildVectorAsBroadcast(), lowerBuildVectorOfConstants(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::AMDGPUCallLowering::lowerCall(), llvm::CallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithPtrAuthBundle(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), LowerClusterLaunchControlQueryCancel(), LowerCMP_SWAP(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), llvm::AsmPrinter::lowerConstant(), lowerConstant(), llvm::HexagonTargetLowering::LowerConstantPool(), llvm::LanaiTargetLowering::LowerConstantPool(), llvm::FastISel::lowerDbgDeclare(), llvm::SITargetLowering::LowerDYNAMIC_STACKALLOC(), LowerDYNAMIC_STACKALLOC(), llvm::MSP430TargetLowering::LowerExternalSymbol(), LowerF128Load(), LowerF128Store(), lowerFixedVectorSegLoadIntrinsics(), lowerFixedVectorSegStoreIntrinsics(), llvm::LoongArchTargetLowering::LowerFormalArguments(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), LowerFP_TO_INT_SAT(), lowerFP_TO_INT_SAT(), LowerFPToInt(), llvm::HexagonTargetLowering::LowerGLOBALADDRESS(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), llvm::LanaiTargetLowering::LowerGlobalAddress(), llvm::MSP430TargetLowering::LowerGlobalAddress(), lowerGlobalIFuncUsersAsGlobalCtor(), llvm::HexagonTargetLowering::LowerGlobalTLSAddress(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), llvm::HexagonTargetLowering::LowerINLINEASM(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleavedStore(), llvm::X86TargetLowering::lowerInterleavedStore(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), LowerINTRINSIC_W_CHAIN(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerIntrinsicToFunction(), LowerIntrinsicVoid(), LowerIntVSETCC_AVX512(), llvm::HexagonTargetLowering::LowerJumpTable(), llvm::LanaiTargetLowering::LowerJumpTable(), llvm::MSP430TargetLowering::LowerJumpTable(), LowerLOAD(), llvm::HexagonTargetLowering::LowerLoad(), LowerLoad(), llvm::MipsTargetLowering::lowerLOAD(), llvm::VETargetLowering::lowerLOAD(), lowerLocalAllocas(), LowerMGATHER(), LowerMLOAD(), LowerMLOAD(), lowerMSASplatImm(), LowerMSCATTER(), LowerMSTORE(), lowerObjCCall(), lowerObjectSizeCall(), llvm::AArch64TargetLowering::LowerOperation(), llvm::RISCVTargetLowering::LowerOperation(), llvm::SystemZTargetLowering::LowerOperation(), llvm::SystemZTargetLowering::LowerOperationWrapper(), LowerPredicateLoad(), LowerPredicateStore(), llvm::SITargetLowering::lowerPREFETCH(), LowerPtrAuthGlobalAddressStatically(), llvm::LegalizerHelper::lowerReadWriteRegister(), llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(), LowerSaturatingConditional(), llvm::MSP430TargetLowering::LowerSELECT_CC(), LowerSELECT_CC(), lowerSelectToBinOp(), llvm::HexagonTargetLowering::LowerSETCC(), llvm::MSP430TargetLowering::LowerSETCC(), LowerSETCCCARRY(), lowerShuffleAsBroadcast(), lowerShuffleAsLanePermuteAndRepeatedMask(), lowerShufflePairAsUNPCKAndPermute(), llvm::AMDGPUTargetLowering::LowerSIGN_EXTEND_INREG(), LowerSMELdrStr(), LowerSTORE(), LowerSTORE(), llvm::HexagonTargetLowering::LowerStore(), LowerStore(), llvm::MipsTargetLowering::lowerSTORE(), llvm::VETargetLowering::lowerSTORE(), lowerSTOREVector(), llvm::AMDGPUCallLowering::lowerTailCall(), LowerTcgen05St(), llvm::LegalizerHelper::lowerThreewayCompare(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerUnaryVectorIntrinsicAsLoop(), lowerV2X128Shuffle(), LowerVAARG(), llvm::VETargetLowering::lowerVAARG(), llvm::HexagonTargetLowering::LowerVACOPY(), LowerVACOPY(), llvm::HexagonTargetLowering::LowerVASTART(), llvm::LanaiTargetLowering::LowerVASTART(), llvm::MSP430TargetLowering::LowerVASTART(), LowerVASTART(), LowerVASTART(), LowerVASTART(), llvm::VETargetLowering::lowerVASTART(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_i1(), lowerVECTOR_SHUFFLEAsVSlide1(), lowerVectorBitClearImm(), lowerVectorBitRevImm(), lowerVectorBitSetImm(), lowerVectorSplatImm(), LowerVSETCC(), LowerVSETCC(), llvm::MachineMemOperand::MachineMemOperand(), llvm::MachinePointerInfo::MachinePointerInfo(), llvm::sandboxir::CmpInst::makeCmpResultType(), makeFollowupLoopID(), makeGuardControlFlowExplicit(), makeStatepointExplicitImpl(), llvm::object::ObjectFile::makeTriple(), llvm::RuntimeDyldMachO::makeValueAddendPCRel(), llvm::LoopStructure::map(), llvm::yaml::MappingTraits< std::unique_ptr< WasmYAML::Section > >::mapping(), llvm::yaml::MappingTraits< std::unique_ptr< XCOFFYAML::AuxSymbolEnt > >::mapping(), mapWasmLandingPadIndex(), markAliveBlocks(), markCoroutineAsDone(), llvm::GenericUniformityAnalysisImpl< ContextT >::markDefsDivergent(), markPointerAsAS(), maskContainsAllOneOrUndef(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), llvm::PatternMatch::AnyOps_match< Opcode, OperandTypes >::match(), llvm::PatternMatch::BinaryOp_match< LHS_t, RHS_t, Opcode, Commutable >::match(), llvm::PatternMatch::bind_immconstant_ty::match(), llvm::PatternMatch::cstval_pred_ty< Predicate, ConstantInt, AllowPoison >::match(), llvm::PatternMatch::ElementWiseBitCast_match< Op_t >::match(), llvm::PatternMatch::OneOps_match< T0, Opcode >::match(), llvm::PatternMatch::ThreeOps_match< T0, T1, T2, Opcode, CommutableOp2Op3 >::match(), llvm::PatternMatch::TwoOps_match< T0, T1, Opcode >::match(), llvm::SCEVPatternMatch::SCEVAffineAddRec_match< Op0_t, Op1_t, Loop_t >::match(), llvm::SDPatternMatch::MaxMin_match< LHS_P, RHS_P, Pred_t, Commutable, ExcludeChain >::match(), llvm::VPlanPatternMatch::Cmp_match< Op0_t, Op1_t, Opcodes >::match(), llvm::CombinerHelper::matchAddOfVScale(), llvm::CombinerHelper::matchAddOverflow(), matchAddReduction(), llvm::CombinerHelper::matchAnd(), MatchBinaryOp(), matchBinaryOp(), llvm::CombinerHelper::matchBitfieldExtractFromAnd(), matchBitmaskMul(), llvm::CombinerHelper::matchCanonicalizeFCmp(), llvm::CombinerHelper::matchCanonicalizeICmp(), llvm::CombinerHelper::matchCastOfBuildVector(), llvm::CombinerHelper::matchCastOfInteger(), llvm::CombinerHelper::matchCastOfSelect(), llvm::CombinerHelper::matchCombineConstPtrAddToI2P(), llvm::CombinerHelper::matchCombineIndexedLoadStore(), llvm::CombinerHelper::matchCombineMergeUnmerge(), llvm::CombinerHelper::matchCombineShuffleToBuildVector(), llvm::CombinerHelper::matchCombineSubToAdd(), llvm::CombinerHelper::matchCombineUnmergeMergeToPlainValues(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchConstantSelectCmp(), matchDecomposedSelectPattern(), llvm::CombinerHelper::matchDivByPow2(), llvm::CombinerHelper::matchExtendThroughPhis(), llvm::CombinerHelper::matchExtOfExt(), llvm::CombinerHelper::matchExtractVectorElement(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVector(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVectorTrunc(), llvm::CombinerHelper::matchExtractVectorElementWithDifferentIndices(), llvm::CombinerHelper::matchExtractVectorElementWithShuffleVector(), llvm::AMDGPUCombinerHelper::matchFoldableFneg(), llvm::CombinerHelper::matchFoldAMinusC1MinusC2(), llvm::CombinerHelper::matchFoldAMinusC1PlusC2(), llvm::CombinerHelper::matchFoldAPlusC1MinusC2(), llvm::CombinerHelper::matchFoldC1Minus2MinusC2(), llvm::CombinerHelper::matchFoldC2MinusAPlusC1(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), MatchingStackOffset(), MatchingStackOffset(), llvm::CombinerHelper::matchInsertVectorElementOOB(), matchIntrinsicType(), matchLSNode(), matchMergedBFX(), llvm::CombinerHelper::matchMergeXAndUndef(), llvm::CombinerHelper::matchMergeXAndZero(), llvm::CombinerHelper::matchMulOfVScale(), llvm::CombinerHelper::matchNarrowBinop(), llvm::CombinerHelper::matchNonNegZext(), llvm::CombinerHelper::matchOr(), llvm::CombinerHelper::matchPtrAddZero(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchReassocPtrAdd(), matchScalarInAggregate(), llvm::CombinerHelper::matchSelect(), llvm::CombinerHelper::matchSelectIMinMax(), matchSelectPattern(), matchSetCC(), matchSetCC(), llvm::CombinerHelper::matchSextOfTrunc(), llvm::CombinerHelper::matchShlOfVScale(), llvm::CombinerHelper::matchShuffleDisjointMask(), llvm::CombinerHelper::matchShuffleUndefRHS(), matchStridedConstant(), matchStridedStart(), llvm::CombinerHelper::matchSuboCarryOut(), llvm::CombinerHelper::matchSubOfVScale(), llvm::InstCombinerImpl::matchThreeWayIntCompare(), llvm::CombinerHelper::matchTruncateOfExt(), matchUAddWithOverflowConstantEdgeCases(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), llvm::CombinerHelper::matchUseVectorTruncate(), MatchVectorAllEqualTest(), llvm::objcarc::TopDownPtrState::MatchWithRelease(), matchZExtedSubInteger(), llvm::CombinerHelper::matchZextOfTrunc(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), llvm::VPlanTransforms::materializeBroadcasts(), llvm::VPlanTransforms::materializeBuildVectors(), MayAutorelease(), mayBeSRetTailCallCompatible(), llvm::X86::mayFoldLoad(), llvm::X86::mayFoldLoadIntoBroadcastFromMem(), llvm::sandboxir::Instruction::mayHaveSideEffects(), llvm::VPRecipeBase::mayHaveSideEffects(), mayHaveValueProfileOfKind(), llvm::sandboxir::Instruction::mayReadFromMemory(), llvm::VPRecipeBase::mayReadFromMemory(), llvm::sandboxir::Instruction::mayReadOrWriteMemory(), llvm::sandboxir::Instruction::mayThrow(), mayUseP9Setb(), llvm::sandboxir::Instruction::mayWriteToMemory(), llvm::VPRecipeBase::mayWriteToMemory(), llvm::MachineSDNode::memoperands(), llvm::sandboxir::Utils::memoryLocationGetOrNone(), llvm::ARMOverrideBypasses::memoryRAWHazard(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::MemSeedBundle(), llvm::GlobalMergeFunc::merge(), MergeBlockIntoPredecessor(), mergeBlocksIntoPredecessors(), llvm::MDBuilder::mergeCallbackEncodings(), mergeCompatibleInvokes(), mergeCompatibleInvokesImpl(), mergeConditionalStoreToAddress(), llvm::Instruction::mergeDIAssignID(), llvm::DDGBuilder::mergeNodes(), mergeReplicateRegionsIntoSuccessors(), llvm::Constant::mergeUndefsWith(), migrateDebugInfo(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), llvm::MMRAMetadata::MMRAMetadata(), moveAddAfterMinMax(), llvm::Instruction::moveAfter(), moveLCSSAPhis(), llvm::LoopInfo::movementPreservesLCSSAForm(), movePHIValuesToInsertedBlock(), mustExecuteUBIfPoisonOnPathTo(), llvm::HexagonMCInstrInfo::mustExtend(), llvm::HexagonMCInstrInfo::mustNotExtend(), llvm::InsertCFGStrategy::mutate(), llvm::InstModificationIRStrategy::mutate(), llvm::VPlanTransforms::narrowInterleaveGroups(), llvm::LegalizerHelper::narrowScalar(), narrowToSingleScalarRecipes(), narrowVectorSelect(), nearest_common_dominatee(), nearest_common_dominator(), needsLFTR(), needsPCRel(), negateICmpIfUsedByBranchOrSelectOnly(), llvm::EscapeEnumerator::Next(), noConflictingReadWrites(), nullifySetjmp(), llvm::pdb::InputFile::obj(), llvm::pdb::InputFile::obj(), onlySingleValue(), llvm::OperandTraits< MemoryUseOrDef >::op_begin(), llvm::OperandTraits< MemoryUseOrDef >::op_end(), llvm::pdb::InputFile::open(), llvm::vfs::RedirectingFileSystem::openFileForRead(), llvm::OperandTraits< MemoryUseOrDef >::operands(), llvm::SCEV::operands(), operandWithNewAddressSpaceOrCreatePoison(), llvm::AADepGraphNode::operator AbstractAttribute *(), llvm::sandboxir::IntegerType::operator llvm::IntegerType &(), llvm::BranchInst::const_succ_op_iterator::operator*(), llvm::BranchInst::succ_op_iterator::operator*(), llvm::DbgVariableRecord::location_op_iterator::operator*(), llvm::DbgVariableRecord::location_op_iterator::operator*(), llvm::IndirectBrInst::const_succ_op_iterator::operator*(), llvm::IndirectBrInst::succ_op_iterator::operator*(), llvm::location_op_iterator::operator*(), llvm::location_op_iterator::operator*(), llvm::memoryaccess_def_iterator_base< MemoryAccess >::operator*(), llvm::orc::CtorDtorIterator::operator*(), llvm::PredIterator< BasicBlock, Value::user_iterator >::operator*(), llvm::sandboxir::PredIterator::operator*(), llvm::DbgVariableRecord::location_op_iterator::operator++(), llvm::location_op_iterator::operator++(), llvm::sandboxir::PredIterator::operator++(), llvm::DbgVariableRecord::location_op_iterator::operator--(), llvm::location_op_iterator::operator--(), false::GepNode::operator<<, operator<<(), llvm::TinyPtrVector< ReachingDef >::operator=(), llvm::TinyPtrVector< ReachingDef >::operator[](), OptimizeAwayTrappingUsesOfValue(), optimizeBranch(), optimizeCallInst(), optimizeEarlyExitInductionUser(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), OptimizeExtractBits(), OptimizeGlobalAddressOfAllocation(), llvm::VPlanTransforms::optimizeInductionExitUsers(), optimizeIntegerToVectorInsertions(), optimizeLatchExitInductionUser(), llvm::InstCombinerImpl::OptimizePointerDifference(), optimizeSection(), optimizeSQRT(), optimizeVectorInductionWidthForTCAndVFUF(), optimizeVectorResizeWithIntegerBitCasts(), llvm::TargetLowering::parametersInCSRMatch(), llvm::MIRParserImpl::parseCalledGlobals(), llvm::TargetLowering::ParseConstraints(), parseGlobalCtors(), llvm::LoopStructure::parseLoopStructure(), parseTexFail(), parseWidenableGuard(), partitionShuffleOfConcats(), passingValueIsAlwaysUndefined(), llvm::pdb::InputFile::pdb(), llvm::pdb::InputFile::pdb(), peelLoop(), performAddCSelIntoCSinc(), performANDCombine(), llvm::AMDGPUTargetLowering::performAssertSZExtCombine(), llvm::SparcTargetLowering::PerformBITCASTCombine(), PerformBUILD_VECTORCombine(), performBuildShuffleExtendCombine(), performCONCAT_VECTORSCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), performFP_TO_INT_SATCombine(), performFPExtendCombine(), performFpToIntCombine(), performGLD1Combine(), performGlobalAddressCombine(), PerformHWLoopCombine(), PerformInsertEltCombine(), performIntToFpCombine(), performLDNT1Combine(), llvm::AMDGPUTargetLowering::performLoadCombine(), performMaskedGatherScatterCombine(), performMemPairCombine(), performMulCombine(), llvm::ARMTargetLowering::PerformMVEExtCombine(), llvm::ARMTargetLowering::PerformMVETruncCombine(), PerformMVEVLDCombine(), PerformMVEVMULLCombine(), performNEONPostLDSTCombine(), performOrXorChainCombine(), performPostLD1Combine(), performSELECT_CCCombine(), PerformSELECTCombine(), performSELECTCombine(), llvm::AMDGPUTargetLowering::performSelectCombine(), performSETCC_BITCASTCombine(), performSETCCCombine(), performSETCCCombine(), performSETCCCombine(), performSETCCCombine(), performSETCCCombine(), performSetccMergeZeroCombine(), performSetCCPunpkCombine(), performSIGN_EXTEND_INREGCombine(), PerformSignExtendInregCombine(), performSignExtendInRegCombine(), performSignExtendSetCCCombine(), PerformSplittingToWideningLoad(), performSRACombine(), performSRACombine(), performSTNT1Combine(), PerformSTORECombine(), llvm::AMDGPUTargetLowering::performStoreCombine(), performSUBCombine(), performSVEAndCombine(), performSVEMulAddSubCombine(), performTruncateCombine(), performUnpackCombine(), PerformVCVTCombine(), PerformVECTOR_SHUFFLECombine(), performVECTOR_SHUFFLECombine(), performVECTOR_SHUFFLECombine(), PerformVMOVrhCombine(), PerformVMOVRRDCombine(), performVP_STORECombine(), PerformVQDMULHCombine(), performVSelectCombine(), PerformVSetCCToVCTPCombine(), performXORCombine(), llvm::InstCombinerImpl::PHIArgMergedDebugLoc(), planContainsAdditionalSimplifications(), llvm::TinyPtrVector< ReachingDef >::pop_back(), populateDependencyMatrix(), possiblyDemandedEltsInMask(), llvm::RISCVDAGToDAGISel::PostprocessISelDAG(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), prepareTS1AM(), llvm::InstCombinerImpl::prepareWorklist(), llvm::RISCVDAGToDAGISel::PreprocessISelDAG(), llvm::AsmPrinter::preprocessXXStructorList(), llvm::AADepGraph::print(), llvm::DbgRecord::print(), llvm::DbgRecord::print(), llvm::DebugLoc::print(), llvm::MachineMemOperand::print(), llvm::MemoryPhi::print(), llvm::SCEV::print(), llvm::VPExpressionRecipe::print(), llvm::X86Operand::print(), llvm::WebAssemblyInstPrinter::printCatchList(), PrintDebugDomInfo(), printDebugLoc(), llvm::vfs::RedirectingFileSystem::printEntry(), printExpr(), llvm::ARMInstPrinter::printOperand(), llvm::SystemZInstPrinterCommon::printPCRelTLSOperand(), llvm::NVPTXInstPrinter::printProtoIdent(), llvm::ModuleSymbolTable::printSymbolName(), llvm::PPCInstPrinter::printTLSCall(), llvm::WebAssemblyInstPrinter::printWebAssemblySignatureOperand(), processAbsIntrinsic(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::processBlock(), llvm::JumpThreadingPass::processBranchOnXOR(), processCallSite(), llvm::JumpThreadingPass::processGuards(), llvm::JumpThreadingPass::processImpliedCondition(), processOverflowIntrinsic(), processPhiNode(), llvm::RuntimeDyldELF::processRelocationRef(), processSelect(), llvm::JumpThreadingPass::processThreadableEdges(), processUGT_ADDCST_ADD(), processUIToFP(), processUMulZExtIdiom(), processZExt(), llvm::xray::FileBasedRecordProducer::produce(), llvm::ListInit::Profile(), promoteAllocaUserToVector(), promoteArguments(), promoteCallWithIfThenElse(), promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), propagateMetadata(), propagateNaN(), propagatesPoison(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::PseudoProbeManager::PseudoProbeManager(), llvm::TinyPtrVector< ReachingDef >::push_back(), PushDefUseChildren(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), llvm::InstructionWorklist::pushUsersToWorkList(), llvm::RawLocationWrapper::RawLocationWrapper(), llvm::object::ELFObjectFileBase::readBBAddrMap(), llvm::object::ELFObjectFileBase::readDynsymVersions(), llvm::MachO::DylibReader::readFile(), rebuildGatherScatter(), llvm::HashRecognize::recognizeCRC(), reconnectPhis(), llvm::AArch64TargetLowering::ReconstructShuffle(), ReconstructShuffleWithRuntimeMask(), recordCondition(), recordTypeIdCompatibleVtableReferences(), RecursivelyDeleteDeadPHINode(), redirectTo(), redirectToHub(), redirectValuesFromPredecessorsToPhi(), reduceANDOfAtomicLoad(), reduceSwitchRange(), refinePtrAS(), llvm::AssumptionCache::registerAssumption(), llvm::LoongArchAsmBackend::relaxDwarfCFA(), llvm::RISCVAsmBackend::relaxDwarfCFA(), relocationViaAlloca(), llvm::at::remapAssignID(), rematerializeLiveValues(), rematerializeLiveValuesAtUses(), removeASCastIfPresent(), RemoveAttribute(), llvm::VPlanTransforms::removeBranchOnConst(), llvm::sandboxir::SwitchInst::removeCase(), RemoveDeadConstant(), removeFromUsedList(), removeGlobalCtors(), llvm::sandboxir::PHINode::removeIncomingValue(), llvm::sandboxir::PHINode::removeIncomingValue(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), removeIntrinsicUsers(), llvm::MemorySSAUpdater::removeMemoryAccess(), llvm::SCCPSolver::removeNonFeasibleEdges(), removePAICalls(), RemovePreallocated(), llvm::objcopy::elf::Object::removeSections(), removeUndefIntroducingPredecessor(), replaceAliasWithAliasee(), replaceAllPrepares(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), replaceAllUsesWith(), replaceAndRecursivelySimplifyImpl(), replaceArgumentUses(), ReplaceATOMIC_LOAD_128Results(), replaceAtomicSwap128(), llvm::AMDGPULibCalls::replaceCall(), ReplaceCMP_SWAP_128Results(), ReplaceCMP_SWAP_64Results(), replaceCMP_XCHG_128Results(), replaceCoroEndAsync(), llvm::coro::BaseCloner::replaceCoroEnds(), llvm::coro::BaseCloner::replaceCoroSuspends(), llvm::coro::BaseCloner::replaceEntryBlock(), replaceExtractElements(), replaceFallthroughCoroEnd(), replaceIfBranchTargets(), llvm::sandboxir::PHINode::replaceIncomingBlockWith(), llvm::DebugLoc::replaceInlinedAtSubprogram(), ReplaceINTRINSIC_W_CHAIN(), replaceLoadVector(), replaceLoopPHINodesWithPreheaderValues(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::SparcTargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceNonLocalUsesWith(), replaceSubOverflowUses(), llvm::Instruction::replaceSuccessorWith(), replaceSwiftErrorOps(), llvm::VPlanTransforms::replaceSymbolicStrides(), replaceSymmetricNode(), ReplaceTcgen05Ld(), llvm::DIBuilder::replaceTemporary(), replaceUnwindCoroEnd(), llvm::DistinctMDOperandPlaceholder::replaceUseWith(), llvm::DbgVariableRecord::replaceVariableLocationOp(), llvm::DbgVariableRecord::replaceVariableLocationOp(), llvm::MDNode::replaceWithDistinct(), replaceWithIndirectUse(), llvm::MDNode::replaceWithPermanent(), replaceWithTileLoad(), llvm::MDNode::replaceWithUniqued(), llvm::VPlanTransforms::replicateByVF(), llvm::MemoryUseOrDef::resetOptimized(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::VarDefInit::resolveReferences(), llvm::object::resolveRelocation(), llvm::DIBuilder::retainType(), llvm::sandboxir::CatchSwitchAddHandler::revert(), llvm::sandboxir::EraseFromParent::revert(), llvm::sandboxir::MoveInstr::revert(), llvm::sandboxir::RemoveFromParent::revert(), rewriteAccessChain(), llvm::SSAUpdaterBulk::RewriteAllUses(), rewriteGEPAsOffset(), rewriteGlobalVariablesInConstant(), rewriteLoopExitValues(), rewriteMemOpOfSelect(), rewriteSelectInstMemOps(), rewriteSingleStoreAlloca(), llvm::SSAUpdater::RewriteUse(), llvm::SSAUpdater::RewriteUseAfterInsertions(), RewriteUsesOfClonedInstructions(), llvm::RopePieceBTreeIterator::RopePieceBTreeIterator(), llvm::ArgumentPromotionPass::run(), llvm::AssumptionPrinterPass::run(), llvm::FunctionSpecializer::run(), llvm::InstCombinerImpl::run(), llvm::KCFIPass::run(), llvm::LoadAndStorePromoter::run(), llvm::LoopConstrainer::run(), llvm::MCJIT::runFunction(), llvm::AlignmentFromAssumptionsPass::runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runIPSCCP(), runOnDeviceFunction(), llvm::RewriteStatepointsForGC::runOnFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), runPass(), RunTermFold(), llvm::ReplaceableMetadataImpl::SalvageDebugInfo(), llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(), saveFilteredNewMIBNodes(), scalarConstantToHexString(), scalarize(), scalarize(), scalarizeExtractedBinOp(), scalarizeInstruction(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), ScaleVectorOffset(), SearchLoopIntrinsic(), SearchOptions::SearchOptions(), llvm::AMDGPUDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::Select(), llvm::LoongArchDAGToDAGISel::SelectAddrConstant(), llvm::HexagonDAGToDAGISel::SelectAddrFI(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm(), llvm::LoongArchDAGToDAGISel::SelectAddrRegImm12(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm9(), llvm::RISCVDAGToDAGISel::SelectAddrRegImmLsb00000(), llvm::HexagonDAGToDAGISel::SelectAnyImmediate(), llvm::HexagonDAGToDAGISel::SelectAnyInt(), llvm::FastISel::selectBinaryOp(), llvm::HexagonDAGToDAGISel::SelectBrevLdIntrinsic(), llvm::AMDGPUDAGToDAGISel::SelectBuildVector(), llvm::FastISel::selectCall(), selectCallee(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::HexagonDAGToDAGISel::SelectConstant(), selectConstantAddr(), llvm::HexagonDAGToDAGISel::SelectConstantFP(), selectDebugInstr(), llvm::HexagonDAGToDAGISel::SelectFrameIndex(), llvm::FastISel::selectGetElementPtr(), llvm::HexagonDAGToDAGISel::SelectIndexedLoad(), llvm::HexagonDAGToDAGISel::SelectIndexedStore(), llvm::RISCVDAGToDAGISel::selectInvLogicImm(), llvm::HexagonDAGToDAGISel::SelectLoad(), llvm::RISCVDAGToDAGISel::selectNegImm(), llvm::HexagonDAGToDAGISel::SelectNewCircIntrinsic(), llvm::FastISel::selectOperator(), llvm::PPCTargetLowering::SelectOptimalAddrMode(), llvm::FastISel::selectPatchpoint(), SelectSAddrFI(), llvm::TargetLoweringObjectFileMachO::SelectSectionForGlobal(), llvm::RISCVDAGToDAGISel::selectSETCC(), llvm::RISCVDAGToDAGISel::selectSExtBits(), llvm::LoongArchDAGToDAGISel::selectSExti32(), llvm::RISCVDAGToDAGISel::selectSF_VC_X_SE(), llvm::HexagonDAGToDAGISel::SelectSHL(), llvm::HvxSelector::selectShuffle(), llvm::FastISel::selectStackmap(), llvm::HexagonDAGToDAGISel::SelectStore(), llvm::HexagonDAGToDAGISel::SelectV65Gather(), llvm::HexagonDAGToDAGISel::SelectV65GatherPred(), llvm::HexagonDAGToDAGISel::SelectVAlignAddr(), llvm::AMDGPUDAGToDAGISel::SelectVectorShuffle(), llvm::RISCVDAGToDAGISel::selectVLOp(), llvm::RISCVDAGToDAGISel::selectVLSEG(), llvm::RISCVDAGToDAGISel::selectVLSEGFF(), llvm::RISCVDAGToDAGISel::selectVLXSEG(), llvm::RISCVDAGToDAGISel::selectVSSEG(), llvm::RISCVDAGToDAGISel::selectVSXSEG(), llvm::RISCVDAGToDAGISel::selectZExtImm32(), llvm::FunctionLoweringInfo::set(), llvm::sandboxir::GlobalAlias::setAliasee(), llvm::sandboxir::AllocaInst::setAlignment(), llvm::sandboxir::AtomicCmpXchgInst::setAlignment(), llvm::sandboxir::AtomicRMWInst::setAlignment(), llvm::sandboxir::Function::setAlignment(), llvm::sandboxir::GlobalVariable::setAlignment(), llvm::sandboxir::AllocaInst::setAllocatedType(), llvm::sandboxir::Region::setAux(), llvm::IRSimilarity::IRInstructionData::setBranchSuccessors(), llvm::sandboxir::CatchReturnInst::setCatchPad(), llvm::sandboxir::CleanupReturnInst::setCleanupPad(), llvm::sandboxir::SwitchInst::setCondition(), llvm::sandboxir::GlobalVariable::setConstant(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::sandboxir::SwitchInst::setDefaultDest(), llvm::sandboxir::GlobalVariable::setExternallyInitialized(), llvm::Instruction::setHasAllowContract(), llvm::sandboxir::Instruction::setHasAllowContract(), llvm::Instruction::setHasAllowReassoc(), llvm::sandboxir::Instruction::setHasAllowReciprocal(), llvm::Instruction::setHasApproxFunc(), llvm::sandboxir::Instruction::setHasNoInfs(), llvm::Instruction::setHasNoSignedZeros(), llvm::sandboxir::Instruction::setHasNoSignedZeros(), llvm::Instruction::setHasNoUnsignedWrap(), llvm::sandboxir::PHINode::setIncomingValue(), llvm::sandboxir::GlobalVariable::setInitializer(), llvm::sandboxir::Instruction::setInsertPos(), llvm::GetElementPtrInst::setIsInBounds(), setLoadStoreAlignment(), llvm::HexagonMCInstrInfo::setMustExtend(), llvm::HexagonMCInstrInfo::setMustNotExtend(), llvm::sandboxir::PossiblyNonNegInst::setNonNeg(), llvm::PredicatedScalarEvolution::setNoOverflow(), llvm::sandboxir::AtomicRMWInst::setOperation(), llvm::MemoryUseOrDef::setOptimized(), llvm::sandboxir::AtomicRMWInst::setOrdering(), llvm::sandboxir::FenceInst::setOrdering(), llvm::IRSimilarity::IRInstructionData::setPHIPredecessors(), llvm::sandboxir::CmpInst::setPredicate(), llvm::sandboxir::GlobalIFunc::setResolver(), llvm::HexagonMCInstrInfo::setS27_2_reloc(), llvm::sandboxir::GlobalObject::setSection(), llvm::sandboxir::ShuffleVectorInst::setShuffleMask(), llvm::sandboxir::CatchReturnInst::setSuccessor(), llvm::sandboxir::SwitchInst::setSuccessor(), llvm::sandboxir::AtomicCmpXchgInst::setSuccessOrdering(), llvm::sandboxir::AtomicCmpXchgInst::setSyncScopeID(), llvm::sandboxir::AtomicRMWInst::setSyncScopeID(), llvm::sandboxir::FenceInst::setSyncScopeID(), llvm::sandboxir::GlobalValue::setUnnamedAddr(), llvm::sandboxir::CleanupReturnInst::setUnwindDest(), setUsedInitializer(), llvm::sandboxir::AllocaInst::setUsedWithInAlloca(), llvm::RecordVal::setValue(), llvm::sandboxir::GlobalValue::setVisibility(), llvm::sandboxir::AtomicRMWInst::setVolatile(), llvm::sandboxir::LoadInst::setVolatile(), llvm::sandboxir::AtomicCmpXchgInst::setWeak(), setWidenableBranchCond(), shorter_filter(), shouldConvertSelectOfConstantsToMath(), llvm::SelectionDAGBuilder::ShouldEmitAsBranches(), shouldEmitPTXNoReturn(), llvm::NVPTXTargetLowering::shouldExpandAtomicRMWInIR(), llvm::SystemZTTIImpl::shouldExpandReduction(), llvm::NVPTXTargetLowering::shouldInsertFencesForAtomic(), shouldInsertFreeze(), llvm::AArch64TargetLowering::shouldInsertTrailingFenceForAtomicStore(), shouldInstrumentReadWriteFromAddress(), llvm::AMDGPUTargetLowering::shouldReduceLoadWidth(), llvm::HexagonTargetLowering::shouldReduceLoadWidth(), llvm::X86TargetLowering::shouldReduceLoadWidth(), shouldSinkVectorOfPtrs(), shouldSinkVScale(), shouldSpeculateInstrs(), llvm::AArch64TTIImpl::shouldTreatInstructionLikeSelect(), llvm::Attributor::shouldUpdateAA(), shrinkSplatShuffle(), llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::ShuffleVectorInst::ShuffleVectorInst(), simplifyAMDGCNImageIntrinsic(), simplifyAMDGCNMemoryIntrinsicDemanded(), simplifyAndDCEInstruction(), simplifyAndOfICmpsWithAdd(), simplifyBinaryIntrinsic(), llvm::InstCombinerImpl::simplifyBinOpSplats(), simplifyBlends(), simplifyBranchConditionForVFAndUF(), SimplifyCondBranchToCondBranch(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::X86TTIImpl::simplifyDemandedUseBitsIntrinsic(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(), llvm::ARMTTIImpl::simplifyDemandedVectorEltsIntrinsic(), llvm::X86TTIImpl::simplifyDemandedVectorEltsIntrinsic(), simplifyDivRem(), simplifyExtractElementInst(), simplifyFCmpInst(), simplifyFPOp(), simplifyGEPInst(), simplifyICmpInst(), llvm::ScalarEvolution::SimplifyICmpOperands(), simplifyICmpWithBinOp(), simplifyICmpWithDominatingAssume(), simplifyInsertElementInst(), simplifyInstructionWithOperands(), simplifyIntrinsic(), simplifyInvariantGroupIntrinsic(), simplifyIRemMulShl(), simplifyLoopAfterUnroll(), simplifyLoopInst(), simplifyLoopIVs(), llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), simplifyNeonTbl1(), simplifyOrOfICmpsWithAdd(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), simplifyRecipe(), simplifyReductionOperand(), simplifySelectBitTest(), simplifySelectInst(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), simplifySelectWithFCmp(), simplifySelectWithICmpCond(), llvm::TargetLowering::SimplifySetCC(), llvm::InstCombinerImpl::simplifyShrShlDemandedBits(), simplifyShuffleVectorInst(), simplifySuspendPoints(), simplifySwitchOfPowersOfTwo(), simplifyUsingControlFlow(), simplifyWithOpsReplaced(), simplifyX86immShift(), simplifyX86insertps(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pack(), simplifyX86pmadd(), simplifyX86pmulh(), simplifyX86pshufb(), simplifyX86varShift(), simplifyX86vpermilvar(), simplifyX86VPERMMask(), simplifyX86vpermv(), simplifyX86vpermv3(), sink(), sinkAndCmp0Expression(), SinkCast(), sinkCmpExpression(), sinkCommonCodeFromPredecessors(), SinkInstruction(), sinkInstruction(), sinkLastInstruction(), sinkLifetimeStartMarkers(), sinkRecurrenceUsersAfterPrevious(), sinkScalarOperands(), SinkShiftAndTruncate(), llvm::coro::sinkSpillUsesAfterCoroBegin(), llvm::TinyPtrVector< ReachingDef >::size(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), SoleWriteToDeadLocal(), solveDIType(), solveTypeName(), speculatePHINodeLoads(), spillIncomingStatepointValue(), splatPartsI64WithVL(), SplitBlockAndInsertForEachLane(), SplitBlockPredecessorsImpl(), splitCallSite(), llvm::coro::AnyRetconABI::splitCoroutine(), llvm::coro::AsyncABI::splitCoroutine(), splitGlobal(), SplitIndirectBrCriticalEdges(), SplitKnownCriticalEdge(), splitLoopBound(), splitStores(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), SRAGlobal(), llvm::ExecutionEngine::StoreValueToMemory(), StrengthenNoWrapFlags(), stripDebugDeclareImpl(), stripDebugifyMetadata(), stripInactiveLanes(), stripNonLineTableDebugInfo(), llvm::Constant::stripPointerCasts(), StripPointerGEPsAndCasts(), StripSymtab(), llvm::SubsumingPositionIterator::SubsumingPositionIterator(), llvm::sandboxir::BranchInst::successors(), llvm::sandboxir::BranchInst::successors(), supportedAddressingMode(), llvm::CmpInst::swapOperands(), llvm::sandboxir::CmpInst::swapOperands(), llvm::sandboxir::FCmpInst::swapOperands(), llvm::object::symbol_iterator::symbol_iterator(), llvm::InstCombinerImpl::takeLog2(), targetOpKnownBitsMapHelper(), targetParallelCallback(), thinLTOInternalizeModule(), threadBinOpOverPHI(), threadBinOpOverSelect(), threadCmpOverPHI(), threadCmpOverSelect(), llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(), toSpvLifetimeIntrinsic(), transformCallee(), transformGlobalArray(), transformInitializer(), transformRecipestoEVLRecipes(), transformResourcePointers(), translateExtract(), llvm::DbgValueHistoryMap::trimLocationRanges(), trimTrailingZerosInVector(), TryCombineBaseUpdate(), tryCombineFromSVBoolBinOp(), llvm::LegalizationArtifactCombiner::tryCombineInstruction(), tryDemorganOfBooleanCondition(), tryFactorization(), tryFoldHelper(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), tryFormConcatFromShuffle(), llvm::PGOIndirectCallVisitor::tryGetVTableInstruction(), llvm::RISCVDAGToDAGISel::tryIndexedLoad(), tryInsertCastToCommonAddrSpace(), tryInterleave(), TryMatchTrue(), tryMemPairCombine(), tryMergeRange(), llvm::RISCVDAGToDAGISel::tryShrinkShlLogicImm(), llvm::RISCVDAGToDAGISel::trySignedBitfieldExtract(), trySwapVSelectOperands(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), llvm::VPRecipeBuilder::tryToCreateWidenRecipe(), tryToFoldExtendSelectLoad(), tryToFoldExtOfAtomicLoad(), tryToFoldExtOfExtload(), tryToFoldExtOfLoad(), tryToFoldExtOfMaskedLoad(), tryToFoldLiveIns(), tryToImproveAlign(), tryToMatchAndCreateExtendedReduction(), tryToMatchAndCreateMulAccumulateReduction(), tryToMergeLandingPad(), tryToMergePartialOverlappingStores(), tryToRecognizePopCount(), tryToRecognizeTableBasedCttz(), tryToReplaceALMWithWideALM(), tryToShorten(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::JumpThreadingPass::tryToUnfoldSelect(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), tryToVectorizeSequence(), tryToWidenSetCCOperands(), tryUnmergingGEPsAcrossIndirectBr(), tryWidenMaskForShuffle(), tryWidenMaskForShuffle(), turnGuardIntoBranch(), turnSelectIntoBranch(), llvm::BitsRecTy::typeIsConvertibleTo(), llvm::sandboxir::ConstantInt::uge(), unaryOpKnownBitsMapHelper(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::JumpThreadingPass::unfoldSelectInstr(), unifyLoopExits(), unique_dyn_cast(), uniteAccessGroups(), llvm::pdb::InputFile::unknown(), llvm::pdb::InputFile::unknown(), UnrollAndJamLoop(), UnrollLoop(), UnrollRuntimeLoopRemainder(), llvm::SelectionDAG::UnrollVectorOp(), llvm::InstCombinerImpl::unshuffleConstant(), unswitchAllTrivialConditions(), unswitchBestCondition(), unswitchNontrivialInvariants(), llvm::sandboxir::CatchSwitchInst::unwindsToCaller(), llvm::sandboxir::CleanupReturnInst::unwindsToCaller(), unwrapExprVar(), llvm::SPIRVGlobalRegistry::updateAssignType(), updateAsyncFuncPointerContextSize(), updateCallerBFI(), llvm::MemorySSAUpdater::updateForClonedLoop(), updateMemprofMetadata(), UpdatePHINodes(), updatePublicTypeTestCalls(), llvm::JumpThreadingPass::updateSSA(), UpgradeARCRuntime(), upgradeArmOrAarch64IntrinsicFunction(), UpgradeGlobalVariable(), UpgradeIntrinsicCall(), upgradeMaskedCompare(), upgradeMaskedLoad(), upgradeMaskedStore(), upgradeMaskToInt(), UpgradeNVVMAnnotations(), upgradeNVVMFnVectorAttr(), upgradeNVVMIntrinsicCall(), upgradeSingleNVVMAnnotation(), upgradeX86ALIGNIntrinsics(), upgradeX86ConcatShift(), upgradeX86IntrinsicCall(), upgradeX86MultiplyAddBytes(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), upgradeX86Rotate(), useInversedSetcc(), llvm::Instruction::user_back(), llvm::Instruction::user_back(), usersDominator(), validLookupTableConstant(), validShuffleVectorIndex(), llvm::ValueEnumerator::ValueEnumerator(), valueEscapes(), valueIsKnownNeverF32Denorm(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::AssumptionCacheTracker::verifyAnalysis(), llvm::CodeExtractor::verifyAssumptionCache(), llvm::sandboxir::Utils::verifyFunction(), versionCallSiteWithCond(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAllocSite(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::Interpreter::visitBinaryOperator(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitBranchInst(), llvm::InstCombinerImpl::visitCallInst(), llvm::SelectionDAGBuilder::visitDbgInfo(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitExtractValueInst(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitFNeg(), llvm::InstCombinerImpl::visitFPExt(), llvm::InstCombinerImpl::visitFPTrunc(), llvm::InstCombinerImpl::visitGEPOfGEP(), DataScalarizerVisitor::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitICmpInst(), llvm::InstCombinerImpl::visitInsertElementInst(), llvm::Interpreter::visitInsertElementInst(), llvm::InstCombinerImpl::visitLandingPadInst(), DataScalarizerVisitor::visitLoadInst(), llvm::InstCombinerImpl::visitLoadInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::SCEVDivision::visitMulExpr(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitPHINode(), llvm::PtrUseVisitor< ArgUseChecker >::visitPtr(), llvm::LazyCallGraph::visitReferences(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitShuffleVectorInst(), llvm::Interpreter::visitShuffleVectorInst(), llvm::InstCombinerImpl::visitSRem(), DataScalarizerVisitor::visitStoreInst(), llvm::InstCombinerImpl::visitSub(), llvm::SelectionDAGBuilder::visitSwitchCase(), llvm::InstCombinerImpl::visitSwitchInst(), llvm::Interpreter::visitSwitchInst(), llvm::InstCombinerImpl::visitTrunc(), llvm::InstCombinerImpl::visitUDiv(), llvm::Interpreter::visitUnaryOperator(), llvm::MCStreamer::visitUsedExpr(), llvm::VPWidenCallRecipe::VPWidenCallRecipe(), llvm::pdb::VTableLayoutItem::VTableLayoutItem(), whichFPReturnVariant(), llvm::AMDGPUTargetLowering::WidenOrSplitVectorLoad(), llvm::LegalizerHelper::widenScalar(), widenWidenableBranch(), llvm::ScalarEvolution::willNotOverflow(), wouldInstructionBeTriviallyDead(), WriteAsOperandInternal(), WriteConstantInternal(), writeFragment(), llvm::MachObjectWriter::writeObject(), and llvm::MCAssembler::writeSectionData().

◆ cast() [2/4]

template<typename To, typename From>
decltype(auto) llvm::cast ( From & Val)
inlinenodiscard

Definition at line 571 of file Casting.h.

References assert(), llvm::CastInfo< To, From, Enable >::doCast(), and isa().

◆ cast() [3/4]

template<typename To, typename From>
decltype(auto) llvm::cast ( From * Val)
inlinenodiscard

Definition at line 577 of file Casting.h.

References assert(), llvm::CastInfo< To, From, Enable >::doCast(), and isa().

◆ cast() [4/4]

template<typename To, typename From>
decltype(auto) llvm::cast ( std::unique_ptr< From > && Val)
inlinenodiscard

Definition at line 583 of file Casting.h.

References assert(), and isa().

◆ cast_if_present() [1/4]

template<class X, class Y>
auto llvm::cast_if_present ( const Y & Val)
inlinenodiscard

◆ cast_if_present() [2/4]

template<class X, class Y>
auto llvm::cast_if_present ( std::unique_ptr< Y > && Val)
inlinenodiscard

◆ cast_if_present() [3/4]

template<class X, class Y>
auto llvm::cast_if_present ( Y & Val)
inlinenodiscard

◆ cast_if_present() [4/4]

template<class X, class Y>
auto llvm::cast_if_present ( Y * Val)
inlinenodiscard

◆ cast_or_null() [1/4]

template<class X, class Y>
auto llvm::cast_or_null ( const Y & Val)

Definition at line 720 of file Casting.h.

References cast_if_present(), and Y.

Referenced by buildClonedLoopBlocks(), buildClonedLoops(), llvm::VPBlendRecipe::clone(), CloneAndPruneIntoFromInst(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::BasicBlock::convertToNewDbgValues(), llvm::DIBuilder::createClassType(), llvm::sandboxir::Context::createFunction(), llvm::DIBuilder::createGlobalVariableExpression(), createImportedModule(), llvm::DIBuilder::createTempGlobalVariableFwdDecl(), deleteDeadClonedBlocks(), llvm::sandboxir::Function::dumpOS(), llvm::VPWidenCallRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::mdconst::extract_or_null(), llvm::DebugLoc::get(), llvm::DICompositeType::getAnnotations(), llvm::DIDerivedType::getAnnotations(), llvm::DIGlobalVariable::getAnnotations(), llvm::DILocalVariable::getAnnotations(), llvm::AAPotentialConstantValues::getAssumedConstant(), llvm::AAValueConstantRange::getAssumedConstant(), llvm::SelectionDAG::getAtomic(), llvm::DICompositeType::getBaseType(), llvm::DISubrangeType::getBaseType(), llvm::sandboxir::CallBase::getCalledFunction(), llvm::DIDerivedType::getClassType(), llvm::DIDerivedType::getConstant(), llvm::ValueAsMetadata::getConstantIfExists(), llvm::DICommonBlock::getDecl(), llvm::VPValue::getDefiningRecipe(), llvm::VPValue::getDefiningRecipe(), llvm::DIDerivedType::getDiscriminantValue(), llvm::DICompositeType::getElements(), llvm::DIMacroFile::getElements(), llvm::DICompileUnit::getEnumTypes(), llvm::DICommonBlock::getFile(), llvm::DILabel::getFile(), llvm::DIMacroFile::getFile(), llvm::DIObjCProperty::getFile(), llvm::DIScope::getFile(), llvm::DIVariable::getFile(), llvm::DICompileUnit::getGlobalVariables(), llvm::DICompileUnit::getImportedEntities(), llvm::CallBrInst::getIndirectDest(), getKnowledgeForValue(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getLoadVP(), llvm::ValueAsMetadata::getLocalIfExists(), llvm::DICompileUnit::getMacros(), llvm::MemorySSA::getMemoryAccess(), llvm::MemorySSA::getMemoryAccess(), getNewDefiningAccessForClone(), llvm::NamedMDNode::getOperand(), llvm::DIMacroNode::getOperandAs(), llvm::DINode::getOperandAs(), llvm::MemoryDef::getOptimized(), llvm::DICompileUnit::getRetainedTypes(), llvm::DICommonBlock::getScope(), llvm::DILabel::getScope(), llvm::DINamespace::getScope(), llvm::DIType::getScope(), llvm::DIVariable::getScope(), llvm::DICompositeType::getSpecification(), llvm::sandboxir::ConstantVector::getSplatValue(), llvm::DIGlobalVariable::getStaticDataMemberDeclaration(), llvm::DIDerivedType::getStorageOffsetInBits(), llvm::DIStringType::getStringLength(), llvm::DIStringType::getStringLengthExp(), llvm::DIStringType::getStringLocationExp(), llvm::Function::getSubprogram(), llvm::BranchInst::getSuccessor(), llvm::sandboxir::BranchInst::getSuccessor(), llvm::DICompositeType::getTemplateParams(), llvm::DIDerivedType::getTemplateParams(), llvm::DIObjCProperty::getType(), llvm::DITemplateParameter::getType(), llvm::DIVariable::getType(), llvm::DISubroutineType::getTypeArray(), llvm::sandboxir::CatchSwitchInst::getUnwindDest(), llvm::sandboxir::CleanupReturnInst::getUnwindDest(), llvm::DIGlobalVariableExpression::getVariable(), llvm::DIDerivedType::getVBPtrOffset(), llvm::DICompositeType::getVTableHolder(), llvm::TargetLibraryInfoImpl::getWCharSize(), llvm::DIArgList::handleChangedOperand(), llvm::DIBuilder::insertDbgAssign(), llvm::MemorySSAUpdater::insertDef(), llvm::MemorySSAUpdater::insertUse(), llvm::sandboxir::BlockAddress::lookup(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::ValueMapper::mapConstant(), llvm::ValueMapper::mapMDNode(), MergeBlockIntoPredecessor(), mergeBlocksIntoPredecessors(), moveInstructionBefore(), nearest_common_dominator(), llvm::DITypeRefArray::iterator::operator*(), llvm::TypedMDOperandIterator< T >::operator*(), llvm::sandboxir::UserUseIterator::operator++(), llvm::DITypeRefArray::operator[](), llvm::MDTupleTypedArrayWrapper< T >::operator[](), llvm::DebugInfoFinder::processModule(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::MemorySSAUpdater::removeMemoryAccess(), llvm::Instruction::setMetadata(), simplifyBlends(), sinkInstruction(), stripDeadDebugInfoImpl(), llvm::at::trackAssignments(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), llvm::ValueMapCallbackVH< KeyT, ValueT, Config >::Unwrap(), llvm::MemorySSAUpdater::updateForClonedLoop(), llvm::sandboxir::Value::use_begin(), llvm::Value::Value(), and llvm::VPReductionEVLRecipe::VPReductionEVLRecipe().

◆ cast_or_null() [2/4]

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

Definition at line 732 of file Casting.h.

References cast_if_present().

◆ cast_or_null() [3/4]

template<class X, class Y>
auto llvm::cast_or_null ( Y & Val)

Definition at line 724 of file Casting.h.

References cast_if_present(), and Y.

◆ cast_or_null() [4/4]

template<class X, class Y>
auto llvm::cast_or_null ( Y * Val)

Definition at line 728 of file Casting.h.

References cast_if_present(), and Y.

◆ CC_AArch64_AAPCS()

bool llvm::CC_AArch64_AAPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Arm64EC_CFGuard_Check()

bool llvm::CC_AArch64_Arm64EC_CFGuard_Check ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Arm64EC_Thunk()

bool llvm::CC_AArch64_Arm64EC_Thunk ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Arm64EC_Thunk_Native()

bool llvm::CC_AArch64_Arm64EC_Thunk_Native ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Arm64EC_VarArg()

bool llvm::CC_AArch64_Arm64EC_VarArg ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_DarwinPCS()

bool llvm::CC_AArch64_DarwinPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_DarwinPCS_ILP32_VarArg()

bool llvm::CC_AArch64_DarwinPCS_ILP32_VarArg ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_DarwinPCS_VarArg()

bool llvm::CC_AArch64_DarwinPCS_VarArg ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_GHC()

bool llvm::CC_AArch64_GHC ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Preserve_None()

bool llvm::CC_AArch64_Preserve_None ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Win64_CFGuard_Check()

bool llvm::CC_AArch64_Win64_CFGuard_Check ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Win64_VarArg()

bool llvm::CC_AArch64_Win64_VarArg ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_AArch64_Win64PCS()

bool llvm::CC_AArch64_Win64PCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_ARM_AAPCS()

bool llvm::CC_ARM_AAPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_ARM_AAPCS_VFP()

bool llvm::CC_ARM_AAPCS_VFP ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_ARM_APCS()

bool llvm::CC_ARM_APCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_ARM_APCS_GHC()

bool llvm::CC_ARM_APCS_GHC ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_ARM_Win32_CFGuard_Check()

bool llvm::CC_ARM_Win32_CFGuard_Check ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_CSKY_ABIV2_SOFT_64()

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

◆ CC_M68k_Any_AssignToReg()

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

NOTE this function is used to select registers for formal arguments and call FIXME: Handling on pointer arguments is not complete.

Definition at line 38 of file M68kCallingConv.h.

References llvm::M68kCCState::ArgTypeList, llvm::CCValAssign::getReg(), I, No, and Reg.

◆ CC_PPC32_SVR4()

bool llvm::CC_PPC32_SVR4 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_PPC32_SVR4_ByVal()

bool llvm::CC_PPC32_SVR4_ByVal ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_PPC32_SVR4_VarArg()

bool llvm::CC_PPC32_SVR4_VarArg ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_PPC64_ELF()

bool llvm::CC_PPC64_ELF ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_PPC64_ELF_FIS()

bool llvm::CC_PPC64_ELF_FIS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_RISCV()

bool llvm::CC_RISCV ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
CCState & State,
bool IsRet,
Type * OrigTy )

Definition at line 325 of file RISCVCallingConv.cpp.

References llvm::RISCVABI::ABI_ILP32, llvm::RISCVABI::ABI_ILP32D, llvm::RISCVABI::ABI_ILP32E, llvm::RISCVABI::ABI_ILP32F, llvm::RISCVABI::ABI_LP64, llvm::RISCVABI::ABI_LP64D, llvm::RISCVABI::ABI_LP64E, llvm::RISCVABI::ABI_LP64F, allocateRVVReg(), ArgFPR16s, ArgFPR32s, ArgFPR64s, ArgGPRs, assert(), llvm::CCValAssign::BCvt, CC_RISCVAssign2XLen(), llvm::SmallVectorImpl< T >::clear(), DL, llvm::SmallVectorTemplateCommon< T, typename >::empty(), getArgGPR16s(), getArgGPR32s(), llvm::RISCV::getArgGPRs(), llvm::CCValAssign::getCustomMem(), llvm::CCValAssign::getCustomReg(), llvm::MachineFunction::getDataLayout(), llvm::MachineFunction::getFunction(), llvm::CCValAssign::getMem(), llvm::Module::getModuleFlag(), llvm::ISD::ArgFlagsTy::getNonZeroOrigAlign(), llvm::GlobalValue::getParent(), llvm::CCValAssign::getPending(), llvm::CCValAssign::getReg(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getStoreSize(), llvm::MachineFunction::getSubtarget(), llvm::RISCVSubtarget::getTargetABI(), llvm::RISCVSubtarget::getTargetLowering(), llvm::RISCVSubtarget::getXLen(), llvm::RISCVSubtarget::getXLenVT(), llvm::CCValAssign::Indirect, llvm::MVT::isFixedLengthVector(), llvm::MVT::isFloatingPoint(), llvm::ISD::ArgFlagsTy::isNest(), llvm::MVT::isRISCVVectorTuple(), llvm::MVT::isScalableVector(), llvm::MVT::isScalarInteger(), llvm::ISD::ArgFlagsTy::isSplit(), llvm::ISD::ArgFlagsTy::isSplitEnd(), llvm::ISD::ArgFlagsTy::isVarArg(), llvm::MVT::isVector(), llvm_unreachable, llvm::SmallVectorTemplateBase< T, bool >::push_back(), reportFatalUsageError(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::MaybeAlign::valueOrOne().

Referenced by llvm::RISCVTargetLowering::CanLowerReturn(), llvm::RISCVCallLowering::canLowerReturn(), llvm::RISCVTargetLowering::LowerCall(), llvm::RISCVCallLowering::lowerCall(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVCallLowering::lowerFormalArguments(), llvm::RISCVTargetLowering::LowerReturn(), and llvm::RISCVCallLowering::lowerReturn().

◆ CC_RISCV_FastCC()

◆ CC_RISCV_GHC()

◆ CC_SystemZ_Error()

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

Definition at line 165 of file SystemZCallingConv.h.

References llvm_unreachable.

◆ CC_SystemZ_GHC_Error()

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

Definition at line 170 of file SystemZCallingConv.h.

References report_fatal_error().

◆ CC_SystemZ_I128Indirect()

◆ CC_X86()

bool llvm::CC_X86 ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ CC_XPLINK64_Allocate128BitVararg()

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

◆ CC_XPLINK64_Pointer()

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

Definition at line 89 of file SystemZCallingConv.h.

References llvm::CCValAssign::ZExt.

◆ CC_XPLINK64_Shadow_Reg()

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

◆ ceilDiv()

Definition at line 371 of file DynamicAPInt.h.

Referenced by llvm::DynamicAPInt::ceilDiv.

◆ 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 161 of file Format.h.

References llvm::FormattedString::JustifyCenter.

◆ cgdata_category()

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

Definition at line 91 of file CodeGenData.cpp.

Referenced by make_error_code().

◆ changeToCall()

◆ changeToInvokeAndSplitBasicBlock()

◆ changeToUnreachable()

◆ CheckAssert()

◆ CheckBFIUnknownBlockQueries()

cl::opt< bool > llvm::CheckBFIUnknownBlockQueries ( "check-bfi-unknown-block-queries" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Check if block frequency is queried for an unknown block " "for debugging missed BFI updates")  )

◆ CheckBitcodeOutputToConsole()

bool llvm::CheckBitcodeOutputToConsole ( raw_ostream & stream_to_check)

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

Definition at line 18 of file SystemUtils.cpp.

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

◆ checkConvertToNonDenormSingle()

bool llvm::checkConvertToNonDenormSingle ( APFloat & ArgAPFloat)

◆ checkDebugInfoMetadata()

bool llvm::checkDebugInfoMetadata ( Module & M,
iterator_range< Module::iterator > Functions,
DebugInfoPerPass & DebugInfoBeforePass,
StringRef Banner,
StringRef NameOfWrappedPass,
StringRef OrigDIVerifyBugsReportFilePath )

Check original debug information after a pass.

Parameters
MThe module to collect debug information from.
FunctionsA range of functions to collect debug information from.
DebugInfoBeforePassDI metadata before a pass.
BannerA prefix string to add to debug/error messages.
NameOfWrappedPassA name of a pass to add to debug/error messages.

Definition at line 610 of file Debugify.cpp.

References cast(), checkFunctions(), checkInstructions(), checkVars(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::count(), dbgs(), DebugInfoPerPass::DIFunctions, DebugInfoPerPass::DILocations, DebugInfoPerPass::DIVariables, dyn_cast(), llvm::json::Array::empty(), llvm::StringRef::empty(), F, filterDbgVars(), getFilename(), llvm::DebugLoc::getUnknown(), hasLoc(), I, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), DebugInfoPerPass::InstToDelete, isa(), LLVM_DEBUG, and writeJSON().

Referenced by llvm::DebugifyEachInstrumentation::registerCallbacks(), and NewPMCheckDebugifyPass::run().

◆ checkedAdd()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > llvm::checkedAdd ( T LHS,
T RHS )

Add two signed integers LHS and RHS.

Returns
Optional of sum if no signed overflow occurred, std::nullopt otherwise.

Definition at line 46 of file CheckedArithmetic.h.

References LHS, RHS, llvm::APInt::sadd_ov(), and T.

Referenced by checkedMulAdd(), and llvm::InterleaveGroup< InstTy >::insertMember().

◆ checkedAddUnsigned()

template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, std::optional< T > > llvm::checkedAddUnsigned ( T LHS,
T RHS )

Add two unsigned integers LHS and RHS.

Returns
Optional of sum if no unsigned overflow occurred, std::nullopt otherwise.

Definition at line 85 of file CheckedArithmetic.h.

References LHS, RHS, T, and llvm::APInt::uadd_ov().

Referenced by checkedMulAddUnsigned().

◆ checkedMul()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > llvm::checkedMul ( T LHS,
T RHS )

Multiply two signed integers LHS and RHS.

Returns
Optional of product if no signed overflow occurred, std::nullopt otherwise.

Definition at line 64 of file CheckedArithmetic.h.

References LHS, RHS, llvm::APInt::smul_ov(), and T.

Referenced by checkedMulAdd().

◆ checkedMulAdd()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > 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, std::nullopt otherwise.

Definition at line 73 of file CheckedArithmetic.h.

References A(), B(), llvm::CallingConv::C, checkedAdd(), checkedMul(), and T.

◆ checkedMulAddUnsigned()

template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, std::optional< T > > 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, std::nullopt otherwise.

Definition at line 103 of file CheckedArithmetic.h.

References A(), B(), llvm::CallingConv::C, checkedAddUnsigned(), checkedMulUnsigned(), and T.

◆ checkedMulUnsigned()

template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, std::optional< T > > llvm::checkedMulUnsigned ( T LHS,
T RHS )

Multiply two unsigned integers LHS and RHS.

Returns
Optional of product if no unsigned overflow occurred, std::nullopt otherwise.

Definition at line 94 of file CheckedArithmetic.h.

References LHS, RHS, T, and llvm::APInt::umul_ov().

Referenced by checkedMulAddUnsigned(), llvm::AllocaInst::getAllocationSize(), and llvm::AllocaInst::getAllocationSizeInBits().

◆ checkedSub()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, std::optional< T > > llvm::checkedSub ( T LHS,
T RHS )

Subtract two signed integers LHS and RHS.

Returns
Optional of sum if no signed overflow occurred, std::nullopt otherwise.

Definition at line 55 of file CheckedArithmetic.h.

References LHS, RHS, llvm::APInt::ssub_ov(), and T.

Referenced by llvm::InterleaveGroup< InstTy >::insertMember().

◆ checkForCycles() [1/2]

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

Definition at line 14270 of file SelectionDAG.cpp.

References assert(), checkForCyclesHelper(), and N.

◆ checkForCycles() [2/2]

◆ checkGEPType()

Type * llvm::checkGEPType ( Type * Ty)
inline

Definition at line 941 of file Instructions.h.

References assert(), checkGEPType(), and inline.

Referenced by checkGEPType().

◆ checkIfAlreadyInstrumented()

◆ checkVOPDRegConstraints()

◆ children()

◆ children_edges()

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

Definition at line 163 of file GraphTraits.h.

References G, and make_range().

◆ clampStateAndIndicateChange()

template<typename StateType>
ChangeStatus llvm::clampStateAndIndicateChange ( StateType & S,
const StateType & R )

Helper function to clamp a state S of type StateType with the information in R and indicate/return if S did change (as-in update is required to be run again).

Definition at line 3505 of file Attributor.h.

References CHANGED, and UNCHANGED.

Referenced by clampStateAndIndicateChange< DerefState >().

◆ clampStateAndIndicateChange< DerefState >()

◆ 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 23 of file EHPersonalities.cpp.

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

Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::CodeViewDebug::beginFunctionImpl(), CanInlineCallSite(), canSimplifyInvokeNoUnwind(), llvm::LoopSafetyInfo::computeBlockColors(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), llvm::AArch64PrologueEmitter::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::ARMException::endFunction(), llvm::WinException::endFunction(), findUnwindDestinations(), getEHScopeMembership(), llvm::X86TargetLowering::getExceptionPointerRegister(), llvm::X86TargetLowering::getExceptionSelectorRegister(), getSEHRegistrationNodeSize(), isGuaranteedToTransferExecutionToSuccessor(), isUsingScopeBasedEH(), needFuncLabels(), llvm::EscapeEnumerator::Next(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreWinEHStackPointersInParent(), llvm::StackProtectorPass::run(), llvm::StackProtector::runOnFunction(), llvm::FunctionLoweringInfo::set(), llvm::TargetLoweringObjectFileXCOFF::ShouldEmitEHBlock(), and llvm::InstCombinerImpl::visitLandingPadInst().

◆ cleanUpTempFiles()

std::error_code llvm::cleanUpTempFiles ( ArrayRef< std::string > FileName)

◆ clearAnnotationCache()

void llvm::clearAnnotationCache ( const Module * Mod)

Definition at line 52 of file NVPTXUtilities.cpp.

References Mod.

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

◆ cloneAndAdaptNoAliasScopes() [1/2]

void llvm::cloneAndAdaptNoAliasScopes ( ArrayRef< MDNode * > NoAliasDeclScopes,
ArrayRef< BasicBlock * > NewBlocks,
LLVMContext & Context,
StringRef Ext )

Clone the specified noalias decl scopes.

Then adapt all instructions in the NewBlocks basicblocks to the cloned versions. 'Ext' will be added to the duplicate scope names.

Definition at line 1208 of file CloneFunction.cpp.

References adaptNoAliasScopes(), cloneNoAliasScopes(), dbgs(), llvm::ArrayRef< T >::empty(), I, LLVM_DEBUG, and llvm::ArrayRef< T >::size().

Referenced by cloneLoopBlocks(), and UnrollLoop().

◆ cloneAndAdaptNoAliasScopes() [2/2]

void llvm::cloneAndAdaptNoAliasScopes ( ArrayRef< MDNode * > NoAliasDeclScopes,
Instruction * IStart,
Instruction * IEnd,
LLVMContext & Context,
StringRef Ext )

Clone the specified noalias decl scopes.

Then adapt all instructions in the [IStart, IEnd] (IEnd included !) range to the cloned versions. 'Ext' will be added to the duplicate scope names.

Definition at line 1225 of file CloneFunction.cpp.

References adaptNoAliasScopes(), assert(), cloneNoAliasScopes(), dbgs(), llvm::ArrayRef< T >::empty(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, LLVM_DEBUG, make_range(), and llvm::ArrayRef< T >::size().

◆ CloneAndPruneFunctionInto()

void llvm::CloneAndPruneFunctionInto ( Function * NewFunc,
const Function * OldFunc,
ValueToValueMapTy & VMap,
bool ModuleLevelChanges,
SmallVectorImpl< ReturnInst * > & Returns,
const char * NameSuffix = "",
ClonedCodeInfo * CodeInfo = 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 988 of file CloneFunction.cpp.

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

Referenced by InlineFunctionImpl().

◆ 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 705 of file CloneFunction.cpp.

References append_range(), llvm::Function::args(), assert(), llvm::BasicBlock::begin(), cast(), cast_or_null(), ConstantFoldTerminator(), llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::ValueMap< KeyT, ValueT, Config >::count(), DeleteDeadBlocks(), DL, dyn_cast(), dyn_cast_or_null(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::Function::end(), llvm::BasicBlock::eraseFromParent(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::front(), llvm::PoisonValue::get(), llvm::Function::getAttributes(), llvm::Function::getDataLayout(), llvm::Function::getEntryBlock(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::PHINode::getNumIncomingValues(), getParent(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Function::getReturnType(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::BasicBlock::hasAddressTaken(), I, II, llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), llvm::BranchInst::isConditional(), isInstructionTriviallyDead(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), make_range(), MapValue(), llvm::BasicBlock::moveBefore(), llvm::SmallVectorImpl< T >::pop_back_val(), pred_size(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RemapDbgRecordRange(), RemapInstruction(), llvm::PHINode::removeIncomingValue(), llvm::Function::removeRetAttrs(), llvm::Value::replaceAllUsesWith(), RF_NoModuleLevelChanges, RF_None, llvm::Function::setAttributes(), llvm::PHINode::setIncomingBlock(), llvm::PHINode::setIncomingValue(), simplifyInstruction(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and successors().

Referenced by CloneAndPruneFunctionInto().

◆ CloneBasicBlock()

BasicBlock * llvm::CloneBasicBlock ( const BasicBlock * BB,
ValueToValueMapTy & VMap,
const Twine & NameSuffix = "",
Function * F = nullptr,
ClonedCodeInfo * CodeInfo = nullptr,
bool MapAtoms = true )

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.

MapAtoms indicates whether source location atoms should be mapped for later remapping. Must be true when you duplicate a code path and a source location is intended to appear twice in the generated instructions. Can be set to false if you are transplanting code from one place to another. Setting true (default) is always safe (won't produce incorrect debug info) but is sometimes unnecessary, causing extra work that could be avoided by setting the parameter to false.

Definition at line 113 of file CloneFunction.cpp.

References llvm::Instruction::cloneDebugInfoFrom(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::ClonedCodeInfo::ContainsMemProfMetadata, llvm::BasicBlock::Create(), DL, dyn_cast(), llvm::BasicBlock::end(), F, llvm::BasicBlock::getContext(), llvm::Instruction::getDebugLoc(), llvm::Value::getName(), llvm::Value::hasName(), I, llvm::Instruction::insertBefore(), isa(), mapAtomInstance(), and llvm::Value::setName().

Referenced by buildClonedLoopBlocks(), CloneFunctionBodyInto(), 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.

Precondition
VMap contains no non-identity GlobalValue mappings.

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 373 of file CloneFunction.cpp.

References llvm::Function::arg_begin(), CloneFunctionInto(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::Function::Create(), F, llvm::FunctionType::get(), I, LocalChangesOnly, and llvm::Value::setName().

Referenced by cloneCandidateFunction(), createFunctionClones(), and replaceAliasWithAliasee().

◆ CloneFunctionAttributesInto()

◆ CloneFunctionBodyInto()

void llvm::CloneFunctionBodyInto ( Function & NewFunc,
const Function & OldFunc,
ValueToValueMapTy & VMap,
RemapFlags RemapFlag,
SmallVectorImpl< ReturnInst * > & Returns,
const char * NameSuffix = "",
ClonedCodeInfo * CodeInfo = nullptr,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = nullptr )

◆ CloneFunctionInto()

void llvm::CloneFunctionInto ( Function * NewFunc,
const Function * OldFunc,
ValueToValueMapTy & VMap,
CloneFunctionChangeType Changes,
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 Changes is CloneFunctionChangeType::LocalChangesOnly, VMap is required to contain no non-identity GlobalValue mappings. Otherwise, referenced metadata will be cloned.

If Changes is less than CloneFunctionChangeType::DifferentModule indicating cloning into the same module (even if it's LocalChangesOnly), if debug info metadata transitively references a DISubprogram, it will be cloned, effectively upgrading Changes to GlobalChanges while suppressing cloning of types and compile units.

If Changes is CloneFunctionChangeType::DifferentModule, the new module's !llvm.dbg.cu will get updated with any newly created compile units. (CloneFunctionChangeType::ClonedModule leaves that work for the caller.)

FIXME: Consider simplifying this function by splitting out CloneFunctionMetadataInto() and expecting / updating callers to call it first when / how it's needed.

Definition at line 281 of file CloneFunction.cpp.

References llvm::Function::args(), assert(), CloneFunctionAttributesInto(), CloneFunctionBodyInto(), CloneFunctionMetadataInto(), llvm::DebugInfoFinder::compile_units(), llvm::ValueMap< KeyT, ValueT, Config >::count(), DifferentModule, from_range, llvm::Module::getOrInsertNamedMetadata(), llvm::GlobalValue::getParent(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GlobalValue::isDeclaration(), LocalChangesOnly, MapMetadata(), and RF_None.

Referenced by CloneFunction(), CloneModule(), llvm::coro::BaseCloner::create(), and llvm::Attributor::internalizeFunctions().

◆ CloneFunctionMetadataInto()

void llvm::CloneFunctionMetadataInto ( Function & NewFunc,
const Function & OldFunc,
ValueToValueMapTy & VMap,
RemapFlags RemapFlag,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = nullptr )

Clone OldFunc's metadata into NewFunc.

The caller is expected to populate VMap beforehand and set an appropriate RemapFlag. Subprograms/CUs/types that were already mapped to themselves won't be duplicated.

NOTE: This function doesn't clone !llvm.dbg.cu when cloning into a different module. Use CloneFunctionInto for that behavior.

Definition at line 208 of file CloneFunction.cpp.

References llvm::GlobalObject::addMetadata(), llvm::GlobalObject::getAllMetadata(), and MapMetadata().

Referenced by CloneFunctionInto().

◆ cloneLoop()

Loop * llvm::cloneLoop ( Loop * L,
Loop * PL,
ValueToValueMapTy & VM,
LoopInfo * LI,
LPPassManager * LPM )

Recursively clone the specified loop and all of its children, mapping the blocks with the specified map.

Definition at line 1941 of file LoopUtils.cpp.

References llvm::LPPassManager::addLoop(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), cast(), cloneLoop(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and I.

Referenced by cloneLoop(), and cloneLoopBlocks().

◆ cloneLoopWithPreheader()

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

Clones a loop OrigLoop.

Returns the loop and the blocks in Blocks.

Updates LoopInfo and DominatorTree assuming the loop is dominated by block LoopDomBB. Insert the new blocks before block specified in Before. Note: Only innermost loops are supported.

Returns the loop and the blocks in Blocks.

Updates LoopInfo and DominatorTree assuming the loop is dominated by block LoopDomBB. Insert the new blocks before block specified in Before.

Definition at line 1015 of file CloneFunction.cpp.

References llvm::LoopBase< BlockT, LoopT >::addBasicBlockToLoop(), llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), assert(), cast(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneBasicBlock(), F, llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::LoopBase< BlockT, LoopT >::getLoopsInPreorder(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getParent(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by splitLoopBound(), and llvm::LoopVersioning::versionLoop().

◆ 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.

Cloning un-materialized modules is not currently supported, so any modules initialized via lazy loading should be materialized before cloning

Definition at line 40 of file CloneModule.cpp.

References CloneModule().

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

◆ CloneModule() [2/3]

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

Definition at line 47 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 )

◆ cloneNoAliasScopes()

void llvm::cloneNoAliasScopes ( ArrayRef< MDNode * > NoAliasDeclScopes,
DenseMap< MDNode *, MDNode * > & ClonedScopes,
StringRef Ext,
LLVMContext & Context )

Duplicate the specified list of noalias decl scopes.

The 'Ext' string is added as an extension to the name. Afterwards, the ClonedScopes contains the mapping of the original scope MDNode onto the cloned scope. Be aware that the cloned scopes are still part of the original scope domain.

Definition at line 1149 of file CloneFunction.cpp.

References llvm::MDBuilder::createAnonymousAliasScope(), dyn_cast(), llvm::AliasScopeNode::getDomain(), llvm::AliasScopeNode::getName(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert().

Referenced by cloneAndAdaptNoAliasScopes(), cloneAndAdaptNoAliasScopes(), and llvm::JumpThreadingPass::cloneInstructions().

◆ collectChildrenInLoop()

SmallVector< BasicBlock *, 16 > llvm::collectChildrenInLoop ( DominatorTree * DT,
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 basic blocks includes the starting point.

Definition at line 450 of file LoopUtils.cpp.

References llvm::DomTreeNodeBase< NodeT >::children(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), I, N, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by sinkRegion().

◆ collectCmpOps()

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

◆ collectDebugInfoMetadata()

bool llvm::collectDebugInfoMetadata ( Module & M,
iterator_range< Module::iterator > Functions,
DebugInfoPerPass & DebugInfoBeforePass,
StringRef Banner,
StringRef NameOfWrappedPass )

Collect original debug information before a pass.

Parameters
MThe module to collect debug information from.
FunctionsA range of functions to collect debug information from.
DebugInfoBeforePassDI metadata before a pass.
BannerA prefix string to add to debug/error messages.
NameOfWrappedPassA name of a pass to add to debug/error messages.

Definition at line 365 of file Debugify.cpp.

References llvm::MapVector< KeyT, ValueT, MapType, VectorType >::count(), dbgs(), DebugInfoPerPass::DIFunctions, DebugInfoPerPass::DILocations, DebugInfoPerPass::DIVariables, dyn_cast(), F, filterDbgVars(), hasLoc(), I, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), DebugInfoPerPass::InstToDelete, isa(), LLVM_DEBUG, and llvm::MapVector< KeyT, ValueT, MapType, VectorType >::size().

Referenced by applyDebugify(), applyDebugify(), and NewPMDebugifyPass::run().

◆ collectEphemeralRecipesForVPlan()

◆ collectGlobalObjectNameStrings()

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

Given a vector of strings (names of global objects like functions or, virtual tables) NameStrs, the method generates a combined string Result that is ready to be serialized.

The Result string is comprised of three fields: The first field is the length 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 714 of file InstrProf.cpp.

References arrayRefFromStringRef(), assert(), llvm::ArrayRef< T >::begin(), llvm::compression::zlib::BestSizeCompression, llvm::compression::zlib::compress(), count(), llvm::ArrayRef< T >::empty(), encodeULEB128(), llvm::ArrayRef< T >::end(), getInstrProfNameSeparator(), join(), P, llvm::ArrayRef< T >::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::Error::success(), and toStringRef().

Referenced by collectPGOFuncNameStrings(), and collectVTableStrings().

◆ collectParametricTerms()

void llvm::collectParametricTerms ( ScalarEvolution & SE,
const SCEV * Expr,
SmallVectorImpl< const SCEV * > & Terms )

Collect parametric terms occurring in step expressions (first step of delinearization).

Find parametric terms in this SCEVAddRecExpr.

We first for parameters in two places: 1) The strides of AddRec expressions. 2) Unknowns that are multiplied with AddRec expressions.

Definition at line 176 of file Delinearization.cpp.

References dbgs(), llvm::raw_ostream::indent(), LLVM_DEBUG, T, and visitAll().

Referenced by delinearize().

◆ collectPGOFuncNameStrings()

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. The global variable element in 'NameVars' is a string containing the pgo name of a function. See createPGOFuncNameVar that creates these global variables.

Definition at line 759 of file InstrProf.cpp.

References collectGlobalObjectNameStrings(), getPGOFuncNameVarInitializer(), and llvm::compression::zlib::isAvailable().

◆ collectUsedGlobalVariables()

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

◆ collectVTableStrings()

Error llvm::collectVTableStrings ( ArrayRef< GlobalVariable * > VTables,
std::string & Result,
bool doCompression )

◆ colorEHFunclets()

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

If an EH funclet personality is in use (see isFuncletEHPersonality), this will recompute which blocks are in which funclet.

It is possible that some blocks are in multiple funclets. Consider this analysis to be expensive.

Definition at line 113 of file EHPersonalities.cpp.

References cast(), dbgs(), DEBUG_WITH_TYPE, dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, llvm::BasicBlock::getFirstNonPHIIt(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), is_contained(), isa(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::TinyPtrVector< EltTy >::push_back(), and successors().

Referenced by calculateStateNumbersForInvokes(), and llvm::LoopSafetyInfo::computeBlockColors().

◆ combineAAMetadata()

void llvm::combineAAMetadata ( Instruction * K,
const Instruction * J )

Combine metadata of two instructions, where instruction J is a memory access that has been merged into K.

This will intersect alias-analysis metadata, while preserving other known metadata.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3086 of file Local.cpp.

References combineMetadata().

◆ combineLostFractions()

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

Definition at line 709 of file APFloat.cpp.

References lfExactlyHalf, lfExactlyZero, lfLessThanHalf, and lfMoreThanHalf.

◆ combineMetadataForCSE()

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

Combine the metadata of two instructions so that K can replace J.

This specifically handles the case of CSE-like transformations. Some metadata can only be kept if K dominates J. For this to be correct, K cannot be hoisted.

Unknown metadata is removed.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3081 of file Local.cpp.

References combineMetadata().

Referenced by llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), patchReplacementInstruction(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), sinkLastInstruction(), and llvm::InstCombinerImpl::visitLoadInst().

◆ commonAlignment()

Align llvm::commonAlignment ( Align A,
uint64_t Offset )
inline

Returns the alignment that satisfies both alignments.

Same semantic as MinAlign.

Definition at line 212 of file Alignment.h.

References A(), MinAlign(), and Offset.

Referenced by llvm::SITargetLowering::allocatePreloadKernArgSGPRs(), llvm::SIRegisterInfo::buildSpillLoadStore(), combineExtractFromVectorLoad(), computeAlignmentAfterScalarization(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFrameInfo::CreateFixedSpillStackObject(), createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), expandf64Toi32(), getAdjustedAlignment(), llvm::MachineMemOperand::getAlign(), llvm::MachineFunction::getMachineMemOperand(), getMemcpyLoadsAndStores(), llvm::X86TTIImpl::getMemoryOpCost(), getParamsForOneTrueMaskedElt(), llvm::AMDGPULegalizerInfo::getSegmentAperture(), inferAlignFromPtrInfo(), inferAlignment(), llvm::SelectionDAG::InferPtrAlign(), llvm::CallLowering::insertSRetLoads(), llvm::CallLowering::insertSRetStores(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), LowerF128Load(), LowerF128Store(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), lowerKernelArguments(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformVMOVRRDCombine(), llvm::TargetLowering::scalarizeExtractedVectorLoad(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedLoad(), scalarizeMaskedStore(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm(), llvm::TargetLowering::SimplifySetCC(), splitMergedValStore(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), SRAGlobal(), unpackLoadToAggregate(), and unpackStoreToAggregate().

◆ compareLoops()

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

Definition at line 679 of file GenericLoopInfoImpl.h.

References assert(), and H.

Referenced by llvm::LoopInfoBase< BlockT, LoopT >::verify().

◆ compareTypes()

bool llvm::compareTypes ( ArrayRef< wasm::ValType > TypesA,
ArrayRef< wasm::ValType > TypesB )
static

Definition at line 334 of file WebAssemblyAsmTypeCheck.cpp.

References I, and llvm::ArrayRef< T >::size().

◆ CompareVars()

◆ compareVectors()

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

Definition at line 662 of file GenericLoopInfoImpl.h.

References sort().

◆ CompleteNodeLabelString()

template<typename BasicBlockT>
std::string llvm::CompleteNodeLabelString ( const BasicBlockT * Node,
function_ref< void(raw_string_ostream &, const BasicBlockT &)> HandleBasicBlock,
function_ref< void(std::string &, unsigned &, unsigned)> HandleComment )

Definition at line 142 of file CFGPrinter.h.

◆ computeAccessFunctions()

void llvm::computeAccessFunctions ( ScalarEvolution & SE,
const SCEV * Expr,
SmallVectorImpl< const SCEV * > & Subscripts,
SmallVectorImpl< const SCEV * > & Sizes )

◆ computeAllocationSizeForSections()

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

Definition at line 463 of file RuntimeDyld.cpp.

References alignTo().

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

◆ computeAndAddLiveIns()

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

Convenience function combining computeLiveIns() and addLiveIns().

Definition at line 345 of file LivePhysRegs.cpp.

References addLiveIns(), computeLiveIns(), and MBB.

Referenced by recomputeLiveIns(), and llvm::ARMBlockPlacement::revertWhileToDoLoop().

◆ computeArchiveRelativePath()

◆ ComputeASanStackFrameDescription()

◆ ComputeASanStackFrameLayout()

◆ computeConstantRange()

◆ computeConstantRangeIncludingKnownBits()

◆ ComputeCrossModuleImport()

void llvm::ComputeCrossModuleImport ( const ModuleSummaryIndex & Index,
const DenseMap< StringRef, GVSummaryMapTy > & ModuleToDefinedGVSummaries,
function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing,
FunctionImporter::ImportListsTy & ImportLists,
DenseMap< StringRef, 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.

isPrevailing is a callback that will be called with a global value's GUID and summary and should return whether the module corresponding to the summary contains the linker-prevailing copy of that value.

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.

The module identifier strings that are the keys of the above two maps are owned by the in-memory ModuleSummaryIndex the importing decisions are made from (the module path for each summary is owned by the index's module path string table).

Definition at line 1218 of file FunctionImport.cpp.

References assert(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::begin(), cast(), checkVariableImport(), collectImportStatistics(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), ModuleImportsManager::create(), dbgs(), dyn_cast(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::end(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert_range(), LLVM_DEBUG, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), make_first_range(), numGlobalVarSummaries(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::FunctionImporter::ImportListsTy::size(), llvm::StringRef::size(), and Stats.

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

◆ computeDeadSymbolsAndUpdateIndirectCalls()

void llvm::computeDeadSymbolsAndUpdateIndirectCalls ( 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.

Non-prevailing symbols are symbols without a prevailing copy anywhere in IR and are normally dead, isPrevailing predicate returns status of symbol. Also update call edges for indirect calls to local functions added from SamplePGO when needed.

Definition at line 1433 of file FunctionImport.cpp.

References any_of(), assert(), llvm::GlobalValue::AvailableExternallyLinkage, Call, ComputeDead, dbgs(), dyn_cast(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::GlobalValue::isInterposableLinkage(), llvm::GlobalValue::LinkOnceODRLinkage, LLVM_DEBUG, No, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Ref, report_fatal_error(), llvm::SmallVectorImpl< T >::reserve(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::size(), updateIndirectCalls(), updateValueInfoForIndirectCalls(), visit(), and llvm::GlobalValue::WeakODRLinkage.

Referenced by computeDeadSymbolsWithConstProp().

◆ 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 1549 of file FunctionImport.cpp.

References computeDeadSymbolsAndUpdateIndirectCalls().

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

◆ computeDelta()

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 )

Definition at line 106 of file edit_distance.h.

References ComputeMappedEditDistance(), T, and X.

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

◆ computeEHOnlyBlocks()

◆ computeExpressionSize()

unsigned short llvm::computeExpressionSize ( ArrayRef< const SCEV * > Args)
inline

◆ computeFunctionBodyMemoryAccess()

MemoryEffects llvm::computeFunctionBodyMemoryAccess ( Function & F,
AAResults & AAR )

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

Definition at line 267 of file FunctionAttrs.cpp.

References checkFunctionMemoryAccess(), and F.

◆ computeKnownBits() [1/6]

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

Returns the known bits rather than passing by reference.

Definition at line 165 of file ValueTracking.cpp.

References computeKnownBits(), Depth, DL, and safeCxtI().

◆ computeKnownBits() [2/6]

KnownBits llvm::computeKnownBits ( const Value * V,
const APInt & DemandedElts,
const SimplifyQuery & Q,
unsigned Depth = 0 )

Determine which bits of V are known to be either zero or one and return them.

Definition at line 2190 of file ValueTracking.cpp.

References computeKnownBits(), Depth, llvm::SimplifyQuery::DL, and getBitWidth().

◆ computeKnownBits() [3/6]

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

Returns the known bits rather than passing by reference.

Definition at line 157 of file ValueTracking.cpp.

References computeKnownBits(), Depth, DL, and safeCxtI().

◆ computeKnownBits() [4/6]

KnownBits llvm::computeKnownBits ( const Value * V,
const SimplifyQuery & Q,
unsigned Depth = 0 )

Determine which bits of V are known to be either zero or one and return them.

Definition at line 2199 of file ValueTracking.cpp.

References computeKnownBits(), Depth, llvm::SimplifyQuery::DL, and getBitWidth().

◆ computeKnownBits() [5/6]

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

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 148 of file ValueTracking.cpp.

References computeKnownBits(), Depth, DL, and safeCxtI().

Referenced by canEvaluateTruncated(), computeKnownBits(), computeKnownBits(), computeKnownBits(), computeKnownBits(), computeKnownBits(), computeKnownBits(), computeKnownBits(), llvm::InstCombiner::computeKnownBits(), llvm::InstCombiner::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsForHorizontalOperation(), computeKnownBitsFromOperator(), computeKnownBitsFromShiftOperator(), computeKnownBitsMul(), computeKnownFPClass(), ComputeNumSignBitsImpl(), computeOverflowForSignedMul(), computeOverflowForUnsignedMul(), computeRecurrenceType(), eliminateDeadSwitchCases(), llvm::InstCombinerImpl::foldAddWithConstant(), foldCtpopPow2Test(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldSwitchToSelect(), llvm::X86TTIImpl::getIntImmCostInst(), getKnownBitsFromAndXorOr(), getKnownSign(), getOrEnforceKnownAlignment(), getSign32(), inferAlignment(), llvm::SelectionDAG::InferPtrAlign(), llvm::GCNTTIImpl::isAlwaysUniform(), isDivZero(), isKnownNegative(), isKnownNonEqual(), isKnownNonNegative(), isKnownNonZeroFromOperator(), isKnownPositive(), isKnownToBeAPowerOfTwo(), isMultipleOfN(), isNonZeroAdd(), isNonZeroMul(), isNonZeroShift(), isPtrKnownNeverNull(), isZero(), MaskedValueIsZero(), llvm::GCNTTIImpl::rewriteIntrinsicWithAddressSpace(), setShiftFlags(), simplifyAndInst(), simplifyBinaryIntrinsic(), llvm::InstCombinerImpl::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyDiv(), simplifyDivRem(), simplifyICmpWithBinOpOnLHS(), simplifyICmpWithZero(), simplifyLShrInst(), llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits(), simplifyRightShift(), simplifyShift(), simplifySubInst(), simplifyX86immShift(), simplifyX86varShift(), tryNarrowMathIfNoOverflow(), and llvm::InstCombinerImpl::visitSub().

◆ computeKnownBits() [6/6]

void llvm::computeKnownBits ( const Value * V,
KnownBits & Known,
const SimplifyQuery & Q,
unsigned Depth = 0 )

Definition at line 137 of file ValueTracking.cpp.

References computeKnownBits(), Depth, dyn_cast(), and llvm::APInt::getAllOnes().

◆ computeKnownBitsFromContext()

◆ computeKnownBitsFromRangeMetadata()

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

Compute known bits from the range metadata.

KnownZero the set of bits that are known to be zero KnownOne the set of bits that are known to be one

Definition at line 438 of file ValueTracking.cpp.

References assert(), BitWidth, llvm::mdconst::extract(), llvm::KnownBits::getBitWidth(), llvm::APInt::getHighBitsSet(), Lower, llvm::KnownBits::One, Range, llvm::APInt::setAllBits(), Upper, and llvm::KnownBits::Zero.

Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), and llvm::GISelValueTracking::computeKnownBitsImpl().

◆ computeKnownFPClass() [1/5]

KnownFPClass llvm::computeKnownFPClass ( const Value * V,
const APInt & DemandedElts,
FastMathFlags FMF,
FPClassTest InterestedClasses,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Wrapper to account for known fast math flags at the use instruction.

Definition at line 5922 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, fcInf, fcNan, llvm::FastMathFlags::noInfs(), and llvm::FastMathFlags::noNaNs().

◆ computeKnownFPClass() [2/5]

KnownFPClass llvm::computeKnownFPClass ( const Value * V,
const APInt & DemandedElts,
FPClassTest InterestedClasses,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Determine which floating-point classes are valid for V, and return them in KnownFPClass bit sets.

This function is defined on values with floating-point type, values vectors of floating-point type, and arrays of floating-point type. InterestedClasses is a compile time optimization hint for which floating point classes should be queried. Queries not specified in InterestedClasses should be reliable if they are determined during the query.

Definition at line 5892 of file ValueTracking.cpp.

References computeKnownFPClass(), and Depth.

Referenced by cannotBeNegativeZero(), cannotBeOrderedLessThanZero(), computeKnownBitsFromOperator(), computeKnownFPClass(), computeKnownFPClass(), computeKnownFPClass(), computeKnownFPClass(), computeKnownFPClass(), computeKnownFPClass(), computeKnownFPClass(), llvm::InstCombinerImpl::computeKnownFPClass(), llvm::InstCombinerImpl::computeKnownFPClass(), computeKnownFPClassForFPTrunc(), computeKnownFPSignBit(), foldFPtoI(), isKnownNeverInfinity(), isKnownNeverInfOrNaN(), isKnownNeverNaN(), simplifyFCmpInst(), and simplifyFMAFMul().

◆ computeKnownFPClass() [3/5]

KnownFPClass llvm::computeKnownFPClass ( const Value * V,
const DataLayout & DL,
FPClassTest InterestedClasses = fcAllFlags,
const TargetLibraryInfo * TLI = nullptr,
AssumptionCache * AC = nullptr,
const Instruction * CxtI = nullptr,
const DominatorTree * DT = nullptr,
bool UseInstrInfo = true,
unsigned Depth = 0 )

Definition at line 5912 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, and DL.

◆ computeKnownFPClass() [4/5]

KnownFPClass llvm::computeKnownFPClass ( const Value * V,
FastMathFlags FMF,
FPClassTest InterestedClasses,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

◆ computeKnownFPClass() [5/5]

KnownFPClass llvm::computeKnownFPClass ( const Value * V,
FPClassTest InterestedClasses,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Definition at line 5903 of file ValueTracking.cpp.

References computeKnownFPClass(), and Depth.

◆ computeKnownFPSignBit()

std::optional< bool > llvm::computeKnownFPSignBit ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Return false if we can prove that the specified FP value's sign bit is 0.

Return true if we can prove that the specified FP value's sign bit is 1. Otherwise return std::nullopt.

Definition at line 5989 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, fcAllFlags, and llvm::KnownFPClass::SignBit.

Referenced by simplifyUnaryIntrinsic(), and llvm::InstCombinerImpl::visitCallInst().

◆ computeLegalValueVTs() [1/2]

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

Definition at line 56 of file WebAssemblyMachineFunctionInfo.cpp.

References computeLegalValueVTs(), DL, and F.

◆ computeLegalValueVTs() [2/2]

◆ ComputeLinearIndex() [1/2]

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

◆ ComputeLinearIndex() [2/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 33 of file Analysis.cpp.

References assert(), ComputeLinearIndex(), dyn_cast(), enumerate(), and I.

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

◆ computeLiveIns()

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

Computes registers live-in to MBB assuming all of its successors live-in lists are up-to-date.

Puts the result into the given LivePhysReg instance LiveRegs.

Definition at line 257 of file LivePhysRegs.cpp.

References llvm::MachineFunction::getRegInfo(), MBB, MI, MRI, reverse(), and TRI.

Referenced by computeAndAddLiveIns().

◆ computeLTOCacheKey()

std::string llvm::computeLTOCacheKey ( 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 DenseSet< GlobalValue::GUID > & CfiFunctionDefs = {},
const DenseSet< GlobalValue::GUID > & CfiFunctionDecls = {} )

◆ computeMachineUniformityInfo()

MachineUniformityInfo llvm::computeMachineUniformityInfo ( MachineFunction & F,
const MachineCycleInfo & cycleInfo,
const MachineDominatorTree & domTree,
bool HasBranchDivergence )

Compute uniformity information for a Machine IR function.

If HasBranchDivergence is false, produces a dummy result which assumes everything is uniform.

Definition at line 157 of file MachineUniformityAnalysis.cpp.

References assert(), llvm::GenericUniformityInfo< ContextT >::compute(), and F.

Referenced by llvm::MachineUniformityAnalysis::run(), and llvm::MachineUniformityAnalysisPass::runOnMachineFunction().

◆ ComputeMappedEditDistance()

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

Determine the edit distance between two sequences.

Parameters
FromArraythe first sequence to compare.
ToArraythe second sequence to compare.
MapA Functor to apply to each item of the sequences before comparison.
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 45 of file edit_distance.h.

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

Referenced by ComputeEditDistance(), and llvm::StringRef::edit_distance_insensitive().

◆ ComputeMaxSignificantBits()

unsigned llvm::ComputeMaxSignificantBits ( const Value * Op,
const DataLayout & DL,
AssumptionCache * AC = nullptr,
const Instruction * CxtI = nullptr,
const DominatorTree * DT = nullptr,
unsigned Depth = 0 )

Get the upper bound on bit size for this Value Op as a signed integer.

i.e. x == sext(trunc(x to MaxSignificantBits) to bitwidth(x)). Similar to the APInt::getSignificantBits function.

Definition at line 340 of file ValueTracking.cpp.

References ComputeNumSignBits(), Depth, and DL.

Referenced by llvm::InstCombiner::ComputeMaxSignificantBits(), and eliminateDeadSwitchCases().

◆ 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 809 of file VectorUtils.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, any_of(), bit_ceil(), bit_width(), Call, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::SmallPtrSetImpl< PtrType >::count(), dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::EquivalenceClasses< ElemTy >::getOrInsertLeaderValue(), getScalarSizeInBits(), getType(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), llvm::EquivalenceClasses< ElemTy >::members(), MI, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::EquivalenceClasses< ElemTy >::unionSets().

◆ ComputeNumSignBits()

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

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 332 of file ValueTracking.cpp.

References Depth, DL, and safeCxtI().

Referenced by computeKnownBitsMul(), ComputeMaxSignificantBits(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeNumSignBits(), llvm::InstCombiner::ComputeNumSignBits(), ComputeNumSignBitsImpl(), computeOverflowForSignedAdd(), computeOverflowForSignedMul(), computeOverflowForSignedSub(), computeRecurrenceType(), setShiftFlags(), and simplifyAShrInst().

◆ computeOverflowForSignedAdd() [1/2]

OverflowResult llvm::computeOverflowForSignedAdd ( const AddOperator * Add,
const SimplifyQuery & SQ )

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

Definition at line 7807 of file ValueTracking.cpp.

References Add.

◆ computeOverflowForSignedAdd() [2/2]

OverflowResult llvm::computeOverflowForSignedAdd ( const WithCache< const Value * > & LHS,
const WithCache< const Value * > & RHS,
const SimplifyQuery & SQ )

◆ computeOverflowForSignedMul()

◆ computeOverflowForSignedSub()

◆ computeOverflowForUnsignedAdd()

◆ computeOverflowForUnsignedMul()

◆ computeOverflowForUnsignedSub()

◆ computePeelCount()

◆ computeSignatureVTs()

◆ ComputeSpeculationCost()

◆ computeUnrollCount()

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

◆ computeValueLLTs()

void llvm::computeValueLLTs ( const DataLayout & DL,
Type & Ty,
SmallVectorImpl< LLT > & ValueTys,
SmallVectorImpl< uint64_t > * Offsets = nullptr,
uint64_t StartingOffset = 0 )

computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs 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 149 of file Analysis.cpp.

References computeValueLLTs(), DL, dyn_cast(), llvm::StructLayout::getElementOffset(), getLLTForType(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by computeValueLLTs().

◆ ComputeValueTypes()

void llvm::ComputeValueTypes ( const DataLayout & DL,
Type * Ty,
SmallVectorImpl< Type * > & Types,
SmallVectorImpl< TypeSize > * Offsets = nullptr,
TypeSize StartingOffset = TypeSize::getZero() )

◆ ComputeValueVTs() [1/4]

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

◆ ComputeValueVTs() [2/4]

void llvm::ComputeValueVTs ( const TargetLowering & TLI,
const DataLayout & DL,
Type * Ty,
SmallVectorImpl< EVT > & ValueVTs,
SmallVectorImpl< EVT > * MemVTs,
SmallVectorImpl< uint64_t > * FixedOffsets,
uint64_t StartingOffset )

◆ ComputeValueVTs() [3/4]

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

Variant of ComputeValueVTs that don't produce memory VTs.

Definition at line 84 of file Analysis.h.

References ComputeValueVTs(), DL, and llvm::TypeSize::getZero().

◆ ComputeValueVTs() [4/4]

void llvm::ComputeValueVTs ( const TargetLowering & TLI,
const DataLayout & DL,
Type * Ty,
SmallVectorImpl< EVT > & ValueVTs,
SmallVectorImpl< uint64_t > * FixedOffsets,
uint64_t StartingOffset )
inline

Definition at line 90 of file Analysis.h.

References ComputeValueVTs(), and DL.

◆ concat()

◆ concatenateVectors()

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

Concatenate a list of vectors.

This function generates code that concatenate the vectors in Vecs into a single large vector. The number of vectors should be greater than one, and their element types should be the same. The number of elements in the vectors should also be the same; however, if the last vector has fewer elements, it will be padded with undefs.

Definition at line 1228 of file VectorUtils.cpp.

References llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), concatenateTwoVectors(), llvm::ArrayRef< T >::end(), llvm::Value::getType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by interleaveVectors(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), and llvm::ARMTargetLowering::lowerInterleavedLoad().

◆ condCodeOp()

◆ const_mi_bundle_ops()

◆ ConstantFoldBinaryInstruction()

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

Definition at line 605 of file ConstantFold.cpp.

References llvm::APFloat::add(), llvm::APInt::ashr(), assert(), cast(), ConstantFoldBinaryInstruction(), llvm::APFloat::divide(), DL, dyn_cast(), llvm::ConstantExpr::get(), llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::ConstantExpr::getBinOpAbsorber(), llvm::ConstantExpr::getBinOpIdentity(), llvm::APInt::getBitWidth(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::APInt::getLowBitsSet(), llvm::ConstantFP::getNaN(), llvm::Constant::getNullValue(), getOpcode(), llvm::GlobalValue::getParent(), llvm::Value::getPointerAlignment(), llvm::ConstantVector::getSplat(), llvm::Constant::getSplatValue(), llvm::Value::getType(), llvm::ConstantExpr::getXor(), isa(), llvm::Instruction::isAssociative(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isCommutative(), llvm::ConstantExpr::isDesirableBinOp(), llvm::Instruction::isIntDivRem(), llvm::Type::isIntegerTy(), llvm::APInt::isMinSignedValue(), llvm_unreachable, Log2(), llvm::APInt::lshr(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_CombineOr(), llvm::PatternMatch::m_NegZeroFP(), llvm::PatternMatch::m_Undef(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), llvm::APFloat::mod(), llvm::APFloat::multiply(), llvm::APFloatBase::rmNearestTiesToEven, llvm::APInt::sdiv(), llvm::APInt::shl(), llvm::APInt::srem(), llvm::APFloat::subtract(), T, llvm::APInt::udiv(), and llvm::APInt::urem().

Referenced by collectInsertionElements(), ConstantFoldBinaryInstruction(), ConstantFoldBinaryOpOperands(), ConvertShiftToMul(), llvm::ConstantFolder::FoldBinOp(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), llvm::ConstantFolder::FoldExactBinOp(), llvm::ConstantFolder::FoldNoWrapBinOp(), llvm::ConstantExpr::get(), getBinOpsForFactorization(), and llvm::InstCombinerImpl::visitSub().

◆ ConstantFoldBinaryIntrinsic()

Constant * llvm::ConstantFoldBinaryIntrinsic ( Intrinsic::ID ID,
Constant * LHS,
Constant * RHS,
Type * Ty,
Instruction * FMFSource )

◆ ConstantFoldBinaryOpOperands()

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

◆ ConstantFoldBinOp()

◆ ConstantFoldCall()

Constant * llvm::ConstantFoldCall ( const CallBase * Call,
Function * F,
ArrayRef< Constant * > Operands,
const TargetLibraryInfo * TLI = nullptr,
bool AllowNonDeterministic = true )

ConstantFoldCall - Attempt to constant fold a call to the specified function with the specified arguments, returning null if unsuccessful.

Definition at line 4428 of file ConstantFolding.cpp.

References Call, dyn_cast(), F, llvm::TargetLibraryInfo::getLibFunc(), llvm::Intrinsic::not_intrinsic, and Operands.

Referenced by tryConstantFoldCall().

◆ ConstantFoldCastInstruction()

◆ ConstantFoldCastOp()

std::optional< APInt > llvm::ConstantFoldCastOp ( unsigned Opcode,
LLT DstTy,
const Register Op0,
const MachineRegisterInfo & MRI )

◆ ConstantFoldCastOperand()

◆ ConstantFoldCompareInstOperands()

Constant * llvm::ConstantFoldCompareInstOperands ( unsigned Predicate,
Constant * LHS,
Constant * RHS,
const DataLayout & DL,
const TargetLibraryInfo * TLI = nullptr,
const Instruction * I = nullptr )

Attempt to constant fold a compare instruction (icmp/fcmp) with the specified operands.

Returns null or a constant expression of the specified operands on failure. Denormal inputs may be flushed based on the denormal handling mode.

Definition at line 1198 of file ConstantFolding.cpp.

References llvm::CallingConv::C, llvm::ICmpInst::compare(), ConstantFoldCompareInstOperands(), ConstantFoldCompareInstruction(), ConstantFoldIntegerCast(), DL, dyn_cast(), FlushFPConstant(), llvm::ConstantInt::getBool(), llvm::Value::getContext(), llvm::Constant::getNullValue(), llvm::ICmpInst::getSignedPredicate(), llvm::CmpInst::getSwappedPredicate(), llvm::Value::getType(), I, isa(), llvm::ICmpInst::isEquality(), llvm::CmpInst::isFPPredicate(), llvm::Constant::isNullValue(), llvm::Type::isPointerTy(), llvm::CmpInst::isSigned(), Null, and llvm::Value::stripAndAccumulateConstantOffsets().

Referenced by computeUnlikelySuccessors(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), ConstantFoldCompareInstOperands(), llvm::TargetFolder::FoldCmp(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::InstCombinerImpl::foldICmpWithConstant(), llvm::ValueLatticeElement::getCompare(), getNegativeIsTrueBoolVec(), getPredicateResult(), llvm::GCNTTIImpl::instCombineIntrinsic(), reuseTableCompare(), simplifyFCmpInst(), simplifyICmpInst(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitTrunc().

◆ ConstantFoldCompareInstruction()

Constant * llvm::ConstantFoldCompareInstruction ( CmpInst::Predicate Predicate,
Constant * C1,
Constant * C2 )

Definition at line 1102 of file ConstantFold.cpp.

References llvm::CmpInst::BAD_ICMP_PREDICATE, cast(), llvm::FCmpInst::compare(), llvm::ICmpInst::compare(), ConstantFoldCompareInstruction(), dyn_cast(), evaluateICmpRelation(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::VectorType::get(), llvm::Constant::getAllOnesValue(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantInt::getFalse(), llvm::Type::getInt1Ty(), llvm::ConstantExpr::getNot(), llvm::Constant::getNullValue(), llvm::ConstantVector::getSplat(), llvm::Constant::getSplatValue(), llvm::CmpInst::getSwappedPredicate(), llvm::ConstantInt::getTrue(), llvm::Value::getType(), llvm::ConstantExpr::getXor(), I, 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, isa(), llvm::ICmpInst::isEquality(), llvm::Type::isFPOrFPVectorTy(), llvm::Type::isIntOrIntVectorTy(), llvm::CmpInst::isIntPredicate(), llvm::Constant::isNullValue(), llvm::CmpInst::isTrueWhenEqual(), llvm::CmpInst::isUnordered(), llvm_unreachable, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by ConstantFoldCompareInstOperands(), ConstantFoldCompareInstruction(), llvm::ConstantFolder::FoldCmp(), and llvm::Constant::isElementWiseEqual().

◆ ConstantFoldConstant()

Constant * llvm::ConstantFoldConstant ( const Constant * C,
const DataLayout & DL,
const TargetLibraryInfo * TLI = nullptr )

ConstantFoldConstant - Fold the constant using the specified DataLayout.

This function always returns a non-null constant: Either the folding result, or the original constant if further folding is not possible.

Definition at line 1183 of file ConstantFolding.cpp.

References llvm::CallingConv::C, and DL.

Referenced by llvm::VNCoercion::coerceAvailableValueToLoadType(), emitGlobalConstantImpl(), emitGlobalConstantVector(), llvm::InstCombinerImpl::foldICmpWithCastOp(), llvm::AsmPrinter::lowerConstant(), OptimizeGlobalVars(), llvm::InstCombinerImpl::prepareWorklist(), and simplifyGEPInst().

◆ ConstantFoldCountZeros()

std::optional< SmallVector< unsigned > > llvm::ConstantFoldCountZeros ( Register Src,
const MachineRegisterInfo & MRI,
std::function< unsigned(APInt)> CB )

Tries to constant fold a counting-zero operation (G_CTLZ or G_CTTZ) on Src.

If Src is a vector then it tries to do an element-wise constant fold.

Definition at line 1003 of file Utils.cpp.

References llvm::SmallVectorImpl< T >::emplace_back(), getIConstantVRegVal(), getOpcodeDef(), and MRI.

Referenced by llvm::CSEMIRBuilder::buildInstr().

◆ ConstantFoldExtOp()

std::optional< APInt > llvm::ConstantFoldExtOp ( unsigned Opcode,
const Register Op1,
uint64_t Imm,
const MachineRegisterInfo & MRI )

Definition at line 949 of file Utils.cpp.

References getIConstantVRegVal(), and MRI.

Referenced by llvm::CSEMIRBuilder::buildInstr().

◆ 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 341 of file ConstantFold.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, llvm::CallingConv::C, cast(), dyn_cast(), GEP, llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getExtractElement(), llvm::Constant::getSplatValue(), llvm::Value::getType(), isa(), and llvm::APSInt::isSameValue().

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

◆ 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 506 of file ConstantFold.cpp.

References llvm::CallingConv::C, ConstantFoldExtractValueInstruction(), llvm::ArrayRef< T >::empty(), llvm::Constant::getAggregateElement(), and llvm::ArrayRef< T >::slice().

Referenced by ConstantFoldExtractValueInstruction(), llvm::ConstantFolder::FoldExtractValue(), llvm::TargetFolder::FoldExtractValue(), and simplifyExtractValueInst().

◆ ConstantFoldFPBinOp()

◆ ConstantFoldFPInstOperands()

Constant * llvm::ConstantFoldFPInstOperands ( unsigned Opcode,
Constant * LHS,
Constant * RHS,
const DataLayout & DL,
const Instruction * I,
bool AllowNonDeterministic = true )

Attempt to constant fold a floating point binary operation with the specified operands, applying the denormal handling mod to the operands.

Returns null or a constant expression of the specified operands on failure.

Definition at line 1439 of file ConstantFolding.cpp.

References llvm::CallingConv::C, ConstantFoldBinaryOpOperands(), DL, dyn_cast_or_null(), FlushFPConstant(), FP, I, and llvm::Instruction::isBinaryOp().

Referenced by foldOrCommuteConstant().

◆ ConstantFoldGetElementPtr()

◆ ConstantFoldICmp()

◆ ConstantFoldInsertElementInstruction()

Constant * llvm::ConstantFoldInsertElementInstruction ( Constant * Val,
Constant * Elt,
Constant * Idx )

Attempt to constant fold an insertelement instruction with the specified operands and indices.

The constant result is returned if successful; if not, null is returned.

Definition at line 405 of file ConstantFold.cpp.

References llvm::CallingConv::C, cast(), dyn_cast(), llvm::ConstantVector::get(), llvm::PoisonValue::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getInt32Ty(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), isa(), llvm::Constant::isNullValue(), and llvm::ConstantInt::uge().

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

◆ 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 518 of file ConstantFold.cpp.

References llvm::CallingConv::C, cast(), ConstantFoldInsertValueInstruction(), dyn_cast(), llvm::ArrayRef< T >::empty(), llvm::ConstantArray::get(), llvm::ConstantStruct::get(), llvm::Constant::getAggregateElement(), llvm::Value::getType(), and llvm::ArrayRef< T >::slice().

Referenced by ConstantFoldInsertValueInstruction(), llvm::ConstantFolder::FoldInsertValue(), llvm::TargetFolder::FoldInsertValue(), and simplifyInsertValueInst().

◆ ConstantFoldInstOperands()

Constant * llvm::ConstantFoldInstOperands ( const Instruction * I,
ArrayRef< Constant * > Ops,
const DataLayout & DL,
const TargetLibraryInfo * TLI = nullptr,
bool AllowNonDeterministic = true )

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.

In some cases, constant folding may return one value chosen from a set of multiple legal return values. For example, the exact bit pattern of NaN results is not guaranteed. Using such a result is usually only valid if all uses of the original operation are replaced by the constant-folded result. The AllowNonDeterministic parameter controls whether this is allowed.

Definition at line 1189 of file ConstantFolding.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, DL, and I.

Referenced by constantFold(), ConstantFoldInstruction(), EvaluateExpression(), simplifyInstructionWithOperands(), and simplifyWithOpsReplaced().

◆ ConstantFoldInstruction()

Constant * llvm::ConstantFoldInstruction ( const 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 1134 of file ConstantFolding.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, all_of(), llvm::CallingConv::C, cast(), ConstantFoldInstOperands(), DL, dyn_cast(), llvm::UndefValue::get(), I, and isa().

Referenced by ConstantPropUsersOf(), llvm::InstCombinerImpl::prepareWorklist(), and llvm::JumpThreadingPass::processBlock().

◆ ConstantFoldIntegerCast()

Constant * llvm::ConstantFoldIntegerCast ( Constant * C,
Type * DestTy,
bool IsSigned,
const DataLayout & DL )

Constant fold a zext, sext or trunc, depending on IsSigned and whether the DestTy is wider or narrower than C.

Returns nullptr on failure.

Definition at line 1572 of file ConstantFolding.cpp.

References llvm::CallingConv::C, ConstantFoldCastOperand(), DL, and llvm::Type::getScalarSizeInBits().

Referenced by ConstantFoldCastOperand(), ConstantFoldCompareInstOperands(), llvm::InstCombinerImpl::EvaluateInDifferentType(), getConstantInt(), isBytewiseValue(), llvm::AsmPrinter::lowerConstant(), processUse(), and simplifySubInst().

◆ ConstantFoldIntToFloat()

std::optional< APFloat > llvm::ConstantFoldIntToFloat ( unsigned Opcode,
LLT DstTy,
Register Src,
const MachineRegisterInfo & MRI )

◆ ConstantFoldLoadFromConst() [1/2]

◆ ConstantFoldLoadFromConst() [2/2]

Constant * llvm::ConstantFoldLoadFromConst ( Constant * C,
Type * Ty,
const DataLayout & DL )

Extract value of C reinterpreted as Ty.

Same as previous API with zero offset.

Definition at line 739 of file ConstantFolding.cpp.

References llvm::CallingConv::C, ConstantFoldLoadFromConst(), and DL.

◆ ConstantFoldLoadFromConstPtr() [1/2]

Constant * llvm::ConstantFoldLoadFromConstPtr ( Constant * C,
Type * Ty,
APInt Offset,
const DataLayout & DL )

◆ ConstantFoldLoadFromConstPtr() [2/2]

Constant * llvm::ConstantFoldLoadFromConstPtr ( Constant * C,
Type * Ty,
const DataLayout & DL )

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 766 of file ConstantFolding.cpp.

References llvm::CallingConv::C, ConstantFoldLoadFromConstPtr(), DL, and Offset.

◆ ConstantFoldLoadFromUniformValue()

Constant * llvm::ConstantFoldLoadFromUniformValue ( Constant * C,
Type * Ty,
const DataLayout & DL )

If C is a uniform value where all bits are the same (either all zero, all ones, all undef or all poison), return the corresponding uniform value in the new type.

If the value is not uniform or the result cannot be represented, return null.

Definition at line 772 of file ConstantFolding.cpp.

References llvm::CallingConv::C, DL, llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::Constant::getNullValue(), and isa().

Referenced by CleanupConstantGlobalUsers(), ConstantFoldLoadFromConst(), ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), llvm::AA::getInitialValueForObj(), and simplifyLoadInst().

◆ 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 357 of file ConstantFolding.cpp.

References llvm::CallingConv::C, llvm::CastInst::castIsValid(), ConstantFoldCastOperand(), ConstantFoldLoadFromUniformValue(), DL, dyn_cast(), llvm::Type::getScalarType(), llvm::Value::getType(), llvm::Type::isIntegerTy(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isKnownGE(), and llvm::Type::isPointerTy().

Referenced by ConstantFoldLoadFromConst().

◆ ConstantFoldSelectInstruction()

Constant * llvm::ConstantFoldSelectInstruction ( Constant * Cond,
Constant * V1,
Constant * V2 )

Attempt to constant fold a select instruction with the specified operands.

The constant result is returned if successful; if not, null is returned.

Definition at line 263 of file ConstantFold.cpp.

References llvm::CallingConv::C, cast(), Cond, dyn_cast(), llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::PoisonValue::get(), llvm::ConstantExpr::getExtractElement(), llvm::Value::getType(), and isa().

Referenced by llvm::ConstantFolder::FoldSelect(), llvm::TargetFolder::FoldSelect(), simplifySelectInst(), and llvm::InstCombinerImpl::visitTrunc().

◆ ConstantFoldShuffleVectorInstruction()

Constant * llvm::ConstantFoldShuffleVectorInstruction ( Constant * V1,
Constant * V2,
ArrayRef< int > Mask )

Attempt to constant fold a shufflevector instruction with the specified operands and mask.

See class ShuffleVectorInst for a description of the mask representation. The constant result is returned if successful; if not, null is returned.

Definition at line 447 of file ConstantFold.cpp.

References all_of(), cast(), llvm::ConstantVector::get(), llvm::ElementCount::get(), llvm::IntegerType::get(), llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::VectorType::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantVector::getSplat(), llvm::Value::getType(), isa(), llvm::Constant::isNullValue(), and PoisonMaskElem.

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

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 134 of file Local.cpp.

References Address, llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), Changed, Cond, llvm::Instruction::copyMetadata(), llvm::MDBuilder::createBranchWeights(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::Instruction::eraseFromParent(), extractBranchWeights(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getTerminator(), getValidBranchWeightMDNode(), hasBranchWeightOrigin(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::BasicBlock::removePredecessor(), setBranchWeights(), llvm::Instruction::setMetadata(), llvm::SmallPtrSetImplBase::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), successors(), std::swap(), and T.

Referenced by CloneAndPruneIntoFromInst(), markAliveBlocks(), llvm::JumpThreadingPass::processBlock(), and processSwitch().

◆ ConstantFoldUnaryInstruction()

◆ ConstantFoldUnaryOpOperand()

Constant * llvm::ConstantFoldUnaryOpOperand ( unsigned Opcode,
Constant * Op,
const DataLayout & DL )

◆ ConstantFoldVectorBinop()

SmallVector< APInt > llvm::ConstantFoldVectorBinop ( unsigned Opcode,
const Register Op1,
const Register Op2,
const MachineRegisterInfo & MRI )

Tries to constant fold a vector binop with sources Op1 and Op2.

Returns an empty vector on failure.

Definition at line 793 of file Utils.cpp.

References ConstantFoldBinOp(), getOpcodeDef(), MRI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SmallVector.

Referenced by llvm::CSEMIRBuilder::buildInstr().

◆ ConstantLog2()

template<size_t kValue>
size_t llvm::ConstantLog2 ( )
constexpr

Compile time Log2.

Valid only for positive powers of two.

Definition at line 326 of file MathExtras.h.

References ConstantLog2(), and isPowerOf2_64().

Referenced by llvm::Align::Constant(), ConstantLog2(), and CTLog2().

◆ ConstantLog2< 1 >()

template<>
size_t llvm::ConstantLog2< 1 > ( )
constexpr

Definition at line 331 of file MathExtras.h.

◆ ConstantMaterializationCost()

unsigned llvm::ConstantMaterializationCost ( unsigned Val,
const ARMSubtarget * Subtarget,
bool ForCodesize = false )

Returns the number of instructions required to materialize the given constant in a register, or 3 if a literal pool load is needed.

If ForCodesize is specified, an approximate cost in bytes is returned.

Definition at line 5476 of file ARMBaseInstrInfo.cpp.

References llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getT2SOImmVal(), llvm::ARM_AM::isSOImmTwoPartVal(), llvm::ARM_AM::isSOImmTwoPartValNeg(), llvm::ARM_AM::isThumbImmShiftedVal(), and llvm::ARMSubtarget::useMovt().

Referenced by HasLowerConstantMaterializationCost(), llvm::ARMTargetLowering::isMulAddWithConstProfitable(), and llvm::ARMLegalizerInfo::legalizeCustom().

◆ constrainOperandRegClass() [1/2]

Register llvm::constrainOperandRegClass ( const MachineFunction & MF,
const TargetRegisterInfo & TRI,
MachineRegisterInfo & MRI,
const TargetInstrInfo & TII,
const RegisterBankInfo & RBI,
MachineInstr & InsertPt,
const MCInstrDesc & II,
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 if it is a use or after if it is a definition. In both cases, the function also updates the register of RegMo. This is equivalent to constrainOperandRegClass(..., RegClass, ...) 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 108 of file Utils.cpp.

References assert(), constrainOperandRegClass(), llvm::MachineOperand::getReg(), II, isTargetSpecificOpcode(), llvm::MachineOperand::isUse(), MRI, OpIdx, TII, and TRI.

◆ constrainOperandRegClass() [2/2]

Register llvm::constrainOperandRegClass ( const MachineFunction & MF,
const TargetRegisterInfo & TRI,
MachineRegisterInfo & MRI,
const TargetInstrInfo & TII,
const RegisterBankInfo & RBI,
MachineInstr & InsertPt,
const TargetRegisterClass & RegClass,
MachineOperand & RegMO )

Constrain the Register operand OpIdx, so that it is now constrained to the TargetRegisterClass passed as an argument (RegClass).

If this fails, create a new virtual register in the correct class and insert a COPY before InsertPt if it is a use or after if it is a definition. In both cases, the function also updates the register of RegMo. The debug location of InsertPt is used for the new copy.

Returns
The virtual register constrained to the right register class.

Definition at line 56 of file Utils.cpp.

References llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), constrainRegToClass(), llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getObserver(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isUse(), MBB, MRI, llvm::MachineOperand::setReg(), TII, and TRI.

Referenced by constrainOperandRegClass(), constrainSelectedInstRegOperands(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::AArch64CallLowering::lowerCall(), llvm::AMDGPUCallLowering::lowerCall(), llvm::ARMCallLowering::lowerCall(), llvm::M68kCallLowering::lowerCall(), llvm::RISCVCallLowering::lowerCall(), llvm::X86CallLowering::lowerCall(), and llvm::AMDGPUCallLowering::lowerTailCall().

◆ constrainRegToClass()

Register llvm::constrainRegToClass ( MachineRegisterInfo & MRI,
const TargetInstrInfo & TII,
const RegisterBankInfo & RBI,
Register 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.

Returns
The virtual register constrained to the right register class.

Definition at line 46 of file Utils.cpp.

References llvm::RegisterBankInfo::constrainGenericRegister(), MRI, and TII.

Referenced by constrainOperandRegClass().

◆ constrainSelectedInstRegOperands()

bool llvm::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.

This could involve inserting COPYs before (for uses) or after (for defs). This requires the number of operands to match the instruction description.

Returns
whether operand regclass constraining succeeded.

Definition at line 155 of file Utils.cpp.

References assert(), constrainOperandRegClass(), dbgs(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), I, isPreISelGenericOpcode(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), LLVM_DEBUG, MBB, MRI, llvm::MCOI::TIED_TO, TII, and TRI.

Referenced by llvm::AMDGPURegisterBankInfo::applyMappingBFE(), llvm::SPIRVGlobalRegistry::buildConstantInt(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::MachineInstrBuilder::constrainAllUses(), llvm::SPIRVGlobalRegistry::createConstFP(), llvm::SPIRVGlobalRegistry::createConstInt(), llvm::GIMatchTableExecutor::executeMatchTable(), and llvm::SPIRVGlobalRegistry::getOrCreateUndef().

◆ constructSeqOffsettoOrigRowMapping()

◆ 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 std::optional<T>.

Definition at line 1083 of file Error.h.

References handleAllErrors().

Referenced by accumulateLocs(), llvm::MachO::DylibReader::accumulateSourceLocFromDSYM(), llvm::logicalview::LVPatterns::addPatterns(), llvm::DWARFDie::addressRangeContainsAddress(), llvm::APFloat::APFloat(), llvm::object::ArchiveMemberHeader::ArchiveMemberHeader(), llvm::object::BindRebaseSegInfo::BindRebaseSegInfo(), llvm::gsym::FunctionInfo::cacheEncoding(), llvm::codeview::computeTypeName(), llvm::vfs::consumeDiscardOnDestroy(), llvm::object::SectionRef::containsSymbol(), llvm::gsym::ObjectFileTransformer::convert(), llvm::object::OffloadFile::copy(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::coverage::BinaryCoverageReader::create(), llvm::sys::fs::TempFile::create(), llvm::logicalview::LVBinaryReader::createInstructions(), createMemberHeaderParseError(), createOnDiskBuffer(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::pdb::SymbolCache::createTypeEnumerator(), llvm::ListeningSocket::createUnix(), llvm::NewArchiveMember::detectKindFromObject(), llvm::coverage::CounterMappingContext::dump(), llvm::DWARFDebugAbbrev::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::DWARFLocationTable::dumpLocationList(), llvm::DWARFDebugNames::Entry::dumpParentIdx(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::emitAppleAcceleratorSections(), llvm::DWARFYAML::emitDebugInfo(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::emitDWARFv5DebugNamesSection(), error(), errorToBool(), llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary(), expectedToOptional(), expectedToStdOptional(), llvm::RangeListEntry::extract(), llvm::DebuginfodFetcher::fetch(), llvm::codeview::FieldListDeserializer::FieldListDeserializer(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::RuntimeDyldMachOCRTPBase< Impl >::finalizeLoad(), llvm::RuntimeDyldMachOARM::finalizeSection(), llvm::RuntimeDyldMachOI386::finalizeSection(), llvm::DebuginfodCollection::findBinaryPath(), llvm::pdb::PublicsStream::findByAddress(), findInlineeByTypeIndex(), llvm::pdb::NativeInlineSiteSymbol::findInlineeLinesByVA(), llvm::pdb::NativeFunctionSymbol::findInlineFramesByVA(), llvm::pdb::SymbolCache::findLineNumbersByVA(), llvm::MCJIT::findSymbol(), llvm::pdb::SymbolCache::findSymbolByTypeIndex(), llvm::pdb::SymbolGroup::formatFromChecksumsOffset(), llvm::pdb::LinePrinter::formatMsfStreamData(), llvm::lsp::fromJSON(), llvm::DWARFUnit::getAbbreviations(), getAccelTable(), llvm::pdb::NativeExeSymbol::getAge(), llvm::object::XCOFFObjectFile::getCommonSymbolSizeImpl(), getDbiStreamPtr(), getDbiStreamPtr(), llvm::logicalview::LVLogicalVisitor::getElement(), llvm::pdb::NativeSourceFile::getFileName(), llvm::logicalview::LVSymbolVisitorDelegate::getFileNameForFileOffset(), llvm::codeview::LazyRandomTypeCollection::getFirst(), getFirstReloc(), llvm::pdb::NativeExeSymbol::getGuid(), llvm::DWARFDataExtractorBase< Relocator >::getInitialLength(), llvm::pdb::NativeSession::getInjectedSources(), llvm::gsym::GsymContext::getLineInfoForAddress(), llvm::gsym::GsymContext::getLineInfoForAddressRange(), llvm::pdb::NativeInlineSiteSymbol::getName(), llvm::codeview::LazyRandomTypeCollection::getNext(), llvm::object::Archive::Child::getNext(), getNumberOfRelocations(), llvm::sys::Process::getPageSizeEstimate(), llvm::object::getPhdrIndexForError(), llvm::object::ELFObjectFileBase::getPltEntries(), llvm::logicalview::getRecordName(), llvm::logicalview::LVSymbolVisitorDelegate::getRecordOffset(), llvm::object::XCOFFRelocation< llvm::support::ubig32_t >::getRelocatedLength(), llvm::object::getSecIndexForError(), llvm::object::XCOFFObjectFile::getSymbolAlignment(), llvm::object::ELFObjectFile< ELFT >::getSymbolFlags(), llvm::object::XCOFFObjectFile::getSymbolSize(), llvm::IndexedInstrProfReader::getSymtab(), llvm::codeview::LazyRandomTypeCollection::getTypeName(), getUdtOptions(), getUdtSize(), getUUID(), llvm::BitcodeReaderValueList::getValueFwdRef(), llvm::pdb::NativeExeSymbol::hasCTypes(), hashFullyQualifiedName(), llvm::pdb::PDBFile::hasPDBGlobalsStream(), llvm::pdb::PDBFile::hasPDBInjectedSourceStream(), llvm::pdb::PDBFile::hasPDBPublicsStream(), llvm::pdb::PDBFile::hasPDBStringTable(), llvm::pdb::NativeExeSymbol::hasPrivateSymbols(), ignoreStrippedErrors(), llvm::yaml::ScalarTraits< Target >::input(), isCodeViewDebugSubsection(), llvm::object::COFFObjectFile::isDebugSection(), llvm::object::ELFObjectFile< ELFT >::isDebugSection(), llvm::object::MachOObjectFile::isDebugSection(), llvm::object::ObjectFile::isSectionBitcode(), llvm::RISCVISAInfo::isSupportedExtensionWithVersion(), isVariableIndexable(), llvm::remarks::RemarkLinker::link(), LLVMCreateObjectFile(), LLVMRemarkParserGetNext(), loadBinaryFormat(), llvm::xray::loadInstrumentationMap(), loadObj(), llvm::xray::loadTraceFile(), localCache(), llvm::vfs::makeMirroringOutputBackend(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::lsp::MessageHandler::notification(), llvm::lsp::MessageHandler::onReply(), llvm::orc::COFFImportFileScanner::operator()(), llvm::orc::ForceLoadMachOArchiveMembers::operator()(), llvm::VarStreamArrayIterator< ValueType, Extractor >::operator+=(), llvm::FixedStreamArray< CrossModuleExport >::operator[](), llvm::DWARFDebugLine::LineTable::parse(), llvm::ELFCompactAttrParser::parse(), llvm::ELFExtendedAttrParser::parse(), llvm::object::WindowsResourceParser::parse(), llvm::pdb::PDBFile::parseFileHeaders(), llvm::MetadataLoader::MetadataLoaderImpl::parseMetadata(), parseV2DirFileTables(), llvm::BinaryStreamReader::peek(), llvm::Pattern::printSubstitutions(), llvm::logicalview::LVLogicalVisitor::processLines(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::coverage::RawCoverageFilenamesReader::read(), llvm::MachO::DylibReader::readFile(), llvm::msgpack::Document::readFromBlob(), llvm::cas::ObjectStore::readRefs(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::registerModuleReference(), llvm::pdb::TpiStream::reload(), llvm::AMDGPUSplitModulePass::run(), searchForExe(), llvm::pdb::NativeSession::searchForPdb(), llvm::object::XCOFFObjectFile::section_rel_end(), llvm::object::ELFObjectFileBase::setARMSubArch(), llvm::dwarf_linker::parallel::SectionDescriptor::setSizesForSectionCreatedByAsmPrinter(), streamFile(), llvm::detail::toString(), llvm::dwarf::toString(), llvm::codeview::LazyRandomTypeCollection::tryGetType(), llvm::DWARFUnit::updateAddressDieMap(), llvm::DWARFUnit::updateVariableDieMap(), llvm::VarStreamArrayIterator< ValueType, Extractor >::VarStreamArrayIterator(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::codeview::SymbolSerializer::writeOneSymbol(), llvm::BitcodeWriter::writeSymtab(), llvm::support::detail::ErrorAdapter::~ErrorAdapter(), llvm::codeview::FieldListDeserializer::~FieldListDeserializer(), and llvm::GCOVBuffer::~GCOVBuffer().

◆ consumeSignedInteger()

bool llvm::consumeSignedInteger ( StringRef & Str,
unsigned Radix,
long long & Result )

◆ consumeUnsignedInteger()

◆ 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 149 of file CFG.h.

References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallPtrSetImpl< PtrType >::insert(), and make_range().

Referenced by llvm::HardwareLoopInfo::canAnalyze(), canProveExitOnFirstIteration(), collectSupportedLoops(), isLoopDead(), isSafeForNoNTrivialUnswitching(), and mayContainIrreducibleControl().

◆ 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 2304 of file ARMBaseInstrInfo.cpp.

References AddSubFlagsOpcodeMap.

Referenced by llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), and llvm::ARMAsmPrinter::emitInstruction().

◆ convertCharsToWord()

uint32_t llvm::convertCharsToWord ( const StringRef & Str,
unsigned i )
static

Definition at line 36 of file SPIRVUtils.cpp.

Referenced by addStringImm(), addStringImm(), and addStringImm().

◆ 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 64 of file ConvertUTFWrapper.cpp.

References conversionOK, ConvertUTF32toUTF8(), and strictConversion.

◆ ConvertCostTableLookup() [1/2]

template<class CostType>
const TypeConversionCostTblEntryT< CostType > * llvm::ConvertCostTableLookup ( ArrayRef< TypeConversionCostTblEntryT< CostType > > Tbl,
int ISD,
MVT Dst,
MVT Src )
inline

◆ ConvertCostTableLookup() [2/2]

template<size_t N, class CostType>
const TypeConversionCostTblEntryT< CostType > * llvm::ConvertCostTableLookup ( const TypeConversionCostTblEntryT< CostType >(&) Table[N],
int ISD,
MVT Dst,
MVT Src )
inline

Definition at line 81 of file CostTable.h.

References ConvertCostTableLookup(), and N.

◆ convertCtxProfToYaml()

◆ ConvertDebugDeclareToDebugValue() [1/3]

void llvm::ConvertDebugDeclareToDebugValue ( DbgVariableRecord * DVR,
LoadInst * LI,
DIBuilder & Builder )

◆ ConvertDebugDeclareToDebugValue() [2/3]

◆ ConvertDebugDeclareToDebugValue() [3/3]

◆ convertExceptionBehaviorToStr()

std::optional< StringRef > llvm::convertExceptionBehaviorToStr ( fp::ExceptionBehavior UseExcept)

For any ExceptionBehavior enumerator, returns a string valid as input in constrained intrinsic exception behavior metadata.

Definition at line 74 of file FPEnv.cpp.

References llvm::fp::ebIgnore, llvm::fp::ebMayTrap, and llvm::fp::ebStrict.

Referenced by llvm::IRBuilderBase::setDefaultConstrainedExcept().

◆ convertRoundingModeToStr()

std::optional< StringRef > llvm::convertRoundingModeToStr ( RoundingMode UseRounding)

For any RoundingMode enumerator, returns a string valid as input in constrained intrinsic rounding mode metadata.

Definition at line 37 of file FPEnv.cpp.

References Dynamic, NearestTiesToAway, NearestTiesToEven, TowardNegative, TowardPositive, and TowardZero.

Referenced by llvm::IRBuilderBase::setDefaultConstrainedRounding().

◆ convertStrToExceptionBehavior()

std::optional< fp::ExceptionBehavior > llvm::convertStrToExceptionBehavior ( StringRef ExceptionArg)

Returns a valid ExceptionBehavior enumerator when given a string valid as input in constrained intrinsic exception behavior metadata.

Definition at line 65 of file FPEnv.cpp.

References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::fp::ebIgnore, llvm::fp::ebMayTrap, and llvm::fp::ebStrict.

Referenced by llvm::ConstrainedFPIntrinsic::getExceptionBehavior().

◆ convertStrToRoundingMode()

std::optional< RoundingMode > llvm::convertStrToRoundingMode ( StringRef RoundingArg)

Returns a valid RoundingMode enumerator when given a string that is valid as input in constrained intrinsic rounding mode metadata.

Definition at line 24 of file FPEnv.cpp.

References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), Dynamic, NearestTiesToAway, NearestTiesToEven, TowardNegative, TowardPositive, and TowardZero.

Referenced by llvm::ConstrainedFPIntrinsic::getRoundingMode().

◆ convertToCamelFromSnakeCase()

std::string llvm::convertToCamelFromSnakeCase ( StringRef input,
bool capitalizeFirst = false )

Converts a string from snake-case to camel-case by replacing all occurrences of '_' followed by a lowercase letter with the letter in uppercase. Optionally allow capitalization of the first letter (if it is a lowercase letter)

Definition at line 115 of file StringExtras.cpp.

References llvm::StringRef::empty(), llvm::StringRef::front(), llvm::StringRef::size(), and toUpper().

◆ convertToDeclaration()

◆ convertToNonDenormSingle() [1/2]

◆ convertToNonDenormSingle() [2/2]

bool llvm::convertToNonDenormSingle ( APInt & ArgAPInt)

◆ convertToSnakeFromCamelCase()

std::string llvm::convertToSnakeFromCamelCase ( StringRef input)

Converts a string from camel-case to snake-case by replacing all uppercase letters with '_' followed by the letter in lowercase, except if the uppercase letter is the first character of the string.

Definition at line 95 of file StringExtras.cpp.

References llvm::StringRef::empty(), and llvm::StringRef::size().

◆ convertUsersOfConstantsToInstructions()

bool llvm::convertUsersOfConstantsToInstructions ( ArrayRef< Constant * > Consts,
Function * RestrictToFunc = nullptr,
bool RemoveDeadConstants = true,
bool IncludeSelf = false )

Replace constant expressions users of the given constants with instructions.

Return whether anything was changed.

Passing RestrictToFunc will restrict the constant replacement to the passed in functions scope, as opposed to the replacements occurring at module scope.

RemoveDeadConstants by default will remove all dead constants as the final step of the function after replacement, when passed false it will skip this final step.

If IncludeSelf is enabled, also convert the passed constants themselves to instructions, rather than only their users.

Definition at line 52 of file ReplaceConstant.cpp.

References assert(), llvm::CallingConv::C, cast(), Changed, llvm::SetVector< T, Vector, Set, N >::contains(), dyn_cast(), llvm::BasicBlock::end(), expandUser(), llvm::BasicBlock::getFirstInsertionPt(), I, llvm::SetVector< T, Vector, Set, N >::insert(), isa(), and isExpandableUser().

Referenced by createOutlinedFunction(), and llvm::AMDGPU::eliminateConstantExprUsesOfLDSFromAllInstructions().

◆ ConvertUTF16toUTF32()

ConversionResult llvm::ConvertUTF16toUTF32 ( const UTF16 ** sourceStart,
const UTF16 * sourceEnd,
UTF32 ** targetStart,
UTF32 * targetEnd,
ConversionFlags flags )

◆ ConvertUTF16toUTF8()

◆ convertUTF16ToUTF8String() [1/2]

bool llvm::convertUTF16ToUTF8String ( ArrayRef< char > SrcBytes,
std::string & Out )

◆ 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 134 of file ConvertUTFWrapper.cpp.

References convertUTF16ToUTF8String().

◆ ConvertUTF32toUTF16()

ConversionResult llvm::ConvertUTF32toUTF16 ( const UTF32 ** sourceStart,
const UTF32 * sourceEnd,
UTF16 ** targetStart,
UTF16 * targetEnd,
ConversionFlags flags )

◆ ConvertUTF32toUTF8()

◆ convertUTF32ToUTF8String() [1/2]

bool llvm::convertUTF32ToUTF8String ( ArrayRef< char > SrcBytes,
std::string & Out )

Converts a stream of raw bytes assumed to be UTF32 into a UTF8 std::string.

Parameters
[in]SrcBytesA buffer of what is assumed to be UTF-32 encoded text.
[out]OutConverted UTF-8 is stored here on success.
Returns
true on success

Definition at line 141 of file ConvertUTFWrapper.cpp.

References assert(), llvm::ArrayRef< T >::begin(), byteswap(), conversionOK, ConvertUTF32toUTF8(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), I, llvm::ArrayRef< T >::size(), strictConversion, targetExhausted, UNI_MAX_UTF8_BYTES_PER_CODE_POINT, UNI_UTF32_BYTE_ORDER_MARK_NATIVE, and UNI_UTF32_BYTE_ORDER_MARK_SWAPPED.

Referenced by convertUTF32ToUTF8String().

◆ convertUTF32ToUTF8String() [2/2]

bool llvm::convertUTF32ToUTF8String ( ArrayRef< UTF32 > Src,
std::string & Out )

Converts a UTF32 string into a UTF8 std::string.

Parameters
[in]SrcA buffer of UTF-32 encoded text.
[out]OutConverted UTF-8 is stored here on success.
Returns
true on success

Definition at line 192 of file ConvertUTFWrapper.cpp.

References convertUTF32ToUTF8String().

◆ 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 285 of file ConvertUTF.h.

References ConvertUTF8toUTF32(), getNumBytesForUTF8(), size(), and sourceExhausted.

◆ ConvertUTF8toUTF16()

◆ convertUTF8ToUTF16String()

◆ 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 736 of file ConvertUTF.cpp.

References ConvertUTF8toUTF32Impl().

Referenced by chopOneUTF32(), llvm::sys::unicode::columnWidthUTF8(), convertUTF8Sequence(), ConvertUTF8toWide(), and llvm::json::fixUTF8().

◆ ConvertUTF8toUTF32Impl()

◆ 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 727 of file ConvertUTF.cpp.

References ConvertUTF8toUTF32Impl().

◆ ConvertUTF8toWide() [1/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 262 of file ConvertUTFWrapper.cpp.

References ConvertUTF8toWide().

◆ 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 258 of file ConvertUTFWrapper.cpp.

References ConvertUTF8toWideInternal().

◆ ConvertUTF8toWide() [3/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 18 of file ConvertUTFWrapper.cpp.

References assert(), conversionOK, ConvertUTF8toUTF16(), ConvertUTF8toUTF32(), isLegalUTF8String(), sourceIllegal, strictConversion, and targetExhausted.

Referenced by ConvertUTF8toWide(), and ConvertUTF8toWideInternal().

◆ ConvertUTF8toWideInternal()

template<typename TResult>
bool llvm::ConvertUTF8toWideInternal ( llvm::StringRef Source,
TResult & Result )
inlinestatic

Definition at line 242 of file ConvertUTFWrapper.cpp.

References ConvertUTF8toWide().

Referenced by ConvertUTF8toWide().

◆ 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 270 of file ConvertUTFWrapper.cpp.

References conversionOK, convertUTF16ToUTF8String(), ConvertUTF32toUTF8(), isLegalUTF8String(), llvm_unreachable, strictConversion, and UNI_MAX_UTF8_BYTES_PER_CODE_POINT.

Referenced by findVCToolChainViaSetupConfig().

◆ copy()

template<typename R, typename OutputIt>
OutputIt llvm::copy ( R && Range,
OutputIt Out )

Definition at line 1815 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

Referenced by llvm::jitlink::LinkGraph::allocateContent(), llvm::jitlink::LinkGraph::allocateContent(), llvm::jitlink::LinkGraph::allocateCString(), llvm::jitlink::LinkGraph::allocateCString(), llvm::MachineFunction::allocateShuffleMask(), llvm::MCObjectStreamer::appendContents(), llvm::AttributeListImpl::AttributeListImpl(), buildFixItLine(), buildRPathLoadCommand(), combineINSERT_SUBVECTOR(), llvm::ConstantAggregate::ConstantAggregate(), llvm::object::convertUTF16LEToUTF8String(), llvm::PHINode::copyIncomingBlocks(), llvm::GlobalObject::copyMetadata(), costShuffleViaSplitting(), costShuffleViaVRegSplitting(), llvm::MachineFunction::createExternalSymbolName(), llvm::DIEInlineString::DIEInlineString(), llvm::objcopy::coff::dumpSection(), dumpSectionToFile(), llvm::objcopy::wasm::dumpSectionToFile(), llvm::EnumeratedArray< ValueType, Enumeration, LargestEnum, IndexType, Size >::EnumeratedArray(), llvm::LegalizerHelper::equalizeVectorShuffleLengths(), llvm::DwarfDebug::getMD5AsBytes(), getMemBufferCopyImpl(), llvm::X86TTIImpl::getShuffleCost(), llvm::object::MinidumpFile::getString(), getValueForSiteInstrProf(), llvm::SelectionDAG::getVectorShuffle(), llvm::SelectionDAG::getVTList(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), llvm::yaml::ScalarTraits< FixedSizeString< N > >::input(), LLVMGetRelocationTypeName(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), mergeVectorRegsToResultRegs(), llvm::cas::builtin::BuiltinCASContext::parseID(), readArray(), llvm::sys::path::replace_path_prefix(), llvm::orc::runAsMain(), llvm::SDDbgValue::SDDbgValue(), llvm::MCFragment::setInst(), llvm::SelectionDAG::setNodeMemRefs(), llvm::MCFragment::setVarContents(), llvm::StringAttributeImpl::StringAttributeImpl(), llvm::SmallPtrSetImplBase::swap(), updateLoadCommandPayloadString(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), llvm::objcopy::elf::SectionWriter::visit(), llvm::objcopy::elf::SectionWriter::visit(), and llvm::MachObjectWriter::writeObject().

◆ 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 1757 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by foldTwoEntryPHINode(), llvm::MCSubtargetInfo::getEnabledProcessorFeatures(), lowerV16I8Shuffle(), lowerV8I16GeneralSingleInputShuffle(), and removeUnreachableFunctions().

◆ copyMetadataForLoad()

void llvm::copyMetadataForLoad ( LoadInst & Dest,
const LoadInst & Source )

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3308 of file Local.cpp.

References BitWidth, DL, llvm::MDNode::get(), getConstantRangeFromMetadata(), llvm::Value::getContext(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), N, and llvm::Instruction::setMetadata().

Referenced by copyMetadataForLoad().

◆ CostTableLookup() [1/2]

◆ CostTableLookup() [2/2]

template<size_t N, class CostType>
const CostTblEntryT< CostType > * llvm::CostTableLookup ( const CostTblEntryT< CostType >(&) Table[N],
int ISD,
MVT Ty )
inline

Definition at line 48 of file CostTable.h.

References CostTableLookup(), and N.

◆ count()

template<typename R, typename E>
auto llvm::count ( R && Range,
const E & Element )

Wrapper function around std::count to count the number of times an element Element occurs in the given range Range.

Definition at line 1934 of file STLExtras.h.

References adl_begin(), adl_end(), E(), and Range.

Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), checkThreadCommand(), collectGlobalObjectNameStrings(), llvm::DwarfCompileUnit::constructLexicalScopeDIE(), llvm::pdb::DIARawSymbol::dump(), DuplicateInstructionsInSplitBetween(), llvm::TimeTraceProfiler::end(), llvm::gsym::OutputAggregator::EnumerateResults(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), format(), llvm::format_provider< std::chrono::duration< Rep, Period > >::format(), forwardSwitchConditionToPHI(), llvm::coverage::MCDCRecord::getDecisions(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::VPBlockBase::getIndexForPredecessor(), llvm::VPBlockBase::getIndexForSuccessor(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU32(), llvm::DataExtractor::getU64(), llvm::DataExtractor::getU8(), llvm::TextInstrProfReader::hasFormat(), llvm::ILPValue::ILPValue(), insertFoldCacheEntry(), llvm::ARM_AM::isNEONBytesplat(), lowerShuffleAsSplitOrBlend(), lowerV8I16GeneralSingleInputShuffle(), llvm::gsym::OutputAggregator::Merge(), nameUnamedGlobals(), llvm::MachO::ArchitectureSet::operator std::string(), llvm::BlockFrequency::operator>>=(), ParseLine(), partAsHex(), llvm::PreservedAnalyses::PreservedAnalysisChecker::PreservedAnalyses, ProcessThinLTOModule(), pruneCache(), llvm::VPlanTransforms::removeBranchOnConst(), llvm::ThinLTOCodeGenerator::run(), saveTempBitcode(), shouldPartialUnroll(), sizeOfSPAdjustment(), llvm::DWARFVerifier::summarize(), ulpsFromBoundary(), updateSuccessor(), llvm::gsym::DwarfTransformer::verify(), llvm::ScheduleDAGSDNodes::VerifyScheduledSequence(), llvm::TimeTraceProfiler::write(), write_retry(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), and llvm::yaml::yamlize().

◆ count_if()

template<typename R, typename UnaryPredicate>
auto llvm::count_if ( R && Range,
UnaryPredicate P )

Wrapper function around std::count_if to count the number of times an element satisfying a given predicate occurs in a range.

Definition at line 1941 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), CalculateUnswitchCostMultiplier(), canRewriteGEPAsOffset(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), combineX86ShuffleChain(), llvm::GEPOperator::countNonConstantIndices(), llvm::SIFrameLowering::determineCalleeSaves(), findHeaderMask(), llvm::ScalarEvolution::getAddExpr(), llvm::NVPTXTTIImpl::getInstructionCost(), llvm::LoopBase< BlockT, LoopT >::getNumBackEdges(), llvm::LoopVectorizationPlanner::getPlanFor(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::GCNTTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), getSHUFPDImm(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::VPlan::hasEarlyExit(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), InlineFunction(), llvm::slpvectorizer::BoUpSLP::isProfitableToReorder(), llvm::slpvectorizer::BoUpSLP::isTreeNotExtendable(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), lower1BitShuffle(), lower256BitShuffle(), lower512BitShuffle(), lowerBUILD_VECTOR(), lowerBuildVectorViaDominantValues(), lowerShuffleAsBroadcast(), lowerShuffleAsPermuteAndUnpack(), lowerShuffleWithSHUFPS(), LowerToHorizontalOp(), lowerV16I32Shuffle(), lowerV16I8Shuffle(), lowerV4F32Shuffle(), lowerV4I32Shuffle(), lowerV8F16Shuffle(), lowerV8I16Shuffle(), lowerV8I32Shuffle(), lowerVECTOR_SHUFFLE(), llvm::orc::shared::numDeallocActions(), processShuffleMasks(), llvm::ProfileAnnotatorImpl::ProfileAnnotatorImpl(), rematerializeLiveValuesAtUses(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), replaceUndefValuesInPhi(), SRAGlobal(), stripDebugLocFromLoopID(), thinLTOInternalizeAndPromoteGUID(), llvm::slpvectorizer::BoUpSLP::transformNodes(), llvm::VFABI::tryDemangleForVFABI(), llvm::InstCombinerImpl::visitExtractElementInst(), and llvm::InstCombinerImpl::visitGEPOfGEP().

◆ CountersBegin()

FunctionAddr VTableAddr uintptr_t llvm::CountersBegin ( uintptr_t )

◆ countl_one()

template<typename T>
int llvm::countl_one ( T Value)
nodiscard

Count the number of ones from the most significant bit to the first zero bit.

Ex. countl_one(0xFF0FFF00) == 8. Only unsigned integral types are allowed.

Returns std::numeric_limits<T>::digits on an input of all ones.

Definition at line 266 of file bit.h.

References countl_zero(), and T.

Referenced by llvm::APInt::countl_one(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), extractRotateInfo(), llvm::SmallBitVector::find_last_unset(), llvm::BitVector::find_last_unset_in(), llvm::KnownBits::makeGE(), llvm::AArch64_AM::processLogicalImmediate(), selectI64ImmDirect(), selectI64ImmDirectPrefix(), and val2MImm().

◆ countl_zero()

template<typename T>
int llvm::countl_zero ( T Val)
nodiscard

Count number of 0's from the most significant bit to the least stopping at the first 1.

Only unsigned integral types are allowed.

Returns std::numeric_limits<T>::digits on an input of 0.

Definition at line 222 of file bit.h.

References T.

Referenced by assignSlotsUsingVGPRBlocks(), bit_width(), CheckForMaskedLoad(), CombineANDShift(), combineBitcast(), llvm::SITargetLowering::computeKnownBitsForTargetInstr(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::ConcurrentHashTableByPtr(), countl_one(), llvm::APInt::countl_zero(), llvm::ScaledNumberBase::countLeadingZeros32(), llvm::ScaledNumberBase::countLeadingZeros64(), llvm::ConstantRange::ctlz(), llvm::AArch64_AM::decodeLogicalImmediate(), llvm::ScaledNumbers::divide32(), llvm::ScaledNumbers::divide64(), emitT2RegPlusImmediate(), expandMOVImmSimple(), llvm::SmallBitVector::find_last(), llvm::SparseBitVectorElement< ElementSize >::find_last(), llvm::BitVector::find_last_in(), llvm::SmallBitVector::find_prev(), findContiguousZerosAtLeast(), findContiguousZerosAtLeast(), fitWeights(), llvm::InstCombinerImpl::foldICmpShrConstant(), foldOperationIfPossible(), generateInstSeqLeadingZeros(), llvm::GCNSubtarget::getKnownHighZeroBitsForFrameIndex(), llvm::ARM_AM::getT2SOImmValRotateVal(), getUnsignedCountTrailingZerosRange(), getUnsignedPopCountRange(), isRunOfOnes(), isRunOfOnes64(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), knownBitsForWorkitemID(), KnuthDiv(), Log2_32(), Log2_32_Ceil(), Log2_64(), Log2_64_Ceil(), llvm::ScaledNumbers::matchScales(), mostAlignedValueInRange(), llvm::ScaledNumbers::multiply64(), llvm::BlockFrequencyInfoImplBase::Distribution::normalize(), PerformShiftCombine(), rewriteT2FrameIndex(), selectI64ImmDirect(), selectI64ImmDirectPrefix(), llvm::RISCVDAGToDAGISel::selectSHXADD_UWOp(), llvm::ConstantRange::shl(), and val2MImm().

◆ countr_one()

◆ countr_zero()

template<typename T>
int llvm::countr_zero ( T Val)
nodiscard

Count number of 0's from the least significant bit to the most stopping at the first 1.

Only unsigned integral types are allowed.

Returns std::numeric_limits<T>::digits on an input of 0.

Definition at line 186 of file bit.h.

References popcount(), and T.

Referenced by BinomialCoefficient(), llvm::lowertypetests::BitSetBuilder::build(), llvm::AMDGPULegalizerInfo::buildLoadInputValue(), llvm::PPCTargetLowering::BuildSDIVPow2(), calculateFileAlignment(), canUseShiftPair(), CheckForMaskedLoad(), CombineANDShift(), combineMulSpecial(), combineX86ShufflesRecursively(), llvm::X86InstrInfo::commuteInstructionImpl(), computeKnownBitsFromOperator(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::ConcurrentHashTableByPtr(), countr_one(), llvm::APInt::countr_zero(), llvm::object::ObjectFile::createELFObjectFile(), decodeCRBitMOperand(), llvm::PPCTargetLowering::decomposeMulByConstant(), llvm::ScaledNumbers::divide64(), dumpApplePropertyAttribute(), llvm::ELF::encodeCrel(), llvm::HexagonEvaluator::evaluate(), expandMOVImmSimple(), expandMul(), expandPredBlockMask(), llvm::SmallBitVector::find_first(), llvm::SparseBitVectorElement< ElementSize >::find_first(), llvm::BitVector::find_first_in(), llvm::SmallBitVector::find_next(), llvm::SparseBitVectorElement< ElementSize >::find_next(), findContiguousZerosAtLeast(), findContiguousZerosAtLeast(), llvm::wholeprogramdevirt::findLowestOffset(), firstCommonClass(), foldOperationIfPossible(), llvm::RISCVMatInt::generateInstSeq(), generateInstSeqImpl(), llvm::RISCVMatInt::generateTwoRegInstSeq(), getBitRangeFromMask(), llvm::detail::IEEEFloat::getExactLog2Abs(), llvm::DomainValue::getFirstDomain(), llvm::ARM_AM::getSOImmValRotate(), llvm::ARM_AM::getT2SOImmValRotate(), getTestUnderMaskCond(), llvm::ARM_AM::getThumbImm16ValShift(), llvm::ARM_AM::getThumbImmValShift(), llvm::rdf::PhysicalRegisterInfo::getUnits(), llvm::BasicBlockInfo::internalKnownBits(), isBitfieldPositioningOpFromAnd(), isBitfieldPositioningOpFromShl(), isShiftedMask_32(), isShiftedMask_64(), isShiftedUIntAtAnyPosition(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), isWorthFoldingIntoOrrWithShift(), llvm::AMDGPUTargetLowering::loadInputValue(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArguments(), maximalLogicalImmWithin(), llvm::SIInstrInfo::optimizeCompareInstr(), optimizeSection(), PerformBFICombine(), PerformMULCombine(), PerformORCombineToBFI(), performSETCCCombine(), performSRACombine(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::hlsl::rootsig::printFlags(), llvm::ARMInstPrinter::printThumbITMask(), llvm::ARMInstPrinter::printVPTMask(), llvm::AArch64_AM::processLogicalImmediate(), reduceSwitchRange(), llvm::RISCVDAGToDAGISel::Select(), selectI64ImmDirect(), selectI64ImmDirectPrefix(), llvm::RISCVDAGToDAGISel::selectSHXADD_UWOp(), llvm::RISCVDAGToDAGISel::selectSHXADDOp(), llvm::jitlink::Block::setAlignment(), llvm::HexagonResource::setWeight(), simplifySwitchOfPowersOfTwo(), splitDisjointBitmaskImm(), llvm::APInt::tcLSB(), tryBitfieldInsertOpFromOr(), tryEorOfLogicalImmediates(), TypeSizeToSizeIndex(), llvm::AMDGPU::TypeStoreSizeToSizeIndex(), TypeStoreSizeToSizeIndex(), llvm::SelectionDAGBuilder::visitBitTestCase(), and llvm::InstCombinerImpl::visitGetElementPtrInst().

◆ COVINIT_FUNC()

FunctionAddr VTableAddr uintptr_t uintptr_t WriteoutF llvm::COVINIT_FUNC ( IntPtrT ,
llvm::PointerType::getUnqual(Ctx) ,
ResetFunction ,
ResetF  )

This is the header of the data structure that defines the on-disk layout of the value profile data of a particular kind for one function.

Return the ValueProfRecord header size including the padding bytes.

Definition at line 315 of file InstrProf.h.

◆ crc32() [1/2]

uint32_t llvm::crc32 ( ArrayRef< uint8_t > Data)

Definition at line 101 of file CRC.cpp.

References crc32(), and Data.

Referenced by crc32(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), and llvm::JamCRC::update().

◆ crc32() [2/2]

uint32_t llvm::crc32 ( uint32_t CRC,
ArrayRef< uint8_t > Data )

Definition at line 75 of file CRC.cpp.

References Data.

◆ createA15SDOptimizerPass()

FunctionPass * llvm::createA15SDOptimizerPass ( )

Definition at line 681 of file A15SDOptimizer.cpp.

◆ createAArch64A53Fix835769()

FunctionPass * llvm::createAArch64A53Fix835769 ( )

Definition at line 245 of file AArch64A53Fix835769.cpp.

◆ createAArch64A57FPLoadBalancing()

FunctionPass * llvm::createAArch64A57FPLoadBalancing ( )

Definition at line 719 of file AArch64A57FPLoadBalancing.cpp.

◆ createAArch64AdvSIMDScalar()

FunctionPass * llvm::createAArch64AdvSIMDScalar ( )

Definition at line 407 of file AArch64AdvSIMDScalarPass.cpp.

◆ createAArch64Arm64ECCallLoweringPass()

ModulePass * llvm::createAArch64Arm64ECCallLoweringPass ( )

Referenced by INITIALIZE_PASS().

◆ createAArch64AsmTargetStreamer()

MCTargetStreamer * llvm::createAArch64AsmTargetStreamer ( MCStreamer & S,
formatted_raw_ostream & OS,
MCInstPrinter * InstPrint )

Definition at line 568 of file AArch64ELFStreamer.cpp.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAArch64beAsmBackend()

◆ createAArch64BranchTargetsPass()

FunctionPass * llvm::createAArch64BranchTargetsPass ( )

◆ createAArch64CleanupLocalDynamicTLSPass()

FunctionPass * llvm::createAArch64CleanupLocalDynamicTLSPass ( )

◆ createAArch64CollectLOHPass()

FunctionPass * llvm::createAArch64CollectLOHPass ( )

Definition at line 598 of file AArch64CollectLOH.cpp.

◆ createAArch64CompressJumpTablesPass()

FunctionPass * llvm::createAArch64CompressJumpTablesPass ( )

Definition at line 182 of file AArch64CompressJumpTables.cpp.

◆ createAArch64CondBrTuning()

FunctionPass * llvm::createAArch64CondBrTuning ( )

Definition at line 327 of file AArch64CondBrTuning.cpp.

◆ createAArch64ConditionalCompares()

aarch64 AArch64 CCMP false FunctionPass * llvm::createAArch64ConditionalCompares ( )

◆ createAArch64ConditionOptimizerPass()

aarch64 AArch64 CondOpt false FunctionPass * llvm::createAArch64ConditionOptimizerPass ( )

◆ createAArch64DeadRegisterDefinitions()

FunctionPass * llvm::createAArch64DeadRegisterDefinitions ( )

Definition at line 200 of file AArch64DeadRegisterDefinitionsPass.cpp.

◆ createAArch64ELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64ELFObjectWriter ( uint8_t OSABI,
bool IsILP32 )

Definition at line 514 of file AArch64ELFObjectWriter.cpp.

◆ createAArch64ELFStreamer()

MCStreamer * llvm::createAArch64ELFStreamer ( const Triple & ,
MCContext & Context,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && Emitter )

Definition at line 574 of file AArch64ELFStreamer.cpp.

References Emitter.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAArch64ExpandPseudoPass()

FunctionPass * llvm::createAArch64ExpandPseudoPass ( )

Returns an instance of the pseudo instruction expansion pass.

Definition at line 1859 of file AArch64ExpandPseudoInsts.cpp.

◆ createAArch64InstructionSelector()

InstructionSelector * llvm::createAArch64InstructionSelector ( const AArch64TargetMachine & TM,
const AArch64Subtarget & Subtarget,
const AArch64RegisterBankInfo & RBI )

◆ createAArch64ISelDag()

FunctionPass * llvm::createAArch64ISelDag ( AArch64TargetMachine & TM,
CodeGenOptLevel OptLevel )

createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling.

Definition at line 7390 of file AArch64ISelDAGToDAG.cpp.

◆ createAArch64leAsmBackend()

◆ createAArch64LoadStoreOptimizationPass()

FunctionPass * llvm::createAArch64LoadStoreOptimizationPass ( )

createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass.

Definition at line 3115 of file AArch64LoadStoreOptimizer.cpp.

◆ createAArch64LowerHomogeneousPrologEpilogPass()

ModulePass * llvm::createAArch64LowerHomogeneousPrologEpilogPass ( )

Definition at line 660 of file AArch64LowerHomogeneousPrologEpilog.cpp.

◆ createAArch64MachObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64MachObjectWriter ( uint32_t CPUType,
uint32_t CPUSubtype,
bool IsILP32 )

Definition at line 433 of file AArch64MachObjectWriter.cpp.

◆ createAArch64MacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createAArch64MacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64TargetMachine::createMachineScheduler() to have an effect.

Definition at line 516 of file AArch64MacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by llvm::AArch64TargetMachine::createMachineScheduler(), and llvm::AArch64TargetMachine::createPostMachineScheduler().

◆ createAArch64MCCodeEmitter()

MCCodeEmitter * llvm::createAArch64MCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 782 of file AArch64MCCodeEmitter.cpp.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAArch64MIPeepholeOptPass()

FunctionPass * llvm::createAArch64MIPeepholeOptPass ( )

Definition at line 1011 of file AArch64MIPeepholeOpt.cpp.

◆ createAArch64NullTargetStreamer()

MCTargetStreamer * llvm::createAArch64NullTargetStreamer ( MCStreamer & S)

Definition at line 152 of file AArch64TargetStreamer.cpp.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAArch64O0PreLegalizerCombiner()

FunctionPass * llvm::createAArch64O0PreLegalizerCombiner ( )

Definition at line 184 of file AArch64O0PreLegalizerCombiner.cpp.

◆ createAArch64ObjectTargetStreamer()

MCTargetStreamer * llvm::createAArch64ObjectTargetStreamer ( MCStreamer & S,
const MCSubtargetInfo & STI )

◆ createAArch64PointerAuthPass()

FunctionPass * llvm::createAArch64PointerAuthPass ( )

Referenced by INITIALIZE_PASS().

◆ createAArch64PostCoalescerPass()

FunctionPass * llvm::createAArch64PostCoalescerPass ( )

Definition at line 96 of file AArch64PostCoalescerPass.cpp.

◆ createAArch64PostLegalizerCombiner()

FunctionPass * llvm::createAArch64PostLegalizerCombiner ( bool IsOptNone)

Definition at line 890 of file AArch64PostLegalizerCombiner.cpp.

◆ createAArch64PostLegalizerLowering()

FunctionPass * llvm::createAArch64PostLegalizerLowering ( )

Definition at line 1287 of file AArch64PostLegalizerLowering.cpp.

◆ createAArch64PostSelectOptimize()

FunctionPass * llvm::createAArch64PostSelectOptimize ( )

Definition at line 316 of file AArch64PostSelectOptimize.cpp.

◆ createAArch64PreLegalizerCombiner()

FunctionPass * llvm::createAArch64PreLegalizerCombiner ( )

Definition at line 912 of file AArch64PreLegalizerCombiner.cpp.

◆ createAArch64PromoteConstantPass()

aarch64 promote AArch64 Promote Constant false ModulePass * llvm::createAArch64PromoteConstantPass ( )

◆ createAArch64RedundantCopyEliminationPass()

FunctionPass * llvm::createAArch64RedundantCopyEliminationPass ( )

Definition at line 492 of file AArch64RedundantCopyElimination.cpp.

◆ createAArch64SIMDInstrOptPass()

FunctionPass * llvm::createAArch64SIMDInstrOptPass ( )

Returns an instance of the high cost ASIMD instruction replacement optimization pass.

Definition at line 737 of file AArch64SIMDInstrOpt.cpp.

◆ createAArch64SLSHardeningPass()

FunctionPass * llvm::createAArch64SLSHardeningPass ( )

Referenced by INITIALIZE_PASS().

◆ createAArch64SpeculationHardeningPass()

FunctionPass * llvm::createAArch64SpeculationHardeningPass ( )

Returns an instance of the pseudo instruction expansion pass.

Definition at line 697 of file AArch64SpeculationHardening.cpp.

◆ createAArch64StackTaggingPass()

AArch64 Stack false FunctionPass * llvm::createAArch64StackTaggingPass ( bool IsOptNone)

Definition at line 358 of file AArch64StackTagging.cpp.

References createAArch64StackTaggingPass().

Referenced by createAArch64StackTaggingPass().

◆ createAArch64StackTaggingPreRAPass()

aarch64 stack tagging pre AArch64 Stack Tagging PreRA false FunctionPass * llvm::createAArch64StackTaggingPreRAPass ( )

◆ createAArch64StorePairSuppressPass()

FunctionPass * llvm::createAArch64StorePairSuppressPass ( )

Referenced by INITIALIZE_PASS().

◆ createAArch64WinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64WinCOFFObjectWriter ( const Triple & TheTriple)

Definition at line 163 of file AArch64WinCOFFObjectWriter.cpp.

◆ createAArch64WinCOFFStreamer()

MCStreamer * llvm::createAArch64WinCOFFStreamer ( MCContext & Context,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && Emitter )

Definition at line 302 of file AArch64WinCOFFStreamer.cpp.

References Emitter.

Referenced by LLVMInitializeAArch64TargetMC().

◆ createAggressiveAntiDepBreaker()

AntiDepBreaker * llvm::createAggressiveAntiDepBreaker ( MachineFunction & MFi,
const RegisterClassInfo & RCI,
TargetSubtargetInfo::RegClassVector & CriticalPathRCs )

Definition at line 967 of file AggressiveAntiDepBreaker.cpp.

Referenced by INITIALIZE_PASS().

◆ createAllocaHoisting()

FunctionPass * llvm::createAllocaHoisting ( )

Referenced by INITIALIZE_PASS().

◆ createAlwaysInlinerLegacyPass()

always Inliner for always_inline false Pass * llvm::createAlwaysInlinerLegacyPass ( bool InsertLifetime = true)

Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline".

Definition at line 164 of file AlwaysInliner.cpp.

References createAlwaysInlinerLegacyPass().

Referenced by llvm::AMDGPUPassConfig::addIRPasses(), and createAlwaysInlinerLegacyPass().

◆ createAMDGPUAAWrapperPass()

amdgpu aa AMDGPU Address space based Alias Analysis true ImmutablePass * llvm::createAMDGPUAAWrapperPass ( )

◆ createAMDGPUAlwaysInlinePass()

ModulePass * llvm::createAMDGPUAlwaysInlinePass ( bool GlobalOpt = true)

Definition at line 164 of file AMDGPUAlwaysInlinePass.cpp.

Referenced by llvm::AMDGPUPassConfig::addIRPasses().

◆ createAMDGPUAnnotateUniformValuesLegacy()

FunctionPass * llvm::createAMDGPUAnnotateUniformValuesLegacy ( )

◆ createAMDGPUAsmBackend()

MCAsmBackend * llvm::createAMDGPUAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 255 of file AMDGPUAsmBackend.cpp.

References llvm::MCSubtargetInfo::getTargetTriple(), MRI, Options, and T.

Referenced by LLVMInitializeAMDGPUTargetMC().

◆ createAMDGPUAtomicOptimizerPass()

AMDGPU atomic false FunctionPass * llvm::createAMDGPUAtomicOptimizerPass ( ScanOptions ScanStrategy)

◆ createAMDGPUCodeGenPreparePass()

FunctionPass * llvm::createAMDGPUCodeGenPreparePass ( )

◆ createAMDGPUCtorDtorLoweringLegacyPass()

ModulePass * llvm::createAMDGPUCtorDtorLoweringLegacyPass ( )

◆ createAMDGPUELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAMDGPUELFObjectWriter ( bool Is64Bit,
uint8_t OSABI,
bool HasRelocationAddend )

Definition at line 97 of file AMDGPUELFObjectWriter.cpp.

◆ createAMDGPUELFStreamer()

MCELFStreamer * llvm::createAMDGPUELFStreamer ( const Triple & T,
MCContext & Context,
std::unique_ptr< MCAsmBackend > MAB,
std::unique_ptr< MCObjectWriter > OW,
std::unique_ptr< MCCodeEmitter > Emitter )

Definition at line 32 of file AMDGPUELFStreamer.cpp.

References Emitter, and T.

Referenced by createMCStreamer().

◆ createAMDGPUExportClusteringDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createAMDGPUExportClusteringDAGMutation ( )

◆ createAMDGPUExportKernelRuntimeHandlesLegacyPass()

ModulePass * llvm::createAMDGPUExportKernelRuntimeHandlesLegacyPass ( )

◆ createAMDGPUExternalAAWrapperPass()

ImmutablePass * llvm::createAMDGPUExternalAAWrapperPass ( )

Definition at line 37 of file AMDGPUAliasAnalysis.cpp.

◆ createAMDGPUGlobalISelDivergenceLoweringPass()

FunctionPass * llvm::createAMDGPUGlobalISelDivergenceLoweringPass ( )

◆ createAMDGPUImageIntrinsicOptimizerPass()

FunctionPass * llvm::createAMDGPUImageIntrinsicOptimizerPass ( const TargetMachine * TM)

◆ createAMDGPUISelDag()

amdgpu AMDGPU DAG DAG Pattern Instruction false FunctionPass * llvm::createAMDGPUISelDag ( TargetMachine & TM,
CodeGenOptLevel OptLevel )

This pass converts a legalized DAG into a AMDGPU-specific.

Definition at line 150 of file AMDGPUISelDAGToDAG.cpp.

References createAMDGPUISelDag().

Referenced by llvm::AMDGPUPassConfig::addInstSelector(), and createAMDGPUISelDag().

◆ createAMDGPULateCodeGenPrepareLegacyPass()

FunctionPass * llvm::createAMDGPULateCodeGenPrepareLegacyPass ( )

◆ createAMDGPULowerBufferFatPointersPass()

false ModulePass * llvm::createAMDGPULowerBufferFatPointersPass ( )

◆ createAMDGPULowerIntrinsicsLegacyPass()

ModulePass * llvm::createAMDGPULowerIntrinsicsLegacyPass ( )

◆ createAMDGPULowerKernelArgumentsPass()

FunctionPass * llvm::createAMDGPULowerKernelArgumentsPass ( )

◆ createAMDGPULowerKernelAttributesPass()

ModulePass * llvm::createAMDGPULowerKernelAttributesPass ( )

◆ createAMDGPULowerModuleLDSLegacyPass()

Lower uses of LDS variables from non kernel false ModulePass * llvm::createAMDGPULowerModuleLDSLegacyPass ( const AMDGPUTargetMachine * TM = nullptr)

◆ createAMDGPUMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createAMDGPUMacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUTargetMachine::createMachineScheduler() to have an effect.

Definition at line 62 of file AMDGPUMacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by createGCNMaxOccupancyMachineScheduler(), and createIterativeILPMachineScheduler().

◆ createAMDGPUMCCodeEmitter()

MCCodeEmitter * llvm::createAMDGPUMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

◆ createAMDGPUPostLegalizeCombiner()

Combine AMDGPU machine instrs after false FunctionPass * llvm::createAMDGPUPostLegalizeCombiner ( bool IsOptNone)

◆ createAMDGPUPreLegalizeCombiner()

Combine AMDGPU machine instrs before false FunctionPass * llvm::createAMDGPUPreLegalizeCombiner ( bool IsOptNone)

◆ createAMDGPUPreloadKernArgPrologLegacyPass()

FunctionPass * llvm::createAMDGPUPreloadKernArgPrologLegacyPass ( )

◆ createAMDGPUPreloadKernelArgumentsLegacyPass()

ModulePass * llvm::createAMDGPUPreloadKernelArgumentsLegacyPass ( const TargetMachine * )

◆ createAMDGPUPrintfRuntimeBinding()

ModulePass * llvm::createAMDGPUPrintfRuntimeBinding ( )

◆ createAMDGPUPromoteAlloca()

FunctionPass * llvm::createAMDGPUPromoteAlloca ( )

Definition at line 235 of file AMDGPUPromoteAlloca.cpp.

Referenced by llvm::AMDGPUPassConfig::addIRPasses().

◆ createAMDGPUPromoteKernelArgumentsPass()

FunctionPass * llvm::createAMDGPUPromoteKernelArgumentsPass ( )

◆ createAMDGPURegBankCombiner()

Combine AMDGPU machine instrs after false FunctionPass * llvm::createAMDGPURegBankCombiner ( bool IsOptNone)

Definition at line 590 of file AMDGPURegBankCombiner.cpp.

References createAMDGPURegBankCombiner().

Referenced by createAMDGPURegBankCombiner().

◆ createAMDGPURegBankLegalizePass()

FunctionPass * llvm::createAMDGPURegBankLegalizePass ( )

◆ createAMDGPURegBankSelectPass()

FunctionPass * llvm::createAMDGPURegBankSelectPass ( )

Definition at line 74 of file AMDGPURegBankSelect.cpp.

References createAMDGPURegBankSelectPass().

Referenced by createAMDGPURegBankSelectPass().

◆ createAMDGPURemoveIncompatibleFunctionsPass()

ModulePass * llvm::createAMDGPURemoveIncompatibleFunctionsPass ( const TargetMachine * )

◆ createAMDGPUReserveWWMRegsPass()

FunctionPass * llvm::createAMDGPUReserveWWMRegsPass ( )

◆ createAMDGPURewriteOutArgumentsPass()

FunctionPass * llvm::createAMDGPURewriteOutArgumentsPass ( )

Definition at line 397 of file AMDGPURewriteOutArguments.cpp.

◆ createAMDGPURewriteUndefForPHILegacyPass()

FunctionPass * llvm::createAMDGPURewriteUndefForPHILegacyPass ( )

Definition at line 191 of file AMDGPURewriteUndefForPHI.cpp.

◆ createAMDGPUSetWavePriorityPass()

FunctionPass * llvm::createAMDGPUSetWavePriorityPass ( )

◆ createAMDGPUStructurizeCFGPass()

Pass * llvm::createAMDGPUStructurizeCFGPass ( )

◆ createAMDGPUSwLowerLDSLegacyPass()

ModulePass * llvm::createAMDGPUSwLowerLDSLegacyPass ( const AMDGPUTargetMachine * TM = nullptr)

Definition at line 1340 of file AMDGPUSwLowerLDS.cpp.

Referenced by llvm::AMDGPUPassConfig::addIRPasses().

◆ createAnyOfReduction()

Value * llvm::createAnyOfReduction ( IRBuilderBase & B,
Value * Src,
Value * InitVal,
PHINode * OrigPhi )

Create a reduction of the given vector Src for a reduction of kind RecurKind::AnyOf.

The start value of the reduction is InitVal.

Definition at line 1301 of file LoopUtils.cpp.

References AnyOf, assert(), dyn_cast(), and llvm::Value::users().

◆ createARCBranchFinalizePass()

FunctionPass * llvm::createARCBranchFinalizePass ( )

Definition at line 181 of file ARCBranchFinalize.cpp.

◆ createARCExpandPseudosPass()

FunctionPass * llvm::createARCExpandPseudosPass ( )

Definition at line 163 of file ARCExpandPseudos.cpp.

◆ createARCISelDag()

FunctionPass * llvm::createARCISelDag ( ARCTargetMachine & TM,
CodeGenOptLevel OptLevel )

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

Definition at line 78 of file ARCISelDAGToDAG.cpp.

References createARCISelDag().

Referenced by createARCISelDag().

◆ createARCOptAddrMode()

FunctionPass * llvm::createARCOptAddrMode ( )

Definition at line 530 of file ARCOptAddrMode.cpp.

◆ createARMBEAsmBackend()

MCAsmBackend * llvm::createARMBEAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 1387 of file ARMAsmBackend.cpp.

References big, createARMAsmBackend(), MRI, Options, and T.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMBEMCCodeEmitter()

MCCodeEmitter * llvm::createARMBEMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 2097 of file ARMMCCodeEmitter.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMBlockPlacementPass()

FunctionPass * llvm::createARMBlockPlacementPass ( )

Definition at line 57 of file ARMBlockPlacement.cpp.

◆ createARMBranchTargetsPass()

FunctionPass * llvm::createARMBranchTargetsPass ( )

◆ createARMConstantIslandPass()

FunctionPass * llvm::createARMConstantIslandPass ( )

createARMConstantIslandPass - returns an instance of the constpool island pass.

Definition at line 2509 of file ARMConstantIslandPass.cpp.

◆ createARMELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createARMELFObjectWriter ( uint8_t OSABI)

Construct an ELF Mach-O object writer.

Definition at line 328 of file ARMELFObjectWriter.cpp.

Referenced by llvm::ARMAsmBackendELF::createObjectTargetWriter().

◆ createARMELFStreamer()

MCELFStreamer * llvm::createARMELFStreamer ( MCContext & Context,
std::unique_ptr< MCAsmBackend > TAB,
std::unique_ptr< MCObjectWriter > OW,
std::unique_ptr< MCCodeEmitter > Emitter,
bool IsThumb,
bool IsAndroid )

Definition at line 1494 of file ARMELFStreamer.cpp.

References llvm::ELF::EF_ARM_EABI_VER5, and Emitter.

Referenced by createELFStreamer().

◆ createARMExpandPseudoPass()

FunctionPass * llvm::createARMExpandPseudoPass ( )

createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.

Definition at line 3317 of file ARMExpandPseudoInsts.cpp.

◆ createARMFixCortexA57AES1742098Pass()

FunctionPass * llvm::createARMFixCortexA57AES1742098Pass ( )

Definition at line 424 of file ARMFixCortexA57AES1742098Pass.cpp.

◆ createARMIndirectThunks()

FunctionPass * llvm::createARMIndirectThunks ( )

Definition at line 400 of file ARMSLSHardening.cpp.

◆ createARMInstructionSelector()

InstructionSelector * llvm::createARMInstructionSelector ( const ARMBaseTargetMachine & TM,
const ARMSubtarget & STI,
const ARMRegisterBankInfo & RBI )

Definition at line 162 of file ARMInstructionSelector.cpp.

Referenced by llvm::ARMSubtarget::ARMSubtarget().

◆ createARMISelDag()

FunctionPass * llvm::createARMISelDag ( ARMBaseTargetMachine & TM,
CodeGenOptLevel OptLevel )

createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling.

Definition at line 5877 of file ARMISelDAGToDAG.cpp.

◆ createARMLatencyMutations() [1/2]

std::unique_ptr< ScheduleDAGMutation > llvm::createARMLatencyMutations ( const ARMSubtarget & ST,
AAResults * AA )

◆ createARMLatencyMutations() [2/2]

std::unique_ptr< ScheduleDAGMutation > llvm::createARMLatencyMutations ( const class ARMSubtarget & ,
AAResults * AA )

Note that you have to add: DAG.addMutation(createARMLatencyMutation(ST, AA)); to ARMTargetMachine::createMachineScheduler() to have an effect.

◆ createARMLEAsmBackend()

MCAsmBackend * llvm::createARMLEAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 1380 of file ARMAsmBackend.cpp.

References createARMAsmBackend(), little, MRI, Options, and T.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMLEMCCodeEmitter()

MCCodeEmitter * llvm::createARMLEMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 2092 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 3300 of file ARMLoadStoreOptimizer.cpp.

◆ createARMLowOverheadLoopsPass()

FunctionPass * llvm::createARMLowOverheadLoopsPass ( )

Definition at line 1857 of file ARMLowOverheadLoops.cpp.

◆ 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 491 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 40 of file ARMMachORelocationInfo.cpp.

Referenced by createARMMCRelocationInfo().

◆ createARMMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createARMMacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMTargetMachine::createMachineScheduler() to have an effect.

Definition at line 65 of file ARMMacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by llvm::ARMBaseTargetMachine::createMachineScheduler(), and llvm::ARMBaseTargetMachine::createPostMachineScheduler().

◆ createARMNullTargetStreamer()

MCTargetStreamer * llvm::createARMNullTargetStreamer ( MCStreamer & S)

Definition at line 1486 of file ARMELFStreamer.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMObjectTargetELFStreamer()

MCTargetStreamer * llvm::createARMObjectTargetELFStreamer ( MCStreamer & S)

Definition at line 1490 of file ARMELFStreamer.cpp.

Referenced by createARMObjectTargetStreamer().

◆ createARMObjectTargetMachOStreamer()

MCTargetStreamer * llvm::createARMObjectTargetMachOStreamer ( MCStreamer & S)

Definition at line 512 of file ARMMachObjectWriter.cpp.

Referenced by createARMObjectTargetStreamer().

◆ createARMObjectTargetStreamer()

◆ createARMObjectTargetWinCOFFStreamer()

MCTargetStreamer * llvm::createARMObjectTargetWinCOFFStreamer ( MCStreamer & S)

Definition at line 264 of file ARMWinCOFFStreamer.cpp.

Referenced by createARMObjectTargetStreamer().

◆ createARMOptimizeBarriersPass()

FunctionPass * llvm::createARMOptimizeBarriersPass ( )

createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass.

Definition at line 102 of file ARMOptimizeBarriersPass.cpp.

◆ createARMParallelDSPPass()

Pass * llvm::createARMParallelDSPPass ( )

Definition at line 808 of file ARMParallelDSP.cpp.

◆ createARMSLSHardeningPass()

FunctionPass * llvm::createARMSLSHardeningPass ( )

Definition at line 383 of file ARMSLSHardening.cpp.

◆ createARMTargetAsmStreamer()

MCTargetStreamer * llvm::createARMTargetAsmStreamer ( MCStreamer & S,
formatted_raw_ostream & OS,
MCInstPrinter * InstPrint )

Definition at line 1480 of file ARMELFStreamer.cpp.

Referenced by LLVMInitializeARMTargetMC().

◆ createARMWinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createARMWinCOFFObjectWriter ( )

Construct an ARM PE/COFF object writer.

Definition at line 101 of file ARMWinCOFFObjectWriter.cpp.

Referenced by llvm::ARMAsmBackendWinCOFF::createObjectTargetWriter().

◆ createARMWinCOFFStreamer()

MCStreamer * llvm::createARMWinCOFFStreamer ( MCContext & Context,
std::unique_ptr< MCAsmBackend > && MAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && Emitter )

Definition at line 65 of file ARMWinCOFFStreamer.cpp.

References Emitter.

Referenced by LLVMInitializeARMTargetMC().

◆ createAsmStreamer()

MCStreamer * llvm::createAsmStreamer ( MCContext & Ctx,
std::unique_ptr< formatted_raw_ostream > OS,
std::unique_ptr< MCInstPrinter > InstPrint,
std::unique_ptr< MCCodeEmitter > CE,
std::unique_ptr< MCAsmBackend > TAB )

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 2664 of file MCAsmStreamer.cpp.

Referenced by llvm::Target::createAsmStreamer(), and createSystemZAsmStreamer().

◆ createAtomicExpandLegacyPass()

FunctionPass * llvm::createAtomicExpandLegacyPass ( )

AtomicExpandPass - At IR level this pass replace atomic instructions with __atomic_* library calls, or target specific instruction which implement the same semantics in a way which better fits the target backend.

Definition at line 430 of file AtomicExpandPass.cpp.

Referenced by llvm::AMDGPUPassConfig::addIRPasses().

◆ 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 522 of file AVRAsmBackend.cpp.

References llvm::Triple::getOS(), llvm::MCSubtargetInfo::getTargetTriple(), MRI, and T.

Referenced by LLVMInitializeAVRTargetMC().

◆ createAVRBranchSelectionPass()

FunctionPass * llvm::createAVRBranchSelectionPass ( )

◆ createAVRELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createAVRELFObjectWriter ( uint8_t OSABI)

Creates an ELF object writer for AVR.

Definition at line 152 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 )

Definition at line 44 of file AVRMCELFStreamer.cpp.

◆ createAVRExpandPseudoPass()

FunctionPass * llvm::createAVRExpandPseudoPass ( )

Referenced by INITIALIZE_PASS().

◆ createAVRFrameAnalyzerPass()

FunctionPass * llvm::createAVRFrameAnalyzerPass ( )

Creates instance of the frame analyzer pass.

Definition at line 495 of file AVRFrameLowering.cpp.

◆ createAVRISelDag()

FunctionPass * llvm::createAVRISelDag ( AVRTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 596 of file AVRISelDAGToDAG.cpp.

◆ createAVRMCCodeEmitter()

MCCodeEmitter * llvm::createAVRMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Creates a machine code emitter for AVR.

References MRI, and T.

Referenced by LLVMInitializeAVRTargetMC().

◆ createAVRMCInstrInfo()

MCInstrInfo * llvm::createAVRMCInstrInfo ( )

◆ createAVRShiftExpandPass()

Pass * llvm::createAVRShiftExpandPass ( )

Referenced by INITIALIZE_PASS().

◆ 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.

◆ createBasicAAWrapperPass()

basic Basic Alias true FunctionPass * llvm::createBasicAAWrapperPass ( )

◆ createBasicBlockPathCloningPass()

LLVM_ABI MachineFunctionPass * llvm::createBasicBlockPathCloningPass ( )

◆ createBasicBlockSectionsPass()

MachineFunctionPass * llvm::createBasicBlockSectionsPass ( )

createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections.

Definition at line 410 of file BasicBlockSections.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ createBasicBlockSectionsProfileReaderWrapperPass()

ImmutablePass * llvm::createBasicBlockSectionsProfileReaderWrapperPass ( const MemoryBuffer * Buf)

◆ createBasicRegisterAllocator() [1/2]

FunctionPass * llvm::createBasicRegisterAllocator ( )

BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.

Definition at line 253 of file RegAllocBasic.cpp.

◆ createBasicRegisterAllocator() [2/2]

FunctionPass * llvm::createBasicRegisterAllocator ( RegAllocFilterFunc F)

Definition at line 257 of file RegAllocBasic.cpp.

References F.

◆ createBitcodeWriterPass()

write Write true ModulePass * llvm::createBitcodeWriterPass ( raw_ostream & Str,
bool ShouldPreserveUseListOrder = 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.

Definition at line 72 of file BitcodeWriterPass.cpp.

References createBitcodeWriterPass().

Referenced by createBitcodeWriterPass().

◆ createBitMaskForGaps()

Constant * llvm::createBitMaskForGaps ( IRBuilderBase & 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 1125 of file VectorUtils.cpp.

References assert(), llvm::ConstantVector::get(), llvm::InterleaveGroup< InstTy >::getFactor(), llvm::InterleaveGroup< InstTy >::getMember(), llvm::InterleaveGroup< InstTy >::isFull(), and llvm::InterleaveGroup< InstTy >::isReverse().

Referenced by llvm::VPInterleaveRecipe::execute().

◆ createBPFAsmBackend()

MCAsmBackend * llvm::createBPFAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 111 of file BPFAsmBackend.cpp.

References little, MRI, and T.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFbeAsmBackend()

MCAsmBackend * llvm::createBPFbeAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 118 of file BPFAsmBackend.cpp.

References big, MRI, and T.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFbeMCCodeEmitter()

MCCodeEmitter * llvm::createBPFbeMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 75 of file BPFMCCodeEmitter.cpp.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFCheckAndAdjustIR()

ModulePass * llvm::createBPFCheckAndAdjustIR ( )

Referenced by INITIALIZE_PASS().

◆ createBPFELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createBPFELFObjectWriter ( uint8_t OSABI)

Definition at line 83 of file BPFELFObjectWriter.cpp.

◆ createBPFInstructionSelector()

InstructionSelector * llvm::createBPFInstructionSelector ( const BPFTargetMachine & TM,
const BPFSubtarget & Subtarget,
const BPFRegisterBankInfo & RBI )

Definition at line 86 of file BPFInstructionSelector.cpp.

Referenced by llvm::BPFSubtarget::BPFSubtarget().

◆ createBPFISelDag()

FunctionPass * llvm::createBPFISelDag ( BPFTargetMachine & TM)

Definition at line 471 of file BPFISelDAGToDAG.cpp.

◆ createBPFMCCodeEmitter()

MCCodeEmitter * llvm::createBPFMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 70 of file BPFMCCodeEmitter.cpp.

Referenced by LLVMInitializeBPFTargetMC().

◆ createBPFMIPeepholePass()

FunctionPass * llvm::createBPFMIPeepholePass ( )

◆ createBPFMIPreEmitCheckingPass()

FunctionPass * llvm::createBPFMIPreEmitCheckingPass ( )

◆ createBPFMIPreEmitPeepholePass()

FunctionPass * llvm::createBPFMIPreEmitPeepholePass ( )

◆ createBPFMISimplifyPatchablePass()

FunctionPass * llvm::createBPFMISimplifyPatchablePass ( )

◆ createBreakCriticalEdgesPass()

LLVM_ABI FunctionPass * llvm::createBreakCriticalEdgesPass ( )

◆ createBreakFalseDeps()

FunctionPass * llvm::createBreakFalseDeps ( )

Creates Break False Dependencies pass.

See also
BreakFalseDeps.cpp

Definition at line 107 of file BreakFalseDeps.cpp.

References createBreakFalseDeps().

Referenced by createBreakFalseDeps().

◆ createBURRListDAGScheduler()

ScheduleDAGSDNodes * llvm::createBURRListDAGScheduler ( SelectionDAGISel * IS,
CodeGenOptLevel OptLevel )

createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler.

Definition at line 3145 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and TRI.

Referenced by createDefaultScheduler().

◆ createCallBrPass()

Prepare false FunctionPass * llvm::createCallBrPass ( )

Definition at line 103 of file CallBrPrepare.cpp.

References createCallBrPass().

Referenced by llvm::TargetPassConfig::addISelPrepare(), and createCallBrPass().

◆ createCallGraphDOTPrinterPass()

ModulePass * llvm::createCallGraphDOTPrinterPass ( )

Definition at line 355 of file CallPrinter.cpp.

◆ createCallGraphViewerPass()

LLVM_ABI ModulePass * llvm::createCallGraphViewerPass ( )

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createCallMatchingInvoke()

CallInst * llvm::createCallMatchingInvoke ( InvokeInst * II)

Create a call that matches the invoke II in terms of arguments, attributes, debug information, etc.

The call is not placed in a block and it will not have a name. The invoke instruction is not removed, nor are the uses replaced by the new call.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 2553 of file Local.cpp.

References llvm::Instruction::copyMetadata(), llvm::CallInst::Create(), llvm::MDBuilder::createBranchWeights(), llvm::Instruction::extractProfTotalWeight(), llvm::Value::getContext(), II, llvm::CallBase::setAttributes(), llvm::CallBase::setCallingConv(), llvm::Instruction::setDebugLoc(), and llvm::Instruction::setMetadata().

Referenced by changeToCall().

◆ createCanonicalizeFreezeInLoopsPass()

canon Canonicalize Freeze Instructions in false Pass * llvm::createCanonicalizeFreezeInLoopsPass ( )

◆ createCFAOffset()

◆ createCFGSimplificationPass()

Simplify the false FunctionPass * llvm::createCFGSimplificationPass ( SimplifyCFGOptions Options = SimplifyCFGOptions(),
std::function< bool(const Function &)> Ftor = nullptr )

Definition at line 438 of file SimplifyCFGPass.cpp.

References const, createCFGSimplificationPass(), function(), and Options.

Referenced by createCFGSimplificationPass().

◆ createCFGuardCheckPass()

FunctionPass * llvm::createCFGuardCheckPass ( )

Insert Control FLow Guard checks on indirect function calls.

Definition at line 317 of file CFGuard.cpp.

References llvm::CFGuardPass::Check, and createCFGuardCheckPass().

Referenced by createCFGuardCheckPass().

◆ createCFGuardDispatchPass()

FunctionPass * llvm::createCFGuardDispatchPass ( )

Insert Control FLow Guard dispatches on indirect function calls.

Definition at line 321 of file CFGuard.cpp.

References llvm::CFGuardPass::Dispatch.

◆ createCFGuardLongjmpPass()

LLVM_ABI FunctionPass * llvm::createCFGuardLongjmpPass ( )

Creates CFGuard longjmp target identification pass.

See also
CFGuardLongjmp.cpp

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createCFIFixup()

LLVM_ABI FunctionPass * llvm::createCFIFixup ( )

Creates CFI Fixup pass.

See also
CFIFixup.cpp

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and INITIALIZE_PASS().

◆ createCFIInstrInserter()

LLVM_ABI FunctionPass * llvm::createCFIInstrInserter ( )

Creates CFI Instruction Inserter pass.

See also
CFIInstrInserter.cpp

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createCGSCCToFunctionPassAdaptor()

template<typename FunctionPassT>
CGSCCToFunctionPassAdaptor llvm::createCGSCCToFunctionPassAdaptor ( FunctionPassT && Pass,
bool EagerlyInvalidate = false,
bool NoRerun = false )

◆ createCheckDebugMachineModulePass()

Machine Check Debug false ModulePass * llvm::createCheckDebugMachineModulePass ( )

◆ 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 10561 of file X86InstrInfo.cpp.

◆ createCodeGenPrepareLegacyPass()

Optimize for code false FunctionPass * llvm::createCodeGenPrepareLegacyPass ( )

createCodeGenPrepareLegacyPass - Transform the code to expose more pattern matching during instruction selection.

Definition at line 542 of file CodeGenPrepare.cpp.

References createCodeGenPrepareLegacyPass().

Referenced by llvm::TargetPassConfig::addCodeGenPrepare(), and createCodeGenPrepareLegacyPass().

◆ createCOFFAsmParser()

MCAsmParserExtension * llvm::createCOFFAsmParser ( )
extern

Definition at line 802 of file COFFAsmParser.cpp.

◆ createCOFFMasmParser()

MCAsmParserExtension * llvm::createCOFFMasmParser ( )

Definition at line 541 of file COFFMasmParser.cpp.

◆ createComplexDeinterleavingPass()

FunctionPass * llvm::createComplexDeinterleavingPass ( const TargetMachine * TM)

This pass implements generation of target-specific intrinsics to support handling of complex number arithmetic.

Definition at line 548 of file ComplexDeinterleavingPass.cpp.

◆ createConstantHoistingPass()

Constant false FunctionPass * llvm::createConstantHoistingPass ( )

◆ createContinuedInstructions()

SmallVector< MachineInstr *, 4 > llvm::createContinuedInstructions ( MachineIRBuilder & MIRBuilder,
unsigned Opcode,
unsigned MinWC,
unsigned ContinuedOpcode,
ArrayRef< Register > Args,
Register ReturnRegister,
Register TypeID )

◆ createCopyConstrainDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createCopyConstrainDAGMutation ( const TargetInstrInfo * TII,
const TargetRegisterInfo * TRI )

Definition at line 2310 of file MachineScheduler.cpp.

References TII, and TRI.

Referenced by createSchedLive(), and createVLIWMachineSched().

◆ createCriticalAntiDepBreaker()

AntiDepBreaker * llvm::createCriticalAntiDepBreaker ( MachineFunction & MFi,
const RegisterClassInfo & RCI )

Definition at line 697 of file CriticalAntiDepBreaker.cpp.

Referenced by INITIALIZE_PASS().

◆ createCSKYAsmBackend()

MCAsmBackend * llvm::createCSKYAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 345 of file CSKYAsmBackend.cpp.

References MRI, Options, and T.

Referenced by LLVMInitializeCSKYTargetMC().

◆ createCSKYConstantIslandPass()

FunctionPass * llvm::createCSKYConstantIslandPass ( )

Returns a pass that converts branches to long branches.

Definition at line 1360 of file CSKYConstantIslandPass.cpp.

◆ createCSKYELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createCSKYELFObjectWriter ( )

◆ createCSKYISelDag()

FunctionPass * llvm::createCSKYISelDag ( CSKYTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 409 of file CSKYISelDAGToDAG.cpp.

◆ createCSKYMCCodeEmitter()

MCCodeEmitter * llvm::createCSKYMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 504 of file CSKYMCCodeEmitter.cpp.

Referenced by LLVMInitializeCSKYTargetMC().

◆ createCtxProfFromYAML()

◆ createCustomBehaviour()

LLVM_ABI mca::CustomBehaviour * llvm::createCustomBehaviour ( const MCSubtargetInfo & STI,
const mca::SourceMgr & SrcMgr,
const MCInstrInfo & MCII )

References LLVM_ABI, and SrcMgr.

◆ createDAGLinearizer()

llvm::ScheduleDAGSDNodes * llvm::createDAGLinearizer ( SelectionDAGISel * IS,
CodeGenOptLevel OptLevel )

createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order.

Definition at line 803 of file ScheduleDAGFast.cpp.

References llvm::SelectionDAGISel::MF.

Referenced by createDefaultScheduler().

◆ createDarwinAsmParser()

MCAsmParserExtension * llvm::createDarwinAsmParser ( )
extern

Definition at line 1197 of file DarwinAsmParser.cpp.

◆ createDeadArgEliminationPass()

LLVM_ABI ModulePass * llvm::createDeadArgEliminationPass ( )

createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ 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 120 of file DeadArgumentElimination.cpp.

◆ createDeadCodeEliminationPass()

FunctionPass * llvm::createDeadCodeEliminationPass ( )

Definition at line 145 of file DCE.cpp.

References createDeadCodeEliminationPass().

Referenced by createDeadCodeEliminationPass().

◆ createDeadStoreEliminationPass()

LLVM_ABI FunctionPass * llvm::createDeadStoreEliminationPass ( )

Definition at line 2732 of file DeadStoreElimination.cpp.

References LLVM_ABI.

Referenced by DirectXPassConfig::addCodeGenPrepare().

◆ createDebugifyMachineModulePass()

Machine Debugify false ModulePass * llvm::createDebugifyMachineModulePass ( )

Creates MIR Debugify pass.

See also
MachineDebugify.cpp

Definition at line 208 of file MachineDebugify.cpp.

References createDebugifyMachineModulePass().

Referenced by llvm::TargetPassConfig::addDebugifyPass(), and createDebugifyMachineModulePass().

◆ createDefaultPBQPRegisterAllocator()

FunctionPass * llvm::createDefaultPBQPRegisterAllocator ( )

PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.

Definition at line 953 of file RegAllocPBQP.cpp.

References createPBQPRegisterAllocator().

◆ createDefaultScheduler()

◆ createDefCFA()

◆ createDependenceAnalysisWrapperPass()

FunctionPass * llvm::createDependenceAnalysisWrapperPass ( )

createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass.

Definition at line 156 of file DependenceAnalysis.cpp.

◆ createDevelopmentModeAdvisorAnalysisLegacy()

RegAllocEvictionAdvisorAnalysisLegacy * llvm::createDevelopmentModeAdvisorAnalysisLegacy ( )

◆ createDevelopmentModeAdvisorProvider()

RegAllocEvictionAdvisorProvider * llvm::createDevelopmentModeAdvisorProvider ( LLVMContext & Ctx)

Definition at line 1254 of file MLRegAllocEvictAdvisor.cpp.

◆ createDevelopmentModePriorityAdvisorAnalysis()

RegAllocPriorityAdvisorAnalysisLegacy * llvm::createDevelopmentModePriorityAdvisorAnalysis ( )

◆ createDevelopmentModePriorityAdvisorProvider()

LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvider * llvm::createDevelopmentModePriorityAdvisorProvider ( LLVMContext & Ctx)

◆ createDevirtSCCRepeatedPass()

template<typename CGSCCPassT>
DevirtSCCRepeatedPass llvm::createDevirtSCCRepeatedPass ( CGSCCPassT && Pass,
int MaxIterations )

A function to deduce a function pass type and wrap it in the templated adaptor.

Definition at line 578 of file CGSCCPassManager.h.

◆ createDomOnlyPrinterWrapperPassPass()

FunctionPass * llvm::createDomOnlyPrinterWrapperPassPass ( )

Definition at line 200 of file DomPrinter.cpp.

◆ createDomOnlyViewerWrapperPassPass()

FunctionPass * llvm::createDomOnlyViewerWrapperPassPass ( )

Definition at line 208 of file DomPrinter.cpp.

◆ createDomPrinterWrapperPassPass()

LLVM_ABI FunctionPass * llvm::createDomPrinterWrapperPassPass ( )

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createDomViewerWrapperPassPass()

FunctionPass * llvm::createDomViewerWrapperPassPass ( )

Definition at line 204 of file DomPrinter.cpp.

◆ createDwarfEHPass()

Prepare DWARF false FunctionPass * llvm::createDwarfEHPass ( CodeGenOptLevel OptLevel)

createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation.

Required if using dwarf exception handling.

Definition at line 407 of file DwarfEHPrepare.cpp.

References createDwarfEHPass().

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions(), and createDwarfEHPass().

◆ createDXContainerGlobalsPass()

dxil DXContainer Global true ModulePass * llvm::createDXContainerGlobalsPass ( )

Pass for generating DXContainer part globals.

Definition at line 307 of file DXContainerGlobals.cpp.

References createDXContainerGlobalsPass().

Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile(), and createDXContainerGlobalsPass().

◆ createDXContainerStreamer()

MCStreamer * llvm::createDXContainerStreamer ( MCContext & Ctx,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

Definition at line 19 of file MCDXContainerStreamer.cpp.

Referenced by llvm::Target::createMCObjectStreamer().

◆ createDXContainerTargetObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createDXContainerTargetObjectWriter ( )

Definition at line 26 of file DirectXContainerObjectWriter.cpp.

◆ createDXILCBufferAccessLegacyPass()

ModulePass * llvm::createDXILCBufferAccessLegacyPass ( )

Pass to translate loads in the cbuffer address space to intrinsics.

Referenced by DirectXPassConfig::addCodeGenPrepare(), and INITIALIZE_PASS().

◆ createDXILDataScalarizationLegacyPass()

DXIL Data false ModulePass * llvm::createDXILDataScalarizationLegacyPass ( )

Pass to scalarize llvm global data into a DXIL legal form.

Definition at line 474 of file DXILDataScalarization.cpp.

References createDXILDataScalarizationLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILDataScalarizationLegacyPass().

◆ createDXILEmbedderPass()

ModulePass * llvm::createDXILEmbedderPass ( )

Create and return a pass that writes the module to a global variable in the module for later emission in the MCStreamer.

Note that this pass is designed for use with the legacy pass manager because it is run in CodeGen only.

Definition at line 202 of file DXILWriterPass.cpp.

References createDXILEmbedderPass().

Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile(), and createDXILEmbedderPass().

◆ createDXILFinalizeLinkageLegacyPass()

DXIL Finalize false ModulePass * llvm::createDXILFinalizeLinkageLegacyPass ( )

Pass to finalize linkage of functions.

Definition at line 78 of file DXILFinalizeLinkage.cpp.

References createDXILFinalizeLinkageLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILFinalizeLinkageLegacyPass().

◆ createDXILFlattenArraysLegacyPass()

DXIL Array false ModulePass * llvm::createDXILFlattenArraysLegacyPass ( )

Pass to flatten arrays into a one dimensional DXIL legal form.

Definition at line 513 of file DXILFlattenArrays.cpp.

References createDXILFlattenArraysLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILFlattenArraysLegacyPass().

◆ createDXILForwardHandleAccessesLegacyPass()

DXIL Forward Handle false FunctionPass * llvm::createDXILForwardHandleAccessesLegacyPass ( )

Pass to eliminate redundant stores and loads from handle globals.

Definition at line 217 of file DXILForwardHandleAccesses.cpp.

References createDXILForwardHandleAccessesLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILForwardHandleAccessesLegacyPass().

◆ createDXILIntrinsicExpansionLegacyPass()

DXIL Intrinsic false ModulePass * llvm::createDXILIntrinsicExpansionLegacyPass ( )

Pass to expand intrinsic operations that lack DXIL opCodes.

Definition at line 1116 of file DXILIntrinsicExpansion.cpp.

References createDXILIntrinsicExpansionLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILIntrinsicExpansionLegacyPass().

◆ createDXILLegalizeLegacyPass()

DXIL false FunctionPass * llvm::createDXILLegalizeLegacyPass ( )

Pass to Legalize DXIL by remove i8 truncations and i64 insert/extract elements.

Definition at line 709 of file DXILLegalizePass.cpp.

References createDXILLegalizeLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILLegalizeLegacyPass().

◆ createDXILOpLoweringLegacyPass()

DXIL Op false ModulePass * llvm::createDXILOpLoweringLegacyPass ( )

Pass to lowering LLVM intrinsic call to DXIL op function call.

Definition at line 972 of file DXILOpLowering.cpp.

References createDXILOpLoweringLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILOpLoweringLegacyPass().

◆ createDXILPostOptimizationValidationLegacyPass()

DXIL Post Optimization false ModulePass * llvm::createDXILPostOptimizationValidationLegacyPass ( )

Pass to lowering LLVM intrinsic call to DXIL op function call.

Definition at line 346 of file DXILPostOptimizationValidation.cpp.

References createDXILPostOptimizationValidationLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILPostOptimizationValidationLegacyPass().

◆ createDXILPrepareModulePass()

DXIL Prepare false ModulePass * llvm::createDXILPrepareModulePass ( )

Pass to convert modules into DXIL-compatable modules.

Definition at line 322 of file DXILPrepare.cpp.

References createDXILPrepareModulePass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILPrepareModulePass().

◆ createDXILPrettyPrinterLegacyPass()

ModulePass * llvm::createDXILPrettyPrinterLegacyPass ( raw_ostream & OS)

Pass to pretty print DXIL metadata.

Definition at line 301 of file DXILPrettyPrinter.cpp.

Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile().

◆ createDXILResourceAccessLegacyPass()

DXIL Resource false FunctionPass * llvm::createDXILResourceAccessLegacyPass ( )

Pass to update resource accesses to use load/store directly.

Definition at line 426 of file DXILResourceAccess.cpp.

References createDXILResourceAccessLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILResourceAccessLegacyPass().

◆ createDXILResourceBindingWrapperPassPass()

LLVM_ABI ModulePass * llvm::createDXILResourceBindingWrapperPassPass ( )

References LLVM_ABI.

◆ createDXILResourceImplicitBindingLegacyPass()

DXIL Resource Implicit false ModulePass * llvm::createDXILResourceImplicitBindingLegacyPass ( )

Pass to assign register slots to resources without binding.

Definition at line 187 of file DXILResourceImplicitBinding.cpp.

References createDXILResourceImplicitBindingLegacyPass().

Referenced by DirectXPassConfig::addCodeGenPrepare(), and createDXILResourceImplicitBindingLegacyPass().

◆ createDXILResourceTypeWrapperPassPass()

LLVM_ABI ModulePass * llvm::createDXILResourceTypeWrapperPassPass ( )

References LLVM_ABI.

◆ createDXILResourceWrapperPassPass()

LLVM_ABI ModulePass * llvm::createDXILResourceWrapperPassPass ( )

References LLVM_ABI.

◆ createDXILTranslateMetadataLegacyPass()

ModulePass * llvm::createDXILTranslateMetadataLegacyPass ( )

Pass to emit metadata for DXIL.

Definition at line 438 of file DXILTranslateMetadata.cpp.

Referenced by DirectXPassConfig::addCodeGenPrepare().

◆ createDXILWriterPass()

dxil write Write true ModulePass * llvm::createDXILWriterPass ( raw_ostream & Str)

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.

Definition at line 195 of file DXILWriterPass.cpp.

References createDXILWriterPass().

Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile(), and createDXILWriterPass().

◆ createEarlyCSEPass()

◆ createEHContGuardTargetsPass()

LLVM_ABI FunctionPass * llvm::createEHContGuardTargetsPass ( )

Creates Windows EH Continuation Guard target identification pass.

See also
EHContGuardTargets.cpp

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createELFAsmParser()

MCAsmParserExtension * llvm::createELFAsmParser ( )
extern

Definition at line 891 of file ELFAsmParser.cpp.

◆ createELFStreamer()

MCStreamer * llvm::createELFStreamer ( MCContext & Ctx,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

◆ createError()

◆ createExpandFpPass() [1/2]

LLVM_ABI FunctionPass * llvm::createExpandFpPass ( )

◆ createExpandFpPass() [2/2]

FunctionPass * llvm::createExpandFpPass ( CodeGenOptLevel )

◆ createExpandLargeDivRemPass()

expand large div Expand large div false FunctionPass * llvm::createExpandLargeDivRemPass ( )

◆ createExpandMemCmpLegacyPass()

Expand false FunctionPass * llvm::createExpandMemCmpLegacyPass ( )

◆ createExpandReductionsPass()

expand Expand reduction false FunctionPass * llvm::createExpandReductionsPass ( )

This pass expands the reduction intrinsics into sequences of shuffles.

Definition at line 182 of file ExpandReductions.cpp.

References createExpandReductionsPass().

Referenced by llvm::TargetPassConfig::addIRPasses(), and createExpandReductionsPass().

◆ createExpandVariadicsPass()

ModulePass * llvm::createExpandVariadicsPass ( ExpandVariadicsMode )

◆ createExternalAAWrapperPass()

LLVM_ABI 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.

References LLVM_ABI.

Referenced by llvm::AMDGPUPassConfig::addIRPasses(), and INITIALIZE_PASS().

◆ createFalkorHWPFFixPass()

FunctionPass * llvm::createFalkorHWPFFixPass ( )

Definition at line 831 of file AArch64FalkorHWPFFix.cpp.

◆ createFalkorMarkStridedAccessesPass()

Falkor HW Prefetch false FunctionPass * llvm::createFalkorMarkStridedAccessesPass ( )

◆ createFastDAGScheduler()

llvm::ScheduleDAGSDNodes * llvm::createFastDAGScheduler ( SelectionDAGISel * IS,
CodeGenOptLevel OptLevel )

createFastDAGScheduler - This creates a "fast" scheduler.

Definition at line 798 of file ScheduleDAGFast.cpp.

References llvm::SelectionDAGISel::MF.

Referenced by createDefaultScheduler().

◆ createFastRegisterAllocator() [1/2]

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 1907 of file RegAllocFast.cpp.

Referenced by llvm::TargetPassConfig::addRegAssignAndRewriteFast(), and llvm::TargetPassConfig::createTargetRegisterAllocator().

◆ createFastRegisterAllocator() [2/2]

FunctionPass * llvm::createFastRegisterAllocator ( RegAllocFilterFunc F,
bool ClearVirtRegs )

Definition at line 1909 of file RegAllocFast.cpp.

◆ createFileError() [1/7]

Error llvm::createFileError ( const Twine & F,
Error E )
inline

Concatenate a source file path and/or name with an Error.

The resulting Error is unchecked.

Definition at line 1399 of file Error.h.

Referenced by llvm::FilePermissionsApplier::apply(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame(), computeMemberData(), llvm::orc::COFFPlatform::Create(), llvm::cas::MappedFileRegionArena::create(), llvm::FilePermissionsApplier::create(), llvm::object::Slice::create(), createFileError(), createFileError(), createFileError(), createFileError(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), llvm::objcopy::createNewArchiveMembers(), llvm::remarks::createYAMLParserFromMeta(), deepWriteArchive(), dumpSectionToFile(), dumpSectionToFile(), llvm::objcopy::wasm::dumpSectionToFile(), llvm::lto::ThinBackendProc::emitFiles(), EmitImportsFiles(), llvm::objcopy::coff::executeObjcopyOnBinary(), llvm::objcopy::dxbc::executeObjcopyOnBinary(), llvm::objcopy::elf::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnBinary(), llvm::objcopy::wasm::executeObjcopyOnBinary(), llvm::objcopy::xcoff::executeObjcopyOnBinary(), llvm::objcopy::dxbc::extractPartAsObject(), llvm::object::MachOObjectFile::findDsymObjectMembers(), llvm::orc::getDylibInterface(), llvm::orc::getDylibInterfaceFromDylib(), llvm::orc::getDylibInterfaceFromTapiFile(), llvm::object::Archive::Child::getMemoryBufferRef(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), handleArgs(), handleArgs(), llvm::coverage::CoverageMapping::load(), llvm::orc::loadLinkableFile(), llvm::orc::loadMachORelocatableObject(), write(), and writeToOutput().

◆ createFileError() [2/7]

Error llvm::createFileError ( const Twine & F,
ErrorSuccess  )
delete

References F.

◆ createFileError() [3/7]

Error llvm::createFileError ( const Twine & F,
size_t Line,
Error E )
inline

Concatenate a source file path and/or name with line number and an Error.

The resulting Error is unchecked.

Definition at line 1405 of file Error.h.

◆ createFileError() [4/7]

Error llvm::createFileError ( const Twine & F,
size_t Line,
std::error_code EC )
inline

Concatenate a source file path and/or name with line number and std::error_code to form an Error object.

Definition at line 1417 of file Error.h.

References createFileError(), errorCodeToError(), and F.

◆ createFileError() [5/7]

Error llvm::createFileError ( const Twine & F,
std::error_code EC )
inline

Concatenate a source file path and/or name with a std::error_code to form an Error object.

Definition at line 1411 of file Error.h.

References createFileError(), errorCodeToError(), and F.

◆ createFileError() [6/7]

template<typename... Ts>
Error llvm::createFileError ( const Twine & F,
std::error_code EC,
char const * Fmt,
const Ts &... Vals )
inline

Create a StringError with the specified error code and prepend the file path to it.

Definition at line 1432 of file Error.h.

References createFileError(), createStringError(), E(), and F.

◆ createFileError() [7/7]

Error llvm::createFileError ( const Twine & F,
std::error_code EC,
const Twine & S )
inline

Create a StringError with the specified error code and prepend the file path to it.

Definition at line 1423 of file Error.h.

References createFileError(), createStringError(), E(), and F.

◆ createFindLastIVReduction()

Value * llvm::createFindLastIVReduction ( IRBuilderBase & B,
Value * Src,
RecurKind RdxKind,
Value * Start,
Value * Sentinel )

Create a reduction of the given vector Src for a reduction of the kind RecurKind::FindLastIV.

Definition at line 1331 of file LoopUtils.cpp.

References llvm::Value::getType(), llvm::CmpInst::ICMP_NE, llvm::RecurrenceDescriptor::isFindLastIVRecurrenceKind(), llvm::RecurrenceDescriptor::isSignedRecurrenceKind(), llvm::Type::isVectorTy(), and Sentinel.

◆ createFixIrreduciblePass()

FunctionPass * llvm::createFixIrreduciblePass ( )

Definition at line 119 of file FixIrreducible.cpp.

◆ createFlattenCFGPass()

Flatten the false FunctionPass * llvm::createFlattenCFGPass ( )

◆ createFreeMachineFunctionPass()

FunctionPass * llvm::createFreeMachineFunctionPass ( )

This pass frees the memory occupied by the MachineFunction.

Definition at line 149 of file MachineModuleInfo.cpp.

Referenced by llvm::CodeGenTargetMachineImpl::addPassesToEmitFile(), and llvm::CodeGenTargetMachineImpl::addPassesToEmitMC().

◆ createFunctionToLoopPassAdaptor()

template<typename LoopPassT>
FunctionToLoopPassAdaptor llvm::createFunctionToLoopPassAdaptor ( LoopPassT && Pass,
bool UseMemorySSA = false,
bool UseBlockFrequencyInfo = false,
bool UseBranchProbabilityInfo = false )
inline

A function to deduce a loop pass type and wrap it in the templated adaptor.

If Pass is a loop pass, the returned adaptor will be in loop mode.

If Pass is a loop-nest pass, Pass will first be wrapped into a LoopPassManager and the returned adaptor will be in loop-nest mode.

Definition at line 448 of file LoopPassManager.h.

Referenced by llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::addIRPasses(), llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), and llvm::PassBuilder::buildO0DefaultPipeline().

◆ createFunctionToLoopPassAdaptor< LoopPassManager >()

template<>
FunctionToLoopPassAdaptor llvm::createFunctionToLoopPassAdaptor< LoopPassManager > ( LoopPassManager && LPM,
bool UseMemorySSA,
bool UseBlockFrequencyInfo,
bool UseBranchProbabilityInfo )
inline

If Pass is an instance of LoopPassManager, the returned adaptor will be in loop-nest mode if the pass manager contains only loop-nest passes.

Definition at line 479 of file LoopPassManager.h.

◆ createFunctionToMachineFunctionPassAdaptor()

template<typename MachineFunctionPassT>
FunctionToMachineFunctionPassAdaptor llvm::createFunctionToMachineFunctionPassAdaptor ( MachineFunctionPassT && Pass)

◆ createGCEmptyBasicBlocksPass()

LLVM_ABI MachineFunctionPass * llvm::createGCEmptyBasicBlocksPass ( )

createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without real code) appear as the result of optimization passes removing instructions.

These blocks confuscate profile analysis (e.g., basic block sections) since they will share the address of their fallthrough blocks. This pass garbage-collects such basic blocks.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and INITIALIZE_PASS().

◆ createGCLoweringPass()

◆ createGCNDPPCombinePass()

FunctionPass * llvm::createGCNDPPCombinePass ( )

Definition at line 114 of file GCNDPPCombine.cpp.

References createGCNDPPCombinePass().

Referenced by createGCNDPPCombinePass().

◆ createGCNMCRegisterInfo()

MCRegisterInfo * llvm::createGCNMCRegisterInfo ( AMDGPUDwarfFlavour DwarfFlavour)

Definition at line 71 of file AMDGPUMCTargetDesc.cpp.

References X.

Referenced by llvm::AMDGPUTargetMachine::AMDGPUTargetMachine().

◆ createGCNPreRAOptimizationsLegacyPass()

FunctionPass * llvm::createGCNPreRAOptimizationsLegacyPass ( )

◆ createGenericToNVVMLegacyPass()

ModulePass * llvm::createGenericToNVVMLegacyPass ( )

Definition at line 286 of file NVPTXGenericToNVVM.cpp.

◆ createGlobalDCEPass()

LLVM_ABI ModulePass * llvm::createGlobalDCEPass ( )

◆ createGlobalMergeFuncPass()

ModulePass * llvm::createGlobalMergeFuncPass ( )

This pass performs merging similar functions globally.

Definition at line 596 of file GlobalMergeFunctions.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses().

◆ createGlobalMergePass()

Pass * llvm::createGlobalMergePass ( const TargetMachine * TM,
unsigned MaximalOffset,
bool OnlyOptimizeForSize = false,
bool MergeExternalByDefault = false,
bool MergeConstantByDefault = false,
bool MergeConstAggressiveByDefault = 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 764 of file GlobalMerge.cpp.

References llvm::cl::BOU_TRUE, llvm::cl::BOU_UNSET, EnableGlobalMergeOnConst, EnableGlobalMergeOnExternal, GlobalMergeAllConst, and Offset.

◆ createGlobalsAAWrapperPass()

globals Globals Alias true ModulePass * llvm::createGlobalsAAWrapperPass ( )

Definition at line 1047 of file GlobalsModRef.cpp.

References createGlobalsAAWrapperPass().

Referenced by createGlobalsAAWrapperPass().

◆ createGOFFAsmParser()

MCAsmParserExtension * llvm::createGOFFAsmParser ( )
extern

Definition at line 37 of file GOFFAsmParser.cpp.

◆ createGOFFObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createGOFFObjectWriter ( std::unique_ptr< MCGOFFObjectTargetWriter > MOTW,
raw_pwrite_stream & OS )

Construct a new GOFF writer instance.

Parameters
MOTW- The target-specific GOFF writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 531 of file GOFFObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter().

◆ createGOFFStreamer()

MCStreamer * llvm::createGOFFStreamer ( MCContext & Ctx,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

Definition at line 40 of file MCGOFFStreamer.cpp.

Referenced by llvm::Target::createMCObjectStreamer().

◆ createGraphFilename()

std::string llvm::createGraphFilename ( const Twine & Name,
int & FD )

Definition at line 111 of file GraphWriter.cpp.

References llvm::sys::fs::createTemporaryFile(), errs(), N, and replaceIllegalFilenameChars().

Referenced by WriteGraph().

◆ createGreedyRegisterAllocator() [1/2]

FunctionPass * llvm::createGreedyRegisterAllocator ( )

Greedy register allocation pass - This pass implements a global register allocator for optimized builds.

Definition at line 329 of file RegAllocGreedy.cpp.

Referenced by llvm::TargetPassConfig::createTargetRegisterAllocator().

◆ createGreedyRegisterAllocator() [2/2]

FunctionPass * llvm::createGreedyRegisterAllocator ( RegAllocFilterFunc F)

Definition at line 333 of file RegAllocGreedy.cpp.

◆ createGVNPass()

FunctionPass * llvm::createGVNPass ( )

Create a legacy GVN pass.

Definition at line 3449 of file GVN.cpp.

References createGVNPass(), and llvm::GVNPass::gvn::GVNLegacyPass.

Referenced by llvm::AMDGPUPassConfig::addEarlyCSEOrGVNPass(), and createGVNPass().

◆ createHardwareLoopsLegacyPass()

FunctionPass * llvm::createHardwareLoopsLegacyPass ( )

Create Hardware Loop pass.

See also
HardwareLoops.cpp

Definition at line 608 of file HardwareLoops.cpp.

References createHardwareLoopsLegacyPass().

Referenced by createHardwareLoopsLegacyPass().

◆ createHexagonAsmBackend()

◆ createHexagonBitSimplify()

FunctionPass * llvm::createHexagonBitSimplify ( )

Definition at line 3370 of file HexagonBitSimplify.cpp.

◆ createHexagonBranchRelaxation()

FunctionPass * llvm::createHexagonBranchRelaxation ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonCallFrameInformation()

FunctionPass * llvm::createHexagonCallFrameInformation ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonCFGOptimizer()

FunctionPass * llvm::createHexagonCFGOptimizer ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonCommonGEP()

FunctionPass * llvm::createHexagonCommonGEP ( )

Definition at line 1286 of file HexagonCommonGEP.cpp.

◆ createHexagonConstExtenders()

FunctionPass * llvm::createHexagonConstExtenders ( )

Definition at line 2007 of file HexagonConstExtenders.cpp.

◆ createHexagonConstPropagationPass()

FunctionPass * llvm::createHexagonConstPropagationPass ( )

Definition at line 3188 of file HexagonConstPropagation.cpp.

◆ createHexagonCopyHoisting()

FunctionPass * llvm::createHexagonCopyHoisting ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonCopyToCombine()

FunctionPass * llvm::createHexagonCopyToCombine ( )

Definition at line 871 of file HexagonCopyToCombine.cpp.

◆ createHexagonEarlyIfConversion()

FunctionPass * llvm::createHexagonEarlyIfConversion ( )

Definition at line 1069 of file HexagonEarlyIfConv.cpp.

◆ createHexagonELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createHexagonELFObjectWriter ( uint8_t OSABI,
StringRef CPU )

Definition at line 311 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 )

Definition at line 214 of file HexagonMCELFStreamer.cpp.

Referenced by createMCStreamer().

◆ createHexagonExpandCondsets()

FunctionPass * llvm::createHexagonExpandCondsets ( )

Definition at line 1342 of file HexagonExpandCondsets.cpp.

◆ createHexagonFixupHwLoops()

FunctionPass * llvm::createHexagonFixupHwLoops ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonGenExtract()

FunctionPass * llvm::createHexagonGenExtract ( )

Definition at line 256 of file HexagonGenExtract.cpp.

◆ createHexagonGenInsert()

FunctionPass * llvm::createHexagonGenInsert ( )

Definition at line 1591 of file HexagonGenInsert.cpp.

◆ createHexagonGenMemAbsolute()

FunctionPass * llvm::createHexagonGenMemAbsolute ( )

Definition at line 263 of file HexagonGenMemAbsolute.cpp.

◆ createHexagonGenMux()

FunctionPass * llvm::createHexagonGenMux ( )

Definition at line 373 of file HexagonGenMux.cpp.

◆ createHexagonGenPredicate()

FunctionPass * llvm::createHexagonGenPredicate ( )

Definition at line 513 of file HexagonGenPredicate.cpp.

◆ createHexagonHardwareLoops()

Hexagon Hardware false FunctionPass * llvm::createHexagonHardwareLoops ( )

Definition at line 369 of file HexagonHardwareLoops.cpp.

References createHexagonHardwareLoops().

Referenced by createHexagonHardwareLoops().

◆ createHexagonISelDag()

FunctionPass * llvm::createHexagonISelDag ( HexagonTargetMachine & TM,
CodeGenOptLevel OptLevel )

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

Definition at line 61 of file HexagonISelDAGToDAG.cpp.

◆ createHexagonLoadWidening()

FunctionPass * llvm::createHexagonLoadWidening ( )

Definition at line 898 of file HexagonLoadStoreWidening.cpp.

◆ createHexagonLoopAlign()

FunctionPass * llvm::createHexagonLoopAlign ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonLoopIdiomPass()

Pass * llvm::createHexagonLoopIdiomPass ( )

Definition at line 2434 of file HexagonLoopIdiomRecognition.cpp.

◆ createHexagonLoopRescheduling()

FunctionPass * llvm::createHexagonLoopRescheduling ( )

Definition at line 3366 of file HexagonBitSimplify.cpp.

◆ createHexagonMask()

FunctionPass * llvm::createHexagonMask ( )

Definition at line 99 of file HexagonMask.cpp.

References createHexagonMask().

Referenced by createHexagonMask().

◆ createHexagonMCCodeEmitter()

MCCodeEmitter * llvm::createHexagonMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & MCT )

Definition at line 816 of file HexagonMCCodeEmitter.cpp.

Referenced by LLVMInitializeHexagonTargetMC().

◆ createHexagonMCInstrInfo()

◆ createHexagonMCRegisterInfo()

MCRegisterInfo * llvm::createHexagonMCRegisterInfo ( StringRef TT)

◆ createHexagonMergeActivateWeight()

FunctionPass * llvm::createHexagonMergeActivateWeight ( )

◆ createHexagonNewValueJump()

FunctionPass * llvm::createHexagonNewValueJump ( )

Definition at line 712 of file HexagonNewValueJump.cpp.

◆ createHexagonOptAddrMode()

FunctionPass * llvm::createHexagonOptAddrMode ( )

Definition at line 1197 of file HexagonOptAddrMode.cpp.

◆ createHexagonOptimizeSZextends()

FunctionPass * llvm::createHexagonOptimizeSZextends ( )

Definition at line 136 of file HexagonOptimizeSZextends.cpp.

◆ createHexagonPacketizer()

FunctionPass * llvm::createHexagonPacketizer ( bool Minimal)

Definition at line 1945 of file HexagonVLIWPacketizer.cpp.

◆ createHexagonPeephole()

FunctionPass * llvm::createHexagonPeephole ( )

Definition at line 280 of file HexagonPeephole.cpp.

◆ createHexagonRDFOpt()

FunctionPass * llvm::createHexagonRDFOpt ( )

Definition at line 350 of file HexagonRDFOpt.cpp.

◆ createHexagonSplitConst32AndConst64()

FunctionPass * llvm::createHexagonSplitConst32AndConst64 ( )

Definition at line 101 of file HexagonSplitConst32AndConst64.cpp.

◆ createHexagonSplitDoubleRegs()

FunctionPass * llvm::createHexagonSplitDoubleRegs ( )

Definition at line 1225 of file HexagonSplitDouble.cpp.

◆ createHexagonStoreWidening()

FunctionPass * llvm::createHexagonStoreWidening ( )

Definition at line 894 of file HexagonLoadStoreWidening.cpp.

◆ createHexagonTargetTransformInfoPass()

ImmutablePass * llvm::createHexagonTargetTransformInfoPass ( const HexagonTargetMachine * TM)

Creates a Hexagon-specific Target Transformation Info pass.

◆ createHexagonTfrCleanup()

FunctionPass * llvm::createHexagonTfrCleanup ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonVectorCombineLegacyPass()

Hexagon Vector false FunctionPass * llvm::createHexagonVectorCombineLegacyPass ( )

◆ createHexagonVectorLoopCarriedReuseLegacyPass()

Pass * llvm::createHexagonVectorLoopCarriedReuseLegacyPass ( )

Definition at line 652 of file HexagonVectorLoopCarriedReuse.cpp.

◆ createHexagonVectorPrint()

FunctionPass * llvm::createHexagonVectorPrint ( )

Referenced by INITIALIZE_PASS().

◆ createHexagonVExtract()

FunctionPass * llvm::createHexagonVExtract ( )

Definition at line 187 of file HexagonVExtract.cpp.

◆ createHybridListDAGScheduler()

ScheduleDAGSDNodes * llvm::createHybridListDAGScheduler ( SelectionDAGISel * IS,
CodeGenOptLevel 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 3173 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().

◆ createIfConverter()

FunctionPass * llvm::createIfConverter ( std::function< bool(const MachineFunction &)> Ftor)

Definition at line 2372 of file IfConversion.cpp.

◆ createIGroupLPDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createIGroupLPDAGMutation ( AMDGPU::SchedulingPhase Phase)

Phase specifes whether or not this is a reentry into the IGroupLPDAGMutation.

Since there may be multiple scheduling passes on the same scheduling region (e.g. pre and post-RA scheduling / multiple scheduling "phases"), we can reenter this mutation framework more than once for a given region.

Definition at line 2686 of file AMDGPUIGroupLP.cpp.

References Phase.

Referenced by createGCNMaxILPMachineScheduler(), createGCNMaxOccupancyMachineScheduler(), createIterativeGCNMaxOccupancyMachineScheduler(), createIterativeILPMachineScheduler(), createMinRegScheduler(), llvm::GCNTargetMachine::createPostMachineScheduler(), llvm::GCNSchedStage::initGCNRegion(), llvm::UnclusteredHighRPStage::initGCNSchedStage(), llvm::GCNPostScheduleDAGMILive::schedule(), and llvm::GCNIterativeScheduler::swapIGLPMutations().

◆ createILPListDAGScheduler()

ScheduleDAGSDNodes * llvm::createILPListDAGScheduler ( SelectionDAGISel * IS,
CodeGenOptLevel 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 3188 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().

◆ createImmutableModuleSummaryIndexWrapperPass()

ImmutablePass * llvm::createImmutableModuleSummaryIndexWrapperPass ( const ModuleSummaryIndex * Index)

Definition at line 1226 of file ModuleSummaryAnalysis.cpp.

Referenced by codegen().

◆ createIndirectBrExpandPass()

Expand indirectbr false FunctionPass * llvm::createIndirectBrExpandPass ( )

Definition at line 98 of file IndirectBrExpandPass.cpp.

References createIndirectBrExpandPass().

Referenced by createIndirectBrExpandPass().

◆ createInferAddressSpacesPass()

FunctionPass * llvm::createInferAddressSpacesPass ( unsigned AddressSpace = ~0u)

Definition at line 1444 of file InferAddressSpaces.cpp.

◆ CreateInfoOutputFile()

std::unique_ptr< raw_ostream > llvm::CreateInfoOutputFile ( )

◆ createInlineSpiller()

Spiller * llvm::createInlineSpiller ( const Spiller::RequiredAnalyses & Analyses,
MachineFunction & MF,
VirtRegMap & VRM,
VirtRegAuxInfo & VRAI,
LiveRegMatrix * Matrix = nullptr )

Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.

References Matrix.

Referenced by llvm::RAGreedy::run(), and llvm::RABasic::runOnMachineFunction().

◆ createInstrPostProcess()

LLVM_ABI mca::InstrPostProcess * llvm::createInstrPostProcess ( const MCSubtargetInfo & STI,
const MCInstrInfo & MCII )

References LLVM_ABI.

◆ createInstructionCombiningPass()

FunctionPass * llvm::createInstructionCombiningPass ( )

Definition at line 6087 of file InstructionCombining.cpp.

◆ createInstrumentManager()

LLVM_ABI mca::InstrumentManager * llvm::createInstrumentManager ( const MCSubtargetInfo & STI,
const MCInstrInfo & MCII )

◆ createInstSimplifyLegacyPass()

Remove redundant false FunctionPass * llvm::createInstSimplifyLegacyPass ( )

Definition at line 119 of file InstSimplifyPass.cpp.

References createInstSimplifyLegacyPass().

Referenced by createInstSimplifyLegacyPass().

◆ 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 203 of file InterleavedAccessPass.cpp.

References createInterleavedAccessPass().

Referenced by createInterleavedAccessPass().

◆ 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 1372 of file InterleavedLoadCombinePass.cpp.

References createInterleavedLoadCombinePass(), and P.

Referenced by createInterleavedLoadCombinePass().

◆ createInterleaveMask()

llvm::SmallVector< int, 16 > llvm::createInterleaveMask ( 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 1154 of file VectorUtils.cpp.

Referenced by llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), and interleaveVectors().

◆ createIVUsersPass()

iv Induction Variable true Pass * llvm::createIVUsersPass ( )

Definition at line 51 of file IVUsers.cpp.

References createIVUsersPass().

Referenced by createIVUsersPass().

◆ createJMCInstrumenterPass()

LLVM_ABI ModulePass * llvm::createJMCInstrumenterPass ( )

JMC instrument pass.

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createKCFIPass()

FunctionPass * llvm::createKCFIPass ( )

Lowers KCFI operand bundles for indirect calls.

Definition at line 61 of file KCFI.cpp.

References createKCFIPass().

Referenced by createKCFIPass().

◆ createLanaiAsmBackend()

MCAsmBackend * llvm::createLanaiAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

◆ createLanaiDelaySlotFillerPass()

FunctionPass * llvm::createLanaiDelaySlotFillerPass ( const LanaiTargetMachine & TM)

Definition at line 83 of file LanaiDelaySlotFiller.cpp.

◆ createLanaiELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createLanaiELFObjectWriter ( uint8_t OSABI)

Definition at line 87 of file LanaiELFObjectWriter.cpp.

◆ createLanaiISelDag()

FunctionPass * llvm::createLanaiISelDag ( LanaiTargetMachine & TM)

Definition at line 360 of file LanaiISelDAGToDAG.cpp.

◆ createLanaiMCCodeEmitter()

llvm::MCCodeEmitter * llvm::createLanaiMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 303 of file LanaiMCCodeEmitter.cpp.

Referenced by LLVMInitializeLanaiTargetMC().

◆ createLanaiMemAluCombinerPass()

FunctionPass * llvm::createLanaiMemAluCombinerPass ( )

Definition at line 414 of file LanaiMemAluCombiner.cpp.

◆ createLanaiSetflagAluCombinerPass()

FunctionPass * llvm::createLanaiSetflagAluCombinerPass ( )

◆ createLaneMaskReg()

Register llvm::createLaneMaskReg ( MachineRegisterInfo * MRI,
MachineRegisterInfo::VRegAttrs LaneMaskRegAttrs )

Definition at line 373 of file SILowerI1Copies.cpp.

References MRI.

Referenced by insertUndefLaneMask(), and llvm::PhiLoweringHelper::lowerPhis().

◆ createLazyValueInfoPass()

FunctionPass * llvm::createLazyValueInfoPass ( )

createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.

Definition at line 63 of file LazyValueInfo.cpp.

◆ createLCSSAPass()

Loop Closed SSA Form false Pass * llvm::createLCSSAPass ( )

Definition at line 525 of file LCSSA.cpp.

References createLCSSAPass().

Referenced by createLCSSAPass().

◆ createLibcall() [1/2]

◆ createLibcall() [2/2]

◆ createLICMPass()

Loop Invariant Code false Pass * llvm::createLICMPass ( )

Definition at line 384 of file LICM.cpp.

References createLICMPass().

Referenced by llvm::AMDGPUPassConfig::addIRPasses(), and createLICMPass().

◆ createLoadClusterDAGMutation()

◆ createLoadStoreVectorizerPass()

LLVM_ABI Pass * llvm::createLoadStoreVectorizerPass ( )

Create a legacy pass manager instance of the LoadStoreVectorizer pass.

References LLVM_ABI.

Referenced by llvm::AMDGPUPassConfig::addCodeGenPrepare(), and INITIALIZE_PASS_END().

◆ createLoongArchAsmBackend()

◆ createLoongArchDeadRegisterDefinitionsPass()

FunctionPass * llvm::createLoongArchDeadRegisterDefinitionsPass ( )

Referenced by INITIALIZE_PASS().

◆ createLoongArchELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createLoongArchELFObjectWriter ( uint8_t OSABI,
bool Is64Bit )

◆ createLoongArchELFStreamer()

MCELFStreamer * llvm::createLoongArchELFStreamer ( MCContext & C,
std::unique_ptr< MCAsmBackend > MAB,
std::unique_ptr< MCObjectWriter > MOW,
std::unique_ptr< MCCodeEmitter > MCE )

Definition at line 88 of file LoongArchELFStreamer.cpp.

References llvm::CallingConv::C.

Referenced by LLVMInitializeLoongArchTargetMC().

◆ createLoongArchExpandAtomicPseudoPass()

FunctionPass * llvm::createLoongArchExpandAtomicPseudoPass ( )

Referenced by INITIALIZE_PASS().

◆ createLoongArchExpandPseudoPass()

FunctionPass * llvm::createLoongArchExpandPseudoPass ( )

Definition at line 833 of file LoongArchExpandPseudoInsts.cpp.

◆ createLoongArchISelDag()

FunctionPass * llvm::createLoongArchISelDag ( LoongArchTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 457 of file LoongArchISelDAGToDAG.cpp.

◆ createLoongArchMCCodeEmitter()

MCCodeEmitter * llvm::createLoongArchMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 313 of file LoongArchMCCodeEmitter.cpp.

Referenced by LLVMInitializeLoongArchTargetMC().

◆ createLoongArchMergeBaseOffsetOptPass()

FunctionPass * llvm::createLoongArchMergeBaseOffsetOptPass ( )

Returns an instance of the Merge Base Offset Optimization pass.

Definition at line 843 of file LoongArchMergeBaseOffset.cpp.

◆ createLoongArchOptWInstrsPass()

FunctionPass * llvm::createLoongArchOptWInstrsPass ( )

Referenced by INITIALIZE_PASS().

◆ createLoongArchPreRAExpandPseudoPass()

FunctionPass * llvm::createLoongArchPreRAExpandPseudoPass ( )

Definition at line 830 of file LoongArchExpandPseudoInsts.cpp.

◆ createLoopDataPrefetchPass()

loop data Loop Data false FunctionPass * llvm::createLoopDataPrefetchPass ( )

◆ createLoopExtractorPass()

LLVM_ABI Pass * llvm::createLoopExtractorPass ( )

createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can.

References LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createLoopSimplifyPass()

Pass * llvm::createLoopSimplifyPass ( )

Definition at line 785 of file LoopSimplify.cpp.

References createLoopSimplifyPass().

Referenced by createLoopSimplifyPass().

◆ createLoopStrengthReducePass()

loop Loop Strength false Pass * llvm::createLoopStrengthReducePass ( )

◆ createLoopTermFoldPass()

loop term Loop Terminator false Pass * llvm::createLoopTermFoldPass ( )

◆ createLoopUnrollPass()

Pass * llvm::createLoopUnrollPass ( int OptLevel = 2,
bool OnlyWhenForced = false,
bool ForgetAllSCEV = false,
int Threshold = -1,
int Count = -1,
int AllowPartial = -1,
int Runtime = -1,
int UpperBound = -1,
int AllowPeeling = -1 )

Definition at line 1492 of file LoopUnrollPass.cpp.

References Count, createLoopUnrollPass(), and Runtime.

Referenced by createLoopUnrollPass().

◆ createLowerAggrCopies()

FunctionPass * llvm::createLowerAggrCopies ( )

Referenced by INITIALIZE_PASS().

◆ createLowerAtomicPass()

LLVM_ABI Pass * llvm::createLowerAtomicPass ( )

References InferAddressSpacesID, and LLVM_ABI.

Referenced by INITIALIZE_PASS().

◆ createLowerEmuTLSPass()

LLVM_ABI ModulePass * llvm::createLowerEmuTLSPass ( )

LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.

References LLVM_ABI, MachinePipelinerID, and RenameIndependentSubregsID.

Referenced by llvm::TargetPassConfig::addISelPasses(), and INITIALIZE_PASS().

◆ createLowerGlobalDtorsLegacyPass()

LLVM_ABI ModulePass * llvm::createLowerGlobalDtorsLegacyPass ( )

◆ createLowerInvokePass()

FunctionPass * llvm::createLowerInvokePass ( )

Definition at line 85 of file LowerInvoke.cpp.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().

◆ createLowerSwitchPass()

Lower SwitchInst s to false FunctionPass * llvm::createLowerSwitchPass ( )

◆ createLowerWWMCopiesPass()

FunctionPass * llvm::createLowerWWMCopiesPass ( )

◆ createLVLGenPass()

FunctionPass * llvm::createLVLGenPass ( )

Definition at line 36 of file LVLGen.cpp.

◆ createM68kAsmBackend()

◆ createM68kCollapseMOVEMPass()

FunctionPass * llvm::createM68kCollapseMOVEMPass ( )

Finds sequential MOVEM instruction and collapse them into a single one.

Returns an instance of the pseudo instruction expansion pass.

This pass has to be run after all pseudo expansions and prologue/epilogue emission so that all possible MOVEM are already in place.

Definition at line 306 of file M68kCollapseMOVEMPass.cpp.

References createM68kCollapseMOVEMPass().

Referenced by createM68kCollapseMOVEMPass().

◆ createM68kELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createM68kELFObjectWriter ( uint8_t OSABI)

Construct an M68k ELF object writer.

Definition at line 179 of file M68kELFObjectWriter.cpp.

◆ createM68kExpandPseudoPass()

FunctionPass * llvm::createM68kExpandPseudoPass ( )

Return a Machine IR pass that expands M68k-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 324 of file M68kExpandPseudo.cpp.

◆ createM68kGlobalBaseRegPass()

FunctionPass * llvm::createM68kGlobalBaseRegPass ( )

This pass initializes a global base register for PIC on M68k.

Definition at line 966 of file M68kInstrInfo.cpp.

References createM68kGlobalBaseRegPass().

Referenced by createM68kGlobalBaseRegPass().

◆ createM68kInstructionSelector()

InstructionSelector * llvm::createM68kInstructionSelector ( const M68kTargetMachine & TM,
const M68kSubtarget & Subtarget,
const M68kRegisterBankInfo & RBI )

Definition at line 85 of file M68kInstructionSelector.cpp.

Referenced by llvm::M68kSubtarget::M68kSubtarget().

◆ createM68kISelDag()

FunctionPass * llvm::createM68kISelDag ( M68kTargetMachine & TM)

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

Definition at line 364 of file M68kISelDAGToDAG.cpp.

◆ createM68kMCCodeEmitter()

MCCodeEmitter * llvm::createM68kMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 260 of file M68kMCCodeEmitter.cpp.

Referenced by LLVMInitializeM68kTargetMC().

◆ createMachineCopyPropagationPass()

MachineFunctionPass * llvm::createMachineCopyPropagationPass ( bool UseCopyInstr = false)

Definition at line 1631 of file MachineCopyPropagation.cpp.

◆ createMachineFunctionPrinterPass()

LLVM_ABI 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().

◆ createMachineFunctionSplitterPass()

LLVM_ABI MachineFunctionPass * llvm::createMachineFunctionSplitterPass ( )

createMachineFunctionSplitterPass - This pass splits machine functions using profile information.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and INITIALIZE_PASS().

◆ createMachineOutlinerPass()

ModulePass * llvm::createMachineOutlinerPass ( RunOutliner RunOutlinerMode)

This pass performs outlining on machine instructions directly before printing assembly.

Definition at line 597 of file MachineOutliner.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ createMachineRegionInfoPass()

FunctionPass * llvm::createMachineRegionInfoPass ( )

Definition at line 146 of file MachineRegionInfo.cpp.

◆ createMachineSMEABIPass()

FunctionPass * llvm::createMachineSMEABIPass ( )

Definition at line 880 of file MachineSMEABIPass.cpp.

◆ createMachineVerifierPass()

LLVM_ABI FunctionPass * llvm::createMachineVerifierPass ( const std::string & Banner)

createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addVerifyPass(), and INITIALIZE_PASS().

◆ createMachOStreamer()

MCStreamer * llvm::createMachOStreamer ( MCContext & Ctx,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE,
bool DWARFMustBeAtTheEnd,
bool LabelSections = false )

◆ createMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createMacroFusionDAGMutation ( ArrayRef< MacroFusionPredTy > Predicates,
bool BranchOnly = false )

Create a DAG scheduling mutation to pair instructions back to back for instructions that benefit according to the target-specific predicate functions.

shouldScheduleAdjacent will be true if any of the provided predicates are true. If BranchOnly is true, only branch instructions with one of their predecessors will be fused.

Definition at line 227 of file MacroFusion.cpp.

References EnableMacroFusion.

Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), createARMMacroFusionDAGMutation(), createPowerPCMacroFusionDAGMutation(), createSchedLive(), createSchedPostRA(), and createX86MacroFusionDAGMutation().

◆ createMCAsmParser()

MCAsmParser * llvm::createMCAsmParser ( SourceMgr & SM,
MCContext & C,
MCStreamer & Out,
const MCAsmInfo & MAI,
unsigned CB = 0 )

Create an MCAsmParser instance for parsing assembly similar to gas syntax.

Create an MCAsmParser instance.

Definition at line 6284 of file AsmParser.cpp.

References llvm::CallingConv::C.

Referenced by initializeRecordStreamer().

◆ createMCMasmParser()

MCAsmParser * llvm::createMCMasmParser ( SourceMgr & SM,
MCContext & C,
MCStreamer & Out,
const MCAsmInfo & MAI,
struct tm TM,
unsigned CB = 0 )

Create an MCAsmParser instance for parsing Microsoft MASM-style assembly.

Create an MCAsmParser instance.

Definition at line 6269 of file MasmParser.cpp.

References llvm::CallingConv::C.

◆ createMCRelocationInfo()

◆ createMCSymbolizer()

MCSymbolizer * llvm::createMCSymbolizer ( const Triple & TT,
LLVMOpInfoCallback GetOpInfo,
LLVMSymbolLookupCallback SymbolLookUp,
void * DisInfo,
MCContext * Ctx,
std::unique_ptr< MCRelocationInfo > && RelInfo )

Definition at line 187 of file MCExternalSymbolizer.cpp.

References assert().

Referenced by llvm::Target::createMCSymbolizer().

◆ createMemCpyLoopKnownSize()

void llvm::createMemCpyLoopKnownSize ( Instruction * InsertBefore,
Value * SrcAddr,
Value * DstAddr,
ConstantInt * CopyLen,
Align SrcAlign,
Align DestAlign,
bool SrcIsVolatile,
bool DstIsVolatile,
bool CanOverlap,
const TargetTransformInfo & TTI,
std::optional< uint32_t > AtomicCpySize = std::nullopt )

◆ createMemCpyLoopUnknownSize()

LLVM_ABI void llvm::createMemCpyLoopUnknownSize ( Instruction * InsertBefore,
Value * SrcAddr,
Value * DstAddr,
Value * CopyLen,
Align SrcAlign,
Align DestAlign,
bool SrcIsVolatile,
bool DstIsVolatile,
bool CanOverlap,
const TargetTransformInfo & TTI,
std::optional< unsigned > AtomicSize = std::nullopt )

Emit a loop implementing the semantics of llvm.memcpy where the size is not a compile-time constant.

Loop will be inserted at InsertBefore.

References LLVM_ABI.

Referenced by expandAtomicMemCpyAsLoop(), expandMemCpyAsLoop(), and expandMemMoveAsLoop().

◆ createMemLibcall()

◆ createMergeICmpsLegacyPass()

Merge contiguous icmps into a false Pass * llvm::createMergeICmpsLegacyPass ( )

◆ createMicroMipsSizeReducePass()

FunctionPass * llvm::createMicroMipsSizeReducePass ( )

Returns an instance of the MicroMips size reduction pass.

Definition at line 795 of file MicroMipsSizeReduction.cpp.

◆ createMinMaxOp()

Value * llvm::createMinMaxOp ( IRBuilderBase & Builder,
RecurKind RK,
Value * Left,
Value * Right )

Returns a Min/Max operation corresponding to MinMaxRecurrenceKind.

The Builder's fast-math-flags must be set to propagate the expected values.

Definition at line 1200 of file LoopUtils.cpp.

References FMaximum, FMaximumNum, FMaxNum, FMinimum, FMinimumNum, FMinNum, getMinMaxReductionIntrinsicOp(), getMinMaxReductionPredicate(), Left, Right, and Select.

Referenced by llvm::VPReductionEVLRecipe::execute(), llvm::VPReductionRecipe::execute(), getOrderedReduction(), and getShuffleReduction().

◆ createMips16FrameLowering()

const MipsFrameLowering * llvm::createMips16FrameLowering ( const MipsSubtarget & ST)

Create MipsFrameLowering objects.

Definition at line 155 of file Mips16FrameLowering.cpp.

Referenced by llvm::MipsFrameLowering::create().

◆ createMips16HardFloatPass()

ModulePass * llvm::createMips16HardFloatPass ( )

Definition at line 529 of file Mips16HardFloat.cpp.

References Mips16HardFloat.

◆ createMips16InstrInfo()

const MipsInstrInfo * llvm::createMips16InstrInfo ( const MipsSubtarget & STI)

Create MipsInstrInfo objects.

Definition at line 463 of file Mips16InstrInfo.cpp.

Referenced by llvm::MipsInstrInfo::create().

◆ createMips16ISelDag()

FunctionPass * llvm::createMips16ISelDag ( MipsTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 217 of file Mips16ISelDAGToDAG.cpp.

◆ createMips16TargetLowering()

const MipsTargetLowering * llvm::createMips16TargetLowering ( const MipsTargetMachine & TM,
const MipsSubtarget & STI )

Create MipsTargetLowering objects.

Definition at line 165 of file Mips16ISelLowering.cpp.

Referenced by llvm::MipsTargetLowering::create().

◆ createMipsAsmBackend()

◆ createMipsBranchExpansion()

FunctionPass * llvm::createMipsBranchExpansion ( )

Referenced by INITIALIZE_PASS().

◆ createMipsConstantIslandPass()

FunctionPass * llvm::createMipsConstantIslandPass ( )

Returns a pass that converts branches to long branches.

Definition at line 1661 of file MipsConstantIslandPass.cpp.

◆ createMipsDelaySlotFillerPass()

FunctionPass * llvm::createMipsDelaySlotFillerPass ( )

createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions

Definition at line 958 of file MipsDelaySlotFiller.cpp.

◆ createMipsELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createMipsELFObjectWriter ( const Triple & TT,
bool IsN32 )

Construct a Mips ELF object writer.

Definition at line 602 of file MipsELFObjectWriter.cpp.

References llvm::MCELFObjectTargetWriter::getOSABI().

Referenced by llvm::MipsAsmBackend::createObjectTargetWriter().

◆ createMipsELFStreamer()

MCELFStreamer * llvm::createMipsELFStreamer ( MCContext & Context,
std::unique_ptr< MCAsmBackend > MAB,
std::unique_ptr< MCObjectWriter > OW,
std::unique_ptr< MCCodeEmitter > Emitter )

Definition at line 114 of file MipsELFStreamer.cpp.

References Emitter.

Referenced by createMCStreamer().

◆ createMipsExpandPseudoPass()

FunctionPass * llvm::createMipsExpandPseudoPass ( )

createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.

Definition at line 945 of file MipsExpandPseudo.cpp.

◆ createMipsInstructionSelector()

InstructionSelector * llvm::createMipsInstructionSelector ( const MipsTargetMachine & TM,
const MipsSubtarget & Subtarget,
const MipsRegisterBankInfo & RBI )

Definition at line 931 of file MipsInstructionSelector.cpp.

Referenced by llvm::MipsSubtarget::MipsSubtarget().

◆ createMipsMCCodeEmitterEB()

MCCodeEmitter * llvm::createMipsMCCodeEmitterEB ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 46 of file MipsMCCodeEmitter.cpp.

Referenced by LLVMInitializeMipsTargetMC().

◆ createMipsMCCodeEmitterEL()

MCCodeEmitter * llvm::createMipsMCCodeEmitterEL ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 51 of file MipsMCCodeEmitter.cpp.

Referenced by LLVMInitializeMipsTargetMC().

◆ createMipsModuleISelDagPass()

llvm::FunctionPass * llvm::createMipsModuleISelDagPass ( )

Definition at line 55 of file MipsModuleISelDAGToDAG.cpp.

◆ createMipsMulMulBugPass()

FunctionPass * llvm::createMipsMulMulBugPass ( )

Definition at line 132 of file MipsMulMulBugPass.cpp.

◆ createMipsOptimizePICCallPass()

FunctionPass * llvm::createMipsOptimizePICCallPass ( )

Return an OptimizeCall object.

Definition at line 318 of file MipsOptimizePICCall.cpp.

◆ createMipsOs16Pass()

ModulePass * llvm::createMipsOs16Pass ( )

Definition at line 160 of file MipsOs16.cpp.

◆ createMipsPostLegalizeCombiner()

Combine Mips machine instrs after false FunctionPass * llvm::createMipsPostLegalizeCombiner ( bool IsOptNone)

◆ createMipsPreLegalizeCombiner()

Combine Mips machine instrs before false FunctionPass * llvm::createMipsPreLegalizeCombiner ( )

◆ createMipsSEFrameLowering()

const MipsFrameLowering * llvm::createMipsSEFrameLowering ( const MipsSubtarget & ST)

Definition at line 882 of file MipsSEFrameLowering.cpp.

Referenced by llvm::MipsFrameLowering::create().

◆ createMipsSEInstrInfo()

const MipsInstrInfo * llvm::createMipsSEInstrInfo ( const MipsSubtarget & STI)

Definition at line 883 of file MipsSEInstrInfo.cpp.

Referenced by llvm::MipsInstrInfo::create().

◆ createMipsSEISelDag()

FunctionPass * llvm::createMipsSEISelDag ( MipsTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 1404 of file MipsSEISelDAGToDAG.cpp.

◆ createMipsSETargetLowering()

const MipsTargetLowering * llvm::createMipsSETargetLowering ( const MipsTargetMachine & TM,
const MipsSubtarget & STI )

Definition at line 339 of file MipsSEISelLowering.cpp.

Referenced by llvm::MipsTargetLowering::create().

◆ createMipsWinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createMipsWinCOFFObjectWriter ( )

Construct a Mips Win COFF object writer.

Definition at line 59 of file MipsWinCOFFObjectWriter.cpp.

◆ createMipsWinCOFFStreamer()

MCStreamer * llvm::createMipsWinCOFFStreamer ( MCContext & C,
std::unique_ptr< MCAsmBackend > && AB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

Construct an MIPS Windows COFF machine code streamer which will generate PE/COFF format object files.

Takes ownership of AB and CE.

Definition at line 28 of file MipsWinCOFFStreamer.cpp.

References llvm::CallingConv::C.

Referenced by LLVMInitializeMipsTargetMC().

◆ createMIRAddFSDiscriminatorsPass()

LLVM_ABI FunctionPass * llvm::createMIRAddFSDiscriminatorsPass ( sampleprof::FSDiscriminatorPass P)

Add Flow Sensitive Discriminators.

PassNum specifies the sequence number of this pass (starting from 1).

References FixupStatepointCallerSavedID, LLVM_ABI, and P.

Referenced by llvm::TargetPassConfig::addBlockPlacement(), and llvm::TargetPassConfig::addMachinePasses().

◆ createMIRParser()

std::unique_ptr< MIRParser > llvm::createMIRParser ( std::unique_ptr< MemoryBuffer > Contents,
LLVMContext & Context,
std::function< void(Function &)> ProcessIRFunction = nullptr )

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 1276 of file MIRParser.cpp.

References llvm::SourceMgr::DK_Error, and DS_Error.

Referenced by createMIRParserFromFile().

◆ createMIRParserFromFile()

std::unique_ptr< MIRParser > llvm::createMIRParserFromFile ( StringRef Filename,
SMDiagnostic & Error,
LLVMContext & Context,
std::function< void(Function &)> ProcessIRFunction = nullptr )

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.
ProcessIRFunction- function to run on every IR function or stub loaded from the MIR file.

Definition at line 1262 of file MIRParser.cpp.

References createMIRParser(), llvm::SourceMgr::DK_Error, and llvm::MemoryBuffer::getFileOrSTDIN().

◆ createMIRProfileLoaderPass()

FunctionPass * llvm::createMIRProfileLoaderPass ( std::string File,
std::string RemappingFile,
sampleprof::FSDiscriminatorPass P,
IntrusiveRefCntPtr< vfs::FileSystem > FS )

◆ createMLxExpansionPass()

FunctionPass * llvm::createMLxExpansionPass ( )

Definition at line 388 of file MLxExpansionPass.cpp.

◆ createModuleSummaryIndexWrapperPass()

module summary Module Summary true ModulePass * llvm::createModuleSummaryIndexWrapperPass ( )

◆ createModuleToFunctionPassAdaptor()

◆ createModuleToPostOrderCGSCCPassAdaptor()

template<typename CGSCCPassT>
ModuleToPostOrderCGSCCPassAdaptor llvm::createModuleToPostOrderCGSCCPassAdaptor ( CGSCCPassT && Pass)

◆ createMSP430BranchSelectionPass()

FunctionPass * llvm::createMSP430BranchSelectionPass ( )

Returns an instance of the Branch Selection Pass.

Definition at line 254 of file MSP430BranchSelector.cpp.

◆ createMSP430ELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createMSP430ELFObjectWriter ( uint8_t OSABI)

Definition at line 55 of file MSP430ELFObjectWriter.cpp.

◆ createMSP430ISelDag()

FunctionPass * llvm::createMSP430ISelDag ( MSP430TargetMachine & TM,
CodeGenOptLevel OptLevel )

createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling.

Definition at line 133 of file MSP430ISelDAGToDAG.cpp.

References createMSP430ISelDag().

Referenced by createMSP430ISelDag().

◆ createMSP430MCAsmBackend()

MCAsmBackend * llvm::createMSP430MCAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 144 of file MSP430AsmBackend.cpp.

References llvm::ELF::ELFOSABI_STANDALONE, MRI, Options, and T.

Referenced by LLVMInitializeMSP430TargetMC().

◆ createMSP430MCCodeEmitter()

MCCodeEmitter * llvm::createMSP430MCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Creates a machine code emitter for MSP430.

Definition at line 213 of file MSP430MCCodeEmitter.cpp.

Referenced by LLVMInitializeMSP430TargetMC().

◆ createMSP430ObjectTargetStreamer()

MCTargetStreamer * llvm::createMSP430ObjectTargetStreamer ( MCStreamer & S,
const MCSubtargetInfo & STI )

◆ createMVEGatherScatterLoweringPass()

Pass * llvm::createMVEGatherScatterLoweringPass ( )

Referenced by INITIALIZE_PASS().

◆ createMVELaneInterleavingPass()

Pass * llvm::createMVELaneInterleavingPass ( )

References MI.

Referenced by INITIALIZE_PASS().

◆ createMVETailPredicationPass()

Pass * llvm::createMVETailPredicationPass ( )

Definition at line 454 of file MVETailPredication.cpp.

◆ createMVETPAndVPTOptimisationsPass()

FunctionPass * llvm::createMVETPAndVPTOptimisationsPass ( )

createMVETPAndVPTOptimisationsPass

Definition at line 1093 of file MVETPAndVPTOptimisationsPass.cpp.

◆ createMVEVPTBlockPass()

FunctionPass * llvm::createMVEVPTBlockPass ( )

createMVEVPTBlock - Returns an instance of the MVE VPT block insertion pass.

Definition at line 332 of file MVEVPTBlockPass.cpp.

◆ createNaryReassociatePass()

nary Nary false FunctionPass * llvm::createNaryReassociatePass ( )

◆ 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 52 of file MCNullStreamer.cpp.

Referenced by llvm::CodeGenTargetMachineImpl::createMCStreamer(), and llvm::Target::createNullStreamer().

◆ createNVPTXAAWrapperPass()

nvptx aa NVPTX Address space based Alias Analysis true ImmutablePass * llvm::createNVPTXAAWrapperPass ( )

Definition at line 40 of file NVPTXAliasAnalysis.cpp.

References createNVPTXAAWrapperPass().

Referenced by createNVPTXAAWrapperPass().

◆ createNVPTXAssignValidGlobalNamesPass()

ModulePass * llvm::createNVPTXAssignValidGlobalNamesPass ( )

Definition at line 64 of file NVPTXAssignValidGlobalNames.cpp.

◆ createNVPTXAtomicLowerPass()

FunctionPass * llvm::createNVPTXAtomicLowerPass ( )
extern

Referenced by INITIALIZE_PASS().

◆ createNVPTXCtorDtorLoweringLegacyPass()

ModulePass * llvm::createNVPTXCtorDtorLoweringLegacyPass ( )

Referenced by INITIALIZE_PASS().

◆ createNVPTXExternalAAWrapperPass()

ImmutablePass * llvm::createNVPTXExternalAAWrapperPass ( )

Definition at line 44 of file NVPTXAliasAnalysis.cpp.

◆ createNVPTXForwardParamsPass()

MachineFunctionPass * llvm::createNVPTXForwardParamsPass ( )

Definition at line 152 of file NVPTXForwardParams.cpp.

◆ createNVPTXImageOptimizerPass()

FunctionPass * llvm::createNVPTXImageOptimizerPass ( )

Definition at line 174 of file NVPTXImageOptimizer.cpp.

◆ createNVPTXISelDag()

FunctionPass * llvm::createNVPTXISelDag ( NVPTXTargetMachine & TM,
llvm::CodeGenOptLevel OptLevel )

createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling.

Definition at line 43 of file NVPTXISelDAGToDAG.cpp.

◆ createNVPTXLowerAllocaPass()

FunctionPass * llvm::createNVPTXLowerAllocaPass ( )

Definition at line 134 of file NVPTXLowerAlloca.cpp.

◆ createNVPTXLowerArgsPass()

FunctionPass * llvm::createNVPTXLowerArgsPass ( )

Definition at line 711 of file NVPTXLowerArgs.cpp.

◆ createNVPTXLowerUnreachablePass()

FunctionPass * llvm::createNVPTXLowerUnreachablePass ( bool TrapUnreachable,
bool NoTrapAfterNoreturn )

Definition at line 156 of file NVPTXLowerUnreachable.cpp.

◆ createNVPTXPeephole()

MachineFunctionPass * llvm::createNVPTXPeephole ( )

Definition at line 161 of file NVPTXPeephole.cpp.

◆ createNVPTXPrologEpilogPass()

MachineFunctionPass * llvm::createNVPTXPrologEpilogPass ( )

Definition at line 46 of file NVPTXPrologEpilogPass.cpp.

◆ createNVPTXProxyRegErasurePass()

MachineFunctionPass * llvm::createNVPTXProxyRegErasurePass ( )

Definition at line 106 of file NVPTXProxyRegErasure.cpp.

◆ createNVPTXReplaceImageHandlesPass()

MachineFunctionPass * llvm::createNVPTXReplaceImageHandlesPass ( )

Definition at line 1839 of file NVPTXReplaceImageHandles.cpp.

◆ createNVPTXTagInvariantLoadsPass()

FunctionPass * llvm::createNVPTXTagInvariantLoadsPass ( )

Definition at line 96 of file NVPTXTagInvariantLoads.cpp.

◆ createNVVMIntrRangePass()

FunctionPass * llvm::createNVVMIntrRangePass ( )

Definition at line 38 of file NVVMIntrRange.cpp.

◆ createNVVMReflectPass()

ModulePass * llvm::createNVVMReflectPass ( unsigned int SmVersion)

◆ createObjCARCContractPass()

Pass * llvm::createObjCARCContractPass ( )

Definition at line 765 of file ObjCARCContract.cpp.

Referenced by llvm::TargetPassConfig::addISelPrepare().

◆ createOrderedReduction() [1/2]

Value * llvm::createOrderedReduction ( IRBuilderBase & B,
RecurKind RdxKind,
Value * Src,
Value * Start )

Create an ordered reduction intrinsic using the given recurrence kind RdxKind.

Definition at line 1450 of file LoopUtils.cpp.

References assert(), B(), FAdd, and FMulAdd.

Referenced by llvm::VPReductionEVLRecipe::execute(), and llvm::VPReductionRecipe::execute().

◆ createOrderedReduction() [2/2]

Value * llvm::createOrderedReduction ( IRBuilderBase & B,
RecurKind RdxKind,
Value * Src,
Value * Start,
Value * Mask,
Value * EVL )

Overloaded function to generate vector-predication intrinsics for ordered reduction.

Definition at line 1460 of file LoopUtils.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, assert(), cast(), FAdd, FMulAdd, llvm::VPIntrinsic::getForIntrinsic(), getReductionIntrinsicID(), and llvm::VPReductionIntrinsic::isVPReduction().

◆ createPartiallyInlineLibCallsPass()

partially inline Partially calls to library false FunctionPass * llvm::createPartiallyInlineLibCallsPass ( )

◆ createPBQPRegisterAllocator()

FunctionPass * llvm::createPBQPRegisterAllocator ( char * customPassID = nullptr)

Create a PBQP register allocator instance.

Definition at line 949 of file RegAllocPBQP.cpp.

Referenced by createDefaultPBQPRegisterAllocator().

◆ 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. TODO: Update all callers to 'createPGONameMetadata' and deprecate this function.

Definition at line 1460 of file InstrProf.cpp.

References createPGONameMetadata(), F, and getPGOFuncNameMetadataName().

◆ 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 IRPGO function name (returned by getIRPGOFuncName) for LLVM IR instrumentation and PGO function name (returned by getPGOFuncName) for front-end instrumentation.

Definition at line 524 of file InstrProf.cpp.

References createPGOFuncNameVar(), and F.

Referenced by createPGOFuncNameVar().

◆ createPGOFuncNameVar() [2/2]

GlobalVariable * llvm::createPGOFuncNameVar ( Module & M,
GlobalValue::LinkageTypes Linkage,
StringRef PGOFuncName )

Create and return the global variable for function name used in PGO instrumentation.

FuncName is the IRPGO function name (returned by getIRPGOFuncName) for LLVM IR instrumentation and PGO function name (returned by getPGOFuncName) for front-end instrumentation.

Definition at line 497 of file InstrProf.cpp.

References llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::ExternalWeakLinkage, getPGOFuncNameVarName(), llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::InternalLinkage, isGPUProfTarget(), llvm::GlobalValue::LinkOnceAnyLinkage, llvm::GlobalValue::LinkOnceODRLinkage, llvm::GlobalValue::PrivateLinkage, and setPGOFuncVisibility().

◆ createPGONameMetadata() [1/2]

◆ createPGONameMetadata() [2/2]

void llvm::createPGONameMetadata ( GlobalObject & GO,
StringRef PGOName )

Create the PGOName metadata if a global object's PGO name is different from its mangled name.

This should apply to local-linkage global objects only.

Definition at line 1464 of file InstrProf.cpp.

References createPGONameMetadata(), and getPGONameMetadataName().

Referenced by annotateAllFunctions(), createPGOFuncNameMetadata(), and createPGONameMetadata().

◆ createPHIsForSplitLoopExit()

void llvm::createPHIsForSplitLoopExit ( ArrayRef< BasicBlock * > Preds,
BasicBlock * SplitBB,
BasicBlock * DestBB )

When a loop exit edge is split, LCSSA form may require new PHIs in the new exit block.

This function inserts the new PHIs, as needed. Preds is a list of preds inside the loop, SplitBB is the new loop exit block, and DestBB is the old loop exit, now the successor of SplitBB.

Definition at line 817 of file BasicBlockUtils.cpp.

References llvm::PHINode::addIncoming(), assert(), llvm::BasicBlock::begin(), llvm::PHINode::Create(), dyn_cast(), llvm::BasicBlock::getFirstNonPHIIt(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), llvm::Instruction::insertBefore(), llvm::BasicBlock::isLandingPad(), llvm::BasicBlock::phis(), and llvm::ArrayRef< T >::size().

Referenced by ehAwareSplitEdge(), and SplitKnownCriticalEdge().

◆ createPostDomOnlyPrinterWrapperPassPass()

FunctionPass * llvm::createPostDomOnlyPrinterWrapperPassPass ( )

Definition at line 216 of file DomPrinter.cpp.

◆ createPostDomOnlyViewerWrapperPassPass()

FunctionPass * llvm::createPostDomOnlyViewerWrapperPassPass ( )

Definition at line 224 of file DomPrinter.cpp.

◆ createPostDomPrinterWrapperPassPass()

FunctionPass * llvm::createPostDomPrinterWrapperPassPass ( )

Definition at line 212 of file DomPrinter.cpp.

◆ createPostDomTree()

FunctionPass * llvm::createPostDomTree ( )

Definition at line 90 of file PostDominators.cpp.

◆ createPostDomViewerWrapperPassPass()

FunctionPass * llvm::createPostDomViewerWrapperPassPass ( )

Definition at line 220 of file DomPrinter.cpp.

◆ createPostInlineEntryExitInstrumenterPass()

post inline ee Instrument function entry exit with calls to e g false FunctionPass * llvm::createPostInlineEntryExitInstrumenterPass ( )

◆ createPowerPCMacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createPowerPCMacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createPowerPCMacroFusionDAGMutation()); to PPCTargetMachine::createMachineScheduler() to have an effect.

Definition at line 289 of file PPCMacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by createPPCMachineScheduler(), and createPPCPostMachineScheduler().

◆ createPPCAsmBackend()

MCAsmBackend * llvm::createPPCAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 280 of file PPCAsmBackend.cpp.

References llvm::MCSubtargetInfo::getTargetTriple(), MRI, Options, and T.

Referenced by LLVMInitializePowerPCTargetMC().

◆ createPPCBoolRetToIntPass()

FunctionPass * llvm::createPPCBoolRetToIntPass ( )

Referenced by INITIALIZE_PASS().

◆ createPPCBranchCoalescingPass()

FunctionPass * llvm::createPPCBranchCoalescingPass ( )

createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass

Definition at line 190 of file PPCBranchCoalescing.cpp.

◆ createPPCBranchSelectionPass()

FunctionPass * llvm::createPPCBranchSelectionPass ( )

Referenced by INITIALIZE_PASS().

◆ createPPCCTRLoopsPass()

PowerPC CTR loops false FunctionPass * llvm::createPPCCTRLoopsPass ( )

Definition at line 87 of file PPCCTRLoops.cpp.

References createPPCCTRLoopsPass().

Referenced by createPPCCTRLoopsPass().

◆ createPPCCTRLoopsVerify()

ppc ctr loops PowerPC CTR Loops false FunctionPass * llvm::createPPCCTRLoopsVerify ( )

Definition at line 74 of file PPCCTRLoopsVerify.cpp.

References createPPCCTRLoopsVerify().

Referenced by 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 518 of file PPCELFObjectWriter.cpp.

◆ createPPCELFStreamer()

MCStreamer * llvm::createPPCELFStreamer ( const Triple & T,
MCContext & C,
std::unique_ptr< MCAsmBackend > && MAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && Emitter )

Definition at line 219 of file PPCELFStreamer.cpp.

References llvm::CallingConv::C, Emitter, and T.

Referenced by LLVMInitializePowerPCTargetMC().

◆ createPPCExpandAtomicPseudoPass()

FunctionPass * llvm::createPPCExpandAtomicPseudoPass ( )

References MI.

◆ createPPCExpandISELPass()

FunctionPass * llvm::createPPCExpandISELPass ( )

◆ createPPCGenScalarMASSEntriesPass()

ModulePass * llvm::createPPCGenScalarMASSEntriesPass ( )

Referenced by INITIALIZE_PASS().

◆ createPPCInstructionSelector()

InstructionSelector * llvm::createPPCInstructionSelector ( const PPCTargetMachine & TM,
const PPCSubtarget & Subtarget,
const PPCRegisterBankInfo & RBI )

Definition at line 784 of file PPCInstructionSelector.cpp.

Referenced by llvm::PPCSubtarget::PPCSubtarget().

◆ createPPCISelDag()

FunctionPass * llvm::createPPCISelDag ( PPCTargetMachine & TM,
CodeGenOptLevel OL )

createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling.

Definition at line 7948 of file PPCISelDAGToDAG.cpp.

◆ createPPCLoopInstrFormPrepPass()

FunctionPass * llvm::createPPCLoopInstrFormPrepPass ( PPCTargetMachine & TM)

◆ createPPCLowerMASSVEntriesPass()

ModulePass * llvm::createPPCLowerMASSVEntriesPass ( )

Referenced by INITIALIZE_PASS().

◆ createPPCMachObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createPPCMachObjectWriter ( bool Is64Bit,
uint32_t CPUType,
uint32_t CPUSubtype )

Construct a PPC Mach-O object writer.

◆ createPPCMCCodeEmitter()

MCCodeEmitter * llvm::createPPCMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 37 of file PPCMCCodeEmitter.cpp.

Referenced by LLVMInitializePowerPCTargetMC().

◆ createPPCMIPeepholePass()

FunctionPass * llvm::createPPCMIPeepholePass ( )

Definition at line 2051 of file PPCMIPeephole.cpp.

References createPPCMIPeepholePass().

Referenced by createPPCMIPeepholePass().

◆ createPPCPreEmitPeepholePass()

FunctionPass * llvm::createPPCPreEmitPeepholePass ( )

◆ createPPCReduceCRLogicalsPass()

FunctionPass * llvm::createPPCReduceCRLogicalsPass ( )

Definition at line 739 of file PPCReduceCRLogicals.cpp.

References createPPCReduceCRLogicalsPass().

Referenced by createPPCReduceCRLogicalsPass().

◆ createPPCTLSDynamicCallPass()

FunctionPass * llvm::createPPCTLSDynamicCallPass ( )

Definition at line 340 of file PPCTLSDynamicCall.cpp.

References createPPCTLSDynamicCallPass().

Referenced by createPPCTLSDynamicCallPass().

◆ createPPCTOCRegDepsPass()

FunctionPass * llvm::createPPCTOCRegDepsPass ( )

◆ createPPCVSXFMAMutatePass()

FunctionPass * llvm::createPPCVSXFMAMutatePass ( )

Definition at line 372 of file PPCVSXFMAMutate.cpp.

References createPPCVSXFMAMutatePass().

Referenced by createPPCVSXFMAMutatePass().

◆ createPPCVSXSwapRemovalPass()

FunctionPass * llvm::createPPCVSXSwapRemovalPass ( )

Definition at line 1070 of file PPCVSXSwapRemoval.cpp.

References createPPCVSXSwapRemovalPass().

Referenced by createPPCVSXSwapRemovalPass().

◆ createPPCVSXWACCCopyPass()

FunctionPass * llvm::createPPCVSXWACCCopyPass ( )

◆ createPPCXCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createPPCXCOFFObjectWriter ( bool Is64Bit)

Construct a PPC XCOFF object writer.

Definition at line 37 of file PPCXCOFFObjectWriter.cpp.

◆ createPPCXCOFFStreamer()

MCStreamer * llvm::createPPCXCOFFStreamer ( const Triple & ,
MCContext & C,
std::unique_ptr< MCAsmBackend > && MAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && Emitter )

Definition at line 68 of file PPCXCOFFStreamer.cpp.

References llvm::CallingConv::C, and Emitter.

Referenced by LLVMInitializePowerPCTargetMC().

◆ createPreISelIntrinsicLoweringPass()

pre isel intrinsic Pre ISel Intrinsic false 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.

Definition at line 653 of file PreISelIntrinsicLowering.cpp.

References createPreISelIntrinsicLoweringPass().

Referenced by llvm::TargetPassConfig::addISelPasses(), and createPreISelIntrinsicLoweringPass().

◆ 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 119 of file IRPrintingPasses.cpp.

Referenced by llvm::TargetPassConfig::addISelPrepare(), 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 84 of file MIRPrintingPass.cpp.

References createPrintMIRPass().

Referenced by llvm::CodeGenTargetMachineImpl::addPassesToEmitFile(), and createPrintMIRPass().

◆ createPrintModulePass()

LLVM_ABI ModulePass * llvm::createPrintModulePass ( raw_ostream & OS,
const std::string & Banner = "",
bool ShouldPreserveUseListOrder = false )

Create and return a pass that writes the module to the specified raw_ostream.

References LLVM_ABI, and P.

Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile(), llvm::legacy::PassManagerImpl::createPrinterPass(), and INITIALIZE_PASS().

◆ createPrivateGlobalForString()

◆ createProfileFileNameVar()

◆ createProfileSamplingVar()

◆ createPrologEpilogInserterPass()

Prologue Epilogue Insertion &Frame false MachineFunctionPass * llvm::createPrologEpilogInserterPass ( )

◆ createPromoteMemoryToRegisterPass()

Promote Memory to false FunctionPass * llvm::createPromoteMemoryToRegisterPass ( )

Definition at line 114 of file Mem2Reg.cpp.

References createPromoteMemoryToRegisterPass().

Referenced by createPromoteMemoryToRegisterPass().

◆ createPseudoProbeInserter()

Insert pseudo probe annotations for value false FunctionPass * llvm::createPseudoProbeInserter ( )

This pass inserts pseudo probe annotation for callsite profiling.

Definition at line 148 of file PseudoProbeInserter.cpp.

References createPseudoProbeInserter().

Referenced by createPseudoProbeInserter().

◆ createR600AsmPrinterPass()

AsmPrinter * llvm::createR600AsmPrinterPass ( TargetMachine & TM,
std::unique_ptr< MCStreamer > && Streamer )

Definition at line 31 of file R600AsmPrinter.cpp.

Referenced by LLVMInitializeAMDGPUAsmPrinter().

◆ createR600ClauseMergePass()

llvm::FunctionPass * llvm::createR600ClauseMergePass ( )

Definition at line 208 of file R600ClauseMergePass.cpp.

◆ createR600ControlFlowFinalizer()

FunctionPass * llvm::createR600ControlFlowFinalizer ( )

◆ createR600EmitClauseMarkers()

R600 Emit Clause false FunctionPass * llvm::createR600EmitClauseMarkers ( )

Definition at line 322 of file R600EmitClauseMarkers.cpp.

References createR600EmitClauseMarkers().

Referenced by createR600EmitClauseMarkers().

◆ createR600ExpandSpecialInstrsPass()

FunctionPass * llvm::createR600ExpandSpecialInstrsPass ( )

◆ createR600ISelDag()

FunctionPass * llvm::createR600ISelDag ( TargetMachine & TM,
CodeGenOptLevel OptLevel )

This pass converts a legalized DAG into a R600-specific.

Definition at line 198 of file R600ISelDAGToDAG.cpp.

◆ createR600MachineCFGStructurizerPass()

AMDGPU CFG false FunctionPass * llvm::createR600MachineCFGStructurizerPass ( )

◆ createR600MCCodeEmitter()

MCCodeEmitter * llvm::createR600MCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 80 of file R600MCCodeEmitter.cpp.

Referenced by LLVMInitializeAMDGPUTargetMC().

◆ createR600MCInstrInfo()

MCInstrInfo * llvm::createR600MCInstrInfo ( )

Definition at line 24 of file R600MCTargetDesc.cpp.

References X.

Referenced by LLVMInitializeAMDGPUTargetMC().

◆ createR600OpenCLImageTypeLoweringPass()

ModulePass * llvm::createR600OpenCLImageTypeLoweringPass ( )

◆ createR600Packetizer()

llvm::FunctionPass * llvm::createR600Packetizer ( )

Definition at line 403 of file R600Packetizer.cpp.

References createR600Packetizer().

Referenced by createR600Packetizer().

◆ createR600VectorRegMerger()

llvm::FunctionPass * llvm::createR600VectorRegMerger ( )

Definition at line 370 of file R600OptimizeVectorRegisters.cpp.

◆ createReassociatePass()

LLVM_ABI FunctionPass * llvm::createReassociatePass ( )

References LLVM_ABI, and Options.

Referenced by INITIALIZE_PASS().

◆ createRegAllocScoringPass()

FunctionPass * llvm::createRegAllocScoringPass ( )

When learning an eviction policy, extract score(reward) information, otherwise this does nothing.

Definition at line 129 of file MLRegAllocEvictAdvisor.cpp.

Referenced by llvm::TargetPassConfig::addRegAssignAndRewriteOptimized().

◆ createRegionInfoPass()

FunctionPass * llvm::createRegionInfoPass ( )

Definition at line 175 of file RegionInfo.cpp.

◆ createRegionOnlyPrinterPass()

FunctionPass * llvm::createRegionOnlyPrinterPass ( )

Definition at line 200 of file RegionPrinter.cpp.

◆ createRegionOnlyViewerPass()

FunctionPass * llvm::createRegionOnlyViewerPass ( )

Definition at line 208 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 198 of file RegionPrinter.cpp.

References createRegionPrinterPass().

Referenced by createRegionPrinterPass().

◆ createRegionViewerPass()

FunctionPass * llvm::createRegionViewerPass ( )

Definition at line 204 of file RegionPrinter.cpp.

Referenced by viewRegion().

◆ createRegToMemWrapperPass()

FunctionPass * llvm::createRegToMemWrapperPass ( )

Definition at line 148 of file Reg2Mem.cpp.

References createRegToMemWrapperPass().

Referenced by createRegToMemWrapperPass().

◆ createRegUsageInfoCollector()

Register Usage Information false FunctionPass * llvm::createRegUsageInfoCollector ( )

This pass is executed POST-RA to collect which physical registers are preserved by given machine function.

Definition at line 82 of file RegUsageInfoCollector.cpp.

References createRegUsageInfoCollector().

Referenced by llvm::TargetPassConfig::addMachinePasses(), and 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 181 of file RegUsageInfoPropagate.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses().

◆ createReleaseModeAdvisorAnalysisLegacy()

◆ createReleaseModeAdvisorProvider()

RegAllocEvictionAdvisorProvider * llvm::createReleaseModeAdvisorProvider ( LLVMContext & Ctx)

Definition at line 1249 of file MLRegAllocEvictAdvisor.cpp.

◆ createReleaseModePriorityAdvisorAnalysis()

◆ createReleaseModePriorityAdvisorProvider()

RegAllocPriorityAdvisorProvider * llvm::createReleaseModePriorityAdvisorProvider ( )

Definition at line 399 of file MLRegAllocPriorityAdvisor.cpp.

◆ createReplaceWithVeclibLegacyPass()

Replace intrinsics with calls to vector false FunctionPass * llvm::createReplaceWithVeclibLegacyPass ( )

◆ createReplicatedMask()

llvm::SmallVector< int, 16 > llvm::createReplicatedMask ( 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 1145 of file VectorUtils.cpp.

References llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::VPInterleaveRecipe::execute().

◆ createResetMachineFunctionPass()

LLVM_ABI MachineFunctionPass * llvm::createResetMachineFunctionPass ( bool EmitFallbackDiag,
bool AbortOnFailedISel )

◆ createRISCVAsmBackend()

◆ createRISCVCodeGenPreparePass()

FunctionPass * llvm::createRISCVCodeGenPreparePass ( )

Definition at line 301 of file RISCVCodeGenPrepare.cpp.

References createRISCVCodeGenPreparePass().

Referenced by createRISCVCodeGenPreparePass().

◆ createRISCVDeadRegisterDefinitionsPass()

FunctionPass * llvm::createRISCVDeadRegisterDefinitionsPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createRISCVELFObjectWriter ( uint8_t OSABI,
bool Is64Bit )

◆ createRISCVELFStreamer()

MCStreamer * llvm::createRISCVELFStreamer ( const Triple & ,
MCContext & C,
std::unique_ptr< MCAsmBackend > && MAB,
std::unique_ptr< MCObjectWriter > && MOW,
std::unique_ptr< MCCodeEmitter > && MCE )

Definition at line 191 of file RISCVELFStreamer.cpp.

References llvm::CallingConv::C.

Referenced by LLVMInitializeRISCVTargetMC().

◆ createRISCVExpandAtomicPseudoPass()

FunctionPass * llvm::createRISCVExpandAtomicPseudoPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVExpandPseudoPass()

FunctionPass * llvm::createRISCVExpandPseudoPass ( )

Definition at line 678 of file RISCVExpandPseudoInsts.cpp.

◆ createRISCVFoldMemOffsetPass()

FunctionPass * llvm::createRISCVFoldMemOffsetPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVGatherScatterLoweringPass()

FunctionPass * llvm::createRISCVGatherScatterLoweringPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVIndirectBranchTrackingPass()

FunctionPass * llvm::createRISCVIndirectBranchTrackingPass ( )

◆ createRISCVInsertReadWriteCSRPass()

FunctionPass * llvm::createRISCVInsertReadWriteCSRPass ( )

Definition at line 195 of file RISCVInsertReadWriteCSR.cpp.

◆ createRISCVInsertVSETVLIPass()

FunctionPass * llvm::createRISCVInsertVSETVLIPass ( )

Returns an instance of the Insert VSETVLI pass.

Definition at line 1869 of file RISCVInsertVSETVLI.cpp.

◆ createRISCVInsertWriteVXRMPass()

FunctionPass * llvm::createRISCVInsertWriteVXRMPass ( )

Definition at line 492 of file RISCVInsertWriteVXRM.cpp.

◆ createRISCVInstructionSelector()

InstructionSelector * llvm::createRISCVInstructionSelector ( const RISCVTargetMachine & TM,
const RISCVSubtarget & Subtarget,
const RISCVRegisterBankInfo & RBI )

◆ createRISCVISelDag()

FunctionPass * llvm::createRISCVISelDag ( RISCVTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 4443 of file RISCVISelDAGToDAG.cpp.

◆ createRISCVLandingPadSetupPass()

FunctionPass * llvm::createRISCVLandingPadSetupPass ( )

Definition at line 86 of file RISCVLandingPadSetup.cpp.

References createRISCVLandingPadSetupPass().

Referenced by createRISCVLandingPadSetupPass().

◆ createRISCVLateBranchOptPass()

FunctionPass * llvm::createRISCVLateBranchOptPass ( )

Definition at line 109 of file RISCVLateBranchOpt.cpp.

◆ createRISCVLoadStoreOptPass()

FunctionPass * llvm::createRISCVLoadStoreOptPass ( )

Definition at line 399 of file RISCVLoadStoreOptimizer.cpp.

◆ createRISCVMakeCompressibleOptPass()

FunctionPass * llvm::createRISCVMakeCompressibleOptPass ( )

Returns an instance of the Make Compressible Optimization pass.

Definition at line 463 of file RISCVMakeCompressible.cpp.

◆ createRISCVMCCodeEmitter()

MCCodeEmitter * llvm::createRISCVMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 122 of file RISCVMCCodeEmitter.cpp.

Referenced by LLVMInitializeRISCVTargetMC().

◆ createRISCVMergeBaseOffsetOptPass()

FunctionPass * llvm::createRISCVMergeBaseOffsetOptPass ( )

Returns an instance of the Merge Base Offset Optimization pass.

Definition at line 581 of file RISCVMergeBaseOffset.cpp.

◆ createRISCVMoveMergePass()

FunctionPass * llvm::createRISCVMoveMergePass ( )

createRISCVMoveMergePass - returns an instance of the move merge pass.

Definition at line 262 of file RISCVMoveMerger.cpp.

◆ createRISCVO0PreLegalizerCombiner()

Combine RISC V machine instrs before false FunctionPass * llvm::createRISCVO0PreLegalizerCombiner ( )

◆ createRISCVOptWInstrsPass()

FunctionPass * llvm::createRISCVOptWInstrsPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVPostLegalizerCombiner()

Combine RISC V MachineInstrs after false FunctionPass * llvm::createRISCVPostLegalizerCombiner ( )

◆ createRISCVPostRAExpandPseudoPass()

FunctionPass * llvm::createRISCVPostRAExpandPseudoPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVPreLegalizerCombiner()

Combine RISC V machine instrs before false FunctionPass * llvm::createRISCVPreLegalizerCombiner ( )

◆ createRISCVPreRAExpandPseudoPass()

FunctionPass * llvm::createRISCVPreRAExpandPseudoPass ( )

Definition at line 679 of file RISCVExpandPseudoInsts.cpp.

◆ createRISCVPushPopOptimizationPass()

FunctionPass * llvm::createRISCVPushPopOptimizationPass ( )

createRISCVPushPopOptimizationPass - returns an instance of the Push/Pop optimization pass.

Definition at line 170 of file RISCVPushPopOptimizer.cpp.

◆ createRISCVRedundantCopyEliminationPass()

FunctionPass * llvm::createRISCVRedundantCopyEliminationPass ( )

Definition at line 177 of file RISCVRedundantCopyElimination.cpp.

◆ createRISCVVectorMaskDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createRISCVVectorMaskDAGMutation ( const TargetRegisterInfo * TRI)

Definition at line 106 of file RISCVVectorMaskDAGMutation.cpp.

References TRI.

Referenced by llvm::RISCVTargetMachine::createMachineScheduler().

◆ createRISCVVectorPeepholePass()

FunctionPass * llvm::createRISCVVectorPeepholePass ( )

Definition at line 882 of file RISCVVectorPeephole.cpp.

◆ createRISCVVLOptimizerPass()

FunctionPass * llvm::createRISCVVLOptimizerPass ( )

Definition at line 155 of file RISCVVLOptimizer.cpp.

References createRISCVVLOptimizerPass().

Referenced by createRISCVVLOptimizerPass().

◆ createRISCVVMV0EliminationPass()

FunctionPass * llvm::createRISCVVMV0EliminationPass ( )

Referenced by INITIALIZE_PASS().

◆ createRISCVZacasABIFixPass()

FunctionPass * llvm::createRISCVZacasABIFixPass ( )

Definition at line 92 of file RISCVZacasABIFix.cpp.

References createRISCVZacasABIFixPass().

Referenced by createRISCVZacasABIFixPass().

◆ createRuntimeDyldCOFF()

std::unique_ptr< RuntimeDyldCOFF > llvm::createRuntimeDyldCOFF ( Triple::ArchType Arch,
RuntimeDyld::MemoryManager & MM,
JITSymbolResolver & Resolver,
bool ProcessAllSections,
RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted )
static

Definition at line 1325 of file RuntimeDyld.cpp.

References llvm::RuntimeDyldCOFF::create().

Referenced by llvm::RuntimeDyld::loadObject().

◆ createRuntimeDyldELF()

std::unique_ptr< RuntimeDyldELF > llvm::createRuntimeDyldELF ( Triple::ArchType Arch,
RuntimeDyld::MemoryManager & MM,
JITSymbolResolver & Resolver,
bool ProcessAllSections,
RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted )
static

Definition at line 1337 of file RuntimeDyld.cpp.

References llvm::RuntimeDyldELF::create().

Referenced by llvm::RuntimeDyld::loadObject().

◆ createRuntimeDyldMachO()

std::unique_ptr< RuntimeDyldMachO > llvm::createRuntimeDyldMachO ( Triple::ArchType Arch,
RuntimeDyld::MemoryManager & MM,
JITSymbolResolver & Resolver,
bool ProcessAllSections,
RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted )
static

Definition at line 1348 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 242 of file SafepointIRVerifier.cpp.

◆ 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 997 of file SafeStack.cpp.

References createSafeStackPass().

Referenced by llvm::TargetPassConfig::addISelPrepare(), and createSafeStackPass().

◆ createSanitizerCtor()

Function * llvm::createSanitizerCtor ( Module & M,
StringRef CtorName )

◆ createSanitizerCtorAndInitFunctions()

◆ createScalarizeMaskedMemIntrinLegacyPass()

Scalarize unsupported masked memory false FunctionPass * llvm::createScalarizeMaskedMemIntrinLegacyPass ( )

◆ createScalarizerPass()

FunctionPass * llvm::createScalarizerPass ( const ScalarizerPassOptions & Options = ScalarizerPassOptions())

Create a legacy pass manager instance of the Scalarizer pass.

Definition at line 444 of file Scalarizer.cpp.

References Options.

Referenced by DirectXPassConfig::addCodeGenPrepare().

◆ createSCEVAAWrapperPass()

scev ScalarEvolution based Alias true FunctionPass * llvm::createSCEVAAWrapperPass ( )

Creates an instance of SCEVAAWrapperPass.

Definition at line 165 of file ScalarEvolutionAliasAnalysis.cpp.

References createSCEVAAWrapperPass().

Referenced by createSCEVAAWrapperPass().

◆ createSchedLive()

◆ createSchedPostRA()

◆ createScopedNoAliasAAWrapperPass()

LLVM_ABI ImmutablePass * llvm::createScopedNoAliasAAWrapperPass ( )

◆ createSelectOptimizePass()

Optimize false FunctionPass * llvm::createSelectOptimizePass ( )

This pass converts conditional moves to conditional jumps when profitable.

Definition at line 350 of file SelectOptimize.cpp.

References createSelectOptimizePass().

Referenced by llvm::TargetPassConfig::addIRPasses(), and createSelectOptimizePass().

◆ createSeparateConstOffsetFromGEPPass()

separate const offset from Split GEPs to a variadic base and a constant offset for better false FunctionPass * llvm::createSeparateConstOffsetFromGEPPass ( bool LowerGEP = false)

◆ createSequentialMask()

llvm::SmallVector< int, 16 > llvm::createSequentialMask ( 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 1173 of file VectorUtils.cpp.

Referenced by concatenateTwoVectors(), llvm::AArch64TargetLowering::lowerInterleavedStore(), and llvm::ARMTargetLowering::lowerInterleavedStore().

◆ createShadowStackGCLoweringPass()

Shadow Stack GC false FunctionPass * llvm::createShadowStackGCLoweringPass ( )

ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.

Only runs on functions which opt in to the shadow stack collector.

Definition at line 142 of file ShadowStackGCLowering.cpp.

References createShadowStackGCLoweringPass().

Referenced by createShadowStackGCLoweringPass().

◆ createSIAnnotateControlFlowLegacyPass()

FunctionPass * llvm::createSIAnnotateControlFlowLegacyPass ( )

Create the annotation pass.

Definition at line 453 of file SIAnnotateControlFlow.cpp.

References createSIAnnotateControlFlowLegacyPass().

Referenced by createSIAnnotateControlFlowLegacyPass().

◆ createSIFixControlFlowLiveIntervalsPass()

FunctionPass * llvm::createSIFixControlFlowLiveIntervalsPass ( )

◆ createSIFixSGPRCopiesLegacyPass()

FunctionPass * llvm::createSIFixSGPRCopiesLegacyPass ( )

Definition at line 199 of file SIFixSGPRCopies.cpp.

References createSIFixSGPRCopiesLegacyPass().

Referenced by createSIFixSGPRCopiesLegacyPass().

◆ createSIFoldOperandsLegacyPass()

FunctionPass * llvm::createSIFoldOperandsLegacyPass ( )

Definition at line 447 of file SIFoldOperands.cpp.

◆ createSIFormMemoryClausesLegacyPass()

FunctionPass * llvm::createSIFormMemoryClausesLegacyPass ( )

◆ createSIInsertWaitcntsPass()

FunctionPass * llvm::createSIInsertWaitcntsPass ( )

Definition at line 1294 of file SIInsertWaitcnts.cpp.

References createSIInsertWaitcntsPass().

Referenced by createSIInsertWaitcntsPass().

◆ createSILoadStoreOptimizerLegacyPass()

FunctionPass * llvm::createSILoadStoreOptimizerLegacyPass ( )

◆ createSILowerI1CopiesLegacyPass()

FunctionPass * llvm::createSILowerI1CopiesLegacyPass ( )

Definition at line 928 of file SILowerI1Copies.cpp.

References createSILowerI1CopiesLegacyPass().

Referenced by createSILowerI1CopiesLegacyPass().

◆ createSIMemoryLegalizerPass()

FunctionPass * llvm::createSIMemoryLegalizerPass ( )

Definition at line 2965 of file SIMemoryLegalizer.cpp.

References createSIMemoryLegalizerPass().

Referenced by createSIMemoryLegalizerPass().

◆ createSIModeRegisterPass()

FunctionPass * llvm::createSIModeRegisterPass ( )

Definition at line 162 of file SIModeRegister.cpp.

References createSIModeRegisterPass().

Referenced by createSIModeRegisterPass().

◆ createSimpleReduction() [1/2]

Value * llvm::createSimpleReduction ( IRBuilderBase & B,
Value * Src,
RecurKind RdxKind )

Create a reduction of the given vector.

The reduction operation is described by the Opcode parameter. min/max reductions require additional information supplied in RdxKind. Fast-math-flags are propagated using the IRBuilder's setting.

Definition at line 1397 of file LoopUtils.cpp.

References Add, AddChainWithSubs, And, cast(), FAdd, FMax, FMaximum, FMaximumNum, FMaxNum, FMin, FMinimum, FMinimumNum, FMinNum, FMul, FMulAdd, getRecurrenceIdentity(), getReductionIntrinsicID(), llvm_unreachable, Mul, Or, SMax, SMin, Sub, UMax, UMin, and Xor.

Referenced by llvm::VPReductionEVLRecipe::execute(), and llvm::VPReductionRecipe::execute().

◆ createSimpleReduction() [2/2]

◆ 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 257 of file LoopExtractor.cpp.

◆ createSinkingPass()

FunctionPass * llvm::createSinkingPass ( )

Definition at line 275 of file Sink.cpp.

References createSinkingPass().

Referenced by createSinkingPass().

◆ createSIOptimizeExecMaskingPreRAPass()

FunctionPass * llvm::createSIOptimizeExecMaskingPreRAPass ( )

◆ createSIOptimizeVGPRLiveRangeLegacyPass()

FunctionPass * llvm::createSIOptimizeVGPRLiveRangeLegacyPass ( )

◆ createSIPeepholeSDWALegacyPass()

FunctionPass * llvm::createSIPeepholeSDWALegacyPass ( )

Definition at line 219 of file SIPeepholeSDWA.cpp.

References createSIPeepholeSDWALegacyPass().

Referenced by createSIPeepholeSDWALegacyPass().

◆ createSIPostRABundlerPass()

FunctionPass * llvm::createSIPostRABundlerPass ( )

Definition at line 79 of file SIPostRABundler.cpp.

References createSIPostRABundlerPass().

Referenced by createSIPostRABundlerPass().

◆ createSIPreAllocateWWMRegsLegacyPass()

FunctionPass * llvm::createSIPreAllocateWWMRegsLegacyPass ( )

◆ createSIShrinkInstructionsLegacyPass()

FunctionPass * llvm::createSIShrinkInstructionsLegacyPass ( )

◆ createSIWholeQuadModeLegacyPass()

FunctionPass * llvm::createSIWholeQuadModeLegacyPass ( )

Definition at line 270 of file SIWholeQuadMode.cpp.

References createSIWholeQuadModeLegacyPass().

Referenced by createSIWholeQuadModeLegacyPass().

◆ createSjLjEHPreparePass()

LLVM_ABI FunctionPass * llvm::createSjLjEHPreparePass ( const TargetMachine * TM)

createSjLjEHPreparePass - This pass adapts exception handling code to use the GCC-style builtin setjmp/longjmp (sjlj) to handling EH control flow.

References FinalizeISelID, LiveDebugValuesID, LLVM_ABI, LocalStackSlotAllocationID, MachineCFGPrinterID, MachineSanitizerBinaryMetadataID, RemoveLoadsIntoFakeUsesID, RemoveRedundantDebugValuesID, StackMapLivenessID, and UnpackMachineBundlesID.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions(), and INITIALIZE_PASS().

◆ createSMEABIPass()

FunctionPass * llvm::createSMEABIPass ( )

Definition at line 55 of file SMEABIPass.cpp.

References createSMEABIPass().

Referenced by createSMEABIPass().

◆ createSMEPeepholeOptPass()

FunctionPass * llvm::createSMEPeepholeOptPass ( )

Definition at line 316 of file SMEPeepholeOpt.cpp.

◆ createSourceListDAGScheduler()

ScheduleDAGSDNodes * llvm::createSourceListDAGScheduler ( SelectionDAGISel * IS,
CodeGenOptLevel OptLevel )

createSourceListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible.

Definition at line 3159 of file ScheduleDAGRRList.cpp.

References llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAGISel::MF, TII, and TRI.

Referenced by createDefaultScheduler().

◆ createSparcAsmBackend()

MCAsmBackend * llvm::createSparcAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

◆ createSparcDelaySlotFillerPass()

FunctionPass * llvm::createSparcDelaySlotFillerPass ( )

createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions

Definition at line 95 of file DelaySlotFiller.cpp.

◆ createSparcELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createSparcELFObjectWriter ( bool Is64Bit,
bool IsV8Plus,
uint8_t OSABI )

Definition at line 141 of file SparcELFObjectWriter.cpp.

◆ 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 403 of file SparcISelDAGToDAG.cpp.

◆ createSparcMCCodeEmitter()

MCCodeEmitter * llvm::createSparcMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 278 of file SparcMCCodeEmitter.cpp.

Referenced by LLVMInitializeSparcTargetMC().

◆ createSpeculativeExecutionIfHasBranchDivergencePass()

FunctionPass * llvm::createSpeculativeExecutionIfHasBranchDivergencePass ( )

Definition at line 335 of file SpeculativeExecution.cpp.

◆ createSpeculativeExecutionPass()

FunctionPass * llvm::createSpeculativeExecutionPass ( )

Definition at line 331 of file SpeculativeExecution.cpp.

◆ createSPIRVAsmBackend()

MCAsmBackend * llvm::createSPIRVAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

Definition at line 39 of file SPIRVAsmBackend.cpp.

References little, MRI, and T.

Referenced by LLVMInitializeSPIRVTargetMC().

◆ createSPIRVEmitIntrinsicsPass()

ModulePass * llvm::createSPIRVEmitIntrinsicsPass ( SPIRVTargetMachine * TM)

Definition at line 2842 of file SPIRVEmitIntrinsics.cpp.

◆ createSPIRVEmitNonSemanticDIPass()

MachineFunctionPass * llvm::createSPIRVEmitNonSemanticDIPass ( SPIRVTargetMachine * TM)

◆ createSPIRVInstructionSelector()

InstructionSelector * llvm::createSPIRVInstructionSelector ( const SPIRVTargetMachine & TM,
const SPIRVSubtarget & Subtarget,
const RegisterBankInfo & RBI )

Definition at line 4334 of file SPIRVInstructionSelector.cpp.

Referenced by llvm::SPIRVSubtarget::SPIRVSubtarget().

◆ createSPIRVLegalizeImplicitBindingPass()

ModulePass * llvm::createSPIRVLegalizeImplicitBindingPass ( )

Referenced by INITIALIZE_PASS().

◆ createSPIRVLegalizePointerCastPass()

FunctionPass * llvm::createSPIRVLegalizePointerCastPass ( SPIRVTargetMachine * TM)

Referenced by INITIALIZE_PASS().

◆ createSPIRVMCCodeEmitter()

MCCodeEmitter * llvm::createSPIRVMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 52 of file SPIRVMCCodeEmitter.cpp.

Referenced by LLVMInitializeSPIRVTargetMC().

◆ createSPIRVMergeRegionExitTargetsPass()

split region exit SPIRV split region exit false FunctionPass * llvm::createSPIRVMergeRegionExitTargetsPass ( )

◆ createSPIRVObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createSPIRVObjectWriter ( std::unique_ptr< MCSPIRVObjectTargetWriter > MOTW,
raw_pwrite_stream & OS )

Construct a new SPIR-V writer instance.

Parameters
MOTW- The target specific SPIR-V writer subclass.
OS- The stream to write to.
Returns
The constructed object writer.

Definition at line 47 of file SPIRVObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter().

◆ createSPIRVPostLegalizerPass()

FunctionPass * llvm::createSPIRVPostLegalizerPass ( )

◆ createSPIRVPreLegalizerCombiner()

FunctionPass * llvm::createSPIRVPreLegalizerCombiner ( )

Definition at line 240 of file SPIRVPreLegalizerCombiner.cpp.

◆ createSPIRVPreLegalizerPass()

FunctionPass * llvm::createSPIRVPreLegalizerPass ( )

◆ createSPIRVPrepareFunctionsPass()

ModulePass * llvm::createSPIRVPrepareFunctionsPass ( const SPIRVTargetMachine & TM)

Definition at line 529 of file SPIRVPrepareFunctions.cpp.

◆ createSPIRVRegularizerPass()

FunctionPass * llvm::createSPIRVRegularizerPass ( )

Definition at line 255 of file SPIRVRegularizer.cpp.

◆ createSPIRVStreamer()

MCStreamer * llvm::createSPIRVStreamer ( MCContext & Ctx,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

Definition at line 19 of file MCSPIRVStreamer.cpp.

Referenced by llvm::Target::createMCObjectStreamer().

◆ createSPIRVStripConvergenceIntrinsicsPass()

FunctionPass * llvm::createSPIRVStripConvergenceIntrinsicsPass ( )

Referenced by INITIALIZE_PASS().

◆ createSPIRVStructurizerPass()

spirv structurize false FunctionPass * llvm::createSPIRVStructurizerPass ( )

◆ createSplat2ShuffleMask()

void llvm::createSplat2ShuffleMask ( MVT VT,
SmallVectorImpl< int > & Mask,
bool Lo )

Similar to unpacklo/unpackhi, but without the 128-bit lane limitation imposed by AVX and specific to the unary pattern.

Example: v8iX Lo --> <0, 0, 1, 1, 2, 2, 3, 3> v8iX Hi --> <4, 4, 5, 5, 6, 6, 7, 7>

Definition at line 4815 of file X86ISelLowering.cpp.

References assert(), llvm::MVT::getVectorNumElements(), and Lo.

Referenced by lowerShuffleWithUNPCK256().

◆ createSROAPass()

FunctionPass * llvm::createSROAPass ( bool PreserveCFG = true)

Definition at line 5805 of file SROA.cpp.

References ModifyCFG, and PreserveCFG.

◆ createStackFrameLayoutAnalysisPass()

LLVM_ABI MachineFunctionPass * llvm::createStackFrameLayoutAnalysisPass ( )

StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and INITIALIZE_PASS().

◆ createStackProtectorPass()

Insert stack true FunctionPass * llvm::createStackProtectorPass ( )

createStackProtectorPass - This pass adds stack protectors to functions.

Definition at line 165 of file StackProtector.cpp.

References createStackProtectorPass().

Referenced by llvm::TargetPassConfig::addISelPrepare(), and createStackProtectorPass().

◆ createStaticDataAnnotatorPass()

LLVM_ABI ModulePass * llvm::createStaticDataAnnotatorPass ( )

createStaticDataAnnotatorPASS - This is a module pass that reads from StaticDataProfileInfoWrapperPass and annotates the section prefix of global variables.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and INITIALIZE_PASS().

◆ createStaticDataSplitterPass()

Split false MachineFunctionPass * llvm::createStaticDataSplitterPass ( )

createStaticDataSplitterPass - This is a machine-function pass that categorizes static data hotness using profile information.

Definition at line 271 of file StaticDataSplitter.cpp.

References createStaticDataSplitterPass().

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createStaticDataSplitterPass().

◆ createStepForVF()

◆ createStoreClusterDAGMutation()

◆ createStraightLineStrengthReducePass()

Straight line strength false FunctionPass * llvm::createStraightLineStrengthReducePass ( )

◆ createStrideMask()

llvm::SmallVector< int, 16 > llvm::createStrideMask ( 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 1165 of file VectorUtils.cpp.

Referenced by llvm::VPInterleaveRecipe::execute(), llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), and llvm::RISCVTTIImpl::getShuffleCost().

◆ createStringError() [1/7]

template<typename... Ts>
Error llvm::createStringError ( char const * Fmt,
const Ts &... Vals )
inline

Definition at line 1328 of file Error.h.

References createStringError(), and inconvertibleErrorCode().

◆ createStringError() [2/7]

Error llvm::createStringError ( const Twine & S)
inline

Create a StringError with an inconvertible error code.

Definition at line 1323 of file Error.h.

References createStringError(), and inconvertibleErrorCode().

◆ createStringError() [3/7]

template<typename... Ts>
Error llvm::createStringError ( std::errc EC,
char const * Fmt,
const Ts &... Vals )
inline

Definition at line 1333 of file Error.h.

References createStringError().

◆ createStringError() [4/7]

template<typename... Ts>
Error llvm::createStringError ( std::error_code EC,
char const * Fmt,
const Ts &... Vals )
inline

Create formatted StringError object.

Definition at line 1305 of file Error.h.

References format(), and make_error().

Referenced by llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder::addReferencedODRDies(), llvm::SpecialCaseList::addSection(), llvm::DWARFUnitHeader::applyIndexEntry(), llvm::BitcodeReaderValueList::assignValue(), buildFatArchList(), llvm::MachO::TextAPIReader::canRead(), checkChars(), checkCombinedSummaryForTesting(), llvm::gsym::Header::checkForError(), checkOperandCount(), checkRecord(), llvm::objcopy::elf::ASCIIHexWriter::checkSection(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame(), llvm::DWARFUnit::collectAddressRanges(), llvm::CachedFileStream::commit(), llvm::object::CompressedOffloadBundle::compress(), llvm::objcopy::elf::Object::compressOrDecompressSections(), llvm::xray::LogBuilderConsumer::consume(), llvm::xray::PipelineConsumer::consume(), llvm::offloading::intel::containerizeOpenMPSPIRVImage(), llvm::cas::MappedFileRegionArena::create(), llvm::DXContainerYAML::RootSignatureYamlDesc::create(), llvm::gsym::GsymReader::create(), llvm::objcopy::coff::COFFReader::create(), llvm::objcopy::elf::ELFReader::create(), llvm::objcopy::NameOrPattern::create(), llvm::objcopy::xcoff::XCOFFReader::create(), llvm::object::Slice::create(), createAllocatorOutOfSpaceError(), llvm::cas::builtin::BuiltinCAS::createCorruptObjectError(), llvm::cas::builtin::BuiltinCAS::createCorruptStorageError(), createCtxProfFromYAML(), createFileError(), createFileError(), llvm::object::OffloadBundleURI::createFileURI(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::CodeGenTargetMachineImpl::createMCStreamer(), llvm::object::OffloadBundleURI::createMemoryURI(), llvm::remarks::createRemarkSerializer(), llvm::remarks::createRemarkSerializer(), createReservedKDBitsError(), createReservedKDBytesError(), createResultCachePoisonedError(), llvm::logicalview::LVDWARFReader::createScopes(), llvm::gsym::GsymCreator::createSegment(), createSpecFormatError(), llvm::logicalview::LVSplitContext::createSplitFolder(), createStringError(), createStringError(), createStringError(), createStringError(), createStringError(), createStringErrorV(), llvm::codegen::createTargetMachineForTriple(), llvm::cas::builtin::BuiltinCAS::createUnknownObjectError(), llvm::cas::ObjectStore::createUnknownObjectError(), llvm::dwarf::createUnwindTable(), llvm::remarks::createYAMLParserFromMeta(), decode(), llvm::gsym::CallSiteInfo::decode(), llvm::gsym::CallSiteInfoCollection::decode(), llvm::gsym::FunctionInfo::decode(), llvm::gsym::Header::decode(), llvm::object::BBAddrMap::BBEntry::Metadata::decode(), llvm::object::BBAddrMap::Features::decode(), decodeBase64(), llvm::AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC3(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), llvm::object::CompressedOffloadBundle::decompress(), llvm::remarks::detectFormat(), llvm::logicalview::LVScope::doPrint(), llvm::logicalview::LVScopeRoot::doPrintMatches(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), dumpAttribute(), llvm::objcopy::coff::dumpSection(), dumpStringOffsetsSection(), llvm::DWARFYAML::emitDebugAddr(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::DWARFYAML::emitDebugSections(), llvm::gsym::FunctionInfo::encode(), llvm::gsym::GsymCreator::encode(), llvm::gsym::InlineInfo::encode(), llvm::gsym::LineTable::encode(), llvm::BitstreamCursor::EnterSubBlock(), error(), llvm::objcopy::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary(), llvm::cl::ExpansionContext::expandResponseFiles(), llvm::AppleAcceleratorTable::extract(), llvm::DWARFDebugAddrTable::extract(), llvm::DWARFDebugArangeSet::extract(), llvm::DWARFDebugNames::Header::extract(), llvm::DWARFDebugNames::NameIndex::extract(), llvm::DWARFDebugPubTable::extract(), llvm::DWARFDebugRangeList::extract(), llvm::DWARFListTableHeader::extract(), llvm::DWARFListType< ListEntryType >::extract(), llvm::DWARFUnitHeader::extract(), llvm::RangeListEntry::extract(), llvm::DWARFDebugInfoEntry::extractFast(), llvm::object::extractOffloadBundleFatBinary(), llvm::DWARFDebugAddrTable::extractV5(), llvm::SimpleBitstreamCursor::fillCurWord(), llvm::gsym::GsymCreator::finalize(), llvm::objcopy::elf::ASCIIHexWriter::finalize(), llvm::objcopy::elf::BinaryWriter::finalize(), llvm::objcopy::elf::ELFWriter< ELFT >::finalize(), llvm::object::MachOObjectFile::findDsymObjectMembers(), llvm::orc::LazyCallThroughManager::findReexport(), llvm::DWARFUnit::findRnglistFromIndex(), findSection(), llvm::dwarf_linker::finiteLoop(), llvm::BitstreamCursor::getAbbrev(), llvm::DWARFYAML::Data::getAbbrevTableInfoByID(), getAbsolutePath(), llvm::DWARFDebugAddrTable::getAddrEntry(), llvm::gsym::GsymReader::getAddressIndex(), getBitcodeFileMachine(), getCachedOrDownloadArtifact(), llvm::objcopy::ConfigManager::getCOFFConfig(), getCOFFFileMachine(), llvm::object::ResourceSectionRef::getContents(), llvm::object::Record::getContinuousData(), llvm::MachO::getCPUSubType(), llvm::DataExtractor::getCStrRef(), getDataSlice(), llvm::object::COFFObjectFile::getDebugPDBInfo(), getDefaultDebuginfodCacheDirectory(), llvm::DWARFYAML::getDWARFEmitterByName(), llvm::objcopy::ConfigManager::getDXContainerConfig(), llvm::object::ELFFile< ELFT >::getDynSymtabSize(), llvm::object::getDynSymtabSizeFromGnuHash(), llvm::objcopy::ConfigManager::getELFConfig(), llvm::DWARFDebugNames::NameIndex::getEntry(), getError(), llvm::json::Path::Root::getError(), llvm::gsym::MergedFunctionsInfo::getFuncsDataExtractors(), llvm::gsym::GsymReader::getFunctionInfoDataAtIndex(), llvm::gsym::GsymReader::getFunctionInfoDataForAddress(), llvm::DWARFDataExtractorBase< Relocator >::getInitialLength(), getLEB128(), llvm::DWARFDie::getLocations(), llvm::objcopy::ConfigManager::getMachOConfig(), llvm::ExpressionFormat::getMatchingString(), llvm::object::Elf_Sym_Impl< ELFT >::getName(), getNewShfFlags(), llvm::dwarf::CFIProgram::Instruction::getOperandAsSigned(), llvm::dwarf::CFIProgram::Instruction::getOperandAsUnsigned(), llvm::DWARFDebugLine::getOrParseLineTable(), getRemarksSectionName(), llvm::object::COFFObjectFile::getRvaAndSizeAsBytes(), llvm::object::COFFObjectFile::getRvaPtr(), llvm::logicalview::LVBinaryReader::getSection(), llvm::objcopy::elf::SectionTableRef::getSection(), llvm::object::COFFObjectFile::getSection(), llvm::object::XCOFFObjectFile::getSectionByNum(), llvm::object::COFFObjectFile::getSectionName(), llvm::object::WasmObjectFile::getSectionName(), llvm::objcopy::elf::SectionTableRef::getSectionOfType(), llvm::objcopy::elf::SymbolTableSection::getSymbolByIndex(), llvm::object::ResourceSectionRef::getTableEntry(), llvm::objcopy::ConfigManager::getWasmConfig(), llvm::ExpressionFormat::getWildcardRegex(), llvm::objcopy::ConfigManager::getXCOFFConfig(), llvm::object::GOFFObjectFile::GOFFObjectFile(), llvm::objcopy::coff::handleArgs(), hasInvalidBitcodeHeader(), llvm::FunctionImporter::importFunctions(), llvm::dwarf_linker::classic::DwarfStreamer::init(), llvm::dwarf_linker::parallel::DwarfEmitterImpl::init(), initRelocations(), llvm::SpecialCaseList::Matcher::insert(), llvm::object::ExportDirectoryEntryRef::isForwarder(), isValidMachOCannonicalName(), llvm::cas::ObjectStore::load(), llvm::coverage::CoverageMapping::load(), llvm::object::ResourceSectionRef::load(), llvm::logicalview::LVBinaryReader::loadGenericTargetInfo(), llvm::gsym::CallSiteInfoLoader::loadYAML(), localCache(), llvm::gsym::FunctionInfo::lookup(), llvm::gsym::LineTable::lookup(), lookup(), llvm::remarks::magicToFormat(), makeStringError(), llvm::objcopy::coff::Object::markSymbols(), llvm::AMDGPUDisassembler::onSymbolStart(), llvm::remarks::ParsedStringTable::operator[](), llvm::dwarf::CFIProgram::parse(), llvm::DWARFDebugFrame::parse(), llvm::DWARFDebugLine::LineTable::parse(), llvm::DWARFDebugLine::Prologue::parse(), llvm::ELFCompactAttrParser::parse(), llvm::ELFExtendedAttrParser::parse(), llvm::objcopy::elf::IHexRecord::parse(), parse(), parseAddrSpace(), parseAlignment(), llvm::ELFCompactAttrParser::parseAttributeList(), parseDWARF32StringOffsetsTableHeader(), parseDWARF64StringOffsetsTableHeader(), parseDWARFStringOffsetsTableHeader(), parseFilePathFromURI(), llvm::remarks::parseFormat(), llvm::remarks::parseHotnessThresholdOption(), llvm::cas::builtin::BuiltinCASContext::parseID(), parseMagic(), llvm::XCOFF::parseParmsType(), llvm::XCOFF::parseParmsTypeWithVecInfo(), llvm::remarks::YAMLRemarkParser::parseRemark(), llvm::dwarf::parseRows(), llvm::MCSectionMachO::ParseSectionSpecifier(), parseSize(), llvm::ELFCompactAttrParser::parseStringAttribute(), parseStrTabSize(), llvm::ELFCompactAttrParser::parseSubsection(), parseV2DirFileTables(), parseV5DirFileTables(), parseV5EntryFormat(), llvm::XCOFF::parseVectorParmsType(), parseVersion(), llvm::ifs::populateDynamic(), llvm::cas::ondisk::preallocateFileTail(), processLoadCommands(), llvm::xray::FileBasedRecordProducer::produce(), llvm::SimpleBitstreamCursor::Read(), llvm::xray::readBinaryFormatHeader(), readDescriptorRanges(), llvm::ifs::readELFFile(), llvm::ifs::readIFSFromBuffer(), llvm::SimpleBitstreamCursor::ReadVBR(), llvm::SimpleBitstreamCursor::ReadVBR64(), removeNotes(), llvm::objcopy::elf::DynamicRelocationSection::removeSectionReferences(), llvm::objcopy::elf::GroupSection::removeSectionReferences(), llvm::objcopy::elf::RelocationSection::removeSectionReferences(), llvm::objcopy::elf::Section::removeSectionReferences(), llvm::objcopy::elf::SymbolTableSection::removeSectionReferences(), llvm::objcopy::macho::Object::removeSections(), llvm::objcopy::elf::GroupSection::removeSymbols(), llvm::objcopy::elf::RelocationSection::removeSymbols(), reportError(), llvm::remarks::RemarkStreamer::setFilter(), llvm::dwarf_linker::classic::DWARFLinker::setTargetDWARFVersion(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::setTargetDWARFVersion(), llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), timeTraceProfilerWrite(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), llvm::LockFileManager::tryLock(), unsupported(), llvm::objcopy::elf::Object::updateSection(), updateSection(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::validateAndUpdateOptions(), llvm::StrOffsetsContributionDescriptor::validateContributionSize(), llvm::GISelCSEInfo::verify(), llvm::gsym::DwarfTransformer::verify(), llvm::xray::BlockVerifier::verify(), verifyNoteSection(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::BinarySectionWriter::visit(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::xray::RecordInitializer::visit(), llvm::DWARFDebugLoclists::visitLocationList(), llvm::codeview::CVSymbolVisitor::visitSymbolStreamFiltered(), llvm::offloading::wrapCudaBinary(), llvm::offloading::wrapHIPBinary(), llvm::offloading::wrapOpenMPBinaries(), llvm::objcopy::coff::COFFWriter::write(), llvm::objcopy::macho::MachOWriter::write(), llvm::objcopy::xcoff::XCOFFWriter::write(), writeDIE(), writeDWARFExpression(), llvm::ifs::writeELFBinaryToFile(), writeListEntryAddress(), and writeVariableSizedInteger().

◆ createStringError() [5/7]

Error llvm::createStringError ( std::error_code EC,
const char * S )
inline

Definition at line 1314 of file Error.h.

References createStringError().

◆ createStringError() [6/7]

Error llvm::createStringError ( std::error_code EC,
const Twine & S )
inline

Definition at line 1318 of file Error.h.

References createStringError(), and llvm::Twine::str().

◆ createStringError() [7/7]

Error llvm::createStringError ( std::string && Msg,
std::error_code EC )

Definition at line 163 of file Error.cpp.

◆ createStripDebugMachineModulePass()

Machine Strip Debug false ModulePass * llvm::createStripDebugMachineModulePass ( bool OnlyDebugified)

Creates MIR Strip Debug pass.

See also
MachineStripDebug.cpp If OnlyDebugified is true then it will only strip debug info if it was added by a Debugify pass. The module will be left unchanged if the debug info was generated by another source such as clang.

Definition at line 106 of file MachineStripDebug.cpp.

References createStripDebugMachineModulePass().

Referenced by llvm::TargetPassConfig::addStripDebugPass(), and createStripDebugMachineModulePass().

◆ 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 1440 of file StructurizeCFG.cpp.

◆ createSVEIntrinsicOptsPass()

ModulePass * llvm::createSVEIntrinsicOptsPass ( )

Definition at line 78 of file SVEIntrinsicOpts.cpp.

References createSVEIntrinsicOptsPass().

Referenced by createSVEIntrinsicOptsPass().

◆ createSystemZCopyPhysRegsPass()

FunctionPass * llvm::createSystemZCopyPhysRegsPass ( SystemZTargetMachine & TM)

Referenced by INITIALIZE_PASS().

◆ createSystemZELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createSystemZELFObjectWriter ( uint8_t OSABI)

Definition at line 221 of file SystemZELFObjectWriter.cpp.

◆ createSystemZElimComparePass()

FunctionPass * llvm::createSystemZElimComparePass ( SystemZTargetMachine & TM)

Definition at line 738 of file SystemZElimCompare.cpp.

◆ createSystemZGOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createSystemZGOFFObjectWriter ( )

Definition at line 25 of file SystemZGOFFObjectWriter.cpp.

◆ createSystemZISelDag()

FunctionPass * llvm::createSystemZISelDag ( SystemZTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 403 of file SystemZISelDAGToDAG.cpp.

References createSystemZISelDag().

Referenced by createSystemZISelDag().

◆ createSystemZLDCleanupPass()

FunctionPass * llvm::createSystemZLDCleanupPass ( SystemZTargetMachine & TM)

Referenced by INITIALIZE_PASS().

◆ createSystemZLongBranchPass()

FunctionPass * llvm::createSystemZLongBranchPass ( SystemZTargetMachine & TM)

Definition at line 491 of file SystemZLongBranch.cpp.

◆ createSystemZMCAsmBackend()

◆ createSystemZMCCodeEmitter()

MCCodeEmitter * llvm::createSystemZMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 226 of file SystemZMCCodeEmitter.cpp.

Referenced by LLVMInitializeSystemZTargetMC().

◆ createSystemZPostRewritePass()

FunctionPass * llvm::createSystemZPostRewritePass ( SystemZTargetMachine & TM)

Referenced by INITIALIZE_PASS().

◆ createSystemZShortenInstPass()

FunctionPass * llvm::createSystemZShortenInstPass ( SystemZTargetMachine & TM)

Referenced by INITIALIZE_PASS().

◆ createSystemZTDCPass()

FunctionPass * llvm::createSystemZTDCPass ( )

Referenced by INITIALIZE_PASS().

◆ createTailCallEliminationPass()

Tail Call false FunctionPass * llvm::createTailCallEliminationPass ( )

◆ 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 1549 of file TargetTransformInfo.cpp.

Referenced by llvm::TargetPassConfig::addISelPasses(), and LLVMAddAnalysisPasses().

◆ createThumb2ITBlockPass()

FunctionPass * llvm::createThumb2ITBlockPass ( )

createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass.

Definition at line 306 of file Thumb2ITBlockPass.cpp.

◆ createThumb2SizeReductionPass()

FunctionPass * llvm::createThumb2SizeReductionPass ( std::function< bool(const Function &)> Ftor = nullptr)

createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass.

Definition at line 1162 of file Thumb2SizeReduction.cpp.

◆ createTypeBasedAAWrapperPass()

LLVM_ABI ImmutablePass * llvm::createTypeBasedAAWrapperPass ( )

◆ createTypePromotionLegacyPass()

FunctionPass * llvm::createTypePromotionLegacyPass ( )

Create IR Type Promotion pass.

See also
TypePromotion.cpp

Definition at line 1037 of file TypePromotion.cpp.

◆ createUnaryMask()

llvm::SmallVector< int, 16 > llvm::createUnaryMask ( ArrayRef< int > Mask,
unsigned NumElts )

Given a shuffle mask for a binary shuffle, create the equivalent shuffle mask assuming both operands are identical.

This assumes that the unary shuffle will use elements from operand 0 (operand 1 will be unused).

Definition at line 1186 of file VectorUtils.cpp.

References assert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::InstCombinerImpl::visitShuffleVectorInst().

◆ createUnifyLoopExitsPass()

FunctionPass * llvm::createUnifyLoopExitsPass ( )

Definition at line 60 of file UnifyLoopExits.cpp.

◆ createUnpackMachineBundles()

FunctionPass * llvm::createUnpackMachineBundles ( std::function< bool(const MachineFunction &)> Ftor)

Definition at line 81 of file MachineInstrBundle.cpp.

◆ createUnpackShuffleMask()

◆ createUnreachableBlockEliminationPass()

LLVM_ABI 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.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::TargetPassConfig::addPassesToHandleExceptions(), and INITIALIZE_PASS().

◆ createVEAsmBackend()

MCAsmBackend * llvm::createVEAsmBackend ( const Target & T,
const MCSubtargetInfo & STI,
const MCRegisterInfo & MRI,
const MCTargetOptions & Options )

◆ createVEELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createVEELFObjectWriter ( uint8_t OSABI)

Definition at line 165 of file VEELFObjectWriter.cpp.

◆ createVEISelDag()

FunctionPass * llvm::createVEISelDag ( VETargetMachine & TM)

createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction scheduling.

Definition at line 338 of file VEISelDAGToDAG.cpp.

◆ createVEMCCodeEmitter()

MCCodeEmitter * llvm::createVEMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 161 of file VEMCCodeEmitter.cpp.

Referenced by LLVMInitializeVETargetMC().

◆ createVerifierPass()

FunctionPass * llvm::createVerifierPass ( bool FatalErrors = true)

◆ createVirtRegRewriter()

FunctionPass * llvm::createVirtRegRewriter ( bool ClearVirtRegs = true)

Definition at line 782 of file VirtRegMap.cpp.

◆ createVirtualRegister() [1/5]

Register llvm::createVirtualRegister ( const MachineInstr * SpvType,
SPIRVGlobalRegistry * GR,
MachineIRBuilder & MIRBuilder )

◆ createVirtualRegister() [2/5]

Register llvm::createVirtualRegister ( const MachineInstr * SpvType,
SPIRVGlobalRegistry * GR,
MachineRegisterInfo * MRI,
const MachineFunction & MF )

References MRI.

◆ createVirtualRegister() [3/5]

Register llvm::createVirtualRegister ( const Type * Ty,
SPIRVGlobalRegistry * GR,
MachineIRBuilder & MIRBuilder,
SPIRV::AccessQualifier::AccessQualifier AccessQual,
bool EmitIR )

◆ createVirtualRegister() [4/5]

Register llvm::createVirtualRegister ( SPIRVType * SpvType,
SPIRVGlobalRegistry * GR,
MachineIRBuilder & MIRBuilder )

◆ createVirtualRegister() [5/5]

◆ createVLIWDAGScheduler()

ScheduleDAGSDNodes * llvm::createVLIWDAGScheduler ( SelectionDAGISel * IS,
CodeGenOptLevel 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 264 of file ScheduleDAGVLIW.cpp.

References llvm::SelectionDAGISel::MF.

Referenced by createDefaultScheduler().

◆ createVOPDPairingMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createVOPDPairingMutation ( )

◆ createWasmAsmParser()

MCAsmParserExtension * llvm::createWasmAsmParser ( )
extern

Definition at line 314 of file WasmAsmParser.cpp.

◆ createWasmDwoObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createWasmDwoObjectWriter ( std::unique_ptr< MCWasmObjectTargetWriter > MOTW,
raw_pwrite_stream & OS,
raw_pwrite_stream & DwoOS )

Definition at line 1956 of file WasmObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createDwoObjectWriter().

◆ createWasmEHPass()

Prepare WebAssembly false FunctionPass * llvm::createWasmEHPass ( )

createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme.

Definition at line 161 of file WasmEHPrepare.cpp.

References createWasmEHPass().

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions(), and createWasmEHPass().

◆ 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 1950 of file WasmObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter().

◆ createWasmStreamer()

MCStreamer * llvm::createWasmStreamer ( MCContext & Ctx,
std::unique_ptr< MCAsmBackend > && TAB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

Definition at line 155 of file MCWasmStreamer.cpp.

Referenced by llvm::Target::createMCObjectStreamer().

◆ createWebAssemblyAddMissingPrototypes()

ModulePass * llvm::createWebAssemblyAddMissingPrototypes ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyArgumentMove()

FunctionPass * llvm::createWebAssemblyArgumentMove ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyAsmBackend()

MCAsmBackend * llvm::createWebAssemblyAsmBackend ( const Triple & TT)

Definition at line 133 of file WebAssemblyAsmBackend.cpp.

Referenced by createAsmBackend().

◆ createWebAssemblyCFGSort()

FunctionPass * llvm::createWebAssemblyCFGSort ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyCFGStackify()

FunctionPass * llvm::createWebAssemblyCFGStackify ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyCleanCodeAfterTrap()

FunctionPass * llvm::createWebAssemblyCleanCodeAfterTrap ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyDebugFixup()

FunctionPass * llvm::createWebAssemblyDebugFixup ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyExplicitLocals()

FunctionPass * llvm::createWebAssemblyExplicitLocals ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyFixBrTableDefaults()

FunctionPass * llvm::createWebAssemblyFixBrTableDefaults ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyFixFunctionBitcasts()

ModulePass * llvm::createWebAssemblyFixFunctionBitcasts ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyFixIrreducibleControlFlow()

FunctionPass * llvm::createWebAssemblyFixIrreducibleControlFlow ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyISelDag()

FunctionPass * llvm::createWebAssemblyISelDag ( WebAssemblyTargetMachine & TM,
CodeGenOptLevel OptLevel )

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

Definition at line 553 of file WebAssemblyISelDAGToDAG.cpp.

◆ createWebAssemblyLateEHPrepare()

FunctionPass * llvm::createWebAssemblyLateEHPrepare ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyLowerBrUnless()

FunctionPass * llvm::createWebAssemblyLowerBrUnless ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyLowerEmscriptenEHSjLj()

ModulePass * llvm::createWebAssemblyLowerEmscriptenEHSjLj ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyLowerRefTypesIntPtrConv()

FunctionPass * llvm::createWebAssemblyLowerRefTypesIntPtrConv ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyMCCodeEmitter()

MCCodeEmitter * llvm::createWebAssemblyMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 56 of file WebAssemblyMCCodeEmitter.cpp.

Referenced by createCodeEmitter().

◆ createWebAssemblyMCLowerPrePass()

ModulePass * llvm::createWebAssemblyMCLowerPrePass ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyMemIntrinsicResults()

FunctionPass * llvm::createWebAssemblyMemIntrinsicResults ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyNullifyDebugValueLists()

FunctionPass * llvm::createWebAssemblyNullifyDebugValueLists ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyOptimizeLiveIntervals()

FunctionPass * llvm::createWebAssemblyOptimizeLiveIntervals ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyOptimizeReturned()

FunctionPass * llvm::createWebAssemblyOptimizeReturned ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyPeephole()

FunctionPass * llvm::createWebAssemblyPeephole ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyRefTypeMem2Local()

FunctionPass * llvm::createWebAssemblyRefTypeMem2Local ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyRegColoring()

FunctionPass * llvm::createWebAssemblyRegColoring ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyRegNumbering()

FunctionPass * llvm::createWebAssemblyRegNumbering ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyRegStackify()

FunctionPass * llvm::createWebAssemblyRegStackify ( CodeGenOptLevel OptLevel)

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyReplacePhysRegs()

FunctionPass * llvm::createWebAssemblyReplacePhysRegs ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblySetP2AlignOperands()

FunctionPass * llvm::createWebAssemblySetP2AlignOperands ( )

Referenced by INITIALIZE_PASS().

◆ createWebAssemblyWasmObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createWebAssemblyWasmObjectWriter ( bool Is64Bit,
bool IsEmscripten )

Definition at line 162 of file WebAssemblyWasmObjectWriter.cpp.

◆ createWideIV()

PHINode * llvm::createWideIV ( const WideIVInfo & WI,
LoopInfo * LI,
ScalarEvolution * SE,
SCEVExpander & Rewriter,
DominatorTree * DT,
SmallVectorImpl< WeakTrackingVH > & DeadInsts,
unsigned & NumElimExt,
unsigned & NumWidened,
bool HasGuards,
bool UsePostIncrementRanges )

Widen Induction Variables - Extend the width of an IV to cover its widest uses.

Definition at line 2272 of file SimplifyIndVar.cpp.

References UsePostIncrementRanges.

Referenced by CanWidenIV().

◆ createWinCOFFDwoObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createWinCOFFDwoObjectWriter ( std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW,
raw_pwrite_stream & OS,
raw_pwrite_stream & DwoOS )

Definition at line 1244 of file WinCOFFObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createDwoObjectWriter().

◆ 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 1239 of file WinCOFFObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter().

◆ createWindowsSecureHotPatchingPass()

LLVM_ABI ModulePass * llvm::createWindowsSecureHotPatchingPass ( )

Creates Windows Secure Hot Patch pass.

See also
WindowsSecureHotPatching.cpp

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addIRPasses(), and INITIALIZE_PASS().

◆ createWinEHPass()

LLVM_ABI FunctionPass * llvm::createWinEHPass ( bool DemoteCatchSwitchPHIOnly = false)

createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.

References LLVM_ABI.

Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions(), and INITIALIZE_PASS().

◆ createX86_32AsmBackend()

◆ createX86_64AsmBackend()

◆ createX86ArgumentStackSlotPass()

FunctionPass * llvm::createX86ArgumentStackSlotPass ( )

Referenced by INITIALIZE_PASS().

◆ createX86AsmTargetStreamer()

MCTargetStreamer * llvm::createX86AsmTargetStreamer ( MCStreamer & S,
formatted_raw_ostream & OS,
MCInstPrinter * InstPrinter )

Implements X86-only directives for assembly emission.

Definition at line 454 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 128 of file X86AvoidStoreForwardingBlocks.cpp.

References createX86AvoidStoreForwardingBlocks().

Referenced by createX86AvoidStoreForwardingBlocks().

◆ createX86AvoidTrailingCallPass()

FunctionPass * llvm::createX86AvoidTrailingCallPass ( )

Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction.

The pass does the same for each funclet as well. This ensures that the open interval of function start and end PCs contains all return addresses for the benefit of the Windows x64 unwinder.

Definition at line 64 of file X86AvoidTrailingCall.cpp.

◆ 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 627 of file X86CallFrameOptimization.cpp.

◆ createX86CmovConverterPass()

X86 cmov false FunctionPass * llvm::createX86CmovConverterPass ( )

This pass converts X86 cmov instructions into branch when profitable.

Definition at line 893 of file X86CmovConversion.cpp.

References createX86CmovConverterPass().

Referenced by createX86CmovConverterPass().

◆ createX86CompressEVEXPass()

FunctionPass * llvm::createX86CompressEVEXPass ( )

This pass compress instructions from EVEX space to legacy/VEX/EVEX space when possible in order to reduce code size or facilitate HW decoding.

Definition at line 358 of file X86CompressEVEX.cpp.

References createX86CompressEVEXPass().

Referenced by createX86CompressEVEXPass().

◆ createX86DiscriminateMemOpsPass()

FunctionPass * llvm::createX86DiscriminateMemOpsPass ( )

This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to each other)

Definition at line 182 of file X86DiscriminateMemOps.cpp.

◆ createX86DomainReassignmentPass()

FunctionPass * llvm::createX86DomainReassignmentPass ( )

Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable.

Referenced by INITIALIZE_PASS().

◆ createX86DynAllocaExpander()

FunctionPass * llvm::createX86DynAllocaExpander ( )

Return a pass that expands DynAlloca pseudo-instructions.

Referenced by INITIALIZE_PASS().

◆ createX86ELFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createX86ELFObjectWriter ( bool IsELF64,
uint8_t OSABI,
uint16_t EMachine )

Construct an X86 ELF object writer.

Definition at line 401 of file X86ELFObjectWriter.cpp.

◆ createX86ELFStreamer()

MCStreamer * llvm::createX86ELFStreamer ( const Triple & T,
MCContext & Context,
std::unique_ptr< MCAsmBackend > && MAB,
std::unique_ptr< MCObjectWriter > && MOW,
std::unique_ptr< MCCodeEmitter > && MCE )

Definition at line 1529 of file X86AsmBackend.cpp.

References T.

Referenced by LLVMInitializeX86TargetMC().

◆ 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 1120 of file X86ExpandPseudo.cpp.

◆ createX86FastPreTileConfigPass()

FunctionPass * llvm::createX86FastPreTileConfigPass ( )

Return a pass that preconfig the tile registers before fast reg allocation.

Definition at line 732 of file X86FastPreTileConfig.cpp.

◆ createX86FastTileConfigPass()

FunctionPass * llvm::createX86FastTileConfigPass ( )

Return a pass that config the tile registers after fast reg allocation.

Definition at line 200 of file X86FastTileConfig.cpp.

◆ createX86FixupBWInsts()

FunctionPass * llvm::createX86FixupBWInsts ( )

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.

Definition at line 151 of file X86FixupBWInsts.cpp.

References createX86FixupBWInsts().

Referenced by createX86FixupBWInsts().

◆ createX86FixupInstTuning()

FunctionPass * llvm::createX86FixupInstTuning ( )

Return a pass that replaces equivalent slower instructions with faster ones.

Definition at line 66 of file X86FixupInstTuning.cpp.

References createX86FixupInstTuning().

Referenced by createX86FixupInstTuning().

◆ createX86FixupLEAs()

FunctionPass * llvm::createX86FixupLEAs ( )

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.

Definition at line 213 of file X86FixupLEAs.cpp.

◆ createX86FixupSetCC()

FunctionPass * llvm::createX86FixupSetCC ( )

Return a pass that transforms setcc + movzx pairs into xor + setcc.

Definition at line 65 of file X86FixupSetCC.cpp.

References createX86FixupSetCC().

Referenced by createX86FixupSetCC().

◆ createX86FixupVectorConstants()

FunctionPass * llvm::createX86FixupVectorConstants ( )

Return a pass that reduces the size of vector constant pool loads.

Definition at line 62 of file X86FixupVectorConstants.cpp.

References createX86FixupVectorConstants().

Referenced by createX86FixupVectorConstants().

◆ createX86FlagsCopyLoweringPass()

X86 EFLAGS copy false FunctionPass * llvm::createX86FlagsCopyLoweringPass ( )

Return a pass that lowers EFLAGS copy pseudo instructions.

Definition at line 124 of file X86FlagsCopyLowering.cpp.

References createX86FlagsCopyLoweringPass().

Referenced by createX86FlagsCopyLoweringPass().

◆ createX86FloatingPointStackifierPass()

X86 FP false 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 309 of file X86FloatingPoint.cpp.

References createX86FloatingPointStackifierPass().

Referenced by createX86FloatingPointStackifierPass().

◆ createX86GlobalBaseRegPass()

FunctionPass * llvm::createX86GlobalBaseRegPass ( )

This pass initializes a global base register for PIC on x86-32.

Definition at line 10449 of file X86InstrInfo.cpp.

◆ createX86IndirectBranchTrackingPass()

FunctionPass * llvm::createX86IndirectBranchTrackingPass ( )

This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechanism.

Definition at line 69 of file X86IndirectBranchTracking.cpp.

◆ createX86IndirectThunksPass()

FunctionPass * llvm::createX86IndirectThunksPass ( )

This pass creates the thunks for the retpoline feature.

Definition at line 238 of file X86IndirectThunks.cpp.

◆ createX86InsertPrefetchPass()

FunctionPass * llvm::createX86InsertPrefetchPass ( )

This pass applies profiling information to insert cache prefetches.

Definition at line 257 of file X86InsertPrefetch.cpp.

References PrefetchHintsFile.

◆ createX86InsertX87waitPass()

FunctionPass * llvm::createX86InsertX87waitPass ( )

This pass insert wait instruction after X87 instructions which could raise fp exceptions when strict-fp enabled.

Definition at line 56 of file X86InsertWait.cpp.

◆ createX86InstructionSelector()

InstructionSelector * llvm::createX86InstructionSelector ( const X86TargetMachine & TM,
const X86Subtarget & Subtarget,
const X86RegisterBankInfo & RBI )

Definition at line 1953 of file X86InstructionSelector.cpp.

Referenced by llvm::X86Subtarget::X86Subtarget().

◆ createX86ISelDag()

FunctionPass * llvm::createX86ISelDag ( X86TargetMachine & TM,
CodeGenOptLevel OptLevel )

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

Definition at line 6783 of file X86ISelDAGToDAG.cpp.

◆ 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 115 of file X86VZeroUpper.cpp.

◆ createX86LoadValueInjectionLoadHardeningPass()

X86 LVI load false FunctionPass * llvm::createX86LoadValueInjectionLoadHardeningPass ( )

◆ createX86LoadValueInjectionRetHardeningPass()

FunctionPass * llvm::createX86LoadValueInjectionRetHardeningPass ( )

Referenced by INITIALIZE_PASS().

◆ createX86LowerAMXIntrinsicsPass()

false FunctionPass * llvm::createX86LowerAMXIntrinsicsPass ( )

The pass transforms amx intrinsics to scalar operation if the function has optnone attribute or it is O0.

Definition at line 671 of file X86LowerAMXIntrinsics.cpp.

References createX86LowerAMXIntrinsicsPass().

Referenced by createX86LowerAMXIntrinsicsPass().

◆ createX86LowerAMXTypePass()

false FunctionPass * llvm::createX86LowerAMXTypePass ( )

The pass transforms load/store <256 x i32> to AMX load/store intrinsics or split the data to two <128 x i32>.

Definition at line 1474 of file X86LowerAMXType.cpp.

References createX86LowerAMXTypePass().

Referenced by createX86LowerAMXTypePass().

◆ createX86LowerTileCopyPass()

FunctionPass * llvm::createX86LowerTileCopyPass ( )

Return a pass that lower the tile copy instruction.

Definition at line 68 of file X86LowerTileCopy.cpp.

◆ 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 578 of file X86MachObjectWriter.cpp.

◆ createX86MacroFusionDAGMutation()

std::unique_ptr< ScheduleDAGMutation > llvm::createX86MacroFusionDAGMutation ( )

Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86TargetMachine::createMachineScheduler() to have an effect.

Definition at line 70 of file X86MacroFusion.cpp.

References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().

Referenced by llvm::X86TargetMachine::createMachineScheduler(), llvm::X86TargetMachine::createPostMachineScheduler(), and llvm::X86Subtarget::getPostRAMutations().

◆ createX86MCCodeEmitter()

MCCodeEmitter * llvm::createX86MCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 2027 of file X86MCCodeEmitter.cpp.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86NullTargetStreamer()

MCTargetStreamer * llvm::createX86NullTargetStreamer ( MCStreamer & S)
inline

Implements X86-only null emission.

Definition at line 43 of file X86TargetStreamer.h.

Referenced by LLVMInitializeX86TargetMC().

◆ createX86ObjectTargetStreamer()

MCTargetStreamer * llvm::createX86ObjectTargetStreamer ( MCStreamer & S,
const MCSubtargetInfo & STI )

Implements X86-only directives for object files.

Definition at line 463 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 314 of file X86OptimizeLEAs.cpp.

◆ createX86PadShortFunctions()

FunctionPass * llvm::createX86PadShortFunctions ( )

Return a pass that pads short functions with NOOPs.

This will prevent a stall when returning on the Atom.

Definition at line 96 of file X86PadShortFunction.cpp.

◆ createX86PartialReductionPass()

FunctionPass * llvm::createX86PartialReductionPass ( )

This pass optimizes arithmetic based on knowledge that is only used by a reduction sequence and is therefore safe to reassociate in interesting ways.

Definition at line 58 of file X86PartialReduction.cpp.

◆ createX86PreTileConfigPass()

FunctionPass * llvm::createX86PreTileConfigPass ( )

Return a pass that insert pseudo tile config instruction.

Definition at line 453 of file X86PreTileConfig.cpp.

◆ createX86ReturnThunksPass()

FunctionPass * llvm::createX86ReturnThunksPass ( )

This pass replaces ret instructions with jmp's to __x86_return thunk.

Definition at line 99 of file X86ReturnThunks.cpp.

References createX86ReturnThunksPass().

Referenced by createX86ReturnThunksPass().

◆ createX86SpeculativeExecutionSideEffectSuppression()

FunctionPass * llvm::createX86SpeculativeExecutionSideEffectSuppression ( )

◆ createX86SpeculativeLoadHardeningPass()

X86 speculative load false FunctionPass * llvm::createX86SpeculativeLoadHardeningPass ( )

◆ createX86SuppressAPXForRelocationPass()

X86 Suppress APX features for false FunctionPass * llvm::createX86SuppressAPXForRelocationPass ( )

◆ createX86TileConfigPass()

FunctionPass * llvm::createX86TileConfigPass ( )

Return a pass that config the tile registers.

Definition at line 265 of file X86TileConfig.cpp.

◆ createX86WinCOFFObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createX86WinCOFFObjectWriter ( bool Is64Bit)

Construct an X86 Win COFF object writer.

Definition at line 127 of file X86WinCOFFObjectWriter.cpp.

◆ createX86WinCOFFStreamer()

MCStreamer * llvm::createX86WinCOFFStreamer ( MCContext & C,
std::unique_ptr< MCAsmBackend > && AB,
std::unique_ptr< MCObjectWriter > && OW,
std::unique_ptr< MCCodeEmitter > && CE )

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 76 of file X86WinCOFFStreamer.cpp.

References llvm::CallingConv::C.

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 120 of file X86WinEHState.cpp.

◆ createX86WinEHUnwindV2Pass()

FunctionPass * llvm::createX86WinEHUnwindV2Pass ( )

// Analyzes and emits pseudos to support Win x64 Unwind V2.

Referenced by INITIALIZE_PASS().

◆ createXCOFFAsmParser()

MCAsmParserExtension * llvm::createXCOFFAsmParser ( )
extern

Definition at line 48 of file XCOFFAsmParser.cpp.

◆ createXCOFFObjectWriter()

std::unique_ptr< MCObjectWriter > llvm::createXCOFFObjectWriter ( std::unique_ptr< MCXCOFFObjectTargetWriter > MOTW,
raw_pwrite_stream & OS )

Definition at line 1721 of file XCOFFObjectWriter.cpp.

Referenced by llvm::MCAsmBackend::createObjectWriter().

◆ createXCoreFrameToArgsOffsetEliminationPass()

FunctionPass * llvm::createXCoreFrameToArgsOffsetEliminationPass ( )

createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass

Definition at line 40 of file XCoreFrameToArgsOffsetElim.cpp.

◆ createXCoreISelDag()

FunctionPass * llvm::createXCoreISelDag ( XCoreTargetMachine & TM,
CodeGenOptLevel OptLevel )

createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling.

Definition at line 91 of file XCoreISelDAGToDAG.cpp.

References createXCoreISelDag().

Referenced by createXCoreISelDag().

◆ createXCoreLowerThreadLocalPass()

ModulePass * llvm::createXCoreLowerThreadLocalPass ( )

Referenced by INITIALIZE_PASS().

◆ createXtensaAsmBackend()

◆ createXtensaISelDag()

FunctionPass * llvm::createXtensaISelDag ( XtensaTargetMachine & TM,
CodeGenOptLevel OptLevel )

Definition at line 131 of file XtensaISelDAGToDAG.cpp.

◆ createXtensaMCCodeEmitter()

MCCodeEmitter * llvm::createXtensaMCCodeEmitter ( const MCInstrInfo & MCII,
MCContext & Ctx )

Definition at line 148 of file XtensaMCCodeEmitter.cpp.

Referenced by LLVMInitializeXtensaTargetMC().

◆ createXtensaObjectWriter()

std::unique_ptr< MCObjectTargetWriter > llvm::createXtensaObjectWriter ( uint8_t OSABI,
bool IsLittleEndian )

Definition at line 61 of file XtensaELFObjectWriter.cpp.

◆ CreateZ3Solver()

llvm::SMTSolverRef llvm::CreateZ3Solver ( )

Convenience method to create and Z3Solver object.

Definition at line 982 of file Z3Solver.cpp.

References report_fatal_error().

◆ CTLog2()

template<size_t kValue>
size_t llvm::CTLog2 ( )
constexpr

Definition at line 335 of file MathExtras.h.

References ConstantLog2(), and CTLog2().

Referenced by CTLog2().

◆ 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 207 of file Debug.cpp.

References llvm::sys::AddSignalHandler(), debug_user_sig_handler(), DebugBufferSize, DebugFlag, EnableDebugBuffering, and errs().

Referenced by llvm::InstructionWorklist::add(), llvm::logicalview::LVSymbolTable::add(), llvm::logicalview::LVSymbolTable::add(), llvm::AA::PointerInfo::State::addAccess(), llvm::AArch64::ExtensionSet::addArchDefaults(), llvm::SSAUpdaterBulk::AddAvailableValue(), llvm::DwarfExpression::addConstantFP(), llvm::AArch64::ExtensionSet::addCPUDefaults(), addData(), addDiscriminators(), addEdge(), llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::ExecutionEngine::addGlobalMapping(), addInstToMergeableList(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::addISelPrepare(), llvm::TargetPassConfig::addISelPrepare(), llvm::PMDataManager::addLowerLevelRequiredPass(), llvm::DwarfExpression::addMachineRegExpression(), llvm::logicalview::LVScope::addMissingElements(), addNonNullAttrs(), llvm::logicalview::LVPatterns::addPatterns(), llvm::TargetPassConfig::addPrintPass(), llvm::RecurrenceDescriptor::AddReductionVar(), llvm::mca::RegisterFile::addRegisterWrite(), llvm::logicalview::LVScopeCompileUnit::addSize(), llvm::DIEHash::addSLEB128(), llvm::BlockFrequencyInfoImplBase::addToDist(), llvm::DIEHash::addULEB128(), llvm::SSAUpdaterBulk::AddUse(), llvm::IVUsers::AddUsersIfInteresting(), llvm::SSAUpdaterBulk::AddVariable(), llvm::DbgValueRangeTable::addVariable(), addVariantDeclaration(), llvm::ARMBasicBlockUtils::adjustBBOffsetsAfter(), adjustByValArgAlignment(), llvm::SystemZTTIImpl::adjustInliningThreshold(), llvm::MipsTargetLowering::AdjustInstrPostInstrSelection(), llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), AdjustStackOffset(), AdjustStackOffset(), llvm::HexagonHazardRecognizer::AdvanceCycle(), llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::AAResults::alias(), alignOutputBlockWithAggFunc(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::EPCGenericRTDyldMemoryManager::allocateCodeSection(), llvm::orc::EPCGenericRTDyldMemoryManager::allocateDataSection(), llvm::RegAllocBase::allocatePhysRegs(), llvm::LoopVectorizeHints::allowVectorization(), llvm::WindowScheduler::analyseII(), llvm::GISelCSEInfo::analyze(), llvm::CodeMetrics::analyzeBasicBlock(), llvm::HexagonInstrInfo::analyzeBranch(), llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallOperands(), llvm::CCState::AnalyzeCallResult(), llvm::CCState::AnalyzeCallResult(), llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence(), llvm::InterleavedAccessInfo::analyzeInterleaving(), analyzeLoopUnrollCost(), analyzeParsePointLiveness(), annotateAllFunctions(), llvm::ModifiedPostOrder< ContextT >::appendBlock(), appendFoldCandidate(), appendJITDebugDescriptor(), llvm::A57ChainingConstraint::apply(), llvm::LegalizeRuleSet::apply(), llvm::CombinerHelper::applyCombineIndexedLoadStore(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), llvm::jitlink::ppc64::applyFixup(), llvm::jitlink::XCOFFJITLinker_ppc64::applyFixup(), llvm::RegBankSelect::applyMapping(), llvm::AMDGPU::RegBankLegalizeHelper::applyMappingPHI(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyNextUpdate(), llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), llvm::MemoryDepChecker::areDepsSafe(), assertBranchOrSelectConditionHoisted(), llvm::LiveRegMatrix::assign(), llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::ARCFrameLowering::assignCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::RegBankSelect::assignInstr(), llvm::RegBankSelect::assignmentMatch(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::lto::backend(), BadConditionCode(), llvm::LegalizerHelper::bitcast(), bitTrackingDCE(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), BreakUpSubtract(), BUCompareLatency(), BUCompareLatency(), buildAnyextOrCopy(), buildBitSets(), llvm::slpvectorizer::BoUpSLP::buildExternalUses(), buildExtractionBlockSet(), llvm::jitlink::XCOFFLinkGraphBuilder::buildGraph(), llvm::VPlanSlp::buildGraph(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::jitlink::buildTables_ELF_aarch32(), llvm::jitlink::buildTables_MachO_arm64(), llvm::ConvergingVLIWScheduler::VLIWSchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpCycle(), llvm::ConvergingVLIWScheduler::VLIWSchedBoundary::bumpNode(), llvm::SchedBoundary::bumpNode(), BURRSort(), calcPredicateUsingBooleans(), calcPredicateUsingInteger(), llvm::BlockFrequencyInfo::calculate(), llvm::BlockFrequencyInfoImpl< BT >::calculate(), llvm::BranchProbabilityInfo::calculate(), llvm::MachineBlockFrequencyInfo::calculate(), calculateCXXStateNumbers(), calculateEarlyExitCost(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::CalculateFromScratch(), llvm::WindowScheduler::calculateMaxCycle(), calculatePrevailingSummary(), llvm::LiveRangeEdit::calculateRegClassAndHint(), calculateRegisterUsageForPlan(), llvm::ResourceManager::calculateResMII(), calculateSEHStateNumbers(), llvm::VirtRegAuxInfo::calculateSpillWeightsAndHints(), llvm::WindowScheduler::calculateStallCycle(), CalculateUnswitchCostMultiplier(), callBufferedPrintfArgPush(), llvm::RegAllocEvictionAdvisor::canAllocatePhysReg(), llvm::ModuloScheduleExpanderMVE::canApply(), canCreateThunkFor(), CanFlattenLoopPair(), llvm::LoopVectorizationLegality::canFoldTailByMasking(), canFoldTermCondOfLoop(), CanGenerateTest(), llvm::HexagonPacketizerList::canPromoteToDotCur(), CanPropagatePredecessorsForPHIs(), llvm::RegAllocEvictionAdvisor::canReassign(), canRenameMOP(), canRenameUpToDef(), llvm::ResourceManager::canReserveResources(), llvm::MachineBasicBlock::canSplitCriticalEdge(), canTailPredicateLoop(), llvm::UnrollCostEstimator::canUnroll(), llvm::LoopVectorizationLegality::canVectorize(), CanWidenIV(), llvm::Combiner::WorkListMaintainerImpl< Lvl >::changedInstr(), llvm::Combiner::WorkListMaintainerImpl< Lvl >::changingInstr(), llvm::RuntimeDyldCheckerImpl::check(), llvm::GenericScheduler::checkAcyclicLatency(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), CheckAndCreateOffsetAdd(), checkBiasedBranch(), checkBiasedSelect(), checkCondition(), checkDebugInfoMetadata(), checkDependency(), llvm::Attributor::checkForAllCallSites(), llvm::Attributor::checkForAllCallSites(), checkForAllInstructionsImpl(), llvm::Attributor::checkForAllUses(), checkForCyclesHelper(), checkFrameBase(), llvm::SchedBoundary::checkHazard(), checkHoistValue(), checkIfSafeAddSequence(), checkIntegrityScopesTree(), checkIVUsers(), checkOrderedReduction(), checkOuterLoopInsts(), checkOverflow(), checkPHIs(), llvm::GCNSchedStage::checkScheduling(), checkVOPDRegConstraints(), clampReturnedValueStates(), clampStackAlignment(), llvm::HexagonPacketizerList::cleanUpDotCur(), llvm::objcarc::PtrState::ClearKnownPositiveRefCount(), cloneAndAdaptNoAliasScopes(), cloneAndAdaptNoAliasScopes(), llvm::FunctionComparator::cmpConstants(), llvm::jitlink::COFFLinkGraphBuilder::COFFLinkGraphBuilder(), llvm::rdf::DeadCodeElimination::collect(), collectBitParts(), collectDebugInfoMetadata(), llvm::LoopVectorizationCostModel::collectInLoopReductions(), collectMergeableInsts(), collectParametricTerms(), collectSRATypes(), collectUnswitchCandidates(), llvm::mca::RegisterFile::collectWrites(), colorEHFunclets(), combineInstructionsOverFunction(), llvm::Combiner::combineMachineInstrs(), llvm::PPCInstrInfo::combineRLWINM(), completeEphemeralValues(), llvm::HexagonEvaluator::composeWithSubRegIndex(), llvm::GenericUniformityAnalysisImpl< ContextT >::compute(), computeAccessFunctions(), llvm::LoopVectorizationPlanner::computeBestVF(), llvm::ARMBasicBlockUtils::computeBlockSize(), llvm::SampleProfileLoaderBaseImpl< FT >::computeBlockWeights(), ComputeCrossModuleImport(), ComputeCrossModuleImportForModuleForTest(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::HexagonBlockRanges::computeDeadMap(), computeDeadSymbolsAndUpdateIndirectCalls(), computeHeuristicUnrollFactor(), ModuleImportsManager::computeImportForModule(), llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), llvm::safestack::StackLayout::computeLayout(), llvm::rdf::Liveness::computeLiveIns(), llvm::HexagonBlockRanges::computeLiveMap(), llvm::BlockFrequencyInfoImplBase::computeLoopScale(), llvm::RegBankSelect::computeMapping(), llvm::LoopVectorizationCostModel::computeMaxVF(), computePeelCount(), llvm::rdf::Liveness::computePhiInfo(), llvm::mca::computeProcResourceMasks(), llvm::IndexedReference::computeRefCost(), computeTripCount(), llvm::SMSchedule::computeUnpipelineableNodes(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ComputeUnreachableDominators(), computeUnrollAndJamCount(), computeUnrollCount(), llvm::VPBasicBlock::connectToPredecessors(), constrainSelectedInstRegOperands(), constructPointer(), ConvertDebugDeclareToDebugValue(), ConvertDebugDeclareToDebugValue(), ConvertDebugDeclareToDebugValue(), convertFloatingToInteger(), convertOrWithNoCommonBitsToAdd(), convertToDeclaration(), copyDebugInfoToPredecessor(), copyDebugInfoToSuccessor(), llvm::BranchProbabilityInfo::copyEdgeProbabilities(), llvm::SelectionDAG::copyExtraInfo(), copyFunctionByValArgs(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::VPRecipeBase::cost(), llvm::VPRegionBlock::cost(), llvm::SchedBoundary::countResource(), llvm::AllocationOrder::create(), ModuleImportsManager::create(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createAndConnectRootNode(), createAtomicLibcall(), llvm::AbstractDependenceGraphBuilder< GraphType >::createDefUseEdges(), llvm::Combiner::WorkListMaintainerImpl< Lvl >::createdInstr(), llvm::InstructionSelect::MIIteratorMaintainer::createdInstr(), llvm::orc::createDWARFContext(), llvm::logicalview::LVReader::createElement(), llvm::jitlink::aarch64::createEmptyPointerSigningFunction(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::mca::RISCVInstrumentManager::createInstrument(), llvm::mca::RISCVInstrumentManager::createInstruments(), createIrreducibleLoop(), llvm::jitlink::createLinkGraphFromCOFFObject(), llvm::jitlink::createLinkGraphFromCOFFObject_x86_64(), llvm::jitlink::createLinkGraphFromELFObject_aarch32(), llvm::jitlink::createLinkGraphFromELFObject_aarch64(), llvm::jitlink::createLinkGraphFromELFObject_loongarch(), llvm::jitlink::createLinkGraphFromELFObject_ppc64(), llvm::jitlink::createLinkGraphFromELFObject_riscv(), llvm::jitlink::createLinkGraphFromELFObject_x86(), llvm::jitlink::createLinkGraphFromELFObject_x86_64(), llvm::jitlink::createLinkGraphFromMachOObject(), llvm::jitlink::createLinkGraphFromXCOFFObject_ppc64(), createMemLibcall(), createSwitchStatement(), createUnreachableSwitchDefault(), CreateVPTBlock(), createWrapper(), llvm::mca::ExecuteStage::cycleEnd(), DbgRewriteSalvageableDVIs(), LiveDebugValues::DbgValue::DbgValue(), debug_user_sig_handler(), debugAssign(), debugHWLoopFailure(), debugVectorizationMessage(), DecodeCCRU6Instruction(), decodeFPUV3Instruction(), DecodeGPR32RegisterClass(), DecodeLdLImmInstruction(), DecodeLdRLImmInstruction(), DecodeMoveHRegInstruction(), DecodeStLImmInstruction(), llvm::orc::JITDylib::define(), llvm::orc::JITDylib::define(), llvm::orc::LLJIT::deinitialize(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), deleteIfDead(), deleteLoopIfDead(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteReachable(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), llvm::DependenceInfo::depends(), llvm::Constant::destroyConstant(), detectShiftUntilBitTestIdiom(), detectShiftUntilZeroIdiom(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), determineSVEStackObjectOffsets(), llvm::AArch64::ExtensionSet::disable(), llvm::mca::LSUnit::dispatch(), llvm::mca::Scheduler::dispatch(), llvm::BlockFrequencyInfoImplBase::distributeMass(), llvm::orc::MaterializationUnit::doDiscard(), DoFlattenLoopPair(), doPromotion(), llvm::coro::doRematerializations(), llvm::SelectionDAGBuilder::dropDanglingDebugInfo(), LiveDebugValues::DbgOp::dump(), LiveDebugValues::DbgOpID::dump(), LiveDebugValues::DbgValue::dump(), LiveDebugValues::MLocTracker::dump(), LiveDebugValues::ResolvedDbgOp::dump(), llvm::AbstractAttribute::dump(), llvm::AccelTableBase::dump(), llvm::AccelTableBase::HashData::dump(), llvm::AliasSet::dump(), llvm::AliasSetTracker::dump(), llvm::APFloat::dump(), llvm::APInt::dump(), llvm::AppleAccelTableData::Atom::dump(), llvm::AttributeSet::dump(), llvm::BaseIndexOffset::dump(), llvm::BasicAAResult::DecomposedGEP::dump(), llvm::bfi_detail::BlockMass::dump(), llvm::BlockFrequencyInfoImplBase::dump(), llvm::BranchProbability::dump(), llvm::CallGraph::dump(), llvm::CallGraphNode::dump(), llvm::CallGraphWrapperPass::dump(), llvm::cas::CASID::dump(), llvm::cas::ObjectHandle::dump(), llvm::cas::ObjectRef::dump(), llvm::cfg::Update< BasicBlock * >::dump(), llvm::CoalescingBitVector< IndexT >::dump(), llvm::Comdat::dump(), llvm::ConstantFPRange::dump(), llvm::ConstantRange::dump(), llvm::ConstantRangeList::dump(), llvm::ConstantUniqueMap< ConstantArray >::dump(), llvm::ConstraintSystem::dump(), llvm::coverage::CounterMappingContext::dump(), llvm::CRCTable::dump(), llvm::DbgMarker::dump(), llvm::DbgRecord::dump(), llvm::DbgValueHistoryMap::dump(), llvm::DbgValueLocEntry::dump(), llvm::DebugCounter::dump(), llvm::DebugLoc::dump(), llvm::detail::SlowDynamicAPInt::dump(), llvm::DIE::dump(), llvm::DIEAbbrev::dump(), llvm::DIEValue::dump(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::dump(), llvm::DominanceFrontierWrapperPass::dump(), llvm::DomTreeUpdater::dump(), llvm::DXILMetadataAnalysisWrapperPass::dump(), llvm::DXILResourceWrapperPass::dump(), llvm::DynamicAPInt::dump(), llvm::EVT::dump(), llvm::GCNRegPressure::dump(), llvm::GCOVBlock::dump(), llvm::GCOVFile::dump(), llvm::GCOVFunction::dump(), llvm::GenericCycleInfo< MachineSSAContext >::dump(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::dump(), llvm::GraphDiff< MachineBasicBlock *, false >::dump(), llvm::GVNExpression::Expression::dump(), llvm::HashRecognize::dump(), llvm::ILPValue::dump(), llvm::ImportedFunctionsInliningStatistics::dump(), llvm::IVUsers::dump(), llvm::json::Value::dump(), llvm::KnownBits::dump(), llvm::LatencyPriorityQueue::dump(), llvm::LexicalScope::dump(), llvm::LiveDebugVariables::dump(), llvm::LiveInterval::dump(), llvm::LiveInterval::SubRange::dump(), llvm::LiveIntervals::dump(), llvm::LivePhysRegs::dump(), llvm::LiveRange::dump(), llvm::LiveRange::Segment::dump(), llvm::LiveVariables::VarInfo::dump(), llvm::LLT::dump(), llvm::logicalview::LVBinaryReader::dump(), llvm::logicalview::LVCodeViewReader::dump(), llvm::logicalview::LVCompare::dump(), llvm::logicalview::LVDWARFReader::dump(), llvm::logicalview::LVObject::dump(), llvm::logicalview::LVOperation::dump(), llvm::logicalview::LVOptions::dump(), llvm::logicalview::LVPatterns::dump(), llvm::logicalview::LVReader::dump(), llvm::logicalview::LVReaderHandler::dump(), llvm::logicalview::LVStringPool::dump(), llvm::Loop::dump(), llvm::LoopCarriedEdges::dump(), llvm::MachineBasicBlock::dump(), llvm::MachineConstantPool::dump(), llvm::MachineFrameInfo::dump(), llvm::MachineFunction::dump(), llvm::MachineInstr::dump(), llvm::MachineJumpTableInfo::dump(), llvm::MachineLoop::dump(), llvm::MachineOperand::dump(), llvm::MachineTraceMetrics::Ensemble::dump(), llvm::MachineTraceMetrics::Trace::dump(), llvm::MachineTraceMetrics::TraceBlockInfo::dump(), llvm::mca::LSUnit::dump(), llvm::mca::ReadState::dump(), llvm::mca::RegisterFile::dump(), llvm::mca::RetireControlUnit::dump(), llvm::mca::Scheduler::dump(), llvm::mca::WriteRef::dump(), llvm::mca::WriteState::dump(), llvm::MCAsmMacro::dump(), llvm::MCAsmMacroParameter::dump(), llvm::MCExpr::dump(), llvm::MCInst::dump(), llvm::MCLabel::dump(), llvm::MCOperand::dump(), llvm::MCParsedAsmOperand::dump(), llvm::MCSymbol::dump(), llvm::MemoryAccess::dump(), llvm::MemorySSA::dump(), llvm::Metadata::dump(), llvm::MMRAMetadata::dump(), llvm::Module::dump(), llvm::ModuleSummaryIndex::dump(), llvm::ModuloSchedule::dump(), llvm::MVT::dump(), llvm::NamedMDNode::dump(), llvm::NodeSet::dump(), llvm::object::WasmSymbol::dump(), llvm::opt::Arg::dump(), llvm::opt::ArgList::dump(), llvm::opt::Option::dump(), llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::PHITransAddr::dump(), llvm::PMStack::dump(), llvm::PredicateInfo::dump(), llvm::PressureChange::dump(), llvm::PressureDiff::dump(), llvm::ReadyQueue::dump(), llvm::RegBankSelect::MappingCost::dump(), llvm::RegionBase< Tr >::dump(), llvm::RegionInfoBase< Tr >::dump(), llvm::RegisterBank::dump(), llvm::RegisterBankInfo::InstructionMapping::dump(), llvm::RegisterBankInfo::OperandsMapper::dump(), llvm::RegisterBankInfo::PartialMapping::dump(), llvm::RegisterBankInfo::ValueMapping::dump(), llvm::RegisterPressure::dump(), llvm::RegPressureDelta::dump(), llvm::RegPressureTracker::dump(), llvm::sampleprof::FunctionSamples::dump(), llvm::sampleprof::LineLocation::dump(), llvm::sampleprof::SampleRecord::dump(), llvm::sandboxir::Action::dump(), llvm::sandboxir::CatchSwitchAddHandler::dump(), llvm::sandboxir::CmpInst::dump(), llvm::sandboxir::CmpSwapOperands::dump(), llvm::sandboxir::CreateAndInsertInst::dump(), llvm::sandboxir::DependencyGraph::dump(), llvm::sandboxir::DGNode::dump(), llvm::sandboxir::EraseFromParent::dump(), llvm::sandboxir::GenericSetter< GetterFn, SetterFn >::dump(), llvm::sandboxir::GenericSetterWithIdx< GetterFn, SetterFn >::dump(), llvm::sandboxir::InsertIntoBB::dump(), llvm::sandboxir::InstrMaps::dump(), llvm::sandboxir::Interval< T >::dump(), llvm::sandboxir::LegalityResult::dump(), llvm::sandboxir::MoveInstr::dump(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::dump(), llvm::sandboxir::PHIAddIncoming::dump(), llvm::sandboxir::PHIRemoveIncoming::dump(), llvm::sandboxir::ReadyListContainer::dump(), llvm::sandboxir::Region::dump(), llvm::sandboxir::RemoveFromParent::dump(), llvm::sandboxir::SchedBundle::dump(), llvm::sandboxir::Scheduler::dump(), llvm::sandboxir::ScoreBoard::dump(), llvm::sandboxir::SeedBundle::dump(), llvm::sandboxir::SeedCollector::dump(), llvm::sandboxir::SeedContainer::dump(), llvm::sandboxir::ShuffleMask::dump(), llvm::sandboxir::ShuffleVectorSetMask::dump(), llvm::sandboxir::SwitchAddCase::dump(), llvm::sandboxir::SwitchRemoveCase::dump(), llvm::sandboxir::Tracker::dump(), llvm::sandboxir::Type::dump(), llvm::sandboxir::Use::dump(), llvm::sandboxir::UseSet::dump(), llvm::sandboxir::UseSwap::dump(), llvm::sandboxir::Value::dump(), llvm::ScaledNumberBase::dump(), llvm::SCEV::dump(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::ScheduleDAGMILive::dump(), llvm::SDDbgValue::dump(), llvm::SDep::dump(), llvm::SDNode::dump(), llvm::SelectionDAG::dump(), llvm::SlotIndex::dump(), llvm::SlotIndexes::dump(), llvm::slpvectorizer::BoUpSLP::EdgeInfo::dump(), llvm::slpvectorizer::BoUpSLP::VLOperands::dump(), llvm::SMSchedule::dump(), llvm::SpillPlacement::BlockConstraint::dump(), llvm::SPIRV::ConvergenceRegion::dump(), llvm::SplitAnalysis::BlockInfo::dump(), llvm::SplitEditor::dump(), llvm::StackSafetyGlobalInfo::dump(), llvm::SubtargetFeatures::dump(), llvm::SuspendCrossingInfo::dump(), llvm::SuspendCrossingInfo::dump(), llvm::Trace::dump(), llvm::Twine::dump(), llvm::Type::dump(), llvm::Value::dump(), llvm::ValueEnumerator::dump(), llvm::vfs::FileSystem::dump(), llvm::vfs::OutputConfig::dump(), llvm::VirtRegMap::dump(), llvm::VPBlockBase::dump(), llvm::VPDef::dump(), llvm::VPInstruction::dump(), llvm::VPlan::dump(), llvm::VPValue::dump(), llvm::WebAssemblyException::dump(), RecurrenceInfo::dump(), LiveDebugValues::MLocTracker::dump_mloc_map(), LiveDebugValues::InstrRefBasedLDV::dump_mloc_transfer(), dump_registers(), dumpAllocas(), llvm::PMTopLevelManager::dumpArguments(), llvm::SUnit::dumpAttributes(), dumpBasicBlockLabel(), dumpBytes(), llvm::SystemZHazardRecognizer::dumpCurrGroup(), dumpEdges(), llvm::sandboxir::dumpImpl(), dumpImportListForModule(), dumpIR(), llvm::PMDataManager::dumpLastUses(), dumpMachineInstrRangeWithSlotIndex(), llvm::slpvectorizer::BoUpSLP::VLOperands::dumpMode(), llvm::ContextTrieNode::dumpNode(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAG::dumpNodeAll(), llvm::ScheduleDAG::dumpNodeName(), DumpNodes(), dumpOrder(), llvm::PMDataManager::dumpPassArguments(), llvm::PMDataManager::dumpPassInfo(), llvm::FPPassManager::dumpPassStructure(), llvm::GenericScheduler::dumpPolicy(), llvm::SystemZHazardRecognizer::dumpProcResourceCounters(), llvm::SDNode::dumpr(), llvm::SDNode::dumpr(), llvm::TargetRegisterInfo::dumpReg(), dumpRegSetPressure(), dumpRemats(), llvm::Twine::dumpRepr(), llvm::SchedBoundary::dumpReservedCycles(), dumpResult(), llvm::SDNode::dumprWithDepth(), llvm::ScheduleDAGMI::dumpSchedule(), llvm::ScheduleDAGSDNodes::dumpSchedule(), llvm::SchedBoundary::dumpScheduledState(), llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), dumpScopes(), dumpSectionMemory(), dumpSmallBitVector(), dumpSpills(), llvm::SystemZHazardRecognizer::dumpState(), dumpSUList(), llvm::ContextTrieNode::dumpTree(), llvm::MDNode::dumpTree(), llvm::Loop::dumpVerbose(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::ELFLinkGraphBuilder(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), eliminateDeadSwitchCases(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::DIEAbbrev::Emit(), llvm::MCPseudoProbe::emit(), llvm::MCPseudoProbeInlineTree::emit(), llvm::PPCRegisterInfo::emitAccCopyInfo(), emitAccSpillRestoreInfo(), EmitAndPrintRemark(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::DwarfDebug::emitDebugLocValue(), llvm::LiveDebugVariables::LDVImpl::emitDebugValues(), llvm::ARCFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::GlobalMergeFunc::emitFunctionMap(), llvm::HexagonHazardRecognizer::EmitInstruction(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::SystemZHazardRecognizer::EmitInstruction(), llvm::M68kAsmPrinter::emitInstruction(), llvm::WebAssemblyAsmPrinter::emitInstruction(), llvm::TargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::AArch64PrologueEmitter::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), emitWAccSpillRestoreInfo(), llvm::AArch64::ExtensionSet::enable(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::encodeSingleInstruction(), llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), llvm::orc::ExecutionSession::endSession(), llvm::RegAllocBase::enqueue(), ensurePromotedGV(), llvm::SplitEditor::enterIntvAfter(), llvm::SplitEditor::enterIntvAtEnd(), llvm::SplitEditor::enterIntvBefore(), llvm::SystemZPostRASchedStrategy::enterMBB(), llvm::orc::EPCGenericRTDyldMemoryManager::EPCGenericRTDyldMemoryManager(), llvm::logicalview::LVElement::equals(), llvm::rdf::DeadCodeElimination::erase(), llvm::BranchProbabilityInfo::eraseBlock(), llvm::InstCombinerImpl::eraseInstFromFunction(), llvm::Combiner::WorkListMaintainerImpl< Lvl >::erasingInstr(), llvm::InstructionSelect::MIIteratorMaintainer::erasingInstr(), estimateLoopTripCount(), llvm::Evaluator::EvaluateFunction(), EvaluateStaticConstructor(), llvm::logicalview::LVCompare::execute(), llvm::VPlan::execute(), llvm::VPRegionBlock::execute(), llvm::VPWidenRecipe::execute(), 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::GIMatchTableExecutor::executeMatchTable(), llvm::VPBasicBlock::executeRecipes(), llvm::WindowScheduler::expand(), expandBounds(), expandFRem(), expandMemMoveAsLoop(), llvm::M68kInstrInfo::ExpandMOVI(), llvm::M68kInstrInfo::ExpandMOVSZX_RM(), llvm::M68kInstrInfo::ExpandMOVSZX_RR(), llvm::M68kInstrInfo::ExpandMOVX_RR(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::LoopVectorizationCostModel::expectedCost(), llvm::CodeExtractor::extractCodeRegion(), extractInteger(), extractVector(), llvm::AArch64CallLowering::fallBackToDAGISel(), fdbgs(), fillOverallFunction(), llvm::SchedDFSImpl::finalize(), llvm::GCNSchedStage::finalizeGCNSchedStage(), llvm::UnclusteredHighRPStage::finalizeGCNSchedStage(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::orc::EPCGenericRTDyldMemoryManager::finalizeMemory(), llvm::orc::ELFDebugObject::finalizeWorkingMemory(), llvm::CodeExtractor::findAllocas(), findArgParts(), findArgumentCopyElisionCandidates(), findArrayDimensions(), llvm::SSAUpdaterImpl< UpdaterT >::FindAvailableVals(), llvm::MustBeExecutedContextExplorer::findBackwardJoinPoint(), findBaseDefiningValueCached(), findBasePointer(), llvm::RegBankSelect::findBestMapping(), findBestNonTrivialUnswitchCandidate(), findCostForOutputBlocks(), llvm::SampleProfileLoaderBaseImpl< FT >::findEquivalenceClasses(), findForkedSCEVs(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), findGCD(), findHistogram(), findIrreducibleHeaders(), findLoopComponents(), findLoopComponents(), llvm::AMDGPU::SetOfRulesForOpcode::findMappingForMI(), llvm::SchedBoundary::findMaxLatency(), findPartitions(), findReturnsToZap(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::FindRoots(), llvm::RegScavenger::FindUnusedReg(), llvm::ARMBlockPlacement::fixBackwardsWLS(), fixFuncEntryCount(), fixIrreducible(), FixIrreducibleImpl(), llvm::PeelingModuloScheduleExpander::fixupBranches(), llvm::ScheduleDAGInstrs::fixupKills(), fixupReg(), FlattenLoopPair(), llvm::AMDGPULibCalls::fold(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), foldCondBranchOnValueKnownInPredecessorImpl(), llvm::PPCInstrInfo::foldFrameOffset(), llvm::VEInstrInfo::foldImmediate(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldTwoEntryPHINode(), forceAttributes(), llvm::jitlink::ELFLinkGraphBuilder< ELFType< DataEndianness, false > >::forEachRelaRelocation(), llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation(), llvm::jitlink::ELFLinkGraphBuilder< ELFType< DataEndianness, false > >::forEachRelRelocation(), formDedicatedExitBlocks(), forwardHandleAccesses(), llvm::ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(), fuseInstructionPair(), llvm::MCResourceInfo::gatherResourceInfo(), llvm::GCNScheduleDAGMILive::GCNScheduleDAGMILive(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::ARMAsmBackendDarwin::generateCompactUnwindEncoding(), generateLoopLatchCheck(), generateModuleMap(), llvm::RuntimeDyldCOFFAArch64::generateRelocationStub(), llvm::RuntimeDyldCOFFX86_64::generateRelocationStub(), generateReproducer(), generateStackAdjustment(), llvm::LegacyLegalizerInfo::getAction(), llvm::LegalizerInfo::getActionDefinitionsIdx(), llvm::ReplayInlineAdvisor::getAdviceImpl(), getAllLexicalIndexes(), getAnySgprS1(), llvm::FunctionLoweringInfo::getArgumentFrameIndex(), llvm::SampleContextTracker::getBaseSamplesFor(), getBoundsCheckCond(), getBranchHint(), llvm::CacheCost::getCacheCost(), llvm::SampleContextTracker::getCalleeContextSamplesFor(), llvm::HexagonRegisterInfo::getCallerSavedRegs(), llvm::InstCostVisitor::getCodeSizeSavingsForArg(), getCompoundInsn(), llvm::coverage::CoverageMapping::getCoverageForExpansion(), llvm::coverage::CoverageMapping::getCoverageForFile(), llvm::coverage::CoverageMapping::getCoverageForFunction(), getDefaultInlineOrder(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::HexagonMCInstrInfo::getDuplexPossibilties(), llvm::logicalview::LVRange::getEntry(), llvm::jitlink::TableManager< TableManagerImplT >::getEntryForTarget(), getExtDivCycle(), getFalkorUnrollingPreferences(), llvm::PPCInstrInfo::getFMAPatterns(), llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), llvm::jitlink::PerGraphGOTAndPLTStubsBuilder< BuilderImplT >::getGOTEntry(), llvm::HexagonHazardRecognizer::getHazardType(), llvm::ScoreboardHazardRecognizer::getHazardType(), getIndexExpressionsFromGEP(), getInlineCost(), getInlineOrder(), getInnerLoopGuardCmp(), getInstructionID(), llvm::SampleProfileLoaderBaseImpl< FT >::getInstWeightImpl(), getIntDivCycle(), llvm::LoopNest::getInterveningInstructions(), llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks(), getLaneCopyOpcode(), llvm::InstCostVisitor::getLatencySavingsForKnownConstants(), getLoopEstimatedTripCount(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(), llvm::LoopNest::getMaxPerfectDepth(), llvm::RegPressureTracker::getMaxUpwardPressureDelta(), llvm::MustBeExecutedContextExplorer::getMustBeExecutedNextInstruction(), llvm::MustBeExecutedContextExplorer::getMustBeExecutedPrevInstruction(), getNegatibleInsts(), getNewAlignment(), getNewAlignmentDiff(), getNewSource(), llvm::SchedBoundary::getNextResourceCycle(), llvm::ARMTTIImpl::getNumBytesToPadGlobalArray(), llvm::RegAllocEvictionAdvisor::getOrderLimit(), llvm::SchedBoundary::getOtherResourceCount(), getOuterLoopLatchCmp(), getOutliningPenalty(), llvm::jitlink::PerGraphGOTAndPLTStubsBuilder< BuilderImplT >::getPLTStub(), getPointerAuthStableSipHash(), getPotentialCopiesOfMemoryValue(), llvm::HexagonInstrInfo::getPredReg(), llvm::SampleProfileLoaderBaseImpl< FT >::getProbeWeight(), getPtrStride(), GetQuadraticEquation(), llvm::X86RegisterInfo::getRegAllocationHints(), llvm::GCNIterativeScheduler::getRegionPressure(), llvm::CCState::getRemainingRegParmsForType(), llvm::AMDGPU::RegBankLegalizeRules::getRulesForOpc(), llvm::mca::RISCVInstrumentManager::getSchedClassID(), llvm::GCNSchedStage::getScheduleMetrics(), llvm::GCNSchedStage::getScheduleMetrics(), getSpillArea(), llvm::DependenceInfo::getSplitIteration(), getStrideFromAddRec(), getSubRegForClass(), getSubtargetFeatureName(), llvm::object::WasmObjectFile::getSymbolFlags(), getTLIFunction(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::logicalview::getTrueType(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::RISCVTTIImpl::getUnrollingPreferences(), llvm::LazyValueInfoImpl::getValueAt(), llvm::LazyValueInfoImpl::getValueInBlock(), llvm::MachineSSAUpdater::GetValueInMiddleOfBlock(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::DebugSSAUpdater::getValueInMiddleOfBlock(), llvm::LazyValueInfoImpl::getValueOnEdge(), getVariantMatchScore(), getVectorSHLImm(), llvm::VFABI::getVectorVariantNames(), getVGPRSpillLaneOrTempRegister(), giveUpWithRemarks(), llvm::object::GOFFObjectFile::GOFFObjectFile(), llvm::jitlink::COFFLinkGraphBuilder::graphifySections(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySections(), llvm::jitlink::COFFLinkGraphBuilder::graphifySymbols(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), handleADRP(), handleByValParam(), llvm::FastISel::handleDbgInfo(), llvm::SelectionDAGBuilder::handleDebugDeclare(), llvm::orc::SimpleRemoteEPC::handleDisconnect(), handleInstructionWithEGPR(), llvm::IRChangedTester::handleIR(), llvm::VPlanTransforms::handleMaxMinNumReductions(), llvm::orc::SimpleRemoteEPC::handleMessage(), llvm::orc::SimpleRemoteEPCServer::handleMessage(), handleNDDOrNFInstructions(), llvm::objcarc::BottomUpPtrState::HandlePotentialAlterRefCount(), llvm::objcarc::TopDownPtrState::HandlePotentialAlterRefCount(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), llvm::objcarc::TopDownPtrState::HandlePotentialUse(), llvm::GISelCSEInfo::handleRecordedInst(), llvm::VPRecipeBuilder::handleReplication(), handleValVerMetadata(), hasOnlyUniformBranches(), hasOutsideLoopUser(), llvm::SuspendCrossingInfo::hasPathCrossingSuspendPoint(), llvm::SuspendCrossingInfo::hasPathOrLoopCrossingSuspendPoint(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::HasProperSupport(), llvm::mca::hasResourceHazard(), llvm::IndexedReference::hasSpacialReuse(), hasSupportedLoopDepth(), llvm::IndexedReference::hasTemporalReuse(), hasVRegCycleUse(), HexagonMCShuffle(), HexagonMCShuffle(), hoist(), hoistAndMergeSGPRInits(), hoistRegion(), hoistValue(), hostParallelCallback(), if(), llvm::FunctionImporter::importFunctions(), llvm::logicalview::LVBinaryReader::includeInlineeLines(), incorporateNewSCCRange(), llvm::IndexedReference::IndexedReference(), inferAttrsFromFunctionBodies(), inferConvergent(), inferDomainOfAffine(), llvm::objcarc::BottomUpPtrState::InitBottomUp(), llvm::GenericScheduler::initCandidate(), llvm::GCNSchedStage::initGCNRegion(), llvm::ClusteredLowOccStage::initGCNSchedStage(), llvm::GCNSchedStage::initGCNSchedStage(), llvm::PreRARematStage::initGCNSchedStage(), llvm::UnclusteredHighRPStage::initGCNSchedStage(), llvm::GCNSchedStrategy::initialize(), llvm::orc::LLJIT::initialize(), llvm::WindowScheduler::initialize(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::ExecutionEngine::InitializeMemory(), llvm::GCNSubtarget::initializeSubtargetDependencies(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), llvm::mca::initializeUsedResources(), llvm::ResourceManager::initProcResourceVectors(), llvm::ScheduleDAGMILive::initRegPressure(), initVRegCycle(), injectPendingInvariantConditions(), llvm::logicalview::LVLogicalVisitor::inlineSiteAnnotation(), llvm::SMSchedule::insert(), llvm::HexagonInstrInfo::insertBranch(), insertCopy(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertEdge(), insertInteger(), insertNewDbgInst(), InsertPreheaderForLoop(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertReachable(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::InsertUnreachable(), insertVector(), llvm::SampleProfileProber::instrumentOneFunc(), llvm::InternalizePass::internalizeModule(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::InterleavedAccessInfo::invalidateGroupsRequiringScalarEpilogue(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::AA::isAssumedThreadLocalObject(), llvm::mca::RegisterFile::isAvailable(), llvm::ScalarEvolution::isBasicBlockEntryGuardedByCond(), llvm::ARMBasicBlockUtils::isBBInRange(), isBitfieldExtractOpFromAnd(), isBitfieldExtractOpFromShr(), isBitfieldPositioningOpFromAnd(), llvm::AMDGPU::isClobberedInFunction(), isComputableLoopNest(), isControlFlowEquivalent(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isEligibleLoopForm(), isExplicitVecOuterLoop(), llvm::RecurrenceDescriptor::isFindIVPattern(), llvm::AArch64TargetLowering::isFPImmLegal(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), llvm::ARMTTIImpl::isHardwareLoopProfitable(), llvm::InductionDescriptor::isInductionPHI(), llvm::InductionDescriptor::isInductionPHI(), isLegalArithImmed(), isLoadCombineCandidateImpl(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), isLoopDead(), isNoWrap(), isOutsideLoopWorkProfitable(), isPartialOverwrite(), llvm::AA::isPotentiallyAffectedByBarrier(), llvm::AA::isPotentiallyAffectedByBarrier(), isPotentiallyReachable(), isProfitable(), isProfitableChain(), isProfitableToInterleave(), llvm::RecurrenceDescriptor::isReductionPHI(), isSafeDecreasingBound(), isSafeForNoNTrivialUnswitching(), isSafeIncreasingBound(), isSafeToUnrollAndJam(), isUniformLoop(), llvm::GCNUpwardRPTracker::isValid(), llvm::Attributor::isValidFunctionSignatureRewrite(), llvm::HexagonInstrInfo::isValidOffset(), llvm::SwingSchedulerDDG::isValidSchedule(), isVariantApplicableInContextHelper(), iterativelySinkInstructions(), KnuthDiv(), llvm::LazyCallGraph::LazyCallGraph(), llvm::SplitEditor::leaveIntvAfter(), llvm::SplitEditor::leaveIntvAtTop(), llvm::SplitEditor::leaveIntvBefore(), llvm::SystemZPostRASchedStrategy::leaveMBB(), llvm::LegalizerHelper::legalizeInstrStep(), llvm::VETargetLowering::legalizeInternalLoadStoreOp(), llvm::VETargetLowering::legalizeInternalVectorOp(), llvm::Legalizer::legalizeMachineFunction(), llvm::VETargetLowering::legalizePackedAVL(), llvm::LegalizerHelper::libcall(), LinearizeExprTree(), llvm::jitlink::JITLinkerBase::linkPhase1(), llvm::jitlink::JITLinkerBase::linkPhase2(), llvm::jitlink::JITLinkerBase::linkPhase3(), llvm::jitlink::JITLinkerBase::linkPhase4(), llvm_unreachable_internal(), loadFile(), llvm::cgdata::loadModuleForTwoRounds(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::ARCInstrInfo::loadRegFromStackSlot(), lookForCompound(), llvm::orc::ExecutionSession::lookup(), llvm::orc::Platform::lookupInitSymbols(), llvm::orc::Platform::lookupInitSymbolsAsync(), llvm::LoopVectorizeHints::LoopVectorizeHints(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), llvm::SPIRV::lowerBuiltin(), llvm::SPIRV::lowerBuiltinType(), llvm::HexagonTargetLowering::LowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::AMDGPUCallLowering::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), lowerConstantIntrinsics(), llvm::FastISel::lowerDbgDeclare(), llvm::FastISel::lowerDbgValue(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), lowerGlobalIFuncUsersAsGlobalCtor(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::LegalizerHelper::lowerInsert(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), llvm::LegalizerHelper::lowerMergeValues(), llvm::AArch64TargetLowering::LowerOperation(), llvm::ARMTargetLowering::LowerOperation(), llvm::VETargetLowering::LowerOperation(), llvm::PhiLoweringHelper::lowerPhis(), llvm::jitlink::aarch64::lowerPointer64AuthEdgesToSigningFunction(), llvm::AArch64CallLowering::lowerReturn(), lowerStatepointMetaArgs(), llvm::AMDGPUCallLowering::lowerTailCall(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), llvm::SCCPInstVisitor::markBlockExecutable(), llvm::SampleContextTracker::markContextSamplesInlined(), llvm::GenericUniformityAnalysisImpl< ContextT >::markDivergent(), llvm::GenericUniformityAnalysisImpl< ContextT >::markDivergent(), llvm::logicalview::LVLine::markMissingParents(), llvm::logicalview::LVScope::markMissingParents(), llvm::logicalview::LVSymbol::markMissingParents(), llvm::logicalview::LVType::markMissingParents(), markTails(), llvm::HexagonEvaluator::mask(), RecurrenceInfo::matchConditionalRecurrence(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), mayAlias(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), llvm::GCNSchedStage::mayCauseSpilling(), llvm::ConstraintSystem::mayHaveSolution(), llvm::SwingSchedulerDAG::mayOverlapInLaterIter(), mayUseP9Setb(), llvm::GlobalMergeFunc::merge(), MergeBlockIntoPredecessor(), mergeConstants(), migrateDebugInfo(), llvm::orc::GDBJITDebugInfoRegistrationPlugin::modifyPassConfig(), llvm::ModuleInlinerWrapperPass::ModuleInlinerWrapperPass(), moveAndTeeForMultiUse(), llvm::ARMBlockPlacement::moveBasicBlock(), moveForSingleUse(), llvm::object::MachOBindEntry::moveNext(), llvm::object::MachORebaseEntry::moveNext(), MoveVPNOTBeforeFirstUser(), llvm::LegalizerHelper::narrowScalar(), nearest_common_dominator(), needsFP(), llvm::Negator::Negate(), NewSDValueDbgMsg(), llvm::FullDependence::normalize(), llvm::SMSchedule::normalizeNonPipelinedInstructions(), llvm::orc::COFFPlatform::notifyAdding(), llvm::orc::ELFNixPlatform::notifyAdding(), llvm::orc::MachOPlatform::notifyAdding(), llvm::mca::ExecuteStage::notifyInstructionExecuted(), llvm::mca::ExecuteStage::notifyInstructionIssued(), llvm::mca::ExecuteStage::notifyInstructionPending(), llvm::mca::ExecuteStage::notifyInstructionReady(), llvm::mca::RetireStage::notifyInstructionRetired(), llvm::orc::DebugObjectManagerPlugin::notifyMaterializing(), llvm::orc::EPCGenericRTDyldMemoryManager::notifyObjectLoaded(), llvm::mca::ExecuteStage::notifyResourceAvailable(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::omp::OMPContext::OMPContext(), llvm::mca::LSUnit::onInstructionRetired(), llvm::PPCInstrInfo::onlyFoldImmediate(), llvm::jitlink::DWARFRecordSectionSplitter::operator()(), llvm::jitlink::EHFrameEdgeFixer::operator()(), llvm::jitlink::EHFrameNullTerminator::operator()(), llvm::orc::DumpObjects::operator()(), operator<<(), operator<<(), llvm::lto::opt(), OptimizeAwayTrappingUsesOfLoads(), optimizeBranch(), llvm::PPCInstrInfo::optimizeCmpPostRA(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), optimizeGlobalCtorsList(), llvm::jitlink::x86::optimizeGOTAndStubAccesses(), llvm::jitlink::x86_64::optimizeGOTAndStubAccesses(), optimizeLoopExitWithUnknownExitCount(), OptimizeNonTrivialIFuncs(), optimizeSection(), llvm::OptLevelChanger::OptLevelChanger(), llvm::AArch64FrameLowering::orderFrameObjects(), llvm::SplitEditor::overlapIntv(), llvm::GCNSubtarget::overridePostRASchedPolicy(), llvm::BlockFrequencyInfoImplBase::packageLoop(), llvm::VLIWPacketizerList::PacketizeMIs(), llvm::CallLowering::parametersInCSRMatch(), llvm::jitlink::COFFDirectiveParser::parse(), llvm::AArch64::ExtensionSet::parseModifier(), parseSymbolString(), llvm::AMDGPUCallLowering::passSpecialInputs(), performBranchToCommonDestFolding(), performConcatVectorsCombine(), performCopyPropagation(), llvm::AArch64TargetLowering::PerformDAGCombine(), llvm::MipsSETargetLowering::PerformDAGCombine(), performORCombine(), PerformSHLSimplify(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GCNSchedStrategy::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::R600SchedStrategy::pickNode(), llvm::SystemZPostRASchedStrategy::pickNode(), llvm::GCNSchedStrategy::pickNodeBidirectional(), llvm::GenericScheduler::pickNodeBidirectional(), llvm::PostGenericScheduler::pickNodeBidirectional(), llvm::ConvergingVLIWScheduler::pickNodeBidrectional(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), PointerMayBeCaptured(), populateDependencyMatrix(), llvm::RuntimeDyldMachO::populateIndirectSymbolPointersSection(), populateWorklist(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::ARMTTIImpl::preferPredicateOverEpilogue(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::prepare(), llvm::orc::LLJITBuilderState::prepareForConstruction(), llvm::jitlink::CompactUnwindManager< CURecTraits >::prepareForPrune(), llvm::InstCombinerImpl::prepareWorklist(), llvm::AMDGPUDAGToDAGISel::PreprocessISelDAG(), llvm::HexagonDAGToDAGISel::PreprocessISelDAG(), llvm::RISCVDAGToDAGISel::PreprocessISelDAG(), llvm::orc::preserveDebugSections(), llvm::DXILMetadataAnalysisWrapperPass::print(), llvm::GISelCSEInfo::print(), llvm::logicalview::LVBinaryReader::print(), llvm::logicalview::LVCodeViewReader::print(), llvm::logicalview::LVDWARFReader::print(), llvm::logicalview::LVPatterns::print(), llvm::logicalview::LVReader::print(), llvm::SpillPlacement::BlockConstraint::print(), llvm::VPBasicBlock::print(), llvm::BitTracker::print_cells(), llvm::ReachingDefAnalysis::printAllReachingDefs(), llvm::SIScheduleBlock::printDebug(), PrintDebugDomInfo(), llvm::EpilogueVectorizerEpilogueLoop::printDebugTracesAtEnd(), llvm::EpilogueVectorizerMainLoop::printDebugTracesAtEnd(), llvm::EpilogueVectorizerEpilogueLoop::printDebugTracesAtStart(), llvm::EpilogueVectorizerMainLoop::printDebugTracesAtStart(), printDepMatrix(), printDisablePassMessage(), printFailMsgforFold(), llvm::PrintFunctionPass::PrintFunctionPass(), llvm::PrintLoopPass::PrintLoopPass(), llvm::PrintModulePass::PrintModulePass(), PrintOps(), printScheduleModel(), llvm::jitlink::CompactUnwindManager< CURecTraits >::processAndReserveUnwindInfo(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::processBlock(), processDbgDeclare(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::LoongArchFrameLowering::processFunctionBeforeFrameFinalized(), processHandle(), processIfEntryValueDbgDeclare(), processInternalGlobal(), llvm::logicalview::LVBinaryReader::processLines(), llvm::logicalview::LVBinaryReader::processLines(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::JumpThreadingPass::processThreadableEdges(), producesFalseLanesZero(), ProfitableToMerge(), promoteIndirectCalls(), promoteLoopAccessesToScalars(), llvm::SampleContextTracker::promoteMergeContextSamplesTree(), llvm::SampleProfileLoaderBaseImpl< FT >::propagateThroughEdges(), llvm::jitlink::prune(), pruneCache(), llvm::InstructionWorklist::push(), readDisplacement(), readImmediate(), readMaskRegister(), readMemprof(), readModRM(), readOpcode(), readOpcodeRegister(), readOperands(), readPrefixes(), readSection(), readSIB(), readVVVV(), llvm::ConvergingVLIWScheduler::readyQueueVerboseDump(), llvm::RuntimeDyldImpl::reassignSectionAddress(), llvm::WebAssemblyExceptionInfo::recalculate(), reconnectChildLoops(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::GISelCSEInfo::recordNewInstruction(), llvm::orc::ELFDebugObject::recordSection(), reduceDbgValsBackwardScan(), reduceDbgValsForwardScan(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), llvm::LegalizerHelper::reduceLoadStoreWidth(), ReduceLoopStrength(), llvm::DotCfgChangeReporter::registerCallbacks(), llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::orc::EPCGenericRTDyldMemoryManager::registerEHFrames(), llvm::Attributor::registerFunctionSignatureRewrite(), llvm::orc::ExecutionSession::registerJITDispatchHandlers(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::SchedBoundary::releaseNode(), llvm::SchedBoundary::releasePending(), llvm::ScheduleDAGMI::releasePred(), llvm::ScheduleDAGMI::releaseSucc(), llvm::R600SchedStrategy::releaseTopNode(), rematerializeCheapDef(), rematerializeLiveValuesAtUses(), llvm::HexagonInstrInfo::removeBranch(), RemoveDeadAddBetweenLEAAndJT(), llvm::PMDataManager::removeDeadPasses(), llvm::PMDataManager::removeNotPreservedAnalysis(), RemoveRedundantDbgInstrs(), removeRedundantDbgLocs(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), llvm::RegBankSelect::repairReg(), replace(), replaceArgumentUses(), replaceCalledFunction(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstants(), replaceDominatedUses(), replaceDominatedUsesWith(), replaceExitCond(), replaceFrameIndex(), llvm::InstCombiner::replaceInstUsesWith(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceSymbolicStrideSCEV(), replaceWithCallToVeclib(), llvm::PrintCrashIRInstrumentation::reportCrashIR(), reportFastISelFailure(), llvm::Combiner::WorkListMaintainer::reportFullyCreatedInstrs(), llvm::InstructionSelect::MIIteratorMaintainer::reportFullyCreatedInstrs(), reportInvalidCandidate(), llvm::PPCRegisterInfo::requiresFrameIndexScavenging(), llvm::LoopVectorizationCostModel::requiresScalarEpilogue(), rescheduleCanonically(), rescheduleLexographically(), llvm::GenericScheduler::reschedulePhysReg(), llvm::orc::EPCGenericRTDyldMemoryManager::reserveAllocationSpace(), llvm::ResourceManager::reserveResources(), llvm::VLIWResourceModel::reserveResources(), llvm::HexagonHazardRecognizer::Reset(), llvm::objcarc::PtrState::ResetSequenceProgress(), llvm::MipsTargetMachine::resetSubtarget(), llvm::SelectionDAGBuilder::resolveDanglingDebugInfo(), llvm::SCCPInstVisitor::resolvedUndefsIn(), llvm::logicalview::LVElement::resolveFullname(), llvm::RuntimeDyldImpl::resolveLocalRelocations(), llvm::RuntimeDyldELFMips::resolveMIPSO32Relocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::ARCFrameLowering::restoreCalleeSavedRegisters(), restorePreTransformState(), llvm::HexagonInstrInfo::reversePredSense(), llvm::GCNSchedStage::revertScheduling(), llvm::ARMBlockPlacement::revertWhileToDoLoop(), llvm::SSAUpdaterBulk::RewriteAllUses(), rewriteDebugUsers(), rewriteFunction(), rewriteLoopExitValues(), rewriteMemOpOfSelect(), rewriteSelectInstMemOps(), llvm::MachineSSAUpdater::RewriteUse(), rewriteUses(), llvm::AMDGPUSimplifyLibCallsPass::run(), llvm::AMDGPUSplitModulePass::run(), llvm::BalancedPartitioning::run(), llvm::BitTracker::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::CoroSplitPass::run(), llvm::DAGTypeLegalizer::run(), llvm::DeadArgumentEliminationPass::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::FunctionSpecializer::run(), llvm::HotColdSplitting::run(), llvm::InlinerPass::run(), llvm::InstCombinerImpl::run(), llvm::InstCountPass::run(), llvm::Interpreter::run(), llvm::jitlink::PerGraphGOTAndPLTStubsBuilder< BuilderImplT >::run(), llvm::LintPass::run(), llvm::LoopBoundSplitPass::run(), llvm::LoopConstrainer::run(), llvm::LoopDeletionPass::run(), llvm::LoopInterchangePass::run(), llvm::MachineSchedulerPass::run(), llvm::MemProfUsePass::run(), llvm::ModuleInlinerPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), llvm::OpenMPOptCGSCCPass::run(), llvm::OpenMPOptPass::run(), llvm::PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::run(), llvm::PostMachineSchedulerPass::run(), llvm::RAGreedy::run(), llvm::rdf::CopyPropagation::run(), llvm::ReplaceWithVeclib::run(), llvm::SafeStackPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::ThinLTOCodeGenerator::run(), llvm::TruncInstCombine::run(), llvm::UnifyLoopExitsPass::run(), llvm::VerifierAnalysis::run(), llvm::VerifierAnalysis::run(), llvm::WindowScheduler::run(), RemoveLoadsIntoFakeUses::run(), llvm::PseudoProbeVerifier::runAfterPass(), runAttributorLightOnFunctions(), runAttributorOnFunctions(), llvm::Float2IntPass::runImpl(), llvm::JumpThreadingPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::SpeculativeExecutionPass::runImpl(), runImpl(), runImpl(), runIPSCCP(), runOnBasicBlock(), runOnDeviceFunction(), llvm::AAResultsWrapperPass::runOnFunction(), llvm::AssignmentTrackingAnalysis::runOnFunction(), llvm::RGPassManager::runOnFunction(), runOnKernelFunction(), GCEmptyBasicBlocks::runOnMachineFunction(), llvm::ARMBlockPlacement::runOnMachineFunction(), llvm::BreakFalseDeps::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::LiveDebugVariables::LDVImpl::runOnMachineFunction(), llvm::LoadStoreOpt::runOnMachineFunction(), llvm::Localizer::runOnMachineFunction(), llvm::RABasic::runOnMachineFunction(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::WebAssemblyExceptionInfo::runOnMachineFunction(), llvm::sandboxir::TransactionAcceptOrRevert::runOnRegion(), llvm::sandboxir::TransactionSave::runOnRegion(), runSCCP(), RunTermFold(), llvm::LoopVectorizationCostModel::runtimeChecksRequired(), llvm::SelectionDAG::salvageDebugInfo(), salvageDebugInfoForDbgValue(), salvageDebugInfoForDbgValues(), SalvageDVI(), llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(), llvm::SampleContextTracker::SampleContextTracker(), llvm::cgdata::saveModuleForTwoRounds(), saveUsesAndErase(), scavengeFrameVirtualRegs(), llvm::RegScavenger::scavengeRegisterBackwards(), scavengeStackSlot(), llvm::BranchProbabilityInfo::SccInfo::SccInfo(), llvm::GenericScheduler::schedNode(), llvm::R600SchedStrategy::schedNode(), llvm::SystemZPostRASchedStrategy::schedNode(), llvm::GCNIterativeScheduler::OverrideLegacyStrategy::schedule(), llvm::GCNIterativeScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::SwingSchedulerDAG::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::GCNIterativeScheduler::scheduleILP(), llvm::GCNIterativeScheduler::scheduleLegacyMaxOccupancy(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::GCNIterativeScheduler::scheduleMinReg(), llvm::PMTopLevelManager::schedulePass(), llvm::WindowScheduler::schedulePhi(), llvm::GCNIterativeScheduler::scheduleRegion(), llvm::impl_detail::MachineSchedulerBase::scheduleRegions(), llvm::SchedDFSResult::scheduleTree(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::HexagonConvergingVLIWScheduler::SchedulingCost(), llvm::RISCVDAGToDAGISel::Select(), llvm::SelectionDAGISel::SelectCodeCommon(), selectCopy(), selectCopy(), selectCopy(), selectDebugInstr(), llvm::LoopVectorizationPlanner::selectEpilogueVectorizationFactor(), llvm::InstructionSelect::selectInstr(), llvm::LoopVectorizationPlanner::selectInterleaveCount(), llvm::SplitEditor::selectIntv(), llvm::InstructionSelect::selectMachineFunction(), llvm::RABasic::selectOrSplit(), llvm::HvxSelector::selectShuffle(), separateNestedLoop(), llvm::FaultMaps::serializeToFaultMapSection(), llvm::StackMaps::serializeToStackMapSection(), llvm::MIRProfileLoader::setBranchProbs(), setDanglingDebugValuesUndef(), llvm::BranchProbabilityInfo::setEdgeProbability(), llvm::objcarc::PtrState::SetKnownPositiveRefCount(), llvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments(), setLoopComponents(), llvm::GenericSchedulerBase::setPolicy(), setProfMetadata(), llvm::objcarc::PtrState::SetSeq(), llvm::LoopVectorizationCostModel::setTailFoldingStyles(), llvm::orc::LLJIT::setUpGenericLLVMIRPlatform, llvm::orc::setUpInactivePlatform(), llvm::orc::setUpOrcPlatformManually(), llvm::VFABI::setVectorVariantNames(), llvm::ARMBaseRegisterInfo::shouldCoalesce(), shouldInline(), shouldPartialUnroll(), shouldPragmaUnroll(), llvm::UnclusteredHighRPStage::shouldRevertScheduling(), shouldSplit(), llvm::LiveIntervals::shrinkToUses(), llvm::LiveIntervals::shrinkToUses(), llvm::HexagonShuffler::shuffle(), llvm::AbstractDependenceGraphBuilder< GraphType >::simplify(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), sink(), sinkAndCmp0Expression(), sinkCommonCodeFromPredecessors(), SinkInstruction(), sinkInstruction(), sinkRegion(), llvm::LoopPass::skipLoop(), skipPGOUse(), llvm::RegionPass::skipRegion(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve(), llvm::SCCPInstVisitor::solve(), solveDIType(), SolveQuadraticAddRecExact(), SolveQuadraticAddRecRange(), llvm::APIntOps::SolveQuadraticEquationWrap(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARCFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::RABasic::spillInterferences(), splitCallSite(), llvm::jitlink::splitCompactUnwindBlocks(), llvm::MachineBasicBlock::SplitCriticalEdge(), splitEdge(), llvm::SplitEditor::splitLiveThroughBlock(), splitMBB(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), llvm::LiveIntervals::splitSeparateComponents(), SRAGlobal(), llvm::DbgValueHistoryMap::startDbgValue(), llvm::logicalview::LVRange::startSearch(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::ExecutionEngine::StoreValueToMemory(), llvm::TailDuplicator::tailDuplicateBlocks(), targetParallelCallback(), llvm::TextChangeReporter< IRUnitT >::TextChangeReporter(), llvm::lto::thinBackend(), thinLTOFinalizeInModule(), thinLTOPropagateFunctionAttrs(), llvm::JumpThreadingPass::threadEdge(), llvm::JumpThreadingPass::threadGuard(), llvm::JumpThreadingPass::threadThroughTwoBasicBlocks(), llvm::ConvergingVLIWScheduler::traceCandidate(), llvm::GenericSchedulerBase::traceCandidate(), tracePick(), llvm::DbgValueHistoryMap::trimLocationRanges(), llvm::HexagonShuffler::tryAuction(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), llvm::HexagonMCInstrInfo::tryCompound(), llvm::InlineAdvisorAnalysis::Result::tryCreate(), llvm::orc::UnwindInfoManager::TryEnable(), llvm::LegalizationArtifactCombiner::tryFoldImplicitDef(), tryInterleave(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), llvm::JumpThreadingPass::tryThreadEdge(), tryToElideArgumentCopy(), tryToFindDuplicates(), tryToFindRegisterToRename(), llvm::orc::EPCDynamicLibrarySearchGenerator::tryToGenerate(), tryToMergePartialOverlappingStores(), tryToRecognizePopCount(), llvm::SCCPSolver::tryToReplaceWithConstant(), tryToShorten(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), tryToVectorizeSequence(), turnGuardIntoBranch(), turnSelectIntoBranch(), llvm::LiveRegMatrix::unassign(), undefInvalidDbgValues(), unifyLoopExits(), llvm::ValueSimplifyStateType::unionAssumed(), UnrollAndJamLoop(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unsupportedBinOp(), unswitchBestCondition(), unswitchLoop(), unswitchTrivialBranch(), unswitchTrivialSwitch(), unwrapLoop(), llvm::AbstractAttribute::update(), llvm::logicalview::LVSymbolTable::update(), llvm::LiveIntervals::HMEditor::updateAllRanges(), updateCGAndAnalysisManagerForPass(), llvm::MachineTraceMetrics::Ensemble::updateDepth(), updateForAIXShLibTLSModelOpt(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateInsertion(), updateLoopInfo(), updateOperandRegConstraints(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::CallInst::updateProfWeight(), llvm::InvokeInst::updateProfWeight(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsAfterUpdate(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), llvm::ScheduleDAGMILive::updateScheduledPressure(), llvm::JumpThreadingPass::updateSSA(), llvm::MachineBasicBlock::updateTerminator(), upgradeAArch64IntrinsicCall(), llvm::MipsSubtarget::useConstantIslands(), llvm::SplitEditor::useIntv(), llvm::AMDGPULibCalls::useNative(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), Verify(), llvm::LegalizerInfo::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), llvm::RegisterBankInfo::verify(), llvm::ScalarEvolution::verify(), verifyCTRBranch(), llvm::GenericCycle< ContextT >::verifyCycle(), llvm::LegalizeRuleSet::verifyImmIdxsCoverage(), llvm::SIInstrInfo::verifyInstruction(), verifyLoadedModule(), llvm::BlockFrequencyInfoImpl< BT >::verifyMatch(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::verifyParentProperty(), VerifyPHIs(), llvm::ScheduleDAG::VerifyScheduledDAG(), verifyTripCount(), llvm::LegalizeRuleSet::verifyTypeIdxsCoverage(), llvm::InstCombinerImpl::visitAllocaInst(), llvm::Interpreter::visitAllocaInst(), llvm::Interpreter::visitBinaryOperator(), llvm::DivergencePropagator< ContextT >::visitCycleExitEdge(), llvm::SelectionDAGBuilder::visitDbgInfo(), llvm::DivergencePropagator< ContextT >::visitEdge(), llvm::jitlink::aarch32::GOTBuilder::visitEdge(), llvm::jitlink::aarch32::StubsManager_prev7::visitEdge(), llvm::jitlink::aarch32::StubsManager_v7::visitEdge(), llvm::jitlink::aarch64::GOTTableManager::visitEdge(), llvm::jitlink::aarch64::PLTTableManager::visitEdge(), llvm::jitlink::loongarch::GOTTableManager::visitEdge(), llvm::jitlink::loongarch::PLTTableManager::visitEdge(), llvm::jitlink::x86::GOTTableManager::visitEdge(), llvm::jitlink::x86::PLTTableManager::visitEdge(), llvm::jitlink::x86_64::GOTTableManager::visitEdge(), llvm::jitlink::x86_64::PLTTableManager::visitEdge(), llvm::Interpreter::visitExtractElementInst(), llvm::Interpreter::visitFCmpInst(), llvm::Interpreter::visitICmpInst(), llvm::ObjectSizeOffsetEvaluator::visitInstruction(), llvm::ObjectSizeOffsetVisitor::visitInstruction(), llvm::Interpreter::visitLoadInst(), llvm::InstCombinerImpl::visitSExt(), llvm::Interpreter::visitStoreInst(), llvm::InstCombinerImpl::visitTrunc(), llvm::Interpreter::visitVAArgInst(), llvm::InstCombinerImpl::visitZExt(), warnAboutLeftoverTransformations(), WorkloadImportsManager::WorkloadImportsManager(), llvm::orc::OrcLoongArch64::writeIndirectStubsBlock(), llvm::MachObjectWriter::writeObject(), llvm::orc::OrcLoongArch64::writeResolverCode(), llvm::orc::OrcX86_64_SysV::writeResolverCode(), llvm::orc::OrcLoongArch64::writeTrampolines(), llvm::jitlink::CompactUnwindManager< CURecTraits >::writeUnwindInfo(), llvm::sampleprof::SampleProfileWriter::writeWithSizeLimitInternal(), llvm::slpvectorizer::BoUpSLP::~BoUpSLP(), llvm::orc::EPCGenericRTDyldMemoryManager::~EPCGenericRTDyldMemoryManager(), llvm::FunctionSpecializer::~FunctionSpecializer(), llvm::orc::JITDylib::~JITDylib(), llvm::OptLevelChanger::~OptLevelChanger(), llvm::orc::UnwindInfoManager::~UnwindInfoManager(), and llvm::ValueSymbolTable::~ValueSymbolTable().

◆ deallocate_buffer()

void llvm::deallocate_buffer ( void * Ptr,
size_t Size,
size_t Alignment )

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 27 of file MemAlloc.cpp.

References Ptr, and Size.

Referenced by llvm::MallocAllocator::Deallocate(), llvm::DenseMap< const BlockT *, const BlockT * >::grow(), llvm::SmallDenseMap< LocPair, CacheEntry, 8 >::grow(), llvm::DenseMap< const BlockT *, const BlockT * >::shrink_and_clear(), and llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().

◆ DEBUG_COUNTER()

llvm::DEBUG_COUNTER ( NumAbstractAttributes ,
"num-abstract-attributes" ,
"How many AAs should be initialized"  )

A debug counter to limit the number of AAs created.

◆ DebugInfoCorrelate()

cl::opt< bool > llvm::DebugInfoCorrelate ( "debug-info-correlate" ,
cl::desc("Use debug info to correlate profiles. (Deprecated, use " "-profile-correlate=debug-info)") ,
cl::init(false)  )

References llvm::cl::init().

◆ debuginfoShouldUseDebugInstrRef()

bool llvm::debuginfoShouldUseDebugInstrRef ( const Triple & T)
extern

◆ DebugStr() [1/2]

std::string llvm::DebugStr ( const Align & A)
inline

Definition at line 312 of file Alignment.h.

References A().

◆ DebugStr() [2/2]

std::string llvm::DebugStr ( const MaybeAlign & MA)
inline

Definition at line 316 of file Alignment.h.

◆ debugString()

template<typename T>
std::string llvm::debugString ( T && Op)
static

◆ decDigitValue()

unsigned int llvm::decDigitValue ( unsigned int c)
inlinestatic

Definition at line 426 of file APFloat.cpp.

Referenced by interpretDecimal(), readExponent(), and totalExponent().

◆ declareSanitizerInitFunction()

◆ decodeBase64()

llvm::Error llvm::decodeBase64 ( llvm::StringRef Input,
std::vector< char > & Output )

◆ DecodeBLENDMask()

void llvm::DecodeBLENDMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Decode a BLEND immediate mask into a shuffle mask.

Definition at line 315 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), getTargetShuffleMask(), and llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode().

◆ 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 400 of file X86ShuffleDecode.cpp.

References SM_SentinelUndef, and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeInsertElementMask()

void llvm::DecodeInsertElementMask ( unsigned NumElts,
unsigned Idx,
unsigned Len,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 50 of file X86ShuffleDecode.cpp.

References assert().

Referenced by EmitAnyX86InstComments().

◆ DecodeINSERTPSMask()

void llvm::DecodeINSERTPSMask ( unsigned Imm,
SmallVectorImpl< int > & ShuffleMask,
bool SrcIsMem )

Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.

Definition at line 26 of file X86ShuffleDecode.cpp.

References 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 437 of file X86ShuffleDecode.cpp.

References SM_SentinelUndef.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ decodeMaybeAlign()

◆ DecodeMOVDDUPMask()

void llvm::DecodeMOVDDUPMask ( unsigned NumElts,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 92 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ 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 61 of file X86ShuffleDecode.cpp.

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 70 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeMOVSHDUPMask()

void llvm::DecodeMOVSHDUPMask ( unsigned NumElts,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 85 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeMOVSLDUPMask()

void llvm::DecodeMOVSLDUPMask ( unsigned NumElts,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 78 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ decodePackedBCD() [1/2]

int64_t llvm::decodePackedBCD ( const uint8_t * Ptr,
size_t ByteLen,
bool IsSigned = true )
inline

Definition at line 26 of file BCD.h.

References assert(), I, and Ptr.

Referenced by decodePackedBCD().

◆ decodePackedBCD() [2/2]

template<typename ResultT, typename ValT>
ResultT llvm::decodePackedBCD ( const ValT Val,
bool IsSigned = true )
inline

Definition at line 46 of file BCD.h.

References decodePackedBCD().

◆ DecodePALIGNRMask()

void llvm::DecodePALIGNRMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 125 of file X86ShuffleDecode.cpp.

References llvm::sampleprof::Base.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSHUFBMask() [1/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 293 of file X86ShuffleDecode.cpp.

References llvm::sampleprof::Base, llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by addConstantComments(), and getTargetShuffleMask().

◆ DecodePSHUFBMask() [2/2]

void llvm::DecodePSHUFBMask ( const Constant * C,
unsigned Width,
SmallVectorImpl< int > & ShuffleMask )

◆ DecodePSHUFHWMask()

void llvm::DecodePSHUFHWMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Decodes the shuffle masks for pshufhw.

Definition at line 164 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSHUFLWMask()

void llvm::DecodePSHUFLWMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Decodes the shuffle masks for pshuflw.

Definition at line 178 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSHUFMask()

void llvm::DecodePSHUFMask ( unsigned NumElts,
unsigned ScalarBits,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps.

Definition at line 148 of file X86ShuffleDecode.cpp.

References Size.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSLLDQMask()

void llvm::DecodePSLLDQMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 100 of file X86ShuffleDecode.cpp.

References SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSRLDQMask()

void llvm::DecodePSRLDQMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 112 of file X86ShuffleDecode.cpp.

References llvm::sampleprof::Base, and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodePSWAPMask()

void llvm::DecodePSWAPMask ( unsigned NumElts,
SmallVectorImpl< int > & ShuffleMask )

Decodes a PSWAPD 3DNow! instruction.

Definition at line 192 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments().

◆ DecodeScalarMoveMask()

void llvm::DecodeScalarMoveMask ( unsigned NumElts,
bool IsLoad,
SmallVectorImpl< int > & ShuffleMask )

Decode a scalar float move instruction as a shuffle mask.

Definition at line 391 of file X86ShuffleDecode.cpp.

References SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeSHUFPMask()

void llvm::DecodeSHUFPMask ( unsigned NumElts,
unsigned ScalarBits,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Decodes the shuffle masks for shufp*.

Definition at line 201 of file X86ShuffleDecode.cpp.

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.

If error is non-null, it will point to a static error message, if an error occured. It will not be modified on success.

Definition at line 166 of file LEB128.h.

References error, LLVM_UNLIKELY, and UINT64_MAX.

Referenced by decodeSLEB128AndInc(), getExpressionFrameOffset(), llvm::DataExtractor::getSLEB128(), nextLEB(), readLEB128(), and llvm::BinaryStreamReader::readSLEB128().

◆ decodeSLEB128AndInc()

int64_t llvm::decodeSLEB128AndInc ( const uint8_t *& p,
const uint8_t * end,
const char ** error = nullptr )
inline

Definition at line 212 of file LEB128.h.

References decodeSLEB128(), and error.

◆ 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 255 of file X86ShuffleDecode.cpp.

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

◆ decodeULEB128AndInc()

uint64_t llvm::decodeULEB128AndInc ( const uint8_t *& p,
const uint8_t * end,
const char ** error = nullptr )
inline

Definition at line 204 of file LEB128.h.

References decodeULEB128(), and error.

Referenced by decodeULEB128AndIncUnsafe().

◆ decodeULEB128AndIncUnsafe()

uint64_t llvm::decodeULEB128AndIncUnsafe ( const uint8_t *& p)
inline

Definition at line 220 of file LEB128.h.

References decodeULEB128AndInc().

◆ DecodeUNPCKHMask()

void llvm::DecodeUNPCKHMask ( unsigned NumElts,
unsigned ScalarBits,
SmallVectorImpl< int > & ShuffleMask )

Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.

Definition at line 218 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeUNPCKLMask()

void llvm::DecodeUNPCKLMask ( unsigned NumElts,
unsigned ScalarBits,
SmallVectorImpl< int > & ShuffleMask )

Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.

Definition at line 234 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeVALIGNMask()

void llvm::DecodeVALIGNMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

Definition at line 139 of file X86ShuffleDecode.cpp.

References assert(), and isPowerOf2_32().

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeVectorBroadcast()

void llvm::DecodeVectorBroadcast ( unsigned NumElts,
SmallVectorImpl< int > & ShuffleMask )

Decodes a broadcast of the first element of a vector.

Definition at line 250 of file X86ShuffleDecode.cpp.

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 )

Decode a VPERMILP2 variable mask from an IR-level vector constant.

Definition at line 189 of file X86ShuffleDecodeConstantPool.cpp.

References assert(), llvm::CallingConv::C, extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), SM_SentinelUndef, and SM_SentinelZero.

◆ 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 499 of file X86ShuffleDecode.cpp.

References assert(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by addConstantComments(), and getTargetShuffleMask().

◆ DecodeVPERMILPMask() [1/2]

void llvm::DecodeVPERMILPMask ( const Constant * C,
unsigned ElSize,
unsigned Width,
SmallVectorImpl< int > & ShuffleMask )

Decode a VPERMILP variable mask from an IR-level vector constant.

Definition at line 154 of file X86ShuffleDecodeConstantPool.cpp.

References assert(), llvm::CallingConv::C, extractConstantMask(), and SM_SentinelUndef.

◆ 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 477 of file X86ShuffleDecode.cpp.

References assert(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.

Referenced by addConstantComments(), and getTargetShuffleMask().

◆ DecodeVPERMMask()

void llvm::DecodeVPERMMask ( unsigned NumElts,
unsigned Imm,
SmallVectorImpl< int > & ShuffleMask )

◆ DecodeVPERMV3Mask()

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 559 of file X86ShuffleDecode.cpp.

References llvm::ArrayRef< T >::size(), and SM_SentinelUndef.

Referenced by getTargetShuffleMask().

◆ DecodeVPERMVMask()

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 545 of file X86ShuffleDecode.cpp.

References llvm::ArrayRef< T >::size(), and SM_SentinelUndef.

Referenced by getTargetShuffleMask().

◆ DecodeVPPERMMask() [1/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 325 of file X86ShuffleDecode.cpp.

References assert(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.

Referenced by addConstantComments(), and getTargetShuffleMask().

◆ DecodeVPPERMMask() [2/2]

void llvm::DecodeVPPERMMask ( const Constant * C,
unsigned Width,
SmallVectorImpl< int > & ShuffleMask )

Decode a VPPERM variable mask from an IR-level vector constant.

Definition at line 244 of file X86ShuffleDecodeConstantPool.cpp.

References assert(), llvm::CallingConv::C, extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), SM_SentinelUndef, and SM_SentinelZero.

◆ 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.

Definition at line 264 of file X86ShuffleDecode.cpp.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ DecodeZeroExtendMask()

void llvm::DecodeZeroExtendMask ( unsigned SrcScalarBits,
unsigned DstScalarBits,
unsigned NumDstElts,
bool IsAnyExtend,
SmallVectorImpl< int > & ShuffleMask )

Decode a zero extension instruction as a shuffle mask.

Definition at line 371 of file X86ShuffleDecode.cpp.

References assert(), Sentinel, SM_SentinelUndef, and SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), getFauxShuffleMask(), and printZeroExtend().

◆ DecodeZeroMoveLowMask()

void llvm::DecodeZeroMoveLowMask ( unsigned NumElts,
SmallVectorImpl< int > & ShuffleMask )

Decode a move lower and zero upper instruction as a shuffle mask.

Definition at line 385 of file X86ShuffleDecode.cpp.

References SM_SentinelZero.

Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().

◆ decomposeBitTest()

std::optional< DecomposedBitTest > llvm::decomposeBitTest ( Value * Cond,
bool LookThroughTrunc = true,
bool AllowNonZeroC = false,
bool DecomposeAnd = false )

Decompose an icmp into the form ((X & Mask) pred C) if possible.

Unless AllowNonZeroC is true, C will always be 0. If DecomposeAnd is specified, then, for equality predicates, this will decompose bitmasking via and.

Definition at line 187 of file CmpInstAnalysis.cpp.

References BitWidth, Cond, decomposeBitTestICmp(), dyn_cast(), llvm::APInt::getZero(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, isa(), llvm::MIPatternMatch::m_Not(), llvm::PatternMatch::m_Trunc(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and X.

Referenced by decomposeBitTestICmp(), matchBitmaskMul(), and simplifySelectWithBitTest().

◆ decomposeBitTestICmp()

◆ decomposeLinearExpression()

◆ def_chain()

template<class T>
iterator_range< def_chain_iterator< T > > llvm::def_chain ( T MA,
MemoryAccess * UpTo = nullptr )
inline

Definition at line 1363 of file MemorySSA.h.

References assert(), def_chain(), find(), make_range(), and T.

Referenced by checkClobberSanity(), and def_chain().

◆ deleteConstant()

void llvm::deleteConstant ( Constant * C)

◆ DeleteDeadBlock()

void llvm::DeleteDeadBlock ( BasicBlock * BB,
DomTreeUpdater * DTU = nullptr,
bool KeepOneInputPHIs = false )

Delete the specified block, which must have no predecessors.

Definition at line 95 of file BasicBlockUtils.cpp.

References DeleteDeadBlocks().

Referenced by eraseDeadBBsAndChildren(), MergeBlockIntoPredecessor(), removeEmptyCleanup(), llvm::JumpThreadingPass::runImpl(), and TryToSimplifyUncondBranchFromEmptyBlock().

◆ DeleteDeadBlocks()

void llvm::DeleteDeadBlocks ( ArrayRef< BasicBlock * > BBs,
DomTreeUpdater * DTU = nullptr,
bool KeepOneInputPHIs = false )

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. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.

Definition at line 100 of file BasicBlockUtils.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::DomTreeUpdater::deleteBB(), detachDeadBlocks(), from_range, predecessors(), and llvm::ArrayRef< T >::size().

Referenced by CloneAndPruneIntoFromInst(), DeleteDeadBlock(), EliminateUnreachableBlocks(), removeUnreachableBlocks(), removeUnusedBlocksFromParent(), and workshareLoopTargetCallback().

◆ deleteDeadLoop()

void llvm::deleteDeadLoop ( Loop * L,
DominatorTree * DT,
ScalarEvolution * SE,
LoopInfo * LI,
MemorySSA * MSSA = 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, LI and MSSA if pointers to those are provided. It also updates the loop PM if an updater struct is provided.

Definition at line 485 of file LoopUtils.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), Block, blocks, llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::LoopInfoBase< BlockT, LoopT >::destroy(), dyn_cast(), llvm::LoopInfoBase< BlockT, LoopT >::end(), llvm::Instruction::eraseFromParent(), filterDbgVars(), find(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLoop(), from_range, llvm::PoisonValue::get(), llvm::Instruction::getNumSuccessors(), I, InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::DominatorTree::isReachableFromEntry(), make_early_inc_range(), llvm::Instruction::mayHaveSideEffects(), P, Poison, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::LoopInfoBase< BlockT, LoopT >::removeBlock(), llvm::LoopInfoBase< BlockT, LoopT >::removeLoop(), reverse(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().

Referenced by deleteLoopIfDead().

◆ DeleteDeadPHIs()

bool llvm::DeleteDeadPHIs ( BasicBlock * BB,
const TargetLibraryInfo * TLI = nullptr,
MemorySSAUpdater * MSSAU = 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 163 of file BasicBlockUtils.cpp.

References Changed, dyn_cast_or_null(), make_pointer_range(), PHI, llvm::BasicBlock::phis(), and RecursivelyDeleteDeadPHINode().

Referenced by ReduceLoopStrength(), and RunTermFold().

◆ delinearize()

void llvm::delinearize ( ScalarEvolution & SE,
const SCEV * Expr,
SmallVectorImpl< const SCEV * > & Subscripts,
SmallVectorImpl< const SCEV * > & Sizes,
const SCEV * ElementSize )

Split this SCEVAddRecExpr into two vectors of SCEVs representing the subscripts and sizes of an array access.

Splits the SCEV into two vectors of SCEVs representing the subscripts and sizes of an array access.

The delinearization is a 3 step process: the first two steps compute the sizes of each subscript and the third step computes the access functions for the delinearized array:

  1. Find the terms in the step functions
  2. Compute the array size
  3. Compute the access function: divide the SCEV by the array size starting with the innermost dimensions found in step 2. The Quotient is the SCEV to be divided in the next step of the recursion. The Remainder is the subscript of the innermost dimension. Loop over all array dimensions computed in step 2.

To compute a uniform array size for several memory accesses to the same object, one can collect in step 1 all the step terms for all the memory accesses, and compute in step 2 a unique array shape. This guarantees that the array shape will be the same across all memory accesses.

FIXME: We could derive the result of steps 1 and 2 from a description of the array shape given in metadata.

Example:

A[][n][m]

for i for j for k A[j+k][2i][5i] =

The initial SCEV:

A[{{{0,+,2*m+5}_i, +, n*m}_j, +, n*m}_k]

  1. Find the different terms in the step functions: -> [2*m, 5, n*m, n*m]
  2. Compute the array size: sort and unique them -> [n*m, 2*m, 5] find the GCD of all the terms = 1 divide by the GCD and erase constant terms -> [n*m, 2*m] GCD = m divide by GCD -> [n, 2] remove constant terms -> [n] size of the array is A[unknown][n][m]
  3. Compute the access function a. Divide {{{0,+,2*m+5}_i, +, n*m}_j, +, n*m}_k by the innermost size m Quotient: {{{0,+,2}_i, +, n}_j, +, n}_k Remainder: {{{0,+,5}_i, +, 0}_j, +, 0}_k The remainder is the subscript of the innermost array dimension: [5i].

b. Divide Quotient: {{{0,+,2}_i, +, n}_j, +, n}_k by next outer size n Quotient: {{{0,+,0}_i, +, 1}_j, +, 1}_k Remainder: {{{0,+,2}_i, +, 0}_j, +, 0}_k The Remainder is the subscript of the next array dimension: [2i].

The subscript of the outermost dimension is the Quotient: [j+k].

Overall, we have: A[][n][m], and the access function: A[j+k][2i][5i].

Returns the remainder of the delinearization that is the offset start of the array. The SCEV->delinearize algorithm computes the multiples of SCEV coefficients: that is a pattern matching of sub expressions in the stride and base of a SCEV corresponding to the computation of a GCD (greatest common divisor) of base and stride. When SCEV->delinearize fails, it returns the SCEV unchanged.

For example: when analyzing the memory access A[i][j][k] in this loop nest

void foo(long n, long m, long o, double A[n][m][o]) {

for (long i = 0; i < n; i++) for (long j = 0; j < m; j++) for (long k = 0; k < o; k++) A[i][j][k] = 1.0; }

the delinearization input is the following AddRec SCEV:

AddRec: {{{A,+,(8 * m * o)}<for.i>,+,(8 * o)}<for.j>,+,8}<for.k>

From this SCEV, we are able to say that the base offset of the access is A because it appears as an offset that does not divide any of the strides in the loops:

CHECK: Base offset: A

and then SCEV->delinearize determines the size of some of the dimensions of the array as these are the multiples by which the strides are happening:

CHECK: ArrayDecl[UnknownSize][m][o] with elements of sizeof(double) bytes.

Note that the outermost dimension remains of UnknownSize because there are no strides that would help identifying the size of the last dimension: when the array has been statically allocated, one could compute the size of that dimension by dividing the overall size of the array by the size of the known dimensions: m * o * 8.

Finally delinearize provides the access functions for the array reference that does correspond to A[i][j][k] of the above C testcase:

CHECK: ArrayRef[{0,+,1}<for.i>][{0,+,1}<for.j>][{0,+,1}<for.k>]

The testcases are checking the output of a function pass: DelinearizationPass that walks through all loads and stores of a function asking for the SCEV of the memory access with respect to all enclosing loops, calling SCEV->delinearize on that and printing the results.

Definition at line 460 of file Delinearization.cpp.

References collectParametricTerms(), computeAccessFunctions(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), and findArrayDimensions().

◆ delinearizeFixedSizeArray()

bool llvm::delinearizeFixedSizeArray ( ScalarEvolution & SE,
const SCEV * Expr,
SmallVectorImpl< const SCEV * > & Subscripts,
SmallVectorImpl< const SCEV * > & Sizes,
const SCEV * ElementSize )

Split this SCEVAddRecExpr into two vectors of SCEVs representing the subscripts and sizes of an access to a fixed size array.

Splits the SCEV into two vectors of SCEVs representing the subscripts and sizes of an array access, assuming that the array is a fixed size array.

This is a special case of delinearization for fixed size arrays.

The delinearization is a 2 step process: the first step estimates the sizes of each dimension of the array. The second step computes the access functions for the delinearized array:

  1. Compute the array size
  2. Compute the access function: same as normal delinearization

Different from the normal delinearization, this function assumes that NO terms exist in the Expr. In other words, it assumes that the all step values are constant.

This function is intended to replace getIndexExpressionsFromGEP and tryDelinearizeFixedSizeImpl. They rely on the GEP source element type so that they will be removed in the future.

E.g., if we have the code like as follows:

double A[42][8][32]; for i for j for k use A[i][j][k]

The access function will be represented as an AddRec SCEV like:

AddRec: {{{0,+,2048}<for.i>,+,256}<for.j>,+,8}<for.k> (ElementSize=8)

Then findFixedSizeArrayDimensions infers the size of each dimension of the array based on the fact that the value of the step recurrence is a multiple of the size of the corresponding array element. In the above example, it results in the following:

CHECK: ArrayDecl[UnknownSize][8][32] with elements of 8 bytes.

Finally each subscript will be computed as follows:

CHECK: ArrayRef[{0,+,1}<for.i>][{0,+,1}<for.j>][{0,+,1}<for.k>]

Note that this function doesn't check the range of possible values for each subscript, so the caller should perform additional boundary checks if necessary.

Also note that this function doesn't guarantee that the original array size is restored "correctly". For example, in the following case:

double A[42][4][64]; double B[42][8][32]; for i for j for k use A[i][j][k] use B[i][2*j][k]

The access function for both accesses will be the same:

AddRec: {{{0,+,2048}<for.i>,+,512}<for.j>,+,8}<for.k> (ElementSize=8)

The array sizes for both A and B will be computed as ArrayDecl[UnknownSize][4][64], which matches for A, but not for B.

TODO: At the moment, this function can handle only simple cases. For example, we cannot handle a case where a step recurrence is not divisible by the next smaller step recurrence, e.g., A[i][3*j].

Definition at line 637 of file Delinearization.cpp.

References computeAccessFunctions(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), findFixedSizeArrayDimensions(), llvm::ScalarEvolution::getConstant(), llvm::SCEV::getType(), and Size.

◆ demangle()

bool Demangler::demangle ( std::string_view MangledName)

Attempt to demangle a string using different demangling schemes.

The function uses heuristics to determine which demangling scheme to use.

Parameters
MangledName- reference to string to demangle.
Returns
- the demangled string, or a copy of the input string if no demangling occurred.

Definition at line 20 of file Demangle.cpp.

References microsoftDemangle(), nonMicrosoftDemangle(), and starts_with().

Referenced by llvm::omp::deconstructOpenMPKernelName(), llvm::GCOVFunction::getName(), llvm::DiagnosticInfoDontCall::print(), runSanitizeRealtimeBlocking(), and llvm::logicalview::LVSymbolVisitor::visitKnownRecord().

◆ demangledPostfixToDecorationId()

FPDecorationId llvm::demangledPostfixToDecorationId ( const std::string & S)
inline

Definition at line 478 of file SPIRVUtils.h.

References NONE, RTE, RTN, RTP, RTZ, and SAT.

Referenced by llvm::SPIRV::lookupBuiltinNameHelper().

◆ DemotePHIToStack()

AllocaInst * llvm::DemotePHIToStack ( PHINode * P,
std::optional< BasicBlock::iterator > AllocaPoint = std::nullopt )

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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 132 of file DemoteRegToStack.cpp.

References assert(), cast(), DL, dyn_cast(), F, II, isa(), P, llvm::User::replaceUsesOfWith(), and Users.

Referenced by runPass().

◆ DemoteRegToStack()

AllocaInst * llvm::DemoteRegToStack ( Instruction & I,
bool VolatileLoads = false,
std::optional< BasicBlock::iterator > AllocaPoint = std::nullopt )

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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 23 of file DemoteRegToStack.cpp.

References assert(), cast(), DL, dyn_cast(), F, GetSuccessorNumber(), I, II, isa(), isCriticalEdge(), llvm_unreachable, SplitCriticalEdge(), and successors().

Referenced by runPass().

◆ 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 120 of file ScalarEvolutionNormalization.cpp.

References Denormalize, llvm::SCEVAddRecExpr::getLoop(), and Loops.

Referenced by llvm::IVUsers::AddUsersIfInteresting(), getAnyExtendConsideringPostIncUses(), and normalizeForPostIncUse().

◆ denormalModeKindName()

StringRef llvm::denormalModeKindName ( DenormalMode::DenormalModeKind Mode)
inline

Return the name used for the denormal handling mode used by the expected names from the denormal-fp-math attribute.

Definition at line 203 of file FloatingPointMode.h.

References llvm::DenormalMode::Dynamic, llvm::DenormalMode::IEEE, Mode, llvm::DenormalMode::PositiveZero, and llvm::DenormalMode::PreserveSign.

Referenced by llvm::DenormalMode::print().

◆ depth_first()

◆ depth_first_ext()

◆ describeFuzzerAggregateOps()

◆ describeFuzzerControlFlowOps()

void llvm::describeFuzzerControlFlowOps ( std::vector< fuzzerop::OpDescriptor > & Ops)

◆ describeFuzzerFloatOps()

◆ describeFuzzerIntOps()

◆ describeFuzzerOtherOps()

void llvm::describeFuzzerOtherOps ( std::vector< fuzzerop::OpDescriptor > & Ops)

◆ describeFuzzerPointerOps()

void llvm::describeFuzzerPointerOps ( std::vector< fuzzerop::OpDescriptor > & Ops)

◆ describeFuzzerUnaryOperations()

void llvm::describeFuzzerUnaryOperations ( std::vector< fuzzerop::OpDescriptor > & Ops)

◆ describeFuzzerVectorOps()

◆ deserializeSectionKind()

DWARFSectionKind llvm::deserializeSectionKind ( uint32_t Value,
unsigned IndexVersion )

Convert a value read from an index section to the internal representation.

The conversion depends on the index section version, which is expected to be either 2 for pre-standard GNU proposal or 5 for DWARFv5 package file.

Definition at line 68 of file DWARFUnitIndex.cpp.

References assert(), CASE, DW_SECT_EXT_unknown, isKnownV5SectionID(), and TYPES.

◆ detachDeadBlocks()

void llvm::detachDeadBlocks ( ArrayRef< BasicBlock * > BBs,
SmallVectorImpl< DominatorTree::UpdateType > * Updates,
bool KeepOneInputPHIs = false )

Replace contents of every block in BBs with single unreachable instruction.

If Updates is specified, collect all necessary DT updates into this vector. If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.

Definition at line 61 of file BasicBlockUtils.cpp.

References assert(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::PoisonValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and successors().

Referenced by DeleteDeadBlocks().

◆ DetermineUseCaptureKind()

UseCaptureInfo llvm::DetermineUseCaptureKind ( const Use & U,
const Value * Base )

Determine what kind of capture behaviour U may exhibit.

The returned UseCaptureInfo contains the components captured directly by the use (UseCC) and the components captured through the return value of the user (ResultCC).

Base is the starting value of the capture analysis, which is relevant for address_is_null captures.

Definition at line 267 of file CaptureTracking.cpp.

References Address, AddressIsNull, All, assert(), llvm::sampleprof::Base, Call, cast(), dyn_cast(), llvm::CaptureInfo::getOtherComponents(), llvm::CaptureInfo::getRetComponents(), I, isa(), isIntrinsicReturningPointerAliasingArgumentWithoutCapturing(), isNoAliasCall(), MI, None, and llvm::UseCaptureInfo::passthrough().

Referenced by PointerMayBeCaptured().

◆ df_begin()

◆ df_end()

◆ 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 )

◆ diagnoseDontCall()

◆ dieNeedsChildrenToBeMeaningful()

bool llvm::dieNeedsChildrenToBeMeaningful ( uint32_t Tag)
static

Definition at line 383 of file DWARFLinker.cpp.

References llvm_unreachable, and Tag.

◆ 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 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, allowing the caller to distinguish between a failed diff and a file system error.

Definition at line 178 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(), and isNumberChar().

◆ discoverAndMapSubloop()

template<class BlockT, class LoopT>
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 459 of file GenericLoopInfoImpl.h.

◆ DisplayGraph()

bool llvm::DisplayGraph ( StringRef Filename,
bool wait = true,
GraphProgram::Name program = GraphProgram::DOT )

Definition at line 190 of file GraphWriter.cpp.

References args, errs(), ExecGraphViewer(), getProgramName(), llvm_unreachable, and OutputFilename.

Referenced by ViewGraph().

◆ DistributeRange()

template<typename LiveRangeT, typename EqClassesT>
void llvm::DistributeRange ( LiveRangeT & LR,
LiveRangeT * SplitLRs[],
EqClassesT VNIClasses )
static

Helper function that distributes live range value numbers and the corresponding segments of a primary 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 26 of file LiveRangeUtils.h.

References assert(), E(), I, and llvm::VNInfo::id.

Referenced by llvm::ConnectedVNInfoEqClasses::Distribute().

◆ divideCeil() [1/2]

template<typename U, typename V, typename T = common_uint<U, V>>
T llvm::divideCeil ( U Numerator,
V Denominator )
constexpr

Returns the integer ceil(Numerator / Denominator).

Unsigned version. Guaranteed to never overflow.

Definition at line 405 of file MathExtras.h.

References assert(), and T.

Referenced by llvm::FoldingSetNodeID::AddString(), alignTo(), alignTo(), alignTo(), llvm::SITargetLowering::allowsMisalignedMemoryAccessesImpl(), llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), buildCopyFromRegs(), llvm::msf::bytesToBlocks(), costShuffleViaSplitting(), costShuffleViaVRegSplitting(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), llvm::ARMBaseInstrInfo::extraSizeToPredicateInstructions(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::AMDGPU::getAddrSizeMIMGOp(), getDepthOfOptCmov(), getFloorFullVectorNumberOfElements(), llvm::msf::getFpmStreamLayout(), getFullVectorNumberOfElements(), llvm::AMDGPU::IsaInfo::getGranulatedNumRegisterBlocks(), llvm::DataLayout::getIndexSize(), llvm::BasicTTIImplBase< BasicTTIImpl >::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getIntImmCostInst(), llvm::RISCVTargetLowering::getLMULCost(), llvm::GCNTTIImpl::getMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getNumberOfParts(), llvm::GCNTTIImpl::getNumberOfParts(), llvm::msf::getNumFpmIntervals(), llvm::MipsTargetLowering::getNumRegistersForCallingConv(), llvm::AMDGPUSubtarget::getOccupancyWithWorkGroupSizes(), getPartNumElems(), llvm::DataLayout::getPointerSize(), llvm::RISCVTTIImpl::getRegUsageForType(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::X86TTIImpl::getReplicationShuffleCost(), llvm::SIRegisterInfo::getReservedRegs(), llvm::logicalview::LVElement::getStorageSizeInBytes(), llvm::DataLayout::getTypeAllocSize(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::AMDGPU::IsaInfo::getWavesPerEUForWorkGroup(), llvm::AMDGPU::IsaInfo::getWavesPerWorkGroup(), isOutsideLoopWorkProfitable(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), LLVMCreateConstantRangeAttribute(), lowerBuildVectorOfConstants(), optimizeSection(), removeRedundantDbgLocsUsingBackwardScan(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), useRVVForFixedLengthVectorVT(), and llvm::SIInstrInfo::verifyInstruction().

◆ divideCeil() [2/2]

uint64_t llvm::divideCeil ( uint64_t Numerator,
uint64_t Denominator )
constexpr

Fallback when arguments aren't integral.

Definition at line 412 of file MathExtras.h.

References assert().

◆ divideCeilSigned()

template<typename U, typename V, typename T = common_sint<U, V>>
T llvm::divideCeilSigned ( U Numerator,
V Denominator )
constexpr

Returns the integer ceil(Numerator / Denominator).

Signed version. Overflow is explicitly forbidden with an assert.

Definition at line 428 of file MathExtras.h.

References assert(), divideSignedWouldOverflow(), and T.

Referenced by llvm::DynamicAPInt::ceilDiv.

◆ divideFloorSigned()

template<typename U, typename V, typename T = common_sint<U, V>>
T llvm::divideFloorSigned ( U Numerator,
V Denominator )
constexpr

Returns the integer floor(Numerator / Denominator).

Signed version. Overflow is explicitly forbidden with an assert.

Definition at line 444 of file MathExtras.h.

References assert(), divideSignedWouldOverflow(), and T.

Referenced by llvm::DynamicAPInt::floorDiv.

◆ divideNearest()

template<typename U, typename V, typename T = common_uint<U, V>>
T llvm::divideNearest ( U Numerator,
V Denominator )
constexpr

Returns (Numerator / Denominator) rounded by round-half-up.

Guaranteed to never overflow.

Definition at line 469 of file MathExtras.h.

References assert(), Mod, and T.

Referenced by estimateLoopTripCount().

◆ divideSignedWouldOverflow()

template<typename U, typename V>
bool llvm::divideSignedWouldOverflow ( U Numerator,
V Denominator )
constexpr

◆ djbHash()

uint32_t llvm::djbHash ( StringRef Buffer,
uint32_t H = 5381 )
inline

The Bernstein hash function used by the DWARF accelerator tables.

Definition at line 22 of file DJB.h.

References llvm::StringRef::bytes(), llvm::CallingConv::C, and H.

Referenced by caseFoldingDjbHash(), llvm::AppleAcceleratorTable::equal_range(), llvm::AppleAccelTableData::hash(), and hashFullyQualifiedName().

◆ dlangDemangle()

char * llvm::dlangDemangle ( std::string_view MangledName)

◆ dlltoolDriverMain()

◆ doesNotNeedToBeScheduled()

bool llvm::doesNotNeedToBeScheduled ( Value * V)
static

Checks if the specified value does not require scheduling.

It does not require scheduling if all operands and all users do not need to be scheduled in the current basic block.

Definition at line 1872 of file SLPVectorizer.cpp.

References areAllOperandsNonInsts(), and isUsedOutsideBlock().

Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads().

◆ doesNotNeedToSchedule()

bool llvm::doesNotNeedToSchedule ( ArrayRef< Value * > VL)
static

Checks if the specified array of instructions does not require scheduling.

It is so if all either instructions have operands that do not require scheduling or their users do not require scheduling since they are phis or in other basic blocks.

Definition at line 1880 of file SLPVectorizer.cpp.

References all_of(), areAllOperandsNonInsts(), llvm::ArrayRef< T >::empty(), and isUsedOutsideBlock().

◆ DoInstrProfNameCompression()

cl::opt< bool > llvm::DoInstrProfNameCompression ( "enable-name-compression" ,
cl::desc("Enable name/filename string compression") ,
cl::init(true)  )

References llvm::cl::init().

◆ doSystemDiff()

std::string llvm::doSystemDiff ( StringRef Before,
StringRef After,
StringRef OldLineFormat,
StringRef NewLineFormat,
StringRef UnchangedLineFormat )

◆ downscaleWeights()

SmallVector< uint32_t > llvm::downscaleWeights ( ArrayRef< uint64_t > Weights,
std::optional< uint64_t > KnownMaxCount = std::nullopt )

downscale the given weights preserving the ratio.

If the maximum value is not already known and not provided via

Parameters
KnownMaxCount,itwill be obtained from
Weights.

Definition at line 284 of file ProfDataUtils.cpp.

References assert(), calculateCountScale(), max_element(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and scaleBranchCount().

Referenced by expandToSwitch(), and setProfMetadata().

◆ drop_begin()

template<typename T>
auto llvm::drop_begin ( T && RangeOrContainer,
size_t N = 1 )

Return a range covering RangeOrContainer with the first N elements excluded.

Definition at line 318 of file STLExtras.h.

References adl_begin(), adl_end(), make_range(), N, and T.

Referenced by llvm::GEPOperator::accumulateConstantOffset(), addBasicBlockMetadata(), addVCallToSet(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::X86InstrInfo::analyzeBranchPredicate(), llvm::CombinerHelper::applyExtendThroughPhis(), llvm::sandboxir::VecUtils::areConsecutive(), areIdenticalUpToCommutativity(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::attachNewSubtree(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::MDNodeOpsKey::calculateHash(), canFoldAsPredicatedOp(), canFoldIntoSelect(), llvm::sandboxir::LegalityAnalysis::canVectorize(), checkNode(), llvm::VPWidenPHIRecipe::clone(), CollectAddOperandsWithScales(), llvm::GISelValueTracking::computeKnownBitsImpl(), llvm::safestack::StackLayout::computeLayout(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), llvm::GISelValueTracking::computeNumSignBits(), llvm::MachO::convertToInterfaceFile(), llvm::MachineInstr::copyImplicitOps(), createCallWithOps(), llvm::mca::EntryStage::cycleEnd(), DoInitialMatch(), emitDirectiveRelocJalr(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::AVRFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::SystemZXPLINKFrameLowering::emitPrologue(), llvm::TimeTraceProfiler::end(), llvm::sampleprof::DefaultFunctionPruningStrategy::Erase(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::SIInstrInfo::expandMovDPP64(), llvm::cl::ExpansionContext::expandResponseFiles(), llvm::sandboxir::DependencyGraph::extend(), llvm::objcopy::elf::ELFWriter< ELFT >::finalize(), findLoadCallsAtConstantOffset(), llvm::DominatorTreeBase< BlockT, false >::findNearestCommonDominator(), findOptionMDForLoopID(), fixupPHIOpBanks(), foldGEPChainAsStructAccess(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), for(), fuseTwoAddrInst(), llvm::MachO::TextAPIReader::get(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::ScalarEvolution::getAddRecExpr(), llvm::sandboxir::SchedBundle::getBot(), getConstantAtOffset(), getExactSDiv(), getHashValueImpl(), llvm::SCEVExpander::getIVIncOperand(), llvm::Loop::getLocRange(), llvm::sandboxir::VecUtils::getLowest(), llvm::DebugLoc::getMergedLocations(), llvm::DILocation::getMergedLocations(), llvm::VPlan::getName(), getOffsetFromIndices(), llvm::GIMatchTableExecutor::getRemainingOperands(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::sandboxir::CollectDescr::getSingleInput(), llvm::sandboxir::SeedBundle::getSlice(), llvm::sandboxir::SchedBundle::getTop(), llvm::ScalarEvolution::getUDivExactExpr(), GetUnrollMetadata(), getVectorSplat(), incorporateNewSCCRange(), insertSEH(), llvm::sandboxir::Interval< T >::Interval(), llvm::Loop::isAnnotatedParallel(), llvm::SITargetLowering::isCanonicalized(), llvm::IRSimilarity::isClose(), isKnownToBeAPowerOfTwo(), isSafeToMove(), isStructurallyValidScheme(), lle_X_fprintf(), LowerBUILD_VECTOR_i1(), makeFollowupLoopID(), makeGuardControlFlowExplicit(), makePostTransformationMetadata(), mergeConsecutivePartStores(), llvm::Instruction::mergeDIAssignID(), moveInstructionsToTheBeginning(), llvm::orc::operator<<(), performBuildShuffleExtendCombine(), llvm::InstCombinerImpl::PHIArgMergedDebugLoc(), llvm::ARMInstPrinter::printRegisterList(), llvm::ValueEnumerator::purgeFunction(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::reattachExistingSubtree(), llvm::PHINode::removeIncomingValue(), llvm::VPlanTransforms::replicateByVF(), llvm::sandboxir::EraseFromParent::revert(), llvm::PGOCtxProfFlatteningPass::run(), setMemoryPhiValueForBlock(), simpleLibcall(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), sortPtrAccesses(), stripDebugLocFromLoopID(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::TailDuplicator::tailDuplicateBlocks(), llvm::sandboxir::VecUtils::tryGetCommonScalarType(), llvm::sandboxir::Scheduler::trySchedule(), tryToFoldLiveIns(), UnrollLoop(), unswitchTrivialSwitch(), UpdateDbgValue(), updateOperands(), llvm::objcopy::elf::SymbolTableSection::updateSymbols(), VerifyPHIs(), and llvm::InstCombinerImpl::visitGetElementPtrInst().

◆ drop_end()

◆ dropDebugUsers()

void llvm::dropDebugUsers ( Instruction & I)

Remove the debug intrinsic instructions for the given instruction.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3332 of file Local.cpp.

References findDbgUsers(), and I.

Referenced by hoistAllInstructionsInto().

◆ dump()

◆ dumpBasicBlockLabel()

◆ dumpBytes()

void llvm::dumpBytes ( ArrayRef< uint8_t > Bytes,
raw_ostream & OS )

Convert ‘Bytes’ to a hex string and output to ‘OS’.

Definition at line 25 of file MCInstPrinter.cpp.

References First.

◆ dumpDotGraphToFile()

template<typename GraphType>
LLVM_DUMP_METHOD void llvm::dumpDotGraphToFile ( const GraphType & G,
const Twine & FileName,
const Twine & Title,
bool ShortNames = false,
const Twine & Name = "" )

DumpDotGraph - Just dump a dot graph to the user-provided file name.

Definition at line 432 of file GraphWriter.h.

References G, llvm::Twine::str(), and WriteGraph().

Referenced by llvm::SelectionDAG::dumpDotGraph().

◆ dumpMessage()

void llvm::dumpMessage ( SMLoc Loc,
const Init * Message )

Definition at line 181 of file Error.cpp.

References dyn_cast(), PrintError(), and PrintNote().

Referenced by llvm::Record::emitRecordDumps().

◆ dumpRegSetPressure()

◆ dumpSectionMemory()

◆ dumpTypeQualifiedName()

void llvm::dumpTypeQualifiedName ( const DWARFDie & DIE,
raw_ostream & OS )

Definition at line 795 of file DWARFDie.cpp.

References llvm::DWARFTypePrinter< DieType >::appendQualifiedName().

Referenced by dumpAttribute().

◆ dumpTypeUnqualifiedName()

void llvm::dumpTypeUnqualifiedName ( const DWARFDie & DIE,
raw_ostream & OS,
std::string * OriginalFullName = nullptr )

◆ 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 1100 of file CloneFunction.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::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::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::BasicBlock::getTerminator(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, remapDebugVariable(), llvm::Value::setName(), SplitEdge(), StopAt, and successors().

Referenced by splitCallSite(), and llvm::JumpThreadingPass::threadGuard().

◆ dyn_cast() [1/4]

template<typename To, typename From>
decltype(auto) llvm::dyn_cast ( const From & Val)
inlinenodiscard

dyn_cast<X> - Return the argument parameter cast to the specified type.

This casting operator returns null if the argument is of the wrong type, so it can be used to test for a type as well as cast if successful. The value passed in must be present, if not, use dyn_cast_if_present. This should be used in the context of an if statement like this:

if (const Instruction *I = dyn_cast<Instruction>(myVal)) { ... }

Definition at line 649 of file Casting.h.

References assert(), llvm::CastInfo< To, From, Enable >::doCastIfPossible(), and llvm::detail::isPresent().

Referenced by llvm::AbstractCallSite::AbstractCallSite(), accessedBetween(), llvm::GEPOperator::accumulateConstantOffset(), accumulateOffset(), llvm::MachO::DylibReader::accumulateSourceLocFromDSYM(), adaptNoAliasScopes(), llvm::AliasSetTracker::add(), llvm::GVNPass::ValueTable::add(), llvm::orc::IRSymbolMapper::add(), llvm::X86Operand::addAbsMemOperands(), AddAliasScopeMetadata(), llvm::DwarfUnit::addAnnotation(), addArgumentAttrsFromCallsites(), addArgumentReturnedAttrs(), addBoundsChecking(), llvm::memprof::CallStackTrie::addCallStack(), AddCombineBUILD_VECTORToVPADDL(), AddCombineTo64BitSMLAL16(), addConstantComments(), llvm::CSKYTargetStreamer::addConstantPoolEntry(), addConstantsToTrack(), addData(), addEmuTlsVar(), llvm::ConstantPool::addEntry(), llvm::CSKYConstantPool::addEntry(), addExitUsersForFirstOrderRecurrences(), llvm::X86Operand::addExpr(), XtensaOperand::addExpr(), llvm::ModuleSummaryIndex::addGlobalValueSummary(), addIntrinsicToSummary(), llvm::MachineFunction::addLandingPad(), llvm::X86Operand::addMemOffsOperands(), addNegOperand(), llvm::DataDependenceGraph::addNode(), AddNodeIDCustom(), addNonConstUser(), AddNonNullPointersByInstruction(), addNoRecurseAttrs(), addNoRecurseAttrsTopDown(), addNoUndefAttrs(), addOpsFromMDNode(), AddParamAndFnBasicAttributes(), addPHINodeEntriesForMappedBlock(), llvm::RecurrenceDescriptor::AddReductionVar(), addReplicateRegions(), addResumePhiRecipeForInduction(), AddReturnAttributes(), addRuntimeUnrollDisableMetaData(), addSaturatedDecorationToIntrinsic(), addScalarResumePhis(), addStackMapLiveVars(), addStringMetadataToLoop(), llvm::DwarfUnit::addTemplateParams(), llvm::AMDGPUTargetLowering::addTokenForArgument(), llvm::SCCPInstVisitor::addTrackedFunction(), addTryBlockMapEntry(), llvm::AliasSetTracker::addUnknown(), llvm::InstructionWorklist::addValue(), addValueAffectedByCondition(), addVCallToSet(), adjustByValArgAlignment(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::ARMAsmBackend::adjustFixupValue(), adjustForFNeg(), llvm::X86FrameLowering::adjustForHiPEPrologue(), adjustForLTGFR(), adjustForRedundantAnd(), adjustForTestUnderMask(), llvm::SystemZTTIImpl::adjustInliningThreshold(), adjustZeroCmp(), llvm::PredIterator< BasicBlock, Value::user_iterator >::advancePastNonTerminators(), aggregatePossibleConstantValues(), aggregatePossibleConstantValuesImpl(), llvm::AMDGPUAAResult::alias(), llvm::GlobalsAAResult::alias(), llvm::AliasSet::aliasesUnknownInst(), llvm::GISelAddressing::aliasIsKnownForLoadStore(), allowEmitFakeUse(), allowsPreservingNUW(), allPathsGoThroughCold(), allSameBlock(), allUsersAreInFunction(), allUsesOfLoadAndStores(), allUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), alwaysInlineImpl(), llvm::AMDGPULibFunc::AMDGPULibFunc(), AliasScopeTracker::analyse(), llvm::coro::Shape::analyze(), llvm::CodeMetrics::analyzeBasicBlock(), analyzeCostOfVecReduction(), analyzeGlobalAux(), analyzeICmp(), llvm::InterleavedAccessInfo::analyzeInterleaving(), analyzeKnownBitsFromAndXorOr(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), analyzeLoopUnrollCost(), analyzeModule(), annotateNonNullAndDereferenceable(), appendSpeculatableOperands(), llvm::PoisonFlags::apply(), llvm::OverflowTracking::applyFlags(), llvm::MipsRegisterBankInfo::applyMappingImpl(), applyWrappers(), applyX86MaskOn1BitsVec(), areAllOperandsNonInsts(), llvm::RecurrenceDescriptor::areAllUsesIn(), AreEquivalentAddressValues(), areGlobalsPotentiallyEqual(), areIdenticalUpToCommutativity(), llvm::X86TTIImpl::areInlineCompatible(), areInSameBB(), llvm::SelectInst::areInvalidOperands(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::X86InstrInfo::areLoadsFromSameBasePtr(), areLoopExitPHIsLoopInvariant(), AreMulWideOperandsDemotable(), llvm::DDGBuilder::areNodesMergeable(), areOuterLoopExitPHIsSupported(), arePointersCompatible(), argHasNVVMAnnotation(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), aspaceWrapOperand(), aspaceWrapValue(), assertBranchOrSelectConditionHoisted(), llvm::NVPTXTargetLowering::atomicOperationOrderAfterFenceSplit(), attemptToFoldSymbolOffsetDifference(), AVRDAGToDAGISel::select< ISD::STORE >(), llvm::DwarfCFIException::beginBasicBlockSection(), llvm::WinException::beginFunclet(), llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::BTFDebug::beginFunctionImpl(), llvm::BTFDebug::beginInstruction(), llvm::DwarfDebug::beginModule(), llvm::LegalizerHelper::bitcastConcatVector(), bitcastf32Toi32(), llvm::SDNode::bitcastToAPInt(), BitOp3_Op(), bitTrackingDCE(), blockIsSimpleEnoughToThreadThrough(), breakLoopBackedge(), breakSelfRecursivePHI(), buildBitSets(), buildClonedLoopBlocks(), BuildConstantFromSCEV(), llvm::MachineIRBuilder::buildConstDbgValue(), llvm::slpvectorizer::BoUpSLP::buildExternalUses(), buildFrameType(), buildModuleSummaryIndex(), buildMul(), buildNew(), buildOpSpirvDecorations(), buildPartialInvariantUnswitchConditionalBranch(), llvm::PredicateInfoBuilder::buildPredicateInfo(), BuildSubAggregate(), buildTargetLegalPtr(), cacheAnnotationFromMD(), calcArraySize(), calculateByteProvider(), calculateByteProvider(), calculateClrEHStateNumbers(), calculateCXXStateNumbers(), calculatePreExtendType(), calculatePrevailingSummary(), calculateRegisterUsageForPlan(), calculateRtStride(), calculateSEHStateForAsynchEH(), calculateSEHStateNumbers(), calculateSrcByte(), calculateStateNumbersForInvokes(), calculateUpperBound(), calculateVectorIndex(), calculateWasmEHInfo(), llvm::AAResults::callCapturesBefore(), callsShareTOCBase(), canBeCheaplyTransformed(), llvm::GlobalValue::canBeOmittedFromSymbolTable(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), CanConstantFold(), canConvertToFMA(), canCreateUndefOrPoison(), canCreateUndefOrPoison(), canEvaluateShifted(), canEvaluateShuffled(), canEvaluateTruncated(), canEvaluateZExtd(), canFoldInAddressingMode(), canFoldIVIncExpr(), canFoldTermCondOfLoop(), canFreelyInvert(), CanGenerateTest(), llvm::MemoryOpRemark::canHandle(), canHaveUnrollRemainder(), canIgnoreSignBitOfNaN(), canIgnoreSignBitOfZero(), llvm::VPIntrinsic::canIgnoreVectorLengthParam(), llvm::GlobalObject::canIncreaseAlignment(), canLongjmp(), canLoopBeDeleted(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canMoveAboveCall(), canNarrowLoad(), canonicalizeBitCastExtElt(), canonicalizeCmpWithConstant(), llvm::VPlanTransforms::canonicalizeEVLLoops(), canonicalizeLowbitMask(), canonicalizeMetadataForValue(), canonicalizeShuffleWithOp(), canOptimizeTLSDFormToXForm(), CanPropagatePredecessorsForPHIs(), canProveExitOnFirstIteration(), CanProveNotTakenFirstIteration(), canRenameComdat(), canReplaceGEPIdxWithZero(), llvm::ScalarEvolution::canReuseInstruction(), canRewriteGEPAsOffset(), canRotateDeoptimizingLatchExit(), canSafelyConvertTo16Bit(), canScalarizeAccess(), canSimplifyNullLoadOrGEP(), canSimplifyNullStoreOrGEP(), canSinkInstructions(), canSinkOrHoistInst(), canSkipClobberingStore(), llvm::RISCVTTIImpl::canSplatOperand(), canSplitLoopBound(), canTailPredicateInstruction(), canTailPredicateLoop(), canThrow(), canTransformAccumulatorRecursion(), canTRE(), llvm::objcarc::CanUse(), canUseShiftPair(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), canVectorizeTy(), canWidenCallReturnType(), llvm::CastInst::castIsValid(), llvm::detail::TypeSwitchBase< TypeSwitch< T, ResultT >, T >::castValue(), chainLoadsAndStoresForMemcpy(), chainToBasePointerCost(), cheapToScalarize(), llvm::PatternMatch::undef_match::check(), CheckAndCreateOffsetAdd(), CheckAndImm(), checkAndReplaceCondition(), CheckAssert(), checkAsyncFuncPointer(), checkBasicSSA(), checkBitsConcrete(), checkBoolTestSetCCCombine(), checkClobberSanity(), checkCVTFixedPointOperandWithFBits(), checkDebugInfoMetadata(), llvm::Attributor::checkForAllCallees(), llvm::Attributor::checkForAllCallSites(), llvm::Attributor::checkForAllUses(), checkForMustTailInVarArgFn(), llvm::SITargetLowering::checkForPhysRegDependency(), checkFunctionMemoryAccess(), checkHoistValue(), checkIfSafeAddSequence(), CheckInteger(), checkMixedPrecision(), checkOffsetSize(), CheckOrImm(), checkOuterLoopInsts(), checkOverflow(), checkPHIs(), checkVOPDRegConstraints(), checkWFAlloc(), checkWFDealloc(), checkWFRetconPrototype(), checkWMMAElementsModifiersF16(), clampDynamicVectorIndex(), classifyConstantWithOpaquePtr(), classifyEHPersonality(), llvm::AArch64Subtarget::classifyGlobalFunctionReference(), llvm::AArch64AuthMCExpr::classof(), llvm::FPMathOperator::classof(), llvm::InstrProfCntrInstBase::classof(), llvm::InstrProfInstBase::classof(), llvm::sandboxir::AllocaInst::classof(), llvm::sandboxir::CastInstImpl< Op >::classof(), llvm::sandboxir::PossiblyNonNegInst::classof(), llvm::VPInstructionWithType::classof(), llvm::VPInterleaveBase::classof(), llvm::VPIRPhi::classof(), llvm::VPPhi::classof(), llvm::VPPhi::classof(), llvm::VPPhi::classof(), llvm::VPRecipeWithIRFlags::classof(), llvm::VPRecipeWithIRFlags::classof(), llvm::VPReductionRecipe::classof(), llvm::VPSingleDefRecipe::classof(), llvm::VPWidenMemoryRecipe::classof(), llvm::WasmYAML::DylinkSection::classof(), llvm::WasmYAML::LinkingSection::classof(), llvm::WasmYAML::NameSection::classof(), llvm::WasmYAML::ProducersSection::classof(), llvm::WasmYAML::TargetFeaturesSection::classof(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), llvm::RopePieceBTree::clear(), llvm::VPlanTransforms::clearReductionWrapFlags(), ClearSubclassDataAfterReassociation(), CloneAndPruneIntoFromInst(), CloneBasicBlock(), cloneConstantExprWithNewAddressSpace(), cloneForLane(), CloneFunctionAttributesInto(), CloneFunctionBodyInto(), cloneInstructionInExitBlock(), llvm::JumpThreadingPass::cloneInstructions(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), cloneLoopBlocks(), cloneNoAliasScopes(), CloneNodeWithValues(), llvm::DILocation::cloneWithDiscriminator(), llvm::FunctionComparator::cmpConstants(), cmpExcludesZero(), llvm::FunctionComparator::cmpOperations(), llvm::FunctionComparator::cmpTypes(), llvm::FunctionComparator::cmpValues(), llvm::CodeExtractorAnalysisCache::CodeExtractorAnalysisCache(), llvm::VNCoercion::coerceAvailableValueToLoadType(), CollectAddOperandsWithScales(), collectBitParts(), collectBlockUseDef(), collectCastInstrs(), collectConstantAbsSteps(), collectDebugInfoMetadata(), collectElements(), llvm::LoopVectorizationCostModel::collectElementTypesForWidening(), collectEphemeralRecipesForVPlan(), collectEscapedLocals(), collectHomogenousInstGraphLoopInvariants(), collectInsertionElements(), collectInstructionDeps(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), collectLeaves(), collectMDInDomain(), collectMemAccessInfo(), collectMergeableInsts(), llvm::GEPOperator::collectOffset(), collectOffsetOp(), collectOffsets(), collectPHINodes(), collectPromotionCandidates(), llvm::ScopedNoAliasAAResult::collectScopedDomains(), collectShuffleElements(), collectSingleShuffleElements(), llvm::coro::collectSpillsAndAllocasFromInsts(), collectSRATypes(), CollectSubexprs(), collectUnswitchCandidates(), collectUnswitchCandidatesWithInjections(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), collectVersions(), colorEHFunclets(), combine_CC(), combineADC(), combineAddOrSubToADCOrSBB(), combineADDRSPACECAST(), combineADDToADDZE(), combineADDToMAT_PCREL_ADDR(), combineAndLoadToBZHI(), CombineANDShift(), combineAndShuffleNot(), combineBitcast(), combineBitcastToBoolVector(), combineBVOfVecSExt(), combineCCMask(), combineCMov(), combineCONCAT_VECTORS(), combineConcatVectorOfShuffleAndItsOperands(), combineConcatVectorOps(), combineConstantOffsets(), combineConstantPoolLoads(), combineExtractFromVectorLoad(), combineExtractVectorElt(), combineFAndFNotToFAndn(), llvm::AMDGPUTargetLowering::combineFMinMaxLegacy(), combineGatherScatter(), combineINSERT_SUBVECTOR(), combineInstructionsOverFunction(), combineIRFlags(), combineLoad(), combineLoadToOperationType(), combineOr(), combineOrXorWithSETCC(), combineSCALAR_TO_VECTOR(), combineScalarAndWithMaskSetcc(), combineSelectOfTwoConstants(), combineSetCC(), combineSetCCAtomicArith(), combineSetCCMOVMSK(), combineShiftAnd1ToBitTest(), combineShiftLeft(), combineShiftRightLogical(), combineShuffle(), combineShuffleOfScalars(), combineShuffleOfSplatVal(), combineStore(), combineStoreToValueType(), combineSubOfBoolean(), combineSubSetcc(), combineSubShiftToOrcB(), combineTargetShuffle(), combineTruncToVnclip(), combineVectorCompareAndMaskUnaryOp(), CombineVMOVDRRCandidateWithVecOp(), combineXor(), combineXorSubCTLZ(), llvm::InstCombinerImpl::commonCastTransforms(), llvm::InstCombinerImpl::commonIDivRemTransforms(), llvm::InstCombinerImpl::commonIRemTransforms(), llvm::InstCombinerImpl::commonShiftTransforms(), CompactSwizzlableVector(), compareCmp(), llvm::BinOpInit::CompareInit(), CompareValueComplexity(), llvm::objcopy::elf::Object::compressOrDecompressSections(), llvm::CommonPointerBase::compute(), computeAccessFunctions(), llvm::BaseIndexOffset::computeAliasing(), computeAlignmentAfterScalarization(), llvm::ScalarEvolution::computeConstantDifference(), computeConstantRange(), llvm::VPHistogramRecipe::computeCost(), llvm::VPPartialReductionRecipe::computeCost(), llvm::VPWidenCastRecipe::computeCost(), llvm::VPWidenSelectRecipe::computeCost(), ComputeCrossModuleImport(), computeDeadSymbolsAndUpdateIndirectCalls(), computeFlagsForAddressComputation(), computeFunctionSummary(), computeHeuristicUnrollFactor(), ModuleImportsManager::computeImportForModule(), llvm::SITargetLowering::computeKnownAlignForTargetInstr(), computeKnownBits(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsForPRMT(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromCond(), computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownFPClass(), computeKnownFPClass(), computeKnownFPClass(), ComputeLinearIndex(), computeLiveOutSeed(), computeLTOCacheKey(), computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeNumSignBits(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), ComputeNumSignBitsImpl(), computeNumSignBitsVectorConstant(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerDifference(), computePointerICmp(), llvm::IndexedReference::computeRefCost(), llvm::object::computeSymbolSizes(), computeUnlikelySuccessors(), computeUnrollAndJamCount(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), computeValueLLTs(), ComputeValueTypes(), computeVirtualCallSiteTypeInfoMap(), computeZeroableShuffleElements(), concatenateTwoVectors(), ConnectEpilog(), ConnectProlog(), llvm::VPBasicBlock::connectToPredecessors(), llvm::ConstantAggregate::ConstantAggregate(), constantFold(), constantFoldAndGroupOps(), ConstantFoldBinaryInstruction(), ConstantFoldCall(), ConstantFoldCastInstruction(), ConstantFoldCastOperand(), ConstantFoldCompareInstOperands(), ConstantFoldCompareInstruction(), ConstantFoldExtractElementInstruction(), ConstantFoldInsertElementInstruction(), ConstantFoldInsertValueInstruction(), ConstantFoldInstruction(), ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), ConstantFoldSelectInstruction(), ConstantFoldTerminator(), ConstantFoldUnaryInstruction(), constantFoldUser(), constantIsDead(), constantMatches(), ConstantPropUsersOf(), ConstHasGlobalValuePredicate(), llvm::DwarfCompileUnit::constructImportedEntityDIE(), llvm::DwarfUnit::constructTypeDIE(), llvm::objcarc::BundledRetainClaimRVs::contains(), llvm::Constant::containsConstantExpression(), llvm::ScalarEvolution::containsErasedValue(), containsGCPtrType(), containsGCPtrType(), containsLongjmpableCalls(), ContainsProtectableArray(), containsUnconditionalCallSafepoint(), containsUndefinedElement(), containsUndefs(), llvm::ScalarEvolution::containsUndefs(), containsUnreachable(), llvm::gsym::DwarfTransformer::convert(), convertAnnotation2Metadata(), llvm::TypedInit::convertInitializerBitRange(), llvm::BitInit::convertInitializerTo(), llvm::BitsInit::convertInitializerTo(), llvm::DefInit::convertInitializerTo(), llvm::IntInit::convertInitializerTo(), llvm::ListInit::convertInitializerTo(), llvm::BitsInit::convertInitializerToInt(), llvm::BitsInit::convertKnownBitsToInt(), convertNvvmIntrinsicToLlvm(), llvm::ScalarEvolution::convertSCEVToAddRecWithPredicates(), llvm::VPlanTransforms::convertToAbstractRecipes(), llvm::VPlanTransforms::convertToConcreteRecipes(), convertToDeclaration(), convertToParamAS(), convertUsersOfConstantsToInstructions(), copyArrayElemsForMemCpy(), llvm::MachineInstr::copyFlagsFromInstruction(), llvm::GlobalObject::copyMetadata(), copyMustTailReturn(), llvm::VPRecipeBase::cost(), costAndCollectOperands(), CouldBecomeSafePoint(), countMCSymbolRefExpr(), countNumMemAccesses(), countOperands(), countToEliminateCompares(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::coverage::BinaryCoverageReader::create(), llvm::DXContainerYAML::RootSignatureYamlDesc::create(), llvm::objcopy::elf::ELFReader::create(), llvm::sandboxir::CastInst::create(), llvm::sandboxir::CmpInst::create(), llvm::sandboxir::ExtractElementInst::create(), llvm::sandboxir::ExtractValueInst::create(), llvm::sandboxir::GetElementPtrInst::create(), llvm::sandboxir::InsertElementInst::create(), llvm::sandboxir::InsertValueInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::UnaryOperator::create(), llvm::symbolize::SymbolizableObjectFile::create(), llvm::VPIRInstruction::create(), createAnyOfReduction(), CreateCallEx(), CreateCallEx2(), llvm::AbstractDependenceGraphBuilder< GraphType >::createDefUseEdges(), llvm::IRBuilderBase::CreateFree(), CreateGCRelocates(), llvm::VPlanTransforms::createInterleaveGroups(), llvm::FastISel::createMachineMemOperandFor(), llvm::IRBuilderBase::CreateMalloc(), CreateNeg(), createOutlinedFunction(), createPHIsForSplitLoopExit(), llvm::IRBuilderBase::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilderBase::CreatePointerCast(), llvm::sandboxir::Region::createRegionsFromMD(), createReplacement(), createRetBitCast(), createSlotTracker(), createTileStore(), createTypedBufferLoad(), llvm::DwarfUnit::createTypeDIE(), llvm::IRBuilderBase::CreateVectorSplice(), createWidenInductionRecipes(), llvm::sandboxir::BinaryOperator::createWithCopiedFlags(), llvm::sandboxir::UnaryOperator::createWithCopiedFlags(), llvm::VPlanTransforms::cse(), DbgRewriteSalvageableDVIs(), llvm::DCData::DCData(), DCEInstruction(), DecodeFixedType(), decompose(), decomposeBitTest(), decomposeLinearExpression(), llvm::LoongArchTargetLowering::decomposeMulByConstant(), llvm::PPCTargetLowering::decomposeMulByConstant(), llvm::XtensaTargetLowering::decomposeMulByConstant(), defaultComponentBroadcast(), definedInCaller(), definedInRegion(), deleteDeadLoop(), deleteIfDead(), DemotePHIToStack(), DemoteRegToStack(), dependencies(), dependsOnLocalPhi(), detectExtMul(), detectPMADDUBSW(), detectPopcountIdiom(), detectShiftUntilBitTestIdiom(), detectShiftUntilLessThanIdiom(), detectShiftUntilZeroIdiom(), detectShiftUntilZeroIdiom(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), DetermineUseCaptureKind(), llvm::LLVMContext::diagnose(), diagnoseDontCall(), diagnosePossiblyInvalidConstraint(), llvm::vfs::InMemoryFileSystem::dir_begin(), directlyImpliesPoison(), discoverDependentGlobals(), llvm::ModuleSummaryIndex::discoverNodes(), llvm::VPRegionBlock::dissolveToCFGLoop(), llvm::SCEVDivision::divide(), doCallSiteSplitting(), doesNotRequireEntrySafepointBefore(), llvm::AsmPrinter::doFinalization(), llvm::BPFAsmPrinter::doFinalization(), DoFlattenLoopPair(), DoInitialMatch(), DoLowering(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::MemorySSA::dominates(), dominatesMergePoint(), doPromotion(), downcastI64toI32InsertExtractElements(), llvm::Instruction::dropDbgRecords(), dropIntrinsicWithUnknownMetadataArgument(), llvm::Instruction::dropLocation(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), dropTypeTests(), dumpMessage(), dumpUUID(), llvm::VPlan::duplicate(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), DuplicateInstructionsInSplitBetween(), llvm::mdconst::dyn_extract(), llvm::mdconst::dyn_extract_or_null(), ehAwareSplitEdge(), EliminateDuplicatePHINodesNaiveImpl(), EliminateDuplicatePHINodesSetBasedImpl(), eliminateSwiftError(), emitBinaryFloatFnCallHelper(), llvm::SelectionDAGBuilder::EmitBranchForMergedCondition(), emitCalloc(), EmitCMP(), EmitCmp(), emitConditionalComparison(), emitConstantSizeRepstos(), llvm::InstrEmitter::EmitDbgValueFromSingleOp(), emitDebugLabelComment(), llvm::MipsAsmPrinter::emitDebugValue(), emitDebugValueComment(), llvm::WebAssemblyAsmPrinter::emitEndOfAsmFile(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::SITargetLowering::emitExpandAtomicRMW(), emitFloatCompareMask(), emitFPutC(), emitFPutS(), emitFWrite(), emitGEPOffset(), emitGlobalConstantImpl(), emitHotColdNew(), emitHotColdNewAligned(), emitHotColdNewAlignedNoThrow(), emitHotColdNewNoThrow(), emitHotColdSizeReturningNew(), emitHotColdSizeReturningNewAligned(), llvm::PredicateInfoAnnotatedWriter::emitInstructionAnnot(), llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelArg(), emitLibCall(), llvm::XtensaTargetAsmStreamer::emitLiteral(), llvm::XtensaAsmPrinter::emitMachineConstantPoolEntry(), emitMalloc(), emitMemCpyChk(), emitMemcpyExpansion(), emitMemsetExpansion(), llvm::AArch64SelectionDAGInfo::EmitMOPS(), llvm::AsmPrinter::emitPCSections(), emitPutChar(), emitPutS(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemcmp(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::LanaiSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::RISCVSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), emitTargetTaskProxyFunction(), emitTransformedIndex(), emitUnaryFloatFnCallHelper(), emitX86ScalarSelect(), emitX86Select(), llvm::ARMAsmPrinter::emitXXStructor(), llvm::orc::enableDebuggerSupport(), encodeVecTypeHint(), llvm::VPAllSuccessorsIterator< VPBlockBase * >::end(), llvm::ARMException::endFunction(), llvm::CodeViewDebug::endFunctionImpl(), llvm::DwarfDebug::endModule(), llvm::BaseIndexOffset::equalBaseIndex(), llvm::GVNExpression::CallExpression::equals(), llvm::GVNExpression::StoreExpression::equals(), equivalentAddressValues(), equivalentArrayTypeFromVector(), llvm::SCEVExpander::eraseDeadInstructions(), llvm::objcarc::BundledRetainClaimRVs::eraseInst(), eraseLifetimeMarkersOnInputs(), eraseTerminatorAndDCECond(), llvm::SetTheory::evaluate(), llvm::MCExpr::evaluateAsRelocatableImpl(), EvaluateExpression(), llvm::Evaluator::EvaluateFunction(), evaluateICmpRelation(), evaluateInDifferentElementOrder(), llvm::InstCombinerImpl::EvaluateInDifferentType(), evaluatePtrAddRecAtMaxBTCWillNotWrap(), llvm::VPReductionRecipe::execute(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPWidenSelectRecipe::execute(), llvm::objcopy::executeObjcopyOnBinary(), llvm::ELFObjectWriter::executePostLayoutBinding(), Expand64BitShift(), expandAnyOrAllIntrinsic(), expandAtomicMemCpyAsLoop(), expandBinOp(), expandBufferLoadIntrinsic(), expandBufferStoreIntrinsic(), expandDivision(), llvm::TargetLowering::expandDIVREMByConstant(), expandf64Toi32(), expandFloatDotIntrinsic(), expandFromPrimitiveShadowRecursive(), expandFSH64(), expandIntegerDotIntrinsic(), expandIsFPClass(), expandMemCpyAsLoop(), expandMemMoveAsLoop(), expandMul(), expandNormalizeIntrinsic(), llvm::HexagonInstrInfo::expandPostRAPseudo(), expandPow(), ExpandPowI(), expandRemainder(), llvm::VPlanTransforms::expandSCEVs(), expandStepIntrinsic(), llvm::TargetLowering::expandUnalignedStore(), expandUser(), expandVecReduceAdd(), expansionIntrinsics(), exportKernelRuntimeHandles(), ExtractBitFromMaskVector(), llvm::memprof::extractCallsFromIR(), llvm::CodeExtractor::extractCodeRegion(), extractConstantBits(), extractConstantMask(), extractEquivalentCondition(), ExtractImmediate(), extractMDNode(), llvm::hlsl::rootsig::extractMdStringValue(), extractProbe(), extractProfTotalWeight(), extractPtrauthBlendDiscriminators(), extractPtrauthBlendDiscriminators(), ExtractSymbol(), ExtractTypeInfo(), extractValues(), extractWidenableCondition(), factorizeMathWithShlOps(), factorizeMinMaxTree(), llvm::AArch64TargetLowering::fallBackToDAGISel(), llvm::RISCVTargetLowering::fallBackToDAGISel(), feedsIntoVectorReduction(), fillMapFromAssume(), filterDeadComdatFunctions(), FilterHelper(), llvm::DIBuilder::finalize(), llvm::objcopy::elf::ELFWriter< ELFT >::finalize(), llvm::PPCInstrInfo::finalizeInsInstrs(), llvm::ThreadSafeTrieRawHashMapBase::find(), findAddRecForLoop(), llvm::MachObjectWriter::findAliasedSymbol(), FindAllMemoryUses(), findAllocaForValue(), llvm::CodeExtractor::findAllocas(), findArgParts(), findArgumentCopyElisionCandidates(), findArrayDimensionsRec(), findAvailablePtrLoadStore(), findBaseDefiningValue(), findBaseDefiningValueOfVector(), findBaseObject(), findBasePointer(), findBestNonTrivialUnswitchCandidate(), findBuildAggregateRec(), FindCallBrs(), llvm::orc::SpeculateQuery::findCalles(), findCallsAtConstantOffset(), findCanonNumsForPHI(), findCommonType(), findConsecutiveLoad(), findDbgIntrinsics(), findDemandedEltsByAllUsers(), findDemandedEltsBySingleUser(), findDevirtualizableCallsForTypeCheckedLoad(), findDevirtualizableCallsForTypeTest(), findDominatingValue(), findEltLoadSrc(), findExtractedInputToOverallInputMapping(), findExtractedOutputToOverallOutputMapping(), findFuncPointers(), findGlobalCtors(), findHeaderMask(), findHistogram(), findInitTrampoline(), findInitTrampolineFromAlloca(), findInitTrampolineFromBB(), findInnerReductionPhi(), FindInOperandList(), FindInsertedValue(), llvm::SCEVExpander::findInsertPointAfter(), findInsertPos(), findIVOperand(), findLoadCallsAtConstantOffset(), findLocationForEntrySafepoint(), findMemSDNode(), llvm::SelectionDAGBuilder::FindMergedConditions(), findOptionMDForLoopID(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), findOrCreatePHIInBlock(), llvm::slpvectorizer::BoUpSLP::findPartiallyOrderedLoads(), findPartitions(), findPHIForConditionForwarding(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), findPreviousSpillSlot(), findRefEdges(), findRematerializableChainToBasePointer(), findRematerializationCandidates(), findReturnsToZap(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), findSafeStoreForStoreStrongContraction(), findScalarElement(), findSelectThroughCast(), FindSingleBitChange(), FindSingleUseIdentifiedObject(), findSplitCandidate(), findStackProtectorIntrinsic(), findStoresToUninstrumentedArgAllocas(), findUniqueStoreInBlocks(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::findUnmergeThatDefinesReg(), findUnwindDestinations(), findUsedValues(), findUses(), findValueInfoForFunc(), FindWidenableTerminatorAboveLoop(), llvm::DwarfCompileUnit::finishEntityDefinition(), fitArgInto64Bits(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::fixAliaseeLinks(), fixI8UseChain(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), fixReductionScalarResumeWhenVectorizingEpilog(), fixupDebugInfoPostExtraction(), fixupFPReturnAndCall(), FixupKind(), fixupLineNumbers(), FlushFPConstant(), llvm::BinOpInit::Fold(), llvm::ExistsOpInit::Fold(), llvm::FieldInit::Fold(), llvm::FoldOpInit::Fold(), llvm::InstancesOpInit::Fold(), llvm::IsAOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::UnOpInit::Fold(), llvm::AMDGPULibCalls::fold(), foldAbsDiff(), foldADDIForFasterLocalAccesses(), foldAddSubBoolOfMaskedVal(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), llvm::InstCombinerImpl::foldAllocaCmp(), llvm::TargetFolder::FoldBinaryIntrinsic(), llvm::ConstantFolder::FoldBinOp(), llvm::TargetFolder::FoldBinOp(), foldBinOpIntoSelectIfProfitable(), foldBinOpIntoSelectIfProfitable(), llvm::InstCombinerImpl::foldBinOpIntoSelectOrPhi(), llvm::InstCombinerImpl::foldBinOpShiftWithShift(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), FoldBitCast(), foldBitCastSelect(), foldBitwiseLogicWithIntrinsics(), foldBranchToCommonDest(), llvm::ConstantFolder::FoldCast(), llvm::TargetFolder::FoldCast(), foldCastShuffle(), llvm::ConstantFolder::FoldCmp(), llvm::TargetFolder::FoldCmp(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldCondBranchOnValueKnownInPredecessorImpl(), foldConstant(), llvm::SelectionDAG::FoldConstantArithmetic(), foldConstantInsEltIntoShuffle(), llvm::InstCombinerImpl::foldDeadPhiWeb(), foldDependentIVs(), llvm::ConstantFolder::FoldExactBinOp(), llvm::TargetFolder::FoldExactBinOp(), llvm::ConstantFolder::FoldExtractElement(), llvm::TargetFolder::FoldExtractElement(), foldExtractSubvectorFromShuffleVector(), llvm::ConstantFolder::FoldExtractValue(), llvm::TargetFolder::FoldExtractValue(), foldFCmpToFPClassTest(), foldFDivPowDivisor(), foldFDivSqrtDivisor(), llvm::AMDGPUTargetLowering::foldFreeOpFromSelect(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), llvm::ConstantFolder::FoldGEP(), llvm::TargetFolder::FoldGEP(), llvm::InstCombinerImpl::foldGEPICmp(), foldGEPOfPhi(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpAndShift(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpBitCast(), llvm::InstCombinerImpl::foldICmpCommutative(), foldICmpEqualityWithOffset(), llvm::InstCombinerImpl::foldICmpInstWithConstant(), llvm::InstCombinerImpl::foldICmpInstWithConstantAllowPoison(), llvm::InstCombinerImpl::foldICmpInstWithConstantNotInt(), foldICmpIntrinsicWithIntrinsic(), foldICmpOrChain(), llvm::InstCombinerImpl::foldICmpWithCastOp(), llvm::InstCombinerImpl::foldICmpWithConstant(), foldICmpWithDominatingICmp(), llvm::InstCombinerImpl::foldICmpWithTrunc(), llvm::InstCombinerImpl::foldICmpWithZextOrSext(), foldIdentityPaddedShuffles(), foldIdentityShuffles(), foldInsEltIntoIdentityShuffle(), foldInsEltIntoSplat(), llvm::ConstantFolder::FoldInsertElement(), llvm::TargetFolder::FoldInsertElement(), llvm::ConstantFolder::FoldInsertValue(), llvm::TargetFolder::FoldInsertValue(), foldInsSequenceIntoSplat(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), foldIntrinsicUsingDistributiveLaws(), foldLibCalls(), foldLoadsRecursive(), foldLogicCastConstant(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldMemChr(), foldMinimumMaximumSharedOp(), foldMinMaxSharedOp(), foldNegativePower2AndShiftedMask(), llvm::ConstantFolder::FoldNoWrapBinOp(), llvm::TargetFolder::FoldNoWrapBinOp(), llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::FoldOpIntoSelect(), foldOrCommuteConstant(), foldPatternedLoads(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgZextsIntoPHI(), foldPHINodeOrSelectInst(), llvm::InstCombinerImpl::foldPtrToIntOfGEP(), foldReductionIdiom(), FoldReturnIntoUncondBranch(), llvm::ConstantFolder::FoldSelect(), llvm::TargetFolder::FoldSelect(), llvm::InstCombinerImpl::foldSelectICmp(), foldSelectICmpAndBinOp(), foldSelectICmpAndZeroShl(), foldSelectInst(), llvm::InstCombinerImpl::foldSelectIntoOp(), llvm::InstCombinerImpl::foldSelectOpOp(), llvm::InstCombinerImpl::foldSelectShuffle(), foldSelectShuffleOfSelectShuffle(), foldSelectZeroOrFixedOp(), llvm::SelectionDAG::FoldSetCC(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldShiftedShift(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldShiftOfShiftedBinOp(), foldShuffleOfUnaryOps(), llvm::ConstantFolder::FoldShuffleVector(), llvm::TargetFolder::FoldShuffleVector(), FoldSingleEntryPHINodes(), foldSubOfMinMax(), llvm::SelectionDAG::FoldSymbolOffset(), foldTruncInsEltPair(), foldTwoEntryPHINode(), llvm::ConstantFolder::FoldUnOpFMF(), llvm::TargetFolder::FoldUnOpFMF(), llvm::InstCombinerImpl::foldUsingDistributiveLaws(), llvm::InstCombinerImpl::foldVectorBinop(), foldVectorCmp(), foldVectorXorShiftIntoCmp(), followLCSSA(), forEachCall(), ForeachDagApply(), ForeachHelper(), foreachMemoryAccess(), llvm::ScalarEvolution::forgetLcssaPhiWithNewPredecessor(), llvm::ScalarEvolution::forgetValue(), formatTypeName(), formLCSSAForInstructionsImpl(), formSplatFromShuffles(), forwardHandleAccesses(), forwardStoredOnceStore(), funcReturnsFirstArgOfCall(), llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(), gatherPossiblyVectorizableLoads(), generateKeySubkey(), generateLoopLatchCheck(), generateNewInstTree(), generateParamAccessSummary(), generateReproducer(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedRemainderCode(), GEPToVectorIndex(), llvm::CmpPredicate::get(), llvm::ConstantFP::get(), llvm::ConstantFP::get(), llvm::ConstantFP::get(), llvm::ConstantInt::get(), llvm::ConstantInt::get(), llvm::ValueAsMetadata::get(), llvm::PPC::get_VSPLTI_elt(), getAArch64Cmp(), llvm::GlobalValue::getAbsoluteSymbolRange(), getAccessType(), getADAEntry(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::DbgAssignIntrinsic::getAddress(), getAddressAccessSCEV(), getAddressSpace(), llvm::Constant::getAggregateElement(), llvm::Constant::getAggregateElement(), getAggregateSize(), getAlign(), llvm::SCEVExpander::getAllInsertedInstructions(), llvm::AllocaInst::getAllocationSize(), getAllocFnKind(), getAllocSize(), llvm::Constant::getAllOnesValue(), getAnnotation(), llvm::ScalarEvolution::getAnyExtendExpr(), getAnyNonZeroConstInt(), getAppleRuntimeUnrollPreferences(), llvm::objcarc::GetARCInstKind(), llvm::IRPosition::getArg(), getArgSPIRVType(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::GCNTTIImpl::getArithmeticInstrCost(), llvm::SystemZTTIImpl::getArithmeticInstrCost(), llvm::TargetTransformInfo::getArithmeticInstrCost(), llvm::TargetTransformInfoImplBase::getArithmeticInstrCost(), llvm::WebAssemblyTTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), getARMIndexedAddressParts(), getAsMetadata(), getAsMetadata(), llvm::SITargetLowering::getAsmOperandConstVal(), getAsNonOpaqueConstant(), llvm::at::getAssignmentInfo(), getAssignmentInfoImpl(), llvm::IRPosition::getAssociatedFunction(), llvm::AMDGPUTargetMachine::getAssumedAddrSpace(), llvm::NVPTXTTIImpl::getAssumedAddrSpace(), llvm::Attributor::getAssumedConstant(), getAtomicElemTy(), llvm::TargetLoweringBase::getAtomicMemOperandFlags(), getAtomicSyncScopeID(), llvm::IRPosition::getAttrList(), llvm::IRPosition::getAttrListAnchor(), getAvailableLoadStore(), getAVX2GatherNode(), getAVX512Node(), llvm::GlobalValueSummary::getBaseObject(), llvm::GlobalValueSummary::getBaseObject(), getBaseObjectSize(), getBaseType(), llvm::DebugHandlerBase::getBaseTypeSize(), getBaseValues(), llvm::objcarc::GetBasicARCInstKind(), llvm::CtxProfAnalysis::getBBInstrumentation(), llvm::IRSimilarity::IRInstructionData::getBlockOperVals(), getBoolVecFromMask(), getBoundsCheckCond(), getBranchCondString(), getBranchWeights(), llvm::object::getBuildID(), getCallArgsTotalAllocaSize(), getCalledFunction(), getCalledFunction(), llvm::AbstractCallSite::getCalledFunction(), getCallOpcode(), llvm::CtxProfAnalysis::getCallsiteInstrumentation(), llvm::Loop::getCanonicalInductionVariable(), llvm::Loop::LoopBounds::getCanonicalPredicate(), llvm::CallBase::getCaptureInfo(), getCaseResults(), llvm::TargetTransformInfo::getCastContextHint(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCastInstrCost(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::CastInst::getCastOpcode(), getCastsForInductionPHI(), llvm::dxil::ResourceTypeInfo::getCBufferSize(), getCleanupRetUnwindDest(), getCleanupRetUnwindDest(), llvm::DoNothingMemorySSAWalker::getClobberingMemoryAccess(), llvm::DoNothingMemorySSAWalker::getClobberingMemoryAccess(), getCmpOperandFoldingProfit(), getCmpOpsType(), llvm::SystemZTTIImpl::getCmpSelInstrCost(), getCodeModel(), llvm::PPCSubtarget::getCodeModel(), llvm::InstCostVisitor::getCodeSizeSavingsForArg(), getCombineLoadStoreParts(), llvm::GlobalValue::getComdat(), getConstant(), llvm::GFConstant::getConstant(), llvm::GIConstant::getConstant(), getConstantAt(), getConstantDataArrayInfo(), getConstantEvolvingPHI(), getConstantEvolvingPHIOperands(), getConstantInt(), getConstantLaneNumOfExtractHalfOperand(), llvm::VNCoercion::getConstantMemInstValueForLoad(), getConstantPart(), llvm::BuildVectorSDNode::getConstantRawBits(), llvm::TargetTransformInfoImplBase::getConstantStrideStep(), llvm::ExecutionEngine::getConstantValue(), getConstantValue(), getConstInt(), llvm::InductionDescriptor::getConstIntStepValue(), getConstrainedIntrinsicID(), llvm::SIRegisterInfo::getConstrainedRegClassForOperand(), llvm::PredicateBase::getConstraint(), getContainedTypes(), llvm::BasicBlock::getContext(), getContextInstForUse(), getConvergenceEntry(), true::getConvergenceTokenInternal(), getCopyOf(), llvm::AnyCoroIdInst::getCoroAlloc(), llvm::AnyCoroIdInst::getCoroBegin(), llvm::AnyCoroSuspendInst::getCoroSave(), llvm::CoroSuspendInst::getCoroSave(), getCost(), llvm::DIGenericSubrange::getCount(), llvm::DISubrange::getCount(), llvm::object::ELFObjectFileBase::getCrelDecodeProblem(), llvm::IRPosition::getCtxI(), getDagArgNoByKey(), llvm::InstrProfCorrelator::getDataSize(), getDebugLocFromInstOrOperands(), getDefInstrMaybeConstant(), llvm::DeltaTree::getDeltaAt(), llvm::MemoryDependenceResults::getDependency(), llvm::Loop::LoopBounds::getDirection(), llvm::DWARFContext::getDWOCompileUnitForHash(), llvm::orc::getDylibInterfaceFromDylib(), getEdgeKind(), llvm::DOTGraphTraits< DOTFuncInfo * >::getEdgeSourceLabel(), getEffectiveTerminator(), getEHPadFromPredecessor(), llvm::ListInit::getElementAsRecord(), llvm::ConstantAggregateZero::getElementCount(), getElementIndex(), llvm::ScalarEvolution::getElementSize(), llvm::ConstantDataSequential::getElementType(), getELFSectionNameForGlobal(), getEnqueuedBlockSymbolName(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::ConstantExpr::getExactLogBase2(), getExactSDiv(), llvm::ConstrainedFPIntrinsic::getExceptionBehavior(), llvm::ARMConstantPoolValue::getExistingMachineCPValueImpl(), llvm::CSKYConstantPoolValue::getExistingMachineCPValueImpl(), llvm::XtensaConstantPoolValue::getExistingMachineCPValueImpl(), llvm::VPBlockBase::getExitingBasicBlock(), llvm::VPBlockBase::getExitingBasicBlock(), getExpandedStep(), getExpectedExitLoopLatchBranch(), llvm::sandboxir::Utils::getExpectedType(), llvm::sandboxir::Utils::getExpectedValue(), llvm::TargetLoweringObjectFileXCOFF::getExplicitSectionGlobal(), getExpressionForConstant(), llvm::BasicTTIImplBase< BasicTTIImpl >::getExtendedReductionCost(), llvm::Type::getExtendedType(), getExtendTypeForNode(), llvm::vfs::RedirectingFileSystem::LookupResult::getExternalRedirect(), getExtractIndex(), getExtractWithExtendCost(), getFalkorUnrollingPreferences(), llvm::ConstantInt::getFalse(), llvm::TypedInit::getFieldType(), getFlippedStrictnessPredicateAndConstant(), llvm::MemoryLocation::getForArgument(), getFPSequenceIfElementsMatch(), llvm::InstCombiner::getFreelyInvertedImpl(), getFreezeInsertPt(), llvm::ProfileSummary::getFromMD(), llvm::AMDGPULibFuncBase::Param::getFromTy(), getFunction(), getFunctionAtVTableOffset(), GetFunctionFromMDNode(), getGatherNode(), getGatherScatterIndex(), llvm::ARMTTIImpl::getGatherScatterOpCost(), llvm::X86TTIImpl::getGatherScatterOpCost(), getGatherScatterScale(), llvm::GCStatepointInst::getGCRelocates(), getGCResultLocality(), llvm::SIInstrInfo::getGenericInstructionUniformity(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), getGEPCosts(), llvm::ScalarEvolution::getGEPExpr(), llvm::DataLayout::getGEPIndexForOffset(), llvm::GetElementPtrInst::getGEPReturnType(), getGEPSmallConstantIntOffsetV(), llvm::ConstantExpr::getGetElementPtr(), getGlobalTypeString(), getGlobalVariable(), llvm::AsmPrinter::getGVAlignment(), llvm::MDNodeKeyImpl< DISubrange >::getHashValue(), getHashValueImpl(), getHiPELiteral(), getHistogramCost(), llvm::MemoryAccess::getID(), llvm::ConstantExpr::getIdentity(), getIdiomaticVectorType(), GetIfCondition(), llvm::ConstantDataSequential::getImpl(), llvm::SCEVWrapPredicate::getImpliedFlags(), llvm::RISCVTargetLowering::getIndexedAddressParts(), llvm::ExtractValueInst::getIndexedType(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIndexedVectorInstrCostFromEnd(), getIndexExpressionsFromGEP(), llvm::DataLayout::getIndexType(), GetInductionVariable(), llvm::ConstantFP::getInfinity(), llvm::CoroIdInst::getInfo(), llvm::AA::getInitialValueForObj(), getInitialValueOfAllocation(), getInlinableCS(), getInlineSpirvType(), getInnerLoopGuardCmp(), llvm::GEPOperator::getInRange(), getInsertExtractIndex(), getInsertPointForUses(), getInsertPt(), getInsertPt(), llvm::coro::Shape::getInsertPtAfterFramePtr(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::HexagonTTIImpl::getInstructionCost(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::NVPTXTTIImpl::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::Constant::getIntegerValue(), llvm::AMDGPU::getInterestingMemoryOperands(), llvm::DataLayout::getIntPtrType(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), llvm::ARMTTIImpl::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::X86TTIImpl::getIntrinsicInstrCost(), getIntSequenceIfElementsMatch(), getInvariantGroupClobberingInstruction(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getInvertedVectorForFMA(), llvm::SCEVExpander::getIVIncOperand(), getIVIncrement(), getJumpThreadDuplicationCost(), llvm::TargetLoweringObjectFile::getKindForGlobal(), getKnowledgeFromBundle(), getKnownConstant(), getKnownUndefForVectorBinop(), getKnownValueOnEdge(), getLAScore(), llvm::Loop::getLatchCmpInst(), llvm::InstCostVisitor::getLatencySavingsForKnownConstants(), llvm::MemIntrinsicBase< Derived >::getLengthInBytes(), GetLinearExpression(), getLinkedToSymbol(), llvm::BinOpInit::getListConcat(), getLLTForType(), getLoadsAndStores(), getLoadStoreAddressSpace(), getLoadStoreAlignment(), getLoadStorePointerOperand(), getLoadStoreStride(), getLoadStoreType(), getLocalFunctionMetadata(), getLocalScopeLocationOr(), GetLocation(), getLocation(), llvm::Loop::getLocRange(), getLoopConvergenceHeart(), llvm::Loop::getLoopGuardBranch(), llvm::ScalarEvolution::getLoopInvariantExitCondDuringFirstIterations(), llvm::ScalarEvolution::getLoopInvariantExitCondDuringFirstIterationsImpl(), llvm::ScalarEvolution::getLoopInvariantPredicate(), getLoopPhiForCounter(), getLoopVariantGEPOperand(), llvm::ScalarEvolution::getLosslessPtrToIntExpr(), llvm::DIGenericSubrange::getLowerBound(), llvm::DISubrange::getLowerBound(), llvm::sandboxir::VecUtils::getLowest(), llvm::HexagonTargetObjectFile::getLutUsedFunction(), getMainAltOpsNoStateVL(), getMangledTypeStr(), getMask(), llvm::VECustomDAG::getMaskBroadcast(), llvm::X86TTIImpl::getMaskedMemoryOpCost(), getMaskedTypeForICmpPair(), getMaxByValAlign(), getMaxByValAlign(), llvm::GEPOperator::getMaxPreservedAlignment(), getMaybeBitcastedCallee(), getMDNodeOperandImpl(), getMemCmpLoad(), llvm::SelectionDAG::getMemcpy(), getMemcpyLoadsAndStores(), llvm::VNCoercion::getMemInstValueForLoad(), llvm::SelectionDAG::getMemmove(), getMemmoveLoadsAndStores(), getMemOperands(), GetMemOpSize(), llvm::BasicAAResult::getMemoryEffects(), llvm::CallBase::getMemoryEffects(), llvm::NVPTXAAResult::getMemoryEffects(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::GCNTTIImpl::getMemoryOpCost(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::X86TTIImpl::getMemoryOpCost(), getMemoryPtr(), llvm::SelectionDAG::getMemset(), getMemSetPattern16Value(), getMemSetPatternValue(), getMemsetStores(), getMemsetValue(), llvm::TargetLoweringBase::getMemValueType(), getMemVTFromNode(), llvm::DILocation::getMergedLocation(), llvm::MDNode::getMergedProfMetadata(), getMetadataTypeOrder(), getMetadataTypeOrder(), llvm::memprof::getMIBAllocType(), getMinimumFPType(), llvm::AArch64TTIImpl::getMinMaxReductionCost(), getMMOFrameID(), getMnemonicOpsEndInd(), llvm::AAResults::getModRefInfo(), llvm::AAResults::getModRefInfo(), llvm::AAResults::getModRefInfo(), llvm::BasicAAResult::getModRefInfo(), llvm::GlobalsAAResult::getModRefInfo(), llvm::BasicAAResult::getModRefInfoMask(), getModuleFromVal(), llvm::TargetLoweringObjectFileELF::getModuleMetadata(), llvm::TargetLoweringObjectFileWasm::getModuleMetadata(), llvm::symbolize::SymbolizableObjectFile::getModulePreferredBase(), GetMOForConstDbgOp(), llvm::MDNode::getMostGenericAliasScope(), llvm::ScalarEvolution::getMulExpr(), llvm::DIScope::getName(), llvm::ConstantFP::getNaN(), llvm::ScalarEvolution::getNegativeSCEV(), getNewAlignment(), getNewAlignmentDiff(), getNewDefiningAccessForClone(), llvm::ThreadSafeTrieRawHashMapBase::getNextTrie(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), getNodeChain(), getNodePassthru(), getNodeRegMask(), llvm::DDGBuilder::getNodesInPiBlock(), llvm::DILocalScope::getNonLexicalBlockFileScope(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), getNonPhiOperand(), getNoopInput(), llvm::ScalarEvolution::getNotSCEV(), llvm::IRPosition::getNumArgs(), llvm::BasicTTIImplBase< BasicTTIImpl >::getNumberOfParts(), llvm::GCNTTIImpl::getNumberOfParts(), llvm::ThreadSafeTrieRawHashMapBase::getNumBits(), getNumElements(), llvm::ConstantDataSequential::getNumElements(), llvm::UndefValue::getNumElements(), getNumGlobalVariableUses(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::sandboxir::VecUtils::getNumLanes(), llvm::ARMTTIImpl::getNumMemOps(), getNumOfCalls(), llvm::ThreadSafeTrieRawHashMapBase::getNumSlotUsed(), llvm::orc::getObjectFileInterface(), getOCLKernelArgAttribute(), getOffloadingArrayType(), getOffsetFromIndices(), getOneTrueElt(), getOnlyLiveSuccessor(), llvm::Operator::getOpcode(), llvm::Operator::getOpcode(), getOperandAsUnsigned(), llvm::TargetTransformInfo::getOperandInfo(), llvm::BasicTTIImplBase< BasicTTIImpl >::getOperandsScalarizationOverhead(), llvm::DagInit::getOperatorAsDef(), llvm::MipsTargetLowering::getOpndList(), getOptimizableIVOf(), getOptimizationFlags(), llvm::dxil::DXILBitcodeWriter::getOptimizationFlags(), llvm::MemoryUseOrDef::getOptimized(), getOptionalVal(), llvm::SPIRVGlobalRegistry::getOrAddMemAliasingINTELInst(), llvm::LexicalScopes::getOrCreateAbstractScope(), llvm::SPIRVGlobalRegistry::getOrCreateConstNullPtr(), llvm::DwarfCompileUnit::getOrCreateContextDIE(), llvm::DwarfUnit::getOrCreateContextDIE(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), llvm::sandboxir::Context::getOrCreateValueInternal(), llvm::vputils::getOrCreateVPValueForSCEVExpr(), getOriginalFunctionType(), getOtherIncomingValue(), getOuterLoopLatchCmp(), llvm::ARMBaseInstrInfo::getOutliningTypeImpl(), getParent(), getParentPad(), getParentPad(), getPdbPathFromExe(), getPermuteMask(), llvm::memoryaccess_def_iterator_base< MemoryAccess >::getPhiArgBlock(), getPointeeType(), getPointerAtOffset(), llvm::ScalarEvolution::getPointerBase(), getPointerConstIncrement(), llvm::MemoryDependenceResults::getPointerDependencyFrom(), getPointerOperand(), getPointerOperand(), getPointerOperandAndType(), getPointerOperandIndex(), llvm::RISCVTTIImpl::getPointersChainCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getPointersChainCost(), llvm::X86TTIImpl::getPointersChainCost(), llvm::ExecutionEngine::getPointerToGlobal(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), llvm::AVRTargetLowering::getPostIndexedAddressParts(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), llvm::RISCVTargetLowering::getPostIndexedAddressParts(), getPotentialCopiesOfMemoryValue(), getPowerOf2Factor(), getPownType(), llvm::LazyValueInfo::getPredicateAt(), llvm::LazyValueInfo::getPredicateAt(), llvm::AMDGPUTargetMachine::getPredicatedAddrSpace(), llvm::NVPTXTargetMachine::getPredicatedAddrSpace(), getPredicatedMask(), getPredicatedThenBlock(), getPreferredExtendForValue(), getPrefetchNode(), llvm::ARMTargetLowering::getPreIndexedAddressParts(), llvm::AVRTargetLowering::getPreIndexedAddressParts(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), llvm::RISCVTargetLowering::getPreIndexedAddressParts(), getPreStartForExtend(), llvm::RecordVal::getPrintType(), getPromotedType(), llvm::NVPTXTargetLowering::getPrototype(), getPtrStride(), llvm::ConstantFP::getQNaN(), GetQuadraticEquation(), getRange(), getRange(), getRange(), GetRangeFromMetadata(), llvm::Init::getRecordKeeper(), getRecurrenceVar(), getReducedType(), getReductionInstr(), llvm::RecurrenceDescriptor::getReductionOpChain(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::GlobalIFunc::getResolverFunction(), llvm::dxil::getResourceNameFromBindingCall(), llvm::GEPOperator::getResultElementType(), getRetainedNodeScope(), getRetComponentType(), llvm::coro::Shape::getRetconResultTypes(), llvm::objcarc::getreturnRVOperand(), llvm::ConstrainedFPIntrinsic::getRoundingMode(), getSalvageOpsForBinOp(), getSalvageOpsForIcmpOp(), getSameOpcode(), getScalarMaskingNode(), getScatterNode(), llvm::DIScope::getScope(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getScoreAtLevelRec(), llvm::GlobalValue::getSection(), llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(), llvm::ELFYAML::Object::getSectionHeaderTable(), getSectionID(), llvm::objcopy::elf::SectionTableRef::getSectionOfType(), llvm::ELFYAML::Object::getSections(), llvm::CtxProfAnalysis::getSelectInstrumentation(), getSelectionForCOFF(), getSequenceIfElementsMatch(), llvm::ConstantAggregateZero::getSequentialElement(), llvm::PoisonValue::getSequentialElement(), llvm::UndefValue::getSequentialElement(), getSetupCost(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), ShapeCalculator::getShape(), getShiftedValue(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::ShuffleVectorInst::getShuffleMask(), getShuffleScalarElt(), llvm::DIVariable::getSignedness(), llvm::ScalarEvolution::getSignExtendExprImpl(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::AVRTargetLowering::getSingleConstraintMatchWeight(), llvm::SparcTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), getSingleMCSymbol(), llvm::DIVariable::getSizeInBits(), VectorSlice::getSlicedVal(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), getSMECallAttrs(), llvm::ConstantFP::getSNaN(), llvm::GEPOperator::getSourceElementType(), llvm::MipsCCState::getSpecialCallingConvForCallee(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::coro::getSpillInsertionPt(), llvm::ConstantDataVector::getSplat(), getSplatableConstant(), getSplatConstantFP(), getSplatValue(), llvm::Constant::getSplatValue(), getSplatValue(), llvm::VECustomDAG::getSplitPtrStride(), llvm::SelectionDAG::getStackArgumentTokenFactor(), getStartAndEndForAccess(), llvm::ThreadSafeTrieRawHashMapBase::getStartBit(), getStoredValue(), getSToVPermuted(), llvm::BinOpInit::getStrConcat(), llvm::ScalarEvolution::getStrengthenedNoWrapFlagsFromBinOp(), llvm::DIGenericSubrange::getStride(), llvm::DISubrange::getStride(), getStrideAndModOffsetOfGEP(), getStrideFromPointer(), GetStringLengthH(), llvm::dxil::ResourceTypeInfo::getStruct(), llvm::SCCPInstVisitor::getStructLatticeValueFor(), getSubprogram(), getSubprogram(), llvm::DILocalScope::getSubprogram(), getSuccPad(), getSummaryFromMD(), llvm::MachObjectWriter::getSymbolAddress(), llvm::ModuleSymbolTable::getSymbolFlags(), getSymbolInfo(), getSymbolSectionID(), getT2IndexedAddressParts(), getTargetConstantBitsFromNode(), llvm::RISCVTargetLowering::getTargetConstantFromLoad(), getTargetConstantFromNode(), getTargetConstantPoolFromBasePtr(), llvm::AMDGPU::getTargetExtType(), getTargetSection(), getTargetShuffleMask(), llvm::TargetLoweringObjectFileXCOFF::getTargetSymbol(), getTestBitOperand(), llvm::GCNTTIImpl::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::ThreadSafeTrieRawHashMapBase::getTriePrefixAsString(), llvm::ConstantInt::getTrue(), getTrueOrFalseValue(), getTrueOrFalseValue(), llvm::ScalarEvolution::getTruncateExpr(), llvm::GetElementPtrInst::getTypeAtIndex(), llvm::GetElementPtrInst::getTypeAtIndex(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), llvm::dxil::ResourceTypeInfo::getTyped(), getTypePartition(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingObject(), getUnderlyingObjectAggressive(), getUnderLyingObjectForBrevLdIntr(), getUnderlyingObjectFromInt(), getUnderlyingObjects(), getUniformBase(), llvm::Constant::getUniqueInteger(), getUnknownStore(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), GetUnrollMetadata(), getUnsignedMonotonicValues(), getUntaggedStoreAssignmentInfo(), getUnwindDestToken(), getUnwindDestTokenHelper(), llvm::DIGenericSubrange::getUpperBound(), llvm::DISubrange::getUpperBound(), llvm::ScalarEvolution::getURemExpr(), getUserBB(), llvm::AMDGPU::getUsesOfLDSByFunction(), getUUID(), llvm::SelectionDAG::getValidShiftAmountRange(), getValMD(), llvm::Record::getValueAsBit(), llvm::Record::getValueAsBitOrUnset(), llvm::Record::getValueAsBitsInit(), llvm::Record::getValueAsDag(), llvm::Record::getValueAsDef(), llvm::Record::getValueAsInt(), llvm::Record::getValueAsListInit(), llvm::Record::getValueAsListOfDefs(), llvm::Record::getValueAsListOfInts(), llvm::Record::getValueAsListOfStrings(), llvm::Record::getValueAsOptionalDef(), llvm::Record::getValueAsOptionalString(), llvm::Record::getValueAsString(), llvm::LazyValueInfoImpl::getValueAt(), llvm::LazyValueInfoImpl::getValueAtUse(), getValueFromICmpCtpop(), getValueFromMetadata(), llvm::ValueEnumerator::getValueID(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), getValueOnEdge(), getValueOnFirstIteration(), getValueType(), llvm::TargetLoweringBase::getValueType(), llvm::TGVarScope::getVar(), llvm::DbgVariableRecord::getVariableLocationOp(), llvm::RawLocationWrapper::getVariableLocationOp(), getVectorCallCosts(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), getVectorInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getVectorInstrCost(), llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(), llvm::VPlan::getVectorLoopRegion(), llvm::VPlan::getVectorLoopRegion(), llvm::SelectionDAG::getVectorShuffle(), getVFFromIndVar(), getVFScaleFactor(), getVFSEntries(), getVPermMask(), llvm::VPRecipeBuilder::getVPValueOrAddLiveIn(), getVShiftImm(), getVShiftImm(), getWideOperand(), llvm::Type::getWithNewType(), llvm::AA::getWithType(), llvm::ConstantFP::getZero(), llvm::ScalarEvolution::getZeroExtendExprImpl(), getzOSCalleeAndADA(), globalHasNVVMAnnotation(), handleArgs(), handleBrSelExpect(), HandleCallsInBlockInlinedThroughInvoke(), handleCompressedSection(), llvm::FastISel::handleDbgInfo(), llvm::SelectionDAGBuilder::handleDebugDeclare(), llvm::SelectionDAGBuilder::handleDebugValue(), handleIndirectSymViaGOTPCRel(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::VPlanTransforms::handleMaxMinNumReductions(), handleMemIntrinsicPtrUse(), handleNonPrevailingComdat(), handlePhiDef(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), handlePragmaClangSection(), llvm::ValueAsMetadata::handleRAUW(), handleSpaceCheckIntrinsics(), handleSwitchExpect(), llvm::InstructionWorklist::handleUseCountDecrement(), llvm::mdconst::hasa(), hasAIXSmallTLSAttr(), hasAllGatScatUsers(), llvm::GEPOperator::hasAllZeroIndices(), llvm::GetElementPtrInst::hasAllZeroIndices(), hasAnyUnrollPragma(), llvm::CallBase::hasArgumentWithAdditionalReturnCaptureComponents(), llvm::MipsTargetLowering::hasBitTest(), llvm::RISCVTargetLowering::hasBitTest(), hasBranchWeightOrigin(), hasCFUser(), hasChangeableCCImpl(), hasConcreteDefImpl(), llvm::X86TTIImpl::hasConditionalLoadStoreForType(), hasConstantFlag(), hasDistinctMetadataIntrinsic(), llvm::Constant::hasExactInverseFP(), hasExceptionPointerOrCodeUser(), hasGOTReference(), llvm::IRSimilarity::IRInstructionData::hash_value, hasLDSKernelArgument(), llvm::sandboxir::MemDGNode::hasMemPred(), llvm::SITargetLowering::hasMemSDNodeUser(), llvm::RecurrenceDescriptor::hasMultipleUsesOf(), hasNearbyPairedStore(), hasNonZeroFPOperands(), hasNoSignedWrap(), hasNoUnsignedWrap(), hasOnlyColdCalls(), hasOnlyOneNonZeroIndex(), hasOnlyUniformBranches(), hasPartialIVCondition(), llvm::Operator::hasPoisonGeneratingAnnotations(), llvm::Operator::hasPoisonGeneratingFlags(), hasProfileData(), hasReadOnlyFlag(), hasReturnsTwiceAttr(), hasSafeElideCaller(), HasSameValue(), llvm::ARMConstantPoolConstant::hasSameValue(), llvm::ARMConstantPoolMBB::hasSameValue(), llvm::ARMConstantPoolSymbol::hasSameValue(), llvm::XtensaConstantPoolConstant::hasSameValue(), llvm::XtensaConstantPoolJumpTable::hasSameValue(), llvm::XtensaConstantPoolMBB::hasSameValue(), llvm::XtensaConstantPoolSymbol::hasSameValue(), hasSideeffectFreeStaticResolution(), llvm::IndexedReference::hasSpacialReuse(), llvm::ConstantPtrAuth::hasSpecialAddressDiscriminator(), hasTocDataAttr(), hasUndefContents(), hasVolatileUser(), hasWriteOnlyFlag(), hasZeroSignBit(), haveNonOverlappingStorage(), hoistBOAssociation(), hoistConditionalLoadsStores(), hoistGEP(), hoistInsEltConst(), llvm::SCEVExpander::hoistIVInc(), llvm::GCNTTIImpl::hoistLaneIntrinsicThroughOperand(), hoistMulAddAssociation(), hoistRegion(), hoistValue(), hostParallelCallback(), identifyCallee(), llvm::Attributor::identifyDefaultAbstractAttributes(), identifyNoAliasScopesToClone(), identifyNoAliasScopesToClone(), ignoreOp(), llvm::SCEVComparePredicate::implies(), llvm::SCEVUnionPredicate::implies(), llvm::SCEVWrapPredicate::implies(), impliesPoison(), InBlock(), incDecVectorConstant(), llvm::ValueEnumerator::incorporateFunction(), indexReallyValid(), InferPointerInfo(), InferPointerInfo(), llvm::SelectionDAG::InferPtrAlign(), llvm::coro::AnyRetconABI::init(), llvm::coro::SwitchABI::init(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::IRSimilarity::IRInstructionData::initializeInstruction(), llvm::ExecutionEngine::InitializeMemory(), injectPendingInvariantConditions(), InlineFunctionImpl(), inlineRetainOrClaimRVCalls(), inRange(), inRange(), llvm::IRBuilderBase::Insert(), llvm::ThreadSafeTrieRawHashMapBase::insert(), llvm::objcarc::BundledRetainClaimRVs::insertAfterInvokes(), llvm::MemorySSAUpdater::insertDef(), insertParsePoints(), insertRelocationStores(), InsertRootInitializers(), insertSinCosCall(), insertSpills(), llvm::AArch64TargetLowering::insertSSPDeclarations(), llvm::ARMTargetLowering::insertSSPDeclarations(), llvm::X86TargetLowering::insertSSPDeclarations(), InsertStackProtectors(), insertTrivialPHIs(), llvm::MemorySSAUpdater::insertUse(), insertVector(), instCombineConvertFromSVBool(), llvm::ARMTTIImpl::instCombineIntrinsic(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVECmpNE(), instCombineSVEDup(), instCombineSVEDupqLane(), instCombineSVELast(), instCombineSVEPTest(), llvm::BTFDebug::InstLower(), llvm::GISelAddressing::instMayAlias(), InstrBreaksNoFree(), InstrBreaksNonConvergent(), InstrBreaksNonThrowing(), InstrBreaksNoSync(), instructionClobbersQuery(), instructionDoesNotReturn(), InstructionStoresToFI(), IntCondCCodeToICC(), interleaveStringList(), llvm::Attributor::internalizeFunctions(), llvm::IntrinsicCostAttributes::IntrinsicCostAttributes(), introduceTooManyPhiEntries(), llvm::MemorySSA::CachingWalker::invalidateInfo(), llvm::MemorySSA::SkipSelfWalker::invalidateInfo(), llvm::PhiValues::invalidateValue(), invertCondition(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::GlobalValue::isAbsoluteSymbolRef(), llvm::PPCTargetLowering::isAccessedAsGotIndirect(), isAddReduction(), llvm::SystemZSubtarget::isAddressedViaADA(), isAddressExpression(), isAddressUse(), isAllActivePredicate(), isAllConstantBuildVector(), isAllocaPromotable(), isAllocDisjoint(), isAllocSiteRemovable(), isAllOnesConstant(), llvm::Constant::isAllOnesValue(), isAllTrueMask(), isAlreadyNarrow(), isAlternateInstruction(), llvm::GCNTTIImpl::isAlwaysUniform(), llvm::object::isAMDGPU(), isAMustTailRetVal(), isAMXIntrinsic(), llvm::RecurrenceDescriptor::isAnyOfPattern(), isArchSpecifierInvalidOrMissing(), isArgumentOrArgumentLike(), isARMMCExpr(), llvm::AllocaInst::isArrayAllocation(), llvm::Attributor::isAssumedDead(), llvm::AA::isAssumedThreadLocalObject(), isAssumeLikeIntrinsic(), isAtomicRMWLegalIntTy(), isAtomicRMWLegalXChgTy(), llvm::Loop::isAuxiliaryInductionVariable(), XtensaOperand::isB4const(), XtensaOperand::isB4constu(), llvm::ScalarEvolution::isBasicBlockEntryGuardedByCond(), llvm::CastInst::isBitCastable(), llvm::CastInst::isBitOrNoopPointerCastable(), isBLACompatibleAddress(), isBlockInLCSSAForm(), isBlockValidForExtraction(), isBSwapHWordElement(), isBswapIntrinsicCall(), isBufferFatPtrOrVector(), isBytewiseValue(), llvm::AbstractCallSite::isCallee(), isCalleeLoad(), isCallPromotable(), IsCallReturnTwice(), llvm::VPWidenIntOrFpInductionRecipe::isCanonical(), llvm::SITargetLowering::isCanonicalized(), llvm::LoopVectorizationLegality::isCastedInductionVariable(), isChainSelectCmpBranch(), isCheckForZeroAndMulWithOverflow(), isClampZeroToOne(), isCleanupBlockEmpty(), llvm::AMDGPU::isClobberedInFunction(), llvm::IRSimilarity::isClose(), isCommutative(), llvm::CmpInst::isCommutative(), llvm::AMDGPULibFunc::isCompatibleSignature(), llvm::AArch64TargetLowering::isComplexDeinterleavingOperationSupported(), llvm::ARMTargetLowering::isComplexDeinterleavingOperationSupported(), llvm::FieldInit::isConcrete(), isConditionalOnXorOfPHIs(), llvm::RecurrenceDescriptor::isConditionalRdxPattern(), isConsecutiveLS(), llvm::SelectionDAG::isConstantIntBuildVectorOrConstantInt(), isConstantIntMetadataOperand(), isConstantIntVector(), IsConstantOffsetFromGlobal(), isConstantOne(), isConstantOrConstantVector(), isConstantOrConstantVector(), isConstantPowerOfTwo(), llvm::BuildVectorSDNode::isConstantSplat(), llvm::ISD::isConstantSplatVector(), isConstantSplatVectorMaskForType(), llvm::Constant::isConstantUsed(), llvm::TargetLowering::isConstFalseVal(), isConstOne(), isConstOrConstSplat(), isConstOrConstSplatFP(), isConstZero(), isDeadRecipe(), llvm::GlobalValue::isDeclaration(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), isDenselyPacked(), llvm::MachinePointerInfo::isDereferenceable(), isDereferenceableAndAlignedInLoop(), isDereferenceableAndAlignedPointer(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), llvm::AMDGPUTargetLowering::isDesirableToCommuteWithShift(), llvm::ARMTargetLowering::isDesirableToCommuteWithShift(), llvm::RISCVTargetLowering::isDesirableToCommuteWithShift(), llvm::AArch64TargetLowering::isDesirableToCommuteXorWithShift(), llvm::ARMTargetLowering::isDesirableToCommuteXorWithShift(), isDiagnosticEnabled(), isDirectCall(), llvm::X86Operand::isDispImm8(), llvm::GenericUniformityAnalysisImpl< ContextT >::isDivergentUse(), isDSAddress(), llvm::ConstantDataSequential::isElementTypeCompatible(), llvm::Constant::isElementWiseEqual(), llvm::CodeExtractor::isEligible(), isEligibleFunction(), isEligibleToFoldADDIForFasterLocalAccesses(), isEmptyFunction(), isEphemeralValueOf(), isEqualImpl(), llvm::SelectionDAG::isEqualTo(), llvm::X86MCExpr::isEqualTo(), isEscapeSource(), isExecuteOnlyFunction(), isExecuteOnlyFunction(), llvm::SelectionDAGBuilder::isExportableFromCurrentBlock(), isExtendedBUILD_VECTOR(), isExtendedBUILD_VECTOR(), isExtendOrShiftOperand(), llvm::ISD::isEXTLoad(), llvm::sandboxir::DGNode::isFenceLike(), llvm::RecurrenceDescriptor::isFindIVPattern(), llvm::Constant::isFiniteNonZeroFP(), isFirstInsertElement(), llvm::RecurrenceDescriptor::isFixedOrderRecurrence(), isFixedVectorShuffle(), isFloatDIType(), isFloatingPointZero(), isFloatingPointZero(), isFoldableInLoop(), llvm::SystemZTTIImpl::isFoldableLoad(), isFormingBranchFromSelectProfitable(), isFPExtLoad(), llvm::InductionDescriptor::isFPInductionPHI(), isFunction(), isFunctionMallocLike(), llvm::TargetLowering::isGAPlusOffset(), isGCPointerType(), isGEPKnownNonNull(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), llvm::RISCVELFTargetObjectFile::isGlobalInSmallSection(), isGOTEquivalentCandidate(), llvm::Mips::isGpOff(), isGuaranteedNotToBeUndefOrPoison(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), llvm::PPCSubtarget::isGVIndirectSymbol(), isHandledGCPointerType(), llvm::HardwareLoopInfo::isHardwareLoopCandidate(), llvm::ARMTTIImpl::isHardwareLoopProfitable(), llvm::PPCTTIImpl::isHardwareLoopProfitable(), llvm::VPBlockUtils::isHeader(), isHighCostExpansion(), isHomogeneousAggregate(), llvm::Instruction::isIdenticalTo(), isIFunc(), llvm::PatternMatch::immconstant_ty::isImmConstant(), llvm::X86Operand::isImmSExti16i8(), llvm::X86Operand::isImmSExti32i8(), llvm::X86Operand::isImmSExti64i32(), llvm::X86Operand::isImmSExti64i8(), llvm::X86Operand::isImmUnsignedi4(), llvm::X86Operand::isImmUnsignedi8(), isImpliedCondition(), isImpliedCondition(), isIndirectCall(), llvm::InductionDescriptor::isInductionPHI(), llvm::InductionDescriptor::isInductionPHI(), isInertARCValue(), isInlineableCall(), isInlineViable(), IsInSameBasicBlock(), llvm::AMDGPUTargetLowering::isInt64ImmLegal(), isInTailCallPosition(), isIntegerWideningViableForSlice(), isInteresting(), IsInterestingCmp(), isInterestingPHIIncomingValue(), isInterestingPointerComparison(), isInterestingPointerSubtraction(), llvm::ShuffleVectorInst::isInterleave(), isIntExtFree(), isIntImmediate(), isIntImmediate(), isIntrinsicCall(), isIntrinsicCall(), isIntrinsicOrLFToBeTailCalled(), isInvariantLoad(), isIVIncrement(), isKeyValuePair(), llvm::ConstantPtrAuth::isKnownCompatibleWith(), isKnownIntegral(), llvm::ScalarEvolution::isKnownMultipleOf(), llvm::SelectionDAG::isKnownNeverNaN(), isKnownNonEqual(), isKnownNonEqual(), isKnownNonNaN(), isKnownNonNull(), isKnownNonNullFromDominatingCondition(), isKnownNonZero(), isKnownNonZero(), isKnownNonZero(), llvm::ScalarEvolution::isKnownNonZero(), isKnownNonZeroFromOperator(), isKnownPositive(), isKnownToBeAPowerOfTwo(), llvm::ScalarEvolution::isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isKnownTypeIdMember(), llvm::TargetMachine::isLargeGlobalValue(), llvm::RISCVTargetLowering::isLegalInterleavedAccessType(), llvm::RISCVTTIImpl::isLegalMaskedCompressStore(), llvm::RISCVTTIImpl::isLegalMaskedExpandLoad(), llvm::AArch64TTIImpl::isLegalMaskedGatherScatter(), llvm::ARMTTIImpl::isLegalMaskedLoad(), llvm::AArch64TTIImpl::isLegalNTStoreLoad(), isLegalToPromote(), isLibFuncEmittable(), isLifetimeStart(), llvm::Instruction::isLifetimeStartOrEnd(), isLoadCombineCandidate(), isLoadInvariantInLoop(), isLoadOrMultipleLoads(), isLoadOrStore(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), isLoopDead(), isLoopExitTestBasedOn(), llvm::Loop::isLoopInvariant(), llvm::AArch64TargetLowering::isMaskAndCmp0FoldingBeneficial(), llvm::ARMTargetLowering::isMaskAndCmp0FoldingBeneficial(), llvm::RISCVTargetLowering::isMaskAndCmp0FoldingBeneficial(), llvm::SystemZTargetLowering::isMaskAndCmp0FoldingBeneficial(), isMaskedStoreOverwrite(), isMaskOrZero(), llvm::GlobalValue::isMaterializable(), isMathLibCallNoop(), llvm::sandboxir::DGNode::isMemDepCandidate(), llvm::sandboxir::DGNode::isMemDepNodeCandidate(), IsMemoryAssignmentError(), isMImm(), IsMinMaxConsistingOf(), llvm::RecurrenceDescriptor::isMinMaxPattern(), isMinSignedConstant(), llvm::Constant::isMinSignedValue(), isModifyingBinopOfNonZero(), isMulPowOf2(), llvm::CallBase::isMustTailCall(), llvm::Constant::isNaN(), isNaturalMemoryOperand(), llvm::Constant::isNegativeZeroValue(), isNestedPointer(), isNeverEqualToUnescapedAlloc(), isNoAliasCall(), isNoAliasOrByValArgument(), AliasScopeTracker::isNoAliasScopeDeclDead(), llvm::ISD::isNON_EXTLoad(), llvm::SCEV::isNonConstantNegative(), isNonEqualMul(), isNonEqualPointersWithRecursiveGEP(), isNonEqualSelect(), isNonEqualShl(), isNonEscapingGlobalNoAliasWithLoad(), llvm::DataLayout::isNonIntegralPointerType(), IsNonLocalValue(), llvm::AANoSync::isNonRelaxedAtomic(), isNonVolatileLoad(), isNonVolatileStore(), isNonZeroAVL(), isNonZeroSub(), isNoopPtrIntCastPair(), llvm::Constant::isNormalFP(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalMaskedLoad(), llvm::ISD::isNormalMaskedStore(), llvm::ISD::isNormalStore(), llvm::AA::isNoSyncInst(), llvm::AANoSync::isNoSyncIntrinsic(), isNotCrossLaneOperation(), llvm::Constant::isNotMinSignedValue(), llvm::Constant::isNotOneValue(), isNotUsedOrFoldableInLoop(), isNotVisibleOnUnwind(), isNullConstant(), isNullFPConstant(), IsNullTerminatedString(), llvm::Constant::isNullValue(), llvm::objcarc::IsObjCIdentifiedObject(), isObjectSizeLessThanOrEq(), isOneConstant(), isOneDimensionalArray(), llvm::Constant::isOneValue(), isOnlyCopiedFromConstantMemory(), isOnlyUsedByStores(), isOnlyUsedInComparisonWithZero(), isOnlyUsedInEqualityComparison(), isOpDefinedInBlock(), llvm::AArch64TargetLowering::isOpSuitableForLDPSTP(), llvm::AArch64TargetLowering::isOpSuitableForLSE128(), llvm::AArch64TargetLowering::isOpSuitableForRCPC3(), llvm::LoopVectorizationCostModel::isOptimizableIVTruncate(), llvm::MemoryUseOrDef::isOptimized(), isOrdered(), llvm::sandboxir::isOrdered(), isOrderedAtomic(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), isOverflowIntrinsicNoWrap(), isPCRel32Branch(), isPerfectIncrement(), isPointerOperand(), isPointerTyOrWrapper(), isPointerValueDeadOnEntryToFunction(), isPoisonShift(), isPossibleIndirectCallTarget(), llvm::AA::isPotentiallyAffectedByBarrier(), llvm::PHITransAddr::isPotentiallyPHITranslatable(), llvm::objcarc::IsPotentialRetainableObjPtr(), llvm::objcarc::IsPotentialRetainableObjPtr(), isPowerOf2Constant(), isPresplitCoroSuspendExitEdge(), llvm::ARMTTIImpl::isProfitableLSRChainElement(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::X86TTIImpl::isProfitableToSinkOperands(), isPromotedInstructionLegal(), IsPtrInBounds(), isPtrKnownNeverNull(), isPTruePromoted(), llvm::DominatorTree::isReachableFromEntry(), llvm::ARMTargetLowering::isReadOnly(), isReadOnlyData(), isReadOnlyLoop(), isReadWriteMemCall(), llvm::AMDGPU::isReallyAClobber(), isReassociableOp(), isReassociableOp(), isReferencingMDNode(), isRelocScattered(), isRemOfLoopIncrementWithLoopInvariant(), isRepeatedByteSequence(), isReportingError(), isRequiredForExecution(), isReturnNonNull(), isSafeAndProfitableToSinkLoad(), isSafeCheapLoadStore(), IsSafeComputationToRemove(), llvm::TargetFrameLowering::isSafeForNoCSROpt(), isSafeForNoNTrivialUnswitching(), isSafePHIToSpeculate(), llvm::Loop::isSafeToClone(), isSafeToDestroyConstant(), isSafeToExecuteUnconditionally(), llvm::SCEVExpander::isSafeToExpandAt(), isSafeToHoistInstr(), isSafeToLoadUnconditionally(), isSafeToMove(), isSafeToMoveBefore(), isSafeToSpeculateStore(), isSafeToSpeculativelyExecuteWithOpcode(), isSafeToTruncateWideIVType(), isSameCompare(), isSameUnderlyingObjectInLoop(), llvm::VPRecipeBase::isScalarCast(), isScaledConstantInRange(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), isSetCC(), llvm::ISD::isSEXTLoad(), isSHL16(), isShortenableAtTheEnd(), isSignedBFE(), isSignedMinMaxIntrinsicClamp(), isSignExtendedW(), isSignExtendedW(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSimm7(), isSimple(), isSimpleCastedPHI(), isSimpleEnoughValueToCommitHelper(), isSimpleIVUser(), isSimpleShift(), llvm::vputils::isSingleScalar(), llvm::GCNTTIImpl::isSourceOfDivergence(), llvm::NVPTXTTIImpl::isSourceOfDivergence(), llvm::TargetTransformInfo::isSourceOfDivergence(), isSpecialOpaqueType(), isSplat(), isSplatShuffle(), isSplatValue(), isSplitFatPtr(), isSpvIntrinsic(), isSpvIntrinsic(), isSRA16(), isSRL16(), llvm::sandboxir::DGNode::isStackSaveOrRestoreIntrinsic(), llvm::Record::isSubClassOf(), isSwiftError(), llvm::MMRAMetadata::isTagMD(), llvm::CallBase::isTailCall(), llvm::MDNode::isTBAAVtableAccess(), isThreadPointerAcquisitionNode(), isThumbI8Relocation(), isTopLevelPadForMSVC(), isTriviallyUniform(), isTypeCongruent(), isTypeLegalForLookupTable(), isUnconditionalBranch(), isUniformLoop(), llvm::AMDGPU::isUniformMMO(), llvm::ISD::isUNINDEXEDLoad(), llvm::ISD::isUNINDEXEDStore(), llvm::DebugHandlerBase::isUnsignedDIType(), isUntypedEquivalentToTyExt(), isUsedAsMemCpySource(), isUsedOutsideBlock(), isUseTriviallyOptimizableToLiveOnEntry(), isV256I32Ty(), isV2BF16(), isV2F16(), isV2F16OrV2BF16(), llvm::AA::isValidAtPosition(), llvm::Attributor::isValidFunctionSignatureRewrite(), isValidImmForSVEVecImmAddrMode(), llvm::AA::isValidInScope(), llvm::AAGlobalValueInfo::isValidIRPositionForInit(), llvm::sandboxir::isValidMemSeed(), isValidMtVsrBmi(), llvm::ShuffleVectorInst::isValidOperands(), isValidPCRelNode(), isValidSplatLoad(), isValidVisniInsertExtractIndex(), isValInBlock(), isVCmpResult(), isVector1(), isVectorAllOnes(), isVectorizedTy(), isVectorLikeInstWithConstOps(), llvm::ARMTargetLowering::isVectorLoadExtDesirable(), isVectorOrArrayOfVectors(), isVectorPromotionViable(), isVectorPromotionViableForSlice(), llvm::AnyMemIntrinsic::isVolatile(), isVSplat(), IsWebAssemblyGlobal(), IsWebAssemblyLocal(), llvm::symbolize::SymbolizableObjectFile::isWin32Module(), isWorthFoldingSHL(), isWritableObject(), isZero(), isZero(), isZeroInit(), isZeroLengthArray(), isZeroSize(), llvm::Constant::isZeroValue(), isZeroVector(), llvm::LoongArchTargetLowering::isZExtFree(), llvm::PPCTargetLowering::isZExtFree(), llvm::RISCVTargetLowering::isZExtFree(), llvm::ISD::isZEXTLoad(), IVUseShouldUsePostIncValue(), llvm::LazyCallGraph::LazyCallGraph(), legalizeAndOptimizeInductions(), legalizeFreeze(), legalizeGetHighLowi64Bytes(), legalizeMemCpy(), legalizeMemSet(), llvm::VETargetLowering::legalizePackedAVL(), legalizeScalarLoadStoreOnArrays(), licm(), likeBitCastFromVector(), LinearizeExprTree(), LLVMBuildNUWNeg(), LLVMConstInlineAsm(), LLVMGetAlignment(), LLVMGetDebugLocColumn(), LLVMGetDebugLocDirectory(), LLVMGetDebugLocFilename(), LLVMGetDebugLocLine(), LLVMGetElementType(), LLVMGetFCmpPredicate(), LLVMGetICmpPredicate(), LLVMGetIndices(), LLVMGetInstructionOpcode(), LLVMGetIntrinsicID(), LLVMGetMDNodeOperands(), LLVMGetMDString(), LLVMGetNumArgOperands(), LLVMGetNumIndices(), LLVMGetOperand(), LLVMGetOrdering(), LLVMGetUnwindDest(), LLVMGetVolatile(), LLVMGlobalCopyAllMetadata(), LLVMInstructionClone(), LLVMIsATerminatorInst(), LLVMIsNull(), LLVMMDNodeInContext(), LLVMSetAlignment(), LLVMSetOrdering(), LLVMSetUnwindDest(), LLVMSetVolatile(), LLVMValueAsMetadata(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), loadBinaryFormat(), loadCSE(), loadObj(), llvm::ExecutionEngine::LoadValueFromMemory(), localAllocaNeedsStackSave(), llvm::DbgVariableRecord::location_ops(), llvm::RawLocationWrapper::location_ops(), lookThroughCast(), lookThroughShuffles(), lookupAllocatableSection(), lookupConstant(), llvm::GVNPass::ValueTable::lookupOrAdd(), llvm::vfs::RedirectingFileSystemParser::lookupOrCreateEntry(), llvm::vfs::RedirectingFileSystem::LookupResult::LookupResult(), llvm::SPIRVMCInstLower::lower(), lowerAllowChecks(), LowerAndToBTST(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::M68kTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::RISCVTargetLowering::LowerAsmOperandForConstraint(), llvm::SparcTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::InlineAsmLowering::lowerAsmOperandForConstraint(), llvm::SPIRVInlineAsmLowering::lowerAsmOperandForConstraint(), LowerAsSplatVectorLoad(), LowerAVXExtend(), lowerAwaitSuspend(), lowerBALLOTIntrinsic(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), lowerBUILD_VECTOR(), LowerBUILD_VECTORAsVariablePermute(), LowerBUILD_VECTORvXi1(), lowerBuildVectorAsBroadcast(), lowerBuildVectorViaDominantValues(), llvm::SPIRV::lowerBuiltinType(), llvm::HexagonTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::VETargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::CallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SelectionDAGBuilder::LowerCallSiteWithPtrAuthBundle(), llvm::AMDGPUCallLowering::lowerChainCall(), llvm::AMDGPUAsmPrinter::lowerConstant(), llvm::AsmPrinter::lowerConstant(), lowerConstantIntrinsics(), llvm::HexagonTargetLowering::LowerConstantPool(), LowerDbgDeclare(), llvm::FastISel::lowerDbgValue(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::HexagonTargetLowering::LowerDYNAMIC_STACKALLOC(), lowerExpectIntrinsic(), LowerFMINIMUM_FMAXIMUM(), llvm::SITargetLowering::LowerFormalArguments(), llvm::SPIRVCallLowering::lowerFormalArguments(), LowerFunnelShift(), lowerFunnelShifts(), lowerGlobalIFuncUsersAsGlobalCtor(), lowerGuardIntrinsic(), lowerIncomingStatepointValue(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::X86TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::X86TargetLowering::lowerInterleavedStore(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), LowerINTRINSIC_W_CHAIN(), lowerIntrinsicToFunction(), lowerIsConstantIntrinsic(), lowerKernelArguments(), lowerLoadF128(), lowerLoadI1(), lowerLoadRelative(), lowerMSABinaryBitImmIntr(), llvm::LanaiTargetLowering::LowerMUL(), lowerObjCCall(), lowerPtrAnnotation(), lowerSelectToBinOp(), llvm::SITargetLowering::lowerSET_ROUNDING(), llvm::HexagonTargetLowering::LowerSETCC(), LowerSMELdrStr(), lowerStatepointMetaArgs(), lowerStoreF128(), lowerStoreI1(), llvm::AMDGPUCallLowering::lowerTailCall(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::HexagonTargetLowering::LowerUAddSubO(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), lowerVECTOR_SHUFFLE(), lowerWidenableCondition(), maintainNoSignedWrap(), llvm::VETargetLowering::makeAddress(), llvm::CmpInst::makeCmpResultType(), llvm::sandboxir::CmpInst::makeCmpResultType(), llvm::fuzzerop::makeConstantsWithType(), llvm::AMDGPUSubtarget::makeLIDRangeMetadata(), llvm::Loop::makeLoopInvariant(), makePostTransformationMetadata(), makeStatepointExplicitImpl(), mapWasmLandingPadIndex(), markAliveBlocks(), llvm::ValueLatticeElement::markConstant(), MarkEHGuard(), MarkEHRegistrationNode(), llvm::ValueLatticeElement::markNotConstant(), llvm::SCCPInstVisitor::markOverdefined(), markPointerAsAS(), markTails(), maskContainsAllOneOrUndef(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), llvm::BaseIndexOffset::match(), llvm::PatternMatch::AllowReassoc_match< SubPattern_t >::match(), llvm::PatternMatch::AnyBinaryOp_match< LHS_t, RHS_t, Commutable >::match(), llvm::PatternMatch::AnyUnaryOp_match< OP_t >::match(), llvm::PatternMatch::apf_pred_ty< Predicate >::match(), llvm::PatternMatch::apfloat_match::match(), llvm::PatternMatch::api_pred_ty< Predicate >::match(), llvm::PatternMatch::apint_match::match(), llvm::PatternMatch::Argument_match< Opnd_t >::match(), llvm::PatternMatch::bind_and_match_ty< Class, MatchTy >::match(), llvm::PatternMatch::bind_ty< Class >::match(), llvm::PatternMatch::BinOpPred_match< LHS_t, RHS_t, Predicate, Commutable >::match(), llvm::PatternMatch::br_match::match(), llvm::PatternMatch::brc_match< Cond_t, TrueBlock_t, FalseBlock_t >::match(), llvm::PatternMatch::CastInst_match< Op_t, Class >::match(), llvm::PatternMatch::CastOperator_match< Op_t, Opcode >::match(), llvm::PatternMatch::CmpClass_match< LHS_t, RHS_t, Class, Commutable >::match(), llvm::PatternMatch::constantexpr_match::match(), llvm::PatternMatch::constantint_match< Val >::match(), llvm::PatternMatch::DisjointOr_match< LHS, RHS, Commutable >::match(), llvm::PatternMatch::ElementWiseBitCast_match< Op_t >::match(), llvm::PatternMatch::Exact_match< SubPattern_t >::match(), llvm::PatternMatch::ExtractValue_match< Ind, Opnd_t >::match(), llvm::PatternMatch::FNeg_match< Op_t >::match(), llvm::PatternMatch::InsertValue_match< Ind, T0, T1 >::match(), llvm::PatternMatch::IntrinsicID_match::match(), llvm::PatternMatch::is_zero::match(), llvm::PatternMatch::LogicalOp_match< LHS, RHS, Opcode, Commutable >::match(), llvm::PatternMatch::MaxMin_match< CmpInst_t, LHS_t, RHS_t, Pred_t, Commutable >::match(), llvm::PatternMatch::NNegZExt_match< Op_t >::match(), llvm::PatternMatch::NoWrapTrunc_match< Op_t, WrapFlags >::match(), llvm::PatternMatch::OverflowingBinaryOp_match< LHS_t, RHS_t, Opcode, WrapFlags, Commutable >::match(), llvm::PatternMatch::PtrAdd_match< PointerOpTy, OffsetOpTy >::match(), llvm::PatternMatch::PtrToIntSameSize_match< Op_t >::match(), llvm::PatternMatch::ShiftLike_match< LHS_t, Opcode >::match(), llvm::PatternMatch::Shuffle_match< T0, T1, T2 >::match(), llvm::PatternMatch::specific_bbval::match(), llvm::PatternMatch::specific_fpval::match(), llvm::PatternMatch::specific_intval64< AllowPoison >::match(), llvm::PatternMatch::specific_intval< AllowPoison >::match(), llvm::PatternMatch::SpecificCmpClass_match< LHS_t, RHS_t, Class, Commutable >::match(), llvm::PatternMatch::XorLike_match< LHS, RHS >::match(), llvm::SCEVPatternMatch::bind_cst_ty::match(), llvm::SCEVPatternMatch::bind_ty< Class >::match(), llvm::SCEVPatternMatch::cst_pred_ty< Predicate >::match(), llvm::SCEVPatternMatch::SCEVBinaryExpr_match< SCEVTy, Op0_t, Op1_t >::match(), llvm::SCEVPatternMatch::SCEVUnaryExpr_match< SCEVTy, Op0_t >::match(), llvm::SDPatternMatch::CondCode_match::match(), llvm::SDPatternMatch::SDShuffle_match< T0, T1, T2 >::match(), llvm::VPlanPatternMatch::Argument_match< Opnd_t >::match(), llvm::VPlanPatternMatch::bind_ty< Class >::match(), llvm::VPlanPatternMatch::int_pred_ty< is_specific_int, Bitwidth >::match(), llvm::VPlanPatternMatch::IntrinsicID_match::match(), llvm::VPlanPatternMatch::match(), llvm::VPlanPatternMatch::Recipe_match< std::tuple< OpTys... >, Opcode, false, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction, VPWidenSelectRecipe >::match(), llvm::PatternMatch::cstval_pred_ty< Predicate, ConstantInt, AllowPoison >::match_impl(), matchAddReduction(), matchBF16FPExtendLike(), MatchBinaryOp(), matchBinaryOp(), llvm::ISD::matchBinaryPredicate(), MatchBinarySub(), llvm::SelectionDAG::matchBinOpReduction(), matchBitmaskMul(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineShuffleConcat(), matchCondition(), llvm::CombinerHelper::matchDivByPow2(), llvm::CombinerHelper::matchEqualDefs(), llvm::fuzzerop::matchFirstLengthWAnyType(), MatchingStackOffset(), MatchingStackOffset(), matchIntrinsicType(), matchIsFPClassLikeFCmp(), llvm::AMDGPUDAGToDAGISel::matchLoadD16FromBuildVector(), matchLSNode(), MatchNotExpr(), llvm::sandboxir::VecUtils::matchPack(), matchPartStore(), llvm::CombinerHelper::matchPtrAddImmedChain(), llvm::CombinerHelper::matchReassocFoldConstantsInSubTree(), llvm::CombinerHelper::matchRotateOutOfRange(), matchScalarInAggregate(), matchScalarReduction(), matchSelectPattern(), llvm::CombinerHelper::matchShiftsTooBig(), matchShiftULTCondition(), matchSimpleBinaryIntrinsicRecurrence(), matchSimpleRecurrence(), matchSplatAsGather(), matchStridedStart(), matchSubIntegerPackFromVector(), matchTwoInputRecurrence(), llvm::CombinerHelper::matchUMulHToLShr(), llvm::ISD::matchUnaryPredicateImpl(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), MatchVectorAllEqualTest(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), llvm::ARMTTIImpl::maybeLoweredToCall(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), mayLoopAccessLocation(), llvm::WebAssembly::mayThrow(), mayUseP9Setb(), memoryIsNotModifiedBetween(), memVTFromLoadIntrData(), memVTFromLoadIntrReturn(), MergeBasicBlockIntoOnlyPred(), MergeBlockIntoPredecessor(), mergeCleanupPad(), mergeConditionalStores(), mergeConditionalStoreToAddress(), llvm::OverflowTracking::mergeFlags(), mergeNestedCondBranch(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), llvm::Constant::mergeUndefsWith(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), llvm::MMRAMetadata::MMRAMetadata(), llvm::SelectionDAG::MorphNodeTo(), moveFunctionData(), moveLCSSAPhis(), llvm::LoopInfo::movementPreservesLCSSAForm(), movePHIValuesToInsertedBlock(), mustBeUnreachableFunction(), mustPreserveGV(), llvm::InstModificationIRStrategy::mutate(), llvm::ShuffleBlockStrategy::mutate(), narrowExtractedVectorLoad(), llvm::VPlanTransforms::narrowInterleaveGroups(), narrowSDivOrSRem(), narrowToSingleScalarRecipes(), narrowUDivOrURem(), needsFP(), needsLFTR(), needsStatepoint(), needToInsertPhisForLCSSA(), negateICmpIfUsedByBranchOrSelectOnly(), NegateValue(), llvm::RandomIRBuilder::newSource(), llvm::EscapeEnumerator::Next(), noConflictingReadWrites(), NormalizeBuildVector(), llvm::coro::normalizeCoroutine(), normalizeType(), nullifySetjmp(), numberOfTerms(), numElementsInSubstring(), numRetVals(), onlyUsedByLifetimeMarkersOrDroppableInstsHelper(), llvm::OperandTraits< MemoryUseOrDef >::op_begin(), llvm::OperandTraits< MemoryUseOrDef >::op_end(), llvm::vfs::InMemoryFileSystem::openFileForRead(), llvm::OperandTraits< MemoryUseOrDef >::operands(), operandWithNewAddressSpaceOrCreatePoison(), llvm::orc::ExecutorNativePlatform::operator()(), llvm::orc::ForceLoadMachOArchiveMembers::operator()(), llvm::memoryaccess_def_iterator_base< MemoryAccess >::operator*(), llvm::orc::CtorDtorIterator::operator*(), llvm::BasicBlock::phi_iterator_impl< const PHINode, BasicBlock::const_iterator >::operator++(), llvm::DbgVariableRecord::location_op_iterator::operator++(), llvm::def_chain_iterator< T, UseOptimizedChain >::operator++(), llvm::generic_gep_type_iterator< ItTy >::operator++(), llvm::memoryaccess_def_iterator_base< MemoryAccess >::operator++(), llvm::DbgVariableRecord::location_op_iterator::operator--(), false::GepNode::operator<<, operator<<(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), optimizeBlock(), optimizeBranch(), llvm::LibCallSimplifier::optimizeCall(), optimizeCallInst(), optimizeDoubleFP(), optimizeEarlyExitInductionUser(), OptimizeEmptyGlobalAtExitDtors(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfAllocation(), OptimizeGlobalAliases(), OptimizeGlobalVars(), optimizeLoopExitWithUnknownExitCount(), optimizeMaskToEVL(), optimizeMemCmpConstantSize(), llvm::X86::optimizeMOV(), OptimizeNonTrivialIFuncs(), OptimizeNoopCopyExpression(), optimizeOnceStoredGlobal(), llvm::InstCombinerImpl::OptimizePointerDifference(), optimizeShiftInOrChain(), optimizeToShortImmediateForm(), optimizeVectorInductionWidthForTCAndVFUF(), orderModule(), orderModule(), orderModule(), orderValue(), orderValue(), orderValue(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::output(), overreadUndefContents(), llvm::VPTransformState::packScalarIntoVectorizedValue(), llvm::vfs::RedirectingFileSystemParser::parse(), llvm::remarks::YAMLRemarkParser::parseArg(), llvm::MCParserUtils::parseAssignmentExpression(), llvm::TargetLowering::ParseConstraints(), llvm::remarks::YAMLRemarkParser::parseDebugLoc(), parseDIExpressionBodyAtBeginning(), parseGlobalCtors(), parseJumpTable(), llvm::remarks::YAMLRemarkParser::parseKey(), llvm::LoopStructure::parseLoopStructure(), llvm::remarks::YAMLRemarkParser::parseRemark(), llvm::hlsl::rootsig::MetadataParser::ParseRootSignature(), llvm::remarks::YAMLRemarkParser::parseStr(), llvm::remarks::YAMLRemarkParser::parseUnsigned(), parseWidenableBranch(), passingValueIsAlwaysUndefined(), patchReplacementInstruction(), llvm::InstCombiner::peekThroughBitcast(), peekThroughBitcasts(), peekThroughInsertVectorElt(), peelLoop(), peelToTurnInvariantLoadsDerefencebale(), performAddCSelIntoCSinc(), PerformAddcSubcCombine(), PerformAddeSubeCombine(), performAddUADDVCombine(), PerformANDCombine(), performANDCombine(), performANDCombine(), performANDCombine(), performANDCombine(), performANDORCSELCombine(), PerformBFICombine(), performBranchToCommonDestFolding(), performCMovFPCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performCONCAT_VECTORSCombine(), performCONDCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::HexagonTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::SITargetLowering::PerformDAGCombine(), performDSPShiftCombine(), PerformEXTRACTCombine(), performExtractVectorEltCombine(), performGlobalAddressCombine(), PerformHWLoopCombine(), performINSERT_VECTOR_ELTCombine(), PerformLongShiftCombine(), performMaskedGatherScatterCombine(), performMemPairCombine(), PerformMULCombine(), performMULCombine(), performMulCombine(), llvm::ARMTargetLowering::PerformMVEExtCombine(), PerformMVEVLDCombine(), performNEONPostLDSTCombine(), PerformORCombine(), performORCombine(), performORCombine(), PerformORCombineToBFI(), performPostLD1Combine(), llvm::AMDGPUTargetLowering::performRcpCombine(), PerformReduceShuffleCombine(), performSELECTCombine(), performSETCCCombine(), performSETCCCombine(), PerformShiftCombine(), performSHLCombine(), llvm::AMDGPUTargetLowering::performShlCombine(), PerformSHLSimplify(), performSignExtendCombine(), performSPLIT_PAIR_F64Combine(), PerformSplittingMVEEXTToWideningLoad(), PerformSplittingToNarrowingStores(), performSRACombine(), performSRACombine(), llvm::AMDGPUTargetLowering::performSraCombine(), performSRLCombine(), llvm::AMDGPUTargetLowering::performSrlCombine(), PerformSubCSINCCombine(), performSubsToAndsCombine(), performSVEAndCombine(), PerformVDUPCombine(), performVectorCompareAndMaskUnaryOpCombine(), performVectorDeinterleaveCombine(), performVectorExtendCombine(), performVectorTruncZeroCombine(), PerformVMOVhrCombine(), PerformVMOVrhCombine(), performVP_REVERSECombine(), PerformVQDMULHCombine(), performXORCombine(), performZExtDeinterleaveShuffleCombine(), phiNodeRemapHelper(), phiNodeReplacement(), PHIsEqualValue(), planContainsAdditionalSimplifications(), pointerInvalidatedByBlock(), llvm::PoisonFlags::PoisonFlags(), llvm::CallGraph::populateCallGraphNode(), populateDependencyMatrix(), populateEHOperandBundle(), possiblyDemandedEltsInMask(), llvm::AMDGPUDAGToDAGISel::PostprocessISelDAG(), llvm::SwiftErrorValueTracking::preassignVRegs(), predictUseListOrder(), predictUseListOrder(), predictUseListOrder(), predictValueUseListOrder(), predictValueUseListOrder(), predictValueUseListOrder(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), PrepareToSplitEntryBlock(), llvm::InstCombinerImpl::prepareWorklist(), llvm::AsmPrinter::preprocessXXStructorList(), preserveFakeUses(), llvm::MachineInstr::print(), llvm::PhiValues::print(), llvm::sandboxir::SeedContainer::print(), llvm::StackSafetyGlobalInfo::print(), llvm::StackSafetyInfo::print(), llvm::Type::print(), llvm::Value::print(), llvm::Value::print(), llvm::VPReplicateRecipe::print(), llvm::X86Operand::print(), llvm::SDNode::print_details(), llvm::AArch64InstPrinter::printAlignedLabel(), printConstant(), llvm::MCAsmInfo::printExpr(), printExpr(), printExpr(), printExtend(), printExtendedName(), printMetadataImpl(), printMetadataImplRec(), printModuleDebugInfo(), llvm::X86InstPrinterCommon::printPCRelImm(), llvm::SystemZInstPrinterCommon::printPCRelOperand(), llvm::AArch64MCAsmInfoDarwin::printSpecifierExpr(), llvm::AArch64MCAsmInfoELF::printSpecifierExpr(), llvm::PPCInstPrinter::printTLSCall(), processAbsIntrinsic(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::processBlock(), llvm::JumpThreadingPass::processBranchOnPHI(), processCall(), processCallSite(), processCmp(), processDbgDeclare(), llvm::DebugInfoFinder::processDbgRecord(), processGlobal(), llvm::JumpThreadingPass::processGuards(), processHandle(), processHeaderPhiOperands(), llvm::JumpThreadingPass::processImpliedCondition(), llvm::DebugInfoFinder::processInstruction(), processInternalGlobal(), processNonStringArg(), processOverflowIntrinsic(), processPhiNode(), processSaturatingInst(), processSelect(), llvm::DebugInfoFinder::processSubprogram(), llvm::JumpThreadingPass::processThreadableEdges(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), processUse(), llvm::xray::FileBasedRecordProducer::produce(), profitableToRotateLoopExitingLatch(), programUndefinedIfUndefOrPoison(), promoteAllocaUserToVector(), promoteArguments(), promoteExtBeforeAdd(), promoteLoopAccessesToScalars(), promoteMemoryToRegister(), promoteSingleBlockAlloca(), promoteToConstantPool(), llvm::ModuleSummaryIndex::propagateAttributes(), propagateAttributesToRefs(), propagateIRFlags(), propagateMemProfHelper(), propagateNaN(), PropagateOperandBundles(), propagatesPoison(), llvm::InstructionWorklist::pushValue(), qualifyCalleeCandidates(), QualifyName(), queryCallee(), llvm::GVNHoist::rank(), llvm::SDValue::reachesChainWithoutSideEffects(), llvm::object::ELFObjectFileBase::readBBAddrMap(), llvm::object::ELFObjectFileBase::readDynsymVersions(), llvm::ifs::readELFFile(), llvm::MachO::DylibReader::readFile(), llvm::AMDGPUPALMetadata::readFromIR(), readMemprof(), reassociateCSELOperandsForCSE(), reassociateMinMaxWithConstantInOperand(), reassociateMinMaxWithConstants(), rebuildGatherScatter(), recognizeBSwapOrBitReverseIdiom(), recordCondition(), recordTypeIdCompatibleVtableReferences(), RecursivelyDeleteTriviallyDeadInstructions(), RecursivelyDeleteTriviallyDeadInstructions(), recursivelyVisitUsers(), reduceANDOfAtomicLoad(), refineInstruction(), llvm::sandboxir::Context::registerValue(), relocationViaAlloca(), llvm::Intrinsic::remangleIntrinsicFunction(), remapIndices(), remarkFlatAddrspaceAccess(), rematerializeLiveValuesAtUses(), removeConstantFactors(), RemoveDeadConstant(), llvm::Constant::removeDeadConstantUsers(), llvm::VPlanTransforms::removeDeadRecipes(), removeEmptyCleanup(), llvm::MemorySSA::removeFromLookups(), removeGEPBuiltinsInFunc(), RemoveInstInputs(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::MemorySSAUpdater::removeMemoryAccess(), removePAICalls(), llvm::ScalarEvolution::removePointerBase(), RemovePreallocated(), removeRedundantCanonicalIVs(), removeRedundantExpandSCEVRecipes(), removeRedundantInductionCasts(), llvm::objcopy::elf::Object::removeSections(), llvm::SCCPInstVisitor::removeSSACopies(), removeSSACopy(), removeTailCallAttribute(), removeTriviallyEmptyRange(), removeUndefIntroducingPredecessor(), removeUnreachableFunctions(), removeUnusedBlocksFromParent(), removeUnwindEdge(), llvm::InstructionPrecedenceTracking::removeUsersOf(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), replaceAccess(), replaceAccessesWithHandle(), ReplaceAddWithADDP(), replaceAllUsesOfWithIn(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), replaceAllUsesWith(), replaceArgumentUses(), replaceBranchTargets(), llvm::SCEVExpander::replaceCongruentIVs(), replaceConstantExprOp(), replaceCoroEndAsync(), llvm::coro::replaceCoroFree(), replaceDominatedUsesWith(), llvm::coro::BaseCloner::replaceEntryBlock(), replaceExtractElements(), replaceFallthroughCoroEnd(), replaceGEPIdxWithZero(), replaceIfBranchTargets(), replaceIfSimplePointerUse(), replaceLoopInvariantUses(), replaceMemCpy(), llvm::LoopInfo::replacementPreservesLCSSAForm(), llvm::AVRTargetLowering::ReplaceNodeResults(), replacePrepare(), replaceRelativePointerUsersWithZero(), replaceRelativePointerUserWithZero(), llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(), replaceSplatVectorStore(), replaceTargetsFromPHINode(), llvm::Constant::replaceUndefsWith(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), replaceWithCallToVeclib(), replaceWithIndirectUse(), replaceWithTileLoad(), llvm::VPlanTransforms::replicateByVF(), reportInvalidDirection(), requireAssignType(), llvm::SSPLayoutAnalysis::requiresStackProtector(), llvm::SITargetLowering::requiresUniformRegister(), llvm::MemoryUseOrDef::resetOptimized(), llvm::SCCPInstVisitor::resolvedUndef(), llvm::AnonymousNameInit::resolveReferences(), llvm::BitsInit::resolveReferences(), llvm::Record::resolveReferences(), llvm::object::resolveRelocation(), resolveTypes(), llvm::dxil::ResourceTypeInfo::ResourceTypeInfo(), restoreMutatedType(), reuseTableCompare(), llvm::sandboxir::EraseFromParent::revert(), llvm::sandboxir::MoveInstr::revert(), llvm::sandboxir::RemoveFromParent::revert(), rewriteAccessChain(), rewriteGEPAsOffset(), rewriteGlobalVariablesInConstant(), rewriteLoopExitValues(), rewriteMaterializableInstructions(), rewriteMemOpOfSelect(), rewriteNonInstructionUses(), rewritePHIs(), rewritePHIs(), llvm::SSAUpdater::RewriteUse(), llvm::SSAUpdater::RewriteUseAfterInsertions(), rewriteUses(), RewriteUsesOfClonedInstructions(), llvm::RopePieceBTreeIterator::RopePieceBTreeIterator(), rsrcPartRoot(), llvm::AMDGPULowerKernelAttributesPass::run(), llvm::AMDGPUSimplifyLibCallsPass::run(), llvm::AMDGPUUseNativeCallsPass::run(), llvm::CoroAnnotationElidePass::run(), llvm::CtxProfAnalysis::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::ExtractGVPass::run(), llvm::FunctionSpecializer::run(), llvm::HipStdParAcceleratorCodeSelectionPass::run(), llvm::InlineCostAnnotationPrinterPass::run(), llvm::InlinerPass::run(), llvm::InstCombinerImpl::run(), llvm::JumpTableToSwitchPass::run(), llvm::KCFIPass::run(), llvm::LoadAndStorePromoter::run(), llvm::MemDerefPrinterPass::run(), llvm::ModuleInlinerPass::run(), llvm::PostOrderFunctionAttrsPass::run(), llvm::SimplifyTypeTestsPass::run(), llvm::StackLifetimePrinterPass::run(), llvm::TruncInstCombine::run(), llvm::TypeFinder::run(), runAttributorLightOnFunctions(), runAttributorOnFunctions(), runCGProfilePass(), llvm::JumpThreadingPass::runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runImpl(), runIPSCCP(), runNVVMIntrRange(), runOnBasicBlock(), llvm::RewriteStatepointsForGC::runOnFunction(), runOnKernelFunction(), runPartiallyInlineLibCalls(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), llvm::HexagonMCInstrInfo::s27_2_reloc(), safeCxtI(), salvageDbgAssignAddress(), llvm::coro::BaseCloner::salvageDebugInfo(), llvm::coro::salvageDebugInfo(), llvm::SelectionDAG::salvageDebugInfo(), salvageDebugInfoImpl(), salvageDebugInfoImpl(), saveFilteredNewMIBNodes(), scalarConstantToHexString(), scalarize(), scalarizeExtractedBinOp(), llvm::TargetLowering::scalarizeExtractedVectorLoad(), scalarizeInstruction(), scaleProfData(), scanOneBB(), SDValueToConstBool(), searchConstantExprForGlobalVariables(), SearchLoopIntrinsic(), llvm::TargetLoweringObjectFile::SectionForGlobal(), llvm::sandboxir::SeedCollector::SeedCollector(), llvm::AMDGPUDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::Select(), llvm::PPCTargetLowering::SelectAddressEVXRegReg(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegImm34(), llvm::RISCVDAGToDAGISel::SelectAddrFrameIndex(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm9(), llvm::RISCVDAGToDAGISel::SelectAddrRegImmLsb00000(), llvm::RISCVDAGToDAGISel::SelectAddrRegRegScale(), llvm::RISCVDAGToDAGISel::SelectAddrRegZextRegScale(), llvm::LoongArchDAGToDAGISel::SelectBaseAddr(), selectBaseADDR(), llvm::FastISel::selectBinaryOp(), llvm::AMDGPUDAGToDAGISel::SelectBuildVector(), llvm::FastISel::selectCall(), llvm::SelectionDAGISel::SelectCodeCommon(), selectDebugInstr(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectGetElementPtr(), llvm::HexagonDAGToDAGISel::SelectGlobalAddress(), llvm::LoongArchDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FastISel::selectInstruction(), llvm::LoopVectorizationPlanner::selectInterleaveCount(), llvm::PPCTargetLowering::SelectOptimalAddrMode(), llvm::FastISel::selectPatchpoint(), llvm::HvxSelector::selectRor(), llvm::RISCVDAGToDAGISel::selectRVVSimm5(), SelectSAddrFI(), llvm::RISCVDAGToDAGISel::selectScalarFPAsInt(), llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileGOFF::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileXCOFF::SelectSectionForGlobal(), llvm::RISCVDAGToDAGISel::selectSETCC(), llvm::HexagonDAGToDAGISel::SelectSHL(), llvm::RISCVDAGToDAGISel::selectSimm5Shl2(), llvm::RISCVDAGToDAGISel::selectVLOp(), llvm::RISCVDAGToDAGISel::selectVSETVLI(), llvm::LoongArchDAGToDAGISel::selectVSplat(), selectWasmSectionForGlobal(), llvm::RISCVDAGToDAGISel::selectZExtBits(), llvm::LoongArchDAGToDAGISel::selectZExti32(), separateNestedLoop(), llvm::FunctionLoweringInfo::set(), setAlignFlagsForFI(), llvm::CallLowering::setArgFlags(), setAtomicSyncScopeID(), llvm::IRPosition::setAttrList(), llvm::IRSimilarity::IRInstructionData::setCalleeName(), setCannotDuplicate(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), setDeducedOverflowingFlags(), llvm::SwiftErrorValueTracking::setFunction(), llvm::codegen::setFunctionAttributes(), setInsertionPoint(), llvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments(), setLoadStoreAlignment(), llvm::MemoryUseOrDef::setOptimized(), setProbeDistributionFactor(), setUnwindEdgeTo(), llvm::orc::LLJIT::setUpGenericLLVMIRPlatform, llvm::RecordVal::setValue(), llvm::LoopVectorizationCostModel::setVectorizedCallDecision(), llvm::PPCTargetLowering::shallExtractConstSplatVectorElementToStore(), shiftAmountKnownInRange(), shouldBeDeferred(), shouldBeSls(), shouldCanonicalizeGEPToPtrAdd(), llvm::AArch64TTIImpl::shouldConsiderAddressTypePromotion(), llvm::RISCVTTIImpl::shouldConsiderAddressTypePromotion(), llvm::LoopVectorizationCostModel::shouldConsiderInvariant(), shouldConvertToIndirectCall(), shouldConvertToRelLookupTable(), shouldConvertUse(), llvm::TargetLoweringObjectFileXCOFF::ShouldEmitEHBlock(), shouldEmitPTXNoReturn(), shouldEmitUdt(), llvm::SITargetLowering::shouldExpandAtomicRMWInIR(), llvm::AArch64TargetLowering::shouldFoldConstantShiftPairToMask(), shouldHoistCommonInstructions(), llvm::NVPTXTargetLowering::shouldInsertFencesForAtomic(), llvm::RISCVTargetLowering::shouldInsertFencesForAtomic(), shouldInsertFreeze(), shouldInstrumentReadWriteFromAddress(), llvm::SelectionDAGBuilder::shouldKeepJumpConditionsTogether(), shouldLowerTailCallStackArg(), llvm::VPReplicateRecipe::shouldPack(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), llvm::HexagonTargetLowering::shouldReduceLoadWidth(), llvm::X86TargetLowering::shouldReduceLoadWidth(), shouldSinkVectorOfPtrs(), shouldSwapCmpOperands(), shouldUseZeroOffsetLdSt(), llvm::TargetLowering::ShrinkDemandedConstant(), shrinkFPConstantVector(), shrinkInsertElt(), shrinkSplatShuffle(), simplifyAllocaArraySize(), simplifyAMDGCNImageIntrinsic(), llvm::GCNTTIImpl::simplifyAMDGCNLaneIntrinsicDemanded(), simplifyAndDCEInstruction(), simplifyAndOrOfCmps(), simplifyAndOrWithOpReplaced(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), llvm::InstCombinerImpl::SimplifyAnyMemTransfer(), simplifyAssocCastAssoc(), simplifyAssociativeBinOp(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), simplifyBinaryIntrinsic(), llvm::InstCombinerImpl::simplifyBinOpSplats(), simplifyBlends(), simplifyBranchConditionForVFAndUF(), simplifyCall(), simplifyCastInst(), simplifyCmpSelOfMaxMin(), simplifyCommonValuePhi(), SimplifyCondBranchToCondBranch(), llvm::InstCombinerImpl::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDemandedBitsForPRMT(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::InstCombinerImpl::SimplifyDemandedFPClass(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(), llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(), simplifyExtractElementInst(), simplifyExtractValueInst(), simplifyFCmpInst(), simplifyGEPInst(), simplifyICmpInst(), llvm::ScalarEvolution::SimplifyICmpOperands(), simplifyICmpWithBinOp(), simplifyICmpWithIntrinsicOnLHS(), simplifyInsertElementInst(), simplifyInsertValueInst(), simplifyInstruction(), simplifyInstructionWithPHI(), simplifyIntrinsic(), simplifyInvariantGroupIntrinsic(), simplifyLoadInst(), simplifyLoopAfterUnroll(), simplifyLoopInst(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), simplifyNeonTbl1(), simplifyNeonVld1(), simplifyOneLoop(), llvm::InstCombinerImpl::simplifyRangeCheck(), simplifyRecipe(), simplifyRelativeLoad(), simplifyRelocatesOffABase(), simplifySelectInst(), llvm::TargetLowering::SimplifySetCC(), simplifySetCCIntoEq(), simplifyShuffleOfShuffle(), simplifyShuffleVectorInst(), simplifySuspendPoint(), simplifySVEIntrinsicBinOp(), simplifySwitchOfCmpIntrinsic(), simplifySwitchOnSelectUsingRanges(), simplifyTernarylogic(), simplifyUnaryIntrinsic(), simplifyUsingControlFlow(), simplifyValueKnownNonZero(), simplifyWithOpsReplaced(), simplifyX86extrq(), simplifyX86immShift(), simplifyX86insertps(), simplifyX86insertq(), simplifyX86pshufb(), simplifyX86varShift(), simplifyX86vpermilvar(), simplifyX86vpermv(), simplifyX86vpermv3(), sinkAndCmp0Expression(), SinkCast(), sinkCommonCodeFromPredecessors(), SinkInstruction(), sinkInstruction(), sinkLastInstruction(), sinkLifetimeStartMarkers(), sinkMinMaxInBB(), sinkScalarOperands(), sinkSelectOperand(), SkipExtensionForVMULL(), skipMetadataWrapper(), skipUpdateDueToValidation(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), SoleWriteToDeadLocal(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve(), llvm::SCCPInstVisitor::solveWhileResolvedUndefs(), sortLocalVars(), llvm::OutlinableRegion::splitCandidate(), splitGlobal(), splitLoopBound(), splitMergedValStore(), SRAGlobal(), stableHashValue(), llvm::ExecutionEngine::StoreValueToMemory(), StrengthenNoWrapFlags(), strictFPExtFromF16(), stripAggregateTypeWrapping(), stripDebugDeclareImpl(), stripGCRelocates(), stripInactiveLanes(), stripNonValidDataFromBody(), stripNullTest(), StripPointerGEPsAndCasts(), stripQualifiers(), stripQualifiers(), llvm::SubsumingPositionIterator::SubsumingPositionIterator(), supportedAddressingMode(), llvm::PPCTargetLowering::supportsTailCallFor(), llvm::coro::suppressCoroAllocs(), llvm::CmpInst::swapOperands(), llvm::sandboxir::CmpInst::swapOperands(), llvm::BTFParser::symbolize(), tagInvariantLoads(), llvm::InstCombinerImpl::takeLog2(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), llvm::ARMTargetLowering::targetShrinkDemandedConstant(), llvm::RISCVTargetLowering::targetShrinkDemandedConstant(), llvm::X86TargetLowering::targetShrinkDemandedConstant(), thinLTOFinalizeInModule(), thinLTOPropagateFunctionAttrs(), thinLTOResolvePrevailingInIndex(), threadBinOpOverSelect(), llvm::Constant::toConstantRange(), toScalarizedTy(), toVectorizedTy(), llvm::at::trackAssignments(), transferDecorations(), transformAddImmMulImm(), transformAddShlImm(), transformCallee(), transformInitializer(), llvm::slpvectorizer::BoUpSLP::transformNodes(), transformResourcePointers(), llvm::Attributor::translateArgumentToCallSiteContent(), TranslateM68kCC(), translateSetCCForBranch(), translateSetCCForBranch(), TranslateX86CC(), trimTrailingZerosInVector(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), TryCombineBaseUpdate(), tryCombineCRC32(), tryCombineFromSVBoolBinOp(), tryCombineShiftImm(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues(), tryConstantFoldCall(), tryConvertSVEWideCompare(), tryDelinearizeFixedSizeImpl(), TryDistrubutionADDVecReduce(), tryEnforceAlignment(), tryFactorization(), llvm::InstCombinerImpl::tryFactorizationFolds(), tryFoldMADwithSRL(), tryGetSecondaryReductionRoot(), llvm::PGOIndirectCallVisitor::tryGetVTableInstruction(), llvm::RISCVDAGToDAGISel::tryIndexedLoad(), tryInterleave(), tryIntoAPInt(), tryLowerToBSL(), tryLowerToSLI(), TryMULWIDECombine(), tryPromoteCall(), tryRemoveAtomicType(), llvm::RISCVDAGToDAGISel::tryShrinkShlLogicImm(), llvm::RISCVDAGToDAGISel::trySignedBitfieldExtract(), llvm::RISCVDAGToDAGISel::trySignedBitfieldInsertInSign(), tryToConvertShuffleOfTbl2ToTbl4(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), llvm::VPRecipeBuilder::tryToCreateWidenRecipe(), tryToElideArgumentCopy(), tryToFoldExtOfAtomicLoad(), tryToFoldExtOfMaskedLoad(), tryToFPToSat(), tryToImproveAlign(), tryToMergeLandingPad(), tryToMoveFreeBeforeNullTest(), tryToRecognizeTableBasedCttz(), tryToReplaceALMWithWideALM(), llvm::SCCPSolver::tryToReplaceWithConstant(), tryToReplaceWithGEPBuiltin(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::InstCombinerImpl::tryToSinkInstruction(), llvm::JumpThreadingPass::tryToUnfoldSelect(), llvm::JumpThreadingPass::tryToUnfoldSelect(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), tryToVectorizeSequence(), typecheckMDNode(), llvm::ListRecTy::typeIsA(), llvm::BitRecTy::typeIsConvertibleTo(), llvm::ListRecTy::typeIsConvertibleTo(), llvm::RecordRecTy::typeIsConvertibleTo(), typeToAddressSpace(), llvm::JumpThreadingPass::unfoldSelectInstr(), unifyPtrType(), unpackLoadToAggregate(), unpackStoreToAggregate(), UnrollAndJamLoop(), llvm::VPlanTransforms::unrollByUF(), UnrollLoop(), UnrollRuntimeLoopRemainder(), unswitchAllTrivialConditions(), unswitchBestCondition(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), llvm::MetadataTracking::untrack(), unwrapExprVar(), unwrapMAVMetadataOp(), unwrapMAVOp(), upcastI8AllocasAndUses(), llvm::DwarfUnit::updateAcceleratorTables(), updateCGAndAnalysisManagerForPass(), updateForAIXShLibTLSModelOpt(), updateIndirectCalls(), llvm::LoopVectorizationPlanner::updateLoopMetadataAndProfileInfo(), llvm::lto::updateMemProfAttributes(), updateOperand(), updatePredecessorProfileMetadata(), updateProfileCallee(), UpdateSSA(), llvm::JumpThreadingPass::updateSSA(), updateVCallVisibilityInIndex(), upgradeAMDGCNIntrinsicCall(), UpgradeARCRuntime(), upgradeArmOrAarch64IntrinsicFunction(), UpgradeCallsToIntrinsic(), upgradeDbgIntrinsicToDbgRecord(), UpgradeGlobalVariable(), upgradeInstructionLoopAttachment(), UpgradeIntrinsicCall(), upgradeMaskedLoad(), upgradeMaskedStore(), UpgradeModuleFlags(), usedInGlobalVarDef(), usedInOneFunc(), useFuncSeen(), usePartialVectorLoads(), usersDominator(), validateAndCostRequiredSelects(), validateFunCall(), ValidateMVEStore(), validExtractValueIndex(), validInsertValueIndex(), validLookupTableConstant(), llvm::IRPosition::value(), valueDominatesPHI(), llvm::dxil::ValueEnumerator::ValueEnumerator(), llvm::ValueEnumerator::ValueEnumerator(), valueHasFloatPrecision(), valueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::SSAUpdaterTraits< SSAUpdater >::ValueIsPHI(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InlineAsm::verify(), llvm::ScalarEvolution::verify(), llvm::MemorySSA::verifyOrderingDominationAndDefUses(), verifySubExpr(), verifyTripCount(), versionCallSiteWithCond(), violatesLegacyMultiExitLoopCheck(), llvm::MemoryOpRemark::visit(), llvm::memtag::StackInfoBuilder::visit(), llvm::InstCombinerImpl::visitAllocaInst(), llvm::InstCombinerImpl::visitAllocSite(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitBranchInst(), llvm::InstCombinerImpl::visitCallInst(), llvm::SCEVDivision::visitConstant(), llvm::SelectionDAGBuilder::visitDbgInfo(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitExtractValueInst(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitFenceInst(), llvm::InstCombinerImpl::visitFNeg(), llvm::InstCombinerImpl::visitFPTrunc(), llvm::InstCombinerImpl::visitFree(), llvm::InstCombinerImpl::visitFreeze(), llvm::InstCombinerImpl::visitFSub(), llvm::InstCombinerImpl::visitGEPOfGEP(), DataScalarizerVisitor::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitICmpInst(), llvm::InstCombinerImpl::visitInsertElementInst(), llvm::InstCombinerImpl::visitInsertValueInst(), llvm::InstCombinerImpl::visitIntToPtr(), llvm::InstCombinerImpl::visitLandingPadInst(), DataScalarizerVisitor::visitLoadInst(), llvm::InstCombinerImpl::visitLoadInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitPHINode(), visitPointers(), llvm::LazyCallGraph::visitReferences(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitShuffleVectorInst(), llvm::InstCombinerImpl::visitSRem(), DataScalarizerVisitor::visitStoreInst(), llvm::InstCombinerImpl::visitStoreInst(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitSwitchInst(), llvm::InstCombinerImpl::visitTrunc(), llvm::InstCombinerImpl::visitUnconditionalBranchInst(), llvm::InstCombinerImpl::visitXor(), llvm::InstCombinerImpl::visitZExt(), llvm::VPIRFlags::VPIRFlags(), llvm::ScalarEvolution::willNotOverflow(), llvm::SparcTargetLowering::withTargetFlags(), llvm::VETargetLowering::withTargetFlags(), workshareLoopTargetCallback(), llvm::LoopInfo::wouldBeOutOfLoopUseRequiringLCSSA(), wouldInstructionBeTriviallyDead(), wouldInstructionBeTriviallyDeadOnUnusedPaths(), WriteAsOperandInternal(), WriteAsOperandInternal(), WriteConstantInternal(), writeMDTuple(), WriteOptimizationInfo(), writeToAlloca(), llvm::reassociate::XorOpnd::XorOpnd(), llvm::slpvectorizer::BoUpSLP::~BoUpSLP(), llvm::objcarc::BundledRetainClaimRVs::~BundledRetainClaimRVs(), and llvm::VPlan::~VPlan().

◆ dyn_cast() [2/4]

template<typename To, typename From>
decltype(auto) llvm::dyn_cast ( From & Val)
inlinenodiscard

◆ dyn_cast() [3/4]

template<typename To, typename From>
decltype(auto) llvm::dyn_cast ( From * Val)
inlinenodiscard

◆ dyn_cast() [4/4]

template<typename To, typename From>
decltype(auto) llvm::dyn_cast ( std::unique_ptr< From > & Val)
inlinenodiscard

Definition at line 667 of file Casting.h.

References assert(), and llvm::detail::isPresent().

◆ dyn_cast_if_present() [1/3]

template<class X, class Y>
auto llvm::dyn_cast_if_present ( const Y & Val)

dyn_cast_if_present<X> - Functionally identical to dyn_cast, except that a null (or none in the case of optionals) value is accepted.

Definition at line 738 of file Casting.h.

References llvm::CastInfo< To, From, Enable >::castFailed(), llvm::CastInfo< To, From, Enable >::doCastIfPossible(), llvm::detail::isPresent(), llvm::detail::unwrapValue(), and Y.

Referenced by llvm::GISelInstProfileBuilder::addNodeIDRegType(), llvm::VPWidenCastRecipe::computeCost(), computeFunctionSummary(), ConstantFoldBinaryIntrinsic(), dependencies(), llvm::PointerUnion< TrivialCallback *, NonTrivialCallbacks * >::dyn_cast(), dyn_cast_or_null(), dyn_cast_or_null(), dyn_cast_or_null(), findRefEdges(), llvm::InstSimplifyFolder::FoldBinaryIntrinsic(), llvm::IRPosition::getAssociatedArgument(), llvm::IRPosition::getAssociatedFunction(), llvm::generic_gep_type_iterator< ItTy >::getIndexedType(), getMemcpyLoadsAndStores(), llvm::BasicTTIImplBase< BasicTTIImpl >::getNumberOfParts(), llvm::DIE::getParent(), llvm::MachineMemOperand::getPseudoValue(), llvm::RegisterBankInfo::getRegBank(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm::MachineRegisterInfo::getRegClassOrNull(), llvm::generic_gep_type_iterator< ItTy >::getStructTypeOrNull(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::DIE::getUnit(), llvm::MachineMemOperand::getValue(), llvm::LTOModule::hasCtorDtor(), llvm::Attributor::identifyDefaultAbstractAttributes(), inferAlignFromPtrInfo(), InsertStackProtectors(), isNoWrap(), isSignExtendedW(), isSignExtendedW(), llvm::PPCInstrInfo::isSignOrZeroExtended(), llvm::MachinePointerInfo::MachinePointerInfo(), llvm::TinyPtrVector< ReachingDef >::operator=(), optimizeVectorInductionWidthForTCAndVFUF(), raiseUserConstantDataAllocasToEntryBlock(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::ReplaceableMetadataImpl::SalvageDebugInfo(), llvm::SubsumingPositionIterator::SubsumingPositionIterator(), llvm::TinyPtrVector< ReachingDef >::TinyPtrVector(), tryToMatchAndCreateMulAccumulateReduction(), unwrapMAVOp(), and llvm::TinyPtrVector< ReachingDef >::~TinyPtrVector().

◆ dyn_cast_if_present() [2/3]

template<class X, class Y>
auto llvm::dyn_cast_if_present ( Y & Val)

◆ dyn_cast_if_present() [3/3]

template<class X, class Y>
auto llvm::dyn_cast_if_present ( Y * Val)

◆ dyn_cast_or_null() [1/3]

template<class X, class Y>
auto llvm::dyn_cast_or_null ( const Y & Val)

Definition at line 759 of file Casting.h.

References dyn_cast_if_present(), and Y.

Referenced by llvm::AArch64FunctionInfo::AArch64FunctionInfo(), llvm::VPlanTransforms::addBranchWeightToMiddleTerminator(), AddParamAndFnBasicAttributes(), addResumePhiRecipeForInduction(), AddReturnAttributes(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::MipsTargetLowering::AdjustInstrPostInstrSelection(), AliasScopeTracker::analyse(), areTwoInsertFromSameBuildVector(), buildPartialInvariantUnswitchConditionalBranch(), llvm::PredicateInfoBuilder::buildPredicateInfo(), calcArraySize(), canLowerSRLToRoundingShiftForVT(), canParameterizeCallOperand(), CanProveNotTakenFirstIteration(), CheckAssert(), checkGlobalVariableScope(), checkVariableImport(), llvm::M68kSubtarget::classifyGlobalFunctionReference(), llvm::X86Subtarget::classifyGlobalFunctionReference(), llvm::IntrinsicInst::classof(), llvm::VPRecipeWithIRFlags::classof(), llvm::VPReductionPHIRecipe::clone(), CloneAndPruneIntoFromInst(), llvm::ModuleSummaryIndex::collectDefinedFunctionsForModule(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), llvm::BinOpInit::CompareInit(), computeKnownBits(), computeKnownFPClass(), computeLTOCacheKey(), computeNumSignBitsVectorConstant(), ConstantFoldFPInstOperands(), constantFoldUser(), llvm::DwarfUnit::constructTypeDIE(), convertAnnotation2Metadata(), copyFlags(), llvm::VPRecipeBase::cost(), createProfileFileNameVar(), llvm::orc::CtorDtorIterator::CtorDtorIterator(), DeleteDeadPHIs(), llvm::ThreadSafeTrieRawHashMapBase::destroyImpl(), diagnosePossiblyInvalidConstraint(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), dropRedundantMaskingOfLeftShiftInput(), llvm::VPDef::dump(), llvm::VPValue::dump(), llvm::mdconst::dyn_extract_or_null(), emitGlobalConstantVector(), llvm::VPBasicBlock::execute(), llvm::VPWidenRecipe::execute(), llvm::ModuleSummaryIndex::exportToDot(), FilterHelper(), llvm::ControlFlowHub::finalize(), findCommonType(), findMoreOptimalIndexType(), FindPredecessorRetainWithSafePath(), fixupDebugInfoPostExtraction(), fixupLineNumbers(), FlushFPConstant(), llvm::BinOpInit::Fold(), llvm::CondOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::UnOpInit::Fold(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), llvm::InstCombinerImpl::foldICmpBinOpWithConstantViaTruthTable(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), forwardHandleAccesses(), llvm::GCStatepointInst::getActualCalledFunction(), llvm::DbgVariableRecord::getAddress(), llvm::DICompositeType::getAllocated(), llvm::DICompositeType::getAllocatedExp(), getAnnotation(), llvm::SystemZTTIImpl::getArithmeticInstrCost(), llvm::DICompositeType::getAssociated(), llvm::DICompositeType::getAssociatedExp(), llvm::Attributor::getAssumedConstant(), llvm::DICompositeType::getBitStrideConst(), llvm::ARMConstantPoolConstant::getBlockAddress(), llvm::XtensaConstantPoolConstant::getBlockAddress(), llvm::CallBase::getCalledFunction(), llvm::Loop::LoopBounds::getCanonicalPredicate(), llvm::GCNTTIImpl::getCFInstrCost(), llvm::ARMTTIImpl::getCmpSelInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::DWARFContext::getCompileUnitForOffset(), llvm::BuildVectorSDNode::getConstantFPSplatNode(), llvm::BuildVectorSDNode::getConstantFPSplatNode(), llvm::BuildVectorSDNode::getConstantFPSplatPow2ToLog2Int(), llvm::BuildVectorSDNode::getConstantSplatNode(), llvm::BuildVectorSDNode::getConstantSplatNode(), getCostForIntrinsics(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), llvm::DICompositeType::getDataLocation(), llvm::DICompositeType::getDataLocationExp(), llvm::TargetLoweringBase::getDefaultSafeStackPointerLocation(), getDesignatedContinueBlock(), getDesignatedMergeBlock(), llvm::DWARFContext::getDIEsForAddress(), getDISubprogram(), llvm::AliasScopeNode::getDomain(), llvm::DWARFContext::getDWOCompileUnitForHash(), getExpressionForConstant(), getFlippedStrictnessPredicateAndConstant(), llvm::ProfileSummary::getFromMD(), llvm::AMDGPULibFunc::getFunction(), GetFunctionFromMDNode(), getFunctionOptions(), llvm::ARMConstantPoolConstant::getGV(), getGVPartitioningRoot(), llvm::MDNodeKeyImpl< DIGenericSubrange >::getHashValue(), llvm::MDNodeKeyImpl< DISubrangeType >::getHashValue(), getHiPELiteral(), llvm::X86TTIImpl::getIntImmCostInst(), llvm::CallBase::getIntrinsicID(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::Loop::getLatchCmpInst(), llvm::pdb::PDBContext::getLineInfoForAddress(), getMemberAlignment(), llvm::X86TTIImpl::getMemoryOpCost(), getMinimumFPType(), getMMOFrameID(), llvm::AliasScopeNode::getName(), llvm::Mangler::getNameWithPrefix(), llvm::DIDerivedType::getObjCProperty(), llvm::DIType::getOffsetInBits(), getOpcodeDef(), llvm::DwarfUnit::getOrCreateStaticMemberDIE(), llvm::AMDGPULibFunc::getOrInsertFunction(), getOrSelfReference(), llvm::DICompositeType::getRankConst(), llvm::DICompositeType::getRankExp(), llvm::objcarc::getRVInstMarker(), llvm::DIType::getSizeInBits(), llvm::LoongArchTargetMachine::getSubtargetImpl(), llvm::RISCVTargetMachine::getSubtargetImpl(), getSummaryAttributes(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::DWARFContext::getTypeUnitForHash(), getUniqueModuleId(), getValueOnEdge(), llvm::DIDerivedType::getVBPtrOffset(), handleIndirectSymViaGOTPCRel(), llvm::Constant::hasExactInverseFP(), hasPartialIVCondition(), HasSafePathToPredecessorCall(), llvm::IndexedReference::hasTemporalReuse(), hasTocDataAttr(), hasUndefContents(), inferAlignFromPtrInfo(), llvm::MIRParserImpl::initializeConstantPool(), llvm::MIRParserImpl::initializeFrameInfo(), InlineFunctionImpl(), insertBoundsCheck(), insertDebugValuesForPHIs(), llvm::MemorySSAUpdater::insertDef(), instCombineDMB(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVECmpNE(), instCombineSVESDIV(), instCombineSVETBL(), instructionClobbersQuery(), interleaveIntList(), isAllDILocation(), llvm::Loop::isCanonical(), isChainSelectCmpBranch(), isCTTZTable(), llvm::pdb::PDBSymbolTypeFunctionSig::isCVarArgs(), llvm::MDNodeSubsetEqualImpl< DISubprogram >::isDeclarationOfODRMember(), isDILocationReachable(), llvm::AArch64TTIImpl::isExtPartOfAvgExpr(), llvm::Constant::isFiniteNonZeroFP(), llvm::RecurrenceDescriptor::isFixedOrderRecurrence(), isFunction(), isGuaranteedNotToBeUndefOrPoison(), isICmpTrue(), llvm::LoopVectorizationLegality::isInductionPhi(), isIRPGOFlagSet(), llvm::MDNodeKeyImpl< DISubrange >::isKeyOf(), llvm::MDNodeKeyImpl< DISubrangeType >::isKeyOf(), llvm::Constant::isNaN(), llvm::Constant::isNegativeZeroValue(), isNonZeroModBitWidthOrUndef(), llvm::Constant::isNormalFP(), llvm::MDNodeSubsetEqualImpl< DIDerivedType >::isODRMember(), isOldLoopArgument(), isOperandUnresolved(), isReferencingMDNode(), IsScalarTBAANodeImpl(), isThreadPointerAcquisitionNode(), llvm::Constant::isZeroValue(), legalizeAndOptimizeInductions(), LLVMIsAMDNode(), LLVMIsAMDString(), LLVMIsAValueAsMetadata(), llvm::SPIRVCallLowering::lowerCall(), LowerDbgDeclare(), lowerStatepointMetaArgs(), llvm::PatternMatch::apf_pred_ty< Predicate >::match(), llvm::PatternMatch::apfloat_match::match(), llvm::PatternMatch::api_pred_ty< Predicate >::match(), llvm::PatternMatch::apint_match::match(), llvm::PatternMatch::IntrinsicID_match::match(), llvm::PatternMatch::specific_fpval::match(), llvm::PatternMatch::specific_intval64< AllowPoison >::match(), llvm::PatternMatch::specific_intval< AllowPoison >::match(), llvm::SDPatternMatch::ConstantInt_match::match(), llvm::VPlanPatternMatch::int_pred_ty< is_specific_int, Bitwidth >::match(), llvm::PatternMatch::cstval_pred_ty< Predicate, ConstantInt, AllowPoison >::match_impl(), matchStridedConstant(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), llvm::VPRecipeBase::mayHaveSideEffects(), llvm::VPRecipeBase::mayReadFromMemory(), llvm::VPRecipeBase::mayWriteToMemory(), mergeBlocksIntoPredecessors(), mergeReplicateRegionsIntoSuccessors(), moveFunctionData(), llvm::VPlanTransforms::narrowInterleaveGroups(), llvm::orc::CtorDtorIterator::operator*(), optimizeEarlyExitInductionUser(), OptimizeNonTrivialIFuncs(), llvm::MIRParserImpl::parseIRModule(), parseJumpTable(), llvm::MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment(), planContainsAdditionalSimplifications(), llvm::VPValue::print(), processCallSite(), processSelect(), llvm::DebugInfoFinder::processSubprogram(), processSwitch(), propagateMemProfMetadata(), llvm::VPDominatorTree::properlyDominates(), llvm::RawInstrProfReader< uint32_t >::RawInstrProfReader(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), RecursivelyDeleteTriviallyDeadInstructionsPermissive(), replaceConditionalBranchesOnConstant(), llvm::DIBuilder::replaceVTableHolder(), llvm::MDNode::resolveCycles(), llvm::BinOpInit::resolveReferences(), llvm::TernOpInit::resolveReferences(), rewritePHIs(), llvm::MachineSSAUpdater::RewriteUse(), llvm::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo(), llvm::StripDeadCGProfilePass::run(), salvageDebugInfoImpl(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), setUnsafeStackSize(), shiftAmountKnownInRange(), llvm::UnreachableInst::shouldLowerToTrap(), llvm::HexagonTargetLowering::shouldReduceLoadWidth(), shrinkFPConstantVector(), simplifyLoopAfterUnroll(), simplifyLoopInst(), simplifyX86extrq(), simplifyX86insertq(), simplifyX86varShift(), sinkScalarOperands(), splitGlobal(), stripLoopMDLoc(), stripNonLineTableDebugInfo(), tailMergeBlocksWithSimilarFunctionTerminators(), thinLTOFinalizeInModule(), llvm::Constant::toConstantRange(), transformCallee(), llvm::PHITransAddr::translateValue(), updateProfileCallee(), updateScopeLine(), upgradeDbgIntrinsicToDbgRecord(), UpgradeIntrinsicCall(), upgradeLoopArgument(), UpgradeModuleFlags(), upgradeRetainReleaseMarker(), valueCoversEntireFragment(), llvm::CodeExtractor::verifyAssumptionCache(), versionCallSiteWithCond(), llvm::memtag::StackInfoBuilder::visit(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFenceInst(), llvm::TBAAVerifier::visitTBAAMetadata(), llvm::VPDerivedIVRecipe::VPDerivedIVRecipe(), llvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe(), and writeDIGenericSubrange().

◆ dyn_cast_or_null() [2/3]

template<class X, class Y>
auto llvm::dyn_cast_or_null ( Y & Val)

Definition at line 763 of file Casting.h.

References dyn_cast_if_present(), and Y.

◆ dyn_cast_or_null() [3/3]

template<class X, class Y>
auto llvm::dyn_cast_or_null ( Y * Val)

Definition at line 767 of file Casting.h.

References dyn_cast_if_present(), and Y.

◆ dynamicAPIntFromInt64()

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::dynamicAPIntFromInt64 ( int64_t X)

Definition at line 250 of file DynamicAPInt.h.

References LLVM_ATTRIBUTE_ALWAYS_INLINE, and X.

◆ ehAwareSplitEdge()

◆ EliminateDuplicatePHINodes() [1/2]

bool llvm::EliminateDuplicatePHINodes ( BasicBlock * BB)

Check for and eliminate duplicate PHI nodes in this block.

This doesn't try to be clever about PHI nodes which differ only in the order of the incoming values, but instcombine orders them so it usually won't matter.

This overload removes the duplicate PHI nodes directly.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1509 of file Local.cpp.

References Changed, EliminateDuplicatePHINodes(), and ToRemove.

Referenced by EliminateDuplicatePHINodes().

◆ EliminateDuplicatePHINodes() [2/2]

bool llvm::EliminateDuplicatePHINodes ( BasicBlock * BB,
SmallPtrSetImpl< PHINode * > & ToRemove )

Check for and eliminate duplicate PHI nodes in this block.

This doesn't try to be clever about PHI nodes which differ only in the order of the incoming values, but instcombine orders them so it usually won't matter.

This overload collects the PHI nodes to be removed into the ToRemove set.

Definition at line 1498 of file Local.cpp.

References EliminateDuplicatePHINodesNaiveImpl(), EliminateDuplicatePHINodesSetBasedImpl(), hasNItemsOrLess(), NDEBUG, PHICSEDebugHash, PHICSENumPHISmallSize, llvm::BasicBlock::phis(), and ToRemove.

◆ EliminateUnreachableBlocks()

bool llvm::EliminateUnreachableBlocks ( Function & F,
DomTreeUpdater * DTU = nullptr,
bool KeepOneInputPHIs = false )

Delete all basic blocks from F that are not reachable from its entry node.

If KeepOneInputPHIs is true, one-input Phis in successors of blocks being deleted will be preserved.

Definition at line 124 of file BasicBlockUtils.cpp.

References DeleteDeadBlocks(), depth_first_ext(), and F.

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

◆ embedBitcodeInModule()

void llvm::embedBitcodeInModule ( llvm::Module & M,
llvm::MemoryBufferRef Buf,
bool EmbedBitcode,
bool EmbedCmdline,
const std::vector< uint8_t > & CmdArgs )

If EmbedBitcode is set, save a copy of the llvm IR as data in the __LLVM,__bitcode section (.llvmbc on non-MacOS).

If available, pass the serialized module via the Buf parameter. If not, pass an empty (default-initialized) MemoryBufferRef, and the serialization will be handled by this API. The same behavior happens if the provided Buf is not bitcode (i.e. if it's invalid data or even textual LLVM assembly). If EmbedCmdline is set, the command line is also exported in the corresponding section (__LLVM,_cmdline / .llvmcmd) - even if CmdArgs were empty.

Definition at line 5844 of file BitcodeWriter.cpp.

References llvm::GlobalValue::AppendingLinkage, assert(), collectUsedGlobalVariables(), Data, EmbedBitcode, llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::ArrayType::get(), llvm::ConstantArray::get(), llvm::ConstantDataArray::get(), llvm::MemoryBufferRef::getBufferEnd(), llvm::MemoryBufferRef::getBufferSize(), llvm::MemoryBufferRef::getBufferStart(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), getSectionNameForBitcode(), getSectionNameForCommandline(), llvm::Value::getType(), llvm::PointerType::getUnqual(), isBitcode(), llvm::GlobalValue::PrivateLinkage, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::GlobalVariable::setAlignment(), llvm::Value::setName(), llvm::GlobalObject::setSection(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_string_ostream::str(), T, llvm::Value::takeName(), and WriteBitcodeToFile().

Referenced by codegen(), and llvm::lto::opt().

◆ embedBufferInModule()

void llvm::embedBufferInModule ( Module & M,
MemoryBufferRef Buf,
StringRef SectionName,
Align Alignment = Align(1) )

◆ emitAMDGPUPrintfCall()

◆ EmitAnyX86InstComments()

◆ emitAppleAccelTable()

◆ emitAppleAccelTableImpl()

void llvm::emitAppleAccelTableImpl ( AsmPrinter * Asm,
AccelTableBase & Contents,
StringRef Prefix,
const MCSymbol * SecBegin,
ArrayRef< AppleAccelTableData::Atom > Atoms )

Definition at line 635 of file AccelTable.cpp.

References llvm::AccelTableBase::finalize().

Referenced by emitAppleAccelTable().

◆ emitARMRegPlusImmediate()

void llvm::emitARMRegPlusImmediate ( MachineBasicBlock & MBB,
MachineBasicBlock::iterator & MBBI,
const DebugLoc & dl,
Register DestReg,
Register BaseReg,
int NumBytes,
ARMCC::CondCodes Pred,
Register PredReg,
const ARMBaseInstrInfo & TII,
unsigned MIFlags = 0 )

◆ emitBCmp()

Value * llvm::emitBCmp ( Value * Ptr1,
Value * Ptr2,
Value * Len,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the bcmp function.

Definition at line 1749 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), getIntTy(), and getSizeTTy().

◆ emitBinaryFloatFnCall() [1/2]

Value * llvm::emitBinaryFloatFnCall ( Value * Op1,
Value * Op2,
const TargetLibraryInfo * TLI,
LibFunc DoubleFn,
LibFunc FloatFn,
LibFunc LongDoubleFn,
IRBuilderBase & B,
const AttributeList & Attrs )

Emit a call to the binary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op1.

Definition at line 1952 of file BuildLibCalls.cpp.

References B(), emitBinaryFloatFnCallHelper(), getFloatFn(), and llvm::Value::getType().

◆ emitBinaryFloatFnCall() [2/2]

Value * llvm::emitBinaryFloatFnCall ( Value * Op1,
Value * Op2,
const TargetLibraryInfo * TLI,
StringRef Name,
IRBuilderBase & 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 1937 of file BuildLibCalls.cpp.

References appendTypeSuffix(), assert(), B(), emitBinaryFloatFnCallHelper(), and llvm::TargetLibraryInfo::getLibFunc().

Referenced by optimizeDoubleFP().

◆ emitCalloc()

◆ EmitDetailedRecords()

void llvm::EmitDetailedRecords ( const RecordKeeper & RK,
raw_ostream & OS )

Definition at line 190 of file DetailedRecordsBackend.cpp.

◆ emitDWARF5AccelTable() [1/2]

void llvm::emitDWARF5AccelTable ( AsmPrinter * Asm,
DWARF5AccelTable & Contents,
ArrayRef< std::variant< MCSymbol *, uint64_t > > CUs,
llvm::function_ref< std::optional< DWARF5AccelTable::UnitIndexAndEncoding >(const DWARF5AccelTableData &)> getIndexForEntry )

Emit a DWARFv5 Accelerator Table consisting of entries in the specified AccelTable.

The CUs contains either symbols keeping offsets to the start of compilation unit, either offsets to the start of compilation unit themselves.

Definition at line 710 of file AccelTable.cpp.

References llvm::AccelTableBase::finalize().

◆ emitDWARF5AccelTable() [2/2]

◆ emitFPutC()

Value * llvm::emitFPutC ( Value * Char,
Value * File,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the fputc function.

This assumes that Char is an 'int', and File is a pointer to FILE.

Definition at line 2005 of file BuildLibCalls.cpp.

References B(), dyn_cast(), F, getIntTy(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), and llvm::CallBase::setCallingConv().

◆ emitFPutS()

Value * llvm::emitFPutS ( Value * Str,
Value * File,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the fputs function.

Str is required to be a pointer and File is a pointer to FILE.

Definition at line 2025 of file BuildLibCalls.cpp.

References B(), dyn_cast(), F, getIntTy(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), and llvm::CallBase::setCallingConv().

◆ emitFrameOffset()

void llvm::emitFrameOffset ( MachineBasicBlock & MBB,
MachineBasicBlock::iterator MBBI,
const DebugLoc & DL,
unsigned DestReg,
unsigned SrcReg,
StackOffset Offset,
const TargetInstrInfo * TII,
MachineInstr::MIFlag Flag = MachineInstr::NoFlags,
bool SetNZCV = false,
bool NeedsWinCFI = false,
bool * HasWinCFI = nullptr,
bool EmitCFAOffset = false,
StackOffset InitialOffset = {},
unsigned FrameReg = AArch64::SP )

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 6256 of file AArch64InstrInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), DL, emitFrameOffsetAdj(), F, llvm::StackOffset::getFixed(), llvm::StackOffset::getFixed(), llvm::StackOffset::getScalable(), MBB, MBBI, Offset, Opc, and TII.

Referenced by llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), llvm::AArch64InstrInfo::probedStackAlloc(), and rewriteAArch64FrameIndex().

◆ emitFWrite()

Value * llvm::emitFWrite ( Value * Ptr,
Value * Size,
Value * File,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the fwrite function.

This assumes that Ptr is a pointer, Size is an 'size_t', and File is a pointer to FILE.

Definition at line 2045 of file BuildLibCalls.cpp.

References B(), DL, dyn_cast(), F, llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), getSizeTTy(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Ptr, llvm::CallBase::setCallingConv(), and Size.

◆ emitGEPOffset()

Value * llvm::emitGEPOffset ( IRBuilderBase * 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).

Return the result as a signed integer of intptr size. When NoAssumptions is true, no assumptions about index computation not overflowing is made.

Definition at line 22 of file Local.cpp.

References cast(), DL, dyn_cast(), GEP, gep_type_begin(), llvm::TypeSize::getFixed(), llvm::Constant::getNullValue(), llvm::Type::getScalarType(), llvm::generic_gep_type_iterator< ItTy >::getSequentialElementStride(), llvm::generic_gep_type_iterator< ItTy >::getStructTypeOrNull(), llvm::GEPOperator::hasNoUnsignedSignedWrap(), llvm::GEPOperator::hasNoUnsignedWrap(), llvm::Type::isVectorTy(), Offset, and Size.

Referenced by rewriteGEPAsOffset(), and llvm::ObjectSizeOffsetEvaluator::visitGEPOperator().

◆ emitHotColdNew()

Value * llvm::emitHotColdNew ( Value * Num,
IRBuilderBase & B,
const TargetLibraryInfo * TLI,
LibFunc NewFunc,
uint8_t HotCold )

◆ emitHotColdNewAligned()

◆ emitHotColdNewAlignedNoThrow()

Value * llvm::emitHotColdNewAlignedNoThrow ( Value * Num,
Value * Align,
Value * NoThrow,
IRBuilderBase & B,
const TargetLibraryInfo * TLI,
LibFunc NewFunc,
uint8_t HotCold )

◆ emitHotColdNewNoThrow()

◆ emitHotColdSizeReturningNew()

◆ emitHotColdSizeReturningNewAligned()

◆ EmitImportsFiles()

Error llvm::EmitImportsFiles ( StringRef ModulePath,
StringRef OutputFilename,
const ModuleToSummariesForIndexTy & ModuleToSummariesForIndex )

Emit into OutputFilename the files module ModulePath will import from.

Emit the files ModulePath will import from into OutputFilename.

Definition at line 1604 of file FunctionImport.cpp.

References createFileError(), errorCodeToError(), llvm::sys::fs::OF_Text, OutputFilename, processImportsFiles(), and llvm::Error::success().

Referenced by llvm::lto::ThinBackendProc::emitFiles(), and llvm::ThinLTOCodeGenerator::emitImports().

◆ emitInlinedInto()

void llvm::emitInlinedInto ( OptimizationRemarkEmitter & ORE,
DebugLoc DLoc,
const BasicBlock * Block,
const Function & Callee,
const Function & Caller,
bool IsMandatory,
function_ref< void(OptimizationRemark &)> ExtraContext = {},
const char * PassName = nullptr )

Emit ORE message.

Definition at line 526 of file InlineAdvisor.cpp.

References addLocationToRemarks(), Block, DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), PassName, and Remark.

Referenced by emitInlinedIntoBasedOnCost().

◆ emitInlinedIntoBasedOnCost()

void llvm::emitInlinedIntoBasedOnCost ( OptimizationRemarkEmitter & ORE,
DebugLoc DLoc,
const BasicBlock * Block,
const Function & Callee,
const Function & Caller,
const InlineCost & IC,
bool ForProfileContext = false,
const char * PassName = nullptr )

Emit ORE message based in cost (default heuristic).

Definition at line 544 of file InlineAdvisor.cpp.

References Block, emitInlinedInto(), llvm::InlineCost::isAlways(), PassName, and Remark.

◆ EmitJSON()

void llvm::EmitJSON ( const RecordKeeper & RK,
raw_ostream & OS )

Definition at line 182 of file JSONBackend.cpp.

◆ emitLinkerFlagsForGlobalCOFF()

◆ emitLinkerFlagsForUsedCOFF()

void llvm::emitLinkerFlagsForUsedCOFF ( raw_ostream & OS,
const GlobalValue * GV,
const Triple & T,
Mangler & M )

◆ EmitLongStrLiterals()

cl::opt< bool > llvm::EmitLongStrLiterals ( "long-string-literals" ,
cl::desc("when emitting large string tables, prefer string literals over " "comma-separated char literals. This can be a readability and " "compile-time performance win, but upsets some compilers") ,
cl::Hidden ,
cl::init(true)  )

◆ emitMalloc()

◆ emitMemCCpy()

Value * llvm::emitMemCCpy ( Value * Ptr1,
Value * Ptr2,
Value * Val,
Value * Len,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the memccpy function.

Definition at line 1759 of file BuildLibCalls.cpp.

References B(), emitLibCall(), getIntTy(), and getSizeTTy().

◆ emitMemChr()

Value * llvm::emitMemChr ( Value * Ptr,
Value * Val,
Value * Len,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the memchr function.

This assumes that Ptr is a pointer, Val is an 'int' value, and Len is an 'size_t' value.

Definition at line 1719 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), getIntTy(), getSizeTTy(), and Ptr.

◆ emitMemCmp()

Value * llvm::emitMemCmp ( Value * Ptr1,
Value * Ptr2,
Value * Len,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the memcmp function.

Definition at line 1739 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), getIntTy(), and getSizeTTy().

◆ emitMemCpyChk()

Value * llvm::emitMemCpyChk ( Value * Dst,
Value * Src,
Value * Len,
Value * ObjSize,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the __memcpy_chk function to the builder.

This expects that the Len and ObjSize have type 'size_t' and Dst/Src are pointers.

Definition at line 1688 of file BuildLibCalls.cpp.

References B(), DL, dyn_cast(), F, llvm::FunctionCallee::getCallee(), getOrInsertLibFunc(), getSizeTTy(), isLibFuncEmittable(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().

◆ emitMemPCpy()

Value * llvm::emitMemPCpy ( Value * Dst,
Value * Src,
Value * Len,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the mempcpy function.

Definition at line 1710 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), and getSizeTTy().

◆ emitMemRChr()

Value * llvm::emitMemRChr ( Value * Ptr,
Value * Val,
Value * Len,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the memrchr function, analogously to emitMemChr.

Definition at line 1729 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), getIntTy(), getSizeTTy(), and Ptr.

◆ emitPutChar()

◆ emitPutS()

◆ emitSNPrintf()

Value * llvm::emitSNPrintf ( Value * Dest,
Value * Size,
Value * Fmt,
ArrayRef< Value * > Args,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the snprintf function.

Definition at line 1769 of file BuildLibCalls.cpp.

References append_range(), B(), emitLibCall(), getIntTy(), getSizeTTy(), and Size.

◆ emitSourceFileHeader()

void llvm::emitSourceFileHeader ( StringRef Desc,
raw_ostream & OS,
const RecordKeeper & Record = RecordKeeper() )

emitSourceFileHeader - Output an LLVM style file header to the specified raw_ostream.

Definition at line 84 of file TableGenBackend.cpp.

References assert(), llvm::sys::path::filename(), Length, MAX_LINE_LEN, printLine(), and llvm::StringRef::size().

◆ emitSPrintf()

Value * llvm::emitSPrintf ( Value * Dest,
Value * Fmt,
ArrayRef< Value * > VariadicArgs,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the sprintf function.

Definition at line 1782 of file BuildLibCalls.cpp.

References append_range(), B(), emitLibCall(), and getIntTy().

◆ emitStpCpy()

Value * llvm::emitStpCpy ( Value * Dst,
Value * Src,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the stpcpy function to the builder, for the specified pointer arguments.

Definition at line 1665 of file BuildLibCalls.cpp.

References B(), and emitLibCall().

◆ emitStpNCpy()

Value * llvm::emitStpNCpy ( Value * Dst,
Value * Src,
Value * Len,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the stpncpy function to the builder, for the specified pointer arguments and length.

Definition at line 1680 of file BuildLibCalls.cpp.

References B(), emitLibCall(), and getSizeTTy().

◆ emitStrCat()

Value * llvm::emitStrCat ( Value * Dest,
Value * Src,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strcat function.

Definition at line 1794 of file BuildLibCalls.cpp.

References B(), and emitLibCall().

◆ emitStrChr()

Value * llvm::emitStrChr ( Value * Ptr,
char C,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strchr function to the builder, for the specified pointer and character.

Ptr is required to be some pointer type, and the return value has 'i8*' type.

Definition at line 1639 of file BuildLibCalls.cpp.

References B(), llvm::CallingConv::C, emitLibCall(), getIntTy(), and Ptr.

◆ emitStrCpy()

Value * llvm::emitStrCpy ( Value * Dst,
Value * Src,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strcpy function to the builder, for the specified pointer arguments.

Definition at line 1658 of file BuildLibCalls.cpp.

References B(), and emitLibCall().

◆ emitStrDup()

Value * llvm::emitStrDup ( Value * Ptr,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strdup function to the builder, for the specified pointer.

Ptr is required to be some pointer type, and the return value has 'i8*' type.

Definition at line 1633 of file BuildLibCalls.cpp.

References B(), emitLibCall(), and Ptr.

◆ emitStrLCat()

Value * llvm::emitStrLCat ( Value * Dest,
Value * Src,
Value * Size,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strlcat function.

Definition at line 1811 of file BuildLibCalls.cpp.

References B(), emitLibCall(), getSizeTTy(), and Size.

◆ emitStrLCpy()

Value * llvm::emitStrLCpy ( Value * Dest,
Value * Src,
Value * Size,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strlcpy function.

Definition at line 1802 of file BuildLibCalls.cpp.

References B(), emitLibCall(), getSizeTTy(), and Size.

◆ emitStrLen()

Value * llvm::emitStrLen ( Value * Ptr,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the strlen function to the builder, for the specified pointer.

Ptr is required to be some pointer type, and the return value has 'size_t' type.

Definition at line 1617 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), getSizeTTy(), and Ptr.

◆ emitStrNCat()

Value * llvm::emitStrNCat ( Value * Dest,
Value * Src,
Value * Size,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strncat function.

Definition at line 1820 of file BuildLibCalls.cpp.

References B(), emitLibCall(), getSizeTTy(), and Size.

◆ emitStrNCmp()

Value * llvm::emitStrNCmp ( Value * Ptr1,
Value * Ptr2,
Value * Len,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the strncmp function to the builder.

Definition at line 1647 of file BuildLibCalls.cpp.

References B(), DL, emitLibCall(), getIntTy(), and getSizeTTy().

◆ emitStrNCpy()

Value * llvm::emitStrNCpy ( Value * Dst,
Value * Src,
Value * Len,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the strncpy function to the builder, for the specified pointer arguments and length.

Definition at line 1672 of file BuildLibCalls.cpp.

References B(), emitLibCall(), and getSizeTTy().

◆ emitT2RegPlusImmediate()

◆ emitThumbRegPlusImmediate()

void llvm::emitThumbRegPlusImmediate ( MachineBasicBlock & MBB,
MachineBasicBlock::iterator & MBBI,
const DebugLoc & dl,
Register DestReg,
Register 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 249 of file ThumbRegisterInfo.cpp.

References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, alignTo(), assert(), BuildMI(), emitThumbRegPlusImmInReg(), isARMLowRegister(), llvm::RegState::Kill, MBB, MBBI, MRI, predOps(), llvm::MachineInstrBuilder::setMIFlags(), t1CondCodeOp(), and TII.

Referenced by llvm::ThumbRegisterInfo::eliminateFrameIndex(), emitCallSPUpdate(), llvm::Thumb1FrameLowering::emitEpilogue(), emitPrologueEpilogueSPUpdate(), and llvm::ThumbRegisterInfo::rewriteFrameIndex().

◆ emitUnaryFloatFnCall() [1/2]

Value * llvm::emitUnaryFloatFnCall ( Value * Op,
const TargetLibraryInfo * TLI,
LibFunc DoubleFn,
LibFunc FloatFn,
LibFunc LongDoubleFn,
IRBuilderBase & B,
const AttributeList & Attrs )

Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn, depending of the type of Op.

Definition at line 1899 of file BuildLibCalls.cpp.

References B(), emitUnaryFloatFnCallHelper(), and getFloatFn().

◆ emitUnaryFloatFnCall() [2/2]

Value * llvm::emitUnaryFloatFnCall ( Value * Op,
const TargetLibraryInfo * TLI,
StringRef Name,
IRBuilderBase & 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 1887 of file BuildLibCalls.cpp.

References appendTypeSuffix(), B(), emitUnaryFloatFnCallHelper(), and llvm::TargetLibraryInfo::getLibFunc().

Referenced by getSqrtCall(), optimizeDoubleFP(), and llvm::InstCombinerImpl::visitFDiv().

◆ emitVSNPrintf()

Value * llvm::emitVSNPrintf ( Value * Dest,
Value * Size,
Value * Fmt,
Value * VAList,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the vsnprintf function.

Definition at line 1829 of file BuildLibCalls.cpp.

References B(), emitLibCall(), getIntTy(), getSizeTTy(), llvm::Value::getType(), and Size.

◆ emitVSPrintf()

Value * llvm::emitVSPrintf ( Value * Dest,
Value * Fmt,
Value * VAList,
IRBuilderBase & B,
const TargetLibraryInfo * TLI )

Emit a call to the vsprintf function.

Definition at line 1840 of file BuildLibCalls.cpp.

References B(), emitLibCall(), getIntTy(), and llvm::Value::getType().

◆ emitWcsLen()

Value * llvm::emitWcsLen ( Value * Ptr,
IRBuilderBase & B,
const DataLayout & DL,
const TargetLibraryInfo * TLI )

Emit a call to the wcslen function to the builder, for the specified pointer.

Ptr is required to be some pointer type, and the return value has 'size_t' type.

Definition at line 1624 of file BuildLibCalls.cpp.

References assert(), B(), DL, emitLibCall(), getSizeTTy(), and Ptr.

◆ EnableDetailedFunctionProperties()

LLVM_ABI cl::opt< bool > llvm::EnableDetailedFunctionProperties ( "enable-detailed-function-properties" ,
cl::Hidden ,
cl::init(false) ,
cl::desc("Whether or not to compute detailed function properties.")  )

◆ EnableExtTspBlockPlacement()

cl::opt< bool > llvm::EnableExtTspBlockPlacement ( "enable-ext-tsp-block-placement" ,
cl::Hidden ,
cl::init(false) ,
cl::desc("Enable machine block placement based on the ext-tsp model, " "optimizing I-cache utilization.")  )

◆ EnableFSDiscriminator()

cl::opt< bool > llvm::EnableFSDiscriminator ( "enable-fs-discriminator" ,
cl::Hidden ,
cl::desc("Enable adding flow sensitive discriminators")  )

References llvm::cl::Hidden.

◆ EnableKnowledgeRetention()

cl::opt< bool > llvm::EnableKnowledgeRetention ( "enable-knowledge-retention" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("enable preservation of attributes throughout code transformation")  )

◆ EnableLTOInternalization()

cl::opt< bool > llvm::EnableLTOInternalization ( "enable-lto-internalization" ,
cl::init(true) ,
cl::Hidden ,
cl::desc("Enable global value internalization in LTO")  )

Enable global value internalization in LTO.

References llvm::cl::Hidden, and llvm::cl::init().

◆ EnableMemProfContextDisambiguation()

cl::opt< bool > llvm::EnableMemProfContextDisambiguation ( "enable-memprof-context-disambiguation" ,
cl::init(false) ,
cl::Hidden ,
cl::ZeroOrMore ,
cl::desc("Enable MemProf context disambiguation")  )

◆ EnablePrettyStackTrace()

void llvm::EnablePrettyStackTrace ( )

Enables dumping a "pretty" stack trace when the program crashes.

See also
PrettyStackTraceEntry

Definition at line 291 of file PrettyStackTrace.cpp.

Referenced by LLVMEnablePrettyStackTrace(), and llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().

◆ EnablePrettyStackTraceOnSigInfoForThisThread()

void llvm::EnablePrettyStackTraceOnSigInfoForThisThread ( bool ShouldEnable = true)

Enables (or disables) dumping a "pretty" stack trace when the user sends SIGINFO or SIGUSR1 to the current process.

This is a per-thread decision so that a program can choose to print stack traces only on a primary thread, or on all threads that use PrettyStackTraceEntry.

See also
EnablePrettyStackTrace
PrettyStackTraceEntry

Definition at line 299 of file PrettyStackTrace.cpp.

References llvm::sys::SetInfoSignalFunction().

◆ EnableStatistics()

void llvm::EnableStatistics ( bool DoPrintOnExit = true)

Enable the collection and printing of statistics.

Definition at line 134 of file Statistic.cpp.

References Enabled, and PrintOnExit.

Referenced by llvm::lto::setupStatsFile().

◆ encode() [1/2]

unsigned llvm::encode ( Align A)
inline

Returns a representation of the alignment, the encoded value is positive by definition.

Definition at line 230 of file Alignment.h.

References A(), and encode().

◆ encode() [2/2]

unsigned llvm::encode ( MaybeAlign A)
inline

Returns a representation of the alignment that encodes undefined as 0.

Definition at line 217 of file Alignment.h.

Referenced by encode(), encodeCnt(), llvm::GlobalObject::setAlignment(), llvm::GlobalObject::setAlignment(), llvm::MCSymbol::setCommon(), llvm::ISD::ArgFlagsTy::setMemAlign(), and llvm::ISD::ArgFlagsTy::setOrigAlign().

◆ encodeBase64()

template<class InputBytes>
std::string llvm::encodeBase64 ( InputBytes const & Bytes)

◆ encodeSLEB128() [1/2]

◆ 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.

References Count.

◆ encodeULEB128() [1/2]

unsigned llvm::encodeULEB128 ( uint64_t Value,
raw_ostream & OS,
unsigned PadTo = 0 )
inline

Utility function to encode a ULEB128 value to an output stream.

Returns the length in bytes of the encoded value.

Definition at line 81 of file LEB128.h.

References Count.

Referenced by appendLEB128(), appendScalableVectorExpression(), llvm::jitlink::loongarch::applyFixup(), llvm::dwarf_linker::parallel::SectionDescriptor::applyULEB128(), llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), collectGlobalObjectNameStrings(), createDefCFAExpression(), createDefCFAOffset(), llvm::dwarf_linker::parallel::DwarfUnit::emitAbbreviations(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::dwarf_linker::parallel::DwarfUnit::emitDwarfAbbrevEntry(), emitFileEntry(), llvm::X86FrameLowering::emitPrologue(), llvm::UnwindOpcodeAssembler::EmitSPOffset(), llvm::BufferByteStreamer::emitULEB128(), llvm::MCStreamer::emitULEB128IntValue(), llvm::MCDwarfLineAddr::encode(), llvm::ELF::encodeCrel(), llvm::DWARFYAML::Data::getAbbrevTableContentByIndex(), llvm::sampleprof::LineLocation::serialize(), llvm::sampleprof::SampleRecord::serialize(), llvm::sampleprof::serializeTypeMap(), llvm::coverage::CoverageFilenamesSectionWriter::write(), llvm::coverage::CoverageMappingWriter::write(), llvm::coverage::TestingFormatWriter::write(), llvm::sampleprof::SampleProfileWriterBinary::writeBody(), llvm::sampleprof::SampleProfileWriterBinary::writeCallsiteVTableProf(), writeCounter(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeCSNameIdx(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeCSNameTableSection(), writeDIE(), writeExtendedOpcode(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeFuncMetadata(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeFuncOffsetTable(), writeLimits(), writeLineTableOpcode(), writeListEntry(), writeListEntry(), llvm::sampleprof::SampleProfileWriterBinary::writeMagicIdent(), llvm::sampleprof::SampleProfileWriterBinary::writeNameIdx(), llvm::sampleprof::SampleProfileWriterBinary::writeNameTable(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeNameTable(), llvm::WinCOFFWriter::writeObject(), llvm::sampleprof::SampleProfileWriterBinary::writeSample(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeSample(), writeStringRef(), llvm::sampleprof::SampleProfileWriterBinary::writeSummary(), llvm::gsym::FileWriter::writeULEB(), and llvm::BinaryStreamWriter::writeULEB128().

◆ 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.

References Count.

◆ enum_seq() [1/2]

template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto llvm::enum_seq ( EnumT Begin,
EnumT End )

Iterate over an enum type from Begin up to - but not including - End.

Note: enum_seq will generate each consecutive value, even if no enumerator with that value exists. Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse iteration).

Definition at line 337 of file Sequence.h.

References llvm::enum_iteration_traits< EnumT >::is_iterable.

Referenced by llvm::TargetLoweringBase::initActions(), llvm::RTLIB::libcall_impls(), and llvm::RTLIB::libcalls().

◆ enum_seq() [2/2]

template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto llvm::enum_seq ( EnumT Begin,
EnumT End,
force_iteration_on_noniterable_enum_t  )

Iterate over an enum type from Begin up to - but not including - End, even when EnumT is not marked as safely iterable by enum_iteration_traits.

Note: enum_seq will generate each consecutive value, even if no enumerator with that value exists. Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse iteration).

Definition at line 352 of file Sequence.h.

◆ enum_seq_inclusive() [1/2]

template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto llvm::enum_seq_inclusive ( EnumT Begin,
EnumT End )

Iterate over an enum type from Begin to End inclusive.

Note: enum_seq_inclusive will generate each consecutive value, even if no enumerator with that value exists. Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse iteration).

Definition at line 364 of file Sequence.h.

References llvm::enum_iteration_traits< EnumT >::is_iterable.

Referenced by llvm::MVT::all_valuetypes(), collectPrivatizingConstructs(), llvm::CmpInst::FCmpPredicates(), llvm::MVT::fixedlen_vector_valuetypes(), llvm::MVT::fp_fixedlen_vector_valuetypes(), llvm::MVT::fp_scalable_vector_valuetypes(), llvm::MVT::fp_valuetypes(), llvm::CmpInst::ICmpPredicates(), llvm::MVT::integer_fixedlen_vector_valuetypes(), llvm::MVT::integer_scalable_vector_valuetypes(), llvm::MVT::integer_valuetypes(), llvm::MemoryEffectsBase< IRMemLocation >::locations(), llvm::MVT::scalable_vector_valuetypes(), and llvm::MVT::vector_valuetypes().

◆ enum_seq_inclusive() [2/2]

template<typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>
auto llvm::enum_seq_inclusive ( EnumT Begin,
EnumT End,
force_iteration_on_noniterable_enum_t  )

Iterate over an enum type from Begin to End inclusive, even when EnumT is not marked as safely iterable by enum_iteration_traits.

Note: enum_seq_inclusive will generate each consecutive value, even if no enumerator with that value exists. Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse iteration).

Definition at line 379 of file Sequence.h.

◆ enumerate()

template<typename FirstRange, typename... RestRanges>
auto llvm::enumerate ( FirstRange && First,
RestRanges &&... Rest )

Given two or more input ranges, returns a new range whose values are tuples (A, B, C, ...), such that A is the 0-based index of the item in the sequence, and B, C, ..., are the values from the original input ranges.

All input ranges are required to have equal lengths. Note that the returned iterator allows for the values (B, C, ...) to be modified. Example:

std::vector<char> Letters = {'A', 'B', 'C', 'D'};
std::vector<int> Vals = {10, 11, 12, 13};
for (auto [Index, Letter, Value] : enumerate(Letters, Vals)) {
printf("Item %zu - %c: %d\n", Index, Letter, Value);
Value -= 10;
}
auto enumerate(FirstRange &&First, RestRanges &&...Rest)
Given two or more input ranges, returns a new range whose values are tuples (A, B,...
Definition STLExtras.h:2452

Output: Item 0 - A: 10 Item 1 - B: 11 Item 2 - C: 12 Item 3 - D: 13

or using an iterator:

for (auto it : enumerate(Vals)) {
it.value() += 10;
printf("Item %zu: %d\n", it.index(), it.value());
}

Output: Item 0: 20 Item 1: 21 Item 2: 22 Item 3: 23

Definition at line 2452 of file STLExtras.h.

References all_equal(), assert(), First, and range_size().

Referenced by llvm::AliasSetTracker::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::ConstraintSystem::addVariableRow(), llvm::MachObjectWriter::bindIndirectSymbols(), llvm::MCPseudoProbeDecoder::buildAddress2ProbeMap(), buildIntrinsicArgTypes(), buildUseMask(), llvm::SelectionDAG::canCreateUndefOrPoison(), llvm::RISCVCallLowering::canLowerReturn(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::VPExpressionRecipe::clone(), cloneForLane(), clusterSortPtrAccesses(), combineSelect(), combineX86ShufflesRecursively(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::SelectionDAG::computeKnownBits(), llvm::GISelValueTracking::computeKnownBitsImpl(), ComputeLinearIndex(), llvm::GISelValueTracking::computeNumSignBits(), constructSeqOffsettoOrigRowMapping(), llvm::BitsInit::convertInitializerToInt(), llvm::BitsInit::convertKnownBitsToInt(), convertToParamAS(), costAndCollectOperands(), llvm::object::MinidumpFile::create(), llvm::object::ELFFile< ELFT >::createFakeSections(), llvm::VPExpressionRecipe::decompose(), doesInTreeUserNeedToExtract(), llvm::DbgValueHistoryMap::dump(), llvm::MCFragment::dump(), llvm::sandboxir::SeedBundle::dump(), llvm::sandboxir::Tracker::dump(), llvm::sandboxir::dumpImpl(), llvm::MCPseudoProbeSections::emit(), emitDWARF5AccelTable(), emitTaskDependencies(), llvm::sandboxir::EraseFromParent::EraseFromParent(), llvm::Evaluator::EvaluateFunction(), llvm::VPIRPhi::execute(), llvm::VPWidenCallRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), expandToSwitch(), expandUser(), llvm::jitlink::finalizeBlockRelax(), FindFirstNonCommonLetter(), findFuncPointers(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), gatherPossiblyVectorizableLoads(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), generateGatherLanePattern(), llvm::DWARFYAML::Data::getAbbrevTableInfoByID(), getCostForIntrinsics(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), getMask(), getPerfectShuffleCost(), llvm::RISCVTTIImpl::getPointersChainCost(), getPtrToIdxMap(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), isAlternating(), isBlendOrUndef(), isCompressMask(), isDUPFirstSegmentMask(), isDUPQMask(), llvm::X86TargetLowering::isGuaranteedNotToBeUndefOrPoisonForTargetNode(), llvm::sandboxir::ShuffleMask::isIdentity(), llvm::slpvectorizer::BoUpSLP::isIdentityOrder(), llvm::SIInstrInfo::isLegalRegOperand(), isLocalRepeatingShuffle(), isMaskedLoadCompress(), isMaskedSlidePair(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), isReverseOrder(), isSimpleVIDSequence(), isSpanSplatShuffle(), llvm::coverage::CoverageMapping::load(), lowerBUILD_VECTOR(), lowerBuildVectorOfConstants(), lowerBuildVectorViaDominantValues(), llvm::NVPTXTargetLowering::LowerCall(), LowerMUL(), llvm::RISCVTargetLowering::LowerOperation(), lowerShuffleAsDecomposedShuffleMerge(), lowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLEAsVRGatherVX(), moveFunctionAdaptingType(), llvm::VPlanTransforms::narrowInterleaveGroups(), llvm::VPWidenIntrinsicRecipe::onlyFirstLaneUsed(), llvm::VPlanTransforms::optimizeInductionExitUsers(), llvm::SlotIndexes::packIndexes(), populateReductionFunction(), llvm::VPPhiAccessors::printPhiOperands(), llvm::jitlink::relaxBlock(), reorderOrder(), llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(), replaceWithCallToVeclib(), replicateMask(), llvm::sandboxir::EraseFromParent::revert(), scalarizeInstruction(), llvm::sandboxir::Region::setAux(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::setPassPipeline(), sortPtrAccesses(), llvm::coro::AnyRetconABI::splitCoroutine(), llvm::coro::AsyncABI::splitCoroutine(), transformScalarShuffleIndiciesToVector(), updateBranchWeights(), llvm::RISCVInstrInfo::verifyInstruction(), llvm::InstCombinerImpl::visitGetElementPtrInst(), and llvm::yaml::yaml2minidump().

◆ enumToString()

template<typename T, typename TEnum>
std::string llvm::enumToString ( T Value,
ArrayRef< EnumEntry< TEnum > > EnumValues )

Definition at line 103 of file ScopedPrinter.h.

References T, and utohexstr().

◆ enumToStringRef()

template<typename T, typename TEnum>
StringRef llvm::enumToStringRef ( T Value,
ArrayRef< EnumEntry< TEnum > > EnumValues )

◆ equal() [1/2]

template<typename L, typename R>
bool llvm::equal ( L && LRange,
R && RRange )

◆ equal() [2/2]

template<typename L, typename R, typename BinaryPredicate>
bool llvm::equal ( L && LRange,
R && RRange,
BinaryPredicate P )

Definition at line 2074 of file STLExtras.h.

References adl_begin(), adl_end(), and P.

◆ erase()

◆ 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 2100 of file STLExtras.h.

References llvm::CallingConv::C, P, and remove_if().

Referenced by llvm::InstrProfWriter::addTemporalProfileTraces(), checkVectorTypesForPromotion(), llvm::AArch64FunctionInfo::clearLinkerOptimizationHints(), collectPromotionCandidates(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), llvm::TemporalProfTraceTy::createBPFunctionNodes(), deleteDeadBlocksFromLoop(), llvm::SelectionDAGBuilder::dropDanglingDebugInfo(), llvm::MDAttachments::erase(), filterDeadComdatFunctions(), llvm::ifs::filterIFSSyms(), findArrayDimensionsRec(), llvm::logicalview::LVElement::generateName(), llvm::rdf::Liveness::getAllReachingDefs(), llvm::ARMBaseInstrInfo::getOutliningCandidateInfo(), llvm::RISCVInstrInfo::getOutliningCandidateInfo(), getSignature(), hoistLoopToNewParent(), InlineFunctionImpl(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::invalidate(), llvm::JumpThreadingPass::processThreadableEdges(), rebuildLoopAfterUnswitch(), llvm::MDAttachments::remove_if(), llvm::objcopy::dxbc::Object::removeParts(), llvm::objcopy::elf::GroupSection::removeSectionReferences(), llvm::objcopy::coff::Object::removeSections(), llvm::objcopy::wasm::Object::removeSections(), llvm::objcopy::coff::Object::removeSymbols(), llvm::objcopy::macho::SymbolTable::removeSymbols(), llvm::LiveRange::removeValNo(), llvm::LoopFullUnrollPass::run(), updateCGAndAnalysisManagerForPass(), llvm::JumpThreadingPass::updateSSA(), and UpgradeOperandBundles().

◆ eraseInstr()

◆ eraseInstrs()

void llvm::eraseInstrs ( ArrayRef< MachineInstr * > DeadInstrs,
MachineRegisterInfo & MRI,
LostDebugLocObserver * LocObserver = nullptr )

◆ errnoAsErrorCode()

std::error_code llvm::errnoAsErrorCode ( )
inline

Helper to get errno as an std::error_code.

errno should always be represented using the generic category as that's what both libc++ and libstdc++ do. On POSIX systems you can also represent them using the system category, however this makes them compare differently for values outside of those used by std::errc if one is generic and the other is system.

See the libc++ and libstdc++ implementations of default_error_condition on the system category for more details on what the difference is.

Definition at line 1240 of file Error.h.

Referenced by computeArchiveRelativePath(), llvm::sys::fs::copy_file_internal(), llvm::sys::fs::TempFile::discard(), getHostID(), getLastSocketErrorCode(), getRandomBytes(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::initialize(), llvm::sys::fs::TempFile::keep(), llvm::sys::fs::TempFile::keep(), llvm::sys::fs::md5_contents(), llvm::cas::ondisk::preallocateFileTail(), llvm::raw_fd_stream::read(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::SharedMemoryMapper::reserve(), and llvm::raw_fd_ostream::seek().

◆ errorCodeToError()

Error llvm::errorCodeToError ( std::error_code EC)

Helper for converting an std::error_code to a Error.

Definition at line 111 of file Error.cpp.

Referenced by llvm::jitlink::InProcessMemoryManager::IPInFlightAlloc::abandon(), llvm::lto::Config::addSaveTemps(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::allocate(), llvm::object::Archive::Archive(), llvm::object::Binary::checkOffset(), computeArchiveRelativePath(), llvm::FileOutputBuffer::create(), llvm::memprof::RawMemProfReader::create(), llvm::memprof::YAMLMemProfReader::create(), llvm::object::OffloadBinary::create(), llvm::object::OffloadBundleFatBin::create(), llvm::orc::LocalIndirectStubsInfo< ORCABI >::create(), llvm::sys::fs::TempFile::create(), llvm::object::createBinary(), llvm::object::createBinary(), createFileError(), createFileError(), createInMemoryBuffer(), llvm::object::ObjectFile::createObjectFile(), llvm::object::ObjectFile::createObjectFile(), createOnDiskBuffer(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::jitlink::InProcessMemoryManager::deallocate(), llvm::orc::InProcessMemoryMapper::deinitialize(), llvm::sys::fs::TempFile::discard(), doList(), EmitImportsFiles(), ErrorFromHResult(), errorOrToExpected(), llvm::coverage::CounterMappingContext::evaluate(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::object::IRObjectFile::findBitcodeInObject(), llvm::object::MachOObjectFile::findDsymObjectMembers(), llvm::object::Archive::Child::getBuffer(), llvm::NewArchiveMember::getFile(), llvm::object::Archive::Symbol::getMember(), getModuleSummaryIndexForFile(), llvm::object::XCOFFObjectFile::getNumberOfRelocationEntries(), llvm::object::MachOObjectFile::getSection(), llvm::object::ObjectFile::getStartAddress(), llvm::object::COFFObjectFile::getSymbol(), llvm::orc::InProcessMemoryMapper::initialize(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::initialize(), llvm::InitLLVM::InitLLVM(), llvm::sys::fs::TempFile::keep(), llvm::sys::fs::TempFile::keep(), libDriverMain(), loadBinaryFormat(), loadObj(), llvm::gsym::CallSiteInfoLoader::loadYAML(), llvm::raw_fd_ostream::lock(), llvm::gsym::GsymReader::openFile(), llvm::orc::DumpObjects::operator()(), llvm::object::OffloadBundleFatBin::readEntries(), llvm::orc::InProcessMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::release(), llvm::PrintCrashIRInstrumentation::reportCrashIR(), llvm::orc::InProcessMemoryMapper::reserve(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::SharedMemoryMapper::reserve(), llvm::lsp::JSONTransport::run(), llvm::gsym::GsymCreator::save(), llvm::orc::FDSimpleRemoteEPCTransport::sendMessage(), setupLLVMOptimizationRemarks(), setupMemoryBuffer(), setupMemoryBuffer(), llvm::lto::setupStatsFile(), llvm::OptPassGateInstrumentation::shouldRun(), llvm::cas::ObjectStore::storeFromOpenFileImpl(), streamFile(), and llvm::raw_fd_ostream::tryLockFor().

◆ errorOrToExpected()

◆ 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 1113 of file Error.h.

References consumeError().

Referenced by llvm::DWARFFormValue::extractValue(), llvm::StringRef::getAsDouble(), llvm::RISCV::getFeaturesForCPU(), llvm::LTOModule::getProducerString(), llvm::LTOModule::isBitcodeFile(), llvm::LTOModule::isBitcodeFile(), llvm::LTOModule::isBitcodeForTarget(), and llvm::Legalizer::runOnMachineFunction().

◆ errorToErrorCode()

◆ errorToErrorCodeAndEmitErrors()

std::error_code llvm::errorToErrorCodeAndEmitErrors ( LLVMContext & Ctx,
Error Err )

◆ errs()

raw_fd_ostream & llvm::errs ( )

This returns a reference to a raw_ostream for standard error.

Use it like: errs() << "foo" << "bar"; By default, the stream is tied to stdout to ensure stdout is flushed before stderr is written, to ensure the error messages are written in their expected place.

Definition at line 908 of file raw_ostream.cpp.

References assert(), and STDERR_FILENO.

Referenced by addData(), llvm::memprof::CallStackTrie::addSingleAllocTypeAttribute(), appendFile(), ApplyFeatureFlag(), llvm::ir2vec::Embedding::approximatelyEquals(), llvm::Interpreter::callExternalFunction(), llvm::LoongArchABI::checkABIStandardized(), CheckBitcodeOutputToConsole(), checkForCyclesHelper(), CleanupStdHandles(), llvm::SelectionDAG::clearGraphAttrs(), llvm::MachineRegisterInfo::clearVirtRegs(), collectEscapedLocals(), llvm::Combiner::combineMachineInstrs(), llvm::object::CompressedOffloadBundle::compress(), llvm::GenericCycleInfo< ContextT >::compute(), llvm::TargetSchedModel::computeOperandLatency(), llvm::LoongArchABI::computeTargetABI(), llvm::RISCVABI::computeTargetABI(), llvm::SelectionDAG::copyExtraInfo(), llvm::AArch64InstrInfo::copyPhysReg(), cpuHelp(), llvm::orc::SimpleRemoteEPCServer::Create(), llvm::EngineBuilder::create(), createGraphFilename(), llvm::Hexagon_MC::createHexagonMCSubtargetInfo(), CreateInfoOutputFile(), llvm::sandboxir::Region::createRegionsFromMD(), dbgs(), llvm::object::CompressedOffloadBundle::decompress(), defaultDiagHandler(), llvm::LLVMContext::diagnose(), DisplayGraph(), dlltoolDriverMain(), llvm::PhysicalRegisterUsageInfo::doFinalization(), doImportingForModuleForTest(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::dump(), llvm::APFixedPoint::dump(), llvm::ARMConstantPoolValue::dump(), llvm::dwarf_linker::classic::CompileUnit::DIEInfo::dump(), llvm::dwarf_linker::parallel::CompileUnit::DIEInfo::dump(), llvm::DWARFDie::dump(), llvm::ELFRelocationEntry::dump(), llvm::ForeachLoop::dump(), llvm::Init::dump(), llvm::LiveRangeUpdater::dump(), llvm::MachO::Symbol::dump(), llvm::MCAssembler::dump(), llvm::MCFragment::dump(), llvm::MCSection::dump(), llvm::MultiClass::dump(), llvm::Record::dump(), llvm::RecordKeeper::dump(), llvm::RecordVal::dump(), llvm::RecTy::dump(), llvm::SMTExpr::dump(), llvm::SMTSolver::dump(), llvm::SMTSolverStatistics::dump(), llvm::SMTSort::dump(), llvm::SubMultiClassReference::dump(), llvm::XtensaConstantPoolValue::dump(), dumpDataAux(), llvm::LPPassManager::dumpPassStructure(), llvm::RGPassManager::dumpPassStructure(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), emitDbgAssign(), llvm::AMDGPUAsmPrinter::emitInstruction(), llvm::R600AsmPrinter::emitInstruction(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::emitStackUsage(), encodeFunctionSignature(), llvm::CodeViewContext::encodeInlineLineTable(), llvm::WithColor::error(), ExecGraphViewer(), llvm::cl::ExpandResponseFiles(), llvm::cl::expandResponseFiles(), exportDebugifyStats(), fail(), fatalOpenError(), ferrs(), fixupIndexV4(), fixupIndexV5(), llvm::codegen::getBBSectionsMode(), getFeatures(), llvm::SelectionDAG::getGraphAttrs(), getIntrinsicFromLibfunc(), getOrCreateLogFile(), getProcCpuinfoContent(), llvm::PPCTargetLowering::getRegForInlineAsmConstraint(), llvm::WebAssemblyAsmPrinter::getRegType(), llvm::MCSubtargetInfo::getSchedModelForCPU(), llvm::CSKYTargetMachine::getSubtargetImpl(), llvm::MipsTargetMachine::getTargetTransformInfo(), llvm::lto::getThinLTOOutputFile(), handleExecNameEncodedBEOpts(), handleExecNameEncodedOptimizerOpts(), llvm::DotCfgChangeReporter::handleFunctionCompare(), llvm::BTFParser::hasBTFSections(), Help(), HexagonLowerToMC(), llvm::GCNSchedStrategy::initCandidate(), llvm::MIRParserImpl::initializeMachineFunction(), insertParsePoints(), llvm::InstrProfWriter::InstrProfWriter(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::IsSameAsFreshTree(), llvm::LTOModule::isThinLTO(), llvm::MCAssembler::layout(), libDriverMain(), llvm::ThinLTOCodeGenerator::linkCombinedIndex(), llvm::orc::linkComponents(), lle_X_sprintf(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMSetLinkage(), LLVMVerifyFunction(), LLVMVerifyModule(), loadFile(), llvm::BPFMCInstLower::Lower(), llvm::LanaiMCInstLower::Lower(), llvm::MSP430MCInstLower::Lower(), llvm::WebAssemblyMCInstLower::lower(), llvm::AVRMCInstLower::lowerInstruction(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::AMDGPUTargetLowering::LowerOperation(), llvm::HexagonTargetLowering::LowerOperation(), llvm::MemProfContextDisambiguation::MemProfContextDisambiguation(), llvm::MFPropsModifier< PassT >::MFPropsModifier(), llvm::MipsSubtarget::MipsSubtarget(), llvm::WithColor::note(), openFile(), llvm::PluginLoader::operator=(), llvm::LTOCodeGenerator::optimize(), OptimizeGlobalAddressOfAllocation(), parseAndVerify(), parseCHRFilterFiles(), llvm::DebugCounter::parseChunks(), llvm::formatv_object_base::parseFormatString(), parseModule(), llvm::Pattern::parsePattern(), llvm::PassNameParser::passRegistered(), postSplitCleanup(), llvm::FunctionVarLocs::print(), llvm::OutlinedHashTreeRecord::print(), llvm::StableFunctionMapRecord::print(), llvm::ValueEnumerator::print(), llvm::detail::printBumpPtrAllocatorStats(), printGraphForFunction(), PrintLoadStoreResults(), llvm::SourceMgr::PrintMessage(), PrintModRefResults(), PrintModRefResults(), printNoMatch(), printPassMessage(), PrintPercent(), PrintRecyclerStats(), PrintResults(), llvm::parallel::PerThreadAllocator< BumpPtrAllocator >::PrintStats(), llvm::DebugCounter::push_back(), llvm::FileCheck::readCheckFile(), llvm::GCOVFile::readGCDA(), llvm::GCOVFile::readGCNO(), llvm::GCOVBuffer::readGCNOFormat(), llvm::GCOVBuffer::readGCOVVersion(), llvm::GCOVBuffer::readInt(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::readNameTableSec(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::WithColor::remark(), removeUseSoftFloat(), reportError(), reportOpenError(), require(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::ForceFunctionAttrsPass::run(), llvm::GenericCycleInfoCompute< ContextT >::run(), llvm::HelloWorldPass::run(), llvm::impl_detail::MachineSchedulerImpl::run(), llvm::impl_detail::PostMachineSchedulerImpl::run(), llvm::MachineVerifierPass::run(), llvm::MemProfUsePass::run(), llvm::PAEvalPass::run(), llvm::RAGreedy::run(), llvm::ThinLTOCodeGenerator::run(), runFuzzerOnInputs(), llvm::AssignmentTrackingAnalysis::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::DOTGraphTraitsModulePrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), saveFilteredNewMIBNodes(), llvm::impl_detail::MachineSchedulerBase::scheduleRegions(), llvm::AMDGPUPALMetadata::setFromString(), llvm::SelectionDAG::setGraphAttrs(), llvm::SelectionDAG::setGraphColor(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::setPassPipeline(), llvm::SelectionDAG::setSubgraphColor(), llvm::AMDGPU::IsaInfo::AMDGPUTargetID::setTargetIDFromFeaturesString(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::SingleThreadExecutor::SingleThreadExecutor(), llvm::MCSubtargetInfo::ToggleFeature(), llvm::at::trackAssignments(), trackInlinedStores(), UpgradeDebugInfo(), llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander(), ValidatePrefixes(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::verify(), llvm::LegalizerInfo::verify(), llvm::PHITransAddr::verify(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyDFSNumbers(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), verifyKeepChain(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyLevels(), verifyMachineFunction(), 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::DominatorTree::viewGraph(), llvm::ScheduleDAG::viewGraph(), llvm::ScheduleDAGMI::viewGraph(), llvm::SelectionDAG::viewGraph(), llvm::SelectionDAGBuilder::visit(), llvm::Interpreter::visitInstruction(), llvm::cgdata::warn(), llvm::WithColor::warning(), warnToStderr(), writeCFGToDotFile(), writeDDGToDotFile(), WriteDOTGraphToFile(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), WriteGraph(), writeJSON(), writeMCFGToDotFile(), llvm::yaml::yamlize(), llvm::AAEvaluator::~AAEvaluator(), and llvm::orc::EPCGenericRTDyldMemoryManager::~EPCGenericRTDyldMemoryManager().

◆ EvictInterferenceCutoff()

cl::opt< unsigned > llvm::EvictInterferenceCutoff ( "regalloc-eviction-max-interference-cutoff" ,
cl::Hidden ,
cl::desc("Number of interferences after which we declare " "an interference unevictable and bail out. This " "is a compilation cost-saving consideration. To " "disable, pass a very large number.") ,
cl::init(10)  )

◆ examineCFlagsUse()

std::optional< UsedNZCV > llvm::examineCFlagsUse ( MachineInstr & MI,
MachineInstr & CmpInstr,
const TargetRegisterInfo & TRI,
SmallVectorImpl< MachineInstr * > * CCUseInstrs = nullptr )
Returns
Conditions flags used after CmpInstr in its MachineBB if NZCV flags are not alive in successors of the same CmpInstr and MI parent.
std::nullopt otherwise.

Collect instructions using that flags in CCUseInstrs if provided.

Definition at line 1871 of file AArch64InstrInfo.cpp.

References areCFlagsAliveInSuccessors(), findCondCodeUsedByInstr(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), getUsedNZCV(), llvm::MachineBasicBlock::instr_end(), instructionsWithoutDebug(), llvm::AArch64CC::Invalid, MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and TRI.

Referenced by canCmpInstrBeRemoved(), and canInstrSubstituteCmpInstr().

◆ execMayBeModifiedBeforeAnyUse()

bool llvm::execMayBeModifiedBeforeAnyUse ( const MachineRegisterInfo & MRI,
Register VReg,
const MachineInstr & DefMI )

Return false if EXEC is not changed between the def of VReg at DefMI and all its uses.

Should be run on SSA. Currently does not attempt to track between blocks.

Definition at line 10086 of file SIInstrInfo.cpp.

References assert(), DefMI, I, MRI, and TRI.

◆ execMayBeModifiedBeforeUse()

bool llvm::execMayBeModifiedBeforeUse ( const MachineRegisterInfo & MRI,
Register VReg,
const MachineInstr & DefMI,
const MachineInstr & UseMI )

Return false if EXEC is not changed between the def of VReg at DefMI and the use at UseMI.

Should be run on SSA. Currently does not attempt to track between blocks.

Definition at line 10053 of file SIInstrInfo.cpp.

References assert(), DefMI, I, MRI, TRI, and UseMI.

◆ expandAtomicMemCpyAsLoop()

◆ 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).

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 1716 of file AtomicExpandPass.cpp.

References llvm::Instruction::eraseFromParent(), llvm::AtomicRMWInst::getAlign(), llvm::Instruction::getDataLayout(), llvm::Instruction::getFunction(), llvm::AtomicRMWInst::getOrdering(), llvm::AtomicRMWInst::getPointerOperand(), llvm::AtomicRMWInst::getSyncScopeID(), llvm::Value::getType(), llvm::Function::hasFnAttribute(), and llvm::Value::replaceAllUsesWith().

◆ 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.

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.

Replace Div with generated code.

Definition at line 406 of file IntegerDivision.cpp.

References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), generateSignedDivisionCode(), generateUnsignedDivisionCode(), 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(), expandRemainder(), and runImpl().

◆ 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 551 of file IntegerDivision.cpp.

References assert(), cast(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), 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 599 of file IntegerDivision.cpp.

References assert(), cast(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::Type::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

◆ expandMemCpyAsLoop()

◆ expandMemMoveAsLoop()

◆ expandMemSetAsLoop()

◆ expandMemSetPatternAsLoop()

◆ expandPredBlockMask()

ARM::PredBlockMask llvm::expandPredBlockMask ( ARM::PredBlockMask BlockMask,
ARMVCC::VPTCodes Kind )

◆ 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.

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.

Replace Rem with generated code.

Definition at line 354 of file IntegerDivision.cpp.

References assert(), llvm::User::dropAllReferences(), dyn_cast(), llvm::Instruction::eraseFromParent(), expandDivision(), generateSignedRemainderCode(), generateUnsignedRemainderCode(), 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(), expandRemainderUpTo64Bits(), and runImpl().

◆ 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 455 of file IntegerDivision.cpp.

References assert(), cast(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), 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 504 of file IntegerDivision.cpp.

References assert(), cast(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::Type::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().

◆ expandUser()

◆ expandVectorPredicationIntrinsic()

VPExpansionDetails llvm::expandVectorPredicationIntrinsic ( VPIntrinsic & VPI,
const TargetTransformInfo & TTI )

Expand a vector predication intrinsic.

Returns the kind of expansion that was applied to the intrinsic.

Definition at line 714 of file ExpandVectorPredication.cpp.

◆ expectedToErrorOr()

template<typename T>
ErrorOr< T > llvm::expectedToErrorOr ( Expected< T > && E)

Convert an Expected<T> to an ErrorOr<T>.

Definition at line 1252 of file Error.h.

References E(), and errorToErrorCode().

◆ expectedToErrorOrAndEmitErrors()

◆ expectedToOptional()

template<typename T>
std::optional< T > llvm::expectedToOptional ( Expected< T > && E)

Convert an Expected to an Optional 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 problems: perhaps the error should be propagated further, or the error-producer should just return an Optional in the first place.

Definition at line 1094 of file Error.h.

References consumeError(), and E().

◆ expectedToStdOptional()

template<typename T>
std::optional< T > llvm::expectedToStdOptional ( Expected< T > && E)

Definition at line 1101 of file Error.h.

References consumeError(), and E().

◆ exponentInf()

constexpr APFloatBase::ExponentType llvm::exponentInf ( const fltSemantics & semantics)
staticconstexpr

Definition at line 398 of file APFloat.cpp.

References llvm::fltSemantics::maxExponent.

Referenced by llvm::detail::IEEEFloat::makeInf().

◆ exponentNaN()

◆ exponentZero()

constexpr APFloatBase::ExponentType llvm::exponentZero ( const fltSemantics & semantics)
staticconstexpr

Definition at line 393 of file APFloat.cpp.

References llvm::fltSemantics::minExponent.

Referenced by exponentNaN(), and llvm::detail::IEEEFloat::makeZero().

◆ exportDebugifyStats()

void llvm::exportDebugifyStats ( StringRef Path,
const DebugifyStatsMap & Map )

Definition at line 1023 of file Debugify.cpp.

References errs(), and Stats.

◆ exprAdd()

Expected< APInt > llvm::exprAdd ( const APInt & Lhs,
const APInt & Rhs,
bool & Overflow )

Performs operation and.

Returns
its result or an error in case of failure, such as if an overflow occurs.

Definition at line 155 of file FileCheck.cpp.

References llvm::APInt::sadd_ov().

◆ exprDiv()

Expected< APInt > llvm::exprDiv ( const APInt & Lhs,
const APInt & Rhs,
bool & Overflow )

Definition at line 170 of file FileCheck.cpp.

References llvm::APInt::isZero(), make_error(), and llvm::APInt::sdiv_ov().

◆ exprMax()

Expected< APInt > llvm::exprMax ( const APInt & Lhs,
const APInt & Rhs,
bool & Overflow )

Definition at line 179 of file FileCheck.cpp.

References llvm::APInt::slt().

Referenced by exprMin().

◆ exprMin()

Expected< APInt > llvm::exprMin ( const APInt & Lhs,
const APInt & Rhs,
bool & Overflow )

Definition at line 185 of file FileCheck.cpp.

References cantFail(), and exprMax().

◆ exprMul()

Expected< APInt > llvm::exprMul ( const APInt & Lhs,
const APInt & Rhs,
bool & Overflow )

Definition at line 165 of file FileCheck.cpp.

References llvm::APInt::smul_ov().

◆ exprSub()

Expected< APInt > llvm::exprSub ( const APInt & Lhs,
const APInt & Rhs,
bool & Overflow )

Definition at line 160 of file FileCheck.cpp.

References llvm::APInt::ssub_ov().

◆ extractBits()

uint32_t llvm::extractBits ( uint64_t Val,
uint32_t Hi,
uint32_t Lo )
inlinestatic

Definition at line 736 of file RuntimeDyldELF.cpp.

References Hi, and Lo.

Referenced by combineX86ShufflesRecursively(), and llvm::GISelValueTracking::computeKnownBitsImpl().

◆ extractBranchWeights() [1/3]

bool llvm::extractBranchWeights ( const Instruction & I,
SmallVectorImpl< uint32_t > & Weights )

Extract branch weights attatched to an Instruction.

Parameters
IThe Instruction to extract weights from.
[out]WeightsAn output vector to fill with branch weights
Returns
True if weights were extracted, False otherwise. When false Weights will be cleared.

Definition at line 188 of file ProfDataUtils.cpp.

References extractBranchWeights(), and I.

◆ extractBranchWeights() [2/3]

bool llvm::extractBranchWeights ( const Instruction & I,
uint64_t & TrueVal,
uint64_t & FalseVal )

Extract branch weights from a conditional branch or select Instruction.

Parameters
IThe instruction to extract branch weights from.
[out]TrueValwill contain the branch weight for the True branch
[out]FalseValwill contain the branch weight for the False branch
Returns
True on success with profile weights filled in. False if no metadata or invalid metadata was found.

Definition at line 194 of file ProfDataUtils.cpp.

References assert(), extractBranchWeights(), I, and llvm::SmallVectorTemplateCommon< T, typename >::size().

◆ extractBranchWeights() [3/3]

◆ extractBuildAttributesSubsections()

◆ extractConstantMask()

◆ extractFromBranchWeightMD32()

void llvm::extractFromBranchWeightMD32 ( const MDNode * ProfileData,
SmallVectorImpl< uint32_t > & Weights )

Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes.

Supports uint32_t.

Definition at line 170 of file ProfDataUtils.cpp.

Referenced by updateBranchWeights().

◆ extractFromBranchWeightMD64()

void llvm::extractFromBranchWeightMD64 ( const MDNode * ProfileData,
SmallVectorImpl< uint64_t > & Weights )

Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes.

Supports uint64_t.

Definition at line 175 of file ProfDataUtils.cpp.

Referenced by getBranchWeights().

◆ extractInstructionFeatures()

◆ extractMBBFrequency()

void llvm::extractMBBFrequency ( const SlotIndex CurrentIndex,
const size_t CurrentInstructionIndex,
std::map< MachineBasicBlock *, size_t > & VisitedMBBs,
function_ref< float(SlotIndex)> GetMBBFreq,
MachineBasicBlock * CurrentMBBReference,
MLModelRunner * RegallocRunner,
const int MBBFreqIndex,
const int MBBMappingIndex )

◆ extractParts() [1/2]

◆ extractParts() [2/2]

◆ extractProbe() [1/2]

◆ extractProbe() [2/2]

◆ extractProbeFromDiscriminator() [1/2]

◆ extractProbeFromDiscriminator() [2/2]

std::optional< PseudoProbe > llvm::extractProbeFromDiscriminator ( const Instruction & Inst)

◆ extractProfTotalWeight() [1/2]

bool llvm::extractProfTotalWeight ( const Instruction & I,
uint64_t & TotalWeights )

Retrieve the total of all weights from an instruction.

Parameters
IThe instruction to extract the total weight from
[out]TotalWeightsinput variable to fill with total weights
Returns
True on success with profile total weights filled in. False if no metadata was found.

Definition at line 242 of file ProfDataUtils.cpp.

References extractProfTotalWeight(), and I.

◆ extractProfTotalWeight() [2/2]

bool llvm::extractProfTotalWeight ( const MDNode * ProfileData,
uint64_t & TotalWeights )

Retrieve the total of all weights from MD_prof data.

Parameters
ProfileDataThe profile data to extract the total weight from
[out]TotalWeightsinput variable to fill with total weights
Returns
True on success with profile total weights filled in. False if no metadata was found.

Definition at line 214 of file ProfDataUtils.cpp.

References llvm::MDProfLabels::BranchWeights, dyn_cast(), llvm::mdconst::dyn_extract(), llvm::mdconst::extract(), getBranchWeightOffset(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), Offset, and llvm::MDProfLabels::ValueProfile.

Referenced by extractProfTotalWeight().

◆ ExtractTypeInfo()

GlobalValue * llvm::ExtractTypeInfo ( Value * V)

ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.

Definition at line 185 of file Analysis.cpp.

References assert(), cast(), dyn_cast(), llvm::GlobalVariable::getInitializer(), llvm::Value::getName(), llvm::GlobalVariable::hasInitializer(), isa(), and llvm::Constant::stripPointerCasts().

◆ extractVectorParts()

◆ extractWidenableCondition()

Value * llvm::extractWidenableCondition ( const User * U)

Definition at line 151 of file GuardUtils.cpp.

References dyn_cast(), isWidenableCondition(), and parseCondition().

◆ Failed() [1/2]

◆ Failed() [2/2]

template<typename InfoT, typename M>
testing::Matcher< const detail::ErrorHolder & > llvm::Failed ( M Matcher)

Definition at line 203 of file Error.h.

◆ failed()

bool llvm::failed ( LogicalResult Result)
inline

Utility function that returns true if the provided LogicalResult corresponds to a failure value.

Definition at line 71 of file LogicalResult.h.

Referenced by llvm::lsp::TextDocumentContentChangeEvent::applyTo(), llvm::FailureOr< T >::FailureOr(), llvm::FailureOr< T >::FailureOr(), and llvm::lsp::JSONTransportInputOverFile::readStandardMessage().

◆ FailedWithMessage()

template<typename... M>
testing::Matcher< const detail::ErrorHolder & > llvm::FailedWithMessage ( M... Matcher)

Definition at line 209 of file Error.h.

◆ FailedWithMessageArray()

template<typename M>
testing::Matcher< const detail::ErrorHolder & > llvm::FailedWithMessageArray ( M Matcher)

Definition at line 216 of file Error.h.

◆ failure()

LogicalResult llvm::failure ( bool IsFailure = true)
inline

◆ FastCC_ARM_APCS()

bool llvm::FastCC_ARM_APCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ fatal_exit()

◆ fcmpImpliesClass() [1/4]

std::tuple< Value *, FPClassTest, FPClassTest > llvm::fcmpImpliesClass ( CmpInst::Predicate Pred,
const Function & F,
Value * LHS,
const APFloat & ConstRHS,
bool LookThroughSrc = true )
inline

◆ fcmpImpliesClass() [2/4]

std::tuple< Value *, FPClassTest, FPClassTest > llvm::fcmpImpliesClass ( CmpInst::Predicate Pred,
const Function & F,
Value * LHS,
FPClassTest RHSClass,
bool LookThroughSrc = true )
inline

◆ fcmpImpliesClass() [3/4]

std::tuple< Value *, FPClassTest, FPClassTest > llvm::fcmpImpliesClass ( CmpInst::Predicate Pred,
const Function & F,
Value * LHS,
Value * RHS,
bool LookThroughSrc = true )
inline

◆ fcmpImpliesClass() [4/4]

std::tuple< Register, FPClassTest, FPClassTest > llvm::fcmpImpliesClass ( CmpInst::Predicate Pred,
const MachineFunction & MF,
Register LHS,
Register RHS,
bool LookThroughSrc = true )
inline

Compute the possible floating-point classes that LHS could be based on fcmp \Pred LHS, RHS.

Returns
{ TestedValue, ClassesIfTrue, ClassesIfFalse }

If the compare returns an exact class test, ClassesIfTrue == ~ClassesIfFalse

This is a less exact version of fcmpToClassTest (e.g. fcmpToClassTest will only succeed for a test of x > 0 implies positive, but not x > 1).

If LookThroughSrc is true, consider the input value when computing the mask. This may look through sign bit operations.

If LookThroughSrc is false, ignore the source value (i.e. the first pair element will always be LHS.

Definition at line 51 of file MachineFloatingPointPredicateUtils.h.

References llvm::GenericFloatingPointPredicateUtils< MachineSSAContext >::fcmpImpliesClass(), LHS, and RHS.

◆ fcmpToClassTest() [1/2]

std::pair< Value *, FPClassTest > llvm::fcmpToClassTest ( FCmpInst::Predicate Pred,
const Function & F,
Value * LHS,
const APFloat * ConstRHS,
bool LookThroughSrc = true )
inline

Returns a pair of values, which if passed to llvm.is.fpclass, returns the same result as an fcmp with the given operands.

If LookThroughSrc is true, consider the input value when computing the mask.

If LookThroughSrc is false, ignore the source value (i.e. the first pair element will always be LHS.

Definition at line 58 of file FloatingPointPredicateUtils.h.

References F, llvm::GenericFloatingPointPredicateUtils< SSAContext >::fcmpToClassTest(), and LHS.

◆ fcmpToClassTest() [2/2]

std::pair< Value *, FPClassTest > llvm::fcmpToClassTest ( FCmpInst::Predicate Pred,
const Function & F,
Value * LHS,
Value * RHS,
bool LookThroughSrc = true )
inline

Returns a pair of values, which if passed to llvm.is.fpclass, returns the same result as an fcmp with the given operands.

If LookThroughSrc is true, consider the input value when computing the mask.

If LookThroughSrc is false, ignore the source value (i.e. the first pair element will always be LHS.

Definition at line 43 of file FloatingPointPredicateUtils.h.

References F, llvm::GenericFloatingPointPredicateUtils< SSAContext >::fcmpToClassTest(), LHS, and RHS.

Referenced by foldFCmpToFPClassTest(), matchIsFPClassLikeFCmp(), and simplifyFCmpInst().

◆ 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 162 of file FormattedStream.cpp.

References dbgs().

◆ 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 155 of file FormattedStream.cpp.

References errs().

◆ fill()

◆ fillMapFromAssume()

void llvm::fillMapFromAssume ( AssumeInst & Assume,
RetainedKnowledgeMap & Result )

Insert into the map all the informations contained in the operand bundles of the llvm.assume.

This should be used instead of hasAttributeInAssume when many queries are going to be made on the same llvm.assume. String attributes are not inserted in the map. If the IR changes the map will be outdated.

Definition at line 70 of file AssumeBundleQueries.cpp.

References ABA_Argument, ABA_WasOn, bundleHasArgument(), dyn_cast(), llvm::Attribute::getAttrKindFromName(), getValueFromBundleOpInfo(), InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::MinMax::Max, llvm::MinMax::Min, and llvm::Attribute::None.

◆ filter_to_vector() [1/2]

template<unsigned Size, class ContainerTy, class PredicateFn>
auto llvm::filter_to_vector ( ContainerTy && C,
PredicateFn && Pred )

Filter a range to a SmallVector with the element types deduced.

Definition at line 24 of file SmallVectorExtras.h.

References llvm::CallingConv::C, make_filter_range(), and to_vector().

◆ filter_to_vector() [2/2]

template<class ContainerTy, class PredicateFn>
auto llvm::filter_to_vector ( ContainerTy && C,
PredicateFn && Pred )

Filter a range to a SmallVector with the element types deduced.

Definition at line 31 of file SmallVectorExtras.h.

References llvm::CallingConv::C, make_filter_range(), and to_vector().

◆ filterDbgVars()

◆ filterDeadComdatFunctions()

void llvm::filterDeadComdatFunctions ( 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 319 of file ModuleUtils.cpp.

References all_of(), llvm::CallingConv::C, llvm::SmallPtrSetImpl< PtrType >::contains(), dyn_cast(), erase_if(), F, and llvm::SmallPtrSetImpl< PtrType >::insert().

Referenced by llvm::CallGraphUpdater::finalize(), and llvm::InlinerPass::run().

◆ finalizeBundle() [1/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 216 of file MachineInstrBundle.cpp.

References finalizeBundle(), and MBB.

◆ finalizeBundle() [2/2]

void llvm::finalizeBundle ( MachineBasicBlock & MBB,
MachineBasicBlock::instr_iterator FirstMI,
MachineBasicBlock::instr_iterator LastMI )

◆ finalizeBundles()

bool llvm::finalizeBundles ( MachineFunction & MF)

finalizeBundles - Finalize instruction bundles in the specified MachineFunction.

Return true if any bundles are finalized.

Definition at line 228 of file MachineInstrBundle.cpp.

References assert(), Changed, finalizeBundle(), and MBB.

◆ find()

template<typename R, typename T>
auto llvm::find ( R && Range,
const T & Val )

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

Definition at line 1731 of file STLExtras.h.

References adl_begin(), adl_end(), Range, and T.

Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), calcPredicateUsingInteger(), llvm::LoopInfoBase< BasicBlock, Loop >::changeTopLevelLoop(), CreateGCRelocates(), def_chain(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::deinitialize(), deleteDeadLoop(), llvm::orc::ExecutionSession::deregisterResourceManager(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::DWARFUnit::determineStringOffsetsTableContribution(), dropRegDescribedVar(), EmitCamlGlobal(), llvm::EquivalenceClasses< BasicBlock * >::erase(), llvm::PriorityQueue< T, Sequence, Compare >::erase_one(), llvm::DominatorTreeBase< BlockT, false >::eraseNode(), llvm::mca::InstructionTables::execute(), llvm::sys::DynamicLibrary::HandleSet::Find(), llvm::rdf::IndexedSet< T, N >::find(), llvm::ReadyQueue::find(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), llvm::DWARFUnit::getCompilationDir(), getCPUDefaultTargetFeatures(), llvm::MachineBranchProbabilityInfo::getEdgeProbability(), getFirstIndexOf(), llvm::VPBlockBase::getIndexForPredecessor(), llvm::VPBlockBase::getIndexForSuccessor(), getOrCreateFrameHelper(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::rdf::IndexedSet< T, N >::insert(), llvm::IntervalMapOverlaps< MapA, MapB >::IntervalMapOverlaps(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), lowerV8I16GeneralSingleInputShuffle(), mergeConditionalStoreToAddress(), llvm::DXContainerYAML::PSVInfo::PSVInfo(), rebuildLoopAfterUnswitch(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::StatepointLoweringState::relocCallVisited(), llvm::LatencyPriorityQueue::remove(), llvm::ResourcePriorityQueue::remove(), llvm::SetVector< EdgeType * >::remove(), llvm::LoopBase< BlockT, LoopT >::removeBlockFromLoop(), llvm::LoopBase< BlockT, LoopT >::removeChildLoop(), RemoveInstInputs(), llvm::orc::ExecutionSession::removeJITDylibs(), llvm::LiveVariables::VarInfo::removeKill(), llvm::GISelObserverWrapper::removeObserver(), llvm::SUnit::removePred(), llvm::PassRegistry::removeRegistrationListener(), llvm::MachineBasicBlock::removeSuccessor(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), llvm::DbgVariableRecord::replaceVariableLocationOp(), reservePreviousStackSlotForValue(), salvageDebugInfoForDbgValues(), llvm::DomTreeNodeBase< BlockT >::setIDom(), llvm::sandboxir::SeedBundle::setUsed(), llvm::SIMachineFunctionInfo::shiftWwmVGPRsToLowestRange(), llvm::DXContainerYAML::SignatureElement::SignatureElement(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), splitMBB(), llvm::MachineBasicBlock::splitSuccessor(), llvm::MCDwarfLineTableHeader::tryGetFile(), llvm::MCJIT::UnregisterJITEventListener(), llvm::orc::RTDyldObjectLinkingLayer::unregisterJITEventListener(), verifySubExpr(), and llvm::RegisterTargetPassConfigCallback::~RegisterTargetPassConfigCallback().

◆ find_if()

template<typename R, typename UnaryPredicate>
auto llvm::find_if ( R && Range,
UnaryPredicate P )

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

Definition at line 1738 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::VPlanTransforms::addActiveLaneMask(), addCalleeSavedRegs(), addRegLanes(), allSameBlock(), allSameOpcode(), llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::ARMFrameLowering::assignCalleeSavedSpillSlots(), llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), llvm::ELFAttrs::attrTypeAsString(), llvm::ELFAttrs::attrTypeFromString(), cacheDIVar(), llvm::SIMachineFunctionInfo::checkIndexInPrologEpilogSGPRSpills(), llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::clearAnalysis(), ConvertCostTableLookup(), convertToLocalCopy(), CostTableLookup(), llvm::mca::EntryStage::cycleEnd(), llvm::AMDGPUDisassembler::decodeVersionImm(), llvm::RegPressureTracker::discoverLiveInOrOut(), llvm::ArrayRef< llvm::cfg::Update< MachineBasicBlock * > >::drop_until(), llvm::MutableArrayRef< uint8_t >::drop_until(), llvm::VPlan::duplicate(), llvm::PMDataManager::emitInstrCountChangedRemark(), llvm::TimeTraceProfiler::end(), expandPseudoVFMK(), detail::find_unique(), llvm::sandboxir::SwitchInst::findCaseValue(), llvm::SwitchInst::findCaseValue(), llvm::DGNode< DDGNode, DDGEdge >::findEdgeTo(), findHeaderMask(), llvm::coverage::MCDCRecord::findIndependencePairs(), llvm::DirectedGraph< DDGNode, DDGEdge >::findNode(), findSection(), llvm::objcopy::elf::Object::findSection(), llvm::ModuleSummaryIndex::findSummaryInModule(), gatherPossiblyVectorizableLoads(), getAllocationDataForFunction(), llvm::DagInit::getArgNo(), llvm::X86::getCPUDispatchMangling(), llvm::Xtensa::getCPUFeatures(), llvm::VPlan::getExitBlock(), llvm::X86::getFeaturesForCPU(), getFirstDefinitionForLinker(), llvm::vputils::getFirstLoopHeader(), llvm::MachineBasicBlock::getFirstTerminatorForward(), getFreeFunctionDataForFunction(), getGEPCosts(), llvm::CacheCost::getLoopCost(), llvm::sandboxir::VecUtils::getLowest(), llvm::AVRMCExpr::getName(), getNumPushPopRegs(), llvm::mca::InstructionBase::getOperand(), llvm::SIMachineFunctionInfo::getPrologEpilogSGPRSaveRestoreInfo(), llvm::AArch64RegisterInfo::getRegAllocationHints(), getRegLanes(), getSameOpcode(), llvm::SIMachineFunctionInfo::getScratchSGPRCopyDstReg(), getSHUFPDImm(), getSplatIndex(), getTargetIndexName(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getV4X86ShuffleImm(), llvm::objcopy::coff::handleArgs(), llvm::SIMachineFunctionInfo::hasPrologEpilogSGPRSpillEntry(), llvm::logicalview::LVBinaryReader::includeInlineeLines(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::X86FrameLowering::inlineStackProbe(), llvm::xray::Profile::internPath(), isEXTMask(), isFixedVectorShuffle(), llvm::MachineBasicBlock::isLiveIn(), llvm::CombinerHelper::isPredecessor(), isWideDUPMask(), LLVMGetTargetFromName(), loadObj(), llvm::TargetRegistry::lookupTarget(), llvm::TargetRegistry::lookupTarget(), llvm::SITargetLowering::LowerCall(), lowerShuffleAsElementInsertion(), lowerShuffleWithSHUFPS(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), llvm::PatternMatch::m_SplatOrPoisonMask::match(), llvm::rdf::operator<<(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::AVRMCExpr::parseSpecifier(), passingValueIsAlwaysUndefined(), PerformExtractEltToVMOVRRD(), performVP_TRUNCATECombine(), placeSources(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), llvm::logicalview::LVBinaryReader::processLines(), processShuffleMasks(), llvm::RegPressureTracker::recede(), llvm::orc::JITDylib::removeFromLinkOrder(), llvm::orc::JITDylib::removeGenerator(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::MachineBasicBlock::removeLiveIn(), llvm::orc::LinkGraphLinkingLayer::removePlugin(), removeRegLanes(), llvm::RegionBase< Tr >::removeSubRegion(), llvm::Record::removeValue(), rescheduleCanonically(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::HipStdParMathFixupPass::run(), runImpl(), scavengeVReg(), llvm::EngineBuilder::selectTarget(), setRegZero(), llvm::ELFYAML::shouldAllocateFileSpace(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::ArrayRef< llvm::cfg::Update< MachineBasicBlock * > >::take_until(), llvm::MutableArrayRef< uint8_t >::take_until(), llvm::AMDGPUSymbolizer::tryAddingSymbolicOperand(), llvm::X86::updateImpliedFeatures(), llvm::objcopy::elf::Object::updateSection(), llvm::objcopy::elf::Object::updateSectionData(), UpgradeDebugInfo(), llvm::X86::validateCPUSpecificCPUDispatch(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().

◆ find_if_not()

◆ find_singleton()

template<typename T, typename R, typename Predicate>
T * llvm::find_singleton ( R && Range,
Predicate P,
bool AllowRepeats = false )

Return the single value in Range that satisfies P(<member of Range> *, AllowRepeats)->T * returning nullptr when no values or multiple values were found.

When AllowRepeats is true, multiple values that compare equal are allowed.

Definition at line 1767 of file STLExtras.h.

References A(), P, Range, and T.

Referenced by llvm::RegionBase< Tr >::getEnteringBlock(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::RegionBase< Tr >::getExitingBlock(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::LoopBase< BlockT, LoopT >::getUniqueLatchExitBlock(), and llvm::VPlanTransforms::handleMaxMinNumReductions().

◆ find_singleton_nested()

template<typename T, typename R, typename Predicate>
std::pair< T *, bool > llvm::find_singleton_nested ( R && Range,
Predicate P,
bool AllowRepeats = false )

Return a pair consisting of the single value in Range that satisfies P(<member of Range> , AllowRepeats)->std::pair<T, bool> returning nullptr when no values or multiple values were found, and a bool indicating whether multiple values were found to cause the nullptr.

When AllowRepeats is true, multiple values that compare equal are allowed. The predicate P returns a pair<T *, bool> where T is the singleton while the bool indicates whether multiples have already been found. It is expected that first will be nullptr when second is true. This allows using find_singleton_nested within the predicate \P.

Definition at line 1792 of file STLExtras.h.

References A(), assert(), P, Range, and T.

Referenced by getExitBlockHelper().

◆ findAllNVVMAnnotation()

bool llvm::findAllNVVMAnnotation ( const GlobalValue * gv,
const std::string & prop,
std::vector< unsigned > & retval )
static

Definition at line 130 of file NVPTXUtilities.cpp.

References cacheAnnotationFromMD(), and llvm::GlobalValue::getParent().

Referenced by argHasNVVMAnnotation().

◆ findAllocaForValue() [1/2]

const AllocaInst * llvm::findAllocaForValue ( const Value * V,
bool OffsetZero = false )
inline

Definition at line 489 of file ValueTracking.h.

References findAllocaForValue().

◆ findAllocaForValue() [2/2]

AllocaInst * llvm::findAllocaForValue ( Value * V,
bool OffsetZero = false )

Returns unique alloca where the value comes from, or nullptr.

If OffsetZero is true check that V points to the begining of the alloca.

Definition at line 6857 of file ValueTracking.cpp.

References assert(), llvm::SmallPtrSetImpl< PtrType >::count(), dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), GEP, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by findAllocaForValue().

◆ findArrayDimensions()

◆ FindAvailableLoadedValue() [1/2]

Value * llvm::FindAvailableLoadedValue ( LoadInst * Load,
BasicBlock * ScanBB,
BasicBlock::iterator & ScanFrom,
unsigned MaxInstsToScan = DefMaxInstsToScan,
BatchAAResults * 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 538 of file Loads.cpp.

References findAvailablePtrLoadStore(), and llvm::MemoryLocation::get().

Referenced by forwardHandleAccesses(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), tryPromoteCall(), and llvm::InstCombinerImpl::visitLoadInst().

◆ FindAvailableLoadedValue() [2/2]

Value * llvm::FindAvailableLoadedValue ( LoadInst * Load,
BatchAAResults & AA,
bool * IsLoadCSE,
unsigned MaxInstsToScan = DefMaxInstsToScan )

This overload provides a more efficient implementation of FindAvailableLoadedValue() for the case where we are not interested in finding the closest clobbering instruction if no available load is found.

This overload cannot be used to scan across multiple blocks.

Definition at line 755 of file Loads.cpp.

References Available, DL, llvm::MemoryLocation::get(), getAvailableLoadStore(), isModSet(), make_range(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::BasicBlock::rend().

◆ findAvailablePtrLoadStore()

Value * llvm::findAvailablePtrLoadStore ( const MemoryLocation & Loc,
Type * AccessTy,
bool AtLeastAtomic,
BasicBlock * ScanBB,
BasicBlock::iterator & ScanFrom,
unsigned MaxInstsToScan,
BatchAAResults * AA,
bool * IsLoadCSE,
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
LocThe location 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]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 671 of file Loads.cpp.

References areNonOverlapSameBaseLoadAndStore(), Available, llvm::BasicBlock::begin(), DL, dyn_cast(), getAvailableLoadStore(), llvm::BasicBlock::getDataLayout(), isa(), llvm::Instruction::isDebugOrPseudoInst(), isModSet(), and llvm::Instruction::mayWriteToMemory().

Referenced by FindAvailableLoadedValue(), and llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().

◆ findCMPToFoldIntoCBZ()

MachineInstr * llvm::findCMPToFoldIntoCBZ ( MachineInstr * Br,
const TargetRegisterInfo * TRI )

Search backwards from a tBcc to find a tCMPi8 against 0, meaning we can convert them to a tCBZ or tCBNZ.

Return nullptr if not found.

Definition at line 5445 of file ARMBaseInstrInfo.cpp.

References llvm::ARMCC::AL, llvm::MachineBasicBlock::begin(), getInstrPredicate(), llvm::MachineInstr::getParent(), isARMLowRegister(), registerDefinedBetween(), and TRI.

Referenced by llvm::ARMBaseInstrInfo::isProfitableToIfCvt(), and llvm::ARMBaseInstrInfo::predictBranchSizeForIfCvt().

◆ findDbgUsers()

◆ findDbgValues()

◆ findDefsUsedOutsideOfLoop()

SmallVector< Instruction *, 8 > llvm::findDefsUsedOutsideOfLoop ( Loop * L)

Returns the instructions that use values defined in the loop.

Definition at line 124 of file LoopUtils.cpp.

References any_of(), Block, cast(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Users.

Referenced by canTailPredicateLoop(), and 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 109 of file TypeMetadataUtils.cpp.

References assert(), dyn_cast(), findCallsAtConstantOffset(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::uses().

Referenced by addIntrinsicToSummary().

◆ findDevirtualizableCallsForTypeTest()

◆ findDVRDeclares()

TinyPtrVector< DbgVariableRecord * > llvm::findDVRDeclares ( Value * V)

Finds dbg.declare records declaring local variables as living in the memory that 'V' points to.

Definition at line 49 of file DebugInfo.cpp.

References llvm::DbgVariableRecord::Declare, llvm::ValueAsMetadata::getIfExists(), and llvm::TinyPtrVector< EltTy >::push_back().

Referenced by cacheDIVar(), insertSpills(), remarkAlloca(), and replaceDbgDeclare().

◆ findDVRValues()

TinyPtrVector< DbgVariableRecord * > llvm::findDVRValues ( Value * V)

As above, for DVRValues.

Definition at line 66 of file DebugInfo.cpp.

References llvm::ValueAsMetadata::getIfExists(), and llvm::TinyPtrVector< EltTy >::push_back().

◆ FindEarliestCapture()

std::pair< Instruction *, CaptureComponents > llvm::FindEarliestCapture ( const Value * V,
Function & F,
bool ReturnCaptures,
const DominatorTree & DT,
CaptureComponents Mask,
unsigned MaxUsesToExplore = 0 )

◆ findFirstVPTPredOperandIdx()

int llvm::findFirstVPTPredOperandIdx ( const MachineInstr & MI)

◆ findFixedSizeArrayDimensions()

bool llvm::findFixedSizeArrayDimensions ( ScalarEvolution & SE,
const SCEV * Expr,
SmallVectorImpl< uint64_t > & Sizes,
const SCEV * ElementSize )

Compute the dimensions of fixed size array from \Expr and save the results in Sizes.

Definition at line 525 of file Delinearization.cpp.

References assert(), collectConstantAbsSteps(), I, sort(), tryIntoAPInt(), and unique().

Referenced by delinearizeFixedSizeArray().

◆ 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 35 of file CFG.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallPtrSetImpl< PtrType >::erase(), F, I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), succ_begin(), succ_empty(), and succ_end().

Referenced by llvm::JumpThreadingPass::findLoopHeaders(), functionWillReturn(), and iterativelySimplifyCFG().

◆ findHistogram()

bool llvm::findHistogram ( LoadInst * LI,
StoreInst * HSt,
Loop * TheLoop,
const PredicatedScalarEvolution & PSE,
SmallVectorImpl< HistogramInfo > & Histograms )
static

Find histogram operations that match high-level code in loops:

buckets[indices[i]]+=step;

It matches a pattern starting from HSt, which Stores to the 'buckets' array the computed histogram. It uses a BinOp to sum all counts, storing them using a loop-variant index Load from the 'indices' input array.

On successful matches it updates the STATISTIC 'HistogramsDetected', regardless of hardware support. When there is support, it additionally stores the BinOp/Load pairs in HistogramCounts, as well the pointers used to update histogram in HistogramPtrs.

Definition at line 1104 of file LoopVectorizationLegality.cpp.

References cast(), dbgs(), dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), GEP, llvm::User::getOperand(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::ScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), isa(), llvm::Loop::isLoopInvariant(), LLVM_DEBUG, llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_BinOp(), llvm::PatternMatch::m_Instruction(), llvm::PatternMatch::m_Load(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Store(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZExtOrSExtOrSelf(), and llvm::PatternMatch::match().

◆ findIndirectCalls()

◆ FindInsertedValue()

Value * llvm::FindInsertedValue ( Value * V,
ArrayRef< unsigned > idx_range,
std::optional< BasicBlock::iterator > InsertBefore = std::nullopt )

Given an aggregate 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 aggregate.

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 empty, this function will duplicate (modified) insertvalues when a part of a nested struct is extracted.

If InsertBefore is not null, this function will duplicate (modified) insertvalues when a part of a nested struct is extracted.

Definition at line 6287 of file ValueTracking.cpp.

References llvm::SmallVectorImpl< T >::append(), ArrayRef(), assert(), llvm::ArrayRef< T >::begin(), BuildSubAggregate(), llvm::CallingConv::C, dyn_cast(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), FindInsertedValue(), llvm::ExtractValueInst::getIndexedType(), I, llvm::SmallVectorImpl< T >::reserve(), llvm::ArrayRef< T >::size(), size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::ArrayRef< T >::slice().

Referenced by BuildSubAggregate(), and FindInsertedValue().

◆ findMaximalSubpartOfIllFormedUTF8Sequence()

unsigned llvm::findMaximalSubpartOfIllFormedUTF8Sequence ( const UTF8 * source,
const UTF8 * sourceEnd )
static

Definition at line 449 of file ConvertUTF.cpp.

References assert(), and isLegalUTF8Sequence().

Referenced by ConvertUTF8toUTF32Impl().

◆ findOneNVVMAnnotation()

std::optional< unsigned > llvm::findOneNVVMAnnotation ( const GlobalValue * gv,
const std::string & prop )
static

Definition at line 111 of file NVPTXUtilities.cpp.

References cacheAnnotationFromMD(), and llvm::GlobalValue::getParent().

Referenced by globalHasNVVMAnnotation().

◆ 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 1067 of file LoopInfo.cpp.

References findOptionMDForLoopID(), and llvm::Loop::getLoopID().

Referenced by collectUnswitchCandidates(), findStringMetadataForLoop(), getOptionalBoolLoopAttribute(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::Loop::isAnnotatedParallel(), llvm::Loop::setLoopMustProgress(), and unswitchBestCondition().

◆ 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 1041 of file LoopInfo.cpp.

References assert(), drop_begin(), dyn_cast(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), and llvm::MDNode::operands().

Referenced by findOptionMDForLoop(), and makeFollowupLoopID().

◆ findPHICopyInsertPoint()

MachineBasicBlock::iterator llvm::findPHICopyInsertPoint ( MachineBasicBlock * MBB,
MachineBasicBlock * SuccMBB,
Register SrcReg )

findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB.

This needs to be after any def of SrcReg, but before any subsequent point where control flow might jump out of the basic block.

Definition at line 21 of file PHIEliminationUtils.cpp.

References llvm::SmallPtrSetImpl< PtrType >::contains(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MachineBasicBlock::isEHPad(), llvm::MachineBasicBlock::isInlineAsmBrIndirectTarget(), MBB, and MRI.

◆ findScalarElement()

◆ findSplitCandidate()

BranchInst * llvm::findSplitCandidate ( const Loop & L,
ScalarEvolution & SE,
ConditionInfo & ExitingCond,
ConditionInfo & SplitCandidateCond )
static

◆ findSplitPointForStackProtector()

MachineBasicBlock::iterator llvm::findSplitPointForStackProtector ( MachineBasicBlock * BB,
const TargetInstrInfo & TII )

Find the split point at which to splice the end of BB into its success stack protector check machine basic block.

On many platforms, due to ABI constraints, terminators, even before register allocation, use physical registers. This creates an issue for us since physical registers at this point can not travel across basic blocks. Luckily, selectiondag always moves physical registers into vregs when they enter functions and moves them through a sequence of copies back into the physical registers right before the terminator creating a `‘Terminator Sequence’'. This function is searching for the beginning of the terminator sequence so that we can ensure that we splice off not just the terminator, but additionally the copies that move the vregs into the physical registers.

Definition at line 127 of file CodeGenCommonISel.cpp.

References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::getFirstTerminator(), MIIsInTerminatorSequence(), and TII.

◆ findStringMetadataForLoop()

std::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 1077 of file LoopInfo.cpp.

References findOptionMDForLoop(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm_unreachable.

Referenced by getAppleRuntimeUnrollPreferences(), and getOptionalIntLoopAttribute().

◆ findValuesAffectedByCondition()

◆ findVCToolChainViaCommandLine() [1/2]

LLVM_ABI bool llvm::findVCToolChainViaCommandLine ( vfs::FileSystem & VFS,
std::optional< llvm::StringRef > VCToolsDir,
std::optional< llvm::StringRef > VCToolsVersion,
std::optional< llvm::StringRef > WinSysRoot,
std::string & Path,
ToolsetLayout & VSLayout )

◆ findVCToolChainViaCommandLine() [2/2]

bool llvm::findVCToolChainViaCommandLine ( vfs::FileSystem & VFS,
std::optional< StringRef > VCToolsDir,
std::optional< StringRef > VCToolsVersion,
std::optional< StringRef > WinSysRoot,
std::string & Path,
ToolsetLayout & VSLayout )

◆ findVCToolChainViaEnvironment()

◆ findVCToolChainViaRegistry()

bool llvm::findVCToolChainViaRegistry ( std::string & Path,
ToolsetLayout & VSLayout )

Definition at line 727 of file MSVCPaths.cpp.

References llvm::sys::path::append(), getSystemRegistryString(), and OlderVS.

◆ findVCToolChainViaSetupConfig() [1/2]

LLVM_ABI bool llvm::findVCToolChainViaSetupConfig ( vfs::FileSystem & VFS,
std::optional< llvm::StringRef > VCToolsVersion,
std::string & Path,
ToolsetLayout & VSLayout )

◆ findVCToolChainViaSetupConfig() [2/2]

bool llvm::findVCToolChainViaSetupConfig ( vfs::FileSystem & VFS,
std::optional< StringRef > VCToolsVersion,
std::string & Path,
ToolsetLayout & VSLayout )

◆ findVTableAddrs()

◆ finishBuildOpDecorate()

void llvm::finishBuildOpDecorate ( MachineInstrBuilder & MIB,
const std::vector< uint32_t > & DecArgs,
StringRef StrImm )
static

◆ fixStackStores()

void llvm::fixStackStores ( MachineBasicBlock & MBB,
MachineBasicBlock::iterator StartMI,
const TargetInstrInfo & TII )
static

Replace pseudo store instructions that pass arguments through the stack with real instructions.

Definition at line 318 of file AVRFrameLowering.cpp.

References assert(), make_early_inc_range(), make_range(), MBB, MI, and TII.

Referenced by llvm::AVRFrameLowering::eliminateCallFramePseudoInstr().

◆ FixupKind()

◆ FlattenCFG()

bool llvm::FlattenCFG ( BasicBlock * BB,
AAResults * 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 533 of file FlattenCFG.cpp.

◆ floorDiv()

Definition at line 382 of file DynamicAPInt.h.

Referenced by llvm::DynamicAPInt::floorDiv.

◆ FlushFPConstant()

Constant * llvm::FlushFPConstant ( Constant * Operand,
const Instruction * I,
bool IsOutput )

Attempt to flush float point constant according to denormal mode set in the instruction's parent function attributes.

If so, return a zero with the correct sign, otherwise return the original constant. Inputs and outputs to floating point instructions can have their mode set separately, so the direction is also needed.

If the calling function's "denormal-fp-math" input mode is "dynamic" for the floating-point type, returns nullptr for denormal inputs.

Definition at line 1371 of file ConstantFolding.cpp.

References dyn_cast(), dyn_cast_or_null(), flushDenormalConstant(), flushDenormalConstantFP(), llvm::ConstantVector::get(), llvm::Constant::getAggregateElement(), llvm::VectorType::getElementCount(), llvm::VectorType::getElementType(), getInstrDenormalMode(), llvm::ConstantVector::getSplat(), llvm::Constant::getSplatValue(), llvm::Value::getType(), I, isa(), llvm::APFloat::isDenormal(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Splat.

Referenced by ConstantFoldCompareInstOperands(), and ConstantFoldFPInstOperands().

◆ fmt_align()

◆ fmt_consume()

support::detail::ErrorAdapter llvm::fmt_consume ( Error && Item)
inline

Definition at line 108 of file FormatAdapters.h.

Referenced by llvm::lsp::MessageHandler::parse().

◆ fmt_pad()

template<typename T>
support::detail::PadAdapter< T > llvm::fmt_pad ( T && Item,
size_t Left,
size_t Right )

Definition at line 96 of file FormatAdapters.h.

References Left, Right, and T.

◆ fmt_repeat()

template<typename T>
support::detail::RepeatAdapter< T > llvm::fmt_repeat ( T && Item,
size_t Count )

Definition at line 101 of file FormatAdapters.h.

References Count, and T.

Referenced by checkIntegrityScopesTree(), llvm::pdb::typesetItemList(), and llvm::pdb::typesetStringList().

◆ fneg()

FPClassTest llvm::fneg ( FPClassTest Mask)

Return the test mask which returns true if the value's sign bit is flipped.

Definition at line 14 of file FloatingPointMode.cpp.

References fcNan, fcNegInf, fcNegNormal, fcNegSubnormal, fcNegZero, fcPosInf, fcPosNormal, fcPosSubnormal, and fcPosZero.

Referenced by llvm::KnownFPClass::fneg(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().

◆ foldBranchToCommonDest()

bool llvm::foldBranchToCommonDest ( BranchInst * BI,
llvm::DomTreeUpdater * DTU = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
const TargetTransformInfo * TTI = nullptr,
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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 4138 of file SimplifyCFG.cpp.

References all_of(), BranchFoldThreshold, BranchFoldToCommonDestVectorMultiplier, cast(), Cond, CostKind, dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::BranchInst::getCondition(), llvm::BasicBlock::getParent(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Value::getType(), llvm::Function::hasMinSize(), llvm::Value::hasOneUse(), I, is_contained(), isa(), llvm::BranchInst::isConditional(), isSafeToSpeculativelyExecute(), llvm::BranchInst::isUnconditional(), isVectorOp(), Opc, performBranchToCommonDestFolding(), predecessors(), safeToMergeTerminators(), shouldFoldCondBranchesToCommonDestination(), llvm::SmallVectorTemplateCommon< T, typename >::size(), successors(), llvm::TargetTransformInfo::TCC_Free, llvm::TargetTransformInfo::TCK_CodeSize, and llvm::TargetTransformInfo::TCK_SizeAndLatency.

Referenced by simplifyOneLoop().

◆ foldFrameOffset()

void llvm::foldFrameOffset ( MachineBasicBlock::iterator & II,
int & Offset,
Register DstReg )
static

Fold a frame offset shared between two add instructions into a single one.

Definition at line 110 of file AVRRegisterInfo.cpp.

References II, MI, and Offset.

Referenced by llvm::AVRRegisterInfo::eliminateFrameIndex().

◆ foldImm()

int64_t llvm::foldImm ( const MachineOperand & MO,
const MachineRegisterInfo * MRI )

Definition at line 985 of file SPIRVUtils.cpp.

References getImm(), llvm_unreachable, and MRI.

Referenced by getArrayComponentCount().

◆ 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 1387 of file BasicBlockUtils.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), cast(), llvm::Instruction::clone(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::insertInto(), llvm::User::operands(), llvm::BasicBlock::removePredecessor(), and llvm::User::setOperand().

◆ FoldSingleEntryPHINodes()

bool 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 144 of file BasicBlockUtils.cpp.

References llvm::BasicBlock::begin(), dyn_cast(), llvm::PoisonValue::get(), isa(), and llvm::MemoryDependenceResults::removeInstruction().

Referenced by foldCondBranchOnValueKnownInPredecessorImpl(), MergeBlockIntoPredecessor(), normalizeForInvokeSafepoint(), and llvm::RewriteStatepointsForGC::runOnFunction().

◆ for_each()

◆ forcePrintFuncIR()

bool llvm::forcePrintFuncIR ( )

Definition at line 150 of file PrintPasses.cpp.

References LoopPrintFuncScope.

Referenced by printLoop().

◆ forcePrintModuleIR()

bool llvm::forcePrintModuleIR ( )

◆ forEachCallbackCallSite()

template<typename UnaryFunction>
void llvm::forEachCallbackCallSite ( const CallBase & CB,
UnaryFunction Func )

Apply function Func to each CB's callback call site.

Definition at line 228 of file AbstractCallSite.h.

References assert(), llvm::AbstractCallSite::getCallbackUses(), and llvm::AbstractCallSite::isCallbackCall().

Referenced by forEachCallbackFunction().

◆ forEachCallbackFunction()

template<typename UnaryFunction>
void llvm::forEachCallbackFunction ( const CallBase & CB,
UnaryFunction Func )

Apply function Func to each CB's callback function.

Definition at line 240 of file AbstractCallSite.h.

References forEachCallbackCallSite(), and llvm::AbstractCallSite::getCalledFunction().

Referenced by llvm::CallGraph::populateCallGraphNode(), and llvm::CallGraphNode::replaceCallEdge().

◆ format() [1/2]

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';
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
Definition Format.h:126

Definition at line 126 of file Format.h.

Referenced by llvm::logicalview::LVScopeCompileUnit::addSize(), llvm::DWARFTypePrinter< DieType >::appendTemplateParameters(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), llvm::DWARFContext::checkAddressSizeSupported(), checkIntegrityScopesTree(), llvm::object::CompressedOffloadBundle::compress(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::jitlink::createLinkGraphFromMachOObject(), createStringError(), llvm::object::CompressedOffloadBundle::decompress(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), llvm::DWARFCompileUnit::dump(), llvm::DWARFContext::dump(), llvm::DWARFDebugAbbrev::dump(), llvm::DWARFDebugAddrTable::dump(), llvm::DWARFDebugArangeSet::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::DWARFDebugLine::Row::dump(), llvm::DWARFDebugMacro::dump(), llvm::DWARFDebugPubTable::dump(), llvm::DWARFDebugRangeList::dump(), llvm::DWARFDie::dump(), llvm::DWARFFormValue::dump(), llvm::DWARFListTableHeader::dump(), llvm::DWARFTypeUnit::dump(), llvm::DWARFUnitIndex::dump(), llvm::gsym::GsymReader::dump(), llvm::MCFragment::dump(), llvm::orc::JITDylib::dump(), llvm::OverlapStats::dump(), llvm::RangeListEntry::dump(), llvm::DWARFFormValue::dumpAddress(), llvm::DWARFFormValue::dumpAddressSection(), dumpApplePropertyAttribute(), llvm::DWARFLocationTable::dumpLocationList(), llvm::DWARFDebugLoclists::dumpRawEntry(), dumpSectionMemory(), dumpStringOffsetsSection(), llvm::DIEAbbrev::Emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), emitGlobalConstantDataSequential(), emitGlobalConstantImpl(), llvm::AMDGPUAsmPrinter::emitInstruction(), llvm::RuntimeDyldImpl::emitSection(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::RuntimeDyldELF::finalizeLoad(), format(), llvm::format_provider< Enum, std::enable_if_t< dwarf::EnumTraits< Enum >::value > >::format(), llvm::MCInstPrinter::formatDec(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::formatHex(), getCOFFStaticStructorSection(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfo, BranchProbabilityInfo >::getEdgeAttributes(), llvm::logicalview::LVRange::getEntry(), llvm::logicalview::LVOperation::getOperandsCodeViewInfo(), llvm::logicalview::LVOperation::getOperandsDWARFInfo(), llvm::SampleProfileLoaderBaseImpl< FT >::getProbeWeight(), getSizeForEncoding(), getStaticStructorSection(), llvm::object::GOFFObjectFile::GOFFObjectFile(), Help(), llvm::logicalview::LVBinaryReader::includeInlineeLines(), llvm::ResourceManager::initProcResourceVectors(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::ResolverError::log(), llvm::object::MachOBindEntry::moveNext(), llvm::object::MachORebaseEntry::moveNext(), llvm::gsym::operator<<(), llvm::object::operator<<(), operator<<(), llvm::rdf::operator<<(), llvm::yaml::ScalarTraits< memprof::GUIDHex64 >::output(), llvm::DWARFDebugLine::LineTable::parse(), prettyPrintBaseTypeRef(), prettyPrintRegisterOp(), llvm::AccelTableBase::HashData::print(), llvm::AppleAccelTableStaticTypeData::print(), llvm::BranchProbability::print(), llvm::DIE::print(), llvm::DIEAbbrev::print(), llvm::DIEEntry::print(), llvm::ILPValue::print(), llvm::ir2vec::Embedding::print(), llvm::logicalview::LVLocation::print(), llvm::logicalview::LVRange::print(), llvm::MachineBasicBlock::print(), llvm::MachO::PackedVersion::print(), llvm::rdf::PhysicalRegisterInfo::print(), llvm::TimeRecord::print(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), llvm::logicalview::LVObject::printAttributes(), printBigArchiveMemberHeader(), printBinaryIdsInternal(), llvm::HexagonInstPrinter::printBrtarget(), printCFI(), PrintCFIEscape(), printCompactDWARFExpr(), llvm::ProfileSummary::printDetailedSummary(), printDwarfExpression(), llvm::AArch64::printEnabledExtensions(), llvm::logicalview::LVElement::printFileIndex(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::RISCVInstPrinter::printFPImmOperand(), llvm::AArch64InstPrinter::printImmHex(), PrintLaneMask(), printMarkupStackTrace(), printMBB(), llvm::ScopedPrinter::printNumber(), llvm::ScopedPrinter::printNumber(), printOp(), llvm::SPIRVInstPrinter::printOpConstantVarOps(), llvm::X86ATTInstPrinter::printOperand(), printOperand(), llvm::logicalview::LVLogicalVisitor::printRecords(), printRestOfMemberHeader(), llvm::AArch64InstPrinter::printSIMDType10Operand(), printSize(), printSize(), llvm::mca::IncrementalSourceMgr::printStatistic(), PrintStatistics(), llvm::BitcodeAnalyzer::printStats(), llvm::logicalview::LVScopeCompileUnit::printSummary(), llvm::AArch64::PrintSupportedExtensions(), llvm::ARM::PrintSupportedExtensions(), llvm::MCAsmInfoXCOFF::printSwitchToSection(), printUnwindRow(), printVal(), llvm::logicalview::LVScopeCompileUnit::printWarnings(), llvm::logicalview::LVBinaryReader::processLines(), llvm::GCOVFile::readGCDA(), readOpcode(), readPrefixes(), llvm::RuntimeDyldImpl::reassignSectionAddress(), llvm::RuntimeDyldImpl::resolveLocalRelocations(), llvm::RuntimeDyldELFMips::resolveMIPSO32Relocation(), llvm::RuntimeDyldCOFFI386::resolveRelocation(), llvm::RuntimeDyldCOFFThumb::resolveRelocation(), llvm::BalancedPartitioning::run(), llvm::StructuralHashPrinterPass::run(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), saveFilteredNewMIBNodes(), llvm::BTFParser::symbolize(), llvm::msgpack::DocNode::toString(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), updateForAIXShLibTLSModelOpt(), llvm::json::OStream::value(), write_double(), and llvm::raw_ostream::write_uuid().

◆ format() [2/2]

template<class T>
void llvm::format ( const T & Fractional,
struct tm & LT,
raw_ostream & OS,
StringRef Style )
static

Definition at line 73 of file Chrono.cpp.

References count(), llvm::raw_ostream::flush(), Format, format(), I, and T.

◆ format_bytes()

FormattedBytes llvm::format_bytes ( ArrayRef< uint8_t > Bytes,
std::optional< uint64_t > FirstByteOffset = std::nullopt,
uint32_t NumPerLine = 16,
uint8_t ByteGroupSize = 4,
uint32_t IndentLevel = 0,
bool Upper = false )
inline

Definition at line 242 of file Format.h.

References Upper.

Referenced by llvm::logicalview::LVBinaryReader::createInstructions().

◆ format_bytes_with_ascii()

FormattedBytes llvm::format_bytes_with_ascii ( ArrayRef< uint8_t > Bytes,
std::optional< uint64_t > FirstByteOffset = std::nullopt,
uint32_t NumPerLine = 16,
uint8_t ByteGroupSize = 4,
uint32_t IndentLevel = 0,
bool Upper = false )
inline

◆ 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 213 of file Format.h.

References N.

Referenced by llvm::mca::computeProcResourceMasks(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::symbolize::SourceCode::format(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::logicalview::LVBinaryReader::processLines(), llvm::logicalview::LVBinaryReader::processLines(), and llvm::logicalview::LVRange::startSearch().

◆ format_hex()

◆ 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 201 of file Format.h.

References assert(), N, and Upper.

Referenced by llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder::addOrderedName(), convertToSinitPriority(), llvm::pdb::IPDBSourceFile::dump(), llvm::codeview::detail::GuidAdapter::format(), llvm::gsym::operator<<(), llvm::NVPTXFloatMCExpr::printImpl(), and WriteAPFloatInternal().

◆ formatCallSiteLocation()

std::string llvm::formatCallSiteLocation ( DebugLoc DLoc,
const CallSiteFormat & Format )

Get call site location as a string with the given format.

Definition at line 472 of file InlineAdvisor.cpp.

References First, Format, llvm::DebugLoc::get(), Offset, llvm::raw_string_ostream::str(), and utostr().

Referenced by llvm::ReplayInlineAdvisor::getAdviceImpl().

◆ formatv() [1/2]

template<typename... Ts>
auto llvm::formatv ( bool Validate,
const char * Fmt,
Ts &&... Vals )
inline

Definition at line 253 of file FormatVariadic.h.

References llvm::support::detail::build_format_adapter().

Referenced by llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::NVPTX::AddressSpaceToString(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::EPCGenericRTDyldMemoryManager::allocateCodeSection(), llvm::orc::EPCGenericRTDyldMemoryManager::allocateDataSection(), appendJITDebugDescriptor(), llvm::jitlink::ppc64::applyFixup(), llvm::jitlink::applyPACSigningToModInitPointers(), llvm::dwarf_linker::parallel::OutputSections::applyPatches(), checkIntegrityScopesTree(), llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::msf::MSFBuilder::commit(), llvm::object::SFrameParser< E >::create(), llvm::dxil::ResourceTypeInfo::createElementStruct(), llvm::jitlink::aarch64::createEmptyPointerSigningFunction(), llvm::logicalview::LVBinaryReader::createInstructions(), createStringErrorV(), createThunkName(), llvm::DCData::DCData(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), llvm::lsp::Logger::debug(), llvm::IndexedMemProfReader::deserialize(), llvm::AppleAcceleratorTable::dump(), llvm::BPFunctionNode::dump(), llvm::dwarf_linker::parallel::CompileUnit::DIEInfo::dump(), llvm::DWARFAbbreviationDeclaration::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::DWARFDebugNames::Abbrev::dump(), llvm::DWARFDebugNames::Entry::dump(), llvm::DWARFDie::dump(), llvm::orc::ELFDebugObjectSection< ELFT >::dump(), dumpAttribute(), llvm::StringToOffsetTable::EmitStringTableDef(), llvm::lsp::Logger::error(), llvm::remarks::BitstreamBlockParserHelperBase::error(), ErrorFromHResult(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::NVPTXSubtarget::failIfClustersUnsupported(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::pdb::GSIStreamBuilder::finalizeMsfLayout(), llvm::orc::LazyCallThroughManager::findReexport(), llvm::jitlink::MachOLinkGraphBuilder::findSectionByIndex(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByAddress(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByIndex(), llvm::format_provider< codeview::TypeIndex >::format(), llvm::pdb::LinePrinter::format(), llvm::pdb::LinePrinter::formatLine(), llvm::pdb::LinePrinter::formatMsfStreamBlocks(), llvm::pdb::LinePrinter::formatMsfStreamData(), llvm::pdb::formatSegmentOffset(), llvm::pdb::formatTypeLeafKind(), llvm::pdb::formatUnknownEnum(), formatv(), llvm::IRComparer< T >::generateFunctionData(), llvm::DotCfgChangeReporter::genHTML(), getAllLexicalIndexes(), getDataSlice(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::DOTGraphTraits< DOTFuncInfo * >::getEdgeAttributes(), llvm::jitlink::getELFRelocationType(), getFenceOp(), llvm::yaml::FrameIndex::getFI(), llvm::jitlink::getJITLinkEdgeKind(), llvm::IndexedMemProfReader::getMemProfRecord(), llvm::dwarf_linker::parallel::OutputSections::getSectionDescriptor(), llvm::dwarf_linker::parallel::OutputSections::getSectionDescriptor(), llvm::jitlink::COFFLinkGraphBuilder::graphifySymbols(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), llvm::InLineChangePrinter::handleAfter(), llvm::DotCfgChangeReporter::handleFiltered(), llvm::TextChangeReporter< IRUnitT >::handleFiltered(), llvm::DotCfgChangeReporter::handleFunctionCompare(), llvm::DotCfgChangeReporter::handleIgnored(), llvm::TextChangeReporter< IRUnitT >::handleIgnored(), llvm::DotCfgChangeReporter::handleInvalidated(), llvm::TextChangeReporter< IRUnitT >::handleInvalidated(), llvm::orc::SimpleRemoteEPC::handleMessage(), llvm::orc::SimpleRemoteEPCServer::handleMessage(), llvm::object::SFrameParser< E >::FallibleFREIterator::inc(), llvm::lsp::Logger::info(), llvm::logicalview::LVLogicalVisitor::inlineSiteAnnotation(), llvm::dwarf_linker::classic::DWARFLinker::link(), llvm::json::ParseError::log(), llvm::jitlink::aarch64::lowerPointer64AuthEdgesToSigningFunction(), llvm::jitlink::makeAlignmentError(), llvm::jitlink::makeTargetOutOfRangeError(), llvm::DotCfgChangeReporter::omitAfter(), llvm::TextChangeReporter< IRUnitT >::omitAfter(), llvm::pdb::InputFile::open(), llvm::jitlink::operator<<(), llvm::jitlink::operator<<(), operator<<(), operator<<(), operator<<(), llvm::orc::operator<<(), llvm::orc::operator<<(), llvm::NVPTXScopes::operator[](), llvm::NVPTX::OrderingToString(), llvm::lsp::MessageHandler::outgoingRequest(), llvm::lsp::MessageHandler::parse(), llvm::PassBuilder::parseAAPipeline(), parseAMDGPUAttributorPassOptions(), llvm::formatv_object_base::parseFormatString(), parseOptLevelParam(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parseSinglePassOption(), llvm::jitlink::CompactUnwindManager< CURecTraits >::prepareForPrune(), prettyPrintResources(), llvm::dxil::ComputedShaderFlags::print(), llvm::NVPTXInstPrinter::printAtomicCode(), llvm::jitlink::printEdge(), printMatch(), printNoMatch(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::printStatistic(), printSymbolizedStackTrace(), llvm::jitlink::CompactUnwindManager< CURecTraits >::processAndReserveUnwindInfo(), llvm::jitlink::readCFIRecordLength(), readFRE(), llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), llvm::PrintCrashIRInstrumentation::registerCallbacks(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::orc::EPCGenericRTDyldMemoryManager::registerEHFrames(), llvm::orc::ExecutionSession::registerJITDispatchHandlers(), llvm::orc::EPCGenericRTDyldMemoryManager::reserveAllocationSpace(), llvm::dxil::ShaderFlagsAnalysisPrinter::run(), llvm::jitlink::PerGraphGOTAndPLTStubsBuilder< BuilderImplT >::run(), llvm::orc::ExecutionSession::runJITDispatchHandler(), llvm::NVPTX::ScopeToString(), llvm::MachO::serializeInterfaceFileToJSON(), llvm::jitlink::splitCompactUnwindBlocks(), llvm::pdb::typesetItemList(), llvm::pdb::typesetStringList(), llvm::DWARFCFIState::update(), llvm::orc::ELFDebugObjectSection< ELFT >::validateInBounds(), llvm::DWARFVerifier::verifyDebugStrOffsets(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), verifyKeepChain(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::xray::RecordPrinter::visit(), llvm::jitlink::aarch32::GOTBuilder::visitEdge(), llvm::jitlink::aarch32::StubsManager_v7::visitEdge(), llvm::jitlink::aarch64::GOTTableManager::visitEdge(), llvm::jitlink::aarch64::PLTTableManager::visitEdge(), llvm::jitlink::loongarch::GOTTableManager::visitEdge(), llvm::jitlink::loongarch::PLTTableManager::visitEdge(), llvm::jitlink::x86::GOTTableManager::visitEdge(), llvm::jitlink::x86::PLTTableManager::visitEdge(), llvm::jitlink::x86_64::GOTTableManager::visitEdge(), llvm::jitlink::x86_64::PLTTableManager::visitEdge(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::orc::OrcLoongArch64::writeIndirectStubsBlock(), writeMemProf(), llvm::orc::OrcLoongArch64::writeResolverCode(), llvm::orc::OrcX86_64_SysV::writeResolverCode(), llvm::orc::OrcLoongArch64::writeTrampolines(), and llvm::jitlink::CompactUnwindManager< CURecTraits >::writeUnwindInfo().

◆ formatv() [2/2]

template<typename... Ts>
auto llvm::formatv ( const char * Fmt,
Ts &&... Vals )
inline

Definition at line 260 of file FormatVariadic.h.

References formatv().

◆ formDedicatedExitBlocks()

bool llvm::formDedicatedExitBlocks ( Loop * L,
DominatorTree * DT,
LoopInfo * LI,
MemorySSAUpdater * MSSAU,
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 58 of file LoopUtils.cpp.

References assert(), Changed, Cleanup, llvm::SmallVectorImpl< T >::clear(), dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), LLVM_DEBUG, make_scope_exit(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SplitBlockPredecessors(), and successors().

Referenced by hoistLoopToNewParent(), separateNestedLoop(), simplifyOneLoop(), UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), and llvm::LoopVersioning::versionLoop().

◆ formLCSSA()

bool llvm::formLCSSA ( Loop & L,
const DominatorTree & DT,
const 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. Sub-loops must be in LCSSA form already.

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 427 of file LCSSA.cpp.

References formLCSSAImpl().

Referenced by hoistLoopToNewParent(), peelLoop(), separateNestedLoop(), and unswitchNontrivialInvariants().

◆ formLCSSAForInstructions()

bool llvm::formLCSSAForInstructions ( SmallVectorImpl< Instruction * > & Worklist,
const DominatorTree & DT,
const LoopInfo & LI,
ScalarEvolution * SE,
SmallVectorImpl< PHINode * > * PHIsToRemove = nullptr,
SmallVectorImpl< PHINode * > * InsertedPHIs = nullptr )

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.

This function may introduce unused PHI nodes. If PHIsToRemove is not nullptr, those are added to it (before removing, the caller has to check if they still do not have any uses). Otherwise the PHIs are directly removed.

If InsertedPHIs is not nullptr, inserted phis will be added to this vector.

If so, insert LCSSA PHI nodes and rewrite the uses.

Definition at line 308 of file LCSSA.cpp.

References formLCSSAForInstructionsImpl().

◆ formLCSSARecursively()

bool llvm::formLCSSARecursively ( Loop & L,
const DominatorTree & DT,
const 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 449 of file LCSSA.cpp.

References formLCSSARecursivelyImpl().

Referenced by breakLoopBackedge(), formLCSSAOnAllLoops(), llvm::IRCEPass::run(), llvm::LoopConstrainer::run(), 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 148 of file FormattedStream.cpp.

References outs().

◆ fpCondCode2Fcc()

VECC::CondCode llvm::fpCondCode2Fcc ( ISD::CondCode CC)
inlinestatic

Convert a DAG floating point condition code to a VE FCC condition.

Definition at line 97 of file VEISelLowering.h.

References llvm::VECC::CC_AF, llvm_unreachable, and llvm::ISD::SETFALSE.

Referenced by llvm::VETargetLowering::combineSelect(), and llvm::VETargetLowering::combineSelectCC().

◆ 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 1555 of file APFloat.h.

References frexp(), llvm_unreachable, and X.

Referenced by foldFrexpOfSelect(), frexp(), llvm::SelectionDAG::getNode(), and llvm::GCNTTIImpl::instCombineIntrinsic().

◆ 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 281 of file StringExtras.h.

References assert(), and tryGetFromHex().

Referenced by llvm::DwarfDebug::getMD5AsBytes(), and llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input().

◆ fullyRecomputeLiveIns()

void llvm::fullyRecomputeLiveIns ( ArrayRef< MachineBasicBlock * > MBBs)
inline

◆ funcReturnsFirstArgOfCall()

bool llvm::funcReturnsFirstArgOfCall ( const CallInst & CI)

Returns true if the parent of CI returns CI's first argument after calling CI.

Definition at line 723 of file Analysis.cpp.

References dyn_cast(), llvm::CallBase::getArgOperand(), and llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent().

Referenced by llvm::SelectionDAG::getMemset(), and isInTailCallPositionWrapper().

◆ fuseInstructionPair()

bool llvm::fuseInstructionPair ( ScheduleDAGInstrs & DAG,
SUnit & FirstSU,
SUnit & SecondSU )

Create an artificial edge between FirstSU and SecondSU.

Make data dependencies from the FirstSU also dependent on the SecondSU to prevent them from being scheduled between the FirstSU and the SecondSU and vice-versa. Fusing more than 2 instructions is not currently supported.

Definition at line 53 of file MacroFusion.cpp.

References llvm::ScheduleDAGInstrs::addEdge(), llvm::SDep::Artificial, assert(), llvm::SDep::Cluster, dbgs(), llvm::ScheduleDAG::dumpNodeName(), llvm::ScheduleDAG::EntrySU, llvm::ScheduleDAG::ExitSU, llvm::ScheduleDAGInstrs::getClusters(), llvm::SUnit::getInstr(), llvm::MCInstrInfo::getName(), llvm::MachineInstr::getOpcode(), hasLessThanNumFused(), InvalidClusterId, isHazard(), llvm::SUnit::isPred(), llvm::SUnit::isSucc(), LLVM_DEBUG, llvm::SUnit::ParentClusterIdx, llvm::SUnit::Preds, llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, and llvm::ScheduleDAG::TII.

◆ gatherImportedSummariesForModule()

void llvm::gatherImportedSummariesForModule ( StringRef ModulePath,
const DenseMap< StringRef, GVSummaryMapTy > & ModuleToDefinedGVSummaries,
const FunctionImporter::ImportMapTy & ImportList,
ModuleToSummariesForIndexTy & ModuleToSummariesForIndex,
GVSummaryPtrSet & DecSummaries )

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.

DecSummaries will be popluated with the subset of of summary pointers that have 'declaration' import type among all summaries the module need.

Definition at line 1563 of file FunctionImport.cpp.

References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::at(), llvm::GlobalValueSummary::Declaration, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup().

Referenced by llvm::lto::ThinBackendProc::emitFiles(), llvm::ThinLTOCodeGenerator::emitImports(), and llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule().

◆ gatherPeelingPreferences()

◆ gatherUnrollingPreferences()

TargetTransformInfo::UnrollingPreferences llvm::gatherUnrollingPreferences ( Loop * L,
ScalarEvolution & SE,
const TargetTransformInfo & TTI,
BlockFrequencyInfo * BFI,
ProfileSummaryInfo * PSI,
llvm::OptimizationRemarkEmitter & ORE,
int OptLevel,
std::optional< unsigned > UserThreshold,
std::optional< unsigned > UserCount,
std::optional< bool > UserAllowPartial,
std::optional< bool > UserRuntime,
std::optional< bool > UserUpperBound,
std::optional< unsigned > UserFullUnrollMaxCount )

Gather the various unrolling parameters based on the defaults, compiler flags, TTI overrides and user specified parameters.

Definition at line 188 of file LoopUnrollPass.cpp.

References llvm::TargetTransformInfo::UnrollingPreferences::AddAdditionalAccumulators, llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::TargetTransformInfo::UnrollingPreferences::AllowRemainder, llvm::TargetTransformInfo::UnrollingPreferences::BEInsns, llvm::TargetTransformInfo::UnrollingPreferences::Count, llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, llvm::TargetTransformInfo::UnrollingPreferences::Force, llvm::TargetTransformInfo::UnrollingPreferences::FullUnrollMaxCount, hasUnrollTransformation(), IRPass, llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::MaxIterationsCountToAnalyze, llvm::TargetTransformInfo::UnrollingPreferences::MaxPercentThresholdBoost, llvm::TargetTransformInfo::UnrollingPreferences::MaxUpperBound, llvm::TargetTransformInfo::UnrollingPreferences::OptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialOptSizeThreshold, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Runtime, llvm::TargetTransformInfo::UnrollingPreferences::RuntimeUnrollMultiExit, SCEVCheapExpansionBudget, llvm::TargetTransformInfo::UnrollingPreferences::SCEVExpansionBudget, shouldOptimizeForSize(), llvm::TargetTransformInfo::UnrollingPreferences::Threshold, TM_ForcedByUser, UnrollAllowPartial, UnrollAllowRemainder, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJam, llvm::TargetTransformInfo::UnrollingPreferences::UnrollAndJamInnerLoopThreshold, UnrollFullMaxCount, UnrollMaxCount, UnrollMaxIterationsCountToAnalyze, UnrollMaxPercentThresholdBoost, UnrollMaxUpperBound, UnrollOptSizeThreshold, UnrollPartialThreshold, llvm::TargetTransformInfo::UnrollingPreferences::UnrollRemainder, UnrollRuntime, UnrollThreshold, UnrollThresholdAggressive, UnrollThresholdDefault, UnrollUnrollRemainder, and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.

Referenced by computeHeuristicUnrollFactor(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().

◆ gcd()

◆ gcovOneInput()

void llvm::gcovOneInput ( const GCOV::Options & options,
StringRef filename,
StringRef gcno,
StringRef gcda,
GCOVFile & file )

Definition at line 999 of file GCOV.cpp.

References file().

◆ generate2DBlockIOINTELInst()

bool llvm::generate2DBlockIOINTELInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateAsyncCopy()

◆ generateAtomicFloatingInst()

bool llvm::generateAtomicFloatingInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateAtomicInst()

◆ generateBarrierInst()

bool llvm::generateBarrierInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateBindlessImageINTELInst()

bool llvm::generateBindlessImageINTELInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateBuiltinVar()

◆ generateCastToPtrInst()

◆ generateConstructInst()

bool llvm::generateConstructInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateConvertInst()

◆ generateCoopMatrInst()

◆ generateDotOrFMulInst()

◆ generateEnqueueInst()

◆ generateExtendedBitOpsInst()

bool llvm::generateExtendedBitOpsInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateExtInst()

◆ generateGetQueryInst()

bool llvm::generateGetQueryInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

Definition at line 1857 of file SPIRVBuiltins.cpp.

References Call, genWorkgroupQuery(), and llvm::Value::Value().

Referenced by llvm::SPIRV::lowerBuiltin().

◆ generateGroupInst()

bool llvm::generateGroupInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

Definition at line 1175 of file SPIRVBuiltins.cpp.

References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), buildBoolRegister(), llvm::SPIRVGlobalRegistry::buildConstantInt(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildICmp(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), buildSelectInst(), Call, llvm::LLT::fixed_vector(), getConstFromIntrinsic(), getDefInstrMaybeConstant(), getIConstVal(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOpcode(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVBoolType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::GroupBuiltin::GroupOperation, llvm::SPIRV::GroupBuiltin::HasBoolArg, llvm::CmpInst::ICMP_NE, insertAssignInstr(), llvm::SPIRV::GroupBuiltin::IsAllEqual, llvm::SPIRV::GroupBuiltin::IsAllOrAny, llvm::SPIRV::GroupBuiltin::IsBallotBitExtract, llvm::SPIRV::GroupBuiltin::IsElect, llvm::SPIRV::GroupBuiltin::IsInverseBallot, llvm::SPIRV::GroupBuiltin::IsLogical, llvm::Register::isValid(), MI, MRI, llvm::SPIRV::DemangledBuiltin::Name, llvm::SPIRV::GroupBuiltin::NoGroupOperation, llvm::SPIRV::GroupBuiltin::Opcode, llvm::SmallVectorTemplateBase< T, bool >::push_back(), report_fatal_error(), llvm::LLT::scalar(), setRegClassIfNull(), and llvm::StringRef::starts_with().

Referenced by llvm::SPIRV::lowerBuiltin().

◆ generateGroupUniformInst()

◆ generateICarryBorrowInst()

◆ generateImageMiscQueryInst()

◆ generateImageSizeQueryInst()

◆ generateIntelSubgroupsInst()

◆ generateKernelClockInst()

◆ generateLoadStoreInst()

◆ generateParamAccessSummary()

void llvm::generateParamAccessSummary ( ModuleSummaryIndex & Index)

◆ generateReadImageInst()

◆ generateRelationalInst()

◆ generateSampleImageInst()

◆ generateSelectInst()

bool llvm::generateSelectInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder )
static

Definition at line 2170 of file SPIRVBuiltins.cpp.

References llvm::MachineIRBuilder::buildSelect(), and Call.

Referenced by llvm::SPIRV::lowerBuiltin().

◆ generateSpecConstantInst()

◆ generateTernaryBitwiseFunctionINTELInst()

bool llvm::generateTernaryBitwiseFunctionINTELInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ generateVectorLoadStoreInst()

◆ generateWaveInst()

◆ generateWriteImageInst()

bool llvm::generateWriteImageInst ( const SPIRV::IncomingCall * Call,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ genWorkgroupQuery()

◆ gep_type_begin() [1/3]

gep_type_iterator llvm::gep_type_begin ( const User & GEP)
inline

◆ gep_type_begin() [2/3]

◆ 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_end() [3/3]

template<typename T>
generic_gep_type_iterator< const T * > llvm::gep_type_end ( Type * ,
ArrayRef< T > A )
inline

◆ get() [1/3]

template<std::size_t I, typename PointerTy, unsigned IntBits, typename IntType, typename PtrTraits, typename Info>
decltype(auto) llvm::get ( const PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info > & Pair)

Definition at line 268 of file PointerIntPair.h.

References llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getInt(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer(), and I.

Referenced by llvm::R600InstrInfo::addFlag(), llvm::Mips16InstrInfo::AddiuSpImm(), llvm::M68kInstrInfo::AddSExt(), llvm::M68kInstrInfo::AddZExt(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::XtensaInstrInfo::adjustStackPtr(), llvm::AllocaInst::AllocaInst(), llvm::AVRInstrInfo::analyzeBranch(), llvm::M68kInstrInfo::AnalyzeBranchImpl(), areLoadedOffsetButOtherwiseSame(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::AtomicCmpXchgInst::AtomicCmpXchgInst(), llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::buildClearRegister(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::MachineIRBuilder::buildDirectDbgValue(), llvm::SIInstrInfo::buildExtractSubReg(), llvm::MachineIRBuilder::buildIndirectDbgValue(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), llvm::RISCVInstrInfo::buildOutlinedFrame(), llvm::X86InstrInfo::buildOutlinedFrame(), llvm::SIInstrInfo::buildShrunkInst(), llvm::CFIInstBuilder::CFIInstBuilder(), llvm::Attributor::changeAfterManifest(), llvm::HexagonInstrInfo::changeDuplexOpcode(), llvm::X86InstrInfo::classifyLEAReg(), llvm::R600InstrInfo::clearFlag(), llvm::PPCInstrInfo::combineRLWINM(), combineVSelectWithAllOnesOrZeros(), llvm::RISCVInstrInfo::commuteInstructionImpl(), llvm::SIInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), computeMemberData(), llvm::RISCVInstrInfo::convertToThreeAddress(), llvm::SIInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::BPFInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::LoongArchInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::RISCVInstrInfo::copyPhysRegVector(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::SIInstrInfo::createPHIDestinationCopy(), llvm::SIInstrInfo::createPHISourceCopy(), llvm::pdb::DataMemberLayoutItem::DataMemberLayoutItem(), llvm::SIInstrInfo::doesNotReadTiedSource(), llvm::dxil::DXILBitcodeWriter::DXILBitcodeWriter(), llvm::AArch64InstrInfo::emitLdStWithAddr(), llvm::RISCVInstrInfo::emitLdStWithAddr(), llvm::MCStreamer::emitWinCFIEndProc(), llvm::CodeViewDebug::endFunctionImpl(), llvm::SIInstrInfo::enforceOperandRCAlignment(), llvm::M68kInstrInfo::ExpandCCR(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::SIInstrInfo::expandMovDPP64(), llvm::M68kInstrInfo::ExpandMOVI(), llvm::M68kInstrInfo::ExpandMOVSZX_RR(), llvm::M68kInstrInfo::ExpandMOVX_RR(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::M68kInstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::SparcInstrInfo::expandPostRAPseudo(), llvm::SystemZInstrInfo::expandPostRAPseudo(), llvm::VEInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandVGatherPseudo(), llvm::PPCInstrInfo::expandVSXMemPseudo(), llvm::cl::ExpansionContext::ExpansionContext(), findForkedSCEVs(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::fixAliaseeLinks(), llvm::PPCInstrInfo::foldFrameOffset(), llvm::ARMBaseInstrInfo::foldImmediate(), llvm::SIInstrInfo::foldImmediate(), llvm::SystemZInstrInfo::foldImmediate(), llvm::VEInstrInfo::foldImmediate(), llvm::RISCVInstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::MipsInstrInfo::genInstrWithNewOpc(), llvm::SIInstrInfo::getAddNoCarry(), llvm::SIInstrInfo::getAddNoCarry(), llvm::ConstantPtrAuth::getAddrDiscriminator(), llvm::AVRInstrInfo::getBrCond(), llvm::ConstantPtrAuth::getDiscriminator(), llvm::R600InstrInfo::getFlagOp(), llvm::CSKYInstrInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::VEInstrInfo::getGlobalBaseReg(), llvm::DSOLocalEquivalent::getGlobalValue(), llvm::NoCFIValue::getGlobalValue(), llvm::SIInstrInfo::getIndirectGPRIDXPseudo(), llvm::SIInstrInfo::getIndirectRegWriteMovRelPseudo(), llvm::AVRInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::getInstSizeInBytes(), llvm::RISCVInstrInfo::getInstSizeInBytes(), llvm::SparcInstrInfo::getInstSizeInBytes(), llvm::ConstantPtrAuth::getKey(), llvm::SIInstrInfo::getKillTerminatorFromPseudo(), llvm::SIInstrInfo::getMCOpcodeFromPseudo(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), llvm::SystemZInstrInfo::getOpcodeForOffset(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::SDNode::getOperationName(), llvm::SIInstrInfo::getOpRegClass(), llvm::SIInstrInfo::getOpSize(), llvm::ConstantPtrAuth::getPointer(), llvm::pdb::SymbolCache::getSourceFileById(), llvm::BranchInst::getSuccessor(), llvm::GlobalValue::GlobalValue(), llvm::SystemZInstrInfo::hasDisplacementPairInsn(), llvm::SIInstrInfo::hasFPClamp(), llvm::R600InstrInfo::hasInstrModifiers(), llvm::AArch64InstrInfo::insertBranch(), llvm::ARCInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::AVRInstrInfo::insertBranch(), llvm::BPFInstrInfo::insertBranch(), llvm::CSKYInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::LanaiInstrInfo::insertBranch(), llvm::LoongArchInstrInfo::insertBranch(), llvm::M68kInstrInfo::insertBranch(), llvm::MipsInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::NVPTXInstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), llvm::RISCVInstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::SparcInstrInfo::insertBranch(), llvm::SPIRVInstrInfo::insertBranch(), llvm::SystemZInstrInfo::insertBranch(), llvm::VEInstrInfo::insertBranch(), llvm::WebAssemblyInstrInfo::insertBranch(), llvm::X86InstrInfo::insertBranch(), llvm::XCoreInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), llvm::SIInstrInfo::insertEQ(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AVRInstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), llvm::XtensaInstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertNE(), llvm::AArch64InstrInfo::insertNoop(), llvm::HexagonInstrInfo::insertNoop(), llvm::MipsInstrInfo::insertNoop(), llvm::PPCInstrInfo::insertNoop(), llvm::X86InstrInfo::insertNoop(), llvm::SIInstrInfo::insertNoops(), llvm::MipsInstrInfo::insertNop(), llvm::ARMBaseInstrInfo::insertOutlinedCall(), llvm::RISCVInstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), llvm::SIInstrInfo::insertReturn(), llvm::AArch64InstrInfo::insertSelect(), llvm::PPCInstrInfo::insertSelect(), llvm::SIInstrInfo::insertSelect(), llvm::SystemZInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), llvm::SIInstrInfo::insertSimulatedTrap(), llvm::SIInstrInfo::insertVectorSelect(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::R600InstrInfo::isALUInstr(), llvm::SIInstrInfo::isAtomic(), llvm::SIInstrInfo::isAtomicNoRet(), llvm::SIInstrInfo::isAtomicRet(), llvm::SIInstrInfo::isDisableWQM(), llvm::SIInstrInfo::isDOT(), llvm::SIInstrInfo::isDPP(), llvm::SIInstrInfo::isDS(), llvm::SIInstrInfo::isEXP(), llvm::R600InstrInfo::isExport(), llvm::SIInstrInfo::isFixedSize(), llvm::SIInstrInfo::isFLAT(), llvm::SIInstrInfo::isFLATGlobal(), llvm::SIInstrInfo::isFLATScratch(), llvm::HexagonInstrInfo::isFloat(), llvm::SIInstrInfo::isFPAtomic(), llvm::SIInstrInfo::isGather4(), llvm::SIInstrInfo::isGWS(), llvm::SIInstrInfo::isHighLatencyDef(), llvm::SIInstrInfo::isLDSDIR(), llvm::R600InstrInfo::isLDSInstr(), llvm::SIInstrInfo::isMAI(), IsMemoryAssignmentError(), llvm::PPCInstrInfo::isMemriOp(), llvm::SIInstrInfo::isMIMG(), llvm::SIInstrInfo::isMTBUF(), llvm::SIInstrInfo::isMUBUF(), llvm::HexagonInstrInfo::isNewValue(), llvm::HexagonInstrInfo::isNewValueJump(), llvm::HexagonInstrInfo::isNewValueStore(), llvm::SIInstrInfo::isPacked(), llvm::HexagonInstrInfo::isPredicated(), llvm::HexagonInstrInfo::isPredicatedNew(), llvm::HexagonInstrInfo::isPredicatedTrue(), llvm::HexagonInstrInfo::isPredicateLate(), llvm::HexagonInstrInfo::isPredictedTaken(), llvm::PPCInstrInfo::isPrefixed(), llvm::R600InstrInfo::isRegisterLoad(), llvm::R600InstrInfo::isRegisterStore(), llvm::SIInstrInfo::isSALU(), llvm::SIInstrInfo::isScalarStore(), llvm::SIInstrInfo::isSDWA(), llvm::SIInstrInfo::isSegmentSpecificFLAT(), llvm::PPCInstrInfo::isSExt32To64(), llvm::SIInstrInfo::isSMRD(), llvm::SIInstrInfo::isSOP1(), llvm::SIInstrInfo::isSOP2(), llvm::SIInstrInfo::isSOPC(), llvm::SIInstrInfo::isSOPK(), llvm::SIInstrInfo::isSOPP(), llvm::SIInstrInfo::isSpill(), llvm::SIInstrInfo::isSWMMAC(), llvm::SIInstrInfo::isTRANS(), llvm::R600InstrInfo::isTransOnly(), llvm::SIInstrInfo::isVALU(), llvm::HexagonInstrInfo::isVecALU(), llvm::R600InstrInfo::isVector(), llvm::R600InstrInfo::isVectorOnly(), llvm::SIInstrInfo::isVIMAGE(), llvm::SIInstrInfo::isVINTERP(), llvm::SIInstrInfo::isVINTRP(), llvm::SIInstrInfo::isVOP1(), llvm::SIInstrInfo::isVOP2(), llvm::SIInstrInfo::isVOP3(), llvm::SIInstrInfo::isVOP3P(), llvm::SIInstrInfo::isVOPC(), llvm::SIInstrInfo::isVSAMPLE(), llvm::SIInstrInfo::isWMMA(), llvm::SIInstrInfo::isWQM(), llvm::PPCInstrInfo::isXFormMemOp(), llvm::PPCInstrInfo::isZExt32To64(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsVALUt16(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::SIInstrInfo::legalizeOpWithMove(), LLVMGetUsedValue(), LLVMOrcExecutionSessionGetSymbolStringPool(), llvm::ARCInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::XtensaInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::CSKYInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::loadRegFromStackSlot(), llvm::LoongArchInstrInfo::loadRegFromStackSlot(), llvm::M68kInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::XtensaInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadStoreTileReg(), llvm::coro::LowererBase::LowererBase(), LowerSETCCCARRY(), llvm::Mips16InstrInfo::makeFrame(), llvm::PPCInstrInfo::materializeImmPostRA(), llvm::MCDecodedPseudoProbeInlineTree::MCDecodedPseudoProbeInlineTree(), llvm::SIInstrInfo::moveFlatAddrToVGPR(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::CSKYInstrInfo::movImm(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::RISCVInstrInfo::mulImm(), llvm::NamedRegionTimer::NamedRegionTimer(), llvm::PPCInstrInfo::optimizeCmpPostRA(), llvm::AArch64InstrInfo::optimizeCompareInstr(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::SIInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::RISCVInstrInfo::optimizeCondBranch(), llvm::RISCVInstrInfo::optimizeSelect(), llvm::Thumb2InstrInfo::optimizeSelect(), llvm::AMDGPUTargetLowering::performSelectCombine(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::PPCInstrInfo::PredicateInstruction(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::SIInstrInfo::pseudoToMCOpcode(), llvm::vfs::OverlayFileSystem::pushOverlay(), llvm::SIInstrInfo::readlaneVGPRToSGPR(), llvm::Record::Record(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::SIInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::R600InstrInfo::removeBranch(), llvm::X86InstrInfo::replaceBranchWithTailCall(), llvm::PPCInstrInfo::replaceInstrWithLI(), llvm::SIInstrInfo::restoreExec(), llvm::Mips16InstrInfo::restoreFrame(), llvm::HexagonInstrInfo::reverseBranchCondition(), llvm::HexagonInstrInfo::reversePredSense(), llvm::sampleprof::SampleProfileReaderGCC::SampleProfileReaderGCC(), llvm::ScaledNumber< DigitsT >::scale(), llvm::ScheduleDAGInstrs::ScheduleDAGInstrs(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::X86InstrInfo::setExecutionDomain(), llvm::X86InstrInfo::setExecutionDomainCustom(), llvm::lsp::Logger::setLogLevel(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::RISCVInstrInfo::simplifyInstruction(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::M68kInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), TryMatchTrue(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::sandboxir::UseSet::UseSet(), llvm::SIInstrInfo::usesFPDPRounding(), llvm::R600InstrInfo::usesTextureCache(), llvm::R600InstrInfo::usesVertexCache(), llvm::pdb::VBPtrLayoutItem::VBPtrLayoutItem(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::SIInstrInfo::verifyInstruction(), and llvm::pdb::VTableLayoutItem::VTableLayoutItem().

◆ get() [2/3]

template<std::size_t Index, typename ValueTy>
decltype(auto) llvm::get ( const StringMapEntry< ValueTy > & E)

Definition at line 161 of file StringMapEntry.h.

References E().

◆ get() [3/3]

template<std::size_t Index, typename ValueTy>
decltype(auto) llvm::get ( StringMapEntry< ValueTy > & E)

Definition at line 152 of file StringMapEntry.h.

References E().

◆ get_cpus()

LLVM_ABI unsigned llvm::get_cpus ( )

Returns how many physical CPUs or NUMA groups the system has.

References LLVM_ABI.

◆ get_hashable_data()

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()); }
Tracking metadata reference owned by Metadata.
Definition Metadata.h:899
hash_code hash_value(const FixedPointSemantics &Val)

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 164 of file LLVMContextImpl.cpp.

References X.

◆ 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.

Definition at line 33 of file Threading.cpp.

◆ get_physical_cores()

int llvm::get_physical_cores ( )

Returns how many physical cores (as opposed to logical cores returned from thread::hardware_concurrency(), which includes hyperthreads).

Returns -1 if unknown for the current host system.

Definition at line 47 of file Threading.cpp.

◆ get_stable_name()

StringRef llvm::get_stable_name ( StringRef Name)
inline

Definition at line 55 of file StableHashing.h.

References llvm::StringRef::empty().

Referenced by llvm::GlobalMergeFunc::analyze(), and stable_hash_name().

◆ get_thread_affinity_mask()

llvm::BitVector llvm::get_thread_affinity_mask ( )

Returns a mask that represents on which hardware thread, core, CPU, NUMA group, the calling thread can be executed.

On Windows, threads cannot cross CPU sockets boundaries.

Definition at line 39 of file Threading.cpp.

◆ 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.

Definition at line 37 of file Threading.cpp.

Referenced by llvm::TimeTraceProfiler::TimeTraceProfiler().

◆ 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.

Definition at line 31 of file Threading.cpp.

Referenced by llvm::TimeTraceProfiler::TimeTraceProfiler().

◆ get_threadpool_strategy()

std::optional< ThreadPoolStrategy > llvm::get_threadpool_strategy ( StringRef Num,
ThreadPoolStrategy Default = {} )

Build a strategy from a number of threads as a string provided in Num.

When Num is above the max number of threads specified by the Default strategy, we attempt to equally allocate the threads on all CPU sockets. "0" or an empty string will return the Default strategy. "all" for using all hardware threads.

Definition at line 97 of file Threading.cpp.

References Default, llvm::StringRef::empty(), llvm::StringRef::getAsInteger(), hardware_concurrency(), and llvm::ThreadPoolStrategy::ThreadsRequested.

Referenced by hardware_concurrency(), and heavyweight_hardware_concurrency().

◆ getAddressFromInstr()

◆ getAddressSanitizerParams()

void llvm::getAddressSanitizerParams ( const Triple & TargetTriple,
int LongSize,
bool IsKasan,
uint64_t * ShadowBase,
int * MappingScale,
bool * OrShadowOffset )

Definition at line 610 of file AddressSanitizer.cpp.

References getShadowMapping().

◆ getAddSubImmediate()

int llvm::getAddSubImmediate ( MachineInstr & MI)
inline

Definition at line 870 of file ARMBaseInstrInfo.h.

References MI.

◆ getAlign() [1/2]

◆ getAlign() [2/2]

MaybeAlign llvm::getAlign ( const Function & F,
unsigned Index )
inline

Definition at line 71 of file NVPTXUtilities.h.

References F.

◆ getAllocAlignment()

Value * llvm::getAllocAlignment ( const CallBase * V,
const TargetLibraryInfo * TLI )

Gets the alignment argument for an aligned_alloc-like function, using either built-in knowledge based on fuction names/signatures or allocalign attributes.

Note: the Value returned may not indicate a valid alignment, per the definition of the allocalign attribute.

Definition at line 341 of file MemoryBuiltins.cpp.

References AnyAlloc, and getAllocationData().

◆ getAllocationFamily()

std::optional< StringRef > llvm::getAllocationFamily ( const Value * I,
const TargetLibraryInfo * TLI )

If a function is part of an allocation family (e.g.

malloc/realloc/calloc/free), return the identifier for its family of functions.

Definition at line 503 of file MemoryBuiltins.cpp.

References Alloc, AnyAlloc, cast(), checkFnAllocKind(), Free, getAllocationDataForFunction(), getCalledFunction(), getFreeFunctionDataForFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Attribute::getValueAsString(), llvm::TargetLibraryInfo::has(), I, llvm::Attribute::isValid(), mangledNameForMallocFamily(), and Realloc.

Referenced by isAllocSiteRemovable().

◆ getAllocSize()

std::optional< APInt > llvm::getAllocSize ( const CallBase * CB,
const TargetLibraryInfo * TLI,
function_ref< const Value *(const Value *)> Mapper = [](const Value *V) { return V; } )

Return the size of the requested allocation.

With a trivial mapper, this is similar to calling getObjectSize(..., Exact), but without looking through calls that return their argument. A mapper function can be used to replace one Value* (operand to the allocation) with another. This is useful when doing abstract interpretation.

Definition at line 367 of file MemoryBuiltins.cpp.

References CheckedZextOrTrunc(), DL, dyn_cast(), getAllocationSize(), llvm::CallBase::getArgOperand(), llvm::Instruction::getDataLayout(), GetStringLength(), llvm::Value::getType(), llvm::ConstantInt::getValue(), Size, StrDupLike, and llvm::APInt::zext().

Referenced by getBaseObjectSize(), and llvm::ObjectSizeOffsetVisitor::visitCallBase().

◆ getAnnotatedNodeAVL()

◆ getAnyConstantVRegValWithLookThrough()

std::optional< ValueAndVReg > llvm::getAnyConstantVRegValWithLookThrough ( Register VReg,
const MachineRegisterInfo & MRI,
bool LookThroughInstrs = true,
bool LookThroughAnyExt = false )

If VReg is defined by a statically evaluable chain of instructions rooted on a G_CONSTANT or G_FCONSTANT returns its value as APInt and def register.

Definition at line 439 of file Utils.cpp.

References MRI.

Referenced by ConstantFoldBinOp(), and llvm::AArch64GISelUtils::getAArch64VectorSplat().

◆ getAPFloatFromSize()

APFloat llvm::getAPFloatFromSize ( double Val,
unsigned Size )

Returns an APFloat from Val converted to the appropriate size.

Definition at line 657 of file Utils.cpp.

References llvm::APFloat::convert(), llvm::APFloatBase::IEEEhalf(), llvm_unreachable, llvm::APFloatBase::rmNearestTiesToEven, and Size.

Referenced by llvm::MachineIRBuilder::buildFConstant().

◆ getApproximateEVTForLLT()

◆ getArgumentAliasingToReturnedPointer() [1/2]

Value * llvm::getArgumentAliasingToReturnedPointer ( CallBase * Call,
bool MustPreserveNullness )
inline

Definition at line 415 of file ValueTracking.h.

References Call, and getArgumentAliasingToReturnedPointer().

◆ getArgumentAliasingToReturnedPointer() [2/2]

const Value * llvm::getArgumentAliasingToReturnedPointer ( const CallBase * Call,
bool MustPreserveNullness )

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. If MustPreserveNullness is true, the call must preserve the nullness of the pointer.

Definition at line 6593 of file ValueTracking.cpp.

References assert(), Call, and isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().

Referenced by getArgumentAliasingToReturnedPointer(), getUnderlyingObject(), isDereferenceableAndAlignedPointer(), and isKnownNonZeroFromOperator().

◆ getArithmeticReductionInstruction()

unsigned llvm::getArithmeticReductionInstruction ( Intrinsic::ID RdxID)

Returns the arithmetic instruction opcode used when expanding a reduction.

Definition at line 1059 of file LoopUtils.cpp.

References llvm_unreachable.

Referenced by analyzeCostOfVecReduction(), getReductionIdentity(), and llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost().

◆ getArm64ECDemangledFunctionName()

std::optional< std::string > llvm::getArm64ECDemangledFunctionName ( StringRef Name)

Returns the ARM64EC demangled function name, unless the input is not mangled.

Definition at line 320 of file Mangler.cpp.

Referenced by emitLinkerFlagsForGlobalCOFF(), llvm::object::COFFImportFile::printSymbolName(), and llvm::object::writeImportLibrary().

◆ getArm64ECInsertionPointInMangledName()

std::optional< size_t > llvm::getArm64ECInsertionPointInMangledName ( std::string_view MangledName)

Definition at line 2484 of file MicrosoftDemangle.cpp.

References consumeFront(), and D().

Referenced by getArm64ECMangledFunctionName().

◆ getArm64ECMangledFunctionName()

std::optional< std::string > llvm::getArm64ECMangledFunctionName ( StringRef Name)

Returns the ARM64EC mangled function name unless the input is already mangled.

Definition at line 294 of file Mangler.cpp.

References assert(), and getArm64ECInsertionPointInMangledName().

Referenced by getArm64ECMangledFunctionName(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), and llvm::object::writeImportLibrary().

◆ getArrayComponentCount()

unsigned llvm::getArrayComponentCount ( const MachineRegisterInfo * MRI,
const MachineInstr * ResType )

Definition at line 995 of file SPIRVUtils.cpp.

References foldImm(), llvm::MachineInstr::getOperand(), and MRI.

◆ getAsMetadata()

◆ getAsSignedInteger()

bool llvm::getAsSignedInteger ( StringRef Str,
unsigned Radix,
long long & Result )

Definition at line 497 of file StringRef.cpp.

References consumeSignedInteger().

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

◆ getAssumptions() [1/2]

DenseSet< StringRef > llvm::getAssumptions ( const CallBase & CB)

Return the set of all assumptions for the call CB.

Definition at line 90 of file Assumptions.cpp.

References A(), AssumptionAttrKey, and llvm::CallBase::getFnAttr().

◆ getAssumptions() [2/2]

DenseSet< StringRef > llvm::getAssumptions ( const Function & F)

Return the set of all assumptions for the function F.

Definition at line 85 of file Assumptions.cpp.

References A(), AssumptionAttrKey, and F.

◆ getAsUnsignedInteger()

◆ getAtomicSyncScopeID()

std::optional< SyncScope::ID > llvm::getAtomicSyncScopeID ( const Instruction * I)
inline

A helper function that returns an atomic operation's sync scope; returns std::nullopt if it is not an atomic operation.

Definition at line 5153 of file Instructions.h.

References dyn_cast(), I, and llvm_unreachable.

Referenced by isTsanAtomic(), LLVMGetAtomicSyncScopeID(), and LLVMIsAtomicSingleThread().

◆ getAttributeBasedInliningDecision()

std::optional< InlineResult > llvm::getAttributeBasedInliningDecision ( CallBase & Call,
Function * Callee,
TargetTransformInfo & CalleeTTI,
function_ref< const TargetLibraryInfo &(Function &)> GetTLI )

Returns InlineResult::success() if the call site should be always inlined because of user directives, and the inlining is viable.

Returns InlineResult::failure() if the inlining may never happen because of user directives or incompatibilities detectable without needing callee traversal. Otherwise returns std::nullopt, meaning that inlining should be decided based on other criteria (e.g. cost modeling).

Definition at line 3186 of file InlineCost.cpp.

References Call, cast(), llvm::InlineResult::failure(), functionsHaveCompatibleAttributes(), llvm::PointerType::getAddressSpace(), I, isInlineViable(), and llvm::InlineResult::success().

Referenced by getInlineCost(), and llvm::InlineAdvisor::getMandatoryKind().

◆ getAUTOpcodeForKey()

unsigned llvm::getAUTOpcodeForKey ( AArch64PACKey::ID K,
bool Zero )
inlinestatic

Return AUT opcode to be used for a ptrauth auth using the given key, or its AUT*Z variant that doesn't take a discriminator operand, using zero instead.

Definition at line 775 of file AArch64InstrInfo.h.

References llvm_unreachable.

◆ getAutoSenseRadix()

unsigned llvm::getAutoSenseRadix ( StringRef & Str)

Definition at line 388 of file StringRef.cpp.

References isDigit().

Referenced by llvm::StringRef::consumeInteger(), and consumeUnsignedInteger().

◆ getAVLPos()

std::optional< int > llvm::getAVLPos ( unsigned )

The VE backend uses a two-staged process to lower and legalize vector instructions:

  1. VP and standard vector SDNodes are lowered to SDNodes of the VVP_* layer. AVL Functions {

Definition at line 166 of file VECustomDAG.cpp.

References llvm::ISD::getVPExplicitVectorLengthIdx(), isVVPBinaryOp(), Opc, and llvm::VEISD::VEC_BROADCAST.

Referenced by getNodeAVL(), llvm::VETargetLowering::legalizePackedAVL(), and llvm::VETargetLowering::splitVectorOp().

◆ getBaseFSBitBegin()

unsigned llvm::getBaseFSBitBegin ( )
inlinestatic

Definition at line 116 of file Discriminator.h.

◆ getBaseFSBitEnd()

unsigned llvm::getBaseFSBitEnd ( )
inlinestatic

Definition at line 119 of file Discriminator.h.

References BaseDiscriminatorBitWidth.

Referenced by llvm::DILocation::getBaseDiscriminatorBits().

◆ getBaseObjectSize()

std::optional< TypeSize > llvm::getBaseObjectSize ( const Value * Ptr,
const DataLayout & DL,
const TargetLibraryInfo * TLI,
ObjectSizeOpts Opts = {} )

Like getObjectSize(), but only returns the size of base objects (like allocas, global variables and allocator calls) and std::nullopt otherwise.

Requires ExactSizeFromOffset mode.

Definition at line 592 of file MemoryBuiltins.cpp.

References A(), alignTo(), assert(), DL, dyn_cast(), llvm::ObjectSizeOpts::EvalMode, llvm::ObjectSizeOpts::ExactSizeFromOffset, getAllocSize(), llvm::TypeSize::getFixed(), llvm::TypeSize::getZero(), isa(), llvm::Type::isSized(), llvm::ObjectSizeOpts::NullIsUnknownSize, Ptr, llvm::ObjectSizeOpts::RoundToAlign, and Size.

Referenced by getConstraintFromMemoryAccess(), and getObjectSize().

◆ getBestSimplifyQuery() [1/4]

template const SimplifyQuery llvm::getBestSimplifyQuery ( AnalysisManager< Function > & ,
Function &  )

◆ getBestSimplifyQuery() [2/4]

template<class T, class... TArgs>
const SimplifyQuery llvm::getBestSimplifyQuery ( AnalysisManager< T, TArgs... > & AM,
Function & F )

Definition at line 7386 of file InstructionSimplify.cpp.

References F.

◆ getBestSimplifyQuery() [3/4]

◆ getBestSimplifyQuery() [4/4]

◆ getBitcodeFileContents()

◆ getBitcodeLTOInfo()

Expected< BitcodeLTOInfo > llvm::getBitcodeLTOInfo ( MemoryBufferRef Buffer)

Returns LTO information for the specified bitcode file.

Definition at line 8767 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 8359 of file BitcodeReader.cpp.

References getBitcodeFileContents().

Referenced by llvm::object::IRObjectFile::create(), llvm::lto::findThinLTOModule(), 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 8741 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 8725 of file BitcodeReader.cpp.

References initStream(), readTriple(), and llvm::Expected< T >::takeError().

Referenced by getBitcodeFileMachine(), isAnyArm64COFF(), llvm::LTOModule::isBitcodeForTarget(), and isECObject().

◆ getBitwiseNotOperand()

SDValue llvm::getBitwiseNotOperand ( SDValue V,
SDValue Mask,
bool AllowUndefs )

If V is a bitwise not, returns the inverted operand.

Otherwise returns an empty SDValue. Only bits set in Mask are required to be inverted, other bits may be arbitrary.

Definition at line 6229 of file SelectionDAG.cpp.

References llvm::ISD::ANY_EXTEND, llvm::APInt::getActiveBits(), llvm::ConstantSDNode::getAPIntValue(), llvm::SDNode::getOpcode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getScalarValueSizeInBits(), llvm::SDValue::getValueType(), isBitwiseNot(), isConstOrConstSplat(), SDValue(), and llvm::ISD::TRUNCATE.

Referenced by haveNoCommonBitsSetCommutative(), and visitORCommutative().

◆ getBlockStructInstr()

◆ getBlockStructType()

const Type * llvm::getBlockStructType ( Register ParamReg,
MachineRegisterInfo * MRI )
static

Definition at line 420 of file SPIRVBuiltins.cpp.

References assert(), getBlockStructInstr(), getMachineInstrType(), isSpvIntrinsic(), MI, and MRI.

Referenced by buildEnqueueKernel().

◆ getBLRCallOpcode()

unsigned llvm::getBLRCallOpcode ( const MachineFunction & MF)

Return opcode to be used for indirect calls.

Definition at line 10784 of file AArch64InstrInfo.cpp.

References llvm::MachineFunction::getSubtarget().

Referenced by getCallOpcode().

◆ getBLXOpcode()

unsigned llvm::getBLXOpcode ( const MachineFunction & MF)

Definition at line 6523 of file ARMBaseInstrInfo.cpp.

References llvm::MachineFunction::getSubtarget().

◆ getBLXpredOpcode()

unsigned llvm::getBLXpredOpcode ( const MachineFunction & MF)

Definition at line 6533 of file ARMBaseInstrInfo.cpp.

References llvm::MachineFunction::getSubtarget().

◆ getBooleanLoopAttribute()

◆ getBranchWeightMDNode()

MDNode * llvm::getBranchWeightMDNode ( const Instruction & I)

Get the branch weights metadata node.

Parameters
IThe Instruction to get the weights from.
Returns
A pointer to I's branch weights metadata node, if it exists. Nullptr otherwise.

Definition at line 156 of file ProfDataUtils.cpp.

References I, and isBranchWeightMD().

Referenced by llvm::DOTGraphTraits< DOTFuncInfo * >::getEdgeAttributes(), llvm::SwitchInstProfUpdateWrapper::getSuccessorWeight(), getValidBranchWeightMDNode(), llvm::SwitchInstProfUpdateWrapper::init(), simplifySwitchOfCmpIntrinsic(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), and updateBranchWeights().

◆ getBranchWeightOffset()

unsigned llvm::getBranchWeightOffset ( const MDNode * ProfileData)

Return the offset to the first branch weight data.

Definition at line 148 of file ProfDataUtils.cpp.

References hasBranchWeightOrigin().

Referenced by extractProfTotalWeight(), getNumBranchWeights(), and scaleProfData().

◆ getBRegFromDReg()

MCRegister llvm::getBRegFromDReg ( MCRegister Reg)
inlinestatic

Definition at line 129 of file AArch64BaseInfo.h.

References Reg.

◆ getBugReportMsg()

const char * llvm::getBugReportMsg ( )

Get the bug report message that will be output upon a crash.

Definition at line 224 of file PrettyStackTrace.cpp.

References BugReportMsg.

◆ getBundleEnd() [1/2]

Returns an iterator pointing beyond the bundle containing I.

Definition at line 72 of file MachineInstrBundle.h.

References I.

◆ getBundleEnd() [2/2]

◆ getBundleStart() [1/2]

Returns an iterator to the first instruction in the bundle containing I.

Definition at line 55 of file MachineInstrBundle.h.

References I.

◆ getBundleStart() [2/2]

◆ getCachedOrDownloadArtifact() [1/2]

Expected< std::string > llvm::getCachedOrDownloadArtifact ( StringRef UniqueKey,
StringRef UrlPath )

◆ getCachedOrDownloadArtifact() [2/2]

Expected< std::string > llvm::getCachedOrDownloadArtifact ( StringRef UniqueKey,
StringRef UrlPath,
StringRef CacheDirectoryPath,
ArrayRef< StringRef > DebuginfodUrls,
std::chrono::milliseconds Timeout )

Fetches any debuginfod artifact using the specified local cache directory, server URLs, and request timeout (in milliseconds).

If the artifact is found, uses the UniqueKey for the local cache file.

Definition at line 261 of file Debuginfod.cpp.

References llvm::sys::path::append(), argument_out_of_domain, createStringError(), getHeaders(), io_error, llvm::HTTPClient::isAvailable(), llvm::HTTPClient::IsInitialized, localCache(), parseCachePruningPolicy(), llvm::HTTPClient::perform(), llvm::sys::path::posix, pruneCache(), llvm::HTTPClient::responseCode(), llvm::HTTPClient::setTimeout(), llvm::Expected< T >::takeError(), and Timeout.

◆ getCachedOrDownloadDebuginfo()

Expected< std::string > llvm::getCachedOrDownloadDebuginfo ( object::BuildIDRef ID)

Fetches a debug binary by searching the default local cache directory and server URLs.

Definition at line 157 of file Debuginfod.cpp.

References getCachedOrDownloadArtifact(), getDebuginfodCacheKey(), and getDebuginfodDebuginfoUrlPath().

Referenced by llvm::DebuginfodFetcher::fetch(), and llvm::DebuginfodCollection::findDebugBinaryPath().

◆ getCachedOrDownloadExecutable()

Expected< std::string > llvm::getCachedOrDownloadExecutable ( object::BuildIDRef ID)

Fetches an executable by searching the default local cache directory and server URLs.

Definition at line 145 of file Debuginfod.cpp.

References getCachedOrDownloadArtifact(), getDebuginfodCacheKey(), and getDebuginfodExecutableUrlPath().

Referenced by llvm::DebuginfodCollection::findBinaryPath().

◆ getCachedOrDownloadSource()

Expected< std::string > llvm::getCachedOrDownloadSource ( object::BuildIDRef ID,
StringRef SourceFilePath )

Fetches a specified source file by searching the default local cache directory and server URLs.

Definition at line 132 of file Debuginfod.cpp.

References getCachedOrDownloadArtifact(), getDebuginfodCacheKey(), and getDebuginfodSourceUrlPath().

◆ getCallsiteCost()

int llvm::getCallsiteCost ( const TargetTransformInfo & TTI,
const CallBase & Call,
const DataLayout & DL )

Return the cost associated with a callsite, including parameter passing and the call/return instruction.

Definition at line 3098 of file InlineCost.cpp.

References Call, CallPenalty, cast(), DL, llvm::PointerType::getAddressSpace(), I, and InstrCost.

◆ getCapabilitiesEnabledByExtension()

CapabilityList llvm::getCapabilitiesEnabledByExtension ( SPIRV::Extension::Extension Extension)

◆ getCGPassBuilderOption()

◆ getClusterDim()

SmallVector< unsigned, 3 > llvm::getClusterDim ( const Function & F)

Definition at line 288 of file NVPTXUtilities.cpp.

References F, and getFnAttrParsedVector().

Referenced by getOverallClusterRank().

◆ getCodeGenDataSectionName()

std::string llvm::getCodeGenDataSectionName ( CGDataSectKind CGSK,
Triple::ObjectFormatType OF,
bool AddSegmentInfo = true )

◆ getColorCategory()

cl::OptionCategory & llvm::getColorCategory ( )
extern

Definition at line 19 of file WithColor.cpp.

◆ getConstantDataArrayInfo()

◆ getConstantFPVRegVal()

◆ getConstantRangeFromMetadata()

◆ getConstantStringInfo()

bool llvm::getConstantStringInfo ( const Value * V,
StringRef & Str,
bool TrimAtNul = true )

This function computes the length of a null-terminated C string pointed to by V.

Extract bytes from the initializer of the constant array V, which need not be a nul-terminated string.

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.

On success, store the bytes in Str and return true. When TrimAtNul is set, Str will contain only the bytes up to but not including the first nul. Return false on failure.

Definition at line 6470 of file ValueTracking.cpp.

References llvm::ConstantDataArraySlice::Array, llvm::ConstantDataSequential::getAsString(), getConstantDataArrayInfo(), and llvm::StringRef::substr().

Referenced by callBufferedPrintfStart(), emitAMDGPUPrintfCall(), llvm::WebAssemblyAsmPrinter::EmitFunctionAttributes(), foldMemChr(), getAnnotation(), getAsConstantStr(), optimizeMemCmpVarSize(), and optimizeNaN().

◆ getConstantValue()

bool llvm::getConstantValue ( SDValue N,
uint32_t & Out )
inlinestatic

Definition at line 27 of file AMDGPUISelDAGToDAG.h.

References llvm::CallingConv::C, dyn_cast(), and N.

Referenced by packConstantV2I16().

◆ getConstFromIntrinsic()

unsigned llvm::getConstFromIntrinsic ( Register Reg,
MachineRegisterInfo * MRI )
static

Definition at line 394 of file SPIRVBuiltins.cpp.

References assert(), DefMI, MRI, and Reg.

Referenced by generateCoopMatrInst(), generateGroupInst(), and generateLoadStoreInst().

◆ getConstrainedIntrinsicID()

Intrinsic::ID llvm::getConstrainedIntrinsicID ( const Instruction & Instr)

Returns constrained intrinsic id to represent the given instruction in strictfp function.

If the instruction is already a constrained intrinsic or does not have a constrained intrinsic counterpart, the function returns zero.

Definition at line 90 of file FPEnv.cpp.

References dyn_cast(), and llvm::Intrinsic::not_intrinsic.

◆ getContainedTypes()

ArrayRef< Type * > llvm::getContainedTypes ( Type *const & Ty)
inline

Returns the types contained in Ty.

For struct types, it returns the elements, all other types are returned directly.

Definition at line 93 of file VectorTypeUtils.h.

References ArrayRef(), and dyn_cast().

Referenced by llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::VPCostContext::getScalarizationOverhead(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), getVectorizedTypeVF(), and willGenerateVectors().

◆ getCoopMatrType()

◆ 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 153 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 161 of file InstrProf.h.

◆ getCoverTy()

◆ getCPU()

StringRef llvm::getCPU ( StringRef CPU)
static

Processes a CPU name.

Definition at line 32 of file AVRTargetMachine.cpp.

Referenced by llvm::AVRTargetMachine::AVRTargetMachine().

◆ getCPUDefaultTargetFeatures()

std::optional< llvm::StringMap< bool > > llvm::getCPUDefaultTargetFeatures ( StringRef CPU,
ArrayRef< BasicSubtargetSubTypeKV > ProcDesc,
ArrayRef< BasicSubtargetFeatureKV > ProcFeatures )

◆ getCRFromCRBit()

unsigned llvm::getCRFromCRBit ( unsigned SrcReg)
inlinestatic

◆ getDbgRecordRange()

LLVM_ABI iterator_range< simple_ilist< DbgRecord >::iterator > llvm::getDbgRecordRange ( DbgMarker * DebugMarker)
inline

Inline helper to return a range of DbgRecords attached to a marker.

It needs to be inlined as it's frequently called, but also come after the declaration of DbgMarker. Thus: it's pre-declared by users like Instruction, then an inlineable body defined here.

Definition at line 687 of file DebugProgramInstruction.h.

References llvm::DbgMarker::getDbgRecordRange(), and llvm::DbgMarker::getEmptyDbgRecordRange().

Referenced by llvm::Instruction::getDbgRecordRange().

◆ getDeadRegState()

◆ getDebuginfodCacheKey()

std::string llvm::getDebuginfodCacheKey ( llvm::StringRef S)

Returns the cache key for a given debuginfod URL path.

Definition at line 57 of file Debuginfod.cpp.

References utostr(), and xxh3_64bits().

Referenced by getCachedOrDownloadDebuginfo(), getCachedOrDownloadExecutable(), and getCachedOrDownloadSource().

◆ getDebuginfodDebuginfoUrlPath()

std::string llvm::getDebuginfodDebuginfoUrlPath ( object::BuildIDRef ID)

Get the full URL path for a debug binary request of a given BuildID.

Definition at line 150 of file Debuginfod.cpp.

References llvm::sys::path::append(), buildIDToString(), and llvm::sys::path::posix.

Referenced by getCachedOrDownloadDebuginfo().

◆ getDebuginfodExecutableUrlPath()

std::string llvm::getDebuginfodExecutableUrlPath ( object::BuildIDRef ID)

Get the full URL path for an executable request of a given BuildID.

Definition at line 138 of file Debuginfod.cpp.

References llvm::sys::path::append(), buildIDToString(), and llvm::sys::path::posix.

Referenced by getCachedOrDownloadExecutable().

◆ getDebuginfodSourceUrlPath()

std::string llvm::getDebuginfodSourceUrlPath ( BuildIDRef ID,
StringRef SourceFilePath )

Get the full URL path for a source request of a given BuildID and file path.

The following functions fetch a debuginfod artifact to a file in a local cache and return the cached file path.

They first search the local cache, followed by the debuginfod servers.

Definition at line 123 of file Debuginfod.cpp.

References llvm::sys::path::append(), buildIDToString(), llvm::sys::path::convert_to_slash(), and llvm::sys::path::posix.

Referenced by getCachedOrDownloadSource().

◆ getDebugInfoSize()

uint64_t llvm::getDebugInfoSize ( DWARFContext & Dwarf)
static

Compute the total size of the debug info.

Definition at line 53 of file DWARFLinker.cpp.

References Dwarf, and Size.

Referenced by llvm::dwarf_linker::classic::DWARFLinker::link().

◆ getDebugMetadataVersionFromModule()

unsigned llvm::getDebugMetadataVersionFromModule ( const Module & M)

Return Debug Info Metadata Version by checking module flags.

Definition at line 892 of file DebugInfo.cpp.

References llvm::mdconst::dyn_extract_or_null().

Referenced by LLVMGetModuleDebugMetadataVersion().

◆ getDebugRegState()

unsigned llvm::getDebugRegState ( bool B)
inline

Definition at line 555 of file MachineInstrBuilder.h.

References B(), and llvm::RegState::Debug.

Referenced by getRegState().

◆ getDebugValueLoc()

◆ getDef()

MachineInstr * llvm::getDef ( const MachineOperand & MO,
const MachineRegisterInfo * MRI )

Definition at line 970 of file SPIRVUtils.cpp.

References llvm::MachineOperand::getReg(), MRI, and passCopy().

Referenced by getCastsForInductionPHI(), and getImm().

◆ getDefaultDebuginfodCacheDirectory()

Expected< std::string > llvm::getDefaultDebuginfodCacheDirectory ( )

Finds a default local file caching directory for the debuginfod client, first checking DEBUGINFOD_CACHE_PATH.

Definition at line 97 of file Debuginfod.cpp.

References llvm::sys::path::append(), llvm::sys::path::cache_directory(), createStringError(), and io_error.

Referenced by getCachedOrDownloadArtifact().

◆ getDefaultDebuginfodTimeout()

std::chrono::milliseconds llvm::getDefaultDebuginfodTimeout ( )

Finds a default timeout for debuginfod HTTP requests.

Checks DEBUGINFOD_TIMEOUT environment variable, default is 90 seconds (90000 ms).

Definition at line 109 of file Debuginfod.cpp.

References Timeout, and to_integer().

Referenced by getCachedOrDownloadArtifact().

◆ getDefaultDebuginfodUrls()

SmallVector< StringRef > llvm::getDefaultDebuginfodUrls ( )

Finds default array of Debuginfod server URLs by checking DEBUGINFOD_URLS environment variable.

Definition at line 71 of file Debuginfod.cpp.

References SmallVector, and llvm::StringRef::split().

Referenced by canUseDebuginfod(), and getCachedOrDownloadArtifact().

◆ getDefaultEHPersonality()

EHPersonality llvm::getDefaultEHPersonality ( const Triple & T)

Definition at line 94 of file EHPersonalities.cpp.

References GNU_C, GNU_CXX, and T.

Referenced by getDefaultPersonalityFn().

◆ getDefaultInlineOrder()

std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > llvm::getDefaultInlineOrder ( FunctionAnalysisManager & FAM,
const InlineParams & Params,
ModuleAnalysisManager & MAM,
Module & M )

Definition at line 288 of file InlineOrder.cpp.

References Cost, CostBenefit, dbgs(), FAM, LLVM_DEBUG, MAM, ML, Size, and UseInlinePriority.

Referenced by getInlineOrder().

◆ getDefaultMaxUsesToExploreForCaptureTracking()

unsigned llvm::getDefaultMaxUsesToExploreForCaptureTracking ( )

getDefaultMaxUsesToExploreForCaptureTracking - Return default value of the maximal number of uses to explore before giving up.

It is used by PointerMayBeCaptured family analysis.

Definition at line 50 of file CaptureTracking.cpp.

References DefaultMaxUsesToExplore.

Referenced by PointerMayBeCaptured().

◆ getDefaultPrecision()

◆ getDefaultStackSize()

unsigned llvm::getDefaultStackSize ( )
Returns
the default stack size for this platform.

Based on RLIMIT_STACK or the equivalent.

Definition at line 44 of file ProgramStack.cpp.

◆ getDefIgnoringCopies()

◆ getDefInstrMaybeConstant()

◆ getDefRegState()

◆ getDefSrcRegIgnoringCopies()

std::optional< DefinitionAndSourceRegister > llvm::getDefSrcRegIgnoringCopies ( Register Reg,
const MachineRegisterInfo & MRI )

Find the def instruction for Reg, and underlying value Register folding away any copies.

Also walks through hints such as G_ASSERT_ZEXT.

Definition at line 467 of file Utils.cpp.

References DefMI, llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), isPreISelGenericOptimizationHint(), MRI, and Opc.

Referenced by getDefIgnoringCopies(), getSrcRegIgnoringCopies(), isKnownToBeAPowerOfTwo(), llvm::CombinerHelper::matchEqualDefs(), stripCopy(), and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().

◆ getDeinterleavedVectorType()

◆ getDeinterleaveIntrinsicFactor()

unsigned llvm::getDeinterleaveIntrinsicFactor ( Intrinsic::ID ID)

Returns the corresponding factor of llvm.vector.deinterleaveN intrinsics.

Definition at line 272 of file VectorUtils.cpp.

Referenced by getDeinterleavedVectorType(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), and llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad().

◆ getDescImpl()

Desc llvm::getDescImpl ( ArrayRef< Desc > Descriptions,
unsigned Opcode )
static

Definition at line 113 of file DWARFExpression.cpp.

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

Referenced by getOpDesc(), and getSubOpDesc().

◆ getDevelopmentModeAdvisor()

LLVM_ABI std::unique_ptr< InlineAdvisor > llvm::getDevelopmentModeAdvisor ( Module & M,
ModuleAnalysisManager & MAM,
std::function< bool(CallBase &)> GetDefaultAdvice )

◆ getDiagnosticSeverity()

◆ getDisjunctionWeights()

SmallVector< uint64_t, 2 > llvm::getDisjunctionWeights ( const SmallVector< uint32_t, 2 > & B1,
const SmallVector< uint32_t, 2 > & B2 )
inline

Get the branch weights of a branch conditioned on b1 || b2, where b1 and b2 are 2 booleans that are the conditions of 2 branches for which we have the branch weights B1 and B2, respectively.

In both B1 and B2, the first position (index 0) is for the 'true' branch, and the second position (index 1) is for the 'false' branch.

Definition at line 205 of file ProfDataUtils.h.

References assert(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by mergeConditionalStoreToAddress().

◆ getDISubprogram()

DISubprogram * llvm::getDISubprogram ( const MDNode * Scope)

◆ getDRegFromBReg()

MCRegister llvm::getDRegFromBReg ( MCRegister Reg)
inlinestatic

Definition at line 168 of file AArch64BaseInfo.h.

References Reg.

◆ getDWARFUnitIndex()

const DWARFUnitIndex & llvm::getDWARFUnitIndex ( DWARFContext & Context,
DWARFSectionKind Kind )

Definition at line 892 of file DWARFUnit.cpp.

References assert(), and DW_SECT_EXT_TYPES.

◆ getDwoId()

◆ getEffectiveCodeModel()

◆ getEffectiveRelocModel()

◆ getEFlagsForFeatureSet()

◆ getEHPersonalityName()

◆ getEHScopeMembership()

◆ getExitBlockHelper()

template<class BlockT, class LoopT>
std::pair< BlockT *, bool > llvm::getExitBlockHelper ( const LoopBase< BlockT, LoopT > * L,
bool Unique )

getExitBlock - If getExitBlocks would return exactly one block, return that block.

Otherwise return null.

Definition at line 77 of file GenericLoopInfoImpl.h.

References assert(), children(), and find_singleton_nested().

Referenced by llvm::LoopBase< BlockT, LoopT >::getExitBlock(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlock(), and llvm::LoopBase< BlockT, LoopT >::hasNoExitBlocks().

◆ getExpressionForConstant()

◆ getExtDivCycle()

template<typename CycleT, typename BlockT>
const CycleT * llvm::getExtDivCycle ( const CycleT * Cycle,
const BlockT * DivTermBlock,
const BlockT * JoinBlock )
static

Return the outermost cycle made divergent by branch outside it.

If two paths that diverged outside an irreducible cycle join inside that cycle, then that whole cycle is assumed to be divergent. This does not apply if the cycle is reducible.

Definition at line 956 of file GenericUniformityImpl.h.

References assert(), dbgs(), and LLVM_DEBUG.

Referenced by getOutermostDivergentCycle().

◆ getExtInstName()

std::string llvm::getExtInstName ( SPIRV::InstructionSet::InstructionSet Set,
uint32_t InstructionNumber )

Definition at line 255 of file SPIRVBaseInfo.cpp.

References Lookup().

Referenced by llvm::SPIRVInstPrinter::printExtension().

◆ getExtInstSetFromString()

SPIRV::InstructionSet::InstructionSet llvm::getExtInstSetFromString ( std::string SetName)

Definition at line 245 of file SPIRVBaseInfo.cpp.

References getExtInstSetName(), and llvm_unreachable.

◆ getExtInstSetName()

std::string llvm::getExtInstSetName ( SPIRV::InstructionSet::InstructionSet Set)

Definition at line 230 of file SPIRVBaseInfo.cpp.

Referenced by getExtInstSetFromString().

◆ getFCmpCode()

◆ getFCmpCodeWithoutNaN()

ISD::CondCode llvm::getFCmpCodeWithoutNaN ( ISD::CondCode CC)

◆ getFCmpCondCode()

◆ getFConstantSplat()

std::optional< FPValueAndVReg > llvm::getFConstantSplat ( Register VReg,
const MachineRegisterInfo & MRI,
bool AllowUndef = true )

Returns a floating point scalar constant of a build vector splat if it exists.

When AllowUndef == true some elements can be undef but not all.

Definition at line 1475 of file Utils.cpp.

References getFConstantVRegValWithLookThrough(), and MRI.

Referenced by isConstantOrConstantSplatVectorFP(), llvm::MIPatternMatch::GFCstOrSplatGFCstMatch::match(), and llvm::CombinerHelper::matchFsubToFneg().

◆ getFConstantVRegValWithLookThrough()

std::optional< FPValueAndVReg > llvm::getFConstantVRegValWithLookThrough ( Register VReg,
const MachineRegisterInfo & MRI,
bool LookThroughInstrs = true )

If VReg is defined by a statically evaluable chain of instructions rooted on a G_FCONSTANT returns its APFloat value and def register.

Definition at line 447 of file Utils.cpp.

References getConstantFPVRegVal(), llvm::ConstantFP::getValueAPF(), and MRI.

Referenced by llvm::GFConstant::getConstant(), getFConstantSplat(), isConstantOrConstantSplatVectorFP(), llvm::MIPatternMatch::GFCstAndRegMatch::match(), llvm::MIPatternMatch::GFCstOrSplatGFCstMatch::match(), and llvm::CombinerHelper::matchFsubToFneg().

◆ getFirstValidInstructionInsertPoint()

MachineBasicBlock::iterator llvm::getFirstValidInstructionInsertPoint ( MachineBasicBlock & BB)

◆ getFirstValueProfRecord()

INSTR_PROF_VISIBILITY INSTR_PROF_INLINE ValueProfRecord * llvm::getFirstValueProfRecord ( ValueProfData * VPD)

Return the first ValueProfRecord instance.

Definition at line 613 of file InstrProf.cpp.

References P.

◆ getFixupKindLog2Size()

unsigned llvm::getFixupKindLog2Size ( unsigned Kind)
inlinestatic

Definition at line 20 of file M68kFixupKinds.h.

References FK_Data_1, FK_Data_2, FK_Data_4, and llvm_unreachable.

◆ getFlippedStrictnessPredicateAndConstant()

std::optional< std::pair< CmpPredicate, Constant * > > llvm::getFlippedStrictnessPredicateAndConstant ( CmpPredicate Pred,
Constant * C )

Convert an integer comparison with a constant RHS into an equivalent form with the strictness flipped predicate.

Return the new predicate and corresponding constant RHS if possible. Otherwise return std::nullopt. E.g., (icmp sgt X, 0) -> (icmp sle X, 1).

Definition at line 8587 of file ValueTracking.cpp.

References assert(), llvm::CallingConv::C, dyn_cast(), dyn_cast_or_null(), llvm::ConstantExpr::getAdd(), llvm::CmpInst::getFlippedStrictnessPredicate(), llvm::ICmpInst::getUnsignedPredicate(), llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, isa(), llvm::CmpInst::isIntPredicate(), llvm::ICmpInst::isRelational(), llvm::CmpInst::isSigned(), and llvm::Constant::replaceUndefsWith().

Referenced by canonicalizeCmpWithConstant(), llvm::InstCombinerImpl::foldICmpShlConstant(), and llvm::InstCombinerImpl::matchThreeWayIntCompare().

◆ getFloatFn()

StringRef llvm::getFloatFn ( const Module * M,
const TargetLibraryInfo * TLI,
Type * Ty,
LibFunc DoubleFn,
LibFunc FloatFn,
LibFunc LongDoubleFn,
LibFunc & TheLibFunc )

Get the name of the overloaded floating point function corresponding to Ty.

Return the LibFunc in TheLibFunc.

Definition at line 1565 of file BuildLibCalls.cpp.

References assert(), llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::TargetLibraryInfo::getName(), llvm::Type::HalfTyID, hasFloatFn(), and llvm_unreachable.

Referenced by emitBinaryFloatFnCall(), and emitUnaryFloatFnCall().

◆ getFltSemanticForLLT()

◆ getFMA3Group()

const X86InstrFMA3Group * llvm::getFMA3Group ( unsigned Opcode,
uint64_t TSFlags )

◆ getFnAttrParsedInt()

std::optional< unsigned > llvm::getFnAttrParsedInt ( const Function & F,
StringRef Attr )
static

Definition at line 174 of file NVPTXUtilities.cpp.

References F.

Referenced by getMaxClusterRank(), getMaxNReg(), and getMinCTASm().

◆ getFnAttrParsedVector()

SmallVector< unsigned, 3 > llvm::getFnAttrParsedVector ( const Function & F,
StringRef Attr )
static

Definition at line 181 of file NVPTXUtilities.cpp.

References llvm::StringRef::empty(), F, First, I, and llvm::StringRef::split().

Referenced by getClusterDim(), getMaxNTID(), and getReqNTID().

◆ getFpImmVal()

uint64_t llvm::getFpImmVal ( const ConstantFPSDNode * N)
inlinestatic

getFpImmVal - get immediate representation of floating point value

Definition at line 148 of file VEISelLowering.h.

References N.

Referenced by isMImm().

◆ getFreedOperand()

◆ getFSPassBitBegin()

◆ getFSPassBitEnd()

◆ 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 452 of file InstrProf.cpp.

References llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::size(), and llvm::StringRef::starts_with().

◆ getFunctionAtVTableOffset()

std::pair< Function *, Constant * > llvm::getFunctionAtVTableOffset ( GlobalVariable * GV,
uint64_t Offset,
Module & M )

Given a vtable and a specified offset, returns the function and the trivial pointer at the specified offset in pair iff the pointer at the specified offset is a function or an alias to a function.

Returns a pair of nullptr otherwise.

Definition at line 224 of file TypeMetadataUtils.cpp.

References A(), llvm::CallingConv::C, dyn_cast(), llvm::GlobalVariable::getInitializer(), getPointerAtOffset(), Offset, and Ptr.

Referenced by tryPromoteCall().

◆ getFunctionLiveInPhysReg()

Register llvm::getFunctionLiveInPhysReg ( MachineFunction & MF,
const TargetInstrInfo & TII,
MCRegister PhysReg,
const TargetRegisterClass & RC,
const DebugLoc & DL,
LLT RegTy = LLT() )

Return a virtual register corresponding to the incoming argument register PhysReg.

This register is expected to have class RC, and optional type RegTy. This assumes all references to the register will use the same type.

If there is an existing live-in argument register, it will be returned. This will also ensure there is a valid copy

Definition at line 916 of file Utils.cpp.

References llvm::MachineBasicBlock::addLiveIn(), llvm::MachineFunction::addLiveIn(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::MachineBasicBlock::begin(), BuildMI(), DL, llvm::MachineFunction::front(), llvm::MachineFunction::getRegInfo(), llvm::MachineBasicBlock::isLiveIn(), llvm::LLT::isValid(), MRI, and TII.

Referenced by llvm::AMDGPULegalizerInfo::buildLoadInputValue().

◆ getGatherScatterIndex()

SDValue llvm::getGatherScatterIndex ( SDValue Op)

Definition at line 316 of file VECustomDAG.cpp.

References dyn_cast(), N, and SDValue().

Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER().

◆ getGatherScatterScale()

SDValue llvm::getGatherScatterScale ( SDValue Op)

Definition at line 324 of file VECustomDAG.cpp.

References dyn_cast(), N, and SDValue().

Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER().

◆ getGCDType()

LLT llvm::getGCDType ( LLT OrigTy,
LLT TargetTy )

Return a type where the total size is the greatest common divisor of OrigTy and TargetTy.

This will try to either change the number of vector elements, or bitwidth of scalars. The intent is the result type can be used as the result of a G_UNMERGE_VALUES from OrigTy, and then some combination of G_MERGE_VALUES, G_BUILD_VECTOR and G_CONCAT_VECTORS (possibly with intermediate casts) can re-form TargetTy.

If these are vectors with different element types, this will try to produce a vector with a compatible total size, but the element type of OrigTy. If this can't be satisfied, this will produce a scalar smaller than the original vector elements. It is an error to call this function where one argument is a fixed vector and the other is a scalable vector, since it is illegal to build a G_{MERGE|UNMERGE}_VALUES between fixed and scalable vectors.

In the worst case, this returns LLT::scalar(1)

Definition at line 1277 of file Utils.cpp.

References assert(), llvm::ElementCount::get(), llvm::LLT::getElementType(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::LLT::getScalarType(), llvm::LLT::getSizeInBits(), llvm::LLT::isFixedVector(), llvm::LLT::isScalable(), llvm::LLT::isScalableVector(), llvm::LLT::isVector(), llvm::LLT::scalar(), llvm::LLT::scalarOrVector(), and llvm::LLT::vector().

Referenced by buildCopyFromRegs(), and buildCopyToRegs().

◆ getGCStrategy()

◆ getGlobalPassGate()

OptPassGate & llvm::getGlobalPassGate ( )

Singleton instance of the OptPassGate class, so multiple pass managers don't need to coordinate their uses of OptBisect and OptDisable.

Definition at line 94 of file OptBisect.cpp.

References getOptBisector(), and getOptDisabler().

Referenced by llvm::LLVMContextImpl::getOptPassGate().

◆ getGVDT()

◆ getHeaders()

◆ getHeatColor() [1/2]

std::string llvm::getHeatColor ( double percent)

Definition at line 70 of file HeatUtils.cpp.

References heatPalette, heatSize, and round().

◆ getHeatColor() [2/2]

std::string llvm::getHeatColor ( uint64_t freq,
uint64_t maxFreq )

◆ getHorizDemandedEltsForFirstOperand()

void llvm::getHorizDemandedEltsForFirstOperand ( unsigned VectorBitWidth,
const APInt & DemandedElts,
APInt & DemandedLHS,
APInt & DemandedRHS )

Compute the demanded elements mask of horizontal binary operations.

A horizontal operation combines two adjacent elements in a vector operand. This function returns a mask for the elements that correspond to the first operand of this horizontal combination. For example, for two vectors [X1, X2, X3, X4] and [Y1, Y2, Y3, Y4], the resulting mask can include the elements X1, X3, Y1, and Y3. To get the other operands, simply shift the result of this function to the left by 1.

Parameters
VectorBitWidththe total bit width of the vector
DemandedEltsthe demanded elements mask for the operation
DemandedLHSthe demanded elements mask for the left operand
DemandedRHSthe demanded elements mask for the right operand

Definition at line 780 of file VectorUtils.cpp.

References assert(), llvm::APInt::getBitWidth(), llvm::APInt::getZero(), and llvm::APInt::setBit().

Referenced by computeKnownBitsForHorizontalOperation(), computeKnownBitsForHorizontalOperation(), and getHorizDemandedElts().

◆ getHotnessName()

◆ getICmpCode()

unsigned llvm::getICmpCode ( CmpInst::Predicate Pred)

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 21 of file CmpInstAnalysis.cpp.

References 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.

◆ getICmpCondCode() [1/2]

◆ getICmpCondCode() [2/2]

◆ getICmpTrueVal()

◆ getIConstantFromReg()

◆ getIConstantSplatSExtVal() [1/2]

std::optional< int64_t > llvm::getIConstantSplatSExtVal ( const MachineInstr & MI,
const MachineRegisterInfo & MRI )
Returns
the scalar sign extended integral splat value defined by MI if possible.

Definition at line 1469 of file Utils.cpp.

References getIConstantSplatSExtVal(), MI, and MRI.

◆ getIConstantSplatSExtVal() [2/2]

std::optional< int64_t > llvm::getIConstantSplatSExtVal ( const Register Reg,
const MachineRegisterInfo & MRI )
Returns
the scalar sign extended integral splat value of Reg if possible.

Definition at line 1460 of file Utils.cpp.

References getIConstantVRegSExtVal(), and MRI.

Referenced by getIConstantSplatSExtVal(), getVectorSplat(), isConstantOrConstantSplatVector(), llvm::MIPatternMatch::matchConstantSplat(), and llvm::CombinerHelper::matchNotCmp().

◆ getIConstantSplatVal() [1/2]

std::optional< APInt > llvm::getIConstantSplatVal ( const MachineInstr & MI,
const MachineRegisterInfo & MRI )
Returns
the scalar integral splat value defined by MI if possible.

Definition at line 1454 of file Utils.cpp.

References getIConstantSplatVal(), MI, and MRI.

◆ getIConstantSplatVal() [2/2]

std::optional< APInt > llvm::getIConstantSplatVal ( const Register Reg,
const MachineRegisterInfo & MRI )

◆ getIConstantVRegSExtVal()

std::optional< int64_t > llvm::getIConstantVRegSExtVal ( Register VReg,
const MachineRegisterInfo & MRI )

If VReg is defined by a G_CONSTANT fits in int64_t returns it.

Definition at line 314 of file Utils.cpp.

References getIConstantVRegVal(), and MRI.

Referenced by getConstantZext32Val(), getIConstantSplatSExtVal(), getOperandsForBranch(), isNot(), llvm::MIPatternMatch::matchConstant(), llvm::AMDGPURegisterBankInfo::setBufferOffsets(), and X86SelectAddress().

◆ getIConstantVRegVal()

◆ getIConstantVRegValWithLookThrough()

std::optional< ValueAndVReg > llvm::getIConstantVRegValWithLookThrough ( Register VReg,
const MachineRegisterInfo & MRI,
bool LookThroughInstrs = true )

If VReg is defined by a statically evaluable chain of instructions rooted on a G_CONSTANT returns its APInt value and def register.

Definition at line 433 of file Utils.cpp.

References MRI.

Referenced by llvm::CombinerHelper::applyFunnelShiftConstantModulo(), llvm::AMDGPURegisterBankInfo::applyMappingBFE(), canCreateUndefOrPoison(), llvm::LegalizerHelper::fewerElementsVectorExtractInsertVectorElt(), llvm::GIConstant::getConstant(), getIConstantSplatVal(), getIConstantVRegVal(), getImmedFromMO(), getMemsetValue(), llvm::GISelAddressing::getPointerInfo(), getTestBitReg(), llvm::AArch64GISelUtils::isCMN(), isConstantOrConstantSplatVector(), isConstantOrConstantVector(), llvm::GIMatchTableExecutor::isOperandImmEqual(), knownBitsForSBFE(), llvm::RISCVLegalizerInfo::legalizeCustom(), llvm::AMDGPULegalizerInfo::legalizeExtractVectorElt(), llvm::AMDGPULegalizerInfo::legalizeInsertVectorElt(), llvm::AMDGPULegalizerInfo::legalizePointerAsRsrcIntrin(), llvm::LegalizerHelper::lowerMemCpyFamily(), llvm::LegalizerHelper::lowerMemcpyInline(), llvm::MIPatternMatch::GCstAndRegMatch::match(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineMulToShl(), llvm::CombinerHelper::matchCombineShiftToUnmerge(), llvm::AMDGPUCombinerHelper::matchConstantIs32BitMask(), llvm::CombinerHelper::matchConstantLargerBitWidth(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::CombinerHelper::matchExtractVectorElement(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVectorTrunc(), llvm::CombinerHelper::matchExtractVectorElementWithDifferentIndices(), llvm::CombinerHelper::matchInsertVectorElementOOB(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::CombinerHelper::matchPtrAddImmedChain(), llvm::CombinerHelper::matchShiftImmedChain(), llvm::CombinerHelper::matchShiftOfShiftedLogic(), llvm::LegalizerHelper::narrowScalarShift(), llvm::LegalizerHelper::narrowScalarShiftMultiway(), shiftAmountKnownInRange(), and llvm::AArch64GISelUtils::tryEmitBZero().

◆ getIConstVal()

◆ getIdiomaticVectorType()

std::optional< EVT > llvm::getIdiomaticVectorType ( SDNode * Op)

} AVL Functions

Node Properties {

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 243 of file VECustomDAG.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::ISD::CONCAT_VECTORS, dyn_cast(), llvm::ISD::EXTRACT_SUBVECTOR, getVVPOpcode(), hasReductionStartParam(), isVVPReductionOp(), llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::SELECT, llvm::VEISD::VEC_BROADCAST, and llvm::ISD::VECTOR_SHUFFLE.

Referenced by getLoadStoreStride(), llvm::VETargetLowering::legalizeInternalLoadStoreOp(), llvm::VETargetLowering::legalizePackedAVL(), llvm::VETargetLowering::lowerToVVP(), llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().

◆ GetIfCondition()

BranchInst * llvm::GetIfCondition ( BasicBlock * BB,
BasicBlock *& IfTrue,
BasicBlock *& IfFalse )

Check whether BB is the merge point of a if-region.

If so, return the branch instruction 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 1640 of file BasicBlockUtils.cpp.

References assert(), llvm::BasicBlock::begin(), dyn_cast(), 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().

◆ getImm()

MachineInstr * llvm::getImm ( const MachineOperand & MO,
const MachineRegisterInfo * MRI )

Definition at line 976 of file SPIRVUtils.cpp.

References getDef(), and MRI.

Referenced by llvm::AVRInstrInfo::analyzeBranch(), llvm::LanaiInstrInfo::analyzeBranch(), llvm::MSP430InstrInfo::analyzeBranch(), llvm::XtensaInstrInfo::analyzeBranch(), attachMEMCPYScratchRegs(), buildAtomicCompareExchangeInst(), llvm::AArch64InstrInfo::canFoldIntoAddrMode(), llvm::SIInstrInfo::canInsertSelect(), llvm::X86InstrInfo::canInsertSelect(), llvm::X86InstrInfo::canMakeTailCallConditional(), llvm::RISCVInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::AMDGPUDisassembler::convertMIMGInst(), createNewPtrType(), EmitLoweredCascadedSelect(), emitSelectPseudo(), emitSelectPseudo(), llvm::SIInstrInfo::expandMovDPP64(), findCondCodeUsedByInstr(), foldImm(), generateImageMiscQueryInst(), llvm::RISCVMatInt::generateInstSeq(), llvm::X86::getCondFromMI(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::HexagonInstrInfo::getInvertedPredSense(), llvm::SPIRVGlobalRegistry::getNumScalarOrVectorTotalBitWidth(), getNumSizeComponents(), llvm::SPIRVGlobalRegistry::getPointerStorageClass(), llvm::HexagonInstrInfo::getPredReg(), llvm::MachineInstr::getRegClassConstraint(), llvm::SPIRVGlobalRegistry::getScalarOrVectorComponentCount(), llvm::X86InstrInfo::getSPAdjust(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::AVRInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::LoongArchInstrInfo::insertBranch(), llvm::M68kInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), llvm::RISCVInstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::VEInstrInfo::insertBranch(), llvm::WebAssemblyInstrInfo::insertBranch(), llvm::X86InstrInfo::insertBranch(), llvm::XCoreInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), llvm::AArch64InstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), llvm::SIInstrInfo::insertVectorSelect(), isCheapImmediate(), llvm::LegalizerHelper::lowerISFPCLASS(), llvm::MIPatternMatch::ClassifyOp_match< LHS_P, Test_P, Opcode >::match(), llvm::RISCVInstrInfo::optimizeSelect(), parseCond(), parseCond(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::PPCInstrInfo::PredicateInstruction(), llvm::TargetInstrInfo::PredicateInstruction(), llvm::HexagonInstrInfo::predOpcodeHasNot(), llvm::PPCInstPrinter::printAbsBranchOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::LanaiInstPrinter::printCCOperand(), llvm::RISCVInstPrinter::printFRMArg(), llvm::RISCVInstPrinter::printFRMArgLegacy(), llvm::AArch64InstPrinter::printInst(), llvm::SPIRVInstPrinter::printOpConstantVarOps(), llvm::LanaiInstPrinter::printPredicateOperand(), llvm::X86InstrInfo::replaceBranchWithTailCall(), llvm::AArch64InstrInfo::reverseBranchCondition(), llvm::ARCInstrInfo::reverseBranchCondition(), llvm::CSKYInstrInfo::reverseBranchCondition(), llvm::LoongArchInstrInfo::reverseBranchCondition(), llvm::MipsInstrInfo::reverseBranchCondition(), llvm::PPCInstrInfo::reverseBranchCondition(), llvm::RISCVInstrInfo::reverseBranchCondition(), llvm::SIInstrInfo::reverseBranchCondition(), llvm::SystemZInstrInfo::reverseBranchCondition(), llvm::XCoreInstrInfo::reverseBranchCondition(), llvm::XtensaInstrInfo::reverseBranchCondition(), llvm::ARMBaseInstrInfo::SubsumesPredicate(), llvm::PPCInstrInfo::SubsumesPredicate(), usesGivenOffset(), validateLifetimeStart(), validatePtrUnwrapStructField(), llvm::RISCVInstrInfo::verifyInstruction(), and llvm::SIInstrInfo::verifyInstruction().

◆ getImmVal()

uint64_t llvm::getImmVal ( const ConstantSDNode * N)
inlinestatic

getImmVal - get immediate representation of integer value

Definition at line 143 of file VEISelLowering.h.

References N.

Referenced by isMImm().

◆ getImplRegState()

unsigned llvm::getImplRegState ( bool B)
inline

◆ getIndexExpressionsFromGEP()

bool llvm::getIndexExpressionsFromGEP ( ScalarEvolution & SE,
const GetElementPtrInst * GEP,
SmallVectorImpl< const SCEV * > & Subscripts,
SmallVectorImpl< int > & Sizes )

Gathers the individual index expressions from a GEP instruction.

This function optimistically assumes the GEP references into a fixed size array. If this is actually true, this function returns a list of array subscript expressions in Subscripts and a list of integers describing the size of the individual array dimensions in Sizes. Both lists have either equal length or the size list is one element shorter in case there is no known size available for the outermost array dimension. Returns true if successful and false otherwise.

Definition at line 659 of file Delinearization.cpp.

References assert(), llvm::SmallVectorImpl< T >::clear(), dbgs(), dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), GEP, llvm::ScalarEvolution::getSCEV(), LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by tryDelinearizeFixedSizeImpl().

◆ getInductionIntegerTy()

IntegerType * llvm::getInductionIntegerTy ( const DataLayout & DL,
Type * Ty )
static

Definition at line 398 of file LoopVectorizationLegality.cpp.

References assert(), cast(), DL, and llvm::Type::getInt32Ty().

Referenced by getWiderInductionTy().

◆ getInitialValueOfAllocation()

Constant * llvm::getInitialValueOfAllocation ( const Value * V,
const TargetLibraryInfo * TLI,
Type * Ty )

If this is a call to an allocation function that initializes memory to a fixed value, return said value in the requested type.

Otherwise, return nullptr.

Definition at line 428 of file MemoryBuiltins.cpp.

References Alloc, dyn_cast(), llvm::UndefValue::get(), getAllocationData(), getAllocFnKind(), llvm::Constant::getNullValue(), isa(), MallocOrOpNewLike, Uninitialized, Unknown, and Zeroed.

Referenced by llvm::AA::getInitialValueForObj(), tryToOptimizeStoreOfAllocationToGlobal(), and llvm::InstCombinerImpl::visitAllocSite().

◆ getInlineCost() [1/2]

InlineCost llvm::getInlineCost ( CallBase & Call,
const InlineParams & Params,
TargetTransformInfo & CalleeTTI,
function_ref< AssumptionCache &(Function &)> GetAssumptionCache,
function_ref< const TargetLibraryInfo &(Function &)> GetTLI,
function_ref< BlockFrequencyInfo &(Function &)> GetBFI = nullptr,
ProfileSummaryInfo * PSI = nullptr,
OptimizationRemarkEmitter * ORE = nullptr,
function_ref< EphemeralValuesCache &(Function &)> GetEphValuesCache = 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 3134 of file InlineCost.cpp.

References Call, and getInlineCost().

Referenced by getDefaultInlineAdvice(), and getInlineCost().

◆ getInlineCost() [2/2]

InlineCost llvm::getInlineCost ( CallBase & Call,
Function * Callee,
const InlineParams & Params,
TargetTransformInfo & CalleeTTI,
function_ref< AssumptionCache &(Function &)> GetAssumptionCache,
function_ref< const TargetLibraryInfo &(Function &)> GetTLI,
function_ref< BlockFrequencyInfo &(Function &)> GetBFI = nullptr,
ProfileSummaryInfo * PSI = nullptr,
OptimizationRemarkEmitter * ORE = nullptr,
function_ref< EphemeralValuesCache &(Function &)> GetEphValuesCache = nullptr )

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 3261 of file InlineCost.cpp.

References Call, dbgs(), llvm::InlineCost::get(), llvm::InlineCost::getAlways(), getAttributeBasedInliningDecision(), llvm::InlineResult::getFailureReason(), llvm::InlineCost::getNever(), InlineAllViableCalls, isInlineViable(), llvm::InlineResult::isSuccess(), and LLVM_DEBUG.

◆ getInlineOrder()

std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > llvm::getInlineOrder ( FunctionAnalysisManager & FAM,
const InlineParams & Params,
ModuleAnalysisManager & MAM,
Module & M )

Definition at line 313 of file InlineOrder.cpp.

References dbgs(), FAM, getDefaultInlineOrder(), LLVM_DEBUG, and MAM.

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

◆ getInlineParams() [1/3]

InlineParams llvm::getInlineParams ( )

Generate the parameters to tune the inline cost analysis based only on the commandline options.

Definition at line 3428 of file InlineCost.cpp.

References DefaultThreshold, and getInlineParams().

Referenced by llvm::PassBuilder::buildInlinerPipeline(), getInlineParams(), getInlineParams(), getInlineParamsFromOptLevel(), and llvm::InlineCostAnnotationPrinterPass::run().

◆ getInlineParams() [2/3]

◆ 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 3445 of file InlineCost.cpp.

References computeThresholdFromOptLevels(), getInlineParams(), llvm::InlineParams::LocallyHotCallSiteThreshold, and LocallyHotCallSiteThreshold.

◆ getInlineSpirvType()

◆ getInliningCostEstimate()

std::optional< int > llvm::getInliningCostEstimate ( CallBase & Call,
TargetTransformInfo & CalleeTTI,
function_ref< AssumptionCache &(Function &)> GetAssumptionCache,
function_ref< BlockFrequencyInfo &(Function &)> GetBFI = nullptr,
function_ref< const TargetLibraryInfo &(Function &)> GetTLI = nullptr,
ProfileSummaryInfo * PSI = nullptr,
OptimizationRemarkEmitter * ORE = nullptr )

Get the cost estimate ignoring thresholds.

This is similar to getInlineCost when passed InlineParams::ComputeFullInlineCost, or a non-null ORE. It uses default InlineParams otherwise. Contrary to getInlineCost, which makes a threshold-based final evaluation of should/shouldn't inline, captured in InlineResult, getInliningCostEstimate returns:

  • std::nullopt, if the inlining cannot happen (is illegal)
  • an integer, representing the cost.

Definition at line 3146 of file InlineCost.cpp.

References Call.

Referenced by llvm::MLInlineAdvisor::getAdviceImpl().

◆ getInliningCostFeatures()

std::optional< InlineCostFeatures > llvm::getInliningCostFeatures ( CallBase & Call,
TargetTransformInfo & CalleeTTI,
function_ref< AssumptionCache &(Function &)> GetAssumptionCache,
function_ref< BlockFrequencyInfo &(Function &)> GetBFI = nullptr,
function_ref< const TargetLibraryInfo &(Function &)> GetTLI = nullptr,
ProfileSummaryInfo * PSI = nullptr,
OptimizationRemarkEmitter * ORE = nullptr )

Get the expanded cost features.

The features are returned unconditionally, even if inlining is impossible.

Definition at line 3172 of file InlineCost.cpp.

References Call.

Referenced by llvm::MLInlineAdvisor::getAdviceImpl().

◆ getInsertPtValidEnd()

MachineBasicBlock::iterator llvm::getInsertPtValidEnd ( MachineBasicBlock * MBB)

Definition at line 231 of file SPIRVUtils.cpp.

References I, and MBB.

◆ getInstrMaxCountValue()

uint64_t llvm::getInstrMaxCountValue ( )
inline

◆ getInstrPredicate()

ARMCC::CondCodes llvm::getInstrPredicate ( const MachineInstr & MI,
Register & PredReg )

getInstrPredicate - If instruction is predicated, returns its predicate condition, otherwise returns AL.

It also returns the condition code register by reference.

Definition at line 2076 of file ARMBaseInstrInfo.cpp.

References llvm::ARMCC::AL, and MI.

Referenced by llvm::ARMBaseInstrInfo::commuteInstructionImpl(), findCMPToFoldIntoCBZ(), getITInstrPredicate(), isIncrementOrDecrement(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), and rewriteT2FrameIndex().

◆ getInstrProfBitmapBiasVarName()

StringRef llvm::getInstrProfBitmapBiasVarName ( )
inline

Definition at line 209 of file InstrProf.h.

References INSTR_PROF_PROFILE_BITMAP_BIAS_VAR, and INSTR_PROF_QUOTE.

◆ getInstrProfBitmapVarPrefix()

StringRef llvm::getInstrProfBitmapVarPrefix ( )
inline

Return the name prefix of profile bitmap variables.

Definition at line 136 of file InstrProf.h.

◆ getInstrProfCounterBiasVarName()

StringRef llvm::getInstrProfCounterBiasVarName ( )
inline

Definition at line 205 of file InstrProf.h.

References INSTR_PROF_PROFILE_COUNTER_BIAS_VAR, and INSTR_PROF_QUOTE.

◆ getInstrProfCountersVarPrefix()

StringRef llvm::getInstrProfCountersVarPrefix ( )
inline

Return the name prefix of profile counter variables.

Definition at line 133 of file InstrProf.h.

◆ getInstrProfDataVarPrefix()

StringRef llvm::getInstrProfDataVarPrefix ( )
inline

Return the name prefix of variables containing per-function control data.

Definition at line 130 of file InstrProf.h.

◆ 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 190 of file InstrProf.h.

◆ getInstrProfNameSeparator()

StringRef llvm::getInstrProfNameSeparator ( )
inline

Return the marker used to separate PGO names during serialization.

Definition at line 214 of file InstrProf.h.

Referenced by collectGlobalObjectNameStrings().

◆ getInstrProfNamesRegFuncName()

StringRef llvm::getInstrProfNamesRegFuncName ( )
inline

Return the name of the runtime interface that registers the PGO name strings.

Definition at line 182 of file InstrProf.h.

◆ 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 146 of file InstrProf.h.

◆ getInstrProfNameVarPrefix()

StringRef llvm::getInstrProfNameVarPrefix ( )
inline

Return the name prefix of variables containing instrumented function names.

Definition at line 124 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 176 of file InstrProf.h.

◆ 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 170 of file InstrProf.h.

◆ 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 195 of file InstrProf.h.

References INSTR_PROF_PROFILE_RUNTIME_VAR, and INSTR_PROF_QUOTE.

◆ 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 201 of file InstrProf.h.

◆ 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 238 of file InstrProf.cpp.

References llvm::Triple::COFF, and llvm::Triple::MachO.

Referenced by getELFKindForNamedSection(), llvm::TargetLoweringObjectFileCOFF::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileWasm::getExplicitSectionGlobal(), getInstrProfSection(), lookupAllocatableSection(), lookupSections(), shouldInstrumentReadWriteFromAddress(), and shouldSkipSectionFirstByte().

◆ getInstrProfValueProfFuncName()

StringRef llvm::getInstrProfValueProfFuncName ( )
inline

Return the name profile runtime entry point to do value profiling for a given site.

Definition at line 113 of file InstrProf.h.

Referenced by getOrInsertValueProfilingCall().

◆ getInstrProfValueProfMemOpFuncName()

StringRef llvm::getInstrProfValueProfMemOpFuncName ( )
inline

Return the name profile runtime entry point to do memop size value profiling.

Definition at line 119 of file InstrProf.h.

References INSTR_PROF_VALUE_PROF_MEMOP_FUNC_STR.

Referenced by getOrInsertValueProfilingCall().

◆ getInstrProfValuesVarPrefix()

StringRef llvm::getInstrProfValuesVarPrefix ( )
inline

Return the name prefix of value profile variables.

Definition at line 139 of file InstrProf.h.

◆ getInstrProfVNodesVarName()

StringRef llvm::getInstrProfVNodesVarName ( )
inline

Return the name of value profile node array variables:

Definition at line 142 of file InstrProf.h.

◆ getInstrProfVTableNamesVarName()

StringRef llvm::getInstrProfVTableNamesVarName ( )
inline

Definition at line 148 of file InstrProf.h.

◆ getInstrProfVTableVarPrefix()

StringRef llvm::getInstrProfVTableVarPrefix ( )
inline

Return the name prefix of variables containing virtual table profile data.

Definition at line 127 of file InstrProf.h.

◆ getIntDivCycle()

template<typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>
const CycleT * llvm::getIntDivCycle ( const CycleT * Cycle,
const BlockT * DivTermBlock,
const BlockT * JoinBlock,
const DominatorTreeT & DT,
ContextT & Context )
static

Return the outermost cycle made divergent by branch inside it.

This checks the "diverged entry" criterion defined in the docs/ConvergenceAnalysis.html.

Definition at line 994 of file GenericUniformityImpl.h.

References assert(), dbgs(), and LLVM_DEBUG.

Referenced by getOutermostDivergentCycle().

◆ getInterleaveIntrinsicFactor()

unsigned llvm::getInterleaveIntrinsicFactor ( Intrinsic::ID ID)

Returns the corresponding factor of llvm.vector.interleaveN intrinsics.

Definition at line 251 of file VectorUtils.cpp.

Referenced by getMask().

◆ getInternalReadRegState()

unsigned llvm::getInternalReadRegState ( bool B)
inline

Definition at line 552 of file MachineInstrBuilder.h.

References B(), and llvm::RegState::InternalRead.

Referenced by getRegState().

◆ getIntLoopAttribute()

int llvm::getIntLoopAttribute ( const Loop * TheLoop,
StringRef Name,
int Default = 0 )

Find named metadata for a loop with an integer value.

Return Default if not set.

Definition at line 1127 of file LoopInfo.cpp.

References Default, and getOptionalIntLoopAttribute().

◆ getIntrinsicForCallSite()

Intrinsic::ID llvm::getIntrinsicForCallSite ( const CallBase & CB,
const TargetLibraryInfo * TLI )

Map a call instruction to an intrinsic ID.

Libcalls which have equivalent intrinsics are treated as-if they were intrinsics.

Definition at line 4405 of file ValueTracking.cpp.

References F, llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Intrinsic::not_intrinsic, and llvm::CallBase::onlyReadsMemory().

Referenced by getVectorIntrinsicIDForCall().

◆ getIntrinsicWithChain()

◆ getIntrinsicWithoutChain()

const IntrinsicData * llvm::getIntrinsicWithoutChain ( unsigned IntNo)
static

Definition at line 2080 of file X86IntrinsicsInfo.h.

References Data, IntrinsicsWithoutChain, and lower_bound().

Referenced by combineINTRINSIC_WO_CHAIN().

◆ getInverseGMinMaxOpcode()

unsigned llvm::getInverseGMinMaxOpcode ( unsigned MinMaxOpc)

Returns the inverse opcode of MinMaxOpc, which is a generic min/max opcode like G_SMIN.

Definition at line 279 of file Utils.cpp.

References llvm_unreachable.

Referenced by llvm::CombinerHelper::matchSimplifyNegMinMax().

◆ 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 9056 of file ValueTracking.cpp.

References llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.

Referenced by isSignedMinMaxClamp(), and simplifySelectWithICmpCond().

◆ getInverseMinMaxIntrinsic()

◆ getIRPGOFuncName()

std::string llvm::getIRPGOFuncName ( const Function & F,
bool InLTO = false )
Returns
the modified name for function F suitable to be used as the key for IRPGO profile lookup. InLTO indicates if this is called from LTO optimization passes.

Definition at line 410 of file InstrProf.cpp.

References F, getIRPGOObjectName(), and getPGOFuncNameMetadata().

Referenced by llvm::InstrProfSymtab::create().

◆ getIRPGONameForGlobalObject()

std::string llvm::getIRPGONameForGlobalObject ( const GlobalObject & GO,
GlobalValue::LinkageTypes Linkage,
StringRef FileName )
static

Definition at line 364 of file InstrProf.cpp.

References llvm::GlobalValue::getGlobalIdentifier(), and llvm::Value::getName().

Referenced by getIRPGOObjectName().

◆ getIRPGOObjectName()

std::string llvm::getIRPGOObjectName ( const GlobalObject & GO,
bool InLTO,
MDNode * PGONameMetadata )
static

◆ getITInstrPredicate()

ARMCC::CondCodes llvm::getITInstrPredicate ( const MachineInstr & MI,
Register & 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 790 of file Thumb2InstrInfo.cpp.

References llvm::ARMCC::AL, getInstrPredicate(), MI, and Opc.

Referenced by llvm::Thumb2InstrInfo::isLegalToSplitMBBAt().

◆ getKillRegState()

unsigned llvm::getKillRegState ( bool B)
inline

Definition at line 543 of file MachineInstrBuilder.h.

References B(), and llvm::RegState::Kill.

Referenced by llvm::M68k::addRegIndirectWithDisp(), addRegOffset(), addRegReg(), addSavedGPR(), llvm::RISCVRegisterInfo::adjustReg(), llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::X86InstrInfo::classifyLEAReg(), combineFPFusedMultiply(), llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARCInstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::BPFInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::LoongArchInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::RISCVInstrInfo::copyPhysRegVector(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), emitBuildPairF64Pseudo(), emitBuildPairF64Pseudo(), llvm::VETargetLowering::emitEHSjLjLongJmp(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), emitQuietFCMP(), llvm::VETargetLowering::emitSjLjDispatchBlock(), emitSplitPairF64Pseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::VEInstrInfo::expandPostRAPseudo(), finalizeBundle(), llvm::ARMBaseInstrInfo::foldImmediate(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), genAlternativeDpCodeSequence(), generateGatherLanePattern(), genFNegatedMAD(), genFusedMultiply(), genMaddR(), genShXAddAddShift(), genSubAdd2SubSub(), getPrologueDeath(), getRegState(), indirectCopyToAGPR(), INITIALIZE_PASS(), insertCopy(), insertDivByZeroTrap(), insertDivByZeroTrap(), InsertFPConstInst(), InsertFPImmInst(), InsertLDR_STR(), InsertSPConstInst(), InsertSPImmInst(), llvm::X86InstrInfo::loadStoreTileReg(), llvm::PPCRegisterInfo::lowerACCSpilling(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), llvm::RISCVInstrInfo::movImm(), llvm::PPCRegisterInfo::prepareDynamicAlloca(), llvm::VETargetLowering::prepareMBB(), llvm::VETargetLowering::prepareSymbol(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), pushRegsToStack(), llvm::TargetInstrInfo::reassociateOps(), llvm::TargetInstrInfo::reduceAccumulatorTree(), replaceFrameIndex(), reportIllegalCopy(), llvm::TargetFrameLowering::restoreCalleeSavedRegister(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SIRegisterInfo::restoreSGPR(), llvm::VETargetLowering::setupEntryBlockForSjLj(), llvm::TargetFrameLowering::spillCalleeSavedRegister(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillEmergencySGPR(), llvm::SIRegisterInfo::spillSGPR(), spillVGPRtoAGPR(), storeRegPairToStackSlot(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::M68kInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::unfoldMemoryOperand().

◆ getKnowledgeForValue()

RetainedKnowledge llvm::getKnowledgeForValue ( const Value * V,
ArrayRef< Attribute::AttrKind > AttrKinds,
AssumptionCache & AC,
function_ref< bool(RetainedKnowledge, Instruction *, const CallBase::BundleOpInfo *)> Filter = [](auto...) { return true; } )

◆ getKnowledgeFromBundle()

◆ getKnowledgeFromOperandInAssume()

RetainedKnowledge llvm::getKnowledgeFromOperandInAssume ( AssumeInst & Assume,
unsigned Idx )

Retreive the information help by Assume on the operand at index Idx.

Assume should be an llvm.assume and Idx should be in the operand bundle.

Definition at line 126 of file AssumeBundleQueries.cpp.

References getKnowledgeFromBundle().

Referenced by getKnowledgeFromUseInAssume(), and llvm::InstCombinerImpl::visitCallInst().

◆ getKnowledgeFromUse()

RetainedKnowledge llvm::getKnowledgeFromUse ( const Use * U,
ArrayRef< Attribute::AttrKind > AttrKinds )

Return a valid Knowledge associated to the Use U if its Attribute kind is in AttrKinds.

Definition at line 148 of file AssumeBundleQueries.cpp.

References llvm::RetainedKnowledge::AttrKind, cast(), getBundleFromUse(), getKnowledgeFromBundle(), is_contained(), and llvm::RetainedKnowledge::none().

◆ getKnowledgeFromUseInAssume()

RetainedKnowledge llvm::getKnowledgeFromUseInAssume ( const Use * U)
inline

Retreive the information help by the Use U of an llvm.assume.

the use should be in the operand bundle.

Definition at line 135 of file AssumeBundleQueries.h.

References cast(), and getKnowledgeFromOperandInAssume().

◆ getKnowledgeValidInContext()

RetainedKnowledge llvm::getKnowledgeValidInContext ( const Value * V,
ArrayRef< Attribute::AttrKind > AttrKinds,
AssumptionCache & AC,
const Instruction * CtxI,
const DominatorTree * DT = nullptr )

Return a valid Knowledge associated to the Value V if its Attribute kind is in AttrKinds and the knowledge is suitable to be used in the context of CtxI.

Definition at line 187 of file AssumeBundleQueries.cpp.

References getKnowledgeForValue(), I, and isValidAssumeForContext().

Referenced by evaluatePtrAddRecAtMaxBTCWillNotWrap(), and isGuaranteedNotToBeUndefOrPoison().

◆ getKnownAlignment()

◆ getKnownAssumptionStrings()

StringSet & llvm::getKnownAssumptionStrings ( )
extern

A set of known assumption strings that are accepted without warning and which can be recommended as typo correction.

Definition at line 104 of file Assumptions.cpp.

Referenced by llvm::KnownAssumptionString::KnownAssumptionString(), and llvm::KnownAssumptionString::KnownAssumptionString().

◆ getLanaiRegisterNumbering()

unsigned llvm::getLanaiRegisterNumbering ( MCRegister Reg)
inlinestatic

Definition at line 40 of file LanaiBaseInfo.h.

References llvm_unreachable, and Reg.

◆ getLastFSPassBitBegin()

int llvm::getLastFSPassBitBegin ( )
inlinestatic

Definition at line 104 of file Discriminator.h.

References getFSPassBitBegin(), and getNumFSPasses().

◆ getLastFSPassBitEnd()

unsigned llvm::getLastFSPassBitEnd ( )
inlinestatic

Definition at line 110 of file Discriminator.h.

References getFSPassBitEnd(), and getNumFSPasses().

◆ getLayoutType()

SPIRVType * llvm::getLayoutType ( const TargetExtType * ExtensionType,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ getLazyBitcodeModule()

Expected< std::unique_ptr< Module > > llvm::getLazyBitcodeModule ( MemoryBufferRef Buffer,
LLVMContext & Context,
bool ShouldLazyLoadMetadata = false,
bool IsImporting = false,
ParserCallbacks Callbacks = {} )

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 8687 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.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and getLazyIRModule().

Referenced by loadFile().

◆ getLazyIRModule()

std::unique_ptr< Module > llvm::getLazyIRModule ( std::unique_ptr< MemoryBuffer > Buffer,
SMDiagnostic & Err,
LLVMContext & Context,
bool ShouldLazyLoadMetadata = false )

If the given MemoryBuffer 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. This takes ownership of Buffer.

Definition at line 34 of file IRReader.cpp.

References llvm::SourceMgr::DK_Error, llvm::Expected< T >::get(), getOwningLazyBitcodeModule(), handleAllErrors(), isBitcode(), llvm::ErrorInfoBase::message(), parseAssembly(), and llvm::Expected< T >::takeError().

Referenced by getLazyIRFileModule().

◆ getLCMType()

LLT llvm::getLCMType ( LLT OrigTy,
LLT TargetTy )

Return the least common multiple type of OrigTy and TargetTy, by changing the number of vector elements or scalar bitwidth.

The intent is a G_MERGE_VALUES, G_BUILD_VECTOR, or G_CONCAT_VECTORS can be constructed from OrigTy elements, and unmerged into TargetTy. It is an error to call this function where one argument is a fixed vector and the other is a scalable vector, since it is illegal to build a G_{MERGE|UNMERGE}_VALUES between fixed and scalable vectors.

Definition at line 1189 of file Utils.cpp.

References assert(), llvm::ElementCount::get(), llvm::LLT::getElementCount(), llvm::LLT::getElementType(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::LLT::getSizeInBits(), llvm::LLT::isFixedVector(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::LLT::isScalable(), llvm::LLT::isScalableVector(), llvm::LLT::isVector(), Mul, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::multiplyCoefficientBy(), llvm::LLT::scalar(), and llvm::LLT::vector().

Referenced by getCoverTy().

◆ getLegalVectorType()

◆ getLinkStringForBuiltIn()

std::string llvm::getLinkStringForBuiltIn ( SPIRV::BuiltIn::BuiltIn BuiltInValue)

Definition at line 202 of file SPIRVBaseInfo.cpp.

References Lookup().

Referenced by buildBuiltinVariableLoad().

◆ getLiveLaneMask() [1/2]

◆ getLiveLaneMask() [2/2]

LaneBitmask llvm::getLiveLaneMask ( unsigned Reg,
SlotIndex SI,
const LiveIntervals & LIS,
const MachineRegisterInfo & MRI,
LaneBitmask LaneMaskFilter = LaneBitmask::getAll() )
Returns
the LaneMask of live lanes of Reg at position SI. Only the active lanes of LaneMaskFilter will be set in the return value. This is used, for example, to limit the live lanes to a specific subreg when calculating use masks.

Definition at line 436 of file GCNRegPressure.cpp.

References llvm::LiveIntervals::getInterval(), getLiveLaneMask(), and MRI.

Referenced by getLiveLaneMask(), and getLiveRegs().

◆ getLivePhysRegsUpTo()

void llvm::getLivePhysRegsUpTo ( MachineInstr & MI,
const TargetRegisterInfo & TRI,
LivePhysRegs & LiveRegs )
static

Collect live registers from the end of MI's parent up to (including) MI in LiveRegs.

Definition at line 49 of file AArch64PrologueEpilogue.cpp.

References make_range(), MBB, MI, reverse(), and TRI.

◆ getLiveRegMap()

template<typename Range>
DenseMap< MachineInstr *, GCNRPTracker::LiveRegSet > llvm::getLiveRegMap ( Range && R,
bool After,
LiveIntervals & LIS )

creates a map MachineInstr -> LiveRegSet R - range of iterators on instructions After - upon entry or exit of every instruction Note: there is no entry in the map for instructions with empty live reg set Complexity = O(NumVirtRegs * averageLiveRangeSegmentsPerReg * lg(R))

Definition at line 441 of file GCNRegPressure.h.

References llvm::SmallVectorImpl< T >::clear(), E(), llvm::LiveIntervals::getInterval(), llvm::LiveIntervals::getSlotIndexes(), llvm::LiveIntervals::hasInterval(), I, llvm::Register::index2VirtReg(), MRI, Range, Reg, and sort().

◆ getLiveRegs()

◆ getLiveRegsAfter()

◆ getLiveRegsBefore()

◆ getLLTForMVT()

LLT llvm::getLLTForMVT ( MVT Ty)

Get a rough equivalent of an LLT for a given MVT.

LLT does not yet support scalarable vector types, and will assert if used.

Definition at line 66 of file LowLevelTypeUtils.cpp.

References llvm::LLT::scalar(), and llvm::LLT::scalarOrVector().

◆ getLLTForType()

◆ getLoadStoreAddressSpace()

◆ getLoadStoreAlignment()

◆ getLoadStorePointerOperand() [1/2]

◆ getLoadStorePointerOperand() [2/2]

Value * llvm::getLoadStorePointerOperand ( Value * V)
inline

Definition at line 5095 of file Instructions.h.

References getLoadStorePointerOperand().

◆ getLoadStoreStride()

◆ getLoadStoreType()

◆ getLoongArchPageDelta()

uint64_t llvm::getLoongArchPageDelta ( uint64_t dest,
uint64_t pc,
uint32_t type )
static

Definition at line 742 of file RuntimeDyldELF.cpp.

◆ getLoopAnalysisUsage()

void llvm::getLoopAnalysisUsage ( AnalysisUsage & AU)

Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage.

All loop passes should call this as part of implementing their getAnalysisUsage.

Definition at line 142 of file LoopUtils.cpp.

References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addPreservedID(), llvm::AnalysisUsage::addRequired(), llvm::AnalysisUsage::addRequiredID(), LCSSAID, and LoopSimplifyID.

◆ getLoopConvergenceHeart()

CallBase * llvm::getLoopConvergenceHeart ( const Loop * TheLoop)

◆ getLoopEstimatedTripCount()

std::optional< unsigned > llvm::getLoopEstimatedTripCount ( Loop * L,
unsigned * EstimatedLoopInvocationWeight = nullptr )

Return either:

  • std::nullopt, if the implementation is unable to handle the loop form of L (e.g., L must have a latch block that controls the loop exit).
  • The value of llvm.loop.estimated_trip_count from the loop metadata of L, if that metadata is present.
  • Else, a new estimate of the trip count from the latch branch weights of L.

An estimated trip count is always a valid positive trip count, saturated at UINT_MAX.

In addition, if EstimatedLoopInvocationWeight, then either:

  • Set *EstimatedLoopInvocationWeight to the weight of the latch's branch to the loop exit.
  • Do not set it, and return std::nullopt, if the current implementation cannot compute that weight (e.g., if L does not have a latch block that controls the loop exit) or the weight is zero (because zero cannot be used to compute new branch weights that reflect the estimated trip count).

TODO: Eventually, once all passes have migrated away from setting branch weights to indicate estimated trip counts, this function will drop the EstimatedLoopInvocationWeight parameter.

Definition at line 869 of file LoopUtils.cpp.

References dbgs(), estimateLoopTripCount(), extractBranchWeights(), getExpectedExitLoopLatchBranch(), getOptionalIntLoopAttribute(), llvm::BranchInst::getSuccessor(), LLVM_DEBUG, LLVMLoopEstimatedTripCount, and std::swap().

Referenced by canFoldTermCondOfLoop(), computePeelCount(), computeUnrollCount(), getSmallBestKnownTC(), setProfileInfoAfterUnrolling(), and UnrollLoop().

◆ getLoopPassPreservedAnalyses()

◆ getLosslessInvCast()

Constant * llvm::getLosslessInvCast ( Constant * C,
Type * InvCastTo,
unsigned CastOp,
const DataLayout & DL,
PreservedCastFlags * Flags = nullptr )

Try to cast C to InvC losslessly, satisfying CastOp(InvC) equals C, or CastOp(InvC) is a refined value of undefined C.

Will try best to preserve the flags.

Definition at line 4632 of file ConstantFolding.cpp.

References llvm::CallingConv::C, ConstantFoldCastOperand(), DL, and llvm::ConstantExpr::getTrunc().

Referenced by llvm::InstCombinerImpl::foldICmpWithZextOrSext(), getLosslessSignedTrunc(), and getLosslessUnsignedTrunc().

◆ getLosslessSignedTrunc()

Constant * llvm::getLosslessSignedTrunc ( Constant * C,
Type * DestTy,
const DataLayout & DL,
PreservedCastFlags * Flags = nullptr )

◆ getLosslessUnsignedTrunc()

◆ getMachineArchType()

◆ getMachineFunctionPassPreservedAnalyses()

PreservedAnalyses llvm::getMachineFunctionPassPreservedAnalyses ( )

Returns the minimum set of Analyses that all machine function passes must preserve.

Definition at line 162 of file MachinePassManager.cpp.

Referenced by INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::AMDGPUInsertDelayAluPass::run(), llvm::AMDGPUPreloadKernArgPrologPass::run(), llvm::AMDGPURewriteAGPRCopyMFMAPass::run(), llvm::AMDGPUSetWavePriorityPass::run(), llvm::BranchRelaxationPass::run(), llvm::DeadMachineInstructionElimPass::run(), llvm::DetectDeadLanesPass::run(), llvm::EarlyIfConverterPass::run(), llvm::ExpandPostRAPseudosPass::run(), llvm::FEntryInserterPass::run(), llvm::FinalizeISelPass::run(), llvm::FixupStatepointCallerSavedPass::run(), llvm::GCNCreateVOPDPass::run(), llvm::GCNDPPCombinePass::run(), llvm::GCNRewritePartialRegUsesPass::run(), llvm::InitUndefPass::run(), llvm::LiveDebugValuesPass::run(), llvm::LocalStackSlotAllocationPass::run(), llvm::MachineBlockPlacementPass::run(), llvm::MachineCopyPropagationPass::run(), llvm::MachineCSEPass::run(), llvm::MachineLateInstrsCleanupPass::run(), llvm::MachineLICMBasePass< DerivedT, PreRegAlloc >::run(), llvm::MachineSanitizerBinaryMetadataPass::run(), llvm::MachineSchedulerPass::run(), llvm::MachineSinkingPass::run(), llvm::PatchableFunctionPass::run(), llvm::PeepholeOptimizerPass::run(), llvm::PHIEliminationPass::run(), llvm::PostMachineSchedulerPass::run(), llvm::PostRAMachineSinkingPass::run(), llvm::PostRASchedulerPass::run(), llvm::ProcessImplicitDefsPass::run(), llvm::PrologEpilogInserterPass::run(), llvm::RegAllocFastPass::run(), llvm::RegisterCoalescerPass::run(), llvm::RemoveLoadsIntoFakeUsesPass::run(), llvm::RemoveRedundantDebugValuesPass::run(), llvm::RenameIndependentSubregsPass::run(), llvm::SelectionDAGISelPass::run(), llvm::SIFixSGPRCopiesPass::run(), llvm::SIFoldOperandsPass::run(), llvm::SIInsertHardClausesPass::run(), llvm::SIInsertWaitcntsPass::run(), llvm::SILateBranchLoweringPass::run(), llvm::SILoadStoreOptimizerPass::run(), llvm::SILowerControlFlowPass::run(), llvm::SIMemoryLegalizerPass::run(), llvm::SIModeRegisterPass::run(), llvm::SIOptimizeExecMaskingPass::run(), llvm::SIOptimizeVGPRLiveRangePass::run(), llvm::SIPeepholeSDWAPass::run(), llvm::SIPreEmitPeepholePass::run(), llvm::SIShrinkInstructionsPass::run(), llvm::SIWholeQuadModePass::run(), llvm::StackColoringPass::run(), llvm::StackSlotColoringPass::run(), llvm::TailDuplicatePassBase< DerivedT, PreRegAlloc >::run(), llvm::TwoAddressInstructionPass::run(), llvm::UnreachableMachineBlockElimPass::run(), llvm::VirtRegRewriterPass::run(), llvm::XRayInstrumentationPass::run(), and RAGreedyPass::run().

◆ getMachineInstrType()

◆ getMachineType()

◆ getMaskPos()

std::optional< int > llvm::getMaskPos ( unsigned Opc)

◆ getMatchingCondBranchOpcode()

unsigned llvm::getMatchingCondBranchOpcode ( unsigned Opc)

Definition at line 2088 of file ARMBaseInstrInfo.cpp.

References llvm_unreachable, and Opc.

Referenced by llvm::ARMBaseInstrInfo::PredicateInstruction().

◆ getMaxClusterRank()

std::optional< unsigned > llvm::getMaxClusterRank ( const Function & F)

◆ getMaxFreq()

◆ getMaxNReg()

std::optional< unsigned > llvm::getMaxNReg ( const Function & F)

Definition at line 327 of file NVPTXUtilities.cpp.

References F, and getFnAttrParsedInt().

◆ getMaxNTID()

SmallVector< unsigned, 3 > llvm::getMaxNTID ( const Function & F)

◆ getMaybeBitcastedCallee()

Function * llvm::getMaybeBitcastedCallee ( const CallBase * CB)

◆ getMDOperandAsType()

Type * llvm::getMDOperandAsType ( const MDNode * N,
unsigned I )

◆ getMemoryPtr()

◆ getMemScope()

SPIRV::Scope::Scope llvm::getMemScope ( LLVMContext & Ctx,
SyncScope::ID Id )

Definition at line 319 of file SPIRVUtils.cpp.

References llvm::SyncScope::SingleThread, and llvm::SyncScope::System.

◆ getMemSemantics()

SPIRV::MemorySemantics::MemorySemantics llvm::getMemSemantics ( AtomicOrdering Ord)

◆ getMemSemanticsForStorageClass()

SPIRV::MemorySemantics::MemorySemantics llvm::getMemSemanticsForStorageClass ( SPIRV::StorageClass::StorageClass SC)

◆ getMergedAtomicOrdering()

AtomicOrdering llvm::getMergedAtomicOrdering ( AtomicOrdering AO,
AtomicOrdering Other )
inline

Return a single atomic ordering that is at least as strong as both the AO and Other orderings for an atomic operation.

Definition at line 139 of file AtomicOrdering.h.

References Acquire, AcquireRelease, isStrongerThan(), Other, and Release.

Referenced by llvm::MachineMemOperand::getMergedOrdering().

◆ getMetadataToPropagate()

void llvm::getMetadataToPropagate ( Instruction * Inst,
SmallVectorImpl< std::pair< unsigned, MDNode * > > & Metadata )

Add metadata from Inst to Metadata, if it can be preserved after vectorization.

It can be preserved after vectorization if the kind is one of [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group, MD_mmra].

Definition at line 1057 of file VectorUtils.cpp.

References llvm::Instruction::getAllMetadataOtherThanDebugLoc(), is_contained(), and std::swap().

Referenced by propagateMetadata(), llvm::VPIRMetadata::VPIRMetadata(), llvm::VPWidenGEPRecipe::VPWidenGEPRecipe(), and llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe().

◆ getMinCTASm()

std::optional< unsigned > llvm::getMinCTASm ( const Function & F)

Definition at line 323 of file NVPTXUtilities.cpp.

References F, and getFnAttrParsedInt().

◆ getMinMaxIntrinsic()

Intrinsic::ID llvm::getMinMaxIntrinsic ( SelectPatternFlavor SPF)

Convert given SPF to equivalent min/max intrinsic.

Caller must ensure SPF is an integer min or max pattern.

Definition at line 9041 of file ValueTracking.cpp.

References llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.

◆ getMinMaxLimit()

APInt llvm::getMinMaxLimit ( SelectPatternFlavor SPF,
unsigned BitWidth )

Return the minimum or maximum constant value for the specified integer min/max flavor and type.

Definition at line 9080 of file ValueTracking.cpp.

References BitWidth, llvm::APInt::getMaxValue(), llvm::APInt::getMinValue(), llvm::APInt::getSignedMaxValue(), llvm::APInt::getSignedMinValue(), llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.

Referenced by simplifySelectWithICmpCond().

◆ getMinMaxPred()

◆ getMinMaxReductionIntrinsicID()

Intrinsic::ID llvm::getMinMaxReductionIntrinsicID ( Intrinsic::ID IID)

Returns the llvm.vector.reduce min/max intrinsic that corresponds to the intrinsic op.

Definition at line 1043 of file LoopUtils.cpp.

References llvm_unreachable.

◆ getMinMaxReductionIntrinsicOp() [1/2]

Intrinsic::ID llvm::getMinMaxReductionIntrinsicOp ( Intrinsic::ID RdxID)

◆ getMinMaxReductionIntrinsicOp() [2/2]

Intrinsic::ID llvm::getMinMaxReductionIntrinsicOp ( RecurKind RK)

Returns the min/max intrinsic used when expanding a min/max reduction.

Definition at line 1130 of file LoopUtils.cpp.

References FMax, FMaximum, FMaximumNum, FMaxNum, FMin, FMinimum, FMinimumNum, FMinNum, llvm_unreachable, SMax, SMin, UMax, and UMin.

◆ getMinMaxReductionPredicate()

CmpInst::Predicate llvm::getMinMaxReductionPredicate ( RecurKind RK)

Returns the comparison predicate used when expanding a min/max reduction.

Definition at line 1178 of file LoopUtils.cpp.

References llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLT, FMax, FMin, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, llvm_unreachable, SMax, SMin, UMax, and UMin.

Referenced by createMinMaxOp().

◆ getMinMaxReductionRecurKind()

RecurKind llvm::getMinMaxReductionRecurKind ( Intrinsic::ID RdxID)

Returns the recurence kind used when expanding a min/max reduction.

Definition at line 1159 of file LoopUtils.cpp.

References FMax, FMin, None, SMax, SMin, UMax, and UMin.

◆ getModuleSummaryIndex()

Expected< std::unique_ptr< ModuleSummaryIndex > > llvm::getModuleSummaryIndex ( MemoryBufferRef Buffer)

Parse the specified bitcode buffer, returning the module summary index.

Definition at line 8759 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

Referenced by getModuleSummaryIndexForFile(), and llvm::MemProfContextDisambiguation::MemProfContextDisambiguation().

◆ 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 8776 of file BitcodeReader.cpp.

References errorCodeToError(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and getModuleSummaryIndex().

Referenced by doImportingForModuleForTest().

◆ getMSARegFromFReg()

MCRegister llvm::getMSARegFromFReg ( MCRegister Reg)
inlinestatic

Definition at line 148 of file MipsBaseInfo.h.

References Reg.

Referenced by llvm::MipsAsmPrinter::PrintAsmOperand().

◆ getMVTForLLT()

◆ getN1Bits()

unsigned llvm::getN1Bits ( int N)
inlinestatic

◆ 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 45 of file DiagnosticInfo.cpp.

References DK_FirstPluginKind.

◆ getNodeAVL()

SDValue llvm::getNodeAVL ( SDValue Op)

◆ getNodeChain()

◆ getNodeMask()

◆ getNodePassthru()

◆ getNonFoldableAlwaysTrue()

bool llvm::getNonFoldableAlwaysTrue ( )
inline

Definition at line 15 of file AlwaysTrue.h.

◆ getNonParameterizedType()

SPIRVType * llvm::getNonParameterizedType ( const TargetExtType * ExtensionType,
const SPIRV::BuiltinType * TypeRecord,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ getNormalizedPoisonValue()

PoisonValue * llvm::getNormalizedPoisonValue ( Type * Ty)
inline

Definition at line 436 of file SPIRVUtils.h.

References llvm::PoisonValue::get(), and normalizeType().

Referenced by llvm::SPIRVGlobalRegistry::buildAssignType().

◆ getNumberOfParts()

unsigned llvm::getNumberOfParts ( const TargetTransformInfo & TTI,
VectorType * VecTy,
const unsigned Limit = std::numeric_limits<unsigned>::max() )
static

◆ getNumBranchWeights()

unsigned llvm::getNumBranchWeights ( const MDNode & ProfileData)

◆ getNumBytesForUTF8()

unsigned llvm::getNumBytesForUTF8 ( UTF8 firstByte)

Definition at line 545 of file ConvertUTF.cpp.

References trailingBytesForUTF8.

Referenced by llvm::sys::unicode::columnWidthUTF8(), and convertUTF8Sequence().

◆ getNumComponentsForDim()

unsigned llvm::getNumComponentsForDim ( SPIRV::Dim::Dim dim)
static

Definition at line 1099 of file SPIRVBuiltins.cpp.

References report_fatal_error().

Referenced by getNumSizeComponents().

◆ getNumElementsFromSVEPredPattern()

unsigned llvm::getNumElementsFromSVEPredPattern ( unsigned Pattern)
inline

Return the number of active elements for VL1 to VL256 predicate pattern, zero for all other patterns.

Definition at line 541 of file AArch64BaseInfo.h.

Referenced by instCombineSVECntElts(), instCombineSVELast(), isAllActivePredicate(), and performUnpackCombine().

◆ getNumFSPasses()

unsigned llvm::getNumFSPasses ( )
inlinestatic

◆ getNumOfCalls()

uint64_t llvm::getNumOfCalls ( Function & callerFunction,
Function & calledFunction )

◆ getNumSizeComponents()

unsigned llvm::getNumSizeComponents ( SPIRVType * imgType)
static

Helper function for obtaining the number of size components.

Definition at line 1116 of file SPIRVBuiltins.cpp.

References assert(), getImm(), llvm::MachineOperand::getImm(), getNumComponentsForDim(), llvm::MachineInstr::getOpcode(), and llvm::MachineInstr::getOperand().

Referenced by generateImageSizeQueryInst().

◆ getNumValueDataForSiteInstrProf()

uint32_t llvm::getNumValueDataForSiteInstrProf ( const void * R,
uint32_t VK,
uint32_t S )

Definition at line 1150 of file InstrProf.cpp.

References llvm::InstrProfRecord::getValueArrayForSite().

◆ getNumValueDataInstrProf()

uint32_t llvm::getNumValueDataInstrProf ( const void * Record,
uint32_t VKind )

Definition at line 1145 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 1136 of file InstrProf.cpp.

◆ getNumValueSitesInstrProf()

uint32_t llvm::getNumValueSitesInstrProf ( const void * Record,
uint32_t VKind )

Definition at line 1140 of file InstrProf.cpp.

◆ getNVPTXRegClassName()

StringRef llvm::getNVPTXRegClassName ( TargetRegisterClass const * RC)

Definition at line 27 of file NVPTXRegisterInfo.cpp.

◆ getNVPTXRegClassStr()

StringRef llvm::getNVPTXRegClassStr ( TargetRegisterClass const * RC)

Definition at line 61 of file NVPTXRegisterInfo.cpp.

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

◆ getObjCNamesIfSelector()

◆ 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.

WARNING: The object size returned is the allocation size. This does not imply dereferenceability at site of use since the object may be freeed in between.

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 581 of file MemoryBuiltins.cpp.

References llvm::ObjectSizeOffsetVisitor::compute(), Data, DL, getSizeWithOverflow(), llvm::APInt::getZExtValue(), Ptr, and Size.

Referenced by computePointerICmp(), getPointerSize(), isDereferenceableAndAlignedPointer(), isObjectSize(), isObjectSmallerThan(), lowerObjectSizeCall(), and tryToOptimizeStoreOfAllocationToGlobal().

◆ getOCLKernelArgAccessQual()

MDString * llvm::getOCLKernelArgAccessQual ( const Function & F,
unsigned ArgIdx )

Definition at line 71 of file SPIRVMetadata.cpp.

References assert(), F, getOCLKernelArgAttribute(), and llvm::CallingConv::SPIR_KERNEL.

Referenced by getArgAccessQual().

◆ getOCLKernelArgTypeQual()

MDString * llvm::getOCLKernelArgTypeQual ( const Function & F,
unsigned ArgIdx )

◆ getOclOrSpirvBuiltinDemangledName()

std::string llvm::getOclOrSpirvBuiltinDemangledName ( StringRef Name)

Definition at line 434 of file SPIRVUtils.cpp.

References assert(), isNonMangledOCLBuiltin(), and itaniumDemangle().

Referenced by llvm::SPIRVCallLowering::lowerCall().

◆ getOffset()

◆ getOpcodeDef() [1/2]

template<class T>
T * llvm::getOpcodeDef ( Register Reg,
const MachineRegisterInfo & MRI )

See if Reg is defined by an single def instruction of type T Also try to do trivial folding if it's a COPY with same types.

Returns null otherwise.

Definition at line 288 of file Utils.h.

References DefMI, dyn_cast_or_null(), getDefIgnoringCopies(), MRI, Reg, and T.

◆ getOpcodeDef() [2/2]

MachineInstr * llvm::getOpcodeDef ( unsigned Opcode,
Register Reg,
const MachineRegisterInfo & MRI )

◆ getOpDesc()

Desc llvm::getOpDesc ( unsigned Opcode)
static

Definition at line 120 of file DWARFExpression.cpp.

References getDescImpl(), and getOpDescriptions().

◆ getOpDescriptions()

◆ getOptionalBoolLoopAttribute()

◆ getOptionalElementCountLoopAttribute()

std::optional< ElementCount > llvm::getOptionalElementCountLoopAttribute ( const Loop * TheLoop)

Find a combination of metadata ("llvm.loop.vectorize.width" and "llvm.loop.vectorize.scalable.enable") for a loop and use it to construct a ElementCount.

If the metadata "llvm.loop.vectorize.width" cannot be found then std::nullopt is returned.

Definition at line 251 of file LoopUtils.cpp.

References llvm::ElementCount::get(), and getOptionalIntLoopAttribute().

Referenced by hasVectorizeTransformation(), and warnAboutLeftoverTransformations().

◆ getOptionalIntLoopAttribute()

◆ getOpVariableMBBIt()

MachineBasicBlock::iterator llvm::getOpVariableMBBIt ( MachineInstr & I)

Definition at line 211 of file SPIRVUtils.cpp.

References E(), llvm::MachineFunction::front(), I, and MBB.

◆ getOrCreateFunctionComdat()

Comdat * llvm::getOrCreateFunctionComdat ( Function & F,
Triple & T )

Definition at line 96 of file Instrumentation.cpp.

References assert(), llvm::CallingConv::C, F, llvm::Comdat::NoDeduplicate, and T.

◆ getOrCreateSanitizerCtorAndInitFunctions()

std::pair< Function *, FunctionCallee > llvm::getOrCreateSanitizerCtorAndInitFunctions ( Module & M,
StringRef CtorName,
StringRef InitName,
ArrayRef< Type * > InitArgTypes,
ArrayRef< Value * > InitArgs,
function_ref< void(Function *, FunctionCallee)> FunctionsCreatedCallback,
StringRef VersionCheckName = StringRef(),
bool Weak = false )

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 296 of file ModuleUtils.cpp.

References assert(), createSanitizerCtorAndInitFunctions(), declareSanitizerInitFunction(), llvm::StringRef::empty(), llvm::Function::getFunction(), and llvm::Type::getVoidTy().

Referenced by llvm::NumericalStabilitySanitizerPass::run(), and llvm::RealtimeSanitizerPass::run().

◆ getOrCreateSPIRVDeviceEventPointer()

◆ getOrderedReduction()

Value * llvm::getOrderedReduction ( IRBuilderBase & Builder,
Value * Acc,
Value * Src,
unsigned Op,
RecurKind MinMaxKind = RecurKind::None )

Generates an ordered vector reduction using extracts to reduce the value.

Definition at line 1218 of file LoopUtils.cpp.

References assert(), cast(), createMinMaxOp(), and llvm::RecurrenceDescriptor::isMinMaxRecurrenceKind().

◆ getOrdinalSuffix()

StringRef llvm::getOrdinalSuffix ( unsigned Val)
inline

Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).

Definition at line 378 of file StringExtras.h.

Referenced by llvm::yaml::convertYAML().

◆ getOrEnforceKnownAlignment()

Align llvm::getOrEnforceKnownAlignment ( Value * V,
MaybeAlign 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1566 of file Local.cpp.

References assert(), computeKnownBits(), llvm::KnownBits::countMinTrailingZeros(), DL, llvm::KnownBits::getBitWidth(), llvm::Value::MaxAlignmentExponent, and tryEnforceAlignment().

Referenced by getKnownAlignment(), HandleByValArgument(), llvm::PPCTTIImpl::instCombineIntrinsic(), SRAGlobal(), and llvm::InstCombinerImpl::visitAllocaInst().

◆ getOrInsertLibFunc() [1/5]

template<typename... ArgsTy>
FunctionCallee llvm::getOrInsertLibFunc ( Module * M,
const TargetLibraryInfo & TLI,
LibFunc TheLibFunc,
AttributeList AttributeList,
FunctionType * Invalid,
ArgsTy... Args )
delete

References B(), llvm::CallingConv::C, DL, F, Invalid, LLVM_ABI, Ptr, and Size.

◆ getOrInsertLibFunc() [2/5]

template<typename... ArgsTy>
FunctionCallee llvm::getOrInsertLibFunc ( Module * M,
const TargetLibraryInfo & TLI,
LibFunc TheLibFunc,
AttributeList AttributeList,
Type * RetTy,
ArgsTy... Args )

Definition at line 49 of file BuildLibCalls.h.

References llvm::FunctionType::get(), and getOrInsertLibFunc().

◆ getOrInsertLibFunc() [3/5]

FunctionCallee llvm::getOrInsertLibFunc ( Module * M,
const TargetLibraryInfo & TLI,
LibFunc TheLibFunc,
FunctionType * T )

Definition at line 1522 of file BuildLibCalls.cpp.

References getOrInsertLibFunc(), and T.

◆ getOrInsertLibFunc() [4/5]

◆ getOrInsertLibFunc() [5/5]

template<typename... ArgsTy>
FunctionCallee llvm::getOrInsertLibFunc ( Module * M,
const TargetLibraryInfo & TLI,
LibFunc TheLibFunc,
Type * RetTy,
ArgsTy... Args )

Same as above, but without the attributes.

Definition at line 59 of file BuildLibCalls.h.

References getOrInsertLibFunc().

◆ getOutermostDivergentCycle()

template<typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>
const CycleT * llvm::getOutermostDivergentCycle ( const CycleT * Cycle,
const BlockT * DivTermBlock,
const BlockT * JoinBlock,
const DominatorTreeT & DT,
ContextT & Context )
static

◆ getOverallClusterRank()

std::optional< uint64_t > llvm::getOverallClusterRank ( const Function & F)

Definition at line 309 of file NVPTXUtilities.cpp.

References F, getClusterDim(), getMaxClusterRank(), and getVectorProduct().

Referenced by runNVVMIntrRange().

◆ getOverallMaxNTID()

std::optional< uint64_t > llvm::getOverallMaxNTID ( const Function & F)

Definition at line 292 of file NVPTXUtilities.cpp.

References F, getMaxNTID(), and getVectorProduct().

Referenced by runNVVMIntrRange().

◆ getOverallReqNTID()

std::optional< uint64_t > llvm::getOverallReqNTID ( const Function & F)

Definition at line 303 of file NVPTXUtilities.cpp.

References F, getReqNTID(), and getVectorProduct().

Referenced by runNVVMIntrRange().

◆ getOwningLazyBitcodeModule()

Expected< std::unique_ptr< Module > > llvm::getOwningLazyBitcodeModule ( std::unique_ptr< MemoryBuffer > && Buffer,
LLVMContext & Context,
bool ShouldLazyLoadMetadata = false,
bool IsImporting = false,
ParserCallbacks Callbacks = {} )

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 8698 of file BitcodeReader.cpp.

References getLazyBitcodeModule().

Referenced by getLazyIRModule(), LLVMGetBitcodeModuleInContext(), and LLVMGetBitcodeModuleInContext2().

◆ getPACOpcodeForKey()

unsigned llvm::getPACOpcodeForKey ( AArch64PACKey::ID K,
bool Zero )
inlinestatic

Return PAC opcode to be used for a ptrauth sign using the given key, or its PAC*Z variant that doesn't take a discriminator operand, using zero instead.

Definition at line 788 of file AArch64InstrInfo.h.

References llvm_unreachable.

◆ getPaddedLen()

size_t llvm::getPaddedLen ( const StringRef & Str)
static

Definition at line 50 of file SPIRVUtils.cpp.

Referenced by addStringImm(), addStringImm(), and addStringImm().

◆ getParsedIRPGOName()

std::pair< StringRef, StringRef > llvm::getParsedIRPGOName ( StringRef IRPGOName)
Returns
the filename and the function name parsed from the output of getIRPGOFuncName()

Definition at line 445 of file InstrProf.cpp.

References GlobalIdentifierDelimiter, and llvm::StringRef::split().

◆ getPassTimer()

Timer * llvm::getPassTimer ( Pass * P)

◆ getPCMFile()

◆ getPerfectShuffleCost()

unsigned llvm::getPerfectShuffleCost ( llvm::ArrayRef< int > M)
inline

◆ getPGOFuncName() [1/2]

std::string llvm::getPGOFuncName ( const Function & F,
bool InLTO = false,
uint64_t Version = INSTR_PROF_INDEX_VERSION )

Please use getIRPGOFuncName for LLVM IR instrumentation.

This function is for front-end (Clang, etc) instrumentation. Return the modified name for function F suitable to be used the key for profile lookup. Variable InLTO indicates if this is called in LTO optimization passes.

Definition at line 421 of file InstrProf.cpp.

References llvm::GlobalValue::ExternalLinkage, F, getPGOFuncName(), getPGOFuncNameMetadata(), getStrippedSourceFileName(), lookupPGONameFromMetadata(), and Version.

Referenced by llvm::InstrProfSymtab::create(), and getPGOFuncName().

◆ 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 303 of file InstrProf.cpp.

References llvm::StringRef::empty(), llvm::GlobalValue::isLocalLinkage(), LLVM_ATTRIBUTE_UNUSED, llvm::StringRef::str(), and Version.

◆ getPGOFuncNameMetadata()

MDNode * llvm::getPGOFuncNameMetadata ( const Function & F)

Return the PGOFuncName meta data associated with a function.

Definition at line 1440 of file InstrProf.cpp.

References F, and getPGOFuncNameMetadataName().

Referenced by getIRPGOFuncName(), and getPGOFuncName().

◆ getPGOFuncNameMetadataName()

StringRef llvm::getPGOFuncNameMetadataName ( )
inline

Definition at line 342 of file InstrProf.h.

Referenced by createPGOFuncNameMetadata(), and getPGOFuncNameMetadata().

◆ getPGOFuncNameVarInitializer()

StringRef llvm::getPGOFuncNameVarInitializer ( GlobalVariable * NameVar)

Return the initializer in string of the PGO name var NameVar.

Definition at line 752 of file InstrProf.cpp.

References cast(), and llvm::GlobalVariable::getInitializer().

Referenced by collectPGOFuncNameStrings().

◆ 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 IRPGO function name (returned by getIRPGOFuncName) for LLVM IR instrumentation and PGO function name (returned by getPGOFuncName) for front-end instrumentation.

Definition at line 464 of file InstrProf.cpp.

References getInstrProfNameVarPrefix(), and llvm::GlobalValue::isLocalLinkage().

Referenced by createPGOFuncNameVar().

◆ getPGOName()

std::string llvm::getPGOName ( const GlobalVariable & V,
bool InLTO = false )

◆ getPGONameMetadataName()

StringRef llvm::getPGONameMetadataName ( )
inline

Definition at line 344 of file InstrProf.h.

Referenced by createPGONameMetadata(), and getPGOName().

◆ getPipeType()

◆ getPointeeType()

Type * llvm::getPointeeType ( const Type * Ty)
inline

Definition at line 357 of file SPIRVUtils.h.

References dyn_cast(), and isTypedPointerWrapper().

◆ getPointeeTypeByAttr()

◆ getPointerAddressSpace()

◆ getPointerAtOffset()

Constant * llvm::getPointerAtOffset ( Constant * I,
uint64_t Offset,
Module & M,
Constant * TopLevelGlobal = nullptr )

Processes a Constant recursively looking into elements of arrays, structs and expressions to find a trivial pointer element that is located at the given offset (relative to the beginning of the whole outer Constant).

Used for example from GlobalDCE to find an entry in a C++ vtable that matches a vcall offset.

To support relative vtables, getPointerAtOffset can see through "relative pointers", i.e. (sub-)expressions of the form of:

@symbol = ... { i32 trunc (i64 sub ( i64 ptrtoint (<type> @target to i64), i64 ptrtoint (... @symbol to i64) ) to i32) }

For such (sub-)expressions, getPointerAtOffset returns the @target pointer.

Definition at line 145 of file TypeMetadataUtils.cpp.

References llvm::CallingConv::C, cast(), DL, dyn_cast(), llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::ArrayType::getElementType(), getPointerAtOffset(), llvm::StructLayout::getSizeInBytes(), I, and Offset.

Referenced by getFunctionAtVTableOffset(), and getPointerAtOffset().

◆ getPointerAuthStableSipHash()

uint16_t llvm::getPointerAuthStableSipHash ( StringRef S)

Compute a stable non-zero 16-bit hash of the given string.

Compute an ABI-stable 16-bit hash of the given string.

The exact algorithm is the little-endian interpretation of the non-doubled (i.e. 64-bit) result of applying a SipHash-2-4 using a specific seed value which can be found in the source. This 64-bit result is truncated to a non-zero 16-bit value.

We use a 16-bit discriminator because ARM64 can efficiently load a 16-bit immediate into the high bits of a register without disturbing the remainder of the value, which serves as a nice blend operation. 16 bits is also sufficiently compact to not inflate a loader relocation. We disallow zero to guarantee a different discriminator from the places in the ABI that use a constant zero.

Definition at line 39 of file SipHash.cpp.

References arrayRefFromStringRef(), dbgs(), getSipHash_2_4_64(), LLVM_DEBUG, llvm::support::endian::read64le(), utohexstr(), and utostr().

Referenced by llvm::AArch64Subtarget::getPtrAuthBlockAddressDiscriminatorIfEnabled().

◆ GetPointerBaseWithConstantOffset() [1/2]

const Value * llvm::GetPointerBaseWithConstantOffset ( const Value * Ptr,
int64_t & Offset,
const DataLayout & DL,
bool AllowNonInbounds = true )
inline

Definition at line 355 of file ValueTracking.h.

References DL, GetPointerBaseWithConstantOffset(), Offset, and Ptr.

◆ GetPointerBaseWithConstantOffset() [2/2]

Value * llvm::GetPointerBaseWithConstantOffset ( Value * Ptr,
int64_t & Offset,
const DataLayout & DL,
bool AllowNonInbounds = true )
inline

Analyze the specified pointer to see if it can be expressed as a base pointer plus a constant offset.

Return the base and offset to the caller.

This is a wrapper around Value::stripAndAccumulateConstantOffsets that creates and later unpacks the required APInt.

Definition at line 344 of file ValueTracking.h.

References llvm::sampleprof::Base, DL, llvm::APInt::getSExtValue(), Offset, and Ptr.

Referenced by llvm::VNCoercion::analyzeLoadFromClobberingWrite(), getAvailableLoadStore(), llvm::ARMBankConflictHazardRecognizer::getHazardType(), GetPointerBaseWithConstantOffset(), and processUse().

◆ getPointerOperand() [1/2]

◆ getPointerOperand() [2/2]

Value * llvm::getPointerOperand ( Value * V)
inline

Definition at line 5109 of file Instructions.h.

References getPointerOperand().

◆ getPointersDiff()

std::optional< int64_t > llvm::getPointersDiff ( Type * ElemTyA,
Value * PtrA,
Type * ElemTyB,
Value * PtrB,
const DataLayout & DL,
ScalarEvolution & SE,
bool StrictCheck = false,
bool CheckType = true )

Returns the distance between the pointers PtrA and PtrB iff they are compatible and it is possible to calculate the distance between them.

This is a simple API that does not depend on the analysis pass.

Parameters
StrictCheckEnsure that the calculated distance matches the type-based one after all the bitcasts removal in the provided pointers.

Definition at line 1631 of file LoopAccessAnalysis.cpp.

References assert(), cast(), llvm::ScalarEvolution::computeConstantDifference(), DL, llvm::Type::getPointerAddressSpace(), llvm::ScalarEvolution::getSCEV(), llvm::Value::getType(), llvm::APInt::sextOrTrunc(), Size, llvm::Value::stripAndAccumulateConstantOffsets(), and llvm::APInt::trySExtValue().

Referenced by buildCompressMask(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), gatherPossiblyVectorizableLoads(), llvm::sandboxir::Utils::getPointerDiffInBytes(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), isConsecutiveAccess(), isMaskedLoadCompress(), llvm::slpvectorizer::BoUpSLP::isStridedLoad(), and sortPtrAccesses().

◆ getPredBlockCostDivisor()

unsigned llvm::getPredBlockCostDivisor ( TargetTransformInfo::TargetCostKind CostKind)
inline

A helper function that returns how much we should divide the cost of a predicated block by.

Typically this is the reciprocal of the block probability, i.e. if we return X we are assuming the predicated block will execute once for every X iterations of the loop header so the block should only contribute 1/X of its cost to the total cost calculation, but when optimizing for code size it will just be 1 as code size costs don't depend on execution probabilities.

TODO: We should use actual block probability here, if available. Currently, we always assume predicated blocks have a 50% chance of executing.

Definition at line 64 of file VPlanHelpers.h.

References CostKind, and llvm::TargetTransformInfo::TCK_CodeSize.

Referenced by llvm::VPReplicateRecipe::computeCost(), llvm::VPRegionBlock::cost(), llvm::LoopVectorizationCostModel::expectedCost(), and llvm::LoopVectorizationCostModel::getDivRemSpeculationCost().

◆ getPredForFCmpCode()

Constant * llvm::getPredForFCmpCode ( unsigned Code,
Type * OpTy,
CmpInst::Predicate & Pred )

This is the complement of getFCmpCode.

It turns a predicate code into either a constant true or false or the predicate for a new FCmp. 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 64 of file CmpInstAnalysis.cpp.

References assert(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_TRUE, and llvm::CmpInst::makeCmpResultType().

Referenced by getFCmpValue().

◆ 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 40 of file CmpInstAnalysis.cpp.

References 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()

std::optional< int64_t > llvm::getPtrStride ( PredicatedScalarEvolution & PSE,
Type * AccessTy,
Value * Ptr,
const Loop * Lp,
const DenseMap< Value *, const SCEV * > & StridesMap = DenseMap<Value *, const SCEV *>(),
bool Assume = false,
bool ShouldCheckWrap = true )

If the pointer has a constant stride return it in units of the access type size.

Check whether the access through Ptr has a constant stride.

If the pointer is loop-invariant, return 0. Otherwise return std::nullopt.

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.

Note that the analysis results are defined if-and-only-if the original memory access was defined. If that access was dead, or UB, then the result of this function is undefined.

Definition at line 1597 of file LoopAccessAnalysis.cpp.

References assert(), dbgs(), dyn_cast(), llvm::PredicatedScalarEvolution::getAsAddRec(), llvm::PredicatedScalarEvolution::getSE(), getStrideFromAddRec(), llvm::ScalarEvolution::isLoopInvariant(), isNoWrap(), LLVM_DEBUG, Ptr, and replaceSymbolicStrideSCEV().

Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), canTailPredicateLoop(), containsDecreasingPointers(), and llvm::LoopVectorizationLegality::isConsecutivePtr().

◆ getRandomBytes()

std::error_code llvm::getRandomBytes ( void * Buffer,
size_t Size )

Definition at line 70 of file RandomNumberGenerator.cpp.

References errnoAsErrorCode(), and Size.

◆ getRange()

ConstantRange llvm::getRange ( Value * Op,
SCCPSolver & Solver,
const SmallPtrSetImpl< Value * > & InsertedValues )
static

Helper for getting ranges from Solver.

Instructions inserted during simplification are unavailable in the solver, so we return a full range for them.

Definition at line 95 of file SCCPSolver.cpp.

References llvm::ValueLatticeElement::asConstantRange(), llvm::SmallPtrSetImpl< PtrType >::contains(), dyn_cast(), and llvm::SCCPSolver::getLatticeValueFor().

Referenced by getFromRangeMetadata(), llvm::SelectionDAGBuilder::lowerRangeToAssertZExt(), refineInstruction(), replaceSignedInst(), and simplifyInstruction().

◆ getReallocatedOperand()

Value * llvm::getReallocatedOperand ( const CallBase * CB)

If this is a call to a realloc function, return the reallocated operand.

Definition at line 324 of file MemoryBuiltins.cpp.

References checkFnAllocKind(), llvm::CallBase::getArgOperandWithAttribute(), and Realloc.

Referenced by isAllocSiteRemovable(), and llvm::InstCombinerImpl::visitFree().

◆ getRecurrenceIdentity()

Value * llvm::getRecurrenceIdentity ( RecurKind K,
Type * Tp,
FastMathFlags FMF )

Given information about an recurrence kind, return the identity for the @llvm.vector.reduce.

  • used to generate it.

Definition at line 1389 of file LoopUtils.cpp.

References assert(), FMax, FMin, getReductionIdentity(), getReductionIntrinsicID(), llvm::FastMathFlags::noNaNs(), and llvm::FastMathFlags::noSignedZeros().

Referenced by createSimpleReduction(), createSimpleReduction(), llvm::VPReductionRecipe::execute(), and UnrollLoop().

◆ getReductionForBinop()

Intrinsic::ID llvm::getReductionForBinop ( Instruction::BinaryOps Opc)

Returns the reduction intrinsic id corresponding to the binary operation.

Definition at line 1089 of file LoopUtils.cpp.

References llvm::Intrinsic::not_intrinsic, and Opc.

◆ getReductionIdentity()

Value * llvm::getReductionIdentity ( Intrinsic::ID RdxID,
Type * Ty,
FastMathFlags FMF )

◆ getReductionIntrinsicID()

Intrinsic::ID llvm::getReductionIntrinsicID ( RecurKind RK)
constexpr

Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence kind.

Definition at line 997 of file LoopUtils.cpp.

References Add, AddChainWithSubs, And, FAdd, FMax, FMaximum, FMaximumNum, FMaxNum, FMin, FMinimum, FMinimumNum, FMinNum, FMul, FMulAdd, llvm_unreachable, Mul, Or, SMax, SMin, Sub, UMax, UMin, and Xor.

Referenced by createOrderedReduction(), createSimpleReduction(), createSimpleReduction(), and getRecurrenceIdentity().

◆ getRegPressure()

◆ getRegSequenceSubReg()

TargetInstrInfo::RegSubRegPair llvm::getRegSequenceSubReg ( MachineInstr & MI,
unsigned SubReg )

Return the SubReg component from REG_SEQUENCE.

Definition at line 9981 of file SIInstrInfo.cpp.

References assert(), getRegOrUndef(), I, MI, and SubReg.

Referenced by followSubRegDef().

◆ getRegState()

◆ getRegSubRegPair()

TargetInstrInfo::RegSubRegPair llvm::getRegSubRegPair ( const MachineOperand & O)
inline

Create RegSubRegPair from a register MachineOperand.

Definition at line 1592 of file SIInstrInfo.h.

References assert().

Referenced by getRegOrUndef(), and getVRegSubRegDef().

◆ getReleaseModeAdvisor()

std::unique_ptr< InlineAdvisor > llvm::getReleaseModeAdvisor ( Module & M,
ModuleAnalysisManager & MAM,
std::function< bool(CallBase &)> GetDefaultAdvice )

◆ getRenamableRegState()

unsigned llvm::getRenamableRegState ( bool B)
inline

◆ getReplayInlineAdvisor()

std::unique_ptr< InlineAdvisor > llvm::getReplayInlineAdvisor ( Module & M,
FunctionAnalysisManager & FAM,
LLVMContext & Context,
std::unique_ptr< InlineAdvisor > OriginalAdvisor,
const ReplayInlinerSettings & ReplaySettings,
bool EmitRemarks,
InlineContext IC )

Definition at line 80 of file ReplayInlineAdvisor.cpp.

References FAM.

Referenced by llvm::InlineAdvisorAnalysis::Result::tryCreate().

◆ getReqNTID()

SmallVector< unsigned, 3 > llvm::getReqNTID ( const Function & F)

Definition at line 284 of file NVPTXUtilities.cpp.

References F, and getFnAttrParsedVector().

Referenced by getOverallReqNTID().

◆ GetReturnInfo()

void llvm::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.

Get the EVTs and ArgFlags collections that represent the legalized return type of the given function.

This does not require a DAG or a return value, and is suitable for use before any DAGs for the function are constructed. TODO: Move this out of TargetLowering.cpp.

Definition at line 1740 of file TargetLoweringBase.cpp.

References llvm::ISD::ANY_EXTEND, ComputeValueTypes(), DL, llvm::TargetLoweringBase::getNumRegistersForCallingConv(), llvm::TargetLoweringBase::getRegisterTypeForCallingConv(), llvm::TargetLowering::getTypeForExtReturn(), llvm::TargetLoweringBase::getValueType(), llvm::EVT::isInteger(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ISD::SIGN_EXTEND, and llvm::ISD::ZERO_EXTEND.

Referenced by llvm::TargetLowering::LowerCallTo(), llvm::FastISel::lowerCallTo(), llvm::FunctionLoweringInfo::set(), and llvm::PPCTargetLowering::supportsTailCallFor().

◆ getRuntimeVF()

Value * llvm::getRuntimeVF ( IRBuilderBase & B,
Type * Ty,
ElementCount VF )

Return the runtime value for VF.

Returns a calculation for the total number of elements for a given VF.

For fixed width vectors this value is a constant, whereas for scalable vectors it is an expression determined at runtime.

Definition at line 807 of file LoopVectorize.cpp.

References B().

Referenced by llvm::VPFirstOrderRecurrencePHIRecipe::execute(), and llvm::VPLane::getAsRuntimeExpr().

◆ getSampledImageType()

SPIRVType * llvm::getSampledImageType ( const TargetExtType * OpaqueType,
MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ getSamplerAddressingModeFromBitmask()

SPIRV::SamplerAddressingMode::SamplerAddressingMode llvm::getSamplerAddressingModeFromBitmask ( unsigned Bitmask)
static

Definition at line 1986 of file SPIRVBuiltins.cpp.

References report_fatal_error().

Referenced by generateReadImageInst(), and generateSampleImageInst().

◆ getSamplerFilterModeFromBitmask()

SPIRV::SamplerFilterMode::SamplerFilterMode llvm::getSamplerFilterModeFromBitmask ( unsigned Bitmask)
static

Definition at line 2008 of file SPIRVBuiltins.cpp.

Referenced by generateReadImageInst(), and generateSampleImageInst().

◆ getSamplerName()

StringRef llvm::getSamplerName ( const Value & V)

Definition at line 275 of file NVPTXUtilities.cpp.

References assert().

◆ getSamplerParamFromBitmask()

unsigned llvm::getSamplerParamFromBitmask ( unsigned Bitmask)
static

Definition at line 2003 of file SPIRVBuiltins.cpp.

Referenced by generateReadImageInst(), and generateSampleImageInst().

◆ getSamplerType()

SPIRVType * llvm::getSamplerType ( MachineIRBuilder & MIRBuilder,
SPIRVGlobalRegistry * GR )
static

◆ getScalarReductionOpcode()

unsigned llvm::getScalarReductionOpcode ( unsigned VVPOC,
bool IsMask )

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 369 of file VECustomDAG.cpp.

References assert(), and llvm_unreachable.

Referenced by llvm::VECustomDAG::getLegalReductionOpVVP().

◆ getSelectionDAGFallbackAnalysisUsage()

void llvm::getSelectionDAGFallbackAnalysisUsage ( AnalysisUsage & AU)

◆ getSelectPattern()

◆ GetShadowBytes()

◆ GetShadowBytesAfterScope()

◆ getShuffleDemandedElts()

bool llvm::getShuffleDemandedElts ( int SrcWidth,
ArrayRef< int > Mask,
const APInt & DemandedElts,
APInt & DemandedLHS,
APInt & DemandedRHS,
bool AllowUndefElts = false )

Transform a shuffle mask's output demanded element mask into demanded element masks for the 2 operands, returns false if the mask isn't valid.

Both DemandedLHS and DemandedRHS are initialised to [SrcWidth]. AllowUndefElts permits "-1" indices to be treated as undef.

Definition at line 452 of file VectorUtils.cpp.

References all_of(), assert(), llvm::APInt::getZero(), I, llvm::APInt::isZero(), and llvm::APInt::setBit().

Referenced by combineBlendOfPermutes(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), llvm::GISelValueTracking::computeKnownBitsImpl(), computeKnownFPClass(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::GISelValueTracking::computeNumSignBits(), ComputeNumSignBitsImpl(), getShuffleDemandedElts(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), isKnownNonZeroFromOperator(), and llvm::TargetLowering::SimplifyDemandedBits().

◆ getShuffleMaskWithWidestElts()

void llvm::getShuffleMaskWithWidestElts ( ArrayRef< int > Mask,
SmallVectorImpl< int > & ScaledMask )

Repetitively apply widenShuffleMaskElts() for as long as it succeeds, to get the shuffle mask with widest possible elements.

Definition at line 651 of file VectorUtils.cpp.

References llvm::SmallVectorImpl< T >::assign(), llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), llvm::ArrayRef< T >::size(), std::swap(), and widenShuffleMaskElts().

Referenced by combineShuffleToZeroExtendVectorInReg().

◆ getShuffleReduction()

Value * llvm::getShuffleReduction ( IRBuilderBase & Builder,
Value * Src,
unsigned Op,
TargetTransformInfo::ReductionShuffle RS,
RecurKind MinMaxKind = RecurKind::None )

Generates a vector reduction using shufflevectors to reduce the value.

Fast-math-flags are propagated using the IRBuilder's setting.

Definition at line 1243 of file LoopUtils.cpp.

References assert(), cast(), createMinMaxOp(), fill(), llvm::RecurrenceDescriptor::isMinMaxRecurrenceKind(), isPowerOf2_32(), and llvm::TargetTransformInfo::Pairwise.

◆ getSingleElement()

template<typename ContainerTy>
decltype(auto) llvm::getSingleElement ( ContainerTy && C)

Asserts that the given container has a single element and returns that element.

Definition at line 311 of file STLExtras.h.

References adl_begin(), assert(), llvm::CallingConv::C, and hasSingleElement().

◆ getSipHash_2_4_128()

void llvm::getSipHash_2_4_128 ( ArrayRef< uint8_t > In,
const uint8_t(&) K[16],
uint8_t(&) Out[16] )

Computes a SipHash-2-4 128-bit result.

Definition at line 33 of file SipHash.cpp.

◆ getSipHash_2_4_64()

void llvm::getSipHash_2_4_64 ( ArrayRef< uint8_t > In,
const uint8_t(&) K[16],
uint8_t(&) Out[8] )

Computes a SipHash-2-4 64-bit result.

Definition at line 28 of file SipHash.cpp.

Referenced by getPointerAuthStableSipHash().

◆ getSLEB128Size()

unsigned llvm::getSLEB128Size ( int64_t Value)
extern

Utility function to get the size of the SLEB128-encoded value.

Definition at line 29 of file LEB128.cpp.

References Size.

Referenced by llvm::EHStreamer::computeActionsTable(), llvm::EHStreamer::emitExceptionTable(), and llvm::DIEInteger::sizeOf().

◆ getSpecifier()

◆ getSpirvBuiltInIdByName()

bool llvm::getSpirvBuiltInIdByName ( llvm::StringRef Name,
SPIRV::BuiltIn::BuiltIn & BI )

Definition at line 212 of file SPIRVBaseInfo.cpp.

References Lookup().

Referenced by llvm::SPIRVGlobalRegistry::buildGlobalVariable().

◆ getSpirvLoopControlOperandsFromLoopMetadata()

SmallVector< unsigned, 1 > llvm::getSpirvLoopControlOperandsFromLoopMetadata ( Loop * L)

Definition at line 895 of file SPIRVUtils.cpp.

References Count, getBooleanLoopAttribute(), and getOptionalIntLoopAttribute().

◆ getSPIRVMemSemantics()

SPIRV::MemorySemantics::MemorySemantics llvm::getSPIRVMemSemantics ( std::memory_order MemOrder)
static

◆ getSPIRVScope()

SPIRV::Scope::Scope llvm::getSPIRVScope ( SPIRV::CLMemoryScope ClScope)
static

◆ getSPIRVStringOperand()

template<class InstType>
std::string llvm::getSPIRVStringOperand ( const InstType & MI,
unsigned StartIndex )

◆ getSplatIndex() [1/2]

int llvm::getSplatIndex ( ArrayRef< int > Mask)

If all non-negative Mask elements are the same value, return that value.

If all elements are negative (undefined) or Mask contains different non-negative values, return -1.

Definition at line 369 of file VectorUtils.cpp.

References assert().

Referenced by formSplatFromShuffles(), llvm::X86TTIImpl::isProfitableToSinkOperands(), lowerShuffleAsBroadcast(), and llvm::InstCombinerImpl::visitExtractElementInst().

◆ getSplatIndex() [2/2]

std::optional< int > llvm::getSplatIndex ( MachineInstr & MI)
Returns
The splat index of a G_SHUFFLE_VECTOR MI when MI is a splat. If MI is not a splat, returns std::nullopt.

Definition at line 1331 of file Utils.cpp.

References any_of(), assert(), find_if(), make_range(), and MI.

◆ getSplatValue()

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 constant vector or (2) a sequence of instructions that broadcasts a scalar at element 0.

Definition at line 391 of file VectorUtils.cpp.

References llvm::CallingConv::C, dyn_cast(), isa(), llvm::PatternMatch::m_InsertElt(), llvm::PatternMatch::m_Shuffle(), llvm::PatternMatch::m_Value(), llvm::MIPatternMatch::m_ZeroInt(), llvm::PatternMatch::match(), and Splat.

Referenced by findScalarElement(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), llvm::TargetTransformInfo::getOperandInfo(), instCombineSVECmpNE(), instCombineSVEInsr(), instCombineSVELast(), instCombineSVESDIV(), instCombineSVETBL(), instCombineSVEUnpack(), isAllTrueMask(), llvm::VETargetLowering::lowerBUILD_VECTOR(), lowerBUILD_VECTOR(), lowerBuildVectorOfConstants(), matchStridedStart(), simplifyExtractElementInst(), and llvm::InstCombinerImpl::visitGetElementPtrInst().

◆ getSrcRegIgnoringCopies()

Register llvm::getSrcRegIgnoringCopies ( Register Reg,
const MachineRegisterInfo & MRI )

Find the source register for Reg, folding away any trivial copies.

It will be an output register of the instruction that getDefIgnoringCopies returns. May return an invalid register if Reg is not a generic virtual register.

Also walks through hints such as G_ASSERT_ZEXT.

Definition at line 499 of file Utils.cpp.

References getDefSrcRegIgnoringCopies(), MRI, and Register.

Referenced by BitOp3_Op(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), and llvm::AMDGPURegisterBankInfo::setBufferOffsets().

◆ getStackPointer()

uintptr_t llvm::getStackPointer ( )
Returns
an address close to the current value of the stack pointer.

The value is not guaranteed to point to anything specific. It can be used to estimate how much stack space has been used since the previous call.

Definition at line 27 of file ProgramStack.cpp.

References Ptr.

◆ getStandardCSEConfigForOpt()

std::unique_ptr< CSEConfigBase > llvm::getStandardCSEConfigForOpt ( CodeGenOptLevel Level)

Definition at line 89 of file CSEInfo.cpp.

References None.

Referenced by llvm::AMDGPUPassConfig::getCSEConfig().

◆ getStartAndEndForAccess()

std::pair< const SCEV *, const SCEV * > llvm::getStartAndEndForAccess ( const Loop * Lp,
const SCEV * PtrExpr,
Type * AccessTy,
const SCEV * BTC,
const SCEV * MaxBTC,
ScalarEvolution * SE,
DenseMap< std::pair< const SCEV *, Type * >, std::pair< const SCEV *, const SCEV * > > * PointerBounds,
DominatorTree * DT,
AssumptionCache * AC,
std::optional< ScalarEvolution::LoopGuards > & LoopGuards )

Calculate Start and End points of memory access using exact backedge taken count BTC if computable or maximum backedge taken count MaxBTC otherwise.

Let's assume A is the first access and B is a memory access on N-th loop iteration. Then B is calculated as: B = A + Step*N . Step value may be positive or negative. N is a calculated back-edge taken count: N = (TripCount > 0) ? RoundDown(TripCount -1 , VF) : 0 Start and End points are calculated in the following way: Start = UMIN(A, B) ; End = UMAX(A, B) + SizeOfElt, where SizeOfElt is the size of single memory access in bytes.

There is no conflict when the intervals are disjoint: NoConflict = (P2.Start >= P1.End) || (P1.Start >= P2.End)

Definition at line 307 of file LoopAccessAnalysis.cpp.

References assert(), DL, dyn_cast(), evaluatePtrAddRecAtMaxBTCWillNotWrap(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getCouldNotCompute(), llvm::BasicBlock::getDataLayout(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::ConstantExpr::getIntToPtr(), llvm::ScalarEvolution::getNegativeSCEV(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getStoreSizeOfExpr(), llvm::SCEV::getType(), llvm::ScalarEvolution::getUMaxExpr(), llvm::ScalarEvolution::getUMinExpr(), isa(), llvm::ScalarEvolution::isLoopInvariant(), and std::swap().

Referenced by llvm::RuntimePointerChecking::insert(), and isDereferenceableAndAlignedInLoop().

◆ GetStatistics()

std::vector< std::pair< StringRef, uint64_t > > 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.

References StatInfo, and StatLock.

◆ getStoredValue()

◆ getStringFnAttrAsInt() [1/3]

std::optional< int > llvm::getStringFnAttrAsInt ( CallBase & CB,
StringRef AttrKind )

◆ getStringFnAttrAsInt() [2/3]

std::optional< int > llvm::getStringFnAttrAsInt ( const Attribute & Attr)

◆ getStringFnAttrAsInt() [3/3]

std::optional< int > llvm::getStringFnAttrAsInt ( Function * F,
StringRef AttrKind )

Definition at line 201 of file InlineCost.cpp.

References F, and getStringFnAttrAsInt().

◆ getStringImm()

std::string llvm::getStringImm ( const MachineInstr & MI,
unsigned StartIndex )

Definition at line 79 of file SPIRVUtils.cpp.

References getSPIRVStringOperand(), and MI.

◆ 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 6581 of file ValueTracking.cpp.

References GetStringLengthH().

Referenced by getAllocSize().

◆ getStringValueFromReg()

std::string llvm::getStringValueFromReg ( Register Reg,
MachineRegisterInfo & MRI )

◆ getStrippedSourceFileName()

◆ getStructTM()

struct tm llvm::getStructTM ( TimePoint<> TP)
inlinestatic

Definition at line 26 of file Chrono.cpp.

References assert(), getStructTM(), and llvm::sys::toTimeT().

Referenced by getStructTM(), and operator<<().

◆ getStructTMUtc()

struct tm llvm::getStructTMUtc ( UtcTime<> TP)
inlinestatic

Definition at line 44 of file Chrono.cpp.

References assert(), getStructTMUtc(), and llvm::sys::toTimeT().

Referenced by getStructTMUtc().

◆ getSubDirectoryPath()

◆ getSubOpDesc()

Desc llvm::getSubOpDesc ( unsigned Opcode,
unsigned SubOpcode )
static

Definition at line 153 of file DWARFExpression.cpp.

References assert(), getDescImpl(), and getSubOpDescriptions().

◆ getSubOpDescriptions()

std::vector< Desc > llvm::getSubOpDescriptions ( )
static

◆ 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 80 of file CFG.cpp.

References assert(), and llvm::BasicBlock::getTerminator().

Referenced by DemoteRegToStack(), getInstrBB(), and SplitEdge().

◆ getSuperReg()

MCPhysReg llvm::getSuperReg ( const MCRegisterInfo * MCRI,
MCPhysReg Reg )
inline

◆ getSuperRegs()

◆ getSurfaceName()

StringRef llvm::getSurfaceName ( const Value & V)

Definition at line 270 of file NVPTXUtilities.cpp.

References assert().

◆ getSVEPredPatternFromNumElements()

std::optional< unsigned > llvm::getSVEPredPatternFromNumElements ( unsigned MinNumElts)
inline

◆ getSwappedBytes()

uint24_t llvm::getSwappedBytes ( uint24_t C)
inline

Needed by swapByteOrder().

Definition at line 38 of file DataExtractor.h.

References llvm::CallingConv::C.

◆ getSymbolicOperandAllowedEnvironments()

EnvironmentList llvm::getSymbolicOperandAllowedEnvironments ( SPIRV::OperandCategory::OperandCategory Category,
uint32_t Value )

◆ getSymbolicOperandCapabilities()

CapabilityList llvm::getSymbolicOperandCapabilities ( SPIRV::OperandCategory::OperandCategory Category,
uint32_t Value )

◆ getSymbolicOperandExtensions()

ExtensionList llvm::getSymbolicOperandExtensions ( SPIRV::OperandCategory::OperandCategory Category,
uint32_t Value )

Definition at line 184 of file SPIRVBaseInfo.cpp.

References ArrayRef(), and Extensions.

◆ getSymbolicOperandMaxVersion()

VersionTuple llvm::getSymbolicOperandMaxVersion ( SPIRV::OperandCategory::OperandCategory Category,
uint32_t Value )

Definition at line 116 of file SPIRVBaseInfo.cpp.

References Lookup().

◆ getSymbolicOperandMinVersion()

VersionTuple llvm::getSymbolicOperandMinVersion ( SPIRV::OperandCategory::OperandCategory Category,
uint32_t Value )

Definition at line 104 of file SPIRVBaseInfo.cpp.

References Lookup().

◆ getSymbolicOperandMnemonic()

std::string llvm::getSymbolicOperandMnemonic ( SPIRV::OperandCategory::OperandCategory Category,
int32_t Value )

◆ getTailPredVectorWidth()

unsigned llvm::getTailPredVectorWidth ( unsigned Opcode)
inlinestatic

Definition at line 42 of file MVETailPredUtils.h.

References llvm_unreachable.

◆ gettBLXrOpcode()

unsigned llvm::gettBLXrOpcode ( const MachineFunction & MF)

Definition at line 6528 of file ARMBaseInstrInfo.cpp.

References llvm::MachineFunction::getSubtarget().

◆ getTensorSpecFromJSON()

std::optional< TensorSpec > llvm::getTensorSpecFromJSON ( LLVMContext & Ctx,
const json::Value & Value )

Construct a TensorSpec from a JSON dictionary of the form: { "name": <string>, "port": <int>, "type": <string.

Use LLVM's types, e.g. float, double, int64_t>, "shape": <array of ints> } For the "type" field, see the C++ primitive types used in TFUTILS_SUPPORTED_TYPES.

Definition at line 69 of file TensorSpec.cpp.

References PARSE_TYPE, and SUPPORTED_TENSOR_TYPES.

◆ getTextureName()

StringRef llvm::getTextureName ( const Value & V)

Definition at line 265 of file NVPTXUtilities.cpp.

References assert().

◆ getTheAArch64_32Target()

◆ getTheAArch64beTarget()

◆ getTheAArch64leTarget()

◆ getTheARCTarget()

◆ getTheARM64_32Target()

◆ getTheARM64Target()

◆ getTheARMBETarget()

◆ getTheARMLETarget()

◆ getTheAVRTarget()

◆ getTheBPFbeTarget()

◆ getTheBPFleTarget()

◆ getTheBPFTarget()

◆ getTheCSKYTarget()

◆ getTheDirectXTarget()

◆ getTheGCNTarget()

◆ getTheHexagonTarget()

◆ getTheLanaiTarget()

◆ getTheLoongArch32Target()

◆ getTheLoongArch64Target()

◆ getTheM68kTarget()

◆ getTheMips64elTarget()

◆ getTheMips64Target()

◆ getTheMipselTarget()

◆ getTheMipsTarget()

◆ getTheMSP430Target()

◆ getTheNVPTXTarget32()

Target & llvm::getTheNVPTXTarget32 ( )

◆ getTheNVPTXTarget64()

Target & llvm::getTheNVPTXTarget64 ( )

◆ getThePPC32LETarget()

◆ getThePPC32Target()

◆ getThePPC64LETarget()

◆ getThePPC64Target()

◆ getTheR600Target()

◆ getTheRISCV32beTarget()

◆ getTheRISCV32Target()

◆ getTheRISCV64beTarget()

◆ getTheRISCV64Target()

◆ getTheSparcelTarget()

◆ getTheSparcTarget()

◆ getTheSparcV9Target()

◆ getTheSPIRV32Target()

Target & llvm::getTheSPIRV32Target ( )

◆ getTheSPIRV64Target()

Target & llvm::getTheSPIRV64Target ( )

◆ getTheSPIRVLogicalTarget()

Target & llvm::getTheSPIRVLogicalTarget ( )

◆ getTheSystemZTarget()

◆ getTheThumbBETarget()

◆ getTheThumbLETarget()

◆ getTheVETarget()

◆ getTheWebAssemblyTarget32()

◆ getTheWebAssemblyTarget64()

◆ getTheX86_32Target()

◆ getTheX86_64Target()

◆ getTheXCoreTarget()

◆ getTheXtensaTarget()

◆ getTimeTraceProfilerInstance()

TimeTraceProfiler * llvm::getTimeTraceProfilerInstance ( )

◆ 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.

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 39 of file StringExtras.cpp.

Referenced by llvm::AsmPrinter::emitFunctionBody(), getMnemonicOpsEndInd(), MaybePredicatedInst(), llvm::MachO::parseAliasList(), parseSymbolString(), previousEqual(), and SplitString().

◆ getTotalArgumentsSizeInBytes()

template<typename ArgT>
unsigned llvm::getTotalArgumentsSizeInBytes ( const SmallVectorImpl< ArgT > & Args)
static

Count the total number of bytes needed to pass or return these arguments.

Definition at line 1256 of file AVRISelLowering.cpp.

Referenced by analyzeReturnValues().

◆ getTrackingRegs()

◆ getTypedPointerWrapper()

Type * llvm::getTypedPointerWrapper ( Type * ElemTy,
unsigned AS )
inline

◆ getTypeFoldingSupportedOpcodes()

const std::set< unsigned > & llvm::getTypeFoldingSupportedOpcodes ( )

◆ getTypeForLLT()

Type * llvm::getTypeForLLT ( LLT Ty,
LLVMContext & C )

◆ getTypeName()

template<typename DesiredTypeName>
LLVM_GET_TYPE_NAME_CONSTEXPR 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 40 of file TypeName.h.

References assert(), InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, and LLVM_GET_TYPE_NAME_CONSTEXPR.

Referenced by constructOverloadName(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelAttrs(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getTypeName(), LLVMGetRelocationTypeName(), llvm::PassInfoMixin< DerivedT >::name(), and llvm::logicalview::LVLogicalVisitor::visitKnownRecord().

◆ getTypePacking()

◆ getUBImplyingAttributes()

AttributeMask AttributeFuncs::getUBImplyingAttributes ( )

Get param/return attributes which imply immediate undefined behavior if an invalid value is passed.

For example, this includes noundef (where undef implies UB), but not nonnull (where null implies poison). It also does not include attributes like nocapture, which constrain the function implementation rather than the passed value.

Definition at line 2474 of file Attributes.cpp.

References llvm::AttributeMask::addAttribute().

◆ getULEB128Size()

◆ getUndefRegState()

◆ getUnderlyingObject() [1/2]

const Value * llvm::getUnderlyingObject ( const Value * V,
unsigned MaxLookup = MaxLookupSearchDepth )

This method strips off any GEP address adjustments, pointer casts or llvm.threadlocal.address from the specified value V, 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 6662 of file ValueTracking.cpp.

References assert(), Call, cast(), Count, dyn_cast(), GEP, getArgumentAliasingToReturnedPointer(), llvm::Operator::getOpcode(), llvm::Value::getType(), llvm::Type::isPointerTy(), and PHI.

Referenced by AddNonNullPointer(), AddParamAndFnBasicAttributes(), llvm::AMDGPUAAResult::alias(), llvm::GlobalsAAResult::alias(), llvm::BasicAAResult::aliasErrno(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), arePointersCompatible(), llvm::AAResults::callCapturesBefore(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), CleanupConstantGlobalUsers(), clusterSortPtrAccesses(), ConstantFoldLoadFromConstPtr(), findAffectedValues(), llvm::InstCombinerImpl::foldAllocaCmp(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldPatternedLoads(), gatherPossiblyVectorizableLoads(), getAddressSpace(), getCallArgsTotalAllocaSize(), getConstantDataArrayInfo(), llvm::sandboxir::Utils::getMemInstructionBase(), getMMOFrameID(), llvm::BasicAAResult::getModRefInfo(), llvm::GlobalsAAResult::getModRefInfo(), llvm::AMDGPUAAResult::getModRefInfoMask(), llvm::BasicAAResult::getModRefInfoMask(), llvm::sandboxir::Utils::getPointerDiffInBytes(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::objcarc::GetUnderlyingObjCPtr(), getUnderlyingObject(), getUnderlyingObjectAggressive(), getUnderlyingObjects(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), hasUndefContents(), isNonEscapingGlobalNoAliasWithLoad(), isSafeToSpeculateStore(), mayBeVisibleThroughUnwinding(), memOpsHaveSameBasePtr(), memOpsHaveSameBasePtr(), promoteLoopAccessesToScalars(), runOnKernelFunction(), simplifyGEPInst(), simplifyLoadInst(), SoleWriteToDeadLocal(), underlyingObjectsAlias(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitICmpInst(), and writeToAlloca().

◆ getUnderlyingObject() [2/2]

Value * llvm::getUnderlyingObject ( Value * V,
unsigned MaxLookup = MaxLookupSearchDepth )
inline

Definition at line 437 of file ValueTracking.h.

References getUnderlyingObject(), and MaxLookupSearchDepth.

◆ getUnderlyingObjectAggressive()

const Value * llvm::getUnderlyingObjectAggressive ( const Value * V)

◆ getUnderlyingObjects()

void llvm::getUnderlyingObjects ( const Value * V,
SmallVectorImpl< const Value * > & Objects,
const LoopInfo * LI = nullptr,
unsigned MaxLookup = MaxLookupSearchDepth )

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 6709 of file ValueTracking.cpp.

References append_range(), dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), getUnderlyingObject(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::LoopInfoBase< BlockT, LoopT >::isLoopHeader(), isSameUnderlyingObjectInLoop(), P, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by AddAliasScopeMetadata(), computePointerICmp(), getUnderlyingObjectsForCodeGen(), and isInvariantLoad().

◆ getUnderlyingObjectsForCodeGen()

bool llvm::getUnderlyingObjectsForCodeGen ( const Value * V,
SmallVectorImpl< Value * > & Objects )

This is a wrapper around getUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences.

It returns false if unidentified object is found in getUnderlyingObjects.

Definition at line 6824 of file ValueTracking.cpp.

References cast(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::Operator::getOpcode(), getUnderlyingObjectFromInt(), getUnderlyingObjects(), llvm::SmallPtrSetImpl< PtrType >::insert(), isIdentifiedObject(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by getUnderlyingObjectsForInstr().

◆ getUniqued()

template<class T, class InfoT>
T * llvm::getUniqued ( DenseSet< T *, InfoT > & Store,
const typename InfoT::KeyTy & Key )
static

◆ getUniqueExitBlocksHelper()

template<class BlockT, class LoopT, typename PredicateT>
void llvm::getUniqueExitBlocksHelper ( const LoopT * L,
SmallVectorImpl< BlockT * > & ExitBlocks,
PredicateT Pred )

◆ getUniqueInternalLinkagePostfix()

std::string llvm::getUniqueInternalLinkagePostfix ( const StringRef & FName)
inline

◆ 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 347 of file ModuleUtils.cpp.

References cast(), dyn_cast_or_null(), llvm::MD5::final(), llvm::MD5::stringifyResult(), and llvm::MD5::update().

Referenced by getNewName().

◆ getUnitForOffset()

CompileUnit * llvm::getUnitForOffset ( const UnitListTy & Units,
uint64_t Offset )
static

Similar to DWARFUnitSection::getUnitForOffset(), but returning our CompileUnit object instead.

Definition at line 63 of file DWARFLinker.cpp.

References LHS, Offset, RHS, and upper_bound().

◆ getUniversalCRTSdkDir() [1/2]

LLVM_ABI bool llvm::getUniversalCRTSdkDir ( vfs::FileSystem & VFS,
std::optional< llvm::StringRef > WinSdkDir,
std::optional< llvm::StringRef > WinSdkVersion,
std::optional< llvm::StringRef > WinSysRoot,
std::string & Path,
std::string & UCRTVersion )

◆ getUniversalCRTSdkDir() [2/2]

bool llvm::getUniversalCRTSdkDir ( vfs::FileSystem & VFS,
std::optional< StringRef > WinSdkDir,
std::optional< StringRef > WinSdkVersion,
std::optional< StringRef > WinSysRoot,
std::string & Path,
std::string & UCRTVersion )

◆ 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 1195 of file LoopUnroll.cpp.

References assert(), drop_begin(), dyn_cast(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), and llvm::MDNode::operands().

Referenced by getUnrollMetadataForLoop(), and getUnrollMetadataForLoop().

◆ getUTF8SequenceSize()

unsigned llvm::getUTF8SequenceSize ( const UTF8 * source,
const UTF8 * sourceEnd )

Definition at line 440 of file ConvertUTF.cpp.

References isLegalUTF8(), and trailingBytesForUTF8.

◆ getVacantFunctionName()

bool llvm::getVacantFunctionName ( Module & M,
std::string & Name )

Definition at line 754 of file SPIRVUtils.cpp.

References I, and llvm::Twine::str().

◆ getValidBranchWeightMDNode()

MDNode * llvm::getValidBranchWeightMDNode ( const Instruction & I)

Get the valid branch weights metadata node.

Parameters
IThe Instruction to get the weights from.
Returns
A pointer to I's valid branch weights metadata node, if it exists. Nullptr otherwise.

Definition at line 163 of file ProfDataUtils.cpp.

References getBranchWeightMDNode(), getNumBranchWeights(), and I.

Referenced by ConstantFoldTerminator(), and hasValidBranchWeightMD().

◆ getValueForSiteInstrProf()

void llvm::getValueForSiteInstrProf ( const void * R,
InstrProfValueData * Dst,
uint32_t K,
uint32_t S )

Definition at line 1156 of file InstrProf.cpp.

References copy().

◆ getValueProfDataFromInst()

◆ getValueProfDataSize()

INSTR_PROF_VISIBILITY uint32_t llvm::getValueProfDataSize ( ValueProfRecordClosure * Closure)

Return the total size in bytes of the on-disk value profile data given the data stored in Record.

Definition at line 624 of file InstrProf.cpp.

◆ getValueProfRecordHeaderSize()

INSTR_PROF_VISIBILITY uint32_t llvm::getValueProfRecordHeaderSize ( uint32_t NumValueSites)

◆ getValueProfRecordNext()

Use this method to advance to the next This ValueProfRecord.

Definition at line 602 of file InstrProf.cpp.

References P.

◆ getValueProfRecordNumValueData()

INSTR_PROF_VISIBILITY INSTR_PROF_INLINE uint32_t llvm::getValueProfRecordNumValueData ( ValueProfRecord * This)

Return the total number of value data for This record.

Definition at line 590 of file InstrProf.cpp.

References llvm::compression::zlib::decompress(), llvm::compression::zlib::isAvailable(), P, uncompress_failed, and zlib_unavailable.

◆ getValueProfRecordSize()

INSTR_PROF_VISIBILITY INSTR_PROF_INLINE uint32_t llvm::getValueProfRecordSize ( uint32_t NumValueSites,
uint32_t NumValueData )

Return the total size of the value profile record including the header and the value data.

Definition at line 572 of file InstrProf.cpp.

◆ getValueProfRecordValueData()

INSTR_PROF_VISIBILITY INSTR_PROF_INLINE InstrProfValueData * llvm::getValueProfRecordValueData ( ValueProfRecord * VPR)

Return the pointer to the start of value data array.

Definition at line 581 of file InstrProf.cpp.

References N, and P.

◆ getVectorIntrinsicIDForCall()

Intrinsic::ID llvm::getVectorIntrinsicIDForCall ( const CallInst * CI,
const TargetLibraryInfo * TLI )

Returns intrinsic ID for call.

For the input call instruction it finds mapping intrinsic and returns its intrinsic ID, in case it does not found it return not_intrinsic.

For the input call instruction it finds mapping intrinsic and returns its ID, in case it does not found it return not_intrinsic.

Definition at line 237 of file VectorUtils.cpp.

References getIntrinsicForCallSite(), isTriviallyVectorizable(), and llvm::Intrinsic::not_intrinsic.

Referenced by doesInTreeUserNeedToExtract(), generateKeySubkey(), getSameOpcode(), llvm::LoopVectorizationCostModel::getVectorCallCost(), getVectorCallCosts(), llvm::LoopVectorizationCostModel::getVectorIntrinsicCost(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::LoopVectorizationCostModel::setVectorizedCallDecision(), and llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes().

◆ getVectorizedTypeVF()

ElementCount llvm::getVectorizedTypeVF ( Type * Ty)
inline

Returns the number of vector elements for a vectorized type.

Definition at line 100 of file VectorTypeUtils.h.

References assert(), cast(), getContainedTypes(), and isVectorizedTy().

Referenced by llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), and llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost().

◆ getVectorProduct()

std::optional< uint64_t > llvm::getVectorProduct ( ArrayRef< unsigned > V)
static

Definition at line 203 of file NVPTXUtilities.cpp.

Referenced by getOverallClusterRank(), getOverallMaxNTID(), and getOverallReqNTID().

◆ getVectorSplat()

std::optional< RegOrConstant > llvm::getVectorSplat ( const MachineInstr & MI,
const MachineRegisterInfo & MRI )
Returns
a value when MI is a vector splat. The splat can be either a Register or a constant.

Examples:

%reg = COPY $physreg
%reg_splat = G_BUILD_VECTOR %reg, %reg, ..., %reg

If called on the G_BUILD_VECTOR above, this will return a RegOrConstant containing reg.

%cst = G_CONSTANT iN 4
%constant_splat = G_BUILD_VECTOR %cst, %cst, ..., %cst

In the above case, this will return a RegOrConstant containing 4.

Definition at line 1495 of file Utils.cpp.

References any_of(), drop_begin(), getIConstantSplatSExtVal(), isBuildVectorOp(), MI, MRI, Opc, and Splat.

Referenced by llvm::AArch64GISelUtils::getAArch64VectorSplat().

◆ getVisibleToRegularObjVtableGUIDs()

void llvm::getVisibleToRegularObjVtableGUIDs ( ModuleSummaryIndex & Index,
DenseSet< GlobalValue::GUID > & VisibleToRegularObjSymbols,
function_ref< bool(StringRef)> IsVisibleToRegularObj )

Based on typeID string, get all associated vtable GUIDS that are visible to regular objects.

Definition at line 906 of file WholeProgramDevirt.cpp.

References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), P, and typeIDVisibleToRegularObj().

◆ getVPTInstrPredicate() [1/2]

ARMVCC::VPTCodes llvm::getVPTInstrPredicate ( const MachineInstr & MI)
inline

Definition at line 89 of file Thumb2InstrInfo.h.

References getVPTInstrPredicate(), and MI.

◆ getVPTInstrPredicate() [2/2]

◆ getVRegDef()

◆ 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 10018 of file SIInstrInfo.cpp.

References assert(), followSubRegDef(), llvm::MachineOperand::getReg(), getRegSubRegPair(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::Register::isVirtual(), MI, MRI, and P.

◆ getVScaleRange()

◆ getVulkanBufferType()

◆ getVVPOpcode()

std::optional< unsigned > llvm::getVVPOpcode ( unsigned Opcode)
Returns
the VVP_* SDNode opcode corresponsing to OC.

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 62 of file VECustomDAG.cpp.

Referenced by getIdiomaticVectorType(), llvm::VETargetLowering::lowerToVVP(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), maySafelyIgnoreMask(), and llvm::VETargetLowering::splitPackedLoadStore().

◆ getWeakLeft()

◆ getWeightFromBranchProb()

uint32_t llvm::getWeightFromBranchProb ( const BranchProbability Prob)
inline

◆ getWhileLoopStartTargetBB()

MachineBasicBlock * llvm::getWhileLoopStartTargetBB ( const MachineInstr & MI)
inline

◆ getWiderInductionTy()

IntegerType * llvm::getWiderInductionTy ( const DataLayout & DL,
Type * Ty0,
Type * Ty1 )
static

◆ GetWindowsOSVersion()

LLVM_ABI 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.

References LLVM_ABI.

◆ getWindowsSDKDir() [1/2]

LLVM_ABI bool llvm::getWindowsSDKDir ( vfs::FileSystem & VFS,
std::optional< llvm::StringRef > WinSdkDir,
std::optional< llvm::StringRef > WinSdkVersion,
std::optional< llvm::StringRef > WinSysRoot,
std::string & Path,
int & Major,
std::string & WindowsSDKIncludeVersion,
std::string & WindowsSDKLibVersion )

◆ getWindowsSDKDir() [2/2]

bool llvm::getWindowsSDKDir ( vfs::FileSystem & VFS,
std::optional< StringRef > WinSdkDir,
std::optional< StringRef > WinSdkVersion,
std::optional< StringRef > WinSysRoot,
std::string & Path,
int & Major,
std::string & WindowsSDKIncludeVersion,
std::string & WindowsSDKLibVersion )

◆ getWRegFromXReg()

MCRegister llvm::getWRegFromXReg ( MCRegister Reg)
inlinestatic

◆ getX86SubSuperRegister()

◆ getXPACOpcodeForKey()

unsigned llvm::getXPACOpcodeForKey ( AArch64PACKey::ID K)
inlinestatic

Return XPAC opcode to be used for a ptrauth strip using the given key.

Definition at line 764 of file AArch64InstrInfo.h.

References llvm_unreachable.

◆ getXRegFromWReg()

MCRegister llvm::getXRegFromWReg ( MCRegister Reg)
inlinestatic

Definition at line 70 of file AArch64BaseInfo.h.

References Reg.

Referenced by llvm::AArch64InstrInfo::isCopyInstrImpl().

◆ getXRegFromXRegTuple()

MCRegister llvm::getXRegFromXRegTuple ( MCRegister RegTuple)
inlinestatic

Definition at line 110 of file AArch64BaseInfo.h.

References llvm::MCRegister::id().

◆ globalHasNVVMAnnotation()

bool llvm::globalHasNVVMAnnotation ( const Value & V,
const std::string & Prop )
static

Definition at line 151 of file NVPTXUtilities.cpp.

References assert(), dyn_cast(), and findOneNVVMAnnotation().

Referenced by isManaged(), isSampler(), isSurface(), and isTexture().

◆ 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 function and the parser will use this function to construct a list if it is missing.

Definition at line 652 of file MIRPrinter.cpp.

References I, llvm::SmallPtrSetImpl< PtrType >::insert(), MBB, and MI.

Referenced by canPredictSuccessors().

◆ GVTOP()

◆ handleAllErrors() [1/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 996 of file Error.h.

References cantFail(), and E().

◆ handleAllErrors() [2/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 990 of file Error.h.

References cantFail(), E(), and handleErrors().

Referenced by analyzeModule(), annotateAllFunctions(), appendFile(), consumeError(), llvm::Interpreter::create(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::create(), crossImportIntoModule(), llvm::WithColor::defaultErrorHandler(), llvm::WithColor::defaultWarningHandler(), dlltoolDriverMain(), llvm::CodeGenDataReader::error(), llvm::dwarf_linker::parallel::CompileUnit::error(), llvm::dwarf_linker::parallel::LinkingGlobalData::error(), llvm::InstrProfReader::error(), errorToErrorCodeAndEmitErrors(), fatalOpenError(), llvm::object::getELFAddend(), getLazyIRModule(), llvm::object::ELFObjectFile< ELFT >::getSectionIndex(), libDriverMain(), LLVMGetBitcodeModuleInContext(), LLVMParseBitcodeInContext(), llvm::LLVMRemarkSetupErrorInfo< ThisError >::LLVMRemarkSetupErrorInfo(), loadModuleFromInput(), parseIR(), printMatch(), printNoMatch(), readMemprof(), llvm::legacy::FunctionPassManager::run(), llvm::MemProfUsePass::run(), llvm::CGDataError::take(), llvm::InstrProfError::take(), llvm::detail::TakeError(), llvm::cgdata::warn(), llvm::dwarf_linker::parallel::CompileUnit::warn(), llvm::dwarf_linker::parallel::LinkingGlobalData::warn(), llvm::yaml::yaml2dxcontainer(), and llvm::yaml::yaml2macho().

◆ handleErrorImpl() [1/2]

Error llvm::handleErrorImpl ( std::unique_ptr< ErrorInfoBase > Payload)
inline

Definition at line 946 of file Error.h.

References Error.

Referenced by handleErrorImpl(), and llvm::Error::handleErrors.

◆ handleErrorImpl() [2/2]

template<typename HandlerT, typename... HandlerTs>
Error llvm::handleErrorImpl ( std::unique_ptr< ErrorInfoBase > Payload,
HandlerT && Handler,
HandlerTs &&... Handlers )

Definition at line 951 of file Error.h.

References 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 967 of file Error.h.

Referenced by llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), llvm::FileCheckString::CheckNot(), createDirectoriesOnDemand(), encodeError(), llvm::IndexedInstrProfReader::getInstrProfRecord(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), handleAllErrors(), handleExpected(), handleMaybeNoDataFoundError(), llvm::object::isNotObjectErrorInvalidFileType(), localCache(), llvm::Pattern::match(), llvm::lsp::MessageHandler::notification(), and write().

◆ 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 32 of file FuzzerCLI.cpp.

References errs(), 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 68 of file FuzzerCLI.cpp.

References 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.
});
static cl::opt< bool > Aggressive("aggressive-ext-opt", cl::Hidden, cl::desc("Aggressive extension optimization"))
Expected< T > handleExpected(Expected< T > ValOrErr, RecoveryFtor &&RecoveryPath, HandlerTs &&... Handlers)
Handle any errors (if present) in an Expected<T>, then try a recovery path.
Definition Error.h:1042

Definition at line 1042 of file Error.h.

References handleErrors().

◆ handleSection()

Error llvm::handleSection ( const StringMap< std::pair< MCSection *, DWARFSectionKind > > & KnownSections,
const MCSection * StrSection,
const MCSection * StrOffsetSection,
const MCSection * TypesSection,
const MCSection * CUIndexSection,
const MCSection * TUIndexSection,
const MCSection * InfoSection,
const object::SectionRef & Section,
MCStreamer & Out,
std::deque< SmallString< 32 > > & UncompressedSections,
uint32_t(&) ContributionOffsets[8],
UnitIndexEntry & CurEntry,
StringRef & CurStrSection,
StringRef & CurStrOffsetSection,
std::vector< StringRef > & CurTypesSection,
std::vector< StringRef > & CurInfoSection,
StringRef & AbbrevSection,
StringRef & CurCUIndexSection,
StringRef & CurTUIndexSection,
std::vector< std::pair< DWARFSectionKind, uint32_t > > & SectionLength )

◆ handleUnreachableTerminator()

bool llvm::handleUnreachableTerminator ( Instruction * I,
SmallVectorImpl< Value * > & PoisonedValues )

If a terminator in an unreachable basic block has an operand of type Instruction, transform it into poison.

Return true if any operands are changed to poison. Original Values prior to being changed to poison are returned in PoisonedValues.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 2468 of file Local.cpp.

References Changed, llvm::PoisonValue::get(), I, isa(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::InstCombinerImpl::handleUnreachableFrom(), and removeAllNonTerminatorAndEHPadInstructions().

◆ hardware_concurrency() [1/2]

ThreadPoolStrategy llvm::hardware_concurrency ( StringRef Num)
inline

Like hardware_concurrency() above, but builds a strategy based on the rules described for get_threadpool_strategy().

If Num is invalid, returns a default strategy where one thread per hardware core is used.

Definition at line 195 of file Threading.h.

References get_threadpool_strategy(), and hardware_concurrency().

◆ hardware_concurrency() [2/2]

ThreadPoolStrategy llvm::hardware_concurrency ( unsigned ThreadCount = 0)
inline

Returns a default thread strategy where all available hardware resources are to be used, except for those initially excluded by an affinity mask.

This function takes affinity into consideration. Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS=OFF.

Definition at line 185 of file Threading.h.

References ThreadCount, and llvm::ThreadPoolStrategy::ThreadsRequested.

Referenced by llvm::gsym::DwarfTransformer::convert(), get_threadpool_strategy(), hardware_concurrency(), llvm::dwarf_linker::classic::DWARFLinker::link(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::link(), and llvm::ListeningSocket::operator=().

◆ harrisonUlp()

◆ has_single_bit()

◆ hasAssumption() [1/2]

bool llvm::hasAssumption ( const CallBase & CB,
const KnownAssumptionString & AssumptionStr )

Return true if CB or the callee has the assumption AssumptionStr attached.

Definition at line 75 of file Assumptions.cpp.

References A(), AssumptionAttrKey, F, llvm::CallBase::getCalledFunction(), llvm::CallBase::getFnAttr(), and hasAssumption().

◆ hasAssumption() [2/2]

bool llvm::hasAssumption ( const Function & F,
const KnownAssumptionString & AssumptionStr )

Return true if F has the assumption AssumptionStr attached.

Definition at line 69 of file Assumptions.cpp.

References A(), AssumptionAttrKey, and F.

Referenced by hasAssumption(), and llvm::AANoSync::isAlignedBarrier().

◆ hasAttributeInAssume() [1/2]

bool llvm::hasAttributeInAssume ( AssumeInst & Assume,
Value * IsOn,
Attribute::AttrKind Kind,
uint64_t * ArgVal = nullptr )
inline

◆ hasAttributeInAssume() [2/2]

bool llvm::hasAttributeInAssume ( AssumeInst & Assume,
Value * IsOn,
StringRef AttrName,
uint64_t * ArgVal = nullptr )

Query the operand bundle of an llvm.assume to find a single attribute of the specified kind applied on a specified Value.

This has a non-constant complexity. It should only be used when a single attribute is going to be queried.

Return true iff the queried attribute was found. If ArgVal is set. the argument will be stored to ArgVal.

Definition at line 43 of file AssumeBundleQueries.cpp.

References ABA_Argument, ABA_WasOn, assert(), cast(), llvm::Attribute::getAttrKindFromName(), getValueFromBundleOpInfo(), llvm::Attribute::isExistingAttribute(), and llvm::Attribute::isIntAttrKind().

Referenced by hasAttributeInAssume().

◆ hasBlocksAreClusters()

bool llvm::hasBlocksAreClusters ( const Function & F)

Definition at line 331 of file NVPTXUtilities.cpp.

References F.

◆ hasBranchWeightMD()

bool llvm::hasBranchWeightMD ( const Instruction & I)

Checks if an instructions has Branch Weight Metadata.

Parameters
IThe instruction to check
Returns
True if I has an MD_prof node containing Branch Weights. False otherwise.

Definition at line 112 of file ProfDataUtils.cpp.

References I, and isBranchWeightMD().

Referenced by llvm::LoopVectorizationPlanner::addMinimumIterationCheck(), CloneLoopBlocks(), ConnectEpilog(), ConnectProlog(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::LoopVectorizationPlanner::executePlan(), hasProfileData(), mergeConditionalStoreToAddress(), and UnrollRuntimeLoopRemainder().

◆ hasBranchWeightOrigin() [1/2]

bool llvm::hasBranchWeightOrigin ( const Instruction & I)

Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic.

Definition at line 131 of file ProfDataUtils.cpp.

References hasBranchWeightOrigin(), and I.

Referenced by llvm::misexpect::checkBackendInstrumentation(), ConstantFoldTerminator(), getBranchWeightOffset(), hasBranchWeightOrigin(), and updatePredecessorProfileMetadata().

◆ hasBranchWeightOrigin() [2/2]

bool llvm::hasBranchWeightOrigin ( const MDNode * ProfileData)

Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic.

Definition at line 136 of file ProfDataUtils.cpp.

References assert(), dyn_cast(), llvm::MDProfLabels::ExpectedBranchWeights, llvm::MDNode::getOperand(), and isBranchWeightMD().

◆ hasBuiltinTypePrefix()

◆ hasCountTypeMD()

bool llvm::hasCountTypeMD ( const Instruction & I)
static

Definition at line 117 of file ProfDataUtils.cpp.

References I, isa(), isBranchWeightMD(), and isValueProfileMD().

Referenced by scaleProfData().

◆ hasDisableAllTransformsHint()

bool llvm::hasDisableAllTransformsHint ( const Loop * L)

◆ hasDisableLICMTransformsHint()

bool llvm::hasDisableLICMTransformsHint ( const Loop * L)

Look for the loop attribute that disables the LICM transformation heuristics.

Definition at line 349 of file LoopUtils.cpp.

References getBooleanLoopAttribute(), and LLVMLoopDisableLICM.

◆ hasDiscriminator()

bool llvm::hasDiscriminator ( uint32_t Flags)
inlinestatic

Definition at line 133 of file PseudoProbe.h.

References HasDiscriminator.

Referenced by llvm::MCPseudoProbeDecoder::countRecords().

◆ hasDistributeTransformation()

TransformationMode llvm::hasDistributeTransformation ( const Loop * L)

◆ hasELFMagic()

◆ hasExplicitlyUnknownBranchWeights()

bool llvm::hasExplicitlyUnknownBranchWeights ( const Instruction & I)

Definition at line 270 of file ProfDataUtils.cpp.

References I, and isExplicitlyUnknownProfileMetadata().

◆ hasFloatFn()

bool llvm::hasFloatFn ( const Module * M,
const TargetLibraryInfo * TLI,
Type * Ty,
LibFunc DoubleFn,
LibFunc FloatFn,
LibFunc LongDoubleFn )

Check whether the overloaded floating point function corresponding to Ty is available.

Definition at line 1551 of file BuildLibCalls.cpp.

References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::HalfTyID, and isLibFuncEmittable().

Referenced by getFloatFn(), getSqrtCall(), and llvm::InstCombinerImpl::visitFDiv().

◆ hasFullVectorsOrPowerOf2()

bool llvm::hasFullVectorsOrPowerOf2 ( const TargetTransformInfo & TTI,
Type * Ty,
unsigned Sz )
static

Returns true if widened type of Ty elements with size Sz represents full vector type, i.e.

adding extra element results in extra parts upon type legalization.

Definition at line 1888 of file SLPVectorizer.cpp.

References getWidenedType(), has_single_bit(), isa(), and isValidElementType().

Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), getNumberOfParts(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), and tryToFindDuplicates().

◆ 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 592 of file Hashing.h.

References args, llvm::hashing::detail::hash_combine_recursive_helper::buffer, and llvm::hashing::detail::hash_combine_recursive_helper::combine().

Referenced by EliminateDuplicatePHINodesSetBasedImpl(), encodePHINodeData(), generateKeySubkey(), llvm::dwarf_linker::classic::DeclContextTree::getChildDeclContext(), llvm::vfs::getDirectoryID(), llvm::vfs::getFileID(), llvm::ConstantExprKeyType::getHash(), llvm::InlineAsmKeyType::getHash(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< at::VarRecord >::getHashValue(), llvm::DenseMapInfo< Attribute::AttrKind >::getHashValue(), llvm::DenseMapInfo< BasicBlockEdge >::getHashValue(), llvm::DenseMapInfo< ComplexValue >::getHashValue(), llvm::DenseMapInfo< const SwitchSuccWrapper * >::getHashValue(), llvm::DenseMapInfo< coverage::CounterExpression >::getHashValue(), llvm::DenseMapInfo< CSKYTargetStreamer::SymbolIndex >::getHashValue(), llvm::DenseMapInfo< DebugVariable >::getHashValue(), llvm::DenseMapInfo< gsym::FileEntry >::getHashValue(), llvm::DenseMapInfo< MemOpKey >::getHashValue(), llvm::DenseMapInfo< MemoryLocOrCall >::getHashValue(), llvm::DenseMapInfo< object::SectionRef >::getHashValue(), llvm::DenseMapInfo< OffsetAndUnitID >::getHashValue(), llvm::DenseMapInfo< SlotWithTag >::getHashValue(), llvm::DenseMapInfo< SymbolsMapKey >::getHashValue(), llvm::DenseMapInfo< wasm::WasmGlobalType, void >::getHashValue(), llvm::DenseMapInfo< wasm::WasmLimits, void >::getHashValue(), llvm::DenseMapInfo< wasm::WasmSignature, void >::getHashValue(), llvm::DenseMapInfo< wasm::WasmTableType, void >::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::GVNExpression::ConstantExpression::getHashValue(), llvm::GVNExpression::MemoryExpression::getHashValue(), llvm::GVNExpression::PHIExpression::getHashValue(), llvm::GVNExpression::UnknownExpression::getHashValue(), llvm::GVNExpression::VariableExpression::getHashValue(), llvm::MDNodeKeyImpl< DIBasicType >::getHashValue(), llvm::MDNodeKeyImpl< DICommonBlock >::getHashValue(), llvm::MDNodeKeyImpl< DICompositeType >::getHashValue(), llvm::MDNodeKeyImpl< DIEnumerator >::getHashValue(), llvm::MDNodeKeyImpl< DIFile >::getHashValue(), llvm::MDNodeKeyImpl< DIFixedPointType >::getHashValue(), llvm::MDNodeKeyImpl< DIGenericSubrange >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariableExpression >::getHashValue(), llvm::MDNodeKeyImpl< DIImportedEntity >::getHashValue(), llvm::MDNodeKeyImpl< DILabel >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlock >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlockFile >::getHashValue(), llvm::MDNodeKeyImpl< DILocalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILocation >::getHashValue(), llvm::MDNodeKeyImpl< DIMacro >::getHashValue(), llvm::MDNodeKeyImpl< DIMacroFile >::getHashValue(), llvm::MDNodeKeyImpl< DIModule >::getHashValue(), llvm::MDNodeKeyImpl< DINamespace >::getHashValue(), llvm::MDNodeKeyImpl< DIObjCProperty >::getHashValue(), llvm::MDNodeKeyImpl< DIStringType >::getHashValue(), llvm::MDNodeKeyImpl< DISubrange >::getHashValue(), llvm::MDNodeKeyImpl< DISubrangeType >::getHashValue(), llvm::MDNodeKeyImpl< DISubroutineType >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateTypeParameter >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateValueParameter >::getHashValue(), llvm::MDNodeKeyImpl< GenericDINode >::getHashValue(), llvm::TargetExtTypeKeyInfo::getHashValue(), getHashValueImpl(), llvm::ArgInfo::hash_value, llvm::detail::DoubleAPFloat::hash_value, llvm::detail::IEEEFloat::hash_value, llvm::GVNPass::Expression::hash_value, hash_value(), hash_value(), hash_value(), hash_value(), hash_value(), hash_value(), llvm::IRSimilarity::IRInstructionData::hash_value, llvm::PBQP::hash_value(), llvm::PBQP::Matrix::hash_value, llvm::PBQP::RegAlloc::AllowedRegVector::hash_value, llvm::SpecSig::hash_value, llvm::VersionTuple::hash_value, hashCallInst(), hashInstructionMapping(), llvm::mca::hashMCInst(), llvm::mca::hashMCOperand(), hashPartialMapping(), llvm::SPIRV::to_hash(), and llvm::hashbuilder_detail::HashCodeHasher::update().

◆ hash_combine_range() [1/2]

template<typename InputIteratorT>
hash_code llvm::hash_combine_range ( InputIteratorT first,
InputIteratorT last )

Compute a hash_code for a sequence of values.

This hashes a sequence of values. It produces the same hash_code as 'hash_combine(a, b, c, ...)', but can run over arbitrary sized sequences and is significantly faster given pointers and types which can be hashed as a sequence of bytes.

Definition at line 466 of file Hashing.h.

Referenced by llvm::MDNodeOpsKey::calculateHash(), llvm::FoldingSetNodeIDRef::ComputeHash(), EliminateDuplicatePHINodesSetBasedImpl(), encodePHINodeData(), llvm::ConstantAggrKeyType< ConstantArray >::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::ConstantPtrAuthKeyType::getHash(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< const SwitchSuccWrapper * >::getHashValue(), llvm::DenseMapInfo< llvm::SmallVector< T, N > >::getHashValue(), llvm::DenseMapInfo< SmallVector< sandboxir::Value * > >::getHashValue(), llvm::DIArgListKeyInfo::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::MDNodeKeyImpl< DIExpression >::getHashValue(), llvm::TargetExtTypeKeyInfo::getHashValue(), getHashValueImpl(), llvm::RegisterBankInfo::getOperandsMapping(), hash_combine_range(), llvm::cas::CASID::hash_value, llvm::detail::IEEEFloat::hash_value, llvm::GVNPass::Expression::hash_value, hash_value(), hash_value(), hash_value(), hash_value(), llvm::IRSimilarity::IRInstructionData::hash_value, llvm::PBQP::hash_value(), llvm::PBQP::Matrix::hash_value, llvm::PBQP::RegAlloc::AllowedRegVector::hash_value, llvm::SpecSig::hash_value, hashCallInst(), hashValueMapping(), markAliveBlocks(), and llvm::sampleprof::SampleContextFrameHash::operator()().

◆ hash_combine_range() [2/2]

template<typename RangeT>
hash_code llvm::hash_combine_range ( RangeT && R)

Definition at line 471 of file Hashing.h.

References adl_begin(), adl_end(), and hash_combine_range().

◆ hash_value() [1/17]

template<typename T>
hash_code llvm::hash_value ( ArrayRef< T > S)

Definition at line 587 of file ArrayRef.h.

References hash_combine_range().

◆ hash_value() [2/17]

hash_code llvm::hash_value ( const APFixedPoint & Val)
inline

◆ hash_value() [3/17]

hash_code llvm::hash_value ( const APFloat & Arg)

See friend declarations above.

These additional declarations are required in order to compile LLVM with IBM xlC compiler.

Definition at line 5971 of file APFloat.cpp.

◆ hash_value() [4/17]

◆ hash_value() [5/17]

hash_code llvm::hash_value ( const DynamicAPInt & X)

Redeclarations of friend declaration above to make it discoverable by lookups.

Definition at line 15 of file DynamicAPInt.cpp.

References llvm::detail::hash_value(), hash_value(), and X.

◆ hash_value() [6/17]

hash_code llvm::hash_value ( const FixedPointSemantics & Val)
inline

Definition at line 137 of file APFixedPoint.h.

References bit_cast(), and hash_value().

Referenced by llvm::slpvectorizer::BoUpSLP::analyzedReductionVals(), llvm::slpvectorizer::BoUpSLP::areAnalyzedReductionVals(), llvm::slpvectorizer::BoUpSLP::areKnownNonVectorizableLoads(), encodePHINodeData(), generateKeySubkey(), llvm::hashing::detail::get_hashable_data(), llvm::cas::ReferenceBase::getDenseMapHash(), llvm::DenseMapInfo< APFixedPoint >::getHashValue(), llvm::DenseMapInfo< APFloat >::getHashValue(), llvm::DenseMapInfo< ArrayRef< T >, void >::getHashValue(), llvm::DenseMapInfo< cas::CASID >::getHashValue(), llvm::DenseMapInfo< FixedPointSemantics >::getHashValue(), llvm::DenseMapInfo< GVNPass::Expression >::getHashValue(), llvm::DenseMapInfo< llvm::sys::fs::UniqueID >::getHashValue(), llvm::DenseMapInfo< MachineOperand >::getHashValue(), llvm::DenseMapInfo< SpecSig >::getHashValue(), llvm::DenseMapInfo< SymbolsMapKey >::getHashValue(), llvm::DenseMapInfo< ValueIDNum >::getHashValue(), llvm::DenseMapInfo< ValueInfo >::getHashValue(), llvm::DenseMapInfo< wasm::WasmLimits, void >::getHashValue(), llvm::DenseMapInfo< wasm::WasmSignature, void >::getHashValue(), llvm::IRSimilarity::IRInstructionDataTraits::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), hash_value(), hash_value(), hash_value(), llvm::IRSimilarity::IRInstructionData::hash_value, llvm::MCRegister::hash_value, llvm::codeview::LocallyHashedType::hashType(), hashValueMapping(), llvm::codeview::MergingTypeTableBuilder::insertRecordBytes(), llvm::slpvectorizer::BoUpSLP::registerNonVectorizableLoads(), llvm::codeview::MergingTypeTableBuilder::replaceType(), and llvm::hashbuilder_detail::HashCodeHasher::update().

◆ hash_value() [7/17]

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 401 of file MachineOperand.cpp.

References assert(), llvm::MachineOperand::getBlockAddress(), llvm::MachineOperand::getCFIIndex(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getInstrRefInstrIndex(), llvm::MachineOperand::getInstrRefOpIndex(), llvm::MachineOperand::getIntrinsicID(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getMetadata(), getMFIfAvailable(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getPredicate(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getRegMask(), llvm::MachineOperand::getRegMaskSize(), llvm::MachineOperand::getShuffleMask(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getType(), hash_combine(), llvm::Register::id(), llvm::MachineOperand::isDef(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_DbgInstrRef, 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, llvm::MachineOperand::MO_ShuffleMask, llvm::MachineOperand::MO_TargetIndex, stable_hash_combine(), and TRI.

◆ hash_value() [8/17]

hash_code llvm::hash_value ( const MCRegister & Reg)
inline

Definition at line 118 of file MCRegister.h.

◆ hash_value() [9/17]

hash_code llvm::hash_value ( const RegisterBankInfo::PartialMapping & PartMapping)

Hashing function for PartialMapping.

Overloaded version of hash_value for a PartialMapping.

It is required for the hashing of ValueMapping.

Definition at line 274 of file RegisterBankInfo.cpp.

References hashPartialMapping(), llvm::RegisterBankInfo::PartialMapping::Length, llvm::RegisterBankInfo::PartialMapping::RegBank, and llvm::RegisterBankInfo::PartialMapping::StartIdx.

◆ hash_value() [10/17]

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 648 of file Hashing.h.

References hash_combine_range().

◆ hash_value() [11/17]

template<typename T>
hash_code llvm::hash_value ( const std::optional< T > & arg)

Compute a hash_code for a standard string.

Definition at line 652 of file Hashing.h.

References hash_combine(), and hash_value().

◆ hash_value() [12/17]

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 637 of file Hashing.h.

References hash_combine().

◆ hash_value() [13/17]

template<typename... Ts>
hash_code llvm::hash_value ( const std::tuple< Ts... > & arg)

Compute a hash_code for a tuple.

Definition at line 641 of file Hashing.h.

References hash_combine().

◆ hash_value() [14/17]

template<typename T>
std::enable_if_t< is_detected< hashbuilder_detail::HashCodeHashBuilder::HasAddHashT, T >::value, hash_code > llvm::hash_value ( const T & Value)

Provide a default implementation of hash_value when addHash(const T &) is supported.

Definition at line 403 of file HashBuilder.h.

References llvm::HashBuilder< HasherT, Endianness >::add(), llvm::HashBuilderBase< HasherT >::getHasher(), and T.

◆ hash_value() [15/17]

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 629 of file Hashing.h.

References T.

◆ hash_value() [16/17]

hash_code llvm::hash_value ( StringRef S)
nodiscard

Compute a hash_code for a StringRef.

Definition at line 615 of file StringRef.cpp.

References hash_combine_range().

◆ hash_value() [17/17]

template<typename T>
std::enable_if_t< is_integral_or_enum< T >::value, hash_code > 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 622 of file Hashing.h.

References T.

◆ hasImplicitCPSRUse()

bool llvm::hasImplicitCPSRUse ( const MachineInstr * MI)
static

Definition at line 487 of file ARMLatencyMutations.cpp.

References MI.

◆ hasInitializer()

bool llvm::hasInitializer ( const GlobalVariable * GV)
inline

◆ hasInstrProfHashMismatch()

bool llvm::hasInstrProfHashMismatch ( MachineFunction & MF)

This checks if the source of this function has drifted since this binary was profiled previously.

For now, we are piggy backing on what PGO does to detect this with instrumented profiles. PGO emits an hash of the IR and checks if the hash has changed. Advanced basic block layout is usually done on top of PGO optimized binaries and hence this check works well in practice.

Definition at line 279 of file BasicBlockSections.cpp.

References BBSectionsDetectSourceDrift, cast(), llvm::MachineFunction::getFunction(), llvm::GlobalObject::getMetadata(), and N.

◆ 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 975 of file LoopUtils.cpp.

References llvm::ScalarEvolution::getExitCount(), llvm::ScalarEvolution::getLoopDisposition(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::SCEV::getType(), isa(), llvm::Type::isIntegerTy(), and llvm::ScalarEvolution::LoopInvariant.

◆ hasLessThanNumFused()

bool llvm::hasLessThanNumFused ( const SUnit & SU,
unsigned FuseLimit )

Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit.

Definition at line 46 of file MacroFusion.cpp.

References getPredClusterSU().

Referenced by fuseInstructionPair().

◆ hasLICMVersioningTransformation()

TransformationMode llvm::hasLICMVersioningTransformation ( const Loop * L)

◆ HasLowerConstantMaterializationCost()

bool llvm::HasLowerConstantMaterializationCost ( unsigned Val1,
unsigned Val2,
const ARMSubtarget * Subtarget,
bool ForCodesize = false )

Returns true if Val1 has a lower Constant Materialization Cost than Val2.

Uses the cost from ConstantMaterializationCost, first with ForCodesize as specified. If the scores are equal, return the comparison for !ForCodesize.

Definition at line 5509 of file ARMBaseInstrInfo.cpp.

References ConstantMaterializationCost().

Referenced by CombineANDShift().

◆ hasMustProgress()

bool llvm::hasMustProgress ( const Loop * L)

Look for the loop attribute that requires progress within the loop.

Note: Most consumers probably want "isMustProgress" which checks the containing function attribute too.

Definition at line 1158 of file LoopInfo.cpp.

References getBooleanLoopAttribute(), and LLVMLoopMustProgress.

Referenced by isLoopDead(), and isMustProgress().

◆ hasNItems() [1/2]

template<typename ContainerTy>
bool llvm::hasNItems ( ContainerTy && C,
unsigned N )

Returns true if the given container has exactly N items.

Definition at line 2567 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, hasNItems(), and N.

◆ hasNItems() [2/2]

template<typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
bool llvm::hasNItems ( IterTy && Begin,
IterTy && End,
unsigned N,
Pred && ShouldBeCounted = [](const decltype(*std::declval<IterTy>()) &) { return true; },
std::enable_if_t< !std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< std::remove_reference_t< decltype(Begin)> >::iterator_category >::value, void > * = 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. Can optionally take a predicate to filter lazily some items.

Definition at line 2511 of file STLExtras.h.

References N.

Referenced by hasNItems().

◆ hasNItemsOrLess() [1/2]

template<typename ContainerTy>
bool llvm::hasNItemsOrLess ( ContainerTy && C,
unsigned N )

Returns true if the given container has N or less items.

Definition at line 2579 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, hasNItemsOrLess(), and N.

◆ hasNItemsOrLess() [2/2]

template<typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
bool llvm::hasNItemsOrLess ( IterTy && Begin,
IterTy && End,
unsigned N,
Pred && ShouldBeCounted = [](const decltype(*std::declval<IterTy>()) &) { return true; } )

Returns true if the sequence [Begin, End) has N or less items.

Can optionally take a predicate to lazily filter some items.

Definition at line 2557 of file STLExtras.h.

References N.

Referenced by EliminateDuplicatePHINodes(), llvm::MachineRegisterInfo::hasAtMostUserInstrs(), and hasNItemsOrLess().

◆ hasNItemsOrMore() [1/2]

template<typename ContainerTy>
bool llvm::hasNItemsOrMore ( ContainerTy && C,
unsigned N )

Returns true if the given container has N or more items.

Definition at line 2573 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, hasNItemsOrMore(), and N.

◆ hasNItemsOrMore() [2/2]

template<typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>
bool llvm::hasNItemsOrMore ( IterTy && Begin,
IterTy && End,
unsigned N,
Pred && ShouldBeCounted = [](const decltype(*std::declval<IterTy>()) &) { return true; },
std::enable_if_t< !std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< std::remove_reference_t< decltype(Begin)> >::iterator_category >::value, void > * = 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. Can optionally take a predicate to lazily filter some items.

Definition at line 2536 of file STLExtras.h.

References N.

Referenced by hasNItemsOrMore().

◆ hasOnlySimpleTerminator()

bool llvm::hasOnlySimpleTerminator ( const Function & F)

Definition at line 1746 of file BasicBlockUtils.cpp.

References F, and isa().

Referenced by FixIrreducibleImpl().

◆ hasOutsideLoopUser()

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 421 of file LoopVectorizationLegality.cpp.

References cast(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), LLVM_DEBUG, and llvm::Value::users().

◆ hasPartialIVCondition()

std::optional< IVConditionInfo > llvm::hasPartialIVCondition ( const Loop & L,
unsigned MSSAThreshold,
const MemorySSA & MSSA,
AAResults & AA )

Check if the loop header has a conditional branch that is not loop-invariant, because it involves load instructions.

If all paths from either the true or false successor to the header or loop exists do not modify the memory feeding the condition, perform 'partial unswitching'. That is, duplicate the instructions feeding the condition in the pre-header. Then unswitch on the duplicated condition. The condition is now known in the unswitched version for the 'invariant' path through the original loop.

If the branch condition of the header is partially invariant, return a pair containing the instructions to duplicate and a boolean Constant to update the condition in the loops created for the true or false successors.

Definition at line 2170 of file LoopUtils.cpp.

References all_of(), any_of(), llvm::SmallVectorImpl< T >::append(), assert(), cast(), llvm::SmallPtrSetImpl< PtrType >::contains(), dyn_cast(), dyn_cast_or_null(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::MemoryLocation::get(), llvm::MemoryAccess::getBlock(), llvm::ConstantInt::getFalse(), llvm::MemorySSA::getMemoryAccess(), llvm::ConstantInt::getTrue(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), isModSet(), isMustProgress(), MSSAThreshold, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallPtrSetImplBase::size(), succ_begin(), succ_end(), successors(), and llvm::Value::uses().

Referenced by collectUnswitchCandidates().

◆ hasPointeeTypeAttr()

bool llvm::hasPointeeTypeAttr ( Argument * Arg)
inline

◆ hasProcessableCondition()

◆ hasProfMD()

bool llvm::hasProfMD ( const Instruction & I)

Checks if an Instruction has MD_prof Metadata.

Definition at line 100 of file ProfDataUtils.cpp.

References I.

◆ hasReductionStartParam()

bool llvm::hasReductionStartParam ( unsigned OPC)

◆ hasSingleElement()

◆ hasSingleValue()

◆ hasUnrollAndJamTransformation()

◆ hasUnrollTransformation()

◆ 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 78 of file ConvertUTFWrapper.cpp.

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

◆ hasValidBranchWeightMD()

bool llvm::hasValidBranchWeightMD ( const Instruction & I)

Checks if an instructions has valid Branch Weight Metadata.

Parameters
IThe instruction to check
Returns
True if I has an MD_prof node containing valid Branch Weights, i.e., one weight for each successor. False otherwise.

Definition at line 127 of file ProfDataUtils.cpp.

References getValidBranchWeightMDNode(), and I.

◆ HasValue()

◆ hasVectorizeTransformation()

◆ hasWholeProgramVisibility()

bool llvm::hasWholeProgramVisibility ( bool WholeProgramVisibilityEnabledInLTO)

◆ haveNoCommonBitsSet()

◆ heavyweight_hardware_concurrency() [1/2]

ThreadPoolStrategy llvm::heavyweight_hardware_concurrency ( StringRef Num)
inline

Like heavyweight_hardware_concurrency() above, but builds a strategy based on the rules described for get_threadpool_strategy().

If Num is invalid, returns a default strategy where one thread per hardware core is used.

Definition at line 173 of file Threading.h.

References get_threadpool_strategy(), and heavyweight_hardware_concurrency().

◆ heavyweight_hardware_concurrency() [2/2]

ThreadPoolStrategy llvm::heavyweight_hardware_concurrency ( unsigned ThreadCount = 0)
inline

Returns a thread strategy for tasks requiring significant memory or other resources.

To be used for workloads where hardware_concurrency() proves to be less efficient. Avoid this strategy if doing lots of I/O. Currently based on physical cores, if available for the host system, otherwise falls back to hardware_concurrency(). Returns 1 when LLVM is configured with LLVM_ENABLE_THREADS = OFF.

Definition at line 162 of file Threading.h.

References ThreadCount, llvm::ThreadPoolStrategy::ThreadsRequested, and llvm::ThreadPoolStrategy::UseHyperThreads.

Referenced by heavyweight_hardware_concurrency(), llvm::ThinLTOCodeGenerator::run(), and splitCodeGen().

◆ HexagonConvertUnits()

unsigned llvm::HexagonConvertUnits ( unsigned ItinUnits,
unsigned * Lanes )

◆ HexagonGetLastSlot()

unsigned llvm::HexagonGetLastSlot ( )

◆ HexagonLowerToMC()

void llvm::HexagonLowerToMC ( const MCInstrInfo & MCII,
const MachineInstr * MI,
MCInst & MCB,
HexagonAsmPrinter & AP )

Definition at line 96 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::MCContext::createMCInst(), llvm::MCOperand::createReg(), llvm::HexagonAsmPrinter::EmitSled(), errs(), llvm::HexagonMCInstrInfo::extendIfNeeded(), llvm::AsmPrinter::FUNCTION_ENTER, llvm::AsmPrinter::FUNCTION_EXIT, llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::AsmPrinter::GetJTISymbol(), llvm::MCInst::getOpcode(), llvm::APInt::getRawData(), llvm::AsmPrinter::getSymbol(), GetSymbolRef(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), llvm::HexagonII::HMOTF_ConstExtended, llvm_unreachable, MI, 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::HexagonMCInstrInfo::setInnerLoop(), llvm::HexagonMCInstrInfo::setMustExtend(), llvm::MCInst::setOpcode(), llvm::HexagonMCInstrInfo::setOuterLoop(), and llvm::AsmPrinter::TAIL_CALL.

Referenced by llvm::HexagonAsmPrinter::emitInstruction().

◆ HexagonMCShuffle() [1/3]

◆ HexagonMCShuffle() [2/3]

◆ HexagonMCShuffle() [3/3]

◆ 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 38 of file StringExtras.h.

References assert(), LUT, Offset, and X.

Referenced by llvm::dwarf::CIE::dump(), percentEncode(), printEscapedString(), printMetadataIdentifier(), toHex(), toHexStr(), utohexstr(), llvm::raw_ostream::write_escaped(), 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 81 of file StringExtras.h.

References llvm::CallingConv::C, and LUT.

Referenced by checkChars(), findLastDigit(), isHexDigit(), trailingHexadecimalFraction(), tryGetHexFromNibbles(), UnEscapeLexed(), unescapeQuotedString(), and llvm::yaml::BinaryRef::writeAsBinary().

◆ hexFromNibbles()

uint8_t llvm::hexFromNibbles ( char MSB,
char LSB )
inline

Return the binary representation of the two provided values, MSB and LSB, that make up the nibbles of a hexadecimal digit.

Definition at line 234 of file StringExtras.h.

References assert(), and tryGetHexFromNibbles().

Referenced by percentDecode().

◆ HI22()

unsigned llvm::HI22 ( int64_t imm)
inlinestatic

Definition at line 173 of file Sparc.h.

Referenced by HIX22(), and replaceFI().

◆ Hi_32()

◆ HIX22()

unsigned llvm::HIX22 ( int64_t imm)
inlinestatic

Definition at line 181 of file Sparc.h.

References HI22().

Referenced by replaceFI().

◆ 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 are removed.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3339 of file Local.cpp.

References llvm::BasicBlock::begin(), dropDebugUsers(), llvm::BasicBlock::end(), llvm::Instruction::getDebugLoc(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), I, II, and llvm::BasicBlock::splice().

Referenced by foldTwoEntryPHINode().

◆ hoistRegion()

bool llvm::hoistRegion ( DomTreeNode * N,
AAResults * AA,
LoopInfo * LI,
DominatorTree * DT,
AssumptionCache * AC,
TargetLibraryInfo * TLI,
Loop * CurLoop,
MemorySSAUpdater & MSSAU,
ScalarEvolution * SE,
ICFLoopSafetyInfo * SafetyInfo,
SinkAndHoistLICMFlags & Flags,
OptimizationRemarkEmitter * ORE,
bool LoopNestMode,
bool AllowSpeculation )

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, AAResults, LoopInfo, DominatorTree, 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. AllowSpeculation is whether values should be hoisted even if they are not guaranteed to execute in the loop, but are safe to speculatively execute.

This allows us to visit definitions before uses, allowing us to hoist a loop body in one pass without iteration.

Definition at line 887 of file LICM.cpp.

References all_of(), assert(), canSinkOrHoistInst(), Changed, ControlFlowHoisting, dbgs(), llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), llvm::DominatorTree::dominates(), dyn_cast(), eraseInstruction(), llvm::DomTreeNodeBase< NodeT >::getBlock(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::PHINode::getIncomingBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::PHINode::getNumIncomingValues(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getTerminator(), llvm::Loop::hasLoopInvariantOperands(), hoist(), hoistArithmetics(), I, llvm::ICFLoopSafetyInfo::insertInstructionTo(), inSubLoop(), llvm::ICFLoopSafetyInfo::isGuaranteedToExecute(), isGuard(), llvm::Loop::isLoopInvariant(), isSafeToExecuteUnconditionally(), LLVM_DEBUG, llvm::PatternMatch::m_Intrinsic(), make_early_inc_range(), llvm::PatternMatch::match(), moveInstructionBefore(), N, llvm::LoopBlocksRPO::perform(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), reverse(), llvm::PHINode::setIncomingBlock(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().

◆ HUerrBound()

unsigned int llvm::HUerrBound ( bool inexactMultiply,
unsigned int HUerr1,
unsigned int HUerr2 )
static

Definition at line 730 of file APFloat.cpp.

References assert().

◆ identify_magic() [1/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 281 of file Magic.cpp.

References llvm::MemoryBuffer::getFile(), and identify_magic().

◆ identify_magic() [2/2]

file_magic llvm::identify_magic ( StringRef magic)

Identify the type of a binary file based on how magical it is.

Identify the magic in magic.

Definition at line 33 of file Magic.cpp.

References llvm::file_magic::archive, llvm::COFF::BigObjMagic, llvm::file_magic::bitcode, llvm::file_magic::clang_ast, llvm::COFF::ClGlObjMagic, llvm::file_magic::coff_cl_gl_object, llvm::file_magic::coff_import_library, llvm::file_magic::coff_object, llvm::file_magic::cuda_fatbinary, llvm::file_magic::dxcontainer_object, llvm::file_magic::elf, llvm::file_magic::elf_core, llvm::file_magic::elf_executable, llvm::file_magic::elf_relocatable, llvm::file_magic::elf_shared_object, llvm::file_magic::goff_object, llvm::file_magic::macho_bundle, llvm::file_magic::macho_core, llvm::file_magic::macho_dsym_companion, llvm::file_magic::macho_dynamic_linker, llvm::file_magic::macho_dynamically_linked_shared_lib, llvm::file_magic::macho_dynamically_linked_shared_lib_stub, llvm::file_magic::macho_executable, llvm::file_magic::macho_file_set, llvm::file_magic::macho_fixed_virtual_memory_shared_lib, llvm::file_magic::macho_kext_bundle, llvm::file_magic::macho_object, llvm::file_magic::macho_preload_executable, llvm::file_magic::macho_universal_binary, memcmp, llvm::file_magic::minidump, llvm::file_magic::offload_binary, llvm::file_magic::offload_bundle, llvm::file_magic::offload_bundle_compressed, offsetof, llvm::file_magic::pdb, llvm::file_magic::pecoff_executable, llvm::COFF::PEMagic, llvm::support::endian::read32le(), llvm::file_magic::spirv_object, startswith(), llvm::file_magic::tapi_file, llvm::file_magic::unknown, llvm::file_magic::wasm_object, llvm::file_magic::windows_resource, llvm::COFF::WinResMagic, llvm::file_magic::xcoff_object_32, and llvm::file_magic::xcoff_object_64.

Referenced by appendFile(), llvm::object::OffloadBinary::create(), llvm::object::OffloadBundleFatBin::create(), llvm::object::createBinary(), llvm::pdb::NativeSession::createFromExe(), llvm::jitlink::createLinkGraphFromCOFFObject(), llvm::jitlink::createLinkGraphFromObject(), llvm::jitlink::createLinkGraphFromXCOFFObject(), llvm::object::ObjectFile::createObjectFile(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::object::CompressedOffloadBundle::decompress(), llvm::NewArchiveMember::detectKindFromObject(), doList(), llvm::object::extractOffloadBinaries(), llvm::object::extractOffloadBundleFatBinary(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::orc::getDylibInterface(), getSymbolicFile(), hasELFMagic(), identify_magic(), llvm::orc::StaticLibraryDefinitionGenerator::loadAllObjectFileMembers(), llvm::orc::loadLinkableFile(), llvm::orc::loadLinkableSliceFromMachOUniversalBinary(), llvm::orc::loadMachORelocatableObject(), loadPdbFile(), and llvm::pdb::InputFile::open().

◆ identifyNoAliasScopesToClone() [1/2]

void llvm::identifyNoAliasScopesToClone ( ArrayRef< BasicBlock * > BBs,
SmallVectorImpl< MDNode * > & NoAliasDeclScopes )

Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified basic blocks and extract their scope.

These are candidates for duplication when cloning.

Definition at line 1245 of file CloneFunction.cpp.

References dyn_cast(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::JumpThreadingPass::cloneInstructions(), peelLoop(), and UnrollLoop().

◆ identifyNoAliasScopesToClone() [2/2]

void llvm::identifyNoAliasScopesToClone ( BasicBlock::iterator Start,
BasicBlock::iterator End,
SmallVectorImpl< MDNode * > & NoAliasDeclScopes )

Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified instruction range and extract their scope.

These are candidates for duplication when cloning.

Definition at line 1253 of file CloneFunction.cpp.

References dyn_cast(), I, make_range(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ 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 )

◆ ilogb()

int llvm::ilogb ( const APFloat & Arg)
inline

Returns the exponent of the internal representation of the APFloat.

Because the radix of APFloat is 2, this is equivalent to floor(log2(x)). For special APFloat values, this returns special error codes:

NaN -> IEK_NaN 0 -> IEK_Zero Inf -> IEK_Inf

Definition at line 1534 of file APFloat.h.

Referenced by computeKnownFPClass(), llvm::InstCombinerImpl::foldFCmpIntToFPConst(), llvm::detail::IEEEFloat::frexp, harrisonUlp(), and llvm::APFloat::ilogb.

◆ impliesPoison()

bool llvm::impliesPoison ( const Value * ValAssumedPoison,
const Value * V )

Return true if V is poison given that ValAssumedPoison is already poison.

For example, if ValAssumedPoison is icmp X, 10 and V is icmp X, 5, impliesPoison returns true.

Definition at line 7581 of file ValueTracking.cpp.

Referenced by createLogicalOp(), foldICmpEqualityWithOffset(), llvm::ScalarEvolution::getSequentialMinMaxExpr(), handleOtherCmpSelSimplifications(), simplifySelectInst(), and simplifyWithOpsReplaced().

◆ includes() [1/2]

template<typename R1, typename R2>
bool llvm::includes ( R1 && Range1,
R2 && Range2 )

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

This function checks if the sorted range R2 is a subsequence of the sorted range R1. The ranges must be sorted in non-descending order.

Definition at line 1914 of file STLExtras.h.

References adl_begin(), adl_end(), assert(), is_sorted(), and R2.

◆ includes() [2/2]

template<typename R1, typename R2, typename Compare>
bool llvm::includes ( R1 && Range1,
R2 && Range2,
Compare && C )

This function checks if the sorted range R2 is a subsequence of the sorted range R1.

The ranges must be sorted with respect to a comparator C.

Definition at line 1925 of file STLExtras.h.

References adl_begin(), adl_end(), assert(), llvm::CallingConv::C, is_sorted(), and R2.

◆ 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 98 of file Error.cpp.

Referenced by llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addGlobalInstructionSelect(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addInstSelector(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addIRTranslator(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addLegalizeMachineIR(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addRegBankSelect(), llvm::orc::LLJIT::applyDataLayout(), badOS(), llvm::TargetMachine::buildCodeGenPipeline(), llvm::orc::shared::WrapperFunction< SPSRetTagT(SPSTagTs...)>::call(), llvm::orc::shared::WrapperFunction< SPSRetTagT(SPSTagTs...)>::callAsync(), llvm::orc::checkMachORelocatableObject(), llvm::orc::checkMachORelocatableObject(), llvm::object::CompressedOffloadBundle::compress(), DXNotSupportedError::convertToErrorCode(), llvm::BinaryStreamError::convertToErrorCode(), llvm::DWARFDebugNames::SentinelError::convertToErrorCode(), llvm::ErrorDiagnostic::convertToErrorCode(), llvm::ErrorReported::convertToErrorCode(), llvm::hlsl::rootsig::GenericRSMetadataError::convertToErrorCode(), llvm::hlsl::rootsig::InvalidRSMetadataFormat::convertToErrorCode(), llvm::hlsl::rootsig::InvalidRSMetadataValue::convertToErrorCode(), llvm::hlsl::rootsig::RootSignatureValidationError< T >::convertToErrorCode(), llvm::json::ParseError::convertToErrorCode(), llvm::lsp::LSPError::convertToErrorCode(), llvm::mca::InstructionError< T >::convertToErrorCode(), llvm::mca::InstStreamPause::convertToErrorCode(), llvm::mca::RecycledInstErr::convertToErrorCode(), llvm::NotFoundError::convertToErrorCode(), llvm::remarks::EndOfFileError::convertToErrorCode(), llvm::remarks::YAMLParseError::convertToErrorCode(), llvm::SymbolRemappingParseError::convertToErrorCode(), llvm::UndefVarError::convertToErrorCode(), llvm::jitlink::InProcessMemoryManager::Create(), llvm::orc::COFFPlatform::Create(), llvm::orc::ELFNixPlatform::Create(), llvm::orc::EPCIndirectionUtils::Create(), llvm::orc::FDSimpleRemoteEPCTransport::Create(), llvm::orc::JITLinkRedirectableSymbolManager::Create(), llvm::orc::JITLinkReentryTrampolines::Create(), llvm::orc::MachOPlatform::Create(), llvm::orc::PerfSupportPlugin::Create(), llvm::orc::shared::WrapperFunctionCall::Create(), llvm::orc::SharedMemoryMapper::Create(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::memprof::RawMemProfReader::create(), llvm::orc::createDWARFContext(), createError(), createError(), llvm::orc::createLocalCompileCallbackManager(), llvm::orc::createLocalLazyCallThroughManager(), llvm::CodeGenTargetMachineImpl::createMCStreamer(), llvm::MachO::createRegexFromGlob(), createStringError(), createStringError(), llvm::orc::JITTargetMachineBuilder::createTargetMachine(), llvm::codegen::createTargetMachineForTriple(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), decodeError(), llvm::object::CompressedOffloadBundle::decompress(), llvm::orc::ORCPlatformSupport::deinitialize(), llvm::orc::shared::detail::ResultDeserializer< SPSRetTagT, RetT >::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSError, Error >::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSExpected< SPSTagT >, Expected< T > >::deserialize(), llvm::logicalview::LVReader::doLoad(), llvm::orc::enableDebuggerSupport(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::MachO::InterfaceFile::extract(), llvm::object::extractOffloadBundleFatBinary(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::RuntimeDyldImpl::finalizeAsync(), llvm::pdb::GSIStreamBuilder::finalizeMsfLayout(), llvm::orc::LazyCallThroughManager::findReexport(), llvm::lto::findThinLTOModule(), llvm::jitlink::ELFLinkGraphBuilder< ELFType< DataEndianness, false > >::forEachRelaRelocation(), llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation(), llvm::jitlink::ELFLinkGraphBuilder< ELFType< DataEndianness, false > >::forEachRelRelocation(), llvm::orc::shared::detail::fromSPSSerializable(), llvm::orc::shared::detail::fromSPSSerializable(), getAbsolutePath(), llvm::DWARFFormValue::getAsCString(), getBitcodeFileMachine(), llvm::orc::ExecutorProcessControl::getBootstrapMapValue(), llvm::orc::ExecutorProcessControl::getBootstrapSymbols(), getCOFFFileMachine(), llvm::jitlink::BasicLayout::getContiguousPageBasedLayoutSizes(), llvm::orc::JITDylib::getDFSLinkOrder(), llvm::orc::getDylibInterface(), llvm::orc::getDylibInterfaceFromDylib(), llvm::json::Path::Root::getError(), llvm::yaml::FrameIndex::getFI(), llvm::DWARFDie::getLocations(), llvm::orc::getMachOSliceRangeForTriple(), llvm::DWARFUnit::getStringOffsetSectionItem(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::getSymbolLinkageAndScope(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), llvm::orc::SimpleRemoteEPC::handleMessage(), llvm::orc::SimpleRemoteEPCServer::handleMessage(), llvm::pdb::hashTagRecord(), initAndLookupTarget(), llvm::orc::ORCPlatformSupport::initialize(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::initialize(), jitLinkForORC(), llvm::orc::DynamicLibrarySearchGenerator::Load(), llvm::PassPlugin::Load(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::loadClangModule(), llvm::orc::loadLinkableFile(), llvm::orc::loadLinkableSliceFromMachOUniversalBinary(), llvm::orc::loadMachORelocatableObject(), llvm::LegacyJITSymbolResolver::lookup(), llvm::orc::rt_bootstrap::SimpleExecutorDylibManager::lookup(), llvm::orc::lookupAndRecordAddrs(), llvm::dxil::makeOpError(), llvm::orc::makeUnexpectedEOFError(), llvm::MachO::InterfaceFile::merge(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::orc::rt_bootstrap::SimpleExecutorDylibManager::open(), llvm::pdb::InputFile::open(), llvm::orc::ExecutorNativePlatform::operator()(), llvm::orc::LoadAndLinkDynLibrary::operator()(), llvm::orc::SimpleCompiler::operator()(), llvm::PassBuilder::parseAAPipeline(), parseAMDGPUAtomicOptimizerStrategy(), parseAMDGPUAttributorPassOptions(), parseCachePruningPolicy(), parseDuration(), parseFilePathFromURI(), llvm::remarks::parseHotnessThresholdOption(), parseOptLevelParam(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::PassBuilder::parseSinglePassOption(), llvm::orc::LLJITBuilderState::prepareForConstruction(), llvm::orc::preserveDebugSections(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::irsymtab::readBitcode(), llvm::orc::ExecutionSession::registerJITDispatchHandlers(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::release(), llvm::MachO::InterfaceFile::remove(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::SharedMemoryMapper::reserve(), llvm::orc::shared::WrapperFunctionCall::runWithSPSRet(), llvm::orc::FDSimpleRemoteEPCTransport::sendMessage(), llvm::orc::LLJIT::setUpGenericLLVMIRPlatform, stringErr(), llvm::lto::thinBackend(), llvm::MCDwarfLineTableHeader::tryGetFile(), unsupportedBatch(), llvm::orc::ELFDebugObjectSection< ELFT >::validateInBounds(), llvm::codeview::CVSymbolVisitor::visitSymbolStreamFiltered(), llvm::offloading::wrapCudaBinary(), llvm::offloading::wrapHIPBinary(), llvm::offloading::wrapOpenMPBinaries(), and llvm::orc::DefinitionGenerator::~DefinitionGenerator().

◆ inferAlignFromPtrInfo()

◆ inferAttribute()

◆ inferAttributesFromOthers()

bool llvm::inferAttributesFromOthers ( Function & F)

If we can infer one attribute from another on the declaration of a function, explicitly materialize the maximal set in the IR.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3960 of file Local.cpp.

References Changed, and F.

Referenced by deriveAttrsInPostOrder(), and inferAllPrototypeAttributes().

◆ inferNonMandatoryLibFuncAttrs() [1/2]

◆ inferNonMandatoryLibFuncAttrs() [2/2]

bool llvm::inferNonMandatoryLibFuncAttrs ( Module * M,
StringRef Name,
const TargetLibraryInfo & TLI )

Analyze the name and prototype of the given function and set any applicable attributes.

Note that this merely helps optimizations on an already existing function but does not consider mandatory attributes.

If the library function is unavailable, this doesn't modify it.

Returns true if any attributes were set and false otherwise.

Definition at line 306 of file BuildLibCalls.cpp.

References F, and inferNonMandatoryLibFuncAttrs().

Referenced by emitBinaryFloatFnCallHelper(), emitCalloc(), emitFPutC(), emitFPutS(), emitFWrite(), emitHotColdNew(), emitHotColdNewAligned(), emitHotColdNewAlignedNoThrow(), emitHotColdNewNoThrow(), emitHotColdSizeReturningNew(), emitHotColdSizeReturningNewAligned(), emitLibCall(), emitMalloc(), emitPutChar(), emitPutS(), inferAllPrototypeAttributes(), and inferNonMandatoryLibFuncAttrs().

◆ inFunctionScope()

bool llvm::inFunctionScope ( CompileUnit & U,
unsigned Idx )
static

Check if the DIE at Idx is in the scope of a function.

Definition at line 40 of file DWARFLinkerCompileUnit.cpp.

Referenced by llvm::dwarf_linker::classic::CompileUnit::markEverythingAsKept().

◆ initDebugCounterOptions()

void llvm::initDebugCounterOptions ( )

Definition at line 163 of file DebugCounter.cpp.

References llvm::DebugCounter::instance().

Referenced by initCommonOptions().

◆ initDebugOptions()

void llvm::initDebugOptions ( )

Definition at line 189 of file Debug.cpp.

References Debug, DebugBufferSize, and DebugOnly.

Referenced by initCommonOptions().

◆ initGraphWriterOptions()

void llvm::initGraphWriterOptions ( )

Definition at line 53 of file GraphWriter.cpp.

Referenced by initCommonOptions().

◆ initializeAArch64A53Fix835769Pass()

void llvm::initializeAArch64A53Fix835769Pass ( PassRegistry & )

◆ initializeAArch64A57FPLoadBalancingPass()

void llvm::initializeAArch64A57FPLoadBalancingPass ( PassRegistry & )

◆ initializeAArch64AdvSIMDScalarPass()

void llvm::initializeAArch64AdvSIMDScalarPass ( PassRegistry & )

◆ initializeAArch64Arm64ECCallLoweringPass()

void llvm::initializeAArch64Arm64ECCallLoweringPass ( PassRegistry & )

◆ initializeAArch64AsmPrinterPass()

void llvm::initializeAArch64AsmPrinterPass ( PassRegistry & )

◆ initializeAArch64BranchTargetsPass()

void llvm::initializeAArch64BranchTargetsPass ( PassRegistry & )

◆ initializeAArch64CFIFixupPass()

void llvm::initializeAArch64CFIFixupPass ( 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 & )

◆ initializeAArch64DAGToDAGISelLegacyPass()

void llvm::initializeAArch64DAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeAArch64DeadRegisterDefinitionsPass()

void llvm::initializeAArch64DeadRegisterDefinitionsPass ( PassRegistry & )

◆ initializeAArch64ExpandPseudoPass()

void llvm::initializeAArch64ExpandPseudoPass ( PassRegistry & )

◆ initializeAArch64LoadStoreOptPass()

void llvm::initializeAArch64LoadStoreOptPass ( PassRegistry & )

◆ initializeAArch64LowerHomogeneousPrologEpilogPass()

void llvm::initializeAArch64LowerHomogeneousPrologEpilogPass ( PassRegistry & )

◆ initializeAArch64MIPeepholeOptPass()

void llvm::initializeAArch64MIPeepholeOptPass ( PassRegistry & )

◆ initializeAArch64O0PreLegalizerCombinerPass()

void llvm::initializeAArch64O0PreLegalizerCombinerPass ( PassRegistry & )

◆ initializeAArch64PointerAuthPass()

void llvm::initializeAArch64PointerAuthPass ( PassRegistry & )

◆ initializeAArch64PostCoalescerPass()

void llvm::initializeAArch64PostCoalescerPass ( PassRegistry & )

◆ initializeAArch64PostLegalizerCombinerPass()

void llvm::initializeAArch64PostLegalizerCombinerPass ( PassRegistry & )

◆ initializeAArch64PostLegalizerLoweringPass()

void llvm::initializeAArch64PostLegalizerLoweringPass ( PassRegistry & )

◆ initializeAArch64PostSelectOptimizePass()

void llvm::initializeAArch64PostSelectOptimizePass ( PassRegistry & )

◆ initializeAArch64PreLegalizerCombinerPass()

void llvm::initializeAArch64PreLegalizerCombinerPass ( PassRegistry & )

◆ initializeAArch64PromoteConstantPass()

void llvm::initializeAArch64PromoteConstantPass ( PassRegistry & )

◆ initializeAArch64RedundantCopyEliminationPass()

void llvm::initializeAArch64RedundantCopyEliminationPass ( PassRegistry & )

◆ initializeAArch64SIMDInstrOptPass()

void llvm::initializeAArch64SIMDInstrOptPass ( PassRegistry & )

◆ initializeAArch64SLSHardeningPass()

void llvm::initializeAArch64SLSHardeningPass ( PassRegistry & )

◆ initializeAArch64SpeculationHardeningPass()

void llvm::initializeAArch64SpeculationHardeningPass ( PassRegistry & )

◆ initializeAArch64StackTaggingPass()

void llvm::initializeAArch64StackTaggingPass ( PassRegistry & )

◆ initializeAArch64StackTaggingPreRAPass()

void llvm::initializeAArch64StackTaggingPreRAPass ( PassRegistry & )

◆ initializeAArch64StorePairSuppressPass()

void llvm::initializeAArch64StorePairSuppressPass ( PassRegistry & )

◆ initializeAAResultsWrapperPassPass()

◆ 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 106 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 96 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 116 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 63 of file TargetSelect.h.

Referenced by InitializeAllTargets().

◆ InitializeAllTargetMCAs()

void llvm::InitializeAllTargetMCAs ( )
inline

InitializeAllTargetMCAs - The main program should call this function to initialize the target CustomBehaviour and InstrPostProcess classes.

Definition at line 177 of file TargetSelect.h.

◆ 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 86 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 73 of file TargetSelect.h.

References InitializeAllTargetInfos().

◆ initializeAlwaysInlinerLegacyPassPass()

LLVM_ABI void llvm::initializeAlwaysInlinerLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeIPO().

◆ initializeAMDGPUAAWrapperPassPass()

void llvm::initializeAMDGPUAAWrapperPassPass ( PassRegistry & )

◆ initializeAMDGPUAlwaysInlinePass()

void llvm::initializeAMDGPUAlwaysInlinePass ( PassRegistry & )

◆ initializeAMDGPUAnnotateUniformValuesLegacyPass()

void llvm::initializeAMDGPUAnnotateUniformValuesLegacyPass ( PassRegistry & )

◆ initializeAMDGPUArgumentUsageInfoPass()

void llvm::initializeAMDGPUArgumentUsageInfoPass ( PassRegistry & )

◆ initializeAMDGPUAsmPrinterPass()

void llvm::initializeAMDGPUAsmPrinterPass ( PassRegistry & )

◆ initializeAMDGPUAtomicOptimizerPass()

void llvm::initializeAMDGPUAtomicOptimizerPass ( PassRegistry & )

◆ initializeAMDGPUCodeGenPreparePass()

void llvm::initializeAMDGPUCodeGenPreparePass ( PassRegistry & )

◆ initializeAMDGPUCtorDtorLoweringLegacyPass()

void llvm::initializeAMDGPUCtorDtorLoweringLegacyPass ( PassRegistry & )

◆ initializeAMDGPUDAGToDAGISelLegacyPass()

void llvm::initializeAMDGPUDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeAMDGPUExportKernelRuntimeHandlesLegacyPass()

void llvm::initializeAMDGPUExportKernelRuntimeHandlesLegacyPass ( PassRegistry & )

◆ initializeAMDGPUExternalAAWrapperPass()

void llvm::initializeAMDGPUExternalAAWrapperPass ( PassRegistry & )

◆ initializeAMDGPUGlobalISelDivergenceLoweringPass()

void llvm::initializeAMDGPUGlobalISelDivergenceLoweringPass ( PassRegistry & )

◆ initializeAMDGPUImageIntrinsicOptimizerPass()

void llvm::initializeAMDGPUImageIntrinsicOptimizerPass ( PassRegistry & )

◆ initializeAMDGPUInsertDelayAluLegacyPass()

void llvm::initializeAMDGPUInsertDelayAluLegacyPass ( PassRegistry & )

◆ initializeAMDGPULateCodeGenPrepareLegacyPass()

void llvm::initializeAMDGPULateCodeGenPrepareLegacyPass ( PassRegistry & )

◆ initializeAMDGPULowerBufferFatPointersPass()

void llvm::initializeAMDGPULowerBufferFatPointersPass ( PassRegistry & )

◆ initializeAMDGPULowerIntrinsicsLegacyPass()

void llvm::initializeAMDGPULowerIntrinsicsLegacyPass ( PassRegistry & )

◆ initializeAMDGPULowerKernelArgumentsPass()

void llvm::initializeAMDGPULowerKernelArgumentsPass ( PassRegistry & )

◆ initializeAMDGPULowerKernelAttributesPass()

void llvm::initializeAMDGPULowerKernelAttributesPass ( PassRegistry & )

◆ initializeAMDGPULowerModuleLDSLegacyPass()

void llvm::initializeAMDGPULowerModuleLDSLegacyPass ( PassRegistry & )

◆ initializeAMDGPULowerVGPREncodingLegacyPass()

void llvm::initializeAMDGPULowerVGPREncodingLegacyPass ( PassRegistry & )

◆ initializeAMDGPUMarkLastScratchLoadLegacyPass()

void llvm::initializeAMDGPUMarkLastScratchLoadLegacyPass ( PassRegistry & )

◆ initializeAMDGPUPerfHintAnalysisLegacyPass()

void llvm::initializeAMDGPUPerfHintAnalysisLegacyPass ( PassRegistry & )

◆ initializeAMDGPUPostLegalizerCombinerPass()

void llvm::initializeAMDGPUPostLegalizerCombinerPass ( PassRegistry & )

◆ initializeAMDGPUPreLegalizerCombinerPass()

void llvm::initializeAMDGPUPreLegalizerCombinerPass ( PassRegistry & )

◆ initializeAMDGPUPreloadKernArgPrologLegacyPass()

void llvm::initializeAMDGPUPreloadKernArgPrologLegacyPass ( PassRegistry & )

◆ initializeAMDGPUPreloadKernelArgumentsLegacyPass()

void llvm::initializeAMDGPUPreloadKernelArgumentsLegacyPass ( PassRegistry & )

◆ initializeAMDGPUPrepareAGPRAllocLegacyPass()

void llvm::initializeAMDGPUPrepareAGPRAllocLegacyPass ( PassRegistry & )

◆ initializeAMDGPUPrintfRuntimeBindingPass()

void llvm::initializeAMDGPUPrintfRuntimeBindingPass ( PassRegistry & )

◆ initializeAMDGPUPromoteAllocaPass()

void llvm::initializeAMDGPUPromoteAllocaPass ( PassRegistry & )

◆ initializeAMDGPUPromoteKernelArgumentsPass()

void llvm::initializeAMDGPUPromoteKernelArgumentsPass ( PassRegistry & )

◆ initializeAMDGPURegBankCombinerPass()

void llvm::initializeAMDGPURegBankCombinerPass ( PassRegistry & )

◆ initializeAMDGPURegBankLegalizePass()

void llvm::initializeAMDGPURegBankLegalizePass ( PassRegistry & )

◆ initializeAMDGPURegBankSelectPass()

void llvm::initializeAMDGPURegBankSelectPass ( PassRegistry & )

◆ initializeAMDGPURemoveIncompatibleFunctionsLegacyPass()

void llvm::initializeAMDGPURemoveIncompatibleFunctionsLegacyPass ( PassRegistry & )

◆ initializeAMDGPUReserveWWMRegsLegacyPass()

void llvm::initializeAMDGPUReserveWWMRegsLegacyPass ( PassRegistry & )

◆ initializeAMDGPUResourceUsageAnalysisWrapperPassPass()

void llvm::initializeAMDGPUResourceUsageAnalysisWrapperPassPass ( PassRegistry & )

◆ initializeAMDGPURewriteAGPRCopyMFMALegacyPass()

void llvm::initializeAMDGPURewriteAGPRCopyMFMALegacyPass ( PassRegistry & )

◆ initializeAMDGPURewriteOutArgumentsPass()

void llvm::initializeAMDGPURewriteOutArgumentsPass ( PassRegistry & )

◆ initializeAMDGPURewriteUndefForPHILegacyPass()

void llvm::initializeAMDGPURewriteUndefForPHILegacyPass ( PassRegistry & )

◆ initializeAMDGPUSetWavePriorityLegacyPass()

void llvm::initializeAMDGPUSetWavePriorityLegacyPass ( PassRegistry & )

◆ initializeAMDGPUSwLowerLDSLegacyPass()

void llvm::initializeAMDGPUSwLowerLDSLegacyPass ( PassRegistry & )

◆ initializeAMDGPUUnifyDivergentExitNodesPass()

void llvm::initializeAMDGPUUnifyDivergentExitNodesPass ( PassRegistry & )

◆ initializeAMDGPUWaitSGPRHazardsLegacyPass()

void llvm::initializeAMDGPUWaitSGPRHazardsLegacyPass ( 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 20 of file Analysis.cpp.

References initializeAAResultsWrapperPassPass(), initializeAssumptionCacheTrackerPass(), initializeBasicAAWrapperPassPass(), initializeBlockFrequencyInfoWrapperPassPass(), initializeBranchProbabilityInfoWrapperPassPass(), initializeCallGraphDOTPrinterPass(), initializeCallGraphViewerPass(), initializeCallGraphWrapperPassPass(), initializeCycleInfoWrapperPassPass(), initializeDependenceAnalysisWrapperPassPass(), initializeDominanceFrontierWrapperPassPass(), initializeDomOnlyPrinterWrapperPassPass(), initializeDomOnlyViewerWrapperPassPass(), initializeDomPrinterWrapperPassPass(), initializeDomViewerWrapperPassPass(), initializeDXILMetadataAnalysisWrapperPassPass(), initializeDXILResourceBindingWrapperPassPass(), initializeDXILResourceTypeWrapperPassPass(), initializeDXILResourceWrapperPassPass(), initializeExternalAAWrapperPassPass(), initializeGlobalsAAWrapperPassPass(), initializeImmutableModuleSummaryIndexWrapperPassPass(), initializeIRSimilarityIdentifierWrapperPassPass(), initializeIVUsersWrapperPassPass(), initializeLazyBFIPassPass(), initializeLazyBlockFrequencyInfoPassPass(), initializeLazyBranchProbabilityInfoPassPass(), initializeLazyValueInfoWrapperPassPass(), initializeLCSSAVerificationPassPass(), initializeLoopInfoWrapperPassPass(), initializeMemoryDependenceWrapperPassPass(), initializeMemorySSAWrapperPassPass(), initializeModuleSummaryIndexWrapperPassPass(), initializeOptimizationRemarkEmitterWrapperPassPass(), initializePhiValuesWrapperPassPass(), initializePostDominatorTreeWrapperPassPass(), initializePostDomOnlyPrinterWrapperPassPass(), initializePostDomOnlyViewerWrapperPassPass(), initializePostDomPrinterWrapperPassPass(), initializePostDomViewerWrapperPassPass(), initializeProfileSummaryInfoWrapperPassPass(), initializeRegionInfoPassPass(), initializeRegionOnlyPrinterPass(), initializeRegionOnlyViewerPass(), initializeRegionPrinterPass(), initializeRegionViewerPass(), initializeScalarEvolutionWrapperPassPass(), initializeSCEVAAWrapperPassPass(), initializeScopedNoAliasAAWrapperPassPass(), initializeStackSafetyGlobalInfoWrapperPassPass(), initializeStackSafetyInfoWrapperPassPass(), initializeStaticDataProfileInfoWrapperPassPass(), initializeTargetLibraryInfoWrapperPassPass(), initializeTargetTransformInfoWrapperPassPass(), initializeTypeBasedAAWrapperPassPass(), and initializeUniformityInfoWrapperPassPass().

◆ initializeARCAsmPrinterPass()

void llvm::initializeARCAsmPrinterPass ( PassRegistry & )

Referenced by LLVMInitializeARCTarget().

◆ initializeARCBranchFinalizePass()

void llvm::initializeARCBranchFinalizePass ( PassRegistry & Registry)

◆ initializeARCDAGToDAGISelLegacyPass()

void llvm::initializeARCDAGToDAGISelLegacyPass ( PassRegistry & )

Referenced by LLVMInitializeARCTarget().

◆ initializeARCOptAddrModePass()

void llvm::initializeARCOptAddrModePass ( PassRegistry & )

◆ initializeARMAsmPrinterPass()

void llvm::initializeARMAsmPrinterPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMBlockPlacementPass()

void llvm::initializeARMBlockPlacementPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMBranchTargetsPass()

void llvm::initializeARMBranchTargetsPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMConstantIslandsPass()

void llvm::initializeARMConstantIslandsPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMDAGToDAGISelLegacyPass()

void llvm::initializeARMDAGToDAGISelLegacyPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMExecutionDomainFixPass()

void llvm::initializeARMExecutionDomainFixPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMExpandPseudoPass()

void llvm::initializeARMExpandPseudoPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMFixCortexA57AES1742098Pass()

void llvm::initializeARMFixCortexA57AES1742098Pass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMLoadStoreOptPass()

void llvm::initializeARMLoadStoreOptPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMLowOverheadLoopsPass()

void llvm::initializeARMLowOverheadLoopsPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMParallelDSPPass()

void llvm::initializeARMParallelDSPPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMPreAllocLoadStoreOptPass()

void llvm::initializeARMPreAllocLoadStoreOptPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeARMSLSHardeningPass()

void llvm::initializeARMSLSHardeningPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeAssignmentTrackingAnalysisPass()

LLVM_ABI void llvm::initializeAssignmentTrackingAnalysisPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeAssumptionCacheTrackerPass()

LLVM_ABI void llvm::initializeAssumptionCacheTrackerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeAtomicExpandLegacyPass()

LLVM_ABI void llvm::initializeAtomicExpandLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeAVRAsmPrinterPass()

void llvm::initializeAVRAsmPrinterPass ( PassRegistry & )

Referenced by LLVMInitializeAVRTarget().

◆ initializeAVRDAGToDAGISelLegacyPass()

void llvm::initializeAVRDAGToDAGISelLegacyPass ( PassRegistry & )

Referenced by LLVMInitializeAVRTarget().

◆ initializeAVRExpandPseudoPass()

void llvm::initializeAVRExpandPseudoPass ( PassRegistry & )

Referenced by LLVMInitializeAVRTarget().

◆ initializeAVRShiftExpandPass()

void llvm::initializeAVRShiftExpandPass ( PassRegistry & )

Referenced by LLVMInitializeAVRTarget().

◆ initializeBarrierNoopPass()

LLVM_ABI void llvm::initializeBarrierNoopPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeIPO().

◆ initializeBasicAAWrapperPassPass()

LLVM_ABI void llvm::initializeBasicAAWrapperPassPass ( PassRegistry & )

◆ initializeBasicBlockPathCloningPass()

LLVM_ABI void llvm::initializeBasicBlockPathCloningPass ( PassRegistry & )

◆ initializeBasicBlockSectionsPass()

LLVM_ABI void llvm::initializeBasicBlockSectionsPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeBasicBlockSectionsProfileReaderWrapperPassPass()

◆ initializeBlockFrequencyInfoWrapperPassPass()

LLVM_ABI void llvm::initializeBlockFrequencyInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeBPFAsmPrinterPass()

void llvm::initializeBPFAsmPrinterPass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFCheckAndAdjustIRPass()

void llvm::initializeBPFCheckAndAdjustIRPass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFDAGToDAGISelLegacyPass()

void llvm::initializeBPFDAGToDAGISelLegacyPass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFMIPeepholePass()

void llvm::initializeBPFMIPeepholePass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFMIPreEmitCheckingPass()

void llvm::initializeBPFMIPreEmitCheckingPass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFMIPreEmitPeepholePass()

void llvm::initializeBPFMIPreEmitPeepholePass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBPFMISimplifyPatchablePass()

void llvm::initializeBPFMISimplifyPatchablePass ( PassRegistry & )

Referenced by LLVMInitializeBPFTarget().

◆ initializeBranchFolderLegacyPass()

LLVM_ABI void llvm::initializeBranchFolderLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeBranchProbabilityInfoWrapperPassPass()

LLVM_ABI void llvm::initializeBranchProbabilityInfoWrapperPassPass ( PassRegistry & )

◆ initializeBranchRelaxationLegacyPass()

LLVM_ABI void llvm::initializeBranchRelaxationLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeBreakCriticalEdgesPass()

LLVM_ABI void llvm::initializeBreakCriticalEdgesPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeBreakFalseDepsPass()

LLVM_ABI void llvm::initializeBreakFalseDepsPass ( PassRegistry & )

◆ initializeCallBrPreparePass()

LLVM_ABI void llvm::initializeCallBrPreparePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeCallGraphDOTPrinterPass()

LLVM_ABI void llvm::initializeCallGraphDOTPrinterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeCallGraphViewerPass()

LLVM_ABI void llvm::initializeCallGraphViewerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeCallGraphWrapperPassPass()

LLVM_ABI void llvm::initializeCallGraphWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeCanonicalizeFreezeInLoopsPass()

LLVM_ABI void llvm::initializeCanonicalizeFreezeInLoopsPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeCFGSimplifyPassPass()

LLVM_ABI void llvm::initializeCFGSimplifyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeCFGuardLongjmpPass()

LLVM_ABI void llvm::initializeCFGuardLongjmpPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeCFGuardPass()

LLVM_ABI void llvm::initializeCFGuardPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeCFIFixupPass()

LLVM_ABI void llvm::initializeCFIFixupPass ( PassRegistry & )

References LLVM_ABI.

Referenced by llvm::CFIFixup::CFIFixup(), and initializeCodeGen().

◆ initializeCFIInstrInserterPass()

LLVM_ABI void llvm::initializeCFIInstrInserterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeCheckDebugMachineModulePass()

LLVM_ABI void llvm::initializeCheckDebugMachineModulePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ 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 20 of file CodeGen.cpp.

References initializeAssignmentTrackingAnalysisPass(), initializeAtomicExpandLegacyPass(), initializeBasicBlockPathCloningPass(), initializeBasicBlockSectionsPass(), initializeBranchFolderLegacyPass(), initializeBranchRelaxationLegacyPass(), initializeBreakFalseDepsPass(), initializeCallBrPreparePass(), initializeCFGuardLongjmpPass(), initializeCFIFixupPass(), initializeCFIInstrInserterPass(), initializeCheckDebugMachineModulePass(), initializeCodeGenPrepareLegacyPassPass(), initializeDeadMachineInstructionElimPass(), initializeDebugifyMachineModulePass(), initializeDetectDeadLanesLegacyPass(), initializeDwarfEHPrepareLegacyPassPass(), initializeEarlyIfConverterLegacyPass(), initializeEarlyIfPredicatorPass(), initializeEarlyMachineLICMPass(), initializeEarlyTailDuplicateLegacyPass(), initializeExpandFpLegacyPassPass(), initializeExpandLargeDivRemLegacyPassPass(), initializeExpandMemCmpLegacyPassPass(), initializeExpandPostRALegacyPass(), initializeFEntryInserterLegacyPass(), initializeFinalizeISelPass(), initializeFixupStatepointCallerSavedLegacyPass(), initializeFuncletLayoutPass(), initializeGCMachineCodeAnalysisPass(), initializeGCModuleInfoPass(), initializeHardwareLoopsLegacyPass(), initializeIfConverterPass(), initializeImplicitNullChecksPass(), initializeIndirectBrExpandLegacyPassPass(), initializeInitUndefLegacyPass(), initializeInterleavedAccessPass(), initializeInterleavedLoadCombinePass(), initializeJMCInstrumenterPass(), initializeLiveDebugValuesLegacyPass(), initializeLiveDebugVariablesWrapperLegacyPass(), initializeLiveIntervalsWrapperPassPass(), initializeLiveRangeShrinkPass(), initializeLiveStacksWrapperLegacyPass(), initializeLiveVariablesWrapperPassPass(), initializeLocalStackSlotPassPass(), initializeLowerGlobalDtorsLegacyPassPass(), initializeLowerIntrinsicsPass(), initializeMachineBlockFrequencyInfoWrapperPassPass(), initializeMachineBlockPlacementLegacyPass(), initializeMachineBlockPlacementStatsLegacyPass(), initializeMachineCFGPrinterPass(), initializeMachineCombinerPass(), initializeMachineCopyPropagationLegacyPass(), initializeMachineCSELegacyPass(), initializeMachineCycleInfoPrinterLegacyPass(), initializeMachineCycleInfoWrapperPassPass(), initializeMachineDominatorTreeWrapperPassPass(), initializeMachineFunctionPrinterPassPass(), initializeMachineFunctionSplitterPass(), initializeMachineLateInstrsCleanupLegacyPass(), initializeMachineLICMPass(), initializeMachineLoopInfoWrapperPassPass(), initializeMachineModuleInfoWrapperPassPass(), initializeMachineOptimizationRemarkEmitterPassPass(), initializeMachineOutlinerPass(), initializeMachinePipelinerPass(), initializeMachinePostDominatorTreeWrapperPassPass(), initializeMachineRegionInfoPassPass(), initializeMachineSanitizerBinaryMetadataLegacyPass(), initializeMachineSchedulerLegacyPass(), initializeMachineSinkingLegacyPass(), initializeMachineUniformityAnalysisPassPass(), initializeMachineUniformityInfoPrinterPassPass(), initializeMachineVerifierLegacyPassPass(), initializeMIRAddFSDiscriminatorsPass(), initializeMIRCanonicalizerPass(), initializeMIRNamerPass(), initializeMIRProfileLoaderPassPass(), initializeModuloScheduleTestPass(), initializeObjCARCContractLegacyPassPass(), initializeOptimizePHIsLegacyPass(), initializePatchableFunctionLegacyPass(), initializePeepholeOptimizerLegacyPass(), initializePEILegacyPass(), initializePHIEliminationPass(), initializePostMachineSchedulerLegacyPass(), initializePostRAHazardRecognizerLegacyPass(), initializePostRAMachineSinkingLegacyPass(), initializePostRASchedulerLegacyPass(), initializePreISelIntrinsicLoweringLegacyPassPass(), initializeProcessImplicitDefsLegacyPass(), initializeRABasicPass(), initializeRAGreedyLegacyPass(), initializeRegAllocFastPass(), initializeRegisterCoalescerLegacyPass(), initializeRegUsageInfoCollectorLegacyPass(), initializeRegUsageInfoPropagationLegacyPass(), initializeRemoveLoadsIntoFakeUsesLegacyPass(), initializeRemoveRedundantDebugValuesLegacyPass(), initializeRenameIndependentSubregsLegacyPass(), initializeSafeStackLegacyPassPass(), initializeSelectOptimizePass(), initializeShadowStackGCLoweringPass(), initializeShrinkWrapLegacyPass(), initializeSjLjEHPreparePass(), initializeSlotIndexesWrapperPassPass(), initializeStackColoringLegacyPass(), initializeStackFrameLayoutAnalysisLegacyPass(), initializeStackMapLivenessPass(), initializeStackProtectorPass(), initializeStackSlotColoringLegacyPass(), initializeStaticDataAnnotatorPass(), initializeStaticDataSplitterPass(), initializeStripDebugMachineModulePass(), initializeTailDuplicateLegacyPass(), initializeTargetPassConfigPass(), initializeTwoAddressInstructionLegacyPassPass(), initializeTypePromotionLegacyPass(), initializeUnpackMachineBundlesPass(), initializeUnreachableBlockElimLegacyPassPass(), initializeUnreachableMachineBlockElimLegacyPass(), initializeVirtRegMapWrapperLegacyPass(), initializeVirtRegRewriterLegacyPass(), initializeWasmEHPreparePass(), initializeWinEHPreparePass(), and initializeXRayInstrumentationLegacyPass().

Referenced by llvm::TargetPassConfig::TargetPassConfig().

◆ initializeCodeGenPrepareLegacyPassPass()

LLVM_ABI void llvm::initializeCodeGenPrepareLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeComplexDeinterleavingLegacyPassPass()

LLVM_ABI void llvm::initializeComplexDeinterleavingLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeCompressEVEXPassPass()

void llvm::initializeCompressEVEXPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeConstantHoistingLegacyPassPass()

LLVM_ABI void llvm::initializeConstantHoistingLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeCore()

void llvm::initializeCore ( PassRegistry & Registry)

◆ initializeCSKYConstantIslandsPass()

void llvm::initializeCSKYConstantIslandsPass ( PassRegistry & )

◆ initializeCSKYDAGToDAGISelLegacyPass()

void llvm::initializeCSKYDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeCycleInfoWrapperPassPass()

LLVM_ABI void llvm::initializeCycleInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDAEPass()

LLVM_ABI void llvm::initializeDAEPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeIPO().

◆ initializeDAHPass()

LLVM_ABI void llvm::initializeDAHPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeIPO().

◆ initializeDCELegacyPassPass()

LLVM_ABI void llvm::initializeDCELegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeDeadMachineInstructionElimPass()

LLVM_ABI void llvm::initializeDeadMachineInstructionElimPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeDebugifyMachineModulePass()

LLVM_ABI void llvm::initializeDebugifyMachineModulePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeDependenceAnalysisWrapperPassPass()

LLVM_ABI void llvm::initializeDependenceAnalysisWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDetectDeadLanesLegacyPass()

LLVM_ABI void llvm::initializeDetectDeadLanesLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeDominanceFrontierWrapperPassPass()

LLVM_ABI void llvm::initializeDominanceFrontierWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDominatorTreeWrapperPassPass()

LLVM_ABI void llvm::initializeDominatorTreeWrapperPassPass ( PassRegistry & )

◆ initializeDomOnlyPrinterWrapperPassPass()

LLVM_ABI void llvm::initializeDomOnlyPrinterWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDomOnlyViewerWrapperPassPass()

LLVM_ABI void llvm::initializeDomOnlyViewerWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDomPrinterWrapperPassPass()

LLVM_ABI void llvm::initializeDomPrinterWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDomViewerWrapperPassPass()

LLVM_ABI void llvm::initializeDomViewerWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDSELegacyPassPass()

LLVM_ABI void llvm::initializeDSELegacyPassPass ( PassRegistry & )

◆ initializeDummyCGSCCPassPass()

LLVM_ABI void llvm::initializeDummyCGSCCPassPass ( PassRegistry & )

◆ initializeDwarfEHPrepareLegacyPassPass()

LLVM_ABI void llvm::initializeDwarfEHPrepareLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeDXContainerGlobalsPass()

void llvm::initializeDXContainerGlobalsPass ( PassRegistry & )

Initializer for DXContainerGlobals pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILCBufferAccessLegacyPass()

void llvm::initializeDXILCBufferAccessLegacyPass ( PassRegistry & )

Initializer for DXIL CBuffer Access Pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILDataScalarizationLegacyPass()

void llvm::initializeDXILDataScalarizationLegacyPass ( PassRegistry & )

Initializer for DXIL Data Scalarization Pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILFinalizeLinkageLegacyPass()

void llvm::initializeDXILFinalizeLinkageLegacyPass ( PassRegistry & )

Initializer for DXILFinalizeLinkage pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILFlattenArraysLegacyPass()

void llvm::initializeDXILFlattenArraysLegacyPass ( PassRegistry & )

Initializer for DXIL Array Flatten Pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILForwardHandleAccessesLegacyPass()

void llvm::initializeDXILForwardHandleAccessesLegacyPass ( PassRegistry & )

Initializer for DXIL Forward Handle Accesses Pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILIntrinsicExpansionLegacyPass()

void llvm::initializeDXILIntrinsicExpansionLegacyPass ( PassRegistry & )

Initializer for DXIL Intrinsic Expansion.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILLegalizeLegacyPass()

void llvm::initializeDXILLegalizeLegacyPass ( PassRegistry & )

Initializer DXIL legalizationPass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILMetadataAnalysisWrapperPassPass()

LLVM_ABI void llvm::initializeDXILMetadataAnalysisWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDXILMetadataAnalysisWrapperPrinterPass()

LLVM_ABI void llvm::initializeDXILMetadataAnalysisWrapperPrinterPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeDXILOpLoweringLegacyPass()

void llvm::initializeDXILOpLoweringLegacyPass ( PassRegistry & )

Initializer for DXILOpLowering.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILPostOptimizationValidationLegacyPass()

void llvm::initializeDXILPostOptimizationValidationLegacyPass ( PassRegistry & )

◆ initializeDXILPrepareModulePass()

void llvm::initializeDXILPrepareModulePass ( PassRegistry & )

Initializer for DXIL-prepare.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILPrettyPrinterLegacyPass()

void llvm::initializeDXILPrettyPrinterLegacyPass ( PassRegistry & )

Initializer for DXILPrettyPrinter.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILResourceAccessLegacyPass()

void llvm::initializeDXILResourceAccessLegacyPass ( PassRegistry & )

Initializer for DXILResourceAccess.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILResourceBindingWrapperPassPass()

LLVM_ABI void llvm::initializeDXILResourceBindingWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDXILResourceImplicitBindingLegacyPass()

void llvm::initializeDXILResourceImplicitBindingLegacyPass ( PassRegistry & )

Initializer for DXILResourceImplicitBindingLegacyPass.

References LLVM_ABI.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeDXILResourceTypeWrapperPassPass()

LLVM_ABI void llvm::initializeDXILResourceTypeWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDXILResourceWrapperPassPass()

LLVM_ABI void llvm::initializeDXILResourceWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeDXILTranslateMetadataLegacyPass()

void llvm::initializeDXILTranslateMetadataLegacyPass ( PassRegistry & )

Initializer for DXILTranslateMetadata.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeEarlyCSELegacyPassPass()

LLVM_ABI void llvm::initializeEarlyCSELegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeEarlyCSEMemSSALegacyPassPass()

LLVM_ABI void llvm::initializeEarlyCSEMemSSALegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeEarlyIfConverterLegacyPass()

LLVM_ABI void llvm::initializeEarlyIfConverterLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeEarlyIfPredicatorPass()

LLVM_ABI void llvm::initializeEarlyIfPredicatorPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeEarlyMachineLICMPass()

LLVM_ABI void llvm::initializeEarlyMachineLICMPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeEarlyTailDuplicateLegacyPass()

LLVM_ABI void llvm::initializeEarlyTailDuplicateLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeEdgeBundlesWrapperLegacyPass()

LLVM_ABI void llvm::initializeEdgeBundlesWrapperLegacyPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeEHContGuardTargetsPass()

LLVM_ABI void llvm::initializeEHContGuardTargetsPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeEmbedDXILPassPass()

void llvm::initializeEmbedDXILPassPass ( PassRegistry & )

Initializer for dxil embedder pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeErrataWorkaroundPass()

void llvm::initializeErrataWorkaroundPass ( PassRegistry & )

◆ initializeExpandFpLegacyPassPass()

LLVM_ABI void llvm::initializeExpandFpLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeExpandLargeDivRemLegacyPassPass()

LLVM_ABI void llvm::initializeExpandLargeDivRemLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeExpandMemCmpLegacyPassPass()

LLVM_ABI void llvm::initializeExpandMemCmpLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeExpandPostRALegacyPass()

LLVM_ABI void llvm::initializeExpandPostRALegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeExpandReductionsPass()

LLVM_ABI void llvm::initializeExpandReductionsPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeExpandVariadicsPass()

LLVM_ABI void llvm::initializeExpandVariadicsPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeExternalAAWrapperPassPass()

LLVM_ABI void llvm::initializeExternalAAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeFalkorHWPFFixPass()

void llvm::initializeFalkorHWPFFixPass ( PassRegistry & )

◆ initializeFalkorMarkStridedAccessesLegacyPass()

void llvm::initializeFalkorMarkStridedAccessesLegacyPass ( PassRegistry & )

◆ initializeFEntryInserterLegacyPass()

LLVM_ABI void llvm::initializeFEntryInserterLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeFinalizeISelPass()

LLVM_ABI void llvm::initializeFinalizeISelPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeFixFunctionBitcastsPass()

void llvm::initializeFixFunctionBitcastsPass ( PassRegistry & )

◆ initializeFixIrreduciblePass()

LLVM_ABI void llvm::initializeFixIrreduciblePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeFixupBWInstPassPass()

void llvm::initializeFixupBWInstPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeFixupLEAPassPass()

void llvm::initializeFixupLEAPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeFixupStatepointCallerSavedLegacyPass()

LLVM_ABI void llvm::initializeFixupStatepointCallerSavedLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeFlattenCFGLegacyPassPass()

LLVM_ABI void llvm::initializeFlattenCFGLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeFPSPass()

void llvm::initializeFPSPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeFuncletLayoutPass()

LLVM_ABI void llvm::initializeFuncletLayoutPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeGCEmptyBasicBlocksPass()

LLVM_ABI void llvm::initializeGCEmptyBasicBlocksPass ( PassRegistry & )

◆ initializeGCMachineCodeAnalysisPass()

LLVM_ABI void llvm::initializeGCMachineCodeAnalysisPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeGCModuleInfoPass()

◆ initializeGCNCreateVOPDLegacyPass()

void llvm::initializeGCNCreateVOPDLegacyPass ( PassRegistry & )

References GCNCreateVOPDID.

Referenced by LLVMInitializeAMDGPUTarget().

◆ initializeGCNDPPCombineLegacyPass()

void llvm::initializeGCNDPPCombineLegacyPass ( PassRegistry & )

◆ initializeGCNNSAReassignLegacyPass()

void llvm::initializeGCNNSAReassignLegacyPass ( PassRegistry & )

References GCNNSAReassignID.

Referenced by LLVMInitializeAMDGPUTarget().

◆ initializeGCNPreRALongBranchRegLegacyPass()

void llvm::initializeGCNPreRALongBranchRegLegacyPass ( PassRegistry & )

◆ initializeGCNPreRAOptimizationsLegacyPass()

void llvm::initializeGCNPreRAOptimizationsLegacyPass ( PassRegistry & )

◆ initializeGCNRegPressurePrinterPass()

void llvm::initializeGCNRegPressurePrinterPass ( PassRegistry & )

◆ initializeGCNRewritePartialRegUsesLegacyPass()

void llvm::initializeGCNRewritePartialRegUsesLegacyPass ( llvm::PassRegistry & )

◆ initializeGenericToNVVMLegacyPassPass()

void llvm::initializeGenericToNVVMLegacyPassPass ( PassRegistry & )

◆ initializeGISelCSEAnalysisWrapperPassPass()

LLVM_ABI void llvm::initializeGISelCSEAnalysisWrapperPassPass ( PassRegistry & )

◆ initializeGISelValueTrackingAnalysisLegacyPass()

LLVM_ABI void llvm::initializeGISelValueTrackingAnalysisLegacyPass ( PassRegistry & )

◆ initializeGlobalDCELegacyPassPass()

LLVM_ABI void llvm::initializeGlobalDCELegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeGlobalISel()

◆ initializeGlobalMergeFuncPassWrapperPass()

LLVM_ABI void llvm::initializeGlobalMergeFuncPassWrapperPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeGlobalMergePass()

LLVM_ABI void llvm::initializeGlobalMergePass ( PassRegistry & )

References LLVM_ABI.

◆ initializeGlobalsAAWrapperPassPass()

LLVM_ABI void llvm::initializeGlobalsAAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeGVNLegacyPassPass()

LLVM_ABI void llvm::initializeGVNLegacyPassPass ( PassRegistry & )

◆ initializeHardwareLoopsLegacyPass()

LLVM_ABI void llvm::initializeHardwareLoopsLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeHexagonAsmPrinterPass()

void llvm::initializeHexagonAsmPrinterPass ( PassRegistry & )

◆ initializeHexagonBitSimplifyPass()

void llvm::initializeHexagonBitSimplifyPass ( PassRegistry & )

◆ 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 & )

◆ initializeHexagonCopyHoistingPass()

void llvm::initializeHexagonCopyHoistingPass ( PassRegistry & )

◆ initializeHexagonCopyToCombinePass()

void llvm::initializeHexagonCopyToCombinePass ( PassRegistry & )

◆ initializeHexagonDAGToDAGISelLegacyPass()

void llvm::initializeHexagonDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeHexagonEarlyIfConversionPass()

void llvm::initializeHexagonEarlyIfConversionPass ( PassRegistry & )

◆ initializeHexagonExpandCondsetsPass()

void llvm::initializeHexagonExpandCondsetsPass ( PassRegistry & )

◆ initializeHexagonFixupHwLoopsPass()

void llvm::initializeHexagonFixupHwLoopsPass ( PassRegistry & )

◆ initializeHexagonGenExtractPass()

void llvm::initializeHexagonGenExtractPass ( PassRegistry & )

◆ initializeHexagonGenInsertPass()

void llvm::initializeHexagonGenInsertPass ( PassRegistry & )

◆ initializeHexagonGenMemAbsolutePass()

void llvm::initializeHexagonGenMemAbsolutePass ( PassRegistry & )

◆ initializeHexagonGenMuxPass()

void llvm::initializeHexagonGenMuxPass ( PassRegistry & )

◆ initializeHexagonGenPredicatePass()

void llvm::initializeHexagonGenPredicatePass ( PassRegistry & )

◆ initializeHexagonHardwareLoopsPass()

void llvm::initializeHexagonHardwareLoopsPass ( PassRegistry & )

◆ initializeHexagonLoadWideningPass()

void llvm::initializeHexagonLoadWideningPass ( PassRegistry & )

◆ initializeHexagonLoopAlignPass()

void llvm::initializeHexagonLoopAlignPass ( PassRegistry & )

◆ initializeHexagonLoopIdiomRecognizeLegacyPassPass()

void llvm::initializeHexagonLoopIdiomRecognizeLegacyPassPass ( PassRegistry & )

◆ initializeHexagonLoopReschedulingPass()

void llvm::initializeHexagonLoopReschedulingPass ( PassRegistry & )

◆ initializeHexagonMaskPass()

void llvm::initializeHexagonMaskPass ( PassRegistry & )

◆ initializeHexagonMergeActivateWeightPass()

void llvm::initializeHexagonMergeActivateWeightPass ( 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 & )

◆ initializeHexagonTfrCleanupPass()

void llvm::initializeHexagonTfrCleanupPass ( PassRegistry & )

◆ initializeHexagonVectorCombineLegacyPass()

void llvm::initializeHexagonVectorCombineLegacyPass ( PassRegistry & )

◆ initializeHexagonVectorLoopCarriedReuseLegacyPassPass()

void llvm::initializeHexagonVectorLoopCarriedReuseLegacyPassPass ( PassRegistry & )

◆ initializeHexagonVectorPrintPass()

void llvm::initializeHexagonVectorPrintPass ( PassRegistry & )

◆ initializeHexagonVExtractPass()

void llvm::initializeHexagonVExtractPass ( PassRegistry & )

◆ initializeIfConverterPass()

LLVM_ABI void llvm::initializeIfConverterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeImmutableModuleSummaryIndexWrapperPassPass()

LLVM_ABI void llvm::initializeImmutableModuleSummaryIndexWrapperPassPass ( PassRegistry & )

Referenced by initializeAnalysis().

◆ initializeImplicitNullChecksPass()

LLVM_ABI void llvm::initializeImplicitNullChecksPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeIndirectBrExpandLegacyPassPass()

LLVM_ABI void llvm::initializeIndirectBrExpandLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeInferAddressSpacesPass()

LLVM_ABI void llvm::initializeInferAddressSpacesPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeInitUndefLegacyPass()

LLVM_ABI void llvm::initializeInitUndefLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeInstCombine()

Combine redundant false void llvm::initializeInstCombine ( PassRegistry & Registry)

Initialize all passes linked into the InstCombine library.

Definition at line 6083 of file InstructionCombining.cpp.

References initializeInstCombine(), and initializeInstructionCombiningPassPass().

Referenced by initializeInstCombine().

◆ initializeInstructionCombiningPassPass()

LLVM_ABI void llvm::initializeInstructionCombiningPassPass ( PassRegistry & )

◆ initializeInstructionSelectPass()

LLVM_ABI void llvm::initializeInstructionSelectPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeGlobalISel().

◆ initializeInstSimplifyLegacyPassPass()

LLVM_ABI void llvm::initializeInstSimplifyLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeInterleavedAccessPass()

LLVM_ABI void llvm::initializeInterleavedAccessPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeInterleavedLoadCombinePass()

LLVM_ABI void llvm::initializeInterleavedLoadCombinePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeIPO()

void llvm::initializeIPO ( PassRegistry & Registry)

◆ initializeIRSimilarityIdentifierWrapperPassPass()

LLVM_ABI void llvm::initializeIRSimilarityIdentifierWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeIRTranslatorPass()

LLVM_ABI void llvm::initializeIRTranslatorPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeGlobalISel().

◆ initializeIVUsersWrapperPassPass()

LLVM_ABI void llvm::initializeIVUsersWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeJMCInstrumenterPass()

LLVM_ABI void llvm::initializeJMCInstrumenterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeKCFIPass()

LLVM_ABI void llvm::initializeKCFIPass ( PassRegistry & )

◆ initializeLanaiAsmPrinterPass()

void llvm::initializeLanaiAsmPrinterPass ( PassRegistry & )

◆ initializeLanaiDAGToDAGISelLegacyPass()

void llvm::initializeLanaiDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeLanaiMemAluCombinerPass()

void llvm::initializeLanaiMemAluCombinerPass ( PassRegistry & )

◆ initializeLazyBFIPassPass()

void llvm::initializeLazyBFIPassPass ( PassRegistry & Registry)

◆ initializeLazyBlockFrequencyInfoPassPass()

LLVM_ABI void llvm::initializeLazyBlockFrequencyInfoPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeLazyBPIPassPass()

void llvm::initializeLazyBPIPassPass ( PassRegistry & Registry)

Helper for client passes to initialize dependent passes for LBPI.

Definition at line 71 of file LazyBranchProbabilityInfo.cpp.

References INITIALIZE_PASS_DEPENDENCY.

Referenced by initializeLazyBFIPassPass().

◆ initializeLazyBranchProbabilityInfoPassPass()

LLVM_ABI void llvm::initializeLazyBranchProbabilityInfoPassPass ( PassRegistry & )

◆ initializeLazyMachineBlockFrequencyInfoPassPass()

LLVM_ABI void llvm::initializeLazyMachineBlockFrequencyInfoPassPass ( PassRegistry & )

◆ initializeLazyValueInfoWrapperPassPass()

LLVM_ABI void llvm::initializeLazyValueInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeLCSSAVerificationPassPass()

LLVM_ABI void llvm::initializeLCSSAVerificationPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeLCSSAWrapperPassPass()

LLVM_ABI void llvm::initializeLCSSAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeLDTLSCleanupPass()

void llvm::initializeLDTLSCleanupPass ( PassRegistry & )

◆ initializeLegacyLICMPassPass()

LLVM_ABI void llvm::initializeLegacyLICMPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeLegalizerPass()

LLVM_ABI void llvm::initializeLegalizerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeGlobalISel().

◆ initializeLiveDebugValuesLegacyPass()

LLVM_ABI void llvm::initializeLiveDebugValuesLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by INITIALIZE_PASS(), and initializeCodeGen().

◆ initializeLiveDebugVariablesWrapperLegacyPass()

LLVM_ABI void llvm::initializeLiveDebugVariablesWrapperLegacyPass ( PassRegistry & )

◆ initializeLiveIntervalsWrapperPassPass()

LLVM_ABI void llvm::initializeLiveIntervalsWrapperPassPass ( PassRegistry & )

◆ initializeLiveRangeShrinkPass()

LLVM_ABI void llvm::initializeLiveRangeShrinkPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeLiveRegMatrixWrapperLegacyPass()

LLVM_ABI void llvm::initializeLiveRegMatrixWrapperLegacyPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeLiveStacksWrapperLegacyPass()

LLVM_ABI void llvm::initializeLiveStacksWrapperLegacyPass ( PassRegistry & )

◆ initializeLiveVariablesWrapperPassPass()

LLVM_ABI void llvm::initializeLiveVariablesWrapperPassPass ( PassRegistry & )

◆ initializeLoadStoreOptPass()

LLVM_ABI void llvm::initializeLoadStoreOptPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeGlobalISel().

◆ initializeLoadStoreVectorizerLegacyPassPass()

LLVM_ABI void llvm::initializeLoadStoreVectorizerLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeVectorization().

◆ initializeLocalizerPass()

LLVM_ABI void llvm::initializeLocalizerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeGlobalISel().

◆ initializeLocalStackSlotPassPass()

LLVM_ABI void llvm::initializeLocalStackSlotPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeLoongArchAsmPrinterPass()

void llvm::initializeLoongArchAsmPrinterPass ( PassRegistry & )

◆ initializeLoongArchDAGToDAGISelLegacyPass()

void llvm::initializeLoongArchDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeLoongArchDeadRegisterDefinitionsPass()

void llvm::initializeLoongArchDeadRegisterDefinitionsPass ( PassRegistry & )

◆ initializeLoongArchExpandAtomicPseudoPass()

void llvm::initializeLoongArchExpandAtomicPseudoPass ( PassRegistry & )

◆ initializeLoongArchExpandPseudoPass()

void llvm::initializeLoongArchExpandPseudoPass ( PassRegistry & )

◆ initializeLoongArchMergeBaseOffsetOptPass()

void llvm::initializeLoongArchMergeBaseOffsetOptPass ( PassRegistry & )

◆ initializeLoongArchOptWInstrsPass()

void llvm::initializeLoongArchOptWInstrsPass ( PassRegistry & )

◆ initializeLoongArchPreRAExpandPseudoPass()

void llvm::initializeLoongArchPreRAExpandPseudoPass ( PassRegistry & )

◆ initializeLoopDataPrefetchLegacyPassPass()

LLVM_ABI void llvm::initializeLoopDataPrefetchLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeLoopExtractorLegacyPassPass()

LLVM_ABI void llvm::initializeLoopExtractorLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeIPO().

◆ initializeLoopInfoWrapperPassPass()

LLVM_ABI void llvm::initializeLoopInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ 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 190 of file LoopUtils.cpp.

References INITIALIZE_PASS_DEPENDENCY.

◆ initializeLoopSimplifyPass()

LLVM_ABI void llvm::initializeLoopSimplifyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeLoopStrengthReducePass()

LLVM_ABI void llvm::initializeLoopStrengthReducePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeLoopTermFoldPass()

LLVM_ABI void llvm::initializeLoopTermFoldPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeLoopUnrollPass()

LLVM_ABI void llvm::initializeLoopUnrollPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeLowerAtomicLegacyPassPass()

LLVM_ABI void llvm::initializeLowerAtomicLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeLowerEmuTLSPass()

LLVM_ABI void llvm::initializeLowerEmuTLSPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeLowerGlobalDtorsLegacyPassPass()

LLVM_ABI void llvm::initializeLowerGlobalDtorsLegacyPassPass ( PassRegistry & )

◆ initializeLowerIntrinsicsPass()

LLVM_ABI void llvm::initializeLowerIntrinsicsPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeLowerInvokeLegacyPassPass()

LLVM_ABI void llvm::initializeLowerInvokeLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeLowerSwitchLegacyPassPass()

LLVM_ABI void llvm::initializeLowerSwitchLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeM68kAsmPrinterPass()

void llvm::initializeM68kAsmPrinterPass ( PassRegistry & )

◆ initializeM68kCollapseMOVEMPass()

void llvm::initializeM68kCollapseMOVEMPass ( PassRegistry & )

◆ initializeM68kDAGToDAGISelLegacyPass()

void llvm::initializeM68kDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeM68kExpandPseudoPass()

void llvm::initializeM68kExpandPseudoPass ( PassRegistry & )

◆ initializeM68kGlobalBaseRegPass()

void llvm::initializeM68kGlobalBaseRegPass ( PassRegistry & )

◆ initializeMachineBlockFrequencyInfoWrapperPassPass()

LLVM_ABI void llvm::initializeMachineBlockFrequencyInfoWrapperPassPass ( PassRegistry & )

◆ initializeMachineBlockPlacementLegacyPass()

LLVM_ABI void llvm::initializeMachineBlockPlacementLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineBlockPlacementStatsLegacyPass()

LLVM_ABI void llvm::initializeMachineBlockPlacementStatsLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineBranchProbabilityInfoWrapperPassPass()

LLVM_ABI void llvm::initializeMachineBranchProbabilityInfoWrapperPassPass ( PassRegistry & )

◆ initializeMachineCFGPrinterPass()

LLVM_ABI void llvm::initializeMachineCFGPrinterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by INITIALIZE_PASS(), and initializeCodeGen().

◆ initializeMachineCombinerPass()

LLVM_ABI void llvm::initializeMachineCombinerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineCopyPropagationLegacyPass()

LLVM_ABI void llvm::initializeMachineCopyPropagationLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineCSELegacyPass()

LLVM_ABI void llvm::initializeMachineCSELegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineCycleInfoPrinterLegacyPass()

LLVM_ABI void llvm::initializeMachineCycleInfoPrinterLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineCycleInfoWrapperPassPass()

LLVM_ABI void llvm::initializeMachineCycleInfoWrapperPassPass ( PassRegistry & )

◆ initializeMachineDominanceFrontierPass()

LLVM_ABI void llvm::initializeMachineDominanceFrontierPass ( PassRegistry & )

◆ initializeMachineDominatorTreeWrapperPassPass()

LLVM_ABI void llvm::initializeMachineDominatorTreeWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by INITIALIZE_PASS(), and initializeCodeGen().

◆ initializeMachineFunctionPrinterPassPass()

LLVM_ABI void llvm::initializeMachineFunctionPrinterPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineFunctionSplitterPass()

LLVM_ABI void llvm::initializeMachineFunctionSplitterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineLateInstrsCleanupLegacyPass()

LLVM_ABI void llvm::initializeMachineLateInstrsCleanupLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineLICMPass()

LLVM_ABI void llvm::initializeMachineLICMPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineLoopInfoWrapperPassPass()

LLVM_ABI void llvm::initializeMachineLoopInfoWrapperPassPass ( PassRegistry & )

◆ initializeMachineModuleInfoWrapperPassPass()

◆ initializeMachineOptimizationRemarkEmitterPassPass()

LLVM_ABI void llvm::initializeMachineOptimizationRemarkEmitterPassPass ( PassRegistry & )

◆ initializeMachineOutlinerPass()

LLVM_ABI void llvm::initializeMachineOutlinerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachinePipelinerPass()

LLVM_ABI void llvm::initializeMachinePipelinerPass ( PassRegistry & )

◆ initializeMachinePostDominatorTreeWrapperPassPass()

LLVM_ABI void llvm::initializeMachinePostDominatorTreeWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by INITIALIZE_PASS(), and initializeCodeGen().

◆ initializeMachineRegionInfoPassPass()

LLVM_ABI void llvm::initializeMachineRegionInfoPassPass ( PassRegistry & )

◆ initializeMachineSanitizerBinaryMetadataLegacyPass()

LLVM_ABI void llvm::initializeMachineSanitizerBinaryMetadataLegacyPass ( PassRegistry & )

Referenced by initializeCodeGen().

◆ initializeMachineSchedulerLegacyPass()

LLVM_ABI void llvm::initializeMachineSchedulerLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineSinkingLegacyPass()

LLVM_ABI void llvm::initializeMachineSinkingLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineSMEABIPass()

void llvm::initializeMachineSMEABIPass ( PassRegistry & )

◆ initializeMachineTraceMetricsWrapperPassPass()

LLVM_ABI void llvm::initializeMachineTraceMetricsWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeMachineUniformityAnalysisPassPass()

LLVM_ABI void llvm::initializeMachineUniformityAnalysisPassPass ( PassRegistry & )

◆ initializeMachineUniformityInfoPrinterPassPass()

LLVM_ABI void llvm::initializeMachineUniformityInfoPrinterPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMachineVerifierLegacyPassPass()

LLVM_ABI void llvm::initializeMachineVerifierLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMemoryDependenceWrapperPassPass()

LLVM_ABI void llvm::initializeMemoryDependenceWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeMemorySSAWrapperPassPass()

LLVM_ABI void llvm::initializeMemorySSAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeMergeICmpsLegacyPassPass()

LLVM_ABI void llvm::initializeMergeICmpsLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeMicroMipsSizeReducePass()

void llvm::initializeMicroMipsSizeReducePass ( PassRegistry & )

◆ initializeMipsAsmPrinterPass()

void llvm::initializeMipsAsmPrinterPass ( PassRegistry & )

◆ initializeMipsBranchExpansionPass()

void llvm::initializeMipsBranchExpansionPass ( PassRegistry & )

◆ initializeMipsDAGToDAGISelLegacyPass()

void llvm::initializeMipsDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeMipsDelaySlotFillerPass()

void llvm::initializeMipsDelaySlotFillerPass ( PassRegistry & )

◆ initializeMipsMulMulBugFixPass()

void llvm::initializeMipsMulMulBugFixPass ( PassRegistry & )

◆ initializeMipsPostLegalizerCombinerPass()

void llvm::initializeMipsPostLegalizerCombinerPass ( PassRegistry & )

◆ initializeMipsPreLegalizerCombinerPass()

void llvm::initializeMipsPreLegalizerCombinerPass ( PassRegistry & )

◆ initializeMIRAddFSDiscriminatorsPass()

LLVM_ABI void llvm::initializeMIRAddFSDiscriminatorsPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMIRCanonicalizerPass()

LLVM_ABI void llvm::initializeMIRCanonicalizerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMIRNamerPass()

LLVM_ABI void llvm::initializeMIRNamerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMIRPrintingPassPass()

LLVM_ABI void llvm::initializeMIRPrintingPassPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeMIRProfileLoaderPassPass()

LLVM_ABI void llvm::initializeMIRProfileLoaderPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeModuleSummaryIndexWrapperPassPass()

LLVM_ABI void llvm::initializeModuleSummaryIndexWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeModuloScheduleTestPass()

LLVM_ABI void llvm::initializeModuloScheduleTestPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeMSP430AsmPrinterPass()

void llvm::initializeMSP430AsmPrinterPass ( PassRegistry & )

◆ initializeMSP430DAGToDAGISelLegacyPass()

void llvm::initializeMSP430DAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeMVEGatherScatterLoweringPass()

void llvm::initializeMVEGatherScatterLoweringPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeMVELaneInterleavingPass()

void llvm::initializeMVELaneInterleavingPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeMVETailPredicationPass()

void llvm::initializeMVETailPredicationPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeMVETPAndVPTOptimisationsPass()

void llvm::initializeMVETPAndVPTOptimisationsPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeMVEVPTBlockPass()

void llvm::initializeMVEVPTBlockPass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeNaryReassociateLegacyPassPass()

LLVM_ABI void llvm::initializeNaryReassociateLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

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 126 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 152 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 140 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 164 of file TargetSelect.h.

◆ initializeNVPTXAAWrapperPassPass()

void llvm::initializeNVPTXAAWrapperPassPass ( PassRegistry & )

◆ initializeNVPTXAllocaHoistingPass()

void llvm::initializeNVPTXAllocaHoistingPass ( PassRegistry & )

◆ initializeNVPTXAsmPrinterPass()

void llvm::initializeNVPTXAsmPrinterPass ( PassRegistry & )

◆ initializeNVPTXAssignValidGlobalNamesPass()

void llvm::initializeNVPTXAssignValidGlobalNamesPass ( PassRegistry & )

◆ initializeNVPTXAtomicLowerPass()

void llvm::initializeNVPTXAtomicLowerPass ( PassRegistry & )

◆ initializeNVPTXCtorDtorLoweringLegacyPass()

void llvm::initializeNVPTXCtorDtorLoweringLegacyPass ( PassRegistry & )

◆ initializeNVPTXDAGToDAGISelLegacyPass()

void llvm::initializeNVPTXDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeNVPTXExternalAAWrapperPass()

void llvm::initializeNVPTXExternalAAWrapperPass ( PassRegistry & )

◆ initializeNVPTXForwardParamsPassPass()

void llvm::initializeNVPTXForwardParamsPassPass ( PassRegistry & )

◆ initializeNVPTXLowerAggrCopiesPass()

void llvm::initializeNVPTXLowerAggrCopiesPass ( PassRegistry & )

◆ initializeNVPTXLowerAllocaPass()

void llvm::initializeNVPTXLowerAllocaPass ( PassRegistry & )

◆ initializeNVPTXLowerArgsLegacyPassPass()

void llvm::initializeNVPTXLowerArgsLegacyPassPass ( PassRegistry & )

◆ initializeNVPTXLowerUnreachablePass()

void llvm::initializeNVPTXLowerUnreachablePass ( PassRegistry & )

◆ initializeNVPTXPeepholePass()

void llvm::initializeNVPTXPeepholePass ( PassRegistry & )

◆ initializeNVPTXPrologEpilogPassPass()

void llvm::initializeNVPTXPrologEpilogPassPass ( PassRegistry & )

◆ initializeNVPTXProxyRegErasurePass()

void llvm::initializeNVPTXProxyRegErasurePass ( PassRegistry & )

◆ initializeNVPTXTagInvariantLoadLegacyPassPass()

void llvm::initializeNVPTXTagInvariantLoadLegacyPassPass ( PassRegistry & )

◆ initializeNVVMIntrRangePass()

void llvm::initializeNVVMIntrRangePass ( PassRegistry & )

◆ initializeNVVMReflectLegacyPassPass()

void llvm::initializeNVVMReflectLegacyPassPass ( PassRegistry & )

◆ initializeNVVMReflectPass()

void llvm::initializeNVVMReflectPass ( PassRegistry & )

◆ initializeObjCARCContractLegacyPassPass()

LLVM_ABI void llvm::initializeObjCARCContractLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeOptimizationRemarkEmitterWrapperPassPass()

LLVM_ABI void llvm::initializeOptimizationRemarkEmitterWrapperPassPass ( PassRegistry & )

Referenced by initializeAnalysis().

◆ initializeOptimizePHIsLegacyPass()

LLVM_ABI void llvm::initializeOptimizePHIsLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeOptimizeReturnedPass()

void llvm::initializeOptimizeReturnedPass ( PassRegistry & )

◆ initializePartiallyInlineLibCallsLegacyPassPass()

LLVM_ABI void llvm::initializePartiallyInlineLibCallsLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializePatchableFunctionLegacyPass()

LLVM_ABI void llvm::initializePatchableFunctionLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePeepholeOptimizerLegacyPass()

LLVM_ABI void llvm::initializePeepholeOptimizerLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePEILegacyPass()

LLVM_ABI void llvm::initializePEILegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePHIEliminationPass()

LLVM_ABI void llvm::initializePHIEliminationPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePhiValuesWrapperPassPass()

LLVM_ABI void llvm::initializePhiValuesWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePhysicalRegisterUsageInfoWrapperLegacyPass()

LLVM_ABI void llvm::initializePhysicalRegisterUsageInfoWrapperLegacyPass ( PassRegistry & )

◆ initializePlaceBackedgeSafepointsLegacyPassPass()

LLVM_ABI void llvm::initializePlaceBackedgeSafepointsLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializePostDominatorTreeWrapperPassPass()

LLVM_ABI void llvm::initializePostDominatorTreeWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePostDomOnlyPrinterWrapperPassPass()

LLVM_ABI void llvm::initializePostDomOnlyPrinterWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePostDomOnlyViewerWrapperPassPass()

LLVM_ABI void llvm::initializePostDomOnlyViewerWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePostDomPrinterWrapperPassPass()

LLVM_ABI void llvm::initializePostDomPrinterWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePostDomViewerWrapperPassPass()

LLVM_ABI void llvm::initializePostDomViewerWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePostInlineEntryExitInstrumenterPass()

LLVM_ABI void llvm::initializePostInlineEntryExitInstrumenterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializePostMachineSchedulerLegacyPass()

LLVM_ABI void llvm::initializePostMachineSchedulerLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePostRAHazardRecognizerLegacyPass()

LLVM_ABI void llvm::initializePostRAHazardRecognizerLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePostRAMachineSinkingLegacyPass()

LLVM_ABI void llvm::initializePostRAMachineSinkingLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePostRASchedulerLegacyPass()

LLVM_ABI void llvm::initializePostRASchedulerLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePPCAIXAsmPrinterPass()

void llvm::initializePPCAIXAsmPrinterPass ( PassRegistry & )

◆ 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 & )

◆ initializePPCDAGToDAGISelLegacyPass()

void llvm::initializePPCDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializePPCEarlyReturnPass()

void llvm::initializePPCEarlyReturnPass ( PassRegistry & )

◆ initializePPCExpandAtomicPseudoPass()

void llvm::initializePPCExpandAtomicPseudoPass ( PassRegistry & )

◆ initializePPCExpandISELPass()

void llvm::initializePPCExpandISELPass ( PassRegistry & )

◆ initializePPCGenScalarMASSEntriesPass()

void llvm::initializePPCGenScalarMASSEntriesPass ( PassRegistry & )

◆ initializePPCLinuxAsmPrinterPass()

void llvm::initializePPCLinuxAsmPrinterPass ( PassRegistry & )

◆ initializePPCLoopInstrFormPrepPass()

void llvm::initializePPCLoopInstrFormPrepPass ( PassRegistry & )

◆ initializePPCLowerMASSVEntriesPass()

void llvm::initializePPCLowerMASSVEntriesPass ( PassRegistry & )

◆ initializePPCMIPeepholePass()

void llvm::initializePPCMIPeepholePass ( PassRegistry & )

◆ initializePPCPreEmitPeepholePass()

void llvm::initializePPCPreEmitPeepholePass ( PassRegistry & )

◆ initializePPCReduceCRLogicalsPass()

void llvm::initializePPCReduceCRLogicalsPass ( PassRegistry & )

◆ initializePPCTLSDynamicCallPass()

void llvm::initializePPCTLSDynamicCallPass ( PassRegistry & )

◆ initializePPCTOCRegDepsPass()

void llvm::initializePPCTOCRegDepsPass ( PassRegistry & )

◆ initializePPCVSXFMAMutatePass()

void llvm::initializePPCVSXFMAMutatePass ( PassRegistry & )

◆ initializePPCVSXSwapRemovalPass()

void llvm::initializePPCVSXSwapRemovalPass ( PassRegistry & )

◆ initializePPCVSXWACCCopyPass()

void llvm::initializePPCVSXWACCCopyPass ( PassRegistry & )

◆ initializePreISelIntrinsicLoweringLegacyPassPass()

LLVM_ABI void llvm::initializePreISelIntrinsicLoweringLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializePrintFunctionPassWrapperPass()

LLVM_ABI void llvm::initializePrintFunctionPassWrapperPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCore().

◆ initializePrintModulePassWrapperPass()

LLVM_ABI void llvm::initializePrintModulePassWrapperPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCore().

◆ initializeProcessImplicitDefsLegacyPass()

LLVM_ABI void llvm::initializeProcessImplicitDefsLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeProfileSummaryInfoWrapperPassPass()

LLVM_ABI void llvm::initializeProfileSummaryInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializePromoteLegacyPassPass()

LLVM_ABI void llvm::initializePromoteLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializePseudoProbeInserterPass()

LLVM_ABI void llvm::initializePseudoProbeInserterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by LLVMInitializeX86Target().

◆ initializeR600ClauseMergePassPass()

void llvm::initializeR600ClauseMergePassPass ( PassRegistry & )

◆ initializeR600ControlFlowFinalizerPass()

void llvm::initializeR600ControlFlowFinalizerPass ( PassRegistry & )

◆ initializeR600EmitClauseMarkersPass()

void llvm::initializeR600EmitClauseMarkersPass ( PassRegistry & )

◆ initializeR600ExpandSpecialInstrsPassPass()

void llvm::initializeR600ExpandSpecialInstrsPassPass ( PassRegistry & )

◆ initializeR600MachineCFGStructurizerPass()

void llvm::initializeR600MachineCFGStructurizerPass ( PassRegistry & )

◆ initializeR600PacketizerPass()

void llvm::initializeR600PacketizerPass ( PassRegistry & )

References R600PacketizerID.

Referenced by LLVMInitializeAMDGPUTarget().

◆ initializeR600VectorRegMergerPass()

void llvm::initializeR600VectorRegMergerPass ( PassRegistry & )

◆ initializeRABasicPass()

LLVM_ABI void llvm::initializeRABasicPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeRAGreedyLegacyPass()

LLVM_ABI void llvm::initializeRAGreedyLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeReachingDefAnalysisPass()

LLVM_ABI void llvm::initializeReachingDefAnalysisPass ( PassRegistry & )

◆ initializeReassociateLegacyPassPass()

LLVM_ABI void llvm::initializeReassociateLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeRegAllocEvictionAdvisorAnalysisLegacyPass()

LLVM_ABI void llvm::initializeRegAllocEvictionAdvisorAnalysisLegacyPass ( PassRegistry & )

◆ initializeRegAllocFastPass()

LLVM_ABI void llvm::initializeRegAllocFastPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeRegAllocPriorityAdvisorAnalysisLegacyPass()

LLVM_ABI void llvm::initializeRegAllocPriorityAdvisorAnalysisLegacyPass ( PassRegistry & )

◆ initializeRegAllocScoringPass()

LLVM_ABI void llvm::initializeRegAllocScoringPass ( PassRegistry & )

◆ initializeRegBankSelectPass()

LLVM_ABI void llvm::initializeRegBankSelectPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeGlobalISel().

◆ initializeRegionInfoPassPass()

LLVM_ABI void llvm::initializeRegionInfoPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeRegionOnlyPrinterPass()

LLVM_ABI void llvm::initializeRegionOnlyPrinterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeRegionOnlyViewerPass()

LLVM_ABI void llvm::initializeRegionOnlyViewerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeRegionPrinterPass()

LLVM_ABI void llvm::initializeRegionPrinterPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeRegionViewerPass()

LLVM_ABI void llvm::initializeRegionViewerPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeRegisterCoalescerLegacyPass()

LLVM_ABI void llvm::initializeRegisterCoalescerLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeRegToMemWrapperPassPass()

void llvm::initializeRegToMemWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeRegUsageInfoCollectorLegacyPass()

LLVM_ABI void llvm::initializeRegUsageInfoCollectorLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeRegUsageInfoPropagationLegacyPass()

LLVM_ABI void llvm::initializeRegUsageInfoPropagationLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeRemoveLoadsIntoFakeUsesLegacyPass()

LLVM_ABI void llvm::initializeRemoveLoadsIntoFakeUsesLegacyPass ( PassRegistry & )

◆ initializeRemoveRedundantDebugValuesLegacyPass()

LLVM_ABI void llvm::initializeRemoveRedundantDebugValuesLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by INITIALIZE_PASS(), and initializeCodeGen().

◆ initializeRenameIndependentSubregsLegacyPass()

LLVM_ABI void llvm::initializeRenameIndependentSubregsLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeReplaceWithVeclibLegacyPass()

LLVM_ABI void llvm::initializeReplaceWithVeclibLegacyPass ( PassRegistry & )

◆ initializeResetMachineFunctionPass()

LLVM_ABI void llvm::initializeResetMachineFunctionPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeRISCVAsmPrinterPass()

void llvm::initializeRISCVAsmPrinterPass ( PassRegistry & )

◆ initializeRISCVCodeGenPreparePass()

void llvm::initializeRISCVCodeGenPreparePass ( PassRegistry & )

◆ initializeRISCVDAGToDAGISelLegacyPass()

void llvm::initializeRISCVDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeRISCVDeadRegisterDefinitionsPass()

void llvm::initializeRISCVDeadRegisterDefinitionsPass ( PassRegistry & )

◆ initializeRISCVExpandAtomicPseudoPass()

void llvm::initializeRISCVExpandAtomicPseudoPass ( PassRegistry & )

◆ initializeRISCVExpandPseudoPass()

void llvm::initializeRISCVExpandPseudoPass ( PassRegistry & )

◆ initializeRISCVFoldMemOffsetPass()

void llvm::initializeRISCVFoldMemOffsetPass ( PassRegistry & )

◆ initializeRISCVGatherScatterLoweringPass()

void llvm::initializeRISCVGatherScatterLoweringPass ( PassRegistry & )

◆ initializeRISCVIndirectBranchTrackingPass()

void llvm::initializeRISCVIndirectBranchTrackingPass ( PassRegistry & )

◆ initializeRISCVInsertReadWriteCSRPass()

void llvm::initializeRISCVInsertReadWriteCSRPass ( PassRegistry & )

◆ initializeRISCVInsertVSETVLIPass()

void llvm::initializeRISCVInsertVSETVLIPass ( PassRegistry & )

◆ initializeRISCVInsertWriteVXRMPass()

void llvm::initializeRISCVInsertWriteVXRMPass ( PassRegistry & )

◆ initializeRISCVLandingPadSetupPass()

void llvm::initializeRISCVLandingPadSetupPass ( PassRegistry & )

◆ initializeRISCVLateBranchOptPass()

void llvm::initializeRISCVLateBranchOptPass ( PassRegistry & )

◆ initializeRISCVLoadStoreOptPass()

void llvm::initializeRISCVLoadStoreOptPass ( PassRegistry & )

◆ initializeRISCVMakeCompressibleOptPass()

void llvm::initializeRISCVMakeCompressibleOptPass ( PassRegistry & )

◆ initializeRISCVMergeBaseOffsetOptPass()

void llvm::initializeRISCVMergeBaseOffsetOptPass ( PassRegistry & )

◆ initializeRISCVMoveMergePass()

void llvm::initializeRISCVMoveMergePass ( PassRegistry & )

◆ initializeRISCVO0PreLegalizerCombinerPass()

void llvm::initializeRISCVO0PreLegalizerCombinerPass ( PassRegistry & )

◆ initializeRISCVOptWInstrsPass()

void llvm::initializeRISCVOptWInstrsPass ( PassRegistry & )

◆ initializeRISCVPostLegalizerCombinerPass()

void llvm::initializeRISCVPostLegalizerCombinerPass ( PassRegistry & )

◆ initializeRISCVPostRAExpandPseudoPass()

void llvm::initializeRISCVPostRAExpandPseudoPass ( PassRegistry & )

◆ initializeRISCVPreLegalizerCombinerPass()

void llvm::initializeRISCVPreLegalizerCombinerPass ( PassRegistry & )

◆ initializeRISCVPreRAExpandPseudoPass()

void llvm::initializeRISCVPreRAExpandPseudoPass ( PassRegistry & )

◆ initializeRISCVPushPopOptPass()

void llvm::initializeRISCVPushPopOptPass ( PassRegistry & )

◆ initializeRISCVRedundantCopyEliminationPass()

void llvm::initializeRISCVRedundantCopyEliminationPass ( PassRegistry & )

◆ initializeRISCVVectorPeepholePass()

void llvm::initializeRISCVVectorPeepholePass ( PassRegistry & )

◆ initializeRISCVVLOptimizerPass()

void llvm::initializeRISCVVLOptimizerPass ( PassRegistry & )

◆ initializeRISCVVMV0EliminationPass()

void llvm::initializeRISCVVMV0EliminationPass ( PassRegistry & )

◆ initializeRISCVZacasABIFixPass()

void llvm::initializeRISCVZacasABIFixPass ( PassRegistry & )

◆ initializeRootSignatureAnalysisWrapperPass()

void llvm::initializeRootSignatureAnalysisWrapperPass ( PassRegistry & )

◆ initializeSafepointIRVerifierPass()

LLVM_ABI void llvm::initializeSafepointIRVerifierPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCore().

◆ initializeSafeStackLegacyPassPass()

LLVM_ABI void llvm::initializeSafeStackLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeScalarEvolutionWrapperPassPass()

LLVM_ABI void llvm::initializeScalarEvolutionWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeScalarizeMaskedMemIntrinLegacyPassPass()

LLVM_ABI void llvm::initializeScalarizeMaskedMemIntrinLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeScalarizerLegacyPassPass()

LLVM_ABI void llvm::initializeScalarizerLegacyPassPass ( PassRegistry & )

◆ initializeScalarOpts()

◆ initializeScavengerTestPass()

LLVM_ABI void llvm::initializeScavengerTestPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeSCEVAAWrapperPassPass()

LLVM_ABI void llvm::initializeSCEVAAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeScopedNoAliasAAWrapperPassPass()

LLVM_ABI void llvm::initializeScopedNoAliasAAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeSelectOptimizePass()

LLVM_ABI void llvm::initializeSelectOptimizePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeSeparateConstOffsetFromGEPLegacyPassPass()

LLVM_ABI void llvm::initializeSeparateConstOffsetFromGEPLegacyPassPass ( PassRegistry & )

Referenced by initializeScalarOpts().

◆ initializeShaderFlagsAnalysisWrapperPass()

void llvm::initializeShaderFlagsAnalysisWrapperPass ( PassRegistry & )

◆ initializeShadowStackGCLoweringPass()

LLVM_ABI void llvm::initializeShadowStackGCLoweringPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeShrinkWrapLegacyPass()

LLVM_ABI void llvm::initializeShrinkWrapLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeSIAnnotateControlFlowLegacyPass()

void llvm::initializeSIAnnotateControlFlowLegacyPass ( PassRegistry & )

◆ initializeSIFixSGPRCopiesLegacyPass()

void llvm::initializeSIFixSGPRCopiesLegacyPass ( PassRegistry & )

◆ initializeSIFixVGPRCopiesLegacyPass()

void llvm::initializeSIFixVGPRCopiesLegacyPass ( PassRegistry & )

References SIFixVGPRCopiesID.

Referenced by LLVMInitializeAMDGPUTarget().

◆ initializeSIFoldOperandsLegacyPass()

void llvm::initializeSIFoldOperandsLegacyPass ( PassRegistry & )

◆ initializeSIFormMemoryClausesLegacyPass()

void llvm::initializeSIFormMemoryClausesLegacyPass ( PassRegistry & )

◆ initializeSIInsertHardClausesLegacyPass()

void llvm::initializeSIInsertHardClausesLegacyPass ( PassRegistry & )

◆ initializeSIInsertWaitcntsLegacyPass()

void llvm::initializeSIInsertWaitcntsLegacyPass ( PassRegistry & )

◆ initializeSILateBranchLoweringLegacyPass()

void llvm::initializeSILateBranchLoweringLegacyPass ( PassRegistry & )

◆ initializeSILoadStoreOptimizerLegacyPass()

void llvm::initializeSILoadStoreOptimizerLegacyPass ( PassRegistry & )

◆ initializeSILowerControlFlowLegacyPass()

void llvm::initializeSILowerControlFlowLegacyPass ( PassRegistry & )

◆ initializeSILowerI1CopiesLegacyPass()

void llvm::initializeSILowerI1CopiesLegacyPass ( PassRegistry & )

◆ initializeSILowerSGPRSpillsLegacyPass()

void llvm::initializeSILowerSGPRSpillsLegacyPass ( PassRegistry & )

◆ initializeSILowerWWMCopiesLegacyPass()

void llvm::initializeSILowerWWMCopiesLegacyPass ( PassRegistry & )

◆ initializeSIMemoryLegalizerLegacyPass()

void llvm::initializeSIMemoryLegalizerLegacyPass ( PassRegistry & )

◆ initializeSIModeRegisterLegacyPass()

void llvm::initializeSIModeRegisterLegacyPass ( PassRegistry & )

References SIModeRegisterID.

Referenced by LLVMInitializeAMDGPUTarget().

◆ initializeSingleLoopExtractorPass()

LLVM_ABI void llvm::initializeSingleLoopExtractorPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeIPO().

◆ initializeSinkingLegacyPassPass()

LLVM_ABI void llvm::initializeSinkingLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeSIOptimizeExecMaskingLegacyPass()

void llvm::initializeSIOptimizeExecMaskingLegacyPass ( PassRegistry & )

◆ initializeSIOptimizeExecMaskingPreRALegacyPass()

void llvm::initializeSIOptimizeExecMaskingPreRALegacyPass ( PassRegistry & )

◆ initializeSIOptimizeVGPRLiveRangeLegacyPass()

void llvm::initializeSIOptimizeVGPRLiveRangeLegacyPass ( PassRegistry & )

◆ initializeSIPeepholeSDWALegacyPass()

void llvm::initializeSIPeepholeSDWALegacyPass ( PassRegistry & )

◆ initializeSIPostRABundlerLegacyPass()

void llvm::initializeSIPostRABundlerLegacyPass ( PassRegistry & )

◆ initializeSIPreAllocateWWMRegsLegacyPass()

void llvm::initializeSIPreAllocateWWMRegsLegacyPass ( PassRegistry & )

◆ initializeSIPreEmitPeepholeLegacyPass()

void llvm::initializeSIPreEmitPeepholeLegacyPass ( PassRegistry & )

◆ initializeSIShrinkInstructionsLegacyPass()

void llvm::initializeSIShrinkInstructionsLegacyPass ( PassRegistry & )

◆ initializeSIWholeQuadModeLegacyPass()

void llvm::initializeSIWholeQuadModeLegacyPass ( PassRegistry & )

References SIWholeQuadModeID.

Referenced by LLVMInitializeAMDGPUTarget().

◆ initializeSjLjEHPreparePass()

LLVM_ABI void llvm::initializeSjLjEHPreparePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeSlotIndexesWrapperPassPass()

LLVM_ABI void llvm::initializeSlotIndexesWrapperPassPass ( PassRegistry & )

◆ initializeSMEABIPass()

void llvm::initializeSMEABIPass ( PassRegistry & )

◆ initializeSMEPeepholeOptPass()

void llvm::initializeSMEPeepholeOptPass ( PassRegistry & )

◆ initializeSparcAsmPrinterPass()

void llvm::initializeSparcAsmPrinterPass ( PassRegistry & )

◆ initializeSparcDAGToDAGISelLegacyPass()

void llvm::initializeSparcDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeSpeculativeExecutionLegacyPassPass()

LLVM_ABI void llvm::initializeSpeculativeExecutionLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeSpillPlacementWrapperLegacyPass()

LLVM_ABI void llvm::initializeSpillPlacementWrapperLegacyPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeSPIRVAsmPrinterPass()

void llvm::initializeSPIRVAsmPrinterPass ( PassRegistry & )

◆ initializeSPIRVConvergenceRegionAnalysisWrapperPassPass()

void llvm::initializeSPIRVConvergenceRegionAnalysisWrapperPassPass ( PassRegistry & )

◆ initializeSPIRVEmitIntrinsicsPass()

void llvm::initializeSPIRVEmitIntrinsicsPass ( PassRegistry & )

◆ initializeSPIRVEmitNonSemanticDIPass()

void llvm::initializeSPIRVEmitNonSemanticDIPass ( PassRegistry & )

◆ initializeSPIRVLegalizeImplicitBindingPass()

void llvm::initializeSPIRVLegalizeImplicitBindingPass ( PassRegistry & )

◆ initializeSPIRVLegalizePointerCastPass()

void llvm::initializeSPIRVLegalizePointerCastPass ( PassRegistry & )

◆ initializeSPIRVMergeRegionExitTargetsPass()

void llvm::initializeSPIRVMergeRegionExitTargetsPass ( PassRegistry & )

◆ initializeSPIRVModuleAnalysisPass()

void llvm::initializeSPIRVModuleAnalysisPass ( PassRegistry & )

◆ initializeSPIRVPostLegalizerPass()

void llvm::initializeSPIRVPostLegalizerPass ( PassRegistry & )

◆ initializeSPIRVPreLegalizerCombinerPass()

void llvm::initializeSPIRVPreLegalizerCombinerPass ( PassRegistry & )

◆ initializeSPIRVPreLegalizerPass()

void llvm::initializeSPIRVPreLegalizerPass ( PassRegistry & )

◆ initializeSPIRVPrepareFunctionsPass()

void llvm::initializeSPIRVPrepareFunctionsPass ( PassRegistry & )

◆ initializeSPIRVRegularizerPass()

void llvm::initializeSPIRVRegularizerPass ( PassRegistry & )

◆ initializeSPIRVStripConvergentIntrinsicsPass()

void llvm::initializeSPIRVStripConvergentIntrinsicsPass ( PassRegistry & )

◆ initializeSPIRVStructurizerPass()

void llvm::initializeSPIRVStructurizerPass ( PassRegistry & )

◆ initializeSROALegacyPassPass()

LLVM_ABI void llvm::initializeSROALegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeStackColoringLegacyPass()

LLVM_ABI void llvm::initializeStackColoringLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeStackFrameLayoutAnalysisLegacyPass()

LLVM_ABI void llvm::initializeStackFrameLayoutAnalysisLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeStackMapLivenessPass()

LLVM_ABI void llvm::initializeStackMapLivenessPass ( PassRegistry & )

References LLVM_ABI.

Referenced by INITIALIZE_PASS(), and initializeCodeGen().

◆ initializeStackProtectorPass()

LLVM_ABI void llvm::initializeStackProtectorPass ( PassRegistry & )

◆ initializeStackSafetyGlobalInfoWrapperPassPass()

LLVM_ABI void llvm::initializeStackSafetyGlobalInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeStackSafetyInfoWrapperPassPass()

LLVM_ABI void llvm::initializeStackSafetyInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeStackSlotColoringLegacyPass()

LLVM_ABI void llvm::initializeStackSlotColoringLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeStaticDataAnnotatorPass()

LLVM_ABI void llvm::initializeStaticDataAnnotatorPass ( PassRegistry & )

◆ initializeStaticDataProfileInfoWrapperPassPass()

LLVM_ABI void llvm::initializeStaticDataProfileInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeStaticDataSplitterPass()

LLVM_ABI void llvm::initializeStaticDataSplitterPass ( PassRegistry & )

◆ initializeStraightLineStrengthReduceLegacyPassPass()

LLVM_ABI void llvm::initializeStraightLineStrengthReduceLegacyPassPass ( PassRegistry & )

Referenced by initializeScalarOpts().

◆ initializeStripDebugMachineModulePass()

LLVM_ABI void llvm::initializeStripDebugMachineModulePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeStructurizeCFGLegacyPassPass()

LLVM_ABI void llvm::initializeStructurizeCFGLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeSVEIntrinsicOptsPass()

void llvm::initializeSVEIntrinsicOptsPass ( PassRegistry & )

◆ initializeSystemZAsmPrinterPass()

void llvm::initializeSystemZAsmPrinterPass ( PassRegistry & )

◆ initializeSystemZCopyPhysRegsPass()

void llvm::initializeSystemZCopyPhysRegsPass ( PassRegistry & )

◆ initializeSystemZDAGToDAGISelLegacyPass()

void llvm::initializeSystemZDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeSystemZElimComparePass()

void llvm::initializeSystemZElimComparePass ( PassRegistry & )

◆ initializeSystemZLDCleanupPass()

void llvm::initializeSystemZLDCleanupPass ( PassRegistry & )

◆ initializeSystemZLongBranchPass()

void llvm::initializeSystemZLongBranchPass ( PassRegistry & )

◆ initializeSystemZPostRewritePass()

void llvm::initializeSystemZPostRewritePass ( PassRegistry & )

◆ initializeSystemZShortenInstPass()

void llvm::initializeSystemZShortenInstPass ( PassRegistry & )

◆ initializeSystemZTDCPassPass()

void llvm::initializeSystemZTDCPassPass ( PassRegistry & )

◆ initializeTailCallElimPass()

LLVM_ABI void llvm::initializeTailCallElimPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeScalarOpts().

◆ initializeTailDuplicateLegacyPass()

LLVM_ABI void llvm::initializeTailDuplicateLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeTarget()

void llvm::initializeTarget ( PassRegistry & Registry)

Initialize all passes linked into the CodeGen library.

Definition at line 38 of file Target.cpp.

References initializeTargetLibraryInfoWrapperPassPass(), and initializeTargetTransformInfoWrapperPassPass().

◆ initializeTargetLibraryInfoWrapperPassPass()

◆ initializeTargetPassConfigPass()

LLVM_ABI void llvm::initializeTargetPassConfigPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeTargetTransformInfoWrapperPassPass()

LLVM_ABI void llvm::initializeTargetTransformInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis(), and initializeTarget().

◆ initializeThumb2ITBlockPass()

void llvm::initializeThumb2ITBlockPass ( PassRegistry & )

◆ initializeThumb2SizeReducePass()

void llvm::initializeThumb2SizeReducePass ( PassRegistry & )

Referenced by LLVMInitializeARMTarget().

◆ initializeTransformUtils()

void llvm::initializeTransformUtils ( PassRegistry & Registry)

◆ initializeTwoAddressInstructionLegacyPassPass()

LLVM_ABI void llvm::initializeTwoAddressInstructionLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeTypeBasedAAWrapperPassPass()

LLVM_ABI void llvm::initializeTypeBasedAAWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeTypePromotionLegacyPass()

LLVM_ABI void llvm::initializeTypePromotionLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeUniformityInfoWrapperPassPass()

LLVM_ABI void llvm::initializeUniformityInfoWrapperPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeAnalysis().

◆ initializeUnifyLoopExitsLegacyPassPass()

LLVM_ABI void llvm::initializeUnifyLoopExitsLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeTransformUtils().

◆ initializeUnpackMachineBundlesPass()

LLVM_ABI void llvm::initializeUnpackMachineBundlesPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeUnreachableBlockElimLegacyPassPass()

LLVM_ABI void llvm::initializeUnreachableBlockElimLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeUnreachableMachineBlockElimLegacyPass()

LLVM_ABI void llvm::initializeUnreachableMachineBlockElimLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeVEAsmPrinterPass()

void llvm::initializeVEAsmPrinterPass ( PassRegistry & )

Referenced by LLVMInitializeVETarget().

◆ initializeVectorization()

void llvm::initializeVectorization ( PassRegistry & Registry)

Initialize all passes linked into the Vectorize library.

Initialize all passes linked into the Vectorization library.

Definition at line 21 of file Vectorize.cpp.

References initializeLoadStoreVectorizerLegacyPassPass().

◆ initializeVEDAGToDAGISelLegacyPass()

void llvm::initializeVEDAGToDAGISelLegacyPass ( PassRegistry & )

References MI.

Referenced by LLVMInitializeVETarget().

◆ initializeVerifierLegacyPassPass()

LLVM_ABI void llvm::initializeVerifierLegacyPassPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCore().

◆ initializeVirtRegMapWrapperLegacyPass()

LLVM_ABI void llvm::initializeVirtRegMapWrapperLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeVirtRegRewriterLegacyPass()

LLVM_ABI void llvm::initializeVirtRegRewriterLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeWasmEHPreparePass()

LLVM_ABI void llvm::initializeWasmEHPreparePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeWebAssemblyAddMissingPrototypesPass()

void llvm::initializeWebAssemblyAddMissingPrototypesPass ( PassRegistry & )

◆ initializeWebAssemblyArgumentMovePass()

void llvm::initializeWebAssemblyArgumentMovePass ( PassRegistry & )

◆ initializeWebAssemblyAsmPrinterPass()

void llvm::initializeWebAssemblyAsmPrinterPass ( PassRegistry & )

◆ initializeWebAssemblyCFGSortPass()

void llvm::initializeWebAssemblyCFGSortPass ( PassRegistry & )

◆ initializeWebAssemblyCFGStackifyPass()

void llvm::initializeWebAssemblyCFGStackifyPass ( PassRegistry & )

◆ initializeWebAssemblyCleanCodeAfterTrapPass()

void llvm::initializeWebAssemblyCleanCodeAfterTrapPass ( PassRegistry & )

◆ initializeWebAssemblyDAGToDAGISelLegacyPass()

void llvm::initializeWebAssemblyDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeWebAssemblyDebugFixupPass()

void llvm::initializeWebAssemblyDebugFixupPass ( PassRegistry & )

◆ initializeWebAssemblyExceptionInfoPass()

void llvm::initializeWebAssemblyExceptionInfoPass ( PassRegistry & )

◆ initializeWebAssemblyExplicitLocalsPass()

void llvm::initializeWebAssemblyExplicitLocalsPass ( PassRegistry & )

◆ initializeWebAssemblyFixBrTableDefaultsPass()

void llvm::initializeWebAssemblyFixBrTableDefaultsPass ( PassRegistry & )

◆ initializeWebAssemblyFixIrreducibleControlFlowPass()

void llvm::initializeWebAssemblyFixIrreducibleControlFlowPass ( PassRegistry & )

◆ initializeWebAssemblyLateEHPreparePass()

void llvm::initializeWebAssemblyLateEHPreparePass ( PassRegistry & )

◆ initializeWebAssemblyLowerBrUnlessPass()

void llvm::initializeWebAssemblyLowerBrUnlessPass ( PassRegistry & )

◆ initializeWebAssemblyLowerEmscriptenEHSjLjPass()

void llvm::initializeWebAssemblyLowerEmscriptenEHSjLjPass ( PassRegistry & )

◆ initializeWebAssemblyLowerRefTypesIntPtrConvPass()

void llvm::initializeWebAssemblyLowerRefTypesIntPtrConvPass ( PassRegistry & )

◆ initializeWebAssemblyMCLowerPrePassPass()

void llvm::initializeWebAssemblyMCLowerPrePassPass ( PassRegistry & )

◆ initializeWebAssemblyMemIntrinsicResultsPass()

void llvm::initializeWebAssemblyMemIntrinsicResultsPass ( PassRegistry & )

◆ initializeWebAssemblyNullifyDebugValueListsPass()

void llvm::initializeWebAssemblyNullifyDebugValueListsPass ( PassRegistry & )

◆ initializeWebAssemblyOptimizeLiveIntervalsPass()

void llvm::initializeWebAssemblyOptimizeLiveIntervalsPass ( PassRegistry & )

◆ initializeWebAssemblyPeepholePass()

void llvm::initializeWebAssemblyPeepholePass ( PassRegistry & )

◆ initializeWebAssemblyRefTypeMem2LocalPass()

void llvm::initializeWebAssemblyRefTypeMem2LocalPass ( 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 & )

◆ initializeWindowsSecureHotPatchingPass()

LLVM_ABI void llvm::initializeWindowsSecureHotPatchingPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeWinEHPreparePass()

LLVM_ABI void llvm::initializeWinEHPreparePass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeWinEHStatePassPass()

void llvm::initializeWinEHStatePassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeWriteBitcodePassPass()

LLVM_ABI void llvm::initializeWriteBitcodePassPass ( PassRegistry & )

References LLVM_ABI.

◆ initializeWriteDXILPassPass()

void llvm::initializeWriteDXILPassPass ( PassRegistry & )

Initializer for dxil writer pass.

Referenced by LLVMInitializeDirectXTarget().

◆ initializeX86ArgumentStackSlotPassPass()

void llvm::initializeX86ArgumentStackSlotPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86AsmPrinterPass()

void llvm::initializeX86AsmPrinterPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86AvoidSFBPassPass()

void llvm::initializeX86AvoidSFBPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86AvoidTrailingCallPassPass()

void llvm::initializeX86AvoidTrailingCallPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86CallFrameOptimizationPass()

void llvm::initializeX86CallFrameOptimizationPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86CmovConverterPassPass()

void llvm::initializeX86CmovConverterPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86DAGToDAGISelLegacyPass()

void llvm::initializeX86DAGToDAGISelLegacyPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86DomainReassignmentPass()

void llvm::initializeX86DomainReassignmentPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86DynAllocaExpanderPass()

void llvm::initializeX86DynAllocaExpanderPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86ExecutionDomainFixPass()

void llvm::initializeX86ExecutionDomainFixPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86ExpandPseudoPass()

void llvm::initializeX86ExpandPseudoPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FastPreTileConfigPass()

void llvm::initializeX86FastPreTileConfigPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FastTileConfigPass()

void llvm::initializeX86FastTileConfigPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FixupInstTuningPassPass()

void llvm::initializeX86FixupInstTuningPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FixupSetCCPassPass()

void llvm::initializeX86FixupSetCCPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FixupVectorConstantsPassPass()

void llvm::initializeX86FixupVectorConstantsPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86FlagsCopyLoweringPassPass()

void llvm::initializeX86FlagsCopyLoweringPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86LoadValueInjectionLoadHardeningPassPass()

void llvm::initializeX86LoadValueInjectionLoadHardeningPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86LoadValueInjectionRetHardeningPassPass()

void llvm::initializeX86LoadValueInjectionRetHardeningPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86LowerAMXIntrinsicsLegacyPassPass()

void llvm::initializeX86LowerAMXIntrinsicsLegacyPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86LowerAMXTypeLegacyPassPass()

void llvm::initializeX86LowerAMXTypeLegacyPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86LowerTileCopyPass()

void llvm::initializeX86LowerTileCopyPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86OptimizeLEAPassPass()

void llvm::initializeX86OptimizeLEAPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86PartialReductionPass()

void llvm::initializeX86PartialReductionPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86PreTileConfigPass()

void llvm::initializeX86PreTileConfigPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86ReturnThunksPass()

void llvm::initializeX86ReturnThunksPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86SpeculativeExecutionSideEffectSuppressionPass()

void llvm::initializeX86SpeculativeExecutionSideEffectSuppressionPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86SpeculativeLoadHardeningPassPass()

void llvm::initializeX86SpeculativeLoadHardeningPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86SuppressAPXForRelocationPassPass()

void llvm::initializeX86SuppressAPXForRelocationPassPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86TileConfigPass()

void llvm::initializeX86TileConfigPass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeX86WinEHUnwindV2Pass()

void llvm::initializeX86WinEHUnwindV2Pass ( PassRegistry & )

Referenced by LLVMInitializeX86Target().

◆ initializeXCoreAsmPrinterPass()

void llvm::initializeXCoreAsmPrinterPass ( PassRegistry & )

◆ initializeXCoreDAGToDAGISelLegacyPass()

void llvm::initializeXCoreDAGToDAGISelLegacyPass ( PassRegistry & )

◆ initializeXCoreLowerThreadLocalPass()

void llvm::initializeXCoreLowerThreadLocalPass ( PassRegistry & p)

◆ initializeXRayInstrumentationLegacyPass()

LLVM_ABI void llvm::initializeXRayInstrumentationLegacyPass ( PassRegistry & )

References LLVM_ABI.

Referenced by initializeCodeGen().

◆ initializeXtensaAsmPrinterPass()

void llvm::initializeXtensaAsmPrinterPass ( PassRegistry & )

◆ initRandomSeedOptions()

void llvm::initRandomSeedOptions ( )

Definition at line 43 of file RandomNumberGenerator.cpp.

References Seed.

Referenced by initCommonOptions().

◆ initSignalsOptions()

void llvm::initSignalsOptions ( )

Definition at line 63 of file Signals.cpp.

Referenced by initCommonOptions().

◆ initStatisticOptions()

void llvm::initStatisticOptions ( )

Definition at line 49 of file Statistic.cpp.

References EnableStats, llvm::cl::Hidden, llvm::cl::location(), and StatsAsJSON.

Referenced by initCommonOptions().

◆ initTimerOptions()

void llvm::initTimerOptions ( )

Definition at line 554 of file Timer.cpp.

References ManagedTimerGlobals.

Referenced by initCommonOptions().

◆ initWithColorOptions()

void llvm::initWithColorOptions ( )

Definition at line 34 of file WithColor.cpp.

References UseColor.

Referenced by initCommonOptions().

◆ inlineCostFeatureToMlFeature()

FeatureIndex llvm::inlineCostFeatureToMlFeature ( InlineCostFeatureIndex Feature)
constexpr

Definition at line 159 of file InlineModelFeatureMaps.h.

Referenced by llvm::MLInlineAdvisor::getAdviceImpl().

◆ inlineCostStr()

std::string llvm::inlineCostStr ( const InlineCost & IC)

Utility for extracting the inline cost message to a string.

Definition at line 392 of file InlineAdvisor.cpp.

References Remark.

Referenced by shouldInline().

◆ InlineFunction() [1/2]

llvm::InlineResult llvm::InlineFunction ( CallBase & CB,
InlineFunctionInfo & IFI,
bool MergeAttributes = false,
AAResults * CalleeAAR = nullptr,
bool InsertLifetime = true,
Function * ForwardVarArgsTo = nullptr,
OptimizationRemarkEmitter * ORE = 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.

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.

The callee's function attributes are merged into the callers' if MergeAttributes is set to true.

Definition at line 3413 of file InlineFunction.cpp.

References CanInlineCallSite(), and InlineFunctionImpl().

Referenced by llvm::coro::BaseCloner::deriveNewFramePointer(), InlineFunction(), InsertSafepointPoll(), processCall(), replaceCoroEndAsync(), llvm::InlinerPass::run(), llvm::ModuleInlinerPass::run(), and llvm::coro::AsyncABI::splitCoroutine().

◆ InlineFunction() [2/2]

llvm::InlineResult llvm::InlineFunction ( CallBase & CB,
InlineFunctionInfo & IFI,
PGOContextualProfile & CtxProf,
bool MergeAttributes = false,
AAResults * CalleeAAR = nullptr,
bool InsertLifetime = true,
Function * ForwardVarArgsTo = nullptr,
OptimizationRemarkEmitter * ORE = nullptr )

Same as above, but it will update the contextual profile.

If the contextual profile is invalid (i.e. not loaded because it is not present), it defaults to the behavior of the non-contextual profile updating variant above. This makes it easy to drop-in replace uses of the non-contextual overload.

Definition at line 2363 of file InlineFunction.cpp.

References assert(), count_if(), Deleted, llvm::CallBase::getCalledFunction(), llvm::CallBase::getCaller(), llvm::CtxProfAnalysis::getCallsiteInstrumentation(), llvm::AssignGUIDPass::getGUID(), llvm::PGOContextualProfile::getNumCallsites(), llvm::PGOContextualProfile::getNumCounters(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, InlineFunction(), llvm::PGOContextualProfile::isInSpecializedModule(), remapIndices(), size(), and llvm::PGOContextualProfile::update().

◆ InlineFunctionImpl()

void llvm::InlineFunctionImpl ( CallBase & CB,
InlineFunctionInfo & IFI,
bool MergeAttributes = false,
AAResults * CalleeAAR = nullptr,
bool InsertLifetime = true,
Function * ForwardVarArgsTo = nullptr,
OptimizationRemarkEmitter * ORE = nullptr )

This should generally not be used, use InlineFunction instead.

This function inlines the called function into the basic block of the caller.

Perform mechanical inlining of CB into the caller.

This does not perform any legality or profitability checks for the inlining. This assumes that CanInlineCallSite was already called, populated IFI, and returned InlineResult::success.

Also assumes that isInlineViable returned InlineResult::success for the called function.

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.

Preserve all attributes on of the call and its parameters.

Definition at line 2596 of file InlineFunction.cpp.

References AddAliasScopeMetadata(), AddAlignmentAssumptions(), AddParamAndFnBasicAttributes(), AddReturnAttributes(), allocaWouldBeStaticInEntry(), llvm::SmallVectorImpl< T >::append(), append_range(), llvm::CallBase::arg_begin(), llvm::Function::arg_begin(), llvm::Function::arg_end(), llvm::CallBase::arg_size(), llvm::CallBase::args(), assert(), llvm::BasicBlock::begin(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::InlineFunctionInfo::CalleeBFI, llvm::InlineFunctionInfo::CallerBFI, llvm::InlineFunctionInfo::CallSiteEHPad, cast(), changeToUnreachable(), llvm::SmallVectorImpl< T >::clear(), CloneAndPruneFunctionInto(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::ClonedCodeInfo::ContainsMemProfMetadata, llvm::InlineFunctionInfo::ConvergenceControlToken, llvm::BranchInst::Create(), llvm::CallBase::Create(), llvm::CallInst::Create(), llvm::PHINode::Create(), llvm::IRBuilderBase::CreateLifetimeStart(), DL, llvm::CallBase::doesNotThrow(), dyn_cast(), dyn_cast_or_null(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), erase_if(), llvm::BasicBlock::eraseFromParent(), llvm::Instruction::eraseFromParent(), F, fixupAssignments(), fixupLineNumbers(), llvm::Function::front(), llvm::PoisonValue::get(), llvm::AllocaInst::getAllocationSize(), llvm::CallBase::getArgOperand(), llvm::InlineFunctionInfo::GetAssumptionCache, llvm::objcarc::getAttachedARCFunctionKind(), llvm::CallBase::getAttributes(), llvm::BlockFrequencyInfo::getBlockFreq(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCalledOperand(), llvm::CallBase::getCallingConv(), llvm::Function::getCallingConv(), llvm::Value::getContext(), getConvergenceEntry(), llvm::Instruction::getDataLayout(), getDebugLoc(), llvm::Instruction::getDebugLoc(), llvm::Function::getEntryCount(), llvm::BasicBlock::getFirstNonPHIIt(), llvm::CallBase::getFunctionType(), llvm::Function::getFunctionType(), llvm::Function::getGC(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::CallBase::getNumOperandBundles(), llvm::FunctionType::getNumParams(), llvm::Instruction::getOpcode(), llvm::CallBase::getOperandBundle(), llvm::CallBase::getOperandBundleAt(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::CallBase::getParamAlign(), llvm::Function::getParamAlign(), llvm::CallBase::getParamByValType(), llvm::BasicBlock::getParent(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Function::getPersonalityFn(), llvm::CallBase::getRetAttributes(), llvm::Function::getReturnType(), llvm::Function::getSubprogram(), llvm::CallInst::getTailCallKind(), llvm::DebugLoc::getTemporary(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::DebugLoc::getUnknown(), getUnwindDestToken(), HandleByValArgument(), HandleByValArgumentInit(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::Function::hasGC(), hasLifetimeMarkers(), llvm::Function::hasPersonalityFn(), I, II, llvm::InlineFunctionInfo::InlinedCallSites, inlineRetainOrClaimRVCalls(), IRBuilder(), isa(), isAssignmentTrackingEnabled(), llvm::CallBase::isByValArgument(), llvm::GlobalValue::isDeclaration(), llvm::Function::isIntrinsic(), llvm::CallInst::isMustTailCall(), llvm::AllocaInst::isSwiftError(), llvm::Type::isVoidTy(), make_early_inc_range(), make_range(), llvm::objcarc::None, llvm::LLVMContext::OB_deopt, llvm::ClonedCodeInfo::OperandBundleCallSites, PHI, pred_empty(), Profile, PropagateCallSiteMetadata(), propagateMemProfMetadata(), PropagateOperandBundles(), llvm::InlineFunctionInfo::PSI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::CallBase::removeRetAttrs(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorImpl< T >::reserve(), salvageKnowledge(), llvm::CallBase::setAttributes(), llvm::BlockFrequencyInfo::setBlockFreq(), llvm::CallBase::setCallingConv(), llvm::Function::setCallingConv(), llvm::Instruction::setDebugLoc(), llvm::CallBase::setDoesNotThrow(), llvm::User::setOperand(), llvm::CallInst::setTailCallKind(), simplifyInstruction(), Size, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::BasicBlock::splice(), llvm::BasicBlock::splitBasicBlock(), llvm::InlineFunctionInfo::StaticAllocas, llvm::Constant::stripPointerCasts(), std::swap(), llvm::CallInst::TCK_None, llvm::CallInst::TCK_NoTail, trackInlinedStores(), updateCallerBFI(), updateCallProfile(), llvm::InlineFunctionInfo::UpdateProfile, and llvm::Value::use_empty().

Referenced by InlineFunction().

◆ insertAssignInstr()

◆ InsertDebugValueAtStoreLoc()

void llvm::InsertDebugValueAtStoreLoc ( DbgVariableRecord * DVR,
StoreInst * SI,
DIBuilder & Builder )

===------------------------------------------------------------------—===// Dbg Intrinsic utilities

Creates and inserts a dbg_value record intrinsic before a store that has an associated llvm.dbg.value intrinsic.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1708 of file Local.cpp.

References assert(), dropInitialDeref(), getDebugValueLoc(), llvm::DbgVariableRecord::getExpression(), llvm::DbgVariableRecord::getVariable(), and insertDbgValueOrDbgVariableRecord().

Referenced by rewriteSingleStoreAlloca().

◆ insertDebugValuesForPHIs()

◆ insertIfNotContained()

template<typename CycleT>
bool llvm::insertIfNotContained ( SmallVector< CycleT * > & Cycles,
CycleT * Candidate )
static

Add Candidate to Cycles if it is not already contained in Cycles.

Returns
true iff Candidate was added to Cycles.

Definition at line 941 of file GenericUniformityImpl.h.

References any_of(), and llvm::CallingConv::C.

Referenced by llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence().

◆ insertLineSequence()

void llvm::insertLineSequence ( std::vector< TrackedRow > & Seq,
std::vector< TrackedRow > & Rows )
static

Insert the new line info sequence Seq into the current set of already linked line info Rows.

Definition at line 2220 of file DWARFLinker.cpp.

References append_range(), and partition_point().

◆ insertMultibyteShift()

◆ InsertPreheaderForLoop()

BasicBlock * llvm::InsertPreheaderForLoop ( Loop * L,
DominatorTree * DT,
LoopInfo * LI,
MemorySSAUpdater * MSSAU,
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 115 of file LoopSimplify.cpp.

References dbgs(), llvm::Value::getName(), isa(), LLVM_DEBUG, P, placeSplitBlockCarefully(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SplitBlockPredecessors().

Referenced by simplifyOneLoop().

◆ inst_begin() [1/4]

const_inst_iterator llvm::inst_begin ( const Function & F)
inline

Definition at line 148 of file InstIterator.h.

References F.

◆ inst_begin() [2/4]

const_inst_iterator llvm::inst_begin ( const Function * F)
inline

Definition at line 134 of file InstIterator.h.

References F.

◆ inst_begin() [3/4]

inst_iterator llvm::inst_begin ( Function & F)
inline

Definition at line 143 of file InstIterator.h.

References F.

◆ inst_begin() [4/4]

inst_iterator llvm::inst_begin ( Function * F)
inline

Definition at line 129 of file InstIterator.h.

References F.

Referenced by dumpExampleDependence(), instructions(), instructions(), instructions(), and instructions().

◆ inst_end() [1/4]

const_inst_iterator llvm::inst_end ( const Function & F)
inline

Definition at line 151 of file InstIterator.h.

References F.

◆ inst_end() [2/4]

const_inst_iterator llvm::inst_end ( const Function * F)
inline

Definition at line 137 of file InstIterator.h.

References F.

◆ inst_end() [3/4]

inst_iterator llvm::inst_end ( Function & F)
inline

Definition at line 144 of file InstIterator.h.

References F.

◆ inst_end() [4/4]

inst_iterator llvm::inst_end ( Function * F)
inline

Definition at line 130 of file InstIterator.h.

References F.

Referenced by dumpExampleDependence(), instructions(), instructions(), instructions(), and instructions().

◆ 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 159 of file ErrorHandling.cpp.

References assert(), BadAllocErrorHandler, and BadAllocErrorHandlerUserData.

◆ 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 77 of file ErrorHandling.cpp.

References assert(), ErrorHandler, and ErrorHandlerUserData.

Referenced by llvm::hashing::detail::get_execution_seed(), LLVMInstallFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::ScopedFatalErrorHandler().

◆ install_out_of_memory_new_handler()

void llvm::install_out_of_memory_new_handler ( )

Definition at line 225 of file ErrorHandling.cpp.

References assert(), and out_of_memory_new_handler().

Referenced by llvm::InitLLVM::InitLLVM().

◆ INSTR_PROF_DATA() [1/2]

llvm::INSTR_PROF_DATA ( const uint64_t ,
llvm::Type::getInt64Ty(Ctx) ,
NameRef ,
ConstantInt::get(llvm::Type::getInt64Ty(Ctx), IndexedInstrProf::ComputeHash(getPGOFuncNameVarInitializer(Inc->getName())))  ) const

◆ INSTR_PROF_DATA() [2/2]

FunctionAddr llvm::INSTR_PROF_DATA ( IntPtrT ,
llvm::PointerType::getUnqual(Ctx) ,
Values ,
ValuesPtrExpr  ) const

◆ INSTR_PROF_VTABLE_DATA()

FunctionAddr VTableAddr llvm::INSTR_PROF_VTABLE_DATA ( const uint32_t ,
llvm::Type::getInt32Ty(Ctx) ,
VTableSize ,
ConstantInt::get(llvm::Type::getInt32Ty(Ctx), VTableSizeVal)  )

◆ instrprof_category()

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

Definition at line 193 of file InstrProf.cpp.

Referenced by make_error_code().

◆ instrs() [1/2]

auto llvm::instrs ( const BasicBlock & BB)
inline

Definition at line 27 of file SSAContext.h.

References llvm::BasicBlock::begin(), llvm::BasicBlock::end(), and make_range().

◆ instrs() [2/2]

auto llvm::instrs ( const MachineBasicBlock & BB)
inline

Definition at line 27 of file MachineSSAContext.h.

References llvm::MachineBasicBlock::instrs().

◆ instructions() [1/4]

const_inst_range llvm::instructions ( const Function & F)
inline

Definition at line 154 of file InstIterator.h.

References F, inst_begin(), and inst_end().

◆ instructions() [2/4]

const_inst_range llvm::instructions ( const Function * F)
inline

Definition at line 140 of file InstIterator.h.

References F, inst_begin(), and inst_end().

◆ instructions() [3/4]

inst_range llvm::instructions ( Function & F)
inline

Definition at line 145 of file InstIterator.h.

References F, inst_begin(), and inst_end().

◆ instructions() [4/4]

inst_range llvm::instructions ( Function * F)
inline

Definition at line 131 of file InstIterator.h.

References F, inst_begin(), and inst_end().

◆ instructionsWithoutDebug()

template<typename IterT>
auto llvm::instructionsWithoutDebug ( IterT It,
IterT End,
bool SkipPseudoOp = true )
inline

◆ int64fromDynamicAPInt()

int64_t llvm::int64fromDynamicAPInt ( const DynamicAPInt & X)
inlinestatic

This just calls through to the operator int64_t, but it's useful when a function pointer is required.

(Although this is marked inline, it is still possible to obtain and use a function pointer to this.)

Definition at line 247 of file DynamicAPInt.h.

References X.

◆ intCCToAVRCC()

◆ intCondCode2Icc()

VECC::CondCode llvm::intCondCode2Icc ( ISD::CondCode CC)
inlinestatic

◆ interleave() [1/4]

template<typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>
void llvm::interleave ( const Container & c,
StreamT & os,
const StringRef & separator )
inline

Definition at line 2203 of file STLExtras.h.

References interleave(), and T.

◆ interleave() [2/4]

template<typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>
void llvm::interleave ( const Container & c,
StreamT & os,
UnaryFunctor each_fn,
const StringRef & separator )
inline

Overload of interleave for the common case of string separator.

Definition at line 2197 of file STLExtras.h.

References adl_begin(), adl_end(), and interleave().

◆ interleave() [3/4]

template<typename Container, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t< !std::is_constructible<StringRef, UnaryFunctor>::value && !std::is_constructible<StringRef, NullaryFunctor>::value>>
void llvm::interleave ( const Container & c,
UnaryFunctor each_fn,
NullaryFunctor between_fn )
inline

Definition at line 2189 of file STLExtras.h.

References adl_begin(), adl_end(), and interleave().

◆ interleave() [4/4]

template<typename ForwardIterator, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t< !std::is_constructible<StringRef, UnaryFunctor>::value && !std::is_constructible<StringRef, NullaryFunctor>::value>>
void llvm::interleave ( ForwardIterator begin,
ForwardIterator end,
UnaryFunctor each_fn,
NullaryFunctor between_fn )
inline

An STL-style algorithm similar to std::for_each that applies a second functor between every pair of elements.

This provides the control flow logic to, for example, print a comma-separated list:

interleave(names.begin(), names.end(),
[&](StringRef name) { os << name; },
[&] { os << ", "; });
static const char * name
void interleave(ForwardIterator begin, ForwardIterator end, UnaryFunctor each_fn, NullaryFunctor between_fn)
An STL-style algorithm similar to std::for_each that applies a second functor between every pair of e...
Definition STLExtras.h:2173

Definition at line 2173 of file STLExtras.h.

Referenced by llvm::sandboxir::Function::dumpNameAndArgs(), llvm::sandboxir::Function::dumpOS(), interleave(), interleave(), interleave(), interleaveComma(), llvm::InterleavedRange< Range >::operator<<, llvm::sandboxir::PassManager< ParentPass, ContainedPass >::print(), and llvm::sandboxir::ShuffleMask::print().

◆ interleaveComma() [1/2]

template<typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>
void llvm::interleaveComma ( const Container & c,
StreamT & os )
inline

Definition at line 2217 of file STLExtras.h.

References interleaveComma(), and T.

◆ interleaveComma() [2/2]

template<typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>
void llvm::interleaveComma ( const Container & c,
StreamT & os,
UnaryFunctor each_fn )
inline

◆ interleaved()

template<typename Range>
InterleavedRange< Range > llvm::interleaved ( const Range & R,
StringRef Separator = ", ",
StringRef Prefix = "",
StringRef Suffix = "" )

Output range R as a sequence of interleaved elements.

Requires the range element type to be printable using raw_ostream& operator<<. The Separator and Prefix / Suffix can be customized. Examples:

SmallVector<int> Vals = {1, 2, 3};
OS << interleaved(Vals); // ==> "1, 2, 3"
OS << interleaved(Vals, ";"); // ==> "1;2;3"
OS << interleaved(Vals, " ", "{", "}"); // ==> "{1 2 3}"
InterleavedRange< Range > interleaved(const Range &R, StringRef Separator=", ", StringRef Prefix="", StringRef Suffix="")
Output range R as a sequence of interleaved elements.

Definition at line 76 of file InterleavedRange.h.

References Range.

Referenced by llvm::opt::Arg::getAsString(), llvm::gsym::operator<<(), operator<<(), operator<<(), llvm::PBQP::operator<<(), llvm::SCEV::print(), and llvm::opt::Arg::render().

◆ interleaved_array()

template<typename Range>
InterleavedRange< Range > llvm::interleaved_array ( const Range & R,
StringRef Separator = ", " )

Output range R as an array of interleaved elements.

Requires the range element type to be printable using raw_ostream& operator<<. The Separator can be customized. Examples:

SmallVector<int> Vals = {1, 2, 3};
OS << interleaved_array(Vals); // ==> "[1, 2, 3]"
OS << interleaved_array(Vals, ";"); // ==> "[1;2;3]"
OS << interleaved_array(Vals, " "); // ==> "[1 2 3]"
InterleavedRange< Range > interleaved_array(const Range &R, StringRef Separator=", ")
Output range R as an array of interleaved elements.

Definition at line 92 of file InterleavedRange.h.

References Range.

◆ internalizeModule()

bool llvm::internalizeModule ( Module & TheModule,
std::function< bool(const GlobalValue &)> MustPreserveGV )
inline

Helper function to internalize functions and variables in a Module.

Definition at line 78 of file Internalize.h.

References llvm::InternalizePass::internalizeModule().

Referenced by thinLTOInternalizeModule().

◆ interpretDecimal()

Error 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 1009 of file VectorUtils.cpp.

References addToAccessGroupList(), assert(), cast(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::MDNode::get(), llvm::Value::getContext(), llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), isValidAsAccessGroup(), llvm::Instruction::mayReadOrWriteMemory(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by combineMetadata(), and propagateMetadata().

◆ intrinsicPropagatesPoison()

bool llvm::intrinsicPropagatesPoison ( Intrinsic::ID IID)

Return whether this intrinsic propagates poison for all operands.

Definition at line 7895 of file ValueTracking.cpp.

Referenced by propagatesPoison(), and simplifyIntrinsic().

◆ invalidateParentIListOrdering() [1/2]

template<>
void llvm::invalidateParentIListOrdering ( BasicBlock * BB)

Definition at line 135 of file BasicBlock.cpp.

◆ invalidateParentIListOrdering() [2/2]

template<typename ParentClass>
void llvm::invalidateParentIListOrdering ( ParentClass * Parent)
inline

◆ inverse_children()

◆ inverse_depth_first()

template<class T>
iterator_range< idf_iterator< T > > llvm::inverse_depth_first ( const T & G)

Definition at line 282 of file DepthFirstIterator.h.

References G, idf_begin(), idf_end(), make_range(), and T.

Referenced by findArgParts(), and MarkBlocksLiveIn().

◆ 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 306 of file DepthFirstIterator.h.

References G, idf_ext_begin(), idf_ext_end(), make_range(), and T.

Referenced by llvm::SampleProfileInference< FT >::apply().

◆ inverse_fabs()

FPClassTest llvm::inverse_fabs ( FPClassTest Mask)

Return the test mask which returns true after fabs is applied to the value.

Definition at line 35 of file FloatingPointMode.cpp.

References fcInf, fcNan, fcNormal, fcPosInf, fcPosNormal, fcPosSubnormal, fcPosZero, fcSubnormal, and fcZero.

Referenced by llvm::GenericFloatingPointPredicateUtils< SSAContext >::fcmpImpliesClass(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().

◆ inverse_nodes()

template<class GraphType>
iterator_range< typename GraphTraits< Inverse< GraphType > >::nodes_iterator > llvm::inverse_nodes ( const GraphType & G)

Definition at line 142 of file GraphTraits.h.

References G, and make_range().

◆ inverse_post_order()

template<class T>
iterator_range< ipo_iterator< T > > llvm::inverse_post_order ( const T & G)

Definition at line 242 of file PostOrderIterator.h.

References G, ipo_begin(), ipo_end(), make_range(), and T.

◆ 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 )

Definition at line 267 of file PostOrderIterator.h.

References G, ipo_ext_begin(), ipo_ext_end(), make_range(), and T.

◆ inversePermutation()

◆ InvertBranch()

◆ invertCondition()

◆ invertFPClassTestIfSimpler()

FPClassTest llvm::invertFPClassTestIfSimpler ( FPClassTest Test,
bool UseFCmp )

Evaluates if the specified FP class test is better performed as the inverse (i.e.

fewer instructions should be required to lower it). An example is the test "inf|normal|subnormal|zero", which is an inversion of "nan".

Parameters
TestThe test as specified in 'is_fpclass' intrinsic invocation.
UseFCmpThe intention is to perform the comparison using floating-point compare instructions which check for nan.
Returns
The inverted test, or fcNone, if inversion does not produce a simpler test.

Definition at line 176 of file CodeGenCommonISel.cpp.

References fcFinite, fcInf, fcNan, fcNegFinite, fcNegInf, fcNegNormal, fcNegSubnormal, fcNegZero, fcNone, fcNormal, fcPosFinite, fcPosInf, fcPosNormal, fcPosSubnormal, fcPosZero, fcQNan, fcSNan, fcSubnormal, fcZero, llvm_unreachable, and Test.

Referenced by llvm::TargetLowering::expandIS_FPCLASS().

◆ invokeGlobalTargetPassConfigCallbacks()

void llvm::invokeGlobalTargetPassConfigCallbacks ( TargetMachine & TM,
PassManagerBase & PM,
TargetPassConfig * PassConfig )

Definition at line 21 of file RegisterTargetPassConfigCallback.cpp.

References Reg, and TargetPassConfigCallbacks.

Referenced by addPassesToGenerateCode().

◆ 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 )

◆ IRBuilder() [1/7]

template<typename FolderTy>
llvm::IRBuilder ( BasicBlock * ,
BasicBlock::iterator ,
FolderTy ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder< FolderTy >

◆ IRBuilder() [2/7]

llvm::IRBuilder ( BasicBlock * ,
BasicBlock::iterator ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder<>

◆ IRBuilder() [3/7]

template<typename FolderTy>
llvm::IRBuilder ( BasicBlock * ,
FolderTy ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder< FolderTy >

◆ IRBuilder() [4/7]

llvm::IRBuilder ( BasicBlock * ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder<>

◆ IRBuilder() [5/7]

llvm::IRBuilder ( Instruction * ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder<>

◆ IRBuilder() [6/7]

template<typename FolderTy, typename InserterTy>
llvm::IRBuilder ( LLVMContext & ,
FolderTy ,
InserterTy ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder< FolderTy, InserterTy >

◆ IRBuilder() [7/7]

llvm::IRBuilder ( LLVMContext & ,
MDNode * ,
ArrayRef< OperandBundleDef >  ) -> IRBuilder<>

◆ is_contained() [1/2]

template<typename R, typename E>
bool llvm::is_contained ( R && Range,
const E & Element )

Returns true if Element is found in Range.

Delegates the check to either .contains(Element), .find(Element), or std::find, in this order of preference. This is intended as the canonical way to check if an element exists in a range in generic code or range type that does not expose a .contains(Element) member.

Definition at line 1877 of file STLExtras.h.

References adl_begin(), adl_end(), E(), llvm::detail::HasMemberContains, llvm::detail::HasMemberFind, and Range.

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::dwarf_linker::classic::DWARFLinker::addAccelTableKind(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::addAccelTableKind(), llvm::cl::Option::addCategory(), addLocIfNotPresent(), llvm::RecurrenceDescriptor::AddReductionVar(), addRegDescribedVar(), llvm::MachO::InterfaceFile::addRPath(), llvm::orc::JITDylib::addToLinkOrder(), llvm::DbgVariableIntrinsic::addVariableLocationOps(), llvm::DbgVariableRecord::addVariableLocationOps(), llvm::SDNode::areOnlyUsersOf(), argHasNVVMAnnotation(), BBHasFallthrough(), llvm::LoopVectorizationLegality::blockNeedsPredication(), buildDbgValueForSpill(), llvm::opt::OptTable::buildPrefixChars(), canCreateUndefOrPoison(), canCreateUndefOrPoison(), canEvaluateShuffled(), canMoveAboveCall(), canParallelizeReductionWhenUnrolling(), canPredictSuccessors(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), llvm::NVPTXMachineFunctionInfo::checkImageHandleSymbol(), CheckTyN(), checkVOPDRegConstraints(), llvm::objcopy::elf::RelocationSectionBase::classof(), llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(), colorEHFunclets(), combineX86ShufflesRecursively(), computeUnlikelySuccessors(), llvm::SetVector< EdgeType * >::contains(), llvm::AppleAcceleratorTable::containsAtomType(), llvm::opt::Arg::containsValue(), llvm::AllocationOrder::create(), createUnreachableSwitchDefault(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), directlyImpliesPoison(), llvm::object::ELFObjectFile< ELFT >::dynamic_relocation_sections(), llvm::LiveRangeEdit::eliminateDeadDefs(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::emitCommonSectionsAndWriteCompileUnitsToTheOutput(), llvm::RISCVTargetLowering::EmitKCFICheck(), llvm::Evaluator::EvaluateFunction(), ExpandCryptoAEK(), failForInvalidBundles(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), llvm::X86::fillValidTuneCPUList(), FindCheckType(), llvm::dwarf_linker::parallel::TypeUnit::finishCloningAndEmit(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldBranchToCommonDest(), foldPatchpoint(), llvm::InstCombinerImpl::foldSelectShuffle(), foldSelectShuffleWith1Binop(), foldShuffleWithInsert(), llvm::InstCombinerImpl::foldVectorBinop(), forwardSwitchConditionToPHI(), llvm::AliasSetTracker::getAliasSetFor(), getAppleRuntimeUnrollPreferences(), llvm::PPCMCCodeEmitter::getDispRI34PCRelEncoding(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), getKnowledgeForValue(), getKnowledgeFromUse(), llvm::VPlan::getLiveIns(), getMetadataToPropagate(), llvm::VPlan::getMiddleBlock(), llvm::WindowScheduler::getOriStage(), getOutliningPenalty(), getPushOrLibCallsSavedInfo(), getQCISavedInfo(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::RISCVRegisterInfo::getRegAllocationHints(), llvm::SystemZRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::X86RegisterInfo::getRegAllocationHints(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::SPIRVExtensionsParser::getValidExtensions(), llvm::CallBase::hasArgument(), llvm::sandboxir::CallBase::hasArgument(), llvm::Record::hasDirectSuperClass(), HasImplicitCPSRDef(), llvm::MCInstrDesc::hasImplicitUseOfPhysReg(), llvm::CallBase::hasOperandBundlesOtherThan(), llvm::TargetRegisterInfo::hasRegUnit(), hasSameNumEltsOnAllVectorOperands(), hasSelfReference(), llvm::MachO::InterfaceFile::hasTarget(), llvm::MachO::InterfaceFileRef::hasTarget(), llvm::MachO::Symbol::hasTarget(), llvm::rdf::DataFlowGraph::hasUntrackedRef(), llvm::cl::HideUnrelatedOptions(), llvm::HexagonBlockRanges::RangeList::include(), llvm::jitlink::initRelaxAux(), llvm::SetVector< EdgeType * >::insert(), insertDebugValuesForPHIs(), llvm::MemorySSAUpdater::insertDef(), llvm::mca::Scheduler::instructionCheck(), llvm::DWARFContext::isAddressSizeSupported(), llvm::Loop::isAnnotatedParallel(), llvm::AArch64RegisterInfo::isArgumentRegister(), isCriticalEdge(), llvm::HexagonInstrInfo::isDependent(), llvm::jitlink::ELFLinkGraphBuilderBase::isDwarfSection(), isEndbrImm64(), llvm::GenericCycle< ContextT >::isEntry(), isEphemeralValueOf(), isExitBlock(), llvm::VPlan::isExitBlock(), llvm::rdf::TargetOperandInfo::isFixedReg(), llvm::AllocationOrder::isHint(), llvm::HexagonSubtarget::isHVXElementType(), llvm::HexagonSubtarget::isHVXVectorType(), llvm::VLIWResourceModel::isInPacket(), llvm::DataLayout::isLegalInteger(), llvm::PPCInstrInfo::isLoadFromStackSlot(), llvm::LoopBase< BlockT, LoopT >::isLoopLatch(), llvm::orc::isMachOInitializerSection(), IsMinMaxConsistingOf(), llvm::SDValue::isOperandOf(), llvm::MachineBasicBlock::isPredecessor(), llvm::omp::isPrivatizingConstruct(), isRegisterClassType(), llvm::ShuffleVectorInst::isReplicationMask(), llvm::SCEVExpander::isSafeToExpandAt(), llvm::LoongArchMachineFunctionInfo::isSExt32Register(), llvm::RISCVMachineFunctionInfo::isSExt32Register(), llvm::PPCInstrInfo::isStoreToStackSlot(), llvm::MachineBasicBlock::isSuccessor(), llvm::MCRegisterInfo::isSuperRegister(), llvm::Record::isTemplateArg(), false::SUnitWithMemInfo::isTriviallyDisjoint(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::isUpdateValid(), llvm::object::MachOObjectFile::isValidArch(), isValidCandidateForColdCC(), llvm::RISCVTargetLowering::LowerFormalArguments(), lowerV8I16GeneralSingleInputShuffle(), lowerVECTOR_SHUFFLE(), llvm::yaml::MappingTraits< SIArgument >::mapping(), llvm::objcopy::NameMatcher::matches(), llvm::logicalview::LVPatterns::matchOffsetPattern(), llvm::dwarf_linker::parallel::DependencyTracker::maybeAddReferencedRoots(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), MergeBlockIntoPredecessor(), llvm::SIInstrInfo::modifiesModeRegister(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::pdb::NativeEnumTypes::NativeEnumTypes(), llvm::VPBlendRecipe::onlyFirstLaneUsed(), llvm::VPCanonicalIVPHIRecipe::onlyFirstLaneUsed(), llvm::VPDerivedIVRecipe::onlyFirstLaneUsed(), llvm::VPEVLBasedIVPHIRecipe::onlyFirstLaneUsed(), llvm::VPFirstOrderRecurrencePHIRecipe::onlyFirstLaneUsed(), llvm::VPInstruction::onlyFirstLaneUsed(), llvm::VPInterleaveEVLRecipe::onlyFirstLaneUsed(), llvm::VPInterleaveRecipe::onlyFirstLaneUsed(), llvm::VPIRInstruction::onlyFirstLaneUsed(), llvm::VPReductionEVLRecipe::onlyFirstLaneUsed(), llvm::VPReductionPHIRecipe::onlyFirstLaneUsed(), llvm::VPReplicateRecipe::onlyFirstLaneUsed(), llvm::VPScalarIVStepsRecipe::onlyFirstLaneUsed(), llvm::VPUser::onlyFirstLaneUsed(), llvm::VPVectorEndPointerRecipe::onlyFirstLaneUsed(), llvm::VPVectorPointerRecipe::onlyFirstLaneUsed(), llvm::VPWidenGEPRecipe::onlyFirstLaneUsed(), llvm::VPWidenInductionRecipe::onlyFirstLaneUsed(), llvm::VPWidenIntrinsicRecipe::onlyFirstLaneUsed(), llvm::VPWidenLoadEVLRecipe::onlyFirstLaneUsed(), llvm::VPWidenLoadRecipe::onlyFirstLaneUsed(), llvm::VPWidenSelectRecipe::onlyFirstLaneUsed(), llvm::VPWidenStoreEVLRecipe::onlyFirstLaneUsed(), llvm::VPWidenStoreRecipe::onlyFirstLaneUsed(), llvm::VPCanonicalIVPHIRecipe::onlyFirstPartUsed(), llvm::VPInstruction::onlyFirstPartUsed(), llvm::VPIRInstruction::onlyFirstPartUsed(), llvm::VPUser::onlyFirstPartUsed(), llvm::VPVectorEndPointerRecipe::onlyFirstPartUsed(), llvm::VPVectorPointerRecipe::onlyFirstPartUsed(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), llvm::SPIRVExtensionsParser::parse(), llvm::X86::parseTuneCPU(), llvm::yaml::Scanner::peekNext(), performExtractLastActiveCombine(), performVSelectCombine(), PhiHasDebugValue(), placeSplitBlockCarefully(), llvm::PMDataManager::preserveHigherLevelAnalysis(), llvm::SDValue::reachesChainWithoutSideEffects(), llvm::DomConditionCache::registerBranch(), llvm::orc::RTDyldObjectLinkingLayer::registerJITEventListener(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::registerOuterAnalysisInvalidation(), remapIndices(), rematerializeChain(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), removeSwitchAfterSelectFold(), llvm::DICompositeType::replaceElements(), llvm::DIMacroFile::replaceElements(), rescheduleCanonically(), llvm::RecordResolver::resolve(), llvm::GenericCycleInfoCompute< ContextT >::run(), llvm::InlinerPass::run(), llvm::ModuleInlinerPass::run(), llvm::StripDeadCGProfilePass::run(), salvageDebugInfoForDbgValues(), llvm::SelectionDAGISel::SelectCodeCommon(), shouldFoldCondBranchesToCommonDestination(), shouldPrintBeforeOrAfterPass(), shouldUseFrameHelper(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), simplifyShuffleVectorInst(), llvm::MachineBasicBlock::SplitCriticalEdge(), SplitKnownCriticalEdge(), llvm::MachineBasicBlock::splitSuccessor(), llvm::SelectionDAG::transferDbgValues(), llvm::slpvectorizer::BoUpSLP::transformNodes(), llvm::LegalityPredicates::typeInSet(), llvm::LegalityPredicates::typePairInSet(), llvm::LegalityPredicates::typeTupleInSet(), UnrollRuntimeLoopRemainder(), llvm::WindowScheduler::updateLiveIntervals(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), usesOperand(), llvm::VPBranchOnMaskRecipe::usesScalars(), llvm::VPIRInstruction::usesScalars(), llvm::VPPredInstPHIRecipe::usesScalars(), llvm::VPReplicateRecipe::usesScalars(), llvm::VPUser::usesScalars(), ValidateMVEStore(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::GenericConvergenceVerifier< ContextT >::verify(), llvm::ScalarEvolution::verify(), llvm::GenericCycle< ContextT >::verifyCycleNest(), llvm::SIInstrInfo::verifyInstruction(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().

◆ is_contained() [2/2]

template<typename T, typename E>
bool llvm::is_contained ( std::initializer_list< T > Set,
const E & Element )
constexpr

Returns true iff Element exists in Set.

This overload takes Set as an initializer list and is constexpr-friendly.

Definition at line 1890 of file STLExtras.h.

References E(), and T.

◆ is_sorted() [1/2]

template<typename R>
bool llvm::is_sorted ( R && Range)

Wrapper function around std::is_sorted to check if elements in a range R are sorted in non-descending order.

Definition at line 1906 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

◆ is_sorted() [2/2]

◆ is_TC1()

bool llvm::is_TC1 ( unsigned SchedClass)
inline

Definition at line 18 of file HexagonDepTimingClasses.h.

Referenced by llvm::HexagonInstrInfo::isTC1().

◆ is_TC2()

bool llvm::is_TC2 ( unsigned SchedClass)
inline

Definition at line 67 of file HexagonDepTimingClasses.h.

Referenced by llvm::HexagonInstrInfo::isTC2().

◆ is_TC2early()

bool llvm::is_TC2early ( unsigned SchedClass)
inline

Definition at line 99 of file HexagonDepTimingClasses.h.

Referenced by llvm::HexagonInstrInfo::isTC2Early().

◆ is_TC3x()

bool llvm::is_TC3x ( unsigned SchedClass)
inline

Definition at line 110 of file HexagonDepTimingClasses.h.

◆ is_TC4x()

bool llvm::is_TC4x ( unsigned SchedClass)
inline

Definition at line 143 of file HexagonDepTimingClasses.h.

Referenced by llvm::HexagonInstrInfo::isTC4x().

◆ isa() [1/2]

template<typename To, typename From>
bool llvm::isa ( const From & Val)
inlinenodiscard

isa<X> - Return true if the parameter to the template is an instance of one of the template type arguments.

Used like this:

if (isa<Type>(myVal)) { ... } if (isa<Type0, Type1, Type2>(myVal)) { ... }

Definition at line 548 of file Casting.h.

References llvm::CastIsPossible< To, From, Enable >::isPossible().

Referenced by llvm::orc::IRSymbolMapper::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), AddAliasScopeMetadata(), addAllGlobalValueUsers(), llvm::Instruction::addAnnotationMetadata(), llvm::Instruction::addAnnotationMetadata(), llvm::InstCombinerImpl::addDeadEdge(), addDiscriminators(), addEmuTlsVar(), llvm::DwarfUnit::addGlobalType(), llvm::vfs::InMemoryFileSystem::addHardLink(), addInitialSkeleton(), Prefetch::addInstruction(), llvm::MachineFunction::addLandingPad(), addLocAccess(), llvm::Value::addMetadata(), llvm::DataDependenceGraph::addNode(), addNonConstUser(), llvm::RecurrenceDescriptor::AddReductionVar(), AddReturnAttributes(), addScalarResumePhis(), llvm::objcopy::elf::Object::addSection(), llvm::IVUsers::AddUsersIfInteresting(), addValueAffectedByCondition(), adjustByValArgAlignment(), llvm::VPlanTransforms::adjustFixedOrderRecurrences(), llvm::AAMDNodes::adjustForAccess(), llvm::SystemZTTIImpl::adjustInliningThreshold(), llvm::MipsTargetLowering::AdjustInstrPostInstrSelection(), llvm::SCEVAAResult::alias(), allocaWouldBeStaticInEntry(), allowEmitFakeUse(), allowsPreservingNUW(), allSameBlock(), allSameOpcode(), allUsersAreInFunction(), allUsesOfLoadAndStores(), AllUsesOfValueWillTrapIfNull(), llvm::ValueMapCallbackVH< KeyT, ValueT, Config >::allUsesReplacedWith(), alwaysAvailable(), llvm::coro::Shape::analyze(), llvm::CodeMetrics::analyzeBasicBlock(), analyzeCostOfVecReduction(), analyzeExitPHIsForOutputUses(), analyzeGlobalAux(), analyzeICmp(), analyzeLoopUnrollCost(), llvm::fuzzerop::anyAggregateType(), llvm::PoisonFlags::apply(), llvm::AMDGPURegisterBankInfo::applyMappingBFE(), llvm::DwarfUnit::applySubprogramAttributes(), areBothVectorOrScalar(), areCompatibleCmpOps(), llvm::sandboxir::VecUtils::areConsecutive(), AreEquivalentAddressValues(), areGlobalsPotentiallyEqual(), llvm::ARMBaseInstrInfo::areLoadsFromSameBasePtr(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::ValueLatticeElement::asConstantInteger(), llvm::BitcodeReaderValueList::assignValue(), llvm::VPlanTransforms::attachCheckBlock(), AVRDAGToDAGISel::select< ISD::STORE >(), llvm::TinyPtrVector< ReachingDef >::back(), basicBlockCanReturn(), llvm::TinyPtrVector< ReachingDef >::begin(), llvm::BitstreamWriter::BitstreamWriter(), bitTrackingDCE(), blockIsSimpleEnoughToThreadThrough(), llvm::VPBlockUtils::blocksOnly(), breakBackedgeIfNotTaken(), buildClonedLoopBlocks(), llvm::MachineIRBuilder::buildConstant(), llvm::MachineIRBuilder::buildConstDbgValue(), llvm::MachineIRBuilder::buildDbgLabel(), llvm::MachineIRBuilder::buildDirectDbgValue(), BuildExactSDIV(), BuildExactUDIV(), llvm::slpvectorizer::BoUpSLP::buildExternalUses(), llvm::MachineIRBuilder::buildFConstant(), llvm::MachineIRBuilder::buildFIDbgValue(), buildFromShuffleMostly(), llvm::MachineIRBuilder::buildIndirectDbgValue(), BuildMI(), BuildMI(), buildNew(), llvm::TargetLowering::BuildSDIV(), llvm::TargetLowering::BuildUDIV(), llvm::ModuleSummaryIndex::calculateCallGraphRoot(), calculateClrEHStateNumbers(), calculateCXXStateForAsynchEH(), calculateRegisterUsageForPlan(), calculateRtStride(), calculateSEHStateForAsynchEH(), CalculateUnswitchCostMultiplier(), calculateUpperBound(), canAlwaysEvaluateInType(), llvm::GlobalValue::canBenefitFromLocalAlias(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), llvm::ARMTargetLowering::canCombineStoreAndExtract(), canConstantEvolve(), CanConstantFold(), canConvertValue(), canCreateUndefOrPoison(), canCreateUndefOrPoison(), canEmitConjunction(), canEvaluateShuffled(), llvm::FastISel::canFoldAddIntoGEP(), CanGenerateTest(), llvm::MemoryOpRemark::canHandle(), canHaveUnrollRemainder(), canHoistIVInc(), CanInlineCallSite(), canInstructionHaveMMRAs(), canLongjmp(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canMarkAsVisited(), CanMergeValues(), canNotEvaluateInType(), canonicalizeConstantArg0ToArg1(), canonicalizeGEPOfConstGEPI8(), canPeelLastIteration(), canPHITrans(), CanPropagatePredecessorsForPHIs(), canProveExitOnFirstIteration(), CanRedirectPredsOfEmptyBBToSucc(), canRenameComdat(), canReplaceGEPIdxWithZero(), canReplaceOperandWithVariable(), canReplacePointersInUseIfEqual(), canReplaceReg(), canRewriteGEPAsOffset(), CanShareConstantPoolEntry(), canSimplifyNullLoadOrGEP(), canSimplifyNullStoreOrGEP(), canSinkInstructions(), canSplitCallSite(), canSplitPredecessors(), canTailPredicateInstruction(), canTailPredicateLoop(), canTransformAccumulatorRecursion(), canUseShiftPair(), llvm::LoopVectorizationLegality::canVectorize(), llvm::sandboxir::LegalityAnalysis::canVectorize(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), cast(), cast(), cast(), cast(), cast_if_present(), cast_if_present(), cast_if_present(), llvm::CastInst::castIsValid(), llvm::Attributor::changeAfterManifest(), llvm::Attributor::changeUseAfterManifest(), llvm::PatternMatch::undef_match::check(), checkBitsConcrete(), checkClobberSanity(), checkConcrete(), checkConstantInt(), checkCVTFixedPointOperandWithFBits(), checkDebugInfoMetadata(), checkDependency(), llvm::Attributor::checkForAllUses(), CheckForMaskedLoad(), checkFunctionMemoryAccess(), checkIfSafeAddSequence(), checkIfSupported(), checkMixedPrecision(), checkOffsetSize(), checkOrAndOpImpliedByOther(), checkOuterLoopInsts(), checkOverflow(), checkSafeInstruction(), checkWFRetconPrototype(), classifyConstantWithOpaquePtr(), llvm::AArch64Subtarget::ClassifyGlobalReference(), llvm::X86Subtarget::classifyGlobalReference(), llvm::X86Subtarget::classifyLocalReference(), llvm::AddrSpaceCastInst::classof(), llvm::AllocaInst::classof(), llvm::AnyCoroEndInst::classof(), llvm::AnyCoroIdInst::classof(), llvm::AnyCoroIdRetconInst::classof(), llvm::AnyCoroSuspendInst::classof(), llvm::AnyMemCpyInst::classof(), llvm::AnyMemIntrinsic::classof(), llvm::AnyMemMoveInst::classof(), llvm::AnyMemSetInst::classof(), llvm::AnyMemTransferInst::classof(), llvm::AssumeInst::classof(), llvm::AtomicCmpXchgInst::classof(), llvm::AtomicRMWInst::classof(), llvm::BinaryConstantExpr::classof(), llvm::BinaryOperator::classof(), llvm::BinaryOpIntrinsic::classof(), llvm::BitCastInst::classof(), llvm::BranchInst::classof(), llvm::CallBase::classof(), llvm::CallBrInst::classof(), llvm::CallInst::classof(), llvm::CastConstantExpr::classof(), llvm::CastInst::classof(), llvm::CatchPadInst::classof(), llvm::CatchReturnInst::classof(), llvm::CatchSwitchInst::classof(), llvm::CleanupPadInst::classof(), llvm::CleanupReturnInst::classof(), llvm::CmpInst::classof(), llvm::CmpIntrinsic::classof(), llvm::ConcreteOperator< SuperClass, Opc >::classof(), llvm::ConstrainedFPCmpIntrinsic::classof(), llvm::ConstrainedFPIntrinsic::classof(), llvm::ConvergenceControlInst::classof(), llvm::CoroAlignInst::classof(), llvm::CoroAllocaAllocInst::classof(), llvm::CoroAllocaFreeInst::classof(), llvm::CoroAllocaGetInst::classof(), llvm::CoroAllocInst::classof(), llvm::CoroAsyncContextAllocInst::classof(), llvm::CoroAsyncContextDeallocInst::classof(), llvm::CoroAsyncEndInst::classof(), llvm::CoroAsyncResumeInst::classof(), llvm::CoroAsyncSizeReplace::classof(), llvm::CoroAwaitSuspendInst::classof(), llvm::CoroBeginInst::classof(), llvm::CoroEndInst::classof(), llvm::CoroEndResults::classof(), llvm::CoroFrameInst::classof(), llvm::CoroFreeInst::classof(), llvm::CoroIdAsyncInst::classof(), llvm::CoroIdInst::classof(), llvm::CoroIdRetconInst::classof(), llvm::CoroIdRetconOnceInst::classof(), llvm::CoroPromiseInst::classof(), llvm::CoroSaveInst::classof(), llvm::CoroSizeInst::classof(), llvm::CoroSubFnInst::classof(), llvm::CoroSuspendAsyncInst::classof(), llvm::CoroSuspendInst::classof(), llvm::CoroSuspendRetconInst::classof(), llvm::DbgAssignIntrinsic::classof(), llvm::DbgDeclareInst::classof(), llvm::DbgInfoIntrinsic::classof(), llvm::DbgLabelInst::classof(), llvm::DbgValueInst::classof(), llvm::DbgVariableIntrinsic::classof(), llvm::dxil::AnyResourceExtType::classof(), llvm::dxil::AnyResourceExtType::classof(), llvm::dxil::CBufferExtType::classof(), llvm::dxil::FeedbackTextureExtType::classof(), llvm::dxil::LayoutExtType::classof(), llvm::dxil::MSTextureExtType::classof(), llvm::dxil::RawBufferExtType::classof(), llvm::dxil::SamplerExtType::classof(), llvm::dxil::TextureExtType::classof(), llvm::dxil::TypedBufferExtType::classof(), llvm::ExtractElementConstantExpr::classof(), llvm::ExtractElementInst::classof(), llvm::ExtractValueInst::classof(), llvm::FCmpInst::classof(), llvm::FenceInst::classof(), llvm::FPExtInst::classof(), llvm::FPToSIInst::classof(), llvm::FPToUIInst::classof(), llvm::FPTruncInst::classof(), llvm::FreezeInst::classof(), llvm::FuncletPadInst::classof(), llvm::GCProjectionInst::classof(), llvm::GCRelocateInst::classof(), llvm::GCResultInst::classof(), llvm::GCStatepointInst::classof(), llvm::GetElementPtrConstantExpr::classof(), llvm::GetElementPtrInst::classof(), llvm::ICmpInst::classof(), llvm::IndirectBrInst::classof(), llvm::InsertElementConstantExpr::classof(), llvm::InsertElementInst::classof(), llvm::InsertValueInst::classof(), llvm::InstrProfCallsite::classof(), llvm::InstrProfCoverInst::classof(), llvm::InstrProfIncrementInst::classof(), llvm::InstrProfIncrementInstStep::classof(), llvm::InstrProfMCDCBitmapInstBase::classof(), llvm::InstrProfMCDCBitmapParameters::classof(), llvm::InstrProfMCDCTVBitmapUpdate::classof(), llvm::InstrProfTimestampInst::classof(), llvm::InstrProfValueProfileInst::classof(), llvm::IntrinsicInst::classof(), llvm::IntToPtrInst::classof(), llvm::InvokeInst::classof(), llvm::LandingPadInst::classof(), llvm::LifetimeIntrinsic::classof(), llvm::LoadInst::classof(), llvm::MemCpyInst::classof(), llvm::MemIntrinsic::classof(), llvm::MemMoveInst::classof(), llvm::MemSetInst::classof(), llvm::MemSetPatternInst::classof(), llvm::MemTransferInst::classof(), llvm::MinMaxIntrinsic::classof(), llvm::NoAliasScopeDeclInst::classof(), llvm::Operator::classof(), llvm::OverflowingBinaryOperator::classof(), llvm::PHINode::classof(), llvm::PossiblyDisjointInst::classof(), llvm::PossiblyExactOperator::classof(), llvm::PossiblyNonNegInst::classof(), llvm::PseudoProbeInst::classof(), llvm::PtrToAddrInst::classof(), llvm::PtrToIntInst::classof(), llvm::ResumeInst::classof(), llvm::ReturnInst::classof(), llvm::sandboxir::ArrayType::classof(), llvm::sandboxir::FixedVectorType::classof(), llvm::sandboxir::FunctionType::classof(), llvm::sandboxir::IntegerType::classof(), llvm::sandboxir::IntrinsicInst::classof(), llvm::sandboxir::PointerType::classof(), llvm::sandboxir::PossiblyDisjointInst::classof(), llvm::sandboxir::ScalableVectorType::classof(), llvm::sandboxir::StructType::classof(), llvm::sandboxir::UnaryInstruction::classof(), llvm::sandboxir::UnaryInstruction::classof(), llvm::sandboxir::VectorType::classof(), llvm::SaturatingInst::classof(), llvm::SelectInst::classof(), llvm::SExtInst::classof(), llvm::ShuffleVectorConstantExpr::classof(), llvm::ShuffleVectorInst::classof(), llvm::SIToFPInst::classof(), llvm::StoreInst::classof(), llvm::SwitchInst::classof(), llvm::TruncInst::classof(), llvm::UIToFPInst::classof(), llvm::UnaryInstruction::classof(), llvm::UnaryOperator::classof(), llvm::UnreachableInst::classof(), llvm::User::classof(), llvm::VAArgInst::classof(), llvm::VACopyInst::classof(), llvm::VAEndInst::classof(), llvm::VAStartInst::classof(), llvm::VPBinOpIntrinsic::classof(), llvm::VPCastIntrinsic::classof(), llvm::VPCmpIntrinsic::classof(), llvm::VPInstructionWithType::classof(), llvm::VPIntrinsic::classof(), llvm::VPIRPhi::classof(), llvm::VPReductionIntrinsic::classof(), llvm::WithOverflowInst::classof(), llvm::ZExtInst::classof(), CleanupPointerRootUsers(), llvm::TinyPtrVector< ReachingDef >::clear(), llvm::CoroIdInst::clearPromise(), CloneAndPruneIntoFromInst(), CloneBasicBlock(), cloneForLane(), CloneLoopBlocks(), cloneLoopBlocks(), llvm::DILocalScope::cloneScopeForSubprogram(), llvm::VNCoercion::coerceAvailableValueToLoadType(), CollectAddOperandsWithScales(), collectAllocaUses(), collectDebugInfoMetadata(), collectElements(), llvm::LoopVectorizationCostModel::collectElementTypesForWidening(), collectHomogenousInstGraphLoopInvariants(), collectIndirectableUses(), collectInsertionElements(), llvm::DDGNode::collectInstructions(), collectMemAccessInfo(), collectMergeableInsts(), collectPromotionCandidates(), collectRegionsConstants(), collectShuffleElements(), collectSingleShuffleElements(), llvm::coro::collectSpillsAndAllocasFromInsts(), collectSRATypes(), CollectSubexprs(), llvm::PPCTargetLowering::CollectTargetIntrinsicOperands(), collectUnswitchCandidates(), collectUsersRecursively(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), colorEHFunclets(), combine_CC(), combineAdd(), combineAddOrSubToADCOrSBB(), combineAnd(), combineAndLoadToBZHI(), combineAndShuffleNot(), combineBinOpOfExtractToReduceTree(), combineBitcast(), combineCarryThroughADD(), combineCMov(), combineCMP(), combineConcatVectorOps(), combineExtractVectorElt(), combineExtractWithShuffle(), combineGatherScatter(), combinei64TruncSrlConstant(), combineIRFlags(), combineMetadata(), combineMulWide(), llvm::AA::combineOptionalValuesInAAValueLatice(), combinePRMT(), combineSelectToBinOp(), combineSetCC(), combineSextInRegCmov(), combineShiftToAVG(), combineShlAddIAddImpl(), combineStore(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineToExtendCMOV(), llvm::VETargetLowering::combineTRUNCATE(), combineTruncOfSraSext(), combineVectorSizedSetCCEquality(), combineVectorSizedSetCCEquality(), combineVectorSizedSetCCEquality(), llvm::InstCombinerImpl::commonIDivRemTransforms(), llvm::InstCombinerImpl::commonIRemTransforms(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::IRSimilarity::IRSimilarityCandidate::compareStructure(), llvm::BaseIndexOffset::computeAliasing(), computeAliasSummary(), llvm::ScalarEvolution::computeConstantDifference(), computeConstantRange(), llvm::TargetLowering::ComputeConstraintToUse(), computeConstraintToUse(), llvm::VPPartialReductionRecipe::computeCost(), llvm::VPWidenCastRecipe::computeCost(), llvm::VPWidenMemoryRecipe::computeCost(), computeFunctionSummary(), computeKnownBits(), llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), computeKnownFPClass(), computeLiveInValues(), computeLiveOutSeed(), llvm::LoopVectorizationCostModel::computeMaxVF(), computeMinimumValueSizes(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ComputeNumSignBitsImpl(), computeNumSignBitsVectorConstant(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerICmp(), computeTripCount(), computeUnlikelySuccessors(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), llvm::VPBasicBlock::connectToPredecessors(), llvm::RandomIRBuilder::connectToSink(), ConstantFoldBinaryInstruction(), ConstantFoldBinaryOpOperands(), ConstantFoldCastInstruction(), ConstantFoldCompareInstOperands(), ConstantFoldCompareInstruction(), ConstantFoldExtractElementInstruction(), ConstantFoldGetElementPtr(), ConstantFoldInsertElementInstruction(), ConstantFoldInstruction(), ConstantFoldLoadFromUniformValue(), ConstantFoldSelectInstruction(), ConstantFoldShuffleVectorInstruction(), ConstantFoldUnaryInstruction(), constantFoldUser(), constantIsDead(), llvm::RegisterBankInfo::constrainGenericRegister(), llvm::MachineRegisterInfo::constrainRegAttrs(), llvm::DwarfCompileUnit::constructScopeDIE(), constructSVEIntrinsicInfo(), containsAddRecDependentOnLoop(), llvm::ScalarEvolution::containsAddRecurrence(), llvm::Constant::containsConstantExpression(), containsConstantInAddMulChain(), containsDecreasingPointers(), containsOnlyConstantData(), containsParameters(), llvm::Constant::containsPoisonElement(), llvm::Constant::containsUndefElement(), containsUndefinedElement(), llvm::Constant::containsUndefOrPoisonElement(), containsUndefs(), llvm::ScalarEvolution::containsUndefs(), containsUnreachable(), llvm::SPIRV::ConvergenceRegion::ConvergenceRegion(), llvm::gsym::ObjectFileTransformer::convert(), llvm::BitInit::convertInitializerTo(), llvm::BitsInit::convertInitializerTo(), llvm::IntInit::convertInitializerTo(), llvm::StringInit::convertInitializerTo(), llvm::TypedInit::convertInitializerTo(), convertMetadataToAssumes(), llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(), llvm::ScalarEvolution::convertSCEVToAddRecWithPredicates(), llvm::ShuffleVectorInst::convertShuffleMaskForBitcode(), convertTo16Bit(), convertToLocalCopy(), convertUsersOfConstantsToInstructions(), convertValue(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), costAndCollectOperands(), CouldBecomeSafePoint(), countMCSymbolRefExpr(), llvm::GEPOperator::countNonConstantIndices(), countNumMemAccesses(), countOperands(), countToEliminateCompares(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::sandboxir::CastInst::create(), llvm::sandboxir::CmpInst::create(), llvm::sandboxir::ExtractElementInst::create(), llvm::sandboxir::ExtractValueInst::create(), llvm::sandboxir::GetElementPtrInst::create(), llvm::sandboxir::InsertElementInst::create(), llvm::sandboxir::InsertValueInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::ShuffleVectorInst::create(), llvm::sandboxir::UnaryOperator::create(), llvm::DwarfCompileUnit::createAbstractEntity(), llvm::MatrixBuilder::CreateAdd(), llvm::ScalarEvolution::createAddRecFromPHIWithCasts(), llvm::IRBuilderBase::CreateAlignmentAssumption(), llvm::IRBuilderBase::CreateAlignmentAssumption(), llvm::DwarfCompileUnit::createAndAddScopeChildren(), llvm::DIBuilder::createArrayType(), llvm::DIBuilder::createAutoVariable(), llvm::IRBuilderBase::CreateBinOpFMF(), llvm::IRBuilderBase::CreateCall(), llvm::DIBuilder::createClassType(), llvm::IRBuilderBase::CreateConstrainedFPCast(), llvm::MemorySSA::createDefinedAccess(), llvm::IRBuilderBase::CreateDereferenceableAssumption(), llvm::MatrixBuilder::CreateIndexAssumption(), llvm::IRBuilderBase::CreateInvariantStart(), llvm::IRBuilderBase::CreateLaunderInvariantGroup(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), createMMXBuildVector(), llvm::MDBuilder::createMutableTBAAAccessTag(), createNodeForSelectViaUMinSeq(), createNodeForSelectViaUMinSeq(), createOutlinedFunction(), llvm::DIBuilder::createParameterVariable(), llvm::IRBuilderBase::CreatePHI(), llvm::IRBuilderBase::CreatePreserveArrayAccessIndex(), llvm::IRBuilderBase::CreatePreserveStructAccessIndex(), llvm::IRBuilderBase::CreatePreserveUnionAccessIndex(), llvm::DDGBuilder::createRootedEdge(), llvm::MatrixBuilder::CreateScalarDiv(), llvm::IRBuilderBase::CreateSelectFMF(), llvm::IRBuilderBase::CreateStepVector(), llvm::IRBuilderBase::CreateStripInvariantGroup(), llvm::MatrixBuilder::CreateSub(), llvm::DIBuilder::createTemplateTypeParameter(), createTemplateValueParameterHelper(), llvm::IRBuilderBase::CreateThreadLocalAddress(), createTypedBufferLoad(), llvm::IRBuilderBase::CreateUnOp(), llvm::IRBuilderBase::CreateVectorInterleave(), llvm::IRBuilderBase::CreateVectorReverse(), llvm::IRBuilderBase::CreateVectorSplice(), createWidenInductionRecipes(), DbgInserterHelper(), decompose(), decomposeBitTest(), decomposeLinearExpression(), defaultComponentBroadcast(), llvm::SwitchInst::defaultDestUnreachable(), llvm::coro::defaultMaterializable(), definedInCaller(), deleteConstant(), DemotePHIToStack(), DemoteRegToStack(), llvm::Constant::destroyConstant(), detachDeadBlocks(), llvm::NewArchiveMember::detectKindFromObject(), detectShiftUntilLessThanIdiom(), DetermineUseCaptureKind(), doCallSiteSplitting(), llvm::isa_impl< GlobalObject, Value >::doit(), llvm::isa_impl< GlobalValue, Value >::doit(), llvm::DominatorTree::dominates(), llvm::DominatorTree::dominates(), llvm::PostDominatorTree::dominates(), doPromotion(), llvm::Instruction::dropDbgRecords(), dropIntrinsicWithUnknownMetadataArgument(), llvm::Instruction::dropLocation(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::VPlan::duplicate(), ehAwareSplitEdge(), llvm::object::elf_section_iterator::elf_section_iterator(), llvm::object::ELFRelocationRef::ELFRelocationRef(), llvm::object::ELFSectionRef::ELFSectionRef(), llvm::object::ELFSymbolRef::ELFSymbolRef(), eliminateSwiftErrorAlloca(), llvm::WebAssemblyAsmPrinter::EmitFunctionAttributes(), llvm::AsmPrinter::emitGlobalAlias(), emitGlobalConstantDataSequential(), emitGlobalConstantImpl(), llvm::AMDGPUAsmPrinter::emitGlobalVariable(), llvm::NVPTXTargetLowering::emitLeadingFence(), llvm::RISCVTargetLowering::emitLeadingFence(), llvm::TargetLoweringObjectFileCOFF::emitLinkerDirectives(), llvm::XtensaAsmPrinter::emitMachineConstantPoolEntry(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), emitMemcpyExpansion(), llvm::AsmPrinter::emitPCSections(), emitSetAndGetSwiftErrorValueAround(), llvm::NVPTXTargetLowering::emitTrailingFence(), llvm::PPCTargetLowering::emitTrailingFence(), llvm::RISCVTargetLowering::emitTrailingFence(), emitTransformedIndex(), llvm::TinyPtrVector< ReachingDef >::empty(), llvm::TinyPtrVector< ReachingDef >::end(), llvm::DwarfDebug::endFunctionImpl(), ensureValueAvailableInSuccessor(), equalsLoadStoreHelper(), equivalentAddressValues(), llvm::GVNPass::ValueTable::erase(), llvm::sandboxir::SeedContainer::erase(), llvm::TinyPtrVector< ReachingDef >::erase(), llvm::TinyPtrVector< ReachingDef >::erase(), llvm::SCEVAddRecExpr::evaluateAtIteration(), EvaluateConstantChrecAtConstant(), EvaluateExpression(), evaluateICmpRelation(), evaluateInDifferentElementOrder(), evaluatePtrAddRecAtMaxBTCWillNotWrap(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPInterleaveEVLRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPIRBasicBlock::execute(), llvm::VPIRInstruction::execute(), llvm::VPlan::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPWidenSelectRecipe::execute(), llvm::vfs::RedirectingFileSystem::exists(), llvm::ScalarEvolution::ExitLimit::ExitLimit(), llvm::SetTheory::expand(), expandBounds(), expandFromPrimitiveShadowRecursive(), expandMul(), llvm::VPlanTransforms::expandSCEVs(), expandUser(), llvm::SelectionDAGBuilder::ExportFromCurrentBlock(), llvm::ModuleSummaryIndex::exportToDot(), extendsConvergenceOutsideLoop(), ExtendUsesToFormExtLoad(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), extractBooleanFlip(), extractBranchWeights(), llvm::memprof::extractCallsFromIR(), extractConstantBits(), extractConstantMask(), llvm::VPIRInstruction::extractLastLaneOfFirstOperand(), extractMDNode(), extractProbe(), extractProbeFromDiscriminator(), extractSubModule(), ExtractTypeInfo(), llvm::RISCVTargetLowering::fallBackToDAGISel(), feedsIntoVectorReduction(), filterDbgVars(), llvm::PPCInstrInfo::finalizeInsInstrs(), findAffectedValues(), findArrayDimensionsRec(), findAvailablePtrLoadStore(), findBaseDefiningValue(), findBaseDefiningValueOfVector(), findBasePointer(), findBasePointers(), findBestNonTrivialUnswitchCandidate(), findBuildAggregate(), findBuildAggregateRec(), findCallsAtConstantOffset(), findCommonType(), findConsecutiveLoad(), findConstants(), findCostForOutputBlocks(), findDuplicateOutputBlock(), FindEarliestCapture(), findExtractedOutputToOverallOutputMapping(), findForkedSCEVs(), findFuncPointers(), findGlobalCtors(), findHistogram(), findInitTrampolineFromAlloca(), findInnerReductionPhi(), llvm::CodeExtractor::findInputsOutputs(), llvm::SCEVExpander::findInsertPointAfter(), findInsertPos(), findInstructionWithOpcode(), findLoadCallsAtConstantOffset(), FindLoopCounter(), findMayClobberedPtrAccess(), findMemSDNode(), findPHIToPartitionLoops(), findPointerConstIncrement(), findPreviousSpillSlot(), findRefEdges(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), findScalarElement(), FindSingleUseIdentifiedObject(), findStoresToUninstrumentedArgAllocas(), findUnwindDestinations(), first_use_of_in_block(), fitArgInto64Bits(), fixI8UseChain(), FixupDebugInfoForOutlinedFunction(), fixupDebugInfoPostExtraction(), FixupKind(), fixupLineNumbers(), FlushFPConstant(), llvm::BinOpInit::Fold(), llvm::IsAOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::UnOpInit::Fold(), llvm::AMDGPULibCalls::fold(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldAndOrOfICmpsWithConstEq(), foldBinOpIntoSelectIfProfitable(), foldBinOpIntoSelectIfProfitable(), llvm::InstCombinerImpl::foldBinOpIntoSelectOrPhi(), llvm::InstCombinerImpl::foldBinOpOfSelectAndCastOfSelectCondition(), FoldBitCast(), foldBitCastBitwiseLogic(), foldBitCastSelect(), foldBitOrderCrossLogicOp(), foldBranchToCommonDest(), FoldBUILD_VECTOR(), foldCastShuffle(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldCondBranchOnValueKnownInPredecessorImpl(), foldConsecutiveLoads(), llvm::SelectionDAG::FoldConstantArithmetic(), foldConstantInsEltIntoShuffle(), foldCSELOfCSEL(), llvm::InstCombinerImpl::foldFCmpIntToFPConst(), llvm::ConstantFolder::FoldGEP(), llvm::TargetFolder::FoldGEP(), llvm::InstCombinerImpl::foldGEPICmp(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpAndShift(), llvm::InstCombinerImpl::foldICmpBinOp(), foldICmpEqualityWithOffset(), foldICmpOrXX(), llvm::InstCombinerImpl::foldICmpShrConstConst(), llvm::InstCombinerImpl::foldICmpTruncWithTruncOrExt(), llvm::InstCombinerImpl::foldICmpUsingKnownBits(), llvm::InstCombinerImpl::foldICmpWithCastOp(), foldICmpWithDominatingICmp(), llvm::InstCombinerImpl::foldICmpWithZextOrSext(), foldIdempotentBinaryIntrinsicRecurrence(), foldInsEltIntoIdentityShuffle(), foldInsEltIntoSplat(), foldInsSequenceIntoSplat(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldItoFPtoI(), foldMaskAndShiftToExtract(), foldMaskAndShiftToScale(), foldMaskedShiftToBEXTR(), foldMaskedShiftToScaledMask(), foldMemChr(), foldNegativePower2AndShiftedMask(), llvm::InstCombinerImpl::foldOpIntoPhi(), llvm::InstCombinerImpl::FoldOpIntoSelect(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), llvm::InstCombinerImpl::foldPtrToIntOfGEP(), llvm::InstCombinerImpl::foldReversedIntrinsicOperands(), foldSelectBinOpIdentity(), llvm::InstCombinerImpl::foldSelectICmp(), foldSelectICmpMinMax(), llvm::InstCombinerImpl::foldSelectIntoOp(), llvm::InstCombinerImpl::foldSelectOpOp(), llvm::InstCombinerImpl::foldSelectShuffle(), foldSelectZeroOrFixedOp(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), llvm::InstSimplifyFolder::FoldShuffleVector(), llvm::InstCombinerImpl::foldSignBitTest(), FoldSingleEntryPHINodes(), foldTwoEntryPHINode(), llvm::InstCombinerImpl::foldVectorBinop(), foldVecTruncToExtElt(), foldXorTruncShiftIntoCmp(), forceExpAbs(), llvm::InformationCache::foreachUse(), formatTypeName(), formDedicatedExitBlocks(), formLCSSAForInstructionsImpl(), formLCSSAImpl(), forwardHandleAccesses(), forwardStoredOnceStore(), llvm::InstCombinerImpl::freelyInvertAllUsersOf(), llvm::InstCombinerImpl::freezeOtherUses(), llvm::JITSymbolFlags::fromGlobalValue(), llvm::JITSymbolFlags::fromSummary(), llvm::TinyPtrVector< ReachingDef >::front(), llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(), gatherIncomingValuesToPhi(), generateKeySubkey(), generateNewInstTree(), llvm::SCEVExpander::generateOverflowCheck(), generateReproducer(), genLoopLimit(), GEPSequentialConstIndexed(), llvm::ConstantStruct::get(), llvm::ListInit::get(), llvm::PointerUnion< TrivialCallback *, NonTrivialCallbacks * >::get(), llvm::ValueAsMetadata::get(), llvm::VPTransformState::get(), llvm::PPC::get_VSPLTI_elt(), getAArch64Cmp(), getADAEntry(), llvm::ScalarEvolution::getAddExpr(), getAddressForMemoryInput(), llvm::PointerUnion< TrivialCallback *, NonTrivialCallbacks * >::getAddrOfPtr1(), llvm::MLInlineAdvisor::getAdviceImpl(), llvm::Constant::getAggregateElement(), llvm::Constant::getAggregateElement(), getAggregateNumElements(), getAISize(), llvm::ReplaceableMetadataImpl::getAllArgListUsers(), llvm::ReplaceableMetadataImpl::getAllDbgVariableRecordUsers(), getAllocaName(), getAltInstrMask(), llvm::IRPosition::getAnchorScope(), llvm::ScalarEvolution::getAnyExtendExpr(), getAnyNonZeroConstInt(), getAppleRuntimeUnrollPreferences(), llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::RISCVTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::RISCVTTIImpl::getArithmeticReductionCost(), llvm::ConstantExpr::getAsInstruction(), getAsMetadata(), getAsMetadata(), llvm::IRPosition::getAssociatedValue(), llvm::NVPTXTTIImpl::getAssumedAddrSpace(), llvm::Attributor::getAssumedSimplifiedValues(), getBaseObjectSize(), llvm::GCRelocateInst::getBasePtr(), getBaseType(), getBaseValues(), getBaseWithOffsetUsingSplitOR(), llvm::objcarc::GetBasicARCInstKind(), llvm::CtxProfAnalysis::getBBInstrumentation(), llvm::CSKYConstantPoolConstant::getBlockAddress(), llvm::IRSimilarity::IRInstructionData::getBlockOperVals(), getBranchHint(), getBrevLdObject(), getCalledFunction(), llvm::InstrProfCallsite::getCallee(), llvm::IRSimilarity::IRInstructionData::getCalleeName(), llvm::CtxProfAnalysis::getCallsiteInstrumentation(), llvm::Loop::getCanonicalInductionVariable(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getCastInstrCost(), llvm::RISCVTTIImpl::getCastInstrCost(), llvm::SystemZTTIImpl::getCastInstrCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::TypedInit::getCastTo(), getCmpOpsType(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), ShapeCalculator::getColFromRow(), llvm::GlobalValue::getComdat(), getCommonClassOptions(), llvm::InstCombiner::getComplexity(), llvm::SelectionDAG::getConstant(), getConstantAtOffset(), getConstantEvolvingPHIOperands(), llvm::SelectionDAG::getConstantFP(), getConstantInt(), llvm::ExecutionEngine::getConstantValue(), llvm::InductionDescriptor::getConstIntStepValue(), llvm::CoroSuspendInst::getCoroSave(), llvm::DIGenericSubrange::getCount(), llvm::DISubrange::getCount(), getDagArgNoByKey(), llvm::ValueDFS_Compare::getDefOrUser(), llvm::GCRelocateInst::getDerivedPtr(), llvm::orc::getDylibInterfaceFromDylib(), getEHPadFromPredecessor(), llvm::ConstantDataSequential::getElementAsAPInt(), llvm::ConstantDataSequential::getElementAsInteger(), llvm::VectorType::getElementCount(), llvm::ConstantAggregateZero::getElementValue(), llvm::ConstantAggregateZero::getElementValue(), llvm::PoisonValue::getElementValue(), llvm::PoisonValue::getElementValue(), llvm::UndefValue::getElementValue(), llvm::UndefValue::getElementValue(), llvm::DwarfStringPoolEntryRef::getEntry(), llvm::ConstantExpr::getExactLogBase2(), llvm::ConstrainedFPIntrinsic::getExceptionBehavior(), llvm::TargetLoweringObjectFileWasm::getExplicitSectionGlobal(), getExpressionForConstant(), llvm::RISCVTTIImpl::getExtendedReductionCost(), llvm::vfs::RedirectingFileSystem::LookupResult::getExternalRedirect(), getExtractedDemandedElts(), llvm::AArch64TTIImpl::getExtractWithExtendCost(), getFauxShuffleMask(), getFirstNonAllocaInTheEntryBlock(), getFirstNonAllocaInTheEntryBlock(), getFirstNonAllocaInTheEntryBlock(), getFlippedStrictnessPredicateAndConstant(), llvm::MemoryLocation::getForArgument(), getFPPredicateFromMD(), getFromRangeMetadata(), llvm::TargetLoweringObjectFileXCOFF::getFunctionEntryPointSymbol(), llvm::ARMTTIImpl::getGatherScatterOpCost(), llvm::SelectionDAG::getGatherVP(), llvm::SIInstrInfo::getGenericInstructionUniformity(), llvm::TargetTransformInfoImplBase::getGEPCost(), llvm::ScalarEvolution::getGEPExpr(), llvm::DataLayout::getGEPIndexForOffset(), llvm::ConstantExpr::getGetElementPtr(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), llvm::CSKYConstantPoolConstant::getGV(), getHashValueImpl(), llvm::MemoryAccess::getID(), getIdentityValue(), llvm::MipsMCCodeEmitter::getImmOpValue(), llvm::ConstantDataSequential::getImpl(), llvm::AArch64TTIImpl::getIndexedVectorInstrCostFromEnd(), llvm::RISCVTTIImpl::getIndexedVectorInstrCostFromEnd(), getInitialValueOfAllocation(), getInstrBB(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::PPCTTIImpl::getInstructionCost(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::AMDGPU::getInterestingMemoryOperands(), llvm::ARMTTIImpl::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getInterleavedMemoryOpCost(), llvm::PPCTTIImpl::getInterleavedMemoryOpCost(), llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::WebAssemblyTTIImpl::getInterleavedMemoryOpCost(), llvm::ARMTTIImpl::getIntImmCostInst(), getIntPredicateFromMD(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::X86TTIImpl::getIntrinsicInstrCost(), getIntrinsicNameImpl(), getIntToFPVal(), llvm::ConstantExpr::getIntToPtr(), getInvariantGroupClobberingInstruction(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getInvertibleOperands(), llvm::SCEVExpander::getIVIncOperand(), getJumpThreadDuplicationCost(), llvm::TargetLoweringObjectFile::getKindForGlobal(), getKnownTypeFromMaskedOp(), getKnownUndefForVectorBinop(), getLaneType(), llvm::sandboxir::VecUtils::getLastPHIOrSelf(), GetLinearExpression(), llvm::BinOpInit::getListConcat(), getLoadStoreAddressSpace(), getLoadStoreAlignment(), getLoadStoreStride(), getLoadStoreType(), getLocalScopeLocationOr(), llvm::SlotTracker::getLocalSlot(), llvm::ScalarEvolution::getLosslessPtrToIntExpr(), llvm::DIGenericSubrange::getLowerBound(), llvm::DISubrange::getLowerBound(), llvm::sandboxir::VecUtils::getLowest(), getMainAltOpsNoStateVL(), getMask(), llvm::SelectionDAG::getMaskedGather(), llvm::SelectionDAG::getMaskedHistogram(), llvm::ARMTTIImpl::getMaskedMemoryOpCost(), llvm::SelectionDAG::getMaskedScatter(), llvm::GCNTTIImpl::getMemcpyLoopLoweringType(), getMemOperands(), llvm::ARMTTIImpl::getMemoryOpCost(), llvm::SystemZTTIImpl::getMemoryOpCost(), llvm::WebAssemblyTTIImpl::getMemoryOpCost(), getMemSetPattern16Value(), getMemSetPatternValue(), getMemVTFromNode(), getMetadataTypeOrder(), getMetadataTypeOrder(), getMinAnalyzeableBackedgeTakenCount(), getMinimumFPType(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMinMaxReductionCost(), llvm::RISCVTTIImpl::getMinMaxReductionCost(), llvm::BasicAAResult::getModRefInfo(), llvm::BasicAAResult::getModRefInfoMask(), getModuleFromVal(), GetMOForConstDbgOp(), llvm::ScalarEvolution::getMulExpr(), getMVEIndexedAddressParts(), llvm::DIScope::getName(), llvm::TargetLoweringObjectFileCOFF::getNameWithPrefix(), getNarrowestLatchMaxTakenCountEstimate(), getNearestMatchingScope(), getNewAlignment(), getNewDefiningAccessForClone(), getNextNode(), llvm::LoopVersioning::getNoAliasMetadataFor(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), getNodeLabel(), llvm::DOTGraphTraits< PGOUseFunc * >::getNodeLabel(), getNonCompileUnitScope(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), llvm::ConstrainedFPIntrinsic::getNonMetadataArgCount(), getNoopInput(), llvm::ValueLatticeElement::getNot(), getNumberOfPotentiallyCommutativeOps(), getNumElements(), llvm::sandboxir::VecUtils::getNumElements(), getNumGlobalVariableUses(), llvm::AArch64TargetLowering::getNumInterleavedAccesses(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::sandboxir::VecUtils::getNumLanes(), llvm::sandboxir::User::getNumOperands(), llvm::TargetTransformInfo::getOperandInfo(), llvm::ir2vec::Vocabulary::getOperandKind(), getOperandsExtensionCost(), llvm::sandboxir::User::getOperandUseDefault(), getOptimizableIVOf(), llvm::LexicalScopes::getOrCreateAbstractScope(), llvm::DwarfUnit::getOrCreateContextDIE(), llvm::DIBuilder::getOrCreateGenericSubrange(), llvm::sandboxir::Context::getOrCreateValueInternal(), llvm::vputils::getOrCreateVPValueForSCEVExpr(), llvm::BasicTTIImplBase< BasicTTIImpl >::getOrderedReductionCost(), getOrInsertLibFunc(), getOutliningPenalty(), getOutputElfType(), llvm::DwarfUnit::getParentContextString(), llvm::TargetTransformInfo::getPartialReductionExtendKind(), getPointerOperands(), llvm::IRPosition::getPositionKind(), llvm::HexagonTargetLowering::getPostIndexedAddressParts(), getPotentialCopiesOfMemoryValue(), getPowerOf2Factor(), llvm::IRSimilarity::IRInstructionData::getPredicate(), llvm::LazyValueInfo::getPredicateAt(), getPredicatedMask(), getPredState(), llvm::PPCTargetLowering::getPreIndexedAddressParts(), getPreStartForExtend(), llvm::ProfileSummaryInfo::getProfileCount(), llvm::CoroIdInst::getPromise(), llvm::NVPTXTargetLowering::getPrototype(), llvm::ConstantExpr::getPtrToAddr(), llvm::ConstantExpr::getPtrToInt(), llvm::ScalarEvolution::getPtrToIntExpr(), llvm::DIScope::getRawFile(), getReductionInstr(), llvm::RecurrenceDescriptor::getReductionOpChain(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), llvm::MachineRegisterInfo::getRegClass(), llvm::FastISel::getRegForValue(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::ConstrainedFPIntrinsic::getRoundingMode(), ShapeCalculator::getRowFromCol(), llvm::InstCombiner::getSafeVectorConstantForBinop(), getSameOpcode(), llvm::AArch64TTIImpl::getScalarizationOverhead(), llvm::BasicTTIImplBase< BasicTTIImpl >::getScalarizationOverhead(), llvm::RISCVTTIImpl::getScalarizationOverhead(), llvm::VPCostContext::getScalarizationOverhead(), llvm::SelectionDAG::getScatterVP(), llvm::ScalarEvolution::getSCEVAtScope(), llvm::DIScope::getScope(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getScoreAtLevelRec(), llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(), getSectionID(), llvm::GlobalObject::getSectionPrefix(), getSetupCost(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), ShapeCalculator::getShape(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), llvm::GCNTTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), getShuffleDemandedElts(), llvm::ShuffleVectorInst::getShuffleMask(), getShuffleScalarElt(), llvm::ConstantExpr::getShuffleVector(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::ScalarEvolution::getSignExtendExprImpl(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), llvm::LanaiTargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::getSingleConstraintMatchWeight(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::coro::getSpillInsertionPt(), llvm::ConstantVector::getSplat(), getSplatableConstant(), llvm::Constant::getSplatValue(), llvm::ConstantVector::getSplatValue(), getSplatValue(), getSplatValueAllowUndef(), getStartAndEndForAccess(), llvm::GCProjectionInst::getStatepoint(), llvm::TargetLoweringObjectFileXCOFF::getStorageClassForGlobal(), llvm::RISCVTTIImpl::getStoreImmCost(), llvm::VNCoercion::getStoreValueForLoadHelper(), llvm::DIGenericSubrange::getStride(), llvm::DISubrange::getStride(), getStrideAndModOffsetOfGEP(), getStrideFromAddRec(), getStrideFromPointer(), llvm::DwarfStringPoolEntryRef::getString(), getSubprogram(), getSuccState(), llvm::ModuleSymbolTable::getSymbolFlags(), llvm::SelectionDAG::getSymbolFunctionGlobalAddress(), getTargetConstantBitsFromNode(), getTargetShuffleMask(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTreeReductionCost(), llvm::ScalarEvolution::getTripCountFromExitCount(), llvm::ScalarEvolution::getTripCountFromExitCount(), getTrueOrFalseValue(), llvm::ConstantExpr::getTrunc(), llvm::ScalarEvolution::getTruncateExpr(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), getTypePartition(), llvm::ScalarEvolution::getUDivExpr(), getUnderlyingExtractedFromVec(), getUnderlyingObjectFromInt(), getUniqueInsertion(), llvm::Constant::getUniqueInteger(), llvm::AArch64TTIImpl::getUnrollingPreferences(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::BasicTTIImplBase< BasicTTIImpl >::getUnrollingPreferences(), llvm::RISCVTTIImpl::getUnrollingPreferences(), llvm::SystemZTTIImpl::getUnrollingPreferences(), llvm::WebAssemblyTTIImpl::getUnrollingPreferences(), llvm::memtag::getUntagLocationIfFunctionExit(), getUnwindDestToken(), getUnwindDestTokenHelper(), llvm::DIGenericSubrange::getUpperBound(), llvm::DISubrange::getUpperBound(), getUUID(), llvm::TrackingVH< ValueTy >::getValPtr(), llvm::Record::getValueAsBitOrUnset(), llvm::Record::getValueAsOptionalDef(), llvm::Record::getValueAsOptionalString(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getValueKind(), getValueOnFirstIteration(), llvm::DbgVariableRecord::getVariableLocationOp(), llvm::RawLocationWrapper::getVariableLocationOp(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), getVectorInstrCost(), llvm::AArch64TTIImpl::getVectorInstrCost(), llvm::X86TTIImpl::getVectorInstrCost(), getVFFromIndVar(), getVFScaleFactor(), getVPermMask(), llvm::MachinePointerInfo::getWithOffset(), llvm::AA::getWithType(), llvm::ScalarEvolution::getZeroExtendExpr(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::object::GOFFSymbolRef::GOFFSymbolRef(), HandleCallsInBlockInlinedThroughInvoke(), llvm::DIArgList::handleChangedOperand(), llvm::DebugValueUser::handleChangedValue(), handleCompressedSection(), llvm::SelectionDAGBuilder::handleDebugDeclare(), llvm::SelectionDAGBuilder::handleDebugValue(), HandleInlinedEHPad(), llvm::VPlanTransforms::handleMaxMinNumReductions(), handleMemIntrinsicPtrUse(), handlePhiDef(), llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), llvm::ValueAsMetadata::handleRAUW(), llvm::VPRecipeBuilder::handleReplication(), handleUnreachableTerminator(), llvm::mdconst::hasa(), llvm::GEPOperator::hasAllConstantIndices(), llvm::GetElementPtrInst::hasAllConstantIndices(), hasAllGatScatUsers(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), llvm::LoongArchTargetLowering::hasAndNot(), llvm::VETargetLowering::hasAndNot(), llvm::LoongArchTargetLowering::hasAndNotCompare(), llvm::RISCVTargetLowering::hasAndNotCompare(), llvm::X86TargetLowering::hasAndNotCompare(), llvm::ScalarEvolution::ExitLimit::hasAnyInfo(), llvm::DbgVariableRecord::hasArgList(), llvm::RawLocationWrapper::hasArgList(), hasBranchUse(), hasCallsInBlockBetween(), hasCFUser(), hasConcreteDefImpl(), hasConditionalTerminator(), llvm::PHINode::hasConstantOrUndefValue(), hasCountTypeMD(), hasDistinctMetadataIntrinsic(), hasFPAssociativeFlags(), llvm::ScalarEvolution::ExitLimit::hasFullInfo(), hasFullVectorsOrPowerOf2(), llvm::MDNode::hasGeneralizedMDString(), llvm::IRSimilarity::IRInstructionData::hash_value, hasInitializer(), hasInvokeCallers(), hasIterationCountInvariantInParent(), llvm::ScalarEvolution::hasLoopInvariantBackedgeTakenCount(), hasOnlySimpleTerminator(), hasPartialIVCondition(), hasPossibleIncompatibleOps(), hasProcessableCondition(), llvm::ContextAndReplaceableUses::hasReplaceableUses(), llvm::AnyCoroEndInst::hasResults(), hasSameArgumentList(), hasSameExtUse(), HasSameValue(), hasSourceMods(), hasStoreUsersOnly(), hasUndefContents(), hasUndefSource(), llvm::Value::hasUseList(), haveNonOverlappingStorage(), hoist(), hoistInsEltConst(), llvm::SCEVExpander::hoistIVInc(), llvm::GCNTTIImpl::hoistLaneIntrinsicThroughOperand(), hoistMinMax(), hoistMulAddAssociation(), hoistPreviousBeforeFORUsers(), ignoreOp(), llvm::FunctionImporter::importFunctions(), llvm::ValueEnumerator::incorporateFunction(), llvm::IndexedReference::IndexedReference(), InferPointerInfo(), llvm::SelectionDAG::InferPtrAlign(), llvm::FunctionVarLocs::init(), INITIALIZE_PASS(), INITIALIZE_PASS(), llvm::IRSimilarity::IRInstructionData::initializeInstruction(), llvm::ExecutionEngine::InitializeMemory(), llvm::FunctionLoweringInfo::InitializeRegForValue(), InlineFunctionImpl(), inlineRetainOrClaimRVCalls(), llvm::IRBuilderBase::Insert(), llvm::RuntimePointerChecking::insert(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::insert(), llvm::TinyPtrVector< ReachingDef >::insert(), llvm::TinyPtrVector< ReachingDef >::insert(), InsertBitToMaskVector(), insertCallAtAllFunctionExitPoints(), llvm::MemorySSAUpdater::insertDef(), llvm::MemorySSA::insertIntoListsBefore(), llvm::MemorySSA::insertIntoListsForBlock(), insertLifetimeMarkersSurroundingCall(), insertParsePoints(), InsertPreheaderForLoop(), InsertRootInitializers(), insertSpills(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), insertUseHolderAfter(), instCombineConvertFromSVBool(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVECmpNE(), instCombineSVEDupqLane(), instCombineSVESrshl(), instCombineSVEUxt(), llvm::SampleProfileProber::instrumentOneFunc(), llvm::LoopVectorizationCostModel::interleavedAccessCanBeWidened(), llvm::EpilogueVectorizerMainLoop::introduceCheckBlockInVPlan(), InvertBranch(), invertCondition(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::PointerUnion< TrivialCallback *, NonTrivialCallbacks * >::is(), isa(), isa_and_present(), llvm::PPCTargetLowering::isAccessedAsGotIndirect(), isAddRecSExtable(), isAddressUse(), isAddSExtable(), isAggrConstForceInt32(), isAllDILocation(), isArgumentOrArgumentLike(), llvm::Attributor::isAssumedDead(), llvm::Attributor::isAssumedDead(), llvm::AA::isAssumedThreadLocalObject(), isBaseOfObject(), llvm::SelectionDAG::isBaseWithConstantOffset(), IsBlockFollowedByDeoptOrUnreachable(), isBlockValidForExtraction(), llvm::ISD::isBuildVectorOfConstantFPSDNodes(), llvm::ISD::isBuildVectorOfConstantSDNodes(), isBytewiseValue(), isCalleeLoad(), llvm::LandingPadInst::isCatch(), llvm::IRSimilarity::isClose(), IsCMPZCSINC(), isCompatibleLoad(), llvm::dwarf_linker::parallel::CompileUnit::OutputUnitVariantPtr::isCompileUnit(), isComputableLoopNest(), llvm::ShuffleVectorInst::isConcat(), isConditionalOnXorOfPHIs(), llvm::RecurrenceDescriptor::isConditionalRdxPattern(), isConditionTrueViaVFAndUF(), isCondRelevantToAnyCallArgument(), isConstant(), llvm::SelectionDAG::isConstantFPBuildVectorOrConstantFP(), llvm::SelectionDAG::isConstantIntBuildVectorOrConstantInt(), isConstantIntMetadataOperand(), isConstantIntVector(), isConstantOrUndef(), llvm::BuildVectorSDNode::isConstantSequence(), llvm::Constant::isConstantUsed(), llvm::HexagonMCInstrInfo::isConstExtended(), isCopyOfAPHI(), llvm::GlobalValue::isDeclaration(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), llvm::SuspendCrossingInfo::isDefinitionAcrossSuspend(), isDenselyPacked(), llvm::MachinePointerInfo::isDereferenceable(), isDereferenceableAndAlignedInLoop(), isDereferenceableAndAlignedPointer(), llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), llvm::RISCVTargetLowering::isDesirableToCommuteWithShift(), llvm::X86TargetLowering::IsDesirableToPromoteOp(), isDILocationReachable(), isDINode(), llvm::X86Operand::isDstIdx(), llvm::Constant::isElementWiseEqual(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::CastInst::isEliminableCastPair(), IsEmptyAtExitFunction(), isEpilogProfitable(), isEqualImpl(), isEscapeSource(), llvm::InstrInfoQuery::isExact(), isExpandableUser(), llvm::SelectionDAGBuilder::isExportableFromCurrentBlock(), isExtendOrShiftOperand(), llvm::TargetLoweringBase::isExtLoad(), isExtractBitsCandidateUse(), llvm::ShuffleVectorInst::isExtractSubvectorMask(), llvm::ShuffleVectorInst::isExtractSubvectorMask(), llvm::LandingPadInst::isFilter(), llvm::VNCoercion::isFirstClassAggregateOrScalableType(), llvm::RecurrenceDescriptor::isFixedOrderRecurrence(), isFixedVectorShuffle(), isFloatDIType(), llvm::RecurrenceDescriptor::isFMulAddIntrinsic(), isFoldableInLoop(), llvm::SystemZTTIImpl::isFoldableLoad(), isFPSatMinMaxPattern(), isFrameIndexOp(), isFreeEltLoad(), isFunctionMallocLike(), isGCPointerType(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), isGOTEquivalentCandidate(), isGuaranteedNotToBeUndefOrPoison(), isGuaranteedToTransferExecutionToSuccessor(), llvm::HardwareLoopInfo::isHardwareLoopCandidate(), llvm::ARMTTIImpl::isHardwareLoopProfitable(), llvm::vputils::isHeaderMask(), isHighCostExpansion(), isHoistableInstructionType(), isHopBuildVector(), isHorizontalBinOpPart(), isI32Insn(), isIdentifiedFunctionLocal(), isIdentifiedObject(), llvm::ShuffleVectorInst::isIdentity(), llvm::ShuffleVectorInst::isIdentityMask(), llvm::ShuffleVectorInst::isIdentityWithExtract(), llvm::ShuffleVectorInst::isIdentityWithPadding(), llvm::PatternMatch::immconstant_ty::isImmConstant(), llvm::AANoAlias::isImpliedByIR(), llvm::AANoCapture::isImpliedByIR(), llvm::IRAttribute< AK, BaseType, AAType >::isImpliedByIR(), isIncomingOfPHI(), IsIncrementNSW(), IsIncrementNUW(), isIndirectBrTarget(), isIndirectCall(), llvm::CallBase::isIndirectCall(), llvm::CallBase::isInlineAsm(), isInlineViable(), llvm::ShuffleVectorInst::isInsertSubvectorMask(), llvm::ShuffleVectorInst::isInsertSubvectorMask(), isInTailCallPosition(), isIntegerWideningViableForSlice(), isInterestingPHIIncomingValue(), isIntExtFree(), isIntOrFPConstant(), isIntS16Immediate(), isIntS34Immediate(), IsKernelArgInt8(), llvm::DbgAssignIntrinsic::isKillAddress(), llvm::DbgVariableRecord::isKillAddress(), llvm::DbgVariableRecord::isKillLocation(), llvm::RawLocationWrapper::isKillLocation(), isKnownIntegral(), isKnownNonConstant(), isKnownNonNaN(), isKnownNonNull(), isKnownNonNullFromDominatingCondition(), isKnownNonZero(), isKnownNonZeroFromOperator(), isKnownToBeAPowerOfTwo(), llvm::ScalarEvolution::isKnownToBeAPowerOfTwo(), isLaneMaskFromSameBlock(), llvm::AMDGPU::isLDSVariableToLower(), isLeakCheckerRoot(), llvm::AArch64TargetLowering::isLegalAddressingMode(), llvm::AVRTargetLowering::isLegalAddressingMode(), llvm::RISCVTargetLowering::isLegalAddressingMode(), llvm::LoopVectorizationCostModel::isLegalGatherOrScatter(), llvm::AArch64TargetLowering::isLegalInterleavedAccessType(), llvm::X86TTIImpl::isLegalMaskedExpandLoad(), llvm::X86TTIImpl::isLegalMaskedLoad(), llvm::AArch64TTIImpl::isLegalMaskedLoadStore(), llvm::X86TTIImpl::isLegalMaskedStore(), llvm::Instruction::isLifetimeStartOrEnd(), isLoadCombineCandidateImpl(), isLoadInvariantInLoop(), isLoopCounter(), isLoopDead(), isLowerSaturatingConditional(), llvm::Constant::isManifestConstant(), isMemInstrToReplace(), isMemOpOrPrefetch(), llvm::RecurrenceDescriptor::isMinMaxPattern(), isMulSExtable(), llvm::AMDGPUTargetLowering::isNarrowingProfitable(), isNeverEqualToUnescapedAlloc(), isNonEqualPointersWithRecursiveGEP(), isNonEscapingGlobalNoAliasWithLoad(), isNoopBitcast(), llvm::objcarc::IsNoopInstruction(), isNotCrossLaneOperation(), isNotUsedOrFoldableInLoop(), isNotVisibleOnUnwind(), llvm::vfs::OutputFile::isNull(), llvm::objcarc::IsNullOrUndef(), isNullOrUndef(), IsNullTerminatedString(), llvm::Constant::isNullValue(), llvm::pdb::InputFile::isObj(), llvm::objcarc::IsObjCIdentifiedObject(), isOneDimensionalArray(), llvm::ShuffleVectorInst::isOneUseSingleSourceMask(), isOnlyCopiedFromConstantMemory(), isOnlyUsedByStores(), isOnlyUsedInEntryBlock(), isOpcodeHandled(), isOperandOfVmullHighP64(), isOperationFoldable(), isOrderedAtomic(), isOriginalBaseResult(), llvm::ScheduleDAGSDNodes::isPassiveNode(), llvm::pdb::InputFile::isPdb(), llvm::VPRecipeBase::isPhi(), isPointerAlwaysReplaceable(), isPointerOperand(), isPointerUseReplacable(), isPoisonShift(), llvm::CastIsPossible< VPPhiAccessors, const VPRecipeBase * >::isPossible(), isPossibleIndirectCallTarget(), isPotentiallyReachable(), llvm::objcarc::IsPotentialRetainableObjPtr(), isPow2Splat(), llvm::LoopVectorizationCostModel::isPredicatedInst(), isPredicatedOnPHI(), isProfitableChain(), isProfitableToInterleave(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::WebAssemblyTTIImpl::isProfitableToSinkOperands(), isPromotedResultSafe(), isPtrKnownNeverNull(), llvm::ARMTargetLowering::isReadOnly(), isReadOnlyData(), llvm::AMDGPU::isReallyAClobber(), isReassociableOp(), isReassociableOp(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), isReferencingMDNode(), llvm::ShuffleVectorInst::isReplicationMask(), llvm::ShuffleVectorInst::isReplicationMask(), isRequiredForExecution(), isSafeAndProfitableToSinkLoad(), IsSafeComputationToRemove(), isSafeForNoNTrivialUnswitching(), llvm::Loop::isSafeToClone(), isSafeToDestroyConstant(), isSafeToHoistInstr(), isSafeToLoadUnconditionally(), isSafeToMove(), isSafeToMoveBefore(), isSafeToSpeculateStore(), isSafeToUnrollAndJam(), IsScalarTBAANodeImpl(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), isScope(), llvm::DwarfUnit::isShareableAcrossCUs(), isShortenableAtTheBeginning(), isShortenableAtTheEnd(), isShuffleEquivalentToSelect(), isSignedMinMaxClamp(), isSimm12Constant(), isSimpleEnoughValueToCommitHelper(), IsSimplerBaseSCEVForTarget(), IsSingleInstrConstant(), llvm::vputils::isSingleScalar(), llvm::GCNTTIImpl::isSourceOfDivergence(), llvm::NVPTXTTIImpl::isSourceOfDivergence(), isSplat(), isSplatValue(), llvm::X86Operand::isSrcIdx(), isSSATMinMaxPattern(), llvm::AllocaInst::isStaticAlloca(), IsStoredObjCPointer(), llvm::TargetTransformInfoImplBase::isStridedAccess(), llvm::ConstantDataSequential::isString(), llvm::generic_gep_type_iterator< ItTy >::isStruct(), isStructPathTBAA(), isSupportedAccessType(), llvm::coro::isSuspendBlock(), isSWTestOp(), llvm::MMRAMetadata::isTagMD(), llvm::GCProjectionInst::isTiedToInvoke(), isTLS(), isTopLevelPadForMSVC(), llvm::slpvectorizer::BoUpSLP::isTreeNotExtendable(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), llvm::detail::UniqueFunctionBase< R, P... >::isTrivialCallback(), isTriviallyUniform(), isTsanAtomic(), isType(), llvm::HexagonSubtarget::isTypeForHVX(), llvm::dwarf_linker::parallel::CompileUnit::OutputUnitVariantPtr::isTypeUnit(), llvm::LoopVectorizationLegality::isUniform(), llvm::vputils::isUniformAcrossVFsAndUFs(), llvm::LoopVectorizationCostModel::isUniformAfterVectorization(), llvm::AMDGPU::isUniformMMO(), llvm::pdb::InputFile::isUnknown(), llvm::DebugHandlerBase::isUnsignedDIType(), isUsedAsMemCpySource(), isUsedByLifetimeMarker(), isUsedOutsideOfDefiningBlock(), isUsedWithinShuffleVector(), llvm::AA::isValidAtPosition(), isValidElementType(), isValidIndirectionTable(), llvm::AA::isValidInScope(), llvm::AAIsDead::isValidIRPositionForInit(), llvm::sandboxir::isValidMemSeed(), llvm::ShuffleVectorInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), llvm::Record::isValueUnset(), llvm::generic_gep_type_iterator< ItTy >::isVector(), isVectorLikeInstWithConstOps(), llvm::X86TargetLowering::isVectorLoadExtDesirable(), isVectorOrArrayOfVectors(), llvm::ISD::isVectorShrinkable(), isVSXSwap(), isWorthFoldingIntoRegRegScale(), isWritableObject(), isZero(), isZeroInit(), isZeroSize(), llvm::IVUsers::IVUsers(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), legalizeAndOptimizeInductions(), llvm::LegalizerHelper::legalizeInstrStep(), legalizeScalarLoadStoreOnArrays(), LinearizeExprTree(), LLVMCanValueUseFastMathFlags(), LLVMDIBuilderInsertDbgValueRecordAtEnd(), LLVMDIBuilderInsertDbgValueRecordBefore(), LLVMDIBuilderInsertDeclareRecordAtEnd(), LLVMDIBuilderInsertDeclareRecordBefore(), LLVMDIBuilderInsertLabelAtEnd(), LLVMDIBuilderInsertLabelBefore(), LLVMGetMDNodeNumOperands(), LLVMGetNumOperands(), LLVMIsAMDNode(), LLVMIsAMDString(), LLVMIsAValueAsMetadata(), LLVMIsConstant(), LLVMIsPoison(), LLVMIsUndef(), LLVMMDNodeInContext(), LLVMValueIsBasicBlock(), loadBinaryFormat(), llvm::GVNPass::ValueTable::lookupOrAdd(), llvm::GVNPass::ValueTable::lookupOrAdd(), llvm::vfs::RedirectingFileSystem::lookupPath(), lookupSections(), lowerAddSubToHorizontalOp(), llvm::TargetLowering::LowerAsmOperandForConstraint(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::SPIRVInlineAsmLowering::lowerAsmOperandForConstraint(), LowerAsSplatVectorLoad(), LowerBUILD_VECTOR_i1(), LowerBUILD_VECTORToVIDUP(), lowerBuildVectorToBitOp(), LowerBuildVectorv4x32(), llvm::NVPTXTargetLowering::LowerCall(), llvm::CallLowering::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithPtrAuthBundle(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::AsmPrinter::lowerConstant(), LowerConvertLow(), llvm::FastISel::lowerDbgDeclare(), llvm::FastISel::lowerDbgValue(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::SITargetLowering::LowerDYNAMIC_STACKALLOC(), LowerEXTRACT_VECTOR_ELT(), LowerEXTRACT_VECTOR_ELT_SSE4(), llvm::SPIRVCallLowering::lowerFormalArguments(), LowerFunnelShift(), llvm::InlineAsmLowering::lowerInlineAsm(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), lowerIntrinsicToFunction(), lowerKernelArguments(), llvm::VETargetLowering::lowerLOAD(), llvm::LegalizerHelper::lowerLoad(), lowerLocalAllocas(), lowerMSASplatZExt(), LowerMUL(), LowerNegateToMultiply(), lowerObjectSizeCall(), llvm::RISCVTargetLowering::LowerOperation(), llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(), llvm::HexagonTargetLowering::LowerROTL(), LowerSaturatingConditional(), lowerScalarInsert(), lowerScalarSplat(), lowerSelectToBinOp(), LowerSELECTWithCmpZero(), llvm::MSP430TargetLowering::LowerShifts(), lowerShuffleAsLanePermuteAndRepeatedMask(), LowerSMELdrStr(), llvm::VETargetLowering::lowerSTORE(), llvm::AVRMCInstLower::lowerSymbolOperand(), lowerV2X128Shuffle(), LowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLE(), lowerVECTOR_SHUFFLEAsVSlide1(), lowerVectorIntrinsicScalars(), llvm::MachineMemOperand::MachineMemOperand(), llvm::VETargetLowering::makeAddress(), llvm::SelectionDAG::makeEquivalentMemoryOrdering(), llvm::SelectionDAG::makeEquivalentMemoryOrdering(), makeFollowupLoopID(), llvm::vfs::makeMirroringOutputBackend(), makeStatepointExplicitImpl(), llvm::IRAttribute< AK, BaseType, AAType >::manifest(), llvm::IRSimilarity::IRInstructionMapper::mapToLegalUnsigned(), markAliveBlocks(), llvm::ValueLatticeElement::markConstant(), llvm::ValueLatticeElement::markNotConstant(), markTails(), maskContainsAllOneOrUndef(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), llvm::PatternMatch::class_match< Class >::match(), llvm::PatternMatch::constantexpr_match::match(), llvm::SCEVPatternMatch::bind_cst_ty::match(), llvm::SCEVPatternMatch::class_match< Class >::match(), llvm::SCEVPatternMatch::cst_pred_ty< Predicate >::match(), llvm::VPlanPatternMatch::Argument_match< Opnd_t >::match(), llvm::VPlanPatternMatch::class_match< Class >::match(), llvm::PatternMatch::cstval_pred_ty< Predicate, ConstantInt, AllowPoison >::match_impl(), llvm::CombinerHelper::matchCombineExtendingLoads(), llvm::CombinerHelper::matchCombineUnmergeUndef(), matchDecomposedSelectPattern(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), matchIntrinsicType(), matchLSNode(), matchMergedBFX(), matchOrConcat(), llvm::sandboxir::VecUtils::matchPack(), matchSelectPattern(), matchStridedConstant(), matchSubIntegerPackFromVector(), llvm::InstCombinerImpl::matchThreeWayIntCompare(), matchUAddWithOverflowConstantEdgeCases(), llvm::VPlanTransforms::materializeBroadcasts(), llvm::VPlanTransforms::materializeBuildVectors(), llvm::VPlanTransforms::materializeConstantVectorTripCount(), maybePrintComdat(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), maySpeculateLanes(), mayUsePostIncMode(), llvm::MCDwarfLoc::MCDwarfLineEntry, memOpsHaveSameBasePtr(), memOpsHaveSameBasePtr(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::MemSeedBundle(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::MemSeedBundle(), MergeBasicBlockIntoOnlyPred(), MergeBlockIntoPredecessor(), mergeBlocksIntoPredecessors(), mergeCompatibleInvokesImpl(), mergeConditionalStoreToAddress(), mergeEltWithShuffle(), llvm::OverflowTracking::mergeFlags(), mergeNestedCondBranch(), llvm::DDGBuilder::mergeNodes(), llvm::Constant::mergeUndefsWith(), MightBeFoldableInst(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), modifyIntrinsicCall(), moveFastMathFlags(), moveFunctionData(), llvm::LoopInfo::movementPreservesLCSSAForm(), llvm::MemorySSA::moveTo(), mustBeFiniteCountedLoop(), mustBeUnreachableFunction(), llvm::InstDeleterIRStrategy::mutate(), llvm::InstModificationIRStrategy::mutate(), llvm::VPlanTransforms::narrowInterleaveGroups(), llvm::LegalizerHelper::narrowScalar(), narrowToSingleScalarRecipes(), narrowUDivURem(), llvm::sandboxir::CollectDescr::ExtractElementDescr::needsExtract(), needsStatepoint(), negateICmpIfUsedByBranchOrSelectOnly(), llvm::RandomIRBuilder::newSource(), llvm::EscapeEnumerator::Next(), noConflictingReadWrites(), normalizeForInvokeSafepoint(), okayForPHIOfOps(), llvm::sandboxir::User::op_begin(), llvm::sandboxir::User::op_end(), llvm::detail::IsaCheckPredicate< Types >::operator()(), llvm::sandboxir::PriorityCmp::operator()(), llvm::DbgVariableRecord::location_op_iterator::operator*(), llvm::DbgVariableRecord::location_op_iterator::operator*(), llvm::location_op_iterator::operator*(), llvm::location_op_iterator::operator*(), llvm::orc::CtorDtorIterator::operator*(), llvm::sandboxir::PredIterator::operator*(), llvm::location_op_iterator::operator++(), llvm::sandboxir::PredIterator::operator++(), llvm::location_op_iterator::operator--(), operator<<(), llvm::TinyPtrVector< ReachingDef >::operator=(), llvm::TinyPtrVector< ReachingDef >::operator=(), llvm::TinyPtrVector< ReachingDef >::operator[](), opMustUseVOP3Encoding(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), optimizeBranch(), llvm::LibCallSimplifier::optimizeCall(), optimizeCallInst(), optimizeDivRem(), OptimizeExtractBits(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfAllocation(), optimizeIncrementingWhile(), optimizeIntegerToVectorInsertions(), optimizeLoopExitWithUnknownExitCount(), orderModule(), orderModule(), orderModule(), orderValue(), orderValue(), orderValue(), ParseBFI(), llvm::yaml::Document::parseBlockNode(), llvm::MIRParserImpl::parseCalledGlobals(), llvm::LoopStructure::parseLoopStructure(), llvm::MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment(), passingValueIsAlwaysUndefined(), patchReplacementInstruction(), peelLoop(), peelToTurnInvariantLoadsDerefencebale(), performAddCombineSubShift(), performANDCombine(), PerformARMBUILD_VECTORCombine(), llvm::SparcTargetLowering::PerformBITCASTCombine(), performBRCONDCombine(), PerformBUILD_VECTORCombine(), performBUILD_VECTORCombine(), performBuildVectorCombine(), performConcatVectorsCombine(), performCONDCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), PerformExtendCombine(), performEXTRACT_VECTOR_ELTCombine(), PerformExtractEltCombine(), PerformExtractEltToVMOVRRD(), performExtractSubvectorCombine(), PerformFADDCombineWithOperands(), performFpToIntCombine(), performINSERT_VECTOR_ELTCombine(), PerformMinMaxToSatCombine(), performMulCombine(), PerformORCombineToBFI(), performSELECT_CCCombine(), performSETCCCombine(), performSETCCCombine(), performSHLCombine(), PerformSHLSimplify(), performSIGN_EXTEND_INREGCombine(), performSRACombine(), performTRUNCATECombine(), performTruncateCombine(), PerformVCVTCombine(), PerformVMOVrhCombine(), PerformVMOVRRDCombine(), PerformVMulVCTPCombine(), PerformVSetCCToVCTPCombine(), performXORCombine(), llvm::InstCombinerImpl::PHIArgMergedDebugLoc(), phiNodeReplacement(), planContainsAdditionalSimplifications(), pointerInvalidatedByLoop(), PointerMayBeCaptured(), PointerMayBeCapturedBefore(), llvm::TinyPtrVector< ReachingDef >::pop_back(), populateDependencyMatrix(), populateEHOperandBundle(), possiblyDemandedEltsInMask(), predictUseListOrder(), predictUseListOrder(), predictValueUseListOrder(), predictValueUseListOrder(), predictValueUseListOrder(), llvm::BasicTTIImplBase< BasicTTIImpl >::preferToKeepConstantsAttached(), preparePlanForMainVectorLoop(), llvm::InstCombinerImpl::prepareWorklist(), llvm::AsmPrinter::preprocessXXStructorList(), preserveFakeUses(), llvm::AArch64AuthMCExpr::print(), llvm::Metadata::print(), llvm::PassManagerPrettyStackEntry::print(), llvm::ScalarEvolution::print(), llvm::StackSafetyGlobalInfo::print(), llvm::Value::print(), llvm::Value::print(), llvm::SDNode::print_details(), llvm::Metadata::printAsOperand(), llvm::Value::printAsOperand(), printConstant(), PrintDebugDomInfo(), llvm::PPCInstPrinter::printInst(), llvm::MIRFormatter::printIRValue(), PrintLLVMName(), PrintLoopInfo(), printMetadataImpl(), printMetadataImplRec(), PrintSCEVWithTypeHint(), PrintShuffleMask(), llvm::ModuleSymbolTable::printSymbolName(), printWithoutType(), processArg(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::processBlock(), llvm::JumpThreadingPass::processBranchOnXOR(), processCallSite(), processIfEntryValueDbgDeclare(), llvm::JumpThreadingPass::processImpliedCondition(), processInternalGlobal(), processLoopInVPlanNativePath(), processPHI(), processSelect(), llvm::JumpThreadingPass::processThreadableEdges(), processUMulZExtIdiom(), llvm::xray::FileBasedRecordProducer::produce(), llvm::ProfileAnnotatorImpl::ProfileAnnotatorImpl(), promoteAllocaUserToVector(), promoteVCIXScalar(), propagateAttributesToRefs(), propagateMetadata(), propagateNaN(), propagatesPoison(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::TinyPtrVector< ReachingDef >::push_back(), pushAddIntoCmovOfConsts(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), raiseUserConstantDataAllocasToEntryBlock(), llvm::GVNHoist::rank(), llvm::RawLocationWrapper::RawLocationWrapper(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), llvm::MachO::DylibReader::readFile(), reassociateForUses(), llvm::OutlinableRegion::reattachCandidate(), reconnectPhis(), llvm::AArch64TargetLowering::ReconstructShuffle(), ReconstructShuffleWithRuntimeMask(), ReconstructTruncateFromBuildVector(), redirectToHub(), redirectValuesFromPredecessorsToPhi(), reduceBuildVecToShuffleWithZero(), llvm::LegalizerHelper::reduceLoadStoreWidth(), refineInstruction(), llvm::ScalarEvolution::registerUser(), relocationViaAlloca(), remapIndices(), rematerializeChain(), rematerializeLiveValues(), removeConstantFactors(), RemoveDeadConstant(), llvm::MemorySSA::removeFromLists(), llvm::MemorySSA::removeFromLookups(), RemoveInstInputs(), llvm::MemoryDependenceResults::removeInstruction(), removeIntrinsicUsers(), llvm::MemorySSAUpdater::removeMemoryAccess(), llvm::SCCPSolver::removeNonFeasibleEdges(), RemovePreallocated(), llvm::objcopy::elf::Object::removeSections(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), replaceAccessesWithHandle(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), replaceArgumentUses(), replaceBranchTargets(), llvm::SCEVExpander::replaceCongruentIVs(), replaceCreatedSSACopys(), llvm::coro::BaseCloner::replaceEntryBlock(), replaceExtractElements(), llvm::InstCombiner::replaceInstUsesWith(), replaceLoopInvariantUses(), llvm::RISCVTargetLowering::ReplaceNodeResults(), replaceOperation(), llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(), llvm::VPlanTransforms::replaceSymbolicStrides(), replaceSymbolicStrideSCEV(), replaceUndefValuesInPhi(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), llvm::DbgVariableRecord::replaceVariableLocationOp(), llvm::DbgVariableRecord::replaceVariableLocationOp(), replaceWithTLIFunction(), replacingOperandWithVariableIsCheap(), llvm::VPlanTransforms::replicateByVF(), llvm::RecordResolver::resolve(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::SCCPInstVisitor::resolvedUndef(), llvm::BitsInit::resolveReferences(), llvm::dxil::ResourceTypeInfo::ResourceTypeInfo(), llvm::DIBuilder::retainType(), llvm::MetadataTracking::retrack(), returnTypeIsEligibleForTailCall(), llvm::ScalarEvolution::LoopGuards::rewrite(), rewriteAccessChain(), rewriteDebugUsers(), rewriteGEPAsOffset(), rewriteLoopExitValues(), rewriteMaterializableInstructions(), rewriteMemOpOfSelect(), rewriteNonInstructionUses(), rewritePHIs(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::DSEPass::run(), llvm::InlinerPass::run(), llvm::InstCombinerImpl::run(), llvm::LoadAndStorePromoter::run(), llvm::LoopConstrainer::run(), llvm::ModuleInlinerPass::run(), llvm::ProfileVerifierPass::run(), llvm::StructuralHashPrinterPass::run(), llvm::TypeFinder::run(), runImpl(), runImpl(), runImpl(), runIPSCCP(), runMoveAutoInit(), llvm::RewriteStatepointsForGC::runOnFunction(), runOnFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), runPass(), llvm::ReplaceableMetadataImpl::SalvageDebugInfo(), llvm::coro::BaseCloner::salvageDebugInfo(), llvm::coro::salvageDebugInfo(), llvm::SelectionDAG::salvageDebugInfo(), salvageDebugInfoImpl(), salvageDebugInfoImpl(), SalvageDVI(), llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue(), scalarConstantToHexString(), scalarize(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scanOneBB(), SDValueToConstBool(), SearchLoopIntrinsic(), llvm::AMDGPUDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::Select(), llvm::LoongArchDAGToDAGISel::SelectAddrConstant(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm(), llvm::RISCVDAGToDAGISel::SelectAddrRegImmLsb00000(), llvm::RISCVDAGToDAGISel::SelectAddrRegReg(), llvm::RISCVDAGToDAGISel::SelectAddrRegRegScale(), llvm::HexagonDAGToDAGISel::SelectAnyInt(), llvm::FastISel::selectBinaryOp(), llvm::AMDGPUDAGToDAGISel::SelectBuildVector(), selectConstantAddr(), llvm::LoopVectorizationPlanner::selectEpilogueVectorizationFactor(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectGetElementPtr(), selectIncomingValueForBlock(), llvm::LoopVectorizationPlanner::selectInterleaveCount(), llvm::RISCVDAGToDAGISel::selectInvLogicImm(), llvm::ConstantFPSDNode::SelectionDAG, llvm::ConstantSDNode::SelectionDAG, llvm::RISCVDAGToDAGISel::selectNegImm(), llvm::LoongArchDAGToDAGISel::selectNonFIBaseAddr(), llvm::FastISel::selectOperator(), llvm::FastISel::selectPatchpoint(), SelectSAddrFI(), llvm::RISCVDAGToDAGISel::selectSExtBits(), llvm::LoongArchDAGToDAGISel::selectShiftMask(), llvm::RISCVDAGToDAGISel::selectShiftMask(), llvm::RISCVDAGToDAGISel::selectSHXADD_UWOp(), llvm::RISCVDAGToDAGISel::selectSHXADDOp(), llvm::FastISel::selectStackmap(), llvm::RISCVDAGToDAGISel::selectVLOp(), selectVSplatImmHelper(), llvm::RISCVDAGToDAGISel::selectZExtImm32(), separateNestedLoop(), llvm::FunctionLoweringInfo::set(), llvm::IRSimilarity::IRInstructionData::setBranchSuccessors(), setBranchWeights(), llvm::InstrProfCallsite::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), llvm::CoroIdInst::setCoroutineSelf(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::yaml::Input::setCurrentDocument(), llvm::InstrProfCntrInstBase::setIndex(), setInsertionPoint(), setInsertPointSkippingPhis(), llvm::MCDwarfLoc::setIsa(), setLimitForFPToI(), setLoadStoreAlignment(), llvm::Value::setMetadata(), llvm::sandboxir::User::setOperand(), llvm::User::setOperand(), llvm::IRSimilarity::IRInstructionData::setPHIPredecessors(), setProbeDistributionFactor(), llvm::DbgVariableRecord::setRawLocation(), llvm::logicalview::LVSymbol::setReference(), llvm::RecordVal::setValue(), setXFormForUnalignedFI(), shiftAmountKnownInRange(), llvm::ARMTargetLowering::shouldAlignPointerArgs(), llvm::LoongArchTargetLowering::shouldAlignPointerArgs(), llvm::TargetMachine::shouldAssumeDSOLocal(), ShouldBreakUpSubtract(), shouldCheckArgs(), shouldCombineToPostInc(), llvm::AArch64TTIImpl::shouldConsiderAddressTypePromotion(), llvm::RISCVTTIImpl::shouldConsiderAddressTypePromotion(), llvm::LoopVectorizationCostModel::shouldConsiderInvariant(), shouldConvertImpl(), shouldConvertUse(), BasicLoadAndStorePromoter::shouldDelete(), llvm::SelectionDAGBuilder::ShouldEmitAsBranches(), shouldEmitPTXNoReturn(), llvm::SSPLayoutInfo::shouldEmitSDCheck(), llvm::SITargetLowering::shouldExpandVectorDynExt(), shouldHaveDiscriminator(), llvm::RISCVTargetLowering::shouldInsertFencesForAtomic(), shouldInsertFreeze(), shouldInstrumentBlock(), shouldPrintAsStr(), llvm::AMDGPUTargetLowering::shouldReduceLoadWidth(), shouldRename(), shouldSinkVectorOfPtrs(), shouldSkipSectionFirstByte(), shouldSpeculateInstrs(), shouldSwapCmpOperands(), llvm::AArch64TTIImpl::shouldTreatInstructionLikeSelect(), llvm::TargetTransformInfoImplBase::shouldTreatInstructionLikeSelect(), shouldUnrollMultiExitLoop(), shrinkFPConstantVector(), llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(), llvm::ShuffleVectorInst::ShuffleVectorInst(), simplifyAddInst(), simplifyAllocaArraySize(), simplifyAndInst(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), simplifyBinaryIntrinsic(), simplifyBranchConditionForVFAndUF(), simplifyCall(), SimplifyCondBranchToCondBranch(), simplifyConstrainedFPCall(), llvm::InstCombinerImpl::SimplifyDemandedBits(), llvm::ARMTargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle(), simplifyDivRem(), simplifyExtractElementInst(), simplifyFCmpInst(), simplifyGEPInst(), simplifyICmpInst(), llvm::ScalarEvolution::SimplifyICmpOperands(), simplifyInsertElementInst(), simplifyInsertValueInst(), simplifyIntrinsic(), simplifyLdexp(), simplifyLoopInst(), simplifyLoopIVs(), simplifyMulInst(), simplifyNeonTbl1(), simplifyOrInst(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), simplifyPHINode(), simplifyRecipe(), simplifyReductionOperand(), simplifySelectInst(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), simplifySelectWithFCmp(), llvm::TargetLowering::SimplifySetCC(), simplifyShift(), simplifyShuffleVectorInst(), simplifySubInst(), simplifySVEIntrinsic(), simplifySVEIntrinsicBinOp(), simplifyWithOpsReplaced(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pack(), simplifyX86pmadd(), simplifyX86pmulh(), simplifyX86pshufb(), simplifyX86vpermilvar(), simplifyX86vpermv(), simplifyX86vpermv3(), simplifyXorInst(), sink(), sinkAndCmp0Expression(), sinkCmpExpression(), sinkCommonCodeFromPredecessors(), sinkInstruction(), sinkLoopInvariantInstructions(), llvm::InstCombinerImpl::sinkNotIntoLogicalOp(), llvm::InstCombinerImpl::sinkNotIntoOtherHandOfLogicalOp(), sinkRecurrenceUsersAfterPrevious(), sinkScalarOperands(), SinkShiftAndTruncate(), llvm::TinyPtrVector< ReachingDef >::size(), skippedInstrFlags(), skipToNonAllocaInsertPt(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), slotOnlyDiscardsData(), SoleWriteToDeadLocal(), splatPartsI64WithVL(), SplitAllCriticalEdges(), SplitBlockAndInsertForEachLane(), splitBlockBefore(), SplitBlockImpl(), SplitBlockPredecessorsImpl(), splitCallSite(), llvm::OutlinableRegion::splitCandidate(), SplitIndirectBrCriticalEdges(), SplitKnownCriticalEdge(), SplitLandingPadPredecessorsImpl(), splitStoreSplat(), SRAGlobal(), StrengthenNoWrapFlags(), stripGCRelocates(), stripInactiveLanes(), stripInvalidMetadataFromInstruction(), stripLoopMDLoc(), stripNonValidAttributesFromPrototype(), stripNonValidDataFromBody(), StripPointerGEPsAndCasts(), StripSymtab(), llvm::SubsumingPositionIterator::SubsumingPositionIterator(), supportedAddressingMode(), swapICmpOperandsToExposeCSEOpportunities(), llvm::object::SymbolRef::SymbolRef(), thinLTOInternalizeModule(), thinLTOResolvePrevailingGUID(), threadBinOpOverPHI(), threadBinOpOverSelect(), threadCmpOverPHI(), threadCmpOverSelect(), llvm::JumpThreadingPass::threadGuard(), llvm::Constant::toConstantRange(), transferDecorations(), transformCallee(), transformInitializer(), transformInitializer(), llvm::slpvectorizer::BoUpSLP::transformNodes(), transformRecipestoEVLRecipes(), llvm::Attributor::translateArgumentToCallSiteContent(), translateExtract(), translateSetCCForBranch(), translateSetCCForBranch(), trimTrailingZerosInVector(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), TryCombineBaseUpdate(), llvm::LegalizationArtifactCombiner::tryCombineExtract(), tryConstantFoldCall(), TryDistrubutionADDVecReduce(), tryFactorization(), tryGetSecondaryReductionRoot(), llvm::PGOIndirectCallVisitor::tryGetVTableInstruction(), tryInterleave(), TryMULWIDECombine(), tryNarrowMathIfNoOverflow(), tryPromoteCall(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), llvm::VPRecipeBuilder::tryToCreatePartialReduction(), llvm::VPRecipeBuilder::tryToCreateWidenRecipe(), tryToFindDuplicates(), tryToFoldExtendOfConstant(), tryToMergeLandingPad(), tryToMergePartialOverlappingStores(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::InstCombinerImpl::tryToSinkInstruction(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), tryToVectorizeSequence(), tryUnmergingGEPsAcrossIndirectBr(), llvm::SPIRV::type_has_layout_decoration(), unique_dyn_cast(), llvm::VPlanTransforms::unrollByUF(), UnrollLoop(), UnrollRuntimeLoopRemainder(), llvm::InstCombinerImpl::unshuffleConstant(), unswitchAllTrivialConditions(), unswitchNontrivialInvariants(), unswitchTrivialSwitch(), unwrapExprVar(), updateCallerBFI(), UpdatePHINodes(), updateProfileCallee(), llvm::FastISel::updateValueMap(), UpgradeIntrinsicCall(), UpgradeTBAANode(), upgradeX86IntrinsicCall(), llvm::upward_defs_iterator::upward_defs_iterator(), useInversedSetcc(), llvm::AArch64TTIImpl::useNeonVector(), validLookupTableConstant(), llvm::LocalAsMetadata::ValueAsMetadata, valueDominatesPHI(), llvm::dxil::ValueEnumerator::ValueEnumerator(), llvm::ValueEnumerator::ValueEnumerator(), valueEscapes(), valueIsOnlyUsedLocallyOrStoredToOneGlobal(), vectorEltWillFoldAway(), vectorizeExtractedCast(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::sandboxir::Argument::verify(), llvm::sandboxir::Constant::verify(), llvm::sandboxir::ConstantAggregateZero::verify(), llvm::sandboxir::ConstantFP::verify(), llvm::sandboxir::ConstantInt::verify(), llvm::sandboxir::ConstantPointerNull::verify(), llvm::sandboxir::ConstantTokenNone::verify(), llvm::sandboxir::DSOLocalEquivalent::verify(), llvm::sandboxir::Function::verify(), llvm::sandboxir::GlobalIFunc::verify(), llvm::sandboxir::GlobalVariable::verify(), llvm::sandboxir::NoCFIValue::verify(), llvm::sandboxir::OpaqueValue::verify(), llvm::sandboxir::PoisonValue::verify(), llvm::sandboxir::SingleLLVMInstructionImpl< LLVMT >::verify(), llvm::sandboxir::UndefValue::verify(), llvm::sandboxir::User::verify(), llvm::ScalarEvolution::verify(), llvm::MemorySSA::verifyOrderingDominationAndDefUses(), llvm::AArch64SelectionDAGInfo::verifyTargetNode(), verifyTripCount(), llvm::SelectionDAGBuilder::visit(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAllocaInst(), llvm::InstCombinerImpl::visitAllocSite(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitBranchInst(), llvm::InstVisitor< UnrolledInstAnalyzer, bool >::visitCallBase(), llvm::InstCombinerImpl::visitCallInst(), llvm::SelectionDAGBuilder::visitDbgInfo(), DataScalarizerVisitor::visitExtractElementInst(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitFPExt(), llvm::InstCombinerImpl::visitFPTrunc(), llvm::InstCombinerImpl::visitFree(), llvm::InstCombinerImpl::visitFSub(), DataScalarizerVisitor::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitICmpInst(), DataScalarizerVisitor::visitInsertElementInst(), llvm::InstCombinerImpl::visitInsertElementInst(), llvm::InstCombinerImpl::visitIntToPtr(), llvm::InstCombinerImpl::visitLandingPadInst(), llvm::SCEVDivision::visitMulExpr(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitPHINode(), llvm::PtrUseVisitor< ArgUseChecker >::visitPtr(), llvm::LazyCallGraph::visitReferences(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShuffleVectorInst(), llvm::InstCombinerImpl::visitSRem(), llvm::InstCombinerImpl::visitStoreInst(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitSwitchInst(), llvm::TBAAVerifier::visitTBAAMetadata(), llvm::InstCombinerImpl::visitTrunc(), llvm::InstCombinerImpl::visitXor(), llvm::InstCombinerImpl::visitZExt(), llvm::VPIRMetadata::VPIRMetadata(), llvm::VPWidenCallRecipe::VPWidenCallRecipe(), willGenerateVectors(), willLowerDirectly(), willShiftRightEliminate(), wouldInstructionBeTriviallyDead(), WriteAsOperandInternal(), WriteAsOperandInternal(), WriteConstantInternal(), writeToAlloca(), writtenBetween(), llvm::reassociate::XorOpnd::XorOpnd(), and llvm::slpvectorizer::BoUpSLP::~BoUpSLP().

◆ isa() [2/2]

template<typename First, typename Second, typename... Rest, typename From>
bool llvm::isa ( const From & Val)
inlinenodiscard

Definition at line 553 of file Casting.h.

References isa().

◆ isa_and_nonnull()

◆ isa_and_present()

template<typename... X, class Y>
bool llvm::isa_and_present ( const Y & Val)
inlinenodiscard

isa_and_present<X> - Functionally identical to isa, except that a null value is accepted.

Definition at line 675 of file Casting.h.

References isa(), llvm::detail::isPresent(), X, and Y.

Referenced by llvm::slpvectorizer::BoUpSLP::getTreeCost(), isa_and_nonnull(), and llvm::detail::IsaAndPresentCheckPredicate< Types >::operator()().

◆ isAArch64FrameOffsetLegal()

int llvm::isAArch64FrameOffsetLegal ( const MachineInstr & MI,
StackOffset & Offset,
bool * OutUseUnscaledOp = nullptr,
unsigned * OutUnscaledOp = nullptr,
int64_t * 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 6478 of file AArch64InstrInfo.cpp.

References AArch64FrameOffsetCannotUpdate, AArch64FrameOffsetCanUpdate, AArch64FrameOffsetIsLegal, assert(), llvm::StackOffset::get(), llvm::StackOffset::getFixed(), llvm::MachineOperand::getImm(), llvm::AArch64InstrInfo::getLoadStoreImmIdx(), llvm::AArch64InstrInfo::getMemOpInfo(), llvm::StackOffset::getScalable(), llvm::AArch64InstrInfo::getUnscaledLdSt(), llvm_unreachable, MI, and Offset.

Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex(), estimateRSStackSizeLimit(), llvm::AArch64RegisterInfo::isFrameOffsetLegal(), and rewriteAArch64FrameIndex().

◆ isAcquireOrStronger()

◆ isAddMemInstrWithRelocation()

◆ isAddrAligned()

bool llvm::isAddrAligned ( Align Lhs,
const void * Addr )
inline

Checks that Addr is a multiple of the alignment.

Definition at line 150 of file Alignment.h.

References isAligned().

Referenced by llvm::object::OffloadBinary::create(), loadBinaryFormat(), llvm::FixedStreamArray< CrossModuleExport >::operator[](), and llvm::BinaryStreamReader::readArray().

◆ isAESPair()

bool llvm::isAESPair ( const MachineInstr * FirstMI,
const MachineInstr & SecondMI )
static

Definition at line 22 of file ARMMacroFusion.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by shouldScheduleAdjacent().

◆ isAligned()

◆ 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 66 of file PromoteMemoryToRegister.cpp.

References dyn_cast(), llvm::AllocaInst::getAllocatedType(), II, onlyUsedByLifetimeMarkers(), onlyUsedByLifetimeMarkersOrDroppableInsts(), and llvm::Value::users().

Referenced by doPromotion(), eliminateSwiftErrorAlloca(), llvm::memtag::StackInfoBuilder::getAllocaInterestingness(), and promoteMemoryToRegister().

◆ isAllocationFn() [1/2]

bool llvm::isAllocationFn ( const Value * V,
const TargetLibraryInfo * TLI )

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 287 of file MemoryBuiltins.cpp.

References Alloc, AnyAlloc, checkFnAllocKind(), getAllocationData(), and Realloc.

Referenced by CleanupPointerRootUsers(), getPotentialCopiesOfMemoryValue(), IsSafeComputationToRemove(), and optimizeOnceStoredGlobal().

◆ isAllocationFn() [2/2]

bool llvm::isAllocationFn ( const Value * V,
function_ref< const TargetLibraryInfo &(Function &)> GetTLI )

Definition at line 291 of file MemoryBuiltins.cpp.

References Alloc, AnyAlloc, checkFnAllocKind(), getAllocationData(), and Realloc.

◆ isAllocLikeFn()

bool llvm::isAllocLikeFn ( const Value * V,
const TargetLibraryInfo * TLI )

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 313 of file MemoryBuiltins.cpp.

References Alloc, AllocLike, checkFnAllocKind(), and getAllocationData().

Referenced by computePointerICmp(), isNeverEqualToUnescapedAlloc(), and isRemovableAlloc().

◆ isAllOnesConstant()

◆ isAllOnesOrAllOnesSplat() [1/2]

bool llvm::isAllOnesOrAllOnesSplat ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
bool AllowUndefs = false )

Return true if the value is a constant -1 integer or a splatted vector of a constant -1 integer (with no undefs if AllowUndefs is false).

Definition at line 1607 of file Utils.cpp.

References isBuildVectorAllOnes(), MI, and MRI.

Referenced by combineAndMaskToShift(), foldAndOrOfSETCC(), foldSelectOfConstantsUsingSra(), foldVSelectToSignBitSplatMask(), llvm::SDPatternMatch::AllOnes_match::match(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), matchShuffleWithPACK(), and shouldConvertSelectOfConstantsToMath().

◆ isAllOnesOrAllOnesSplat() [2/2]

bool llvm::isAllOnesOrAllOnesSplat ( SDValue V,
bool AllowUndefs = false )

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 12949 of file SelectionDAG.cpp.

References BitWidth, llvm::CallingConv::C, isConstOrConstSplat(), N, and peekThroughBitcasts().

◆ isAlmostDeadIV()

bool llvm::isAlmostDeadIV ( PHINode * IV,
BasicBlock * LatchBlock,
Value * Cond )

Return true if the induction variable IV in a Loop whose latch is LatchBlock would become dead if the exit test Cond were removed.

Conservatively returns false if analysis is insufficient.

Definition at line 471 of file LoopUtils.cpp.

References assert(), Cond, llvm::PHINode::getBasicBlockIndex(), llvm::PHINode::getIncomingValue(), and llvm::Value::users().

Referenced by canFoldTermCondOfLoop(), and FindLoopCounter().

◆ isAlnum()

◆ isAlpha()

bool llvm::isAlpha ( char C)
inline

◆ isArm64ECMangledFunctionName()

bool llvm::isArm64ECMangledFunctionName ( StringRef Name)
inline

Check if an ARM64EC function name is mangled.

Definition at line 82 of file Mangler.h.

References llvm::StringRef::npos.

◆ isARMLowRegister()

◆ isASCII() [1/2]

bool llvm::isASCII ( char C)
inline

Checks whether character C is valid ASCII (high bit is zero).

Definition at line 125 of file StringExtras.h.

References llvm::CallingConv::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 128 of file StringExtras.h.

References llvm::CallingConv::C, isASCII(), and LLVM_UNLIKELY.

◆ isAssertMI()

bool llvm::isAssertMI ( const MachineInstr & MI)

Returns true if the instruction MI is one of the assert instructions.

Definition at line 2040 of file Utils.cpp.

References MI.

◆ isAssignmentTrackingEnabled()

◆ isAssumeLikeIntrinsic()

bool llvm::isAssumeLikeIntrinsic ( const Instruction * I)

Return true if it is an intrinsic that cannot be speculated but also cannot trap.

Definition at line 508 of file ValueTracking.cpp.

References dyn_cast(), and I.

◆ isAssumeWithEmptyBundle()

bool llvm::isAssumeWithEmptyBundle ( const AssumeInst & Assume)

Return true iff the operand bundles of the provided llvm.assume doesn't contain any valuable information.

This is true when:

  • The operand bundle is empty
  • The operand bundle only contains information about dropped values or constant folded values.

the argument to the call of llvm.assume may still be useful even if the function returned true.

Definition at line 132 of file AssumeBundleQueries.cpp.

References none_of().

Referenced by llvm::InstCombinerImpl::visitCallInst(), and wouldInstructionBeTriviallyDead().

◆ isAsynchronousEHPersonality()

◆ isAtLeastOrStrongerThan()

◆ isBaseOfObject()

bool llvm::isBaseOfObject ( const Value * V)

Return true if we know V to the base address of the corresponding memory object.

This implies that any address less than V must be out of bounds for the underlying object. Note that just being isIdentifiedObject() is not enough - For example, a negative offset from a noalias argument or call can be inbounds w.r.t the actual underlying object.

Definition at line 853 of file AliasAnalysis.cpp.

References isa().

◆ 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 270 of file BitcodeReader.h.

References isBitcodeWrapper(), and isRawBitcode().

Referenced by embedBitcodeInModule(), getLazyIRModule(), and parseIR().

◆ 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 8733 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 244 of file BitcodeReader.h.

Referenced by analyzeHeader(), initStream(), and isBitcode().

◆ isBitcodeWriterPass()

bool llvm::isBitcodeWriterPass ( Pass * P)

Check whether a pass is a BitcodeWriterPass.

Definition at line 77 of file BitcodeWriterPass.cpp.

References P.

Referenced by llvm::DebugifyCustomPassManager::add().

◆ isBitwiseNot()

◆ IsBlockFollowedByDeoptOrUnreachable()

bool llvm::IsBlockFollowedByDeoptOrUnreachable ( const BasicBlock * BB)

Check if we can prove that all paths starting from this block converge to a block that either has a @llvm.experimental.deoptimize call prior to its terminating return instruction or is terminated by unreachable.

All blocks in the traversed sequence must have an unique successor, maybe except for the last one.

Definition at line 584 of file BasicBlockUtils.cpp.

References Depth, llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniqueSuccessor(), llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), and MaxDeoptOrUnreachableSuccessorCheckDepth.

Referenced by canPeel(), and sinkCommonCodeFromPredecessors().

◆ isBoolSGPR()

◆ isBranchWeightMD()

bool llvm::isBranchWeightMD ( const MDNode * ProfileData)

◆ isBuildVectorAllOnes()

bool llvm::isBuildVectorAllOnes ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
bool AllowUndef = false )

Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are ~0 or undef.

Definition at line 1488 of file Utils.cpp.

References isBuildVectorConstantSplat(), MI, and MRI.

Referenced by llvm::GIMatchTableExecutor::executeMatchTable(), and isAllOnesOrAllOnesSplat().

◆ isBuildVectorAllZeros()

bool llvm::isBuildVectorAllZeros ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
bool AllowUndef = false )

Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are 0 or undef.

Definition at line 1482 of file Utils.cpp.

References isBuildVectorConstantSplat(), MI, and MRI.

Referenced by llvm::GIMatchTableExecutor::executeMatchTable(), isNullOrNullSplat(), and llvm::CombinerHelper::matchPtrAddZero().

◆ isBuildVectorConstantSplat() [1/4]

bool llvm::isBuildVectorConstantSplat ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
const APInt & SplatValue,
bool AllowUndef )

Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.

Definition at line 1433 of file Utils.cpp.

References isBuildVectorConstantSplat(), MI, and MRI.

◆ isBuildVectorConstantSplat() [2/4]

bool llvm::isBuildVectorConstantSplat ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
int64_t SplatValue,
bool AllowUndef )

Return true if the specified instruction is a G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.

Definition at line 1426 of file Utils.cpp.

References isBuildVectorConstantSplat(), MI, and MRI.

◆ isBuildVectorConstantSplat() [3/4]

bool llvm::isBuildVectorConstantSplat ( const Register Reg,
const MachineRegisterInfo & MRI,
const APInt & SplatValue,
bool AllowUndef )

Return true if the specified register is defined by G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.

Definition at line 1410 of file Utils.cpp.

References llvm::APInt::getBitWidth(), llvm::APInt::isSameValue(), MRI, and llvm::APInt::sext().

◆ isBuildVectorConstantSplat() [4/4]

bool llvm::isBuildVectorConstantSplat ( const Register Reg,
const MachineRegisterInfo & MRI,
int64_t SplatValue,
bool AllowUndef )

Return true if the specified register is defined by G_BUILD_VECTOR or G_BUILD_VECTOR_TRUNC where all of the elements are SplatValue or undef.

Definition at line 1401 of file Utils.cpp.

References MRI.

Referenced by isBuildVectorAllOnes(), isBuildVectorAllZeros(), isBuildVectorConstantSplat(), isBuildVectorConstantSplat(), llvm::MIPatternMatch::SpecificConstantOrSplatMatch::match(), and llvm::MIPatternMatch::SpecificConstantSplatMatch::match().

◆ isBytewiseValue()

Value * llvm::isBytewiseValue ( Value * V,
const DataLayout & DL )

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 6104 of file ValueTracking.cpp.

References assert(), BitWidth, llvm::CallingConv::C, ConstantFoldIntegerCast(), DL, dyn_cast(), llvm::PoisonValue::get(), llvm::UndefValue::get(), llvm::ConstantExpr::getBitCast(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Type::getIntNTy(), llvm::Constant::getNullValue(), I, isa(), isBytewiseValue(), and Merge.

Referenced by isBytewiseValue().

◆ isCallableCC()

◆ isCalleeSavedRegister()

bool llvm::isCalleeSavedRegister ( MCRegister Reg,
const MCPhysReg * CSRegs )
inlinestatic

Definition at line 44 of file ARMBaseRegisterInfo.h.

References Reg.

Referenced by tryFoldSPUpdateIntoPushPop().

◆ isCFGuardFunction()

◆ isCheckForZeroAndMulWithOverflow() [1/2]

bool llvm::isCheckForZeroAndMulWithOverflow ( Value * Op0,
Value * Op1,
bool IsAnd )

Definition at line 67 of file OverflowInstAnalysis.cpp.

References isCheckForZeroAndMulWithOverflow(), and Y.

◆ isCheckForZeroAndMulWithOverflow() [2/2]

bool llvm::isCheckForZeroAndMulWithOverflow ( Value * Op0,
Value * Op1,
bool IsAnd,
Use *& Y )

Match one of the patterns up to the select/logic op: Op0 = icmp ne i4 X, 0 Agg = call { i4, i1 } @llvm.

[us]mul.with.overflow.i4(i4 X, i4 Y) Op1 = extractvalue { i4, i1 } Agg, 1 ret = select i1 Op0, i1 Op1, i1 false / ret = and i1 Op0, Op1

Op0 = icmp eq i4 X, 0 Agg = call { i4, i1 } @llvm.[us]mul.with.overflow.i4(i4 X, i4 Y) NotOp1 = extractvalue { i4, i1 } Agg, 1 Op1 = xor i1 NotOp1, true ret = select i1 Op0, i1 true, i1 Op1 / ret = or i1 Op0, Op1

Callers are expected to align that with the operands of the select/logic. IsAnd is set to true if the Op0 and Op1 are used as the first pattern. If Op0 and Op1 match one of the patterns above, return true and fill Y's use.

Agg = call { i4, i1 } @llvm.[us]mul.with.overflow.i4(i4 X, i4 %???) V = extractvalue { i4, i1 } Agg, 1

Definition at line 21 of file OverflowInstAnalysis.cpp.

References dyn_cast(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, II, llvm::PatternMatch::m_CombineOr(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_Intrinsic(), llvm::MIPatternMatch::m_Not(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), X, and Y.

Referenced by isCheckForZeroAndMulWithOverflow(), simplifyAndCommutative(), and simplifyOrInst().

◆ isCompileUnit()

◆ isCondBranchOpcode() [1/2]

◆ isCondBranchOpcode() [2/2]

bool llvm::isCondBranchOpcode ( int Opc)
inlinestatic

Definition at line 638 of file ARMBaseInstrInfo.h.

References Opc.

◆ isConsecutiveAccess()

bool llvm::isConsecutiveAccess ( Value * A,
Value * B,
const DataLayout & DL,
ScalarEvolution & SE,
bool CheckType = true )

Returns true if the memory operations A and B are consecutive.

This is a simple API that does not depend on the analysis pass.

Definition at line 1741 of file LoopAccessAnalysis.cpp.

References A(), B(), DL, getLoadStorePointerOperand(), getLoadStoreType(), and getPointersDiff().

◆ IsConstantOffsetFromGlobal()

bool llvm::IsConstantOffsetFromGlobal ( Constant * C,
GlobalValue *& GV,
APInt & Offset,
const DataLayout & DL,
DSOLocalEquivalent ** DSOEquiv = nullptr )

If this constant is a constant offset from a global, return the global and the constant.

Because of constantexprs, this function is recursive. If the global is part of a dso_local_equivalent constant, return it through Equiv if it is provided.

Because of constantexprs, this function is recursive.

Definition at line 304 of file ConstantFolding.cpp.

References BitWidth, llvm::CallingConv::C, DL, dyn_cast(), GEP, llvm::GlobalValue::getType(), IsConstantOffsetFromGlobal(), and Offset.

Referenced by findFuncPointers(), IsConstantOffsetFromGlobal(), llvm::AsmPrinter::lowerConstant(), shouldConvertToRelLookupTable(), and simplifyRelativeLoad().

◆ isConstantOrConstantSplatVector()

std::optional< APInt > llvm::isConstantOrConstantSplatVector ( MachineInstr & MI,
const MachineRegisterInfo & MRI )

Determines if MI defines a constant integer or a splat vector of constant integers.

Returns
the scalar constant or std::nullopt.

Definition at line 1565 of file Utils.cpp.

References llvm::CallingConv::C, getIConstantSplatSExtVal(), getIConstantVRegValWithLookThrough(), MI, and MRI.

Referenced by llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchConstantOp(), llvm::CombinerHelper::matchConstantSelectCmp(), and llvm::CombinerHelper::tryReassocBinOp().

◆ isConstantOrConstantSplatVectorFP()

std::optional< APFloat > llvm::isConstantOrConstantSplatVectorFP ( MachineInstr & MI,
const MachineRegisterInfo & MRI )

Determines if MI defines a float constant integer or a splat vector of float constant integers.

Returns
the float constant or std::nullopt.

Definition at line 1578 of file Utils.cpp.

References getFConstantSplat(), getFConstantVRegValWithLookThrough(), MI, and MRI.

Referenced by llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp().

◆ isConstantOrConstantVector() [1/2]

bool llvm::isConstantOrConstantVector ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
bool AllowFP = true,
bool AllowOpaqueConstants = true )

Return true if the specified instruction is known to be a constant, or a vector of constants.

If AllowFP is true, this will consider G_FCONSTANT in addition to G_CONSTANT. If AllowOpaqueConstants is true, constant-like instructions such as G_GLOBAL_VALUE will also be considered.

Definition at line 1545 of file Utils.cpp.

References AbstractManglingParser< Derived, Alloc >::NumOps, I, isBuildVectorOp(), isConstantScalar(), MI, and MRI.

Referenced by foldSelectOfConstantsUsingSra(), isAnyConstantBuildVector(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), llvm::CombinerHelper::matchSDivOrSRemByConst(), and llvm::CombinerHelper::matchUDivOrURemByConst().

◆ isConstantOrConstantVector() [2/2]

bool llvm::isConstantOrConstantVector ( MachineInstr & MI,
const MachineRegisterInfo & MRI )

Determines if MI defines a constant integer or a build vector of constant integers.

Treats undef values as constants.

Definition at line 1528 of file Utils.cpp.

References llvm::CallingConv::C, dyn_cast(), getIConstantVRegValWithLookThrough(), llvm::GMergeLikeInstr::getNumSources(), getOpcodeDef(), llvm::GMergeLikeInstr::getSourceReg(), MI, and MRI.

◆ isConstFalseVal()

bool llvm::isConstFalseVal ( const TargetLowering & TLI,
int64_t Val,
bool IsVector,
bool IsFP )

◆ isConstOrConstSplat() [1/2]

ConstantSDNode * llvm::isConstOrConstSplat ( SDValue N,
bool AllowUndefs = false,
bool AllowTruncation = false )

Returns the SDNode if it is a constant splat BuildVector or constant int.

Definition at line 12860 of file SelectionDAG.cpp.

References llvm::APInt::getAllOnes(), llvm::EVT::getVectorMinNumElements(), isConstOrConstSplat(), llvm::EVT::isFixedLengthVector(), and N.

Referenced by combineAnd(), combineSelect(), combineShiftOfShiftedLogic(), combineShiftToAVG(), combineShiftToMULH(), combineTruncSelectToSMaxUSat(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::TargetLowering::expandMULO(), extractBooleanFlip(), extractShiftForRotate(), foldAddSubOfSignBit(), foldAndOrOfSETCC(), foldRemainderIdiom(), foldSetCCWithFunnelShift(), foldSetCCWithRotate(), foldVectorXorShiftIntoCmp(), getBitwiseNotOperand(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNode(), isAllOnesOrAllOnesSplat(), isBitwiseNot(), llvm::SelectionDAG::isBoolConstant(), isBSwapHWordPair(), isConstOrConstSplat(), llvm::TargetLowering::isConstTrueVal(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isNeutralConstant(), isNullOrNullSplat(), isOneOrOneSplat(), isOnesOrOnesSplat(), isSaturatingMinMax(), isZeroOrZeroSplat(), LowerADDSAT_SUBSAT(), LowerVSETCC(), matchBSwapHWordOrAndAnd(), matchRotateSub(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformUMinFpToSatCombine(), PerformVQDMULHCombine(), PerformVSELECTCombine(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), stripModuloOnShift(), and trySQDMULHCombine().

◆ isConstOrConstSplat() [2/2]

ConstantSDNode * llvm::isConstOrConstSplat ( SDValue N,
const APInt & DemandedElts,
bool AllowUndefs = false,
bool AllowTruncation = false )

Returns the SDNode if it is a demanded constant splat BuildVector or constant int.

Definition at line 12869 of file SelectionDAG.cpp.

References assert(), llvm::EVT::bitsGE(), dyn_cast(), llvm::SDNode::getValueType(), N, llvm::BitVector::none(), and llvm::ISD::SPLAT_VECTOR.

◆ isConstOrConstSplatFP() [1/2]

◆ isConstOrConstSplatFP() [2/2]

ConstantFPSDNode * llvm::isConstOrConstSplatFP ( SDValue N,
const APInt & DemandedElts,
bool AllowUndefs = false )

Returns the SDNode if it is a demanded constant splat BuildVector or constant float.

Definition at line 12914 of file SelectionDAG.cpp.

References dyn_cast(), N, llvm::BitVector::none(), and llvm::ISD::SPLAT_VECTOR.

◆ isConstTrueVal()

bool llvm::isConstTrueVal ( const TargetLowering & TLI,
int64_t Val,
bool IsVector,
bool IsFP )

◆ isControlFlowEquivalent() [1/2]

bool llvm::isControlFlowEquivalent ( const BasicBlock & BB0,
const BasicBlock & BB1,
const DominatorTree & DT,
const PostDominatorTree & PDT )

Return true if BB0 and BB1 are control flow equivalent.

Two basic blocks are control flow equivalent if when one executes, the other is guaranteed to execute.

Definition at line 237 of file CodeMoverUtils.cpp.

References dbgs(), llvm::DominatorTree::dominates(), llvm::PostDominatorTree::dominates(), llvm::DominatorTree::findNearestCommonDominator(), llvm::Value::getName(), and LLVM_DEBUG.

◆ isControlFlowEquivalent() [2/2]

bool llvm::isControlFlowEquivalent ( const Instruction & I0,
const Instruction & I1,
const DominatorTree & DT,
const PostDominatorTree & PDT )

Return true if I0 and I1 are control flow equivalent.

Two instructions are control flow equivalent if their basic blocks are control flow equivalent.

Definition at line 231 of file CodeMoverUtils.cpp.

References llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), and isControlFlowEquivalent().

Referenced by isControlFlowEquivalent(), isSafeToMoveBefore(), and nonStrictlyPostDominate().

◆ isConvergenceControlIntrinsic()

bool llvm::isConvergenceControlIntrinsic ( unsigned IntrinsicID)
inlinestatic

Check if ID corresponds to a convergence control intrinsic.

Definition at line 1743 of file IntrinsicInst.h.

Referenced by llvm::ConvergenceControlInst::classof().

◆ isCopyMulResult()

bool llvm::isCopyMulResult ( MachineBasicBlock::iterator const & I)
static

Definition at line 2198 of file AVRISelLowering.cpp.

References I.

◆ isCopyToV0()

bool llvm::isCopyToV0 ( const MachineInstr & MI)
static

Definition at line 46 of file RISCVVectorMaskDAGMutation.cpp.

References MI.

Referenced by isSoleUseCopyToV0().

◆ IsCPSRDead()

template<typename InstrType>
bool llvm::IsCPSRDead ( const InstrType * Instr)

Referenced by isV8EligibleForIT().

◆ IsCPSRDead< MachineInstr >()

Definition at line 587 of file ARMBaseInstrInfo.cpp.

References MI.

◆ IsCPSRDead< MCInst >()

template<>
bool llvm::IsCPSRDead< MCInst > ( const MCInst * Instr)
inline

Definition at line 11329 of file ARMAsmParser.cpp.

◆ isCriticalEdge() [1/2]

◆ isCriticalEdge() [2/2]

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 96 of file CFG.cpp.

References assert(), llvm::Instruction::getSuccessor(), and isCriticalEdge().

Referenced by DemoteRegToStack(), isCriticalEdge(), skipPGOUse(), SplitCriticalEdge(), SplitCriticalEdges(), and SplitEdge().

◆ isCurrentDebugType()

bool llvm::isCurrentDebugType ( const char * Type,
int Level = 0 )

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.

An optional level can be provided to control the verbosity of the output. If the provided level is not 0 and user specified a level below the provided level, return false.

Definition at line 81 of file Debug.cpp.

References CurrentDebugType, and D().

Referenced by isDebug().

◆ isCycleInvariant()

bool llvm::isCycleInvariant ( const MachineCycle * Cycle,
MachineInstr & I )

◆ isDbgInfoIntrinsic()

bool llvm::isDbgInfoIntrinsic ( Intrinsic::ID ID)
inlinestatic

Check if ID corresponds to a debug info intrinsic.

Definition at line 168 of file IntrinsicInst.h.

Referenced by llvm::DbgInfoIntrinsic::classof().

◆ isDefaultFPEnvironment()

bool llvm::isDefaultFPEnvironment ( fp::ExceptionBehavior EB,
RoundingMode RM )
inline

Returns true if the exception handling behavior and rounding mode match what is used in the default floating point environment.

Definition at line 68 of file FPEnv.h.

References llvm::fp::ebIgnore, and NearestTiesToEven.

Referenced by simplifyFAddInst(), simplifyFDivInst(), simplifyFMAFMul(), simplifyFMulInst(), simplifyFPOp(), simplifyFRemInst(), and simplifyFSubInst().

◆ isDereferenceableAndAlignedInLoop()

bool llvm::isDereferenceableAndAlignedInLoop ( LoadInst * LI,
Loop * L,
ScalarEvolution & SE,
DominatorTree & DT,
AssumptionCache * AC = nullptr,
SmallVectorImpl< const SCEVPredicate * > * Predicates = nullptr )

Return true if we can prove that the given load (which is assumed to be within the specified loop) would access only dereferenceable memory, and be properly aligned on every iteration of the specified loop regardless of its placement within the loop.

(i.e. does not require predication beyond that required by the header itself and could be hoisted into the header if desired.) This is more powerful than the variants above when the address loaded from is analyzeable by SCEV.

Definition at line 289 of file Loads.cpp.

References llvm::ScalarEvolution::applyLoopGuards(), llvm::sampleprof::Base, llvm::ScalarEvolution::LoopGuards::collect(), DL, dyn_cast(), llvm::ScalarEvolution::getAddExpr(), llvm::LoadInst::getAlign(), llvm::ScalarEvolution::getBackedgeTakenCount(), llvm::Instruction::getDataLayout(), llvm::ScalarEvolution::getMinusSCEV(), llvm::LoadInst::getPointerOperand(), llvm::ScalarEvolution::getPredicatedBackedgeTakenCount(), llvm::ScalarEvolution::getPredicatedSymbolicMaxBackedgeTakenCount(), llvm::ScalarEvolution::getSCEV(), getStartAndEndForAccess(), llvm::ScalarEvolution::getSymbolicMaxBackedgeTakenCount(), llvm::Value::getType(), llvm::ScalarEvolution::getUnsignedRangeMax(), llvm::CmpInst::ICMP_ULE, llvm::RetainedKnowledge::IRArgValue, isa(), isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointerViaAssumption(), llvm::ScalarEvolution::isKnownPredicate(), Offset, Ptr, llvm::APInt::uadd_ov(), llvm::APInt::ugt(), llvm::APInt::urem(), and llvm::Align::value().

Referenced by isReadOnlyLoop().

◆ isDereferenceableAndAlignedPointer() [1/2]

bool llvm::isDereferenceableAndAlignedPointer ( const Value * V,
Align Alignment,
const APInt & Size,
const DataLayout & DL,
const Instruction * CtxI = nullptr,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = 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 215 of file Loads.cpp.

References DL, and Size.

◆ isDereferenceableAndAlignedPointer() [2/2]

bool llvm::isDereferenceableAndAlignedPointer ( const Value * V,
Type * Ty,
Align Alignment,
const DataLayout & DL,
const Instruction * CtxI = nullptr,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = 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 229 of file Loads.cpp.

References DL, and isDereferenceableAndAlignedPointer().

Referenced by allCallersPassValidPointerForArgument(), canTransformToMemCmp(), llvm::TargetLoweringBase::getLoadMemOperandFlags(), llvm::MachinePointerInfo::isDereferenceable(), isDereferenceableAndAlignedInLoop(), isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointer(), isDereferenceableForAllocaSize(), isDereferenceablePointer(), isSafeToLoadUnconditionally(), isSafeToSpeculativelyExecuteWithOpcode(), promoteLoopAccessesToScalars(), and llvm::MemDerefPrinterPass::run().

◆ isDereferenceablePointer()

bool llvm::isDereferenceablePointer ( const Value * V,
Type * Ty,
const DataLayout & DL,
const Instruction * CtxI = nullptr,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = 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 249 of file Loads.cpp.

References DL, and isDereferenceableAndAlignedPointer().

Referenced by isPointerAlwaysReplaceable(), isSafeToSpeculateStore(), peelToTurnInvariantLoadsDerefencebale(), promoteLoopAccessesToScalars(), and llvm::MemDerefPrinterPass::run().

◆ isDigit()

◆ isDoLoopStart()

bool llvm::isDoLoopStart ( const MachineInstr & MI)
inlinestatic

Definition at line 71 of file MVETailPredUtils.h.

References MI.

Referenced by isLoopStart().

◆ isDUPFirstSegmentMask()

bool llvm::isDUPFirstSegmentMask ( ArrayRef< int > Mask,
unsigned Segments,
unsigned SegmentSize )
inline

isDUPFirstSegmentMask - matches a splat of the first 128b segment.

Definition at line 6754 of file AArch64PerfectShuffle.h.

References all_of(), enumerate(), and P.

Referenced by llvm::AArch64TTIImpl::getShuffleCost().

◆ isDUPQMask()

std::optional< unsigned > llvm::isDUPQMask ( ArrayRef< int > Mask,
unsigned Segments,
unsigned SegmentSize )
inline

isDUPQMask - matches a splat of equivalent lanes within segments of a given number of elements.

Definition at line 6729 of file AArch64PerfectShuffle.h.

References all_of(), enumerate(), and P.

Referenced by llvm::AArch64TTIImpl::getShuffleCost().

◆ isEmbeddedModelEvaluatorValid()

template<class T>
bool llvm::isEmbeddedModelEvaluatorValid ( )

◆ isEmbeddedModelEvaluatorValid< NoopSavedModelImpl >()

Definition at line 159 of file ReleaseModeModelRunner.h.

◆ isEnqueueKernelBI()

bool llvm::isEnqueueKernelBI ( const StringRef MangledName)
static

Definition at line 411 of file SPIRVUtils.cpp.

Referenced by isNonMangledOCLBuiltin().

◆ isEntryPoint()

bool llvm::isEntryPoint ( const Function & F)

Definition at line 489 of file SPIRVUtils.cpp.

References F, and llvm::CallingConv::SPIR_KERNEL.

Referenced by llvm::SPIRVCallLowering::lowerFormalArguments().

◆ isEqual()

◆ isEquivalentTypes()

bool llvm::isEquivalentTypes ( Type * Ty1,
Type * Ty2 )
inline

Definition at line 380 of file SPIRVUtils.h.

References isUntypedEquivalentToTyExt().

◆ isEscapeSource()

bool llvm::isEscapeSource ( const Value * V)

Returns true if the pointer is one which would have been considered an escape by isNotCapturedBefore.

Definition at line 861 of file AliasAnalysis.cpp.

References dyn_cast(), isa(), and isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().

Referenced by AddAliasScopeMetadata().

◆ isExpandableUser()

bool llvm::isExpandableUser ( User * U)
static

Definition at line 21 of file ReplaceConstant.cpp.

References isa().

Referenced by convertUsersOfConstantsToInstructions().

◆ isExplicitlyUnknownProfileMetadata()

◆ isFilterPassesEmpty()

bool llvm::isFilterPassesEmpty ( )

Definition at line 158 of file PrintPasses.cpp.

References FilterPasses.

◆ isFinite()

bool llvm::isFinite ( const Loop * L)

Return true if this loop can be assumed to run for a finite number of iterations.

Definition at line 1152 of file LoopInfo.cpp.

Referenced by foldFCmpFpTrunc(), llvm::detail::IEEEFloat::getExactLog2Abs(), and llvm::ScalarEvolution::loopIsFiniteByAssumption().

◆ isFuncletEHPersonality()

bool llvm::isFuncletEHPersonality ( EHPersonality Pers)
inline

Returns true if this is a personality function that invokes handler funclets (which must return to it).

Definition at line 66 of file EHPersonalities.h.

References CoreCLR, llvm_unreachable, MSVC_CXX, MSVC_TableSEH, and MSVC_X86SEH.

Referenced by llvm::X86TargetLowering::getExceptionSelectorRegister(), llvm::StackProtectorPass::run(), llvm::StackProtector::runOnFunction(), and llvm::FunctionLoweringInfo::set().

◆ isFuncletReturnInstr()

◆ isFunctionInPrintList()

◆ isGather()

bool llvm::isGather ( IntrinsicInst * IntInst)
inline

◆ isGatherScatter()

bool llvm::isGatherScatter ( IntrinsicInst * IntInst)
inline

Definition at line 952 of file ARMBaseInstrInfo.h.

References isGather(), and isScatter().

Referenced by hasAllGatScatUsers().

◆ isGenericCastablePtr()

bool llvm::isGenericCastablePtr ( SPIRV::StorageClass::StorageClass SC)
constexpr

Definition at line 176 of file SPIRVUtils.h.

Referenced by generateCastToPtrInst().

◆ isGlobalRelativeToPICBase()

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 139 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 llvm::X86TargetLowering::isLegalAddressingMode(), and X86SelectAddress().

◆ isGlobalStubReference()

bool llvm::isGlobalStubReference ( unsigned char TargetFlag)
inlinestatic

◆ isGPUProfTarget()

bool llvm::isGPUProfTarget ( const Module & M)

Determines whether module targets a GPU eligable for PGO instrumentation.

Definition at line 482 of file InstrProf.cpp.

References T.

Referenced by createIRLevelProfileFlagVar(), createPGOFuncNameVar(), and setPGOFuncVisibility().

◆ isGuaranteedNotToBePoison() [1/3]

bool llvm::isGuaranteedNotToBePoison ( const Value * V,
AssumptionCache * AC,
BasicBlock::iterator CtxI,
const DominatorTree * DT = nullptr,
unsigned Depth = 0 )
inline

Definition at line 793 of file ValueTracking.h.

References Depth, and isGuaranteedNotToBePoison().

◆ isGuaranteedNotToBePoison() [2/3]

◆ isGuaranteedNotToBePoison() [3/3]

bool llvm::isGuaranteedNotToBePoison ( Register Reg,
const MachineRegisterInfo & MRI,
unsigned Depth = 0 )

Returns true if Reg cannot be poison, but may be undef.

Definition at line 2019 of file Utils.cpp.

References Depth, MRI, and PoisonOnly.

◆ isGuaranteedNotToBeUndef() [1/2]

◆ isGuaranteedNotToBeUndef() [2/2]

bool llvm::isGuaranteedNotToBeUndef ( Register Reg,
const MachineRegisterInfo & MRI,
unsigned Depth = 0 )

Returns true if Reg cannot be undef, but may be poison.

Definition at line 2026 of file Utils.cpp.

References Depth, MRI, and UndefOnly.

◆ isGuaranteedNotToBeUndefOrPoison() [1/2]

bool llvm::isGuaranteedNotToBeUndefOrPoison ( const Value * V,
AssumptionCache * AC = nullptr,
const Instruction * CtxI = nullptr,
const DominatorTree * DT = nullptr,
unsigned Depth = 0 )

Return true if this function can prove that V does not have undef bits and is never poison.

If V is an aggregate value or vector, check whether all elements (except padding) are not undef or poison. Note that this is different from canCreateUndefOrPoison because the function assumes Op's operands are not poison/undef.

If CtxI and DT are specified this method performs flow-sensitive analysis and returns true if it is guaranteed to be never undef or poison immediately before the CtxI.

Definition at line 7741 of file ValueTracking.cpp.

References Depth, and UndefOrPoison.

Referenced by addNoUndefAttrs(), buildPartialUnswitchConditionalBranch(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), despeculateCountZeros(), findForkedSCEVs(), fixReductionScalarResumeWhenVectorizingEpilog(), foldAndOrOfICmpsWithConstEq(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), foldLogOpOfMaskedICmps(), isGuaranteedNotToBeUndefOrPoison(), isGuaranteedNotToBeUndefOrPoison(), llvm::AANoUndef::isImpliedByIR(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), preparePlanForMainVectorLoop(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), shouldInsertFreeze(), simplifyFreezeInst(), simplifyOperationIntoSelectOperand(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), UnrollRuntimeLoopRemainder(), unswitchBestCondition(), llvm::InstCombinerImpl::visitFNeg(), and llvm::InstCombinerImpl::visitFreeze().

◆ isGuaranteedNotToBeUndefOrPoison() [2/2]

bool llvm::isGuaranteedNotToBeUndefOrPoison ( Register Reg,
const MachineRegisterInfo & MRI,
unsigned Depth = 0 )

Returns true if Reg cannot be poison and undef.

Definition at line 2012 of file Utils.cpp.

References Depth, MRI, and UndefOrPoison.

◆ 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 7880 of file ValueTracking.cpp.

References I, isGuaranteedToTransferExecutionToSuccessor(), and llvm_unreachable.

Referenced by checkOverflow(), and isMustExecuteIn().

◆ isGuaranteedToTransferExecutionToSuccessor() [1/4]

bool llvm::isGuaranteedToTransferExecutionToSuccessor ( BasicBlock::const_iterator Begin,
BasicBlock::const_iterator End,
unsigned ScanLimit = 32 )

Return true if every instruction in the range (Begin, End) is guaranteed to transfer execution to its static successor.

ScanLimit bounds the search to avoid scanning huge blocks.

Definition at line 7861 of file ValueTracking.cpp.

References isGuaranteedToTransferExecutionToSuccessor(), and make_range().

◆ isGuaranteedToTransferExecutionToSuccessor() [2/4]

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 7852 of file ValueTracking.cpp.

References I, and isGuaranteedToTransferExecutionToSuccessor().

◆ isGuaranteedToTransferExecutionToSuccessor() [3/4]

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 7820 of file ValueTracking.cpp.

References classifyEHPersonality(), CoreCLR, I, and isa().

Referenced by addArgumentAttrsFromCallsites(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), findArgParts(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), llvm::MustBeExecutedContextExplorer::getMustBeExecutedNextInstruction(), isGuaranteedToExecuteForEveryIteration(), isGuaranteedToTransferExecutionToSuccessor(), isGuaranteedToTransferExecutionToSuccessor(), isGuaranteedToTransferExecutionToSuccessor(), llvm::ImplicitControlFlowTracking::isSpecialInstruction(), isValidAssumeForContext(), llvm::JumpThreadingPass::maybeMergeBasicBlockIntoOnlyPred(), MayContainThrowingOrExitingCallAfterCB(), mayHaveNonDefUseDependency(), optimizeDivRem(), passingValueIsAlwaysUndefined(), programUndefinedIfUndefOrPoison(), llvm::InstCombinerImpl::removeInstructionsBeforeUnreachable(), replaceFoldableUses(), llvm::InstCombinerImpl::simplifyDivRemOfSelectWithZeroOp(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), and skippedInstrFlags().

◆ isGuaranteedToTransferExecutionToSuccessor() [4/4]

bool llvm::isGuaranteedToTransferExecutionToSuccessor ( iterator_range< BasicBlock::const_iterator > Range,
unsigned ScanLimit = 32 )

Same as previous, but with range expressed via iterator_range.

Definition at line 7868 of file ValueTracking.cpp.

References assert(), I, isGuaranteedToTransferExecutionToSuccessor(), and Range.

◆ isGuard()

◆ isGuardAsWidenableBranch()

bool llvm::isGuardAsWidenableBranch ( const User * U)

Returns true iff U has semantics of a guard expressed in a form of a widenable conditional branch to deopt block.

Definition at line 33 of file GuardUtils.cpp.

References cast(), llvm::SmallPtrSetImpl< PtrType >::insert(), isWidenableBranch(), llvm::PatternMatch::m_Intrinsic(), and llvm::PatternMatch::match().

Referenced by isSupportedGuardInstruction().

◆ isHeader()

bool llvm::isHeader ( StringRef S)
static

Definition at line 225 of file Debuginfod.cpp.

References all_of(), llvm::CallingConv::C, isPrint(), and llvm::StringRef::split().

Referenced by getHeaders().

◆ isHeuristicInlineCostFeature()

bool llvm::isHeuristicInlineCostFeature ( InlineCostFeatureIndex Feature)
constexpr

Definition at line 83 of file InlineModelFeatureMaps.h.

◆ isHexDigit()

bool llvm::isHexDigit ( char C)
inline

Checks if character C is a hexadecimal numeric character.

Definition at line 109 of file StringExtras.h.

References llvm::CallingConv::C, and hexDigitValue().

Referenced by doHexLookAhead(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), and percentDecode().

◆ 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 849 of file AliasAnalysis.cpp.

References isa(), isNoAliasCall(), and isNoAliasOrByValArgument().

Referenced by llvm::BasicAAResult::aliasErrno(), llvm::AAResults::callCapturesBefore(), llvm::EarliestEscapeAnalysis::getCapturesBefore(), and llvm::SimpleCaptureAnalysis::getCapturesBefore().

◆ 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 837 of file AliasAnalysis.cpp.

References isa(), isNoAliasCall(), and isNoAliasOrByValArgument().

Referenced by AddAliasScopeMetadata(), addLocAccess(), llvm::AMDGPUAAResult::alias(), getUnderlyingObjectsForCodeGen(), getUnderlyingObjectsForInstr(), isObjectSmallerThan(), false::SUnitWithMemInfo::SUnitWithMemInfo(), and underlyingObjectsAlias().

◆ isImage()

bool llvm::isImage ( const Value & V)

Definition at line 259 of file NVPTXUtilities.cpp.

References isImageReadOnly(), isImageReadWrite(), and isImageWriteOnly().

◆ isImageReadOnly()

bool llvm::isImageReadOnly ( const Value & V)

Definition at line 247 of file NVPTXUtilities.cpp.

References argHasNVVMAnnotation().

Referenced by isImage().

◆ isImageReadWrite()

bool llvm::isImageReadWrite ( const Value & V)

Definition at line 255 of file NVPTXUtilities.cpp.

References argHasNVVMAnnotation().

Referenced by isImage().

◆ isImageWriteOnly()

bool llvm::isImageWriteOnly ( const Value & V)

Definition at line 251 of file NVPTXUtilities.cpp.

References argHasNVVMAnnotation().

Referenced by isImage().

◆ isImmSExti16i8Value()

bool llvm::isImmSExti16i8Value ( uint64_t Value)
inline

Definition at line 16 of file X86AsmParserCommon.h.

References isInt(), and isUInt().

Referenced by llvm::X86Operand::isImmSExti16i8().

◆ isImmSExti32i8Value()

bool llvm::isImmSExti32i8Value ( uint64_t Value)
inline

Definition at line 21 of file X86AsmParserCommon.h.

References isInt(), and isUInt().

Referenced by llvm::X86Operand::isImmSExti32i8().

◆ isImmSExti64i32Value()

bool llvm::isImmSExti64i32Value ( uint64_t Value)
inline

Definition at line 30 of file X86AsmParserCommon.h.

References isInt().

Referenced by llvm::X86Operand::isImmSExti64i32().

◆ isImmSExti64i8Value()

bool llvm::isImmSExti64i8Value ( uint64_t Value)
inline

Definition at line 26 of file X86AsmParserCommon.h.

References isInt().

Referenced by llvm::X86Operand::isDispImm8(), and llvm::X86Operand::isImmSExti64i8().

◆ isImmUnsignedi4Value()

bool llvm::isImmUnsignedi4Value ( uint64_t Value)
inline

Definition at line 38 of file X86AsmParserCommon.h.

References isUInt().

Referenced by llvm::X86Operand::isImmUnsignedi4().

◆ isImmUnsignedi8Value()

bool llvm::isImmUnsignedi8Value ( uint64_t Value)
inline

Definition at line 34 of file X86AsmParserCommon.h.

References isInt(), and isUInt().

Referenced by llvm::X86Operand::isImmUnsignedi8().

◆ isImpliedByDomCondition() [1/2]

std::optional< bool > llvm::isImpliedByDomCondition ( CmpPredicate Pred,
const Value * LHS,
const Value * RHS,
const Instruction * ContextI,
const DataLayout & DL )

Definition at line 9622 of file ValueTracking.cpp.

References DL, getDomPredecessorCondition(), and isImpliedCondition().

◆ isImpliedByDomCondition() [2/2]

std::optional< bool > llvm::isImpliedByDomCondition ( 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.

Definition at line 9612 of file ValueTracking.cpp.

References assert(), Cond, DL, getDomPredecessorCondition(), and isImpliedCondition().

Referenced by computeKnownBitsAddSub(), computeOverflowForUnsignedSub(), getKnownSign(), getKnownSignOrZero(), simplifyByDomEq(), simplifyICmpInst(), and simplifySelectInst().

◆ isImpliedCondition() [1/2]

std::optional< bool > llvm::isImpliedCondition ( const Value * LHS,
CmpPredicate RHSPred,
const Value * RHSOp0,
const Value * RHSOp1,
const DataLayout & DL,
bool LHSIsTrue = true,
unsigned Depth = 0 )

The LHS should be an 'or', 'and', or a 'select' instruction. We expect the RHS to be an icmp. FIXME: Add support for and/or/select on the RHS.

Definition at line 9476 of file ValueTracking.cpp.

References assert(), Depth, DL, dyn_cast(), llvm::Value::getType(), llvm::CmpInst::ICMP_NE, isImpliedCondAndOr(), isImpliedCondICmps(), llvm::Type::isVectorTy(), llvm::MIPatternMatch::m_Not(), llvm::PatternMatch::m_NUWTrunc(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and MaxAnalysisRecursionDepth.

◆ isImpliedCondition() [2/2]

std::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 std::nullopt 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 9519 of file ValueTracking.cpp.

References Depth, DL, dyn_cast(), llvm::CmpInst::ICMP_NE, isImpliedCondition(), llvm::PatternMatch::m_LogicalAnd(), llvm::PatternMatch::m_LogicalOr(), llvm::MIPatternMatch::m_Not(), llvm::PatternMatch::m_NUWTrunc(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and MaxAnalysisRecursionDepth.

Referenced by llvm::InstCombinerImpl::foldSelectICmp(), isImpliedByDomCondition(), isImpliedByDomCondition(), isImpliedCondAndOr(), isImpliedCondition(), isKnownNonEqualFromContext(), llvm::JumpThreadingPass::processImpliedCondition(), simplifyAndInst(), simplifyICmpOfBools(), simplifyICmpWithDominatingAssume(), simplifyInstructionWithPHI(), simplifyOrInst(), and llvm::JumpThreadingPass::threadGuard().

◆ isIndirectBranchOpcode() [1/2]

◆ isIndirectBranchOpcode() [2/2]

bool llvm::isIndirectBranchOpcode ( int Opc)
inlinestatic

Definition at line 649 of file ARMBaseInstrInfo.h.

References Opc.

◆ isIndirectCall()

bool llvm::isIndirectCall ( const MachineInstr & MI)
inlinestatic

◆ isIndirectCallOpcode()

bool llvm::isIndirectCallOpcode ( unsigned Opc)
inlinestatic

Definition at line 735 of file AArch64InstrInfo.h.

References Opc.

◆ isIndirectControlFlowNotComingBack()

bool llvm::isIndirectControlFlowNotComingBack ( const MachineInstr & MI)
inlinestatic

◆ isInlineViable()

InlineResult llvm::isInlineViable ( Function & Callee)

Check if it is mechanically possible to inline the function Callee, based on the contents of the function.

See also CanInlineCallSite as an additional precondition necessary to perform a valid inline in a particular use context.

Definition at line 3316 of file InlineCost.cpp.

References Call, cast(), dyn_cast(), F, llvm::InlineResult::failure(), llvm::BlockAddress::get(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::hasAddressTaken(), II, isa(), llvm::InlineResult::success(), and users.

Referenced by getAttributeBasedInliningDecision(), and getInlineCost().

◆ isInstructionTriviallyDead()

◆ isInt()

template<unsigned N>
bool llvm::isInt ( int64_t x)
constexpr

Checks if an integer fits into the given bit width.

Definition at line 174 of file MathExtras.h.

References N.

Referenced by llvm::PPCFrameLowering::addScavengingSpillSlot(), adjustFixupValue(), adjustFixupValue(), adjustFixupValue(), adjustFixupValue(), adjustFixupValue(), adjustFixupValue(), llvm::ARMAsmBackend::adjustFixupValue(), llvm::RISCVRegisterInfo::adjustReg(), llvm::Mips16InstrInfo::adjustStackPtr(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::XtensaInstrInfo::adjustStackPtr(), llvm::jitlink::aarch64::applyFixup(), llvm::jitlink::loongarch::applyFixup(), llvm::jitlink::ppc64::applyFixup(), llvm::jitlink::x86::applyFixup(), llvm::jitlink::x86_64::applyFixup(), llvm::jitlink::aarch32::applyFixupArm(), llvm::jitlink::aarch32::applyFixupData(), llvm::jitlink::aarch32::applyFixupThumb(), llvm::RISCVDAGToDAGISel::areOffsetsWithinAlignment(), buildPCRelGlobalAddress(), llvm::AMDGPULegalizerInfo::buildPCRelGlobalAddress(), llvm::RISCVInstrInfo::canFoldIntoAddrMode(), llvm::SITargetLowering::checkAsmConstraintVal(), checkIntrinsicImmArg(), combine_CC(), combineADDToADDZE(), combineADDToMAT_PCREL_ADDR(), combineRestoreSETHIi(), llvm::MachObjectWriter::computeSymbolTable(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::PPCTargetLowering::decomposeMulByConstant(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::LoongArchRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), emitIncrement(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::AArch64InstrInfo::emitLdStWithAddr(), llvm::MipsTargetStreamer::emitLoadWithImmOffset(), llvm::PPCTargetLowering::emitProbedAlloca(), llvm::ARCFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::SystemZXPLINKFrameLowering::emitPrologue(), emitRegUpdate(), llvm::MipsTargetStreamer::emitStoreWithImmOffset(), llvm::RuntimeDyldMachOAArch64::encodeAddend(), expandMul(), llvm::directive::FindName(), llvm::FixedPointSemantics::FixedPointSemantics(), llvm::VEInstrInfo::foldImmediate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::RISCVMatInt::generateInstSeq(), generateInstSeqImpl(), generateStackAdjustment(), getConstantZext32Val(), llvm::PPCMCCodeEmitter::getDispRI34PCRelEncoding(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), llvm::LoongArchFrameLowering::getFirstSPAdjustAmount(), llvm::RISCVFrameLowering::getFirstSPAdjustAmount(), llvm::SystemZInstrInfo::getFusedCompare(), llvm::RISCVTargetLowering::getIndexedAddressParts(), getInstSeqCost(), llvm::BPFTTIImpl::getIntImmCost(), llvm::LanaiTTIImpl::getIntImmCost(), llvm::PPCTTIImpl::getIntImmCost(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::X86TTIImpl::getIntImmCost(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getIntImmCostInst(), llvm::AArch64TTIImpl::getIntImmCostIntrin(), llvm::PPCTTIImpl::getIntImmCostIntrin(), llvm::SystemZTTIImpl::getIntImmCostIntrin(), getLit64Encoding(), llvm::Versioned::getMaxVersion(), llvm::Versioned::getMinVersion(), getMOVriOpcode(), llvm::GCStatepointInst::getNumPatchBytes(), llvm::SystemZInstrInfo::getOpcodeForOffset(), llvm::RISCVRegisterInfo::getRegAllocationHints(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::SparcTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::AMDGPU::getSMRDEncodedOffset(), llvm::Mips16FrameLowering::hasReservedCallFrame(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), INITIALIZE_PASS(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::XtensaInstrInfo::insertIndirectBranch(), llvm::HexagonInstrInfo::isAsCheapAsAMove(), llvm::LoongArchInstrInfo::isBranchOffsetInRange(), llvm::MipsInstrInfo::isBranchOffsetInRange(), llvm::RISCVInstrInfo::isBranchOffsetInRange(), isDispOrCDisp8(), isDispSafeForFrameIndexOrRegBase(), llvm::PPCRegisterInfo::isFrameOffsetLegal(), llvm::RISCVRegisterInfo::isFrameOffsetLegal(), isGreaterThanNBitTFRI(), isImmSExti16i8Value(), isImmSExti32i8Value(), isImmSExti64i32Value(), isImmSExti64i8Value(), isImmUnsignedi8Value(), llvm::SIInstrInfo::isInlineConstant(), isInRage(), isIntS34Immediate(), llvm::HexagonInstrInfo::isJumpWithinBranchRange(), llvm::LoongArchTargetLowering::isLegalAddImmediate(), llvm::PPCTargetLowering::isLegalAddImmediate(), llvm::RISCVTargetLowering::isLegalAddImmediate(), llvm::X86TargetLowering::isLegalAddImmediate(), llvm::AArch64TargetLowering::isLegalAddressingMode(), llvm::HexagonTargetLowering::isLegalAddressingMode(), llvm::LoongArchTargetLowering::isLegalAddressingMode(), llvm::RISCVTargetLowering::isLegalAddressingMode(), llvm::SITargetLowering::isLegalAddressingMode(), llvm::SystemZTargetLowering::isLegalAddressingMode(), llvm::AArch64TargetLowering::isLegalAddScalableImmediate(), llvm::LoongArchTargetLowering::isLegalICmpImmediate(), llvm::PPCTargetLowering::isLegalICmpImmediate(), llvm::RISCVTargetLowering::isLegalICmpImmediate(), llvm::SystemZTargetLowering::isLegalICmpImmediate(), llvm::X86TargetLowering::isLegalICmpImmediate(), llvm::AMDGPU::isLegalSMRDEncodedSignedOffset(), llvm::X86TargetLowering::isLegalStoreImmediate(), llvm::X86::isOffsetSuitableForCodeModel(), isShiftedInt(), isSignExtendedW(), isSimm7(), llvm::AMDGPU::isValid32BitLiteral(), llvm::HexagonInstrInfo::isValidAutoIncImm(), isValidLoadStoreOffset(), llvm::HexagonInstrInfo::isValidOffset(), llvm::PPCInstrInfo::isValidToBeChangedReg(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), isWorthFoldingIntoRegRegScale(), legalizeIntrinsicImmArg(), llvm::ARCInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::M68kTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::RISCVTargetLowering::LowerAsmOperandForConstraint(), llvm::SparcTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), lowerBuildVectorOfConstants(), lowerBuildVectorViaVID(), lowerConstant(), llvm::RISCVTargetLowering::LowerOperation(), lowerVectorSplatImm(), llvm::Mips16InstrInfo::makeFrame(), llvm::PPCInstrInfo::materializeImmPostRA(), Mips16WhichOp8uOr16simm(), llvm::CSKYInstrInfo::movImm(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), needsExpandMemInst(), llvm::PointerEmbeddedInt< IntT, Bits >::operator=(), llvm::RISCVInstrInfo::optimizeCondBranch(), llvm::jitlink::x86::optimizeGOTAndStubAccesses(), llvm::jitlink::x86_64::optimizeGOTAndStubAccesses(), optimizeToShortImmediateForm(), llvm::RISCVTargetLowering::PerformDAGCombine(), performSELECT_CCCombine(), performSETCCCombine(), llvm::PPCRegisterInfo::prepareDynamicAlloca(), printMemoryImmediateOffset(), llvm::PPCInstPrinter::printS34ImmOperand(), llvm::SystemZInstPrinterCommon::printSImmOperand(), llvm::LoongArchFrameLowering::processFunctionBeforeFrameFinalized(), llvm::RISCVFrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::XtensaFrameLowering::processFunctionBeforeFrameFinalized(), llvm::jitlink::relaxCall(), llvm::RuntimeDyldCOFFAArch64::resolveRelocation(), llvm::SystemZXPLINKFrameLowering::restoreCalleeSavedRegisters(), llvm::Mips16InstrInfo::restoreFrame(), llvm::RISCVDAGToDAGISel::Select(), llvm::LoongArchDAGToDAGISel::SelectAddrConstant(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm(), llvm::LoongArchDAGToDAGISel::SelectAddrRegImm12(), llvm::RISCVDAGToDAGISel::SelectAddrRegImmLsb00000(), llvm::RISCVDAGToDAGISel::SelectAddrRegRegScale(), selectConstantAddr(), selectDisp(), selectI64Imm(), selectI64ImmDirect(), selectI64ImmDirectPrefix(), llvm::RISCVDAGToDAGISel::selectInvLogicImm(), llvm::RISCVDAGToDAGISel::selectNegImm(), llvm::PPCTargetLowering::SelectOptimalAddrMode(), llvm::RISCVDAGToDAGISel::selectRVVSimm5(), llvm::RISCVDAGToDAGISel::selectSETCC(), llvm::HexagonDAGToDAGISel::SelectSHL(), llvm::RISCVDAGToDAGISel::selectSimm5Shl2(), llvm::RISCVDAGToDAGISel::selectVSplatSimm5(), llvm::RISCVDAGToDAGISel::selectVSplatSimm5Plus1(), llvm::RISCVDAGToDAGISel::selectVSplatSimm5Plus1NoDec(), llvm::RISCVDAGToDAGISel::selectVSplatSimm5Plus1NonZero(), llvm::AliasResult::setOffset(), llvm::RISCVTargetLowering::shouldConvertConstantLoadToIntImm(), shouldSwapCmpOperands(), shouldUseLA(), supportedAddressingMode(), transformAddImmMulImm(), translateSetCCForBranch(), translateSetCCForBranch(), llvm::RISCVDAGToDAGISel::tryBitfieldInsertOpFromOrAndImm(), llvm::RISCVDAGToDAGISel::tryIndexedLoad(), llvm::RISCVDAGToDAGISel::tryShrinkShlLogicImm(), llvm::Mips16InstrInfo::validImmediate(), llvm::Mips16InstrInfo::validSpImm8(), llvm::RISCVInstrInfo::verifyInstruction(), llvm::SIInstrInfo::verifyInstruction(), llvm::X86InstrInfo::verifyInstruction(), X86ChooseCmpImmediateOpcode(), and X86SelectAddress().

◆ isInTailCallPosition()

bool llvm::isInTailCallPosition ( const CallBase & Call,
const TargetMachine & TM,
bool ReturnsFirstArg = false )

Test if the given instruction is in a position to be optimized with a tail-call.

This roughly means that it's in a block with a return and there's nothing that needs to be scheduled between it and the return.

This function only tests target-independent requirements.

Definition at line 543 of file Analysis.cpp.

References Call, dyn_cast(), llvm::BasicBlock::end(), F, llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), II, isa(), isSafeToSpeculativelyExecute(), returnTypeIsEligibleForTailCall(), llvm::CallingConv::SwiftTail, and llvm::CallingConv::Tail.

Referenced by llvm::SelectionDAGBuilder::canTailCall(), llvm::SelectionDAG::getMemset(), InsertStackProtectors(), isInTailCallPositionWrapper(), llvm::CallLowering::lowerCall(), and llvm::FastISel::lowerCall().

◆ isIntN()

◆ isIntOrFPConstant()

bool llvm::isIntOrFPConstant ( SDValue V)
inline

◆ isIntrinsicReturningPointerAliasingArgumentWithoutCapturing()

bool llvm::isIntrinsicReturningPointerAliasingArgumentWithoutCapturing ( const CallBase * Call,
bool MustPreserveNullness )

{launder,strip}.invariant.group returns pointer that aliases its argument, and it only captures pointer by returning it.

These intrinsics are not marked as nocapture, because returning is considered as capture. The arguments are not marked as returned neither, because it would make it useless. If MustPreserveNullness is true, the intrinsic must preserve the nullness of the pointer.

Definition at line 6606 of file ValueTracking.cpp.

References Call.

Referenced by determinePointerAccessAttrs(), DetermineUseCaptureKind(), getArgumentAliasingToReturnedPointer(), and isEscapeSource().

◆ 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 2648 of file PPCISelLowering.cpp.

References isa(), and N.

Referenced by isIntS16Immediate(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::PPCTargetLowering::SelectAddressRegRegOnly(), llvm::PPCTargetLowering::SelectForceXFormMode(), and llvm::PPCTargetLowering::SelectOptimalAddrMode().

◆ isIntS16Immediate() [2/2]

bool llvm::isIntS16Immediate ( SDValue Op,
int16_t & Imm )

Definition at line 2658 of file PPCISelLowering.cpp.

References isIntS16Immediate().

◆ isIntS34Immediate() [1/2]

bool llvm::isIntS34Immediate ( SDNode * N,
int64_t & Imm )

isIntS34Immediate - This method tests if value of node given can be accurately represented as a sign extension from a 34-bit value.

If so, this returns true and the immediate.

Definition at line 2697 of file PPCISelLowering.cpp.

References cast(), isa(), isInt(), and N.

Referenced by isIntS34Immediate(), llvm::PPCTargetLowering::SelectAddressRegImm34(), and llvm::PPCTargetLowering::SelectOptimalAddrMode().

◆ isIntS34Immediate() [2/2]

bool llvm::isIntS34Immediate ( SDValue Op,
int64_t & Imm )

Definition at line 2704 of file PPCISelLowering.cpp.

References isIntS34Immediate().

◆ isIntVECondCode()

bool llvm::isIntVECondCode ( VECC::CondCode CC)
inlinestatic

Definition at line 151 of file VE.h.

References llvm::VECC::CC_AF.

Referenced by isI32Insn().

◆ 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 1494 of file InstrProf.cpp.

References dyn_cast_or_null(), llvm::GlobalVariable::getInitializer(), llvm::GlobalVariable::hasInitializer(), llvm::GlobalValue::hasLocalLinkage(), INSTR_PROF_QUOTE, INSTR_PROF_RAW_VERSION_VAR, llvm::GlobalValue::isDeclaration(), and VARIANT_MASK_IR_PROF.

Referenced by getVarName().

◆ isIRPrintingPass()

bool llvm::isIRPrintingPass ( Pass * P)

Return true if a pass is for IR printing.

Definition at line 124 of file IRPrintingPasses.cpp.

References P.

Referenced by llvm::DebugifyCustomPassManager::add().

◆ isJumpTableBranchOpcode()

bool llvm::isJumpTableBranchOpcode ( int Opc)
inlinestatic

◆ isKernelFunction()

◆ isKernelQueryBI()

bool llvm::isKernelQueryBI ( const StringRef MangledName)
static

Definition at line 418 of file SPIRVUtils.cpp.

Referenced by isNonMangledOCLBuiltin().

◆ isKnownInversion()

◆ isKnownNegation()

bool llvm::isKnownNegation ( const Value * X,
const Value * Y,
bool NeedNSW = false,
bool AllowPoison = true )

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 8494 of file ValueTracking.cpp.

References A(), assert(), B(), cast(), llvm::MIPatternMatch::m_Neg(), llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Sub(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), X, and Y.

Referenced by matchSelectPattern(), simplifyAddInst(), simplifySDivInst(), simplifySRemInst(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitSDiv().

◆ isKnownNegative()

bool llvm::isKnownNegative ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Returns true if the given value is known be negative (i.e.

non-positive and non-zero).

Definition at line 294 of file ValueTracking.cpp.

References computeKnownBits(), and Depth.

Referenced by computeKnownBitsMul(), and foldICmpAndXX().

◆ 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 1497 of file LoopUtils.cpp.

References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SLT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().

◆ isKnownNeverInfinity()

bool llvm::isKnownNeverInfinity ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Return true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities.

Return false if a value could ever be infinity.

Definition at line 5964 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, fcInf, and llvm::KnownFPClass::isKnownNeverInfinity().

Referenced by foldFCmpFSubIntoFCmp(), and isKnownIntegral().

◆ isKnownNeverInfOrNaN()

bool llvm::isKnownNeverInfOrNaN ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Return true if the floating-point value can never contain a NaN or infinity.

Definition at line 5971 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, fcInf, fcNan, llvm::KnownFPClass::isKnownNeverInfinity(), and llvm::KnownFPClass::isKnownNeverNaN().

Referenced by llvm::GCNTTIImpl::canSimplifyLegacyMulToMul(), and isKnownIntegral().

◆ isKnownNeverNaN() [1/2]

bool llvm::isKnownNeverNaN ( const Value * V,
const SimplifyQuery & SQ,
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.

Return false if a value could ever be NaN.

Definition at line 5980 of file ValueTracking.cpp.

References computeKnownFPClass(), Depth, fcNan, and llvm::KnownFPClass::isKnownNeverNaN().

Referenced by llvm::InstCombinerImpl::foldSelectIntoOp(), foldSelectShuffleWith1Binop(), isKnownNeverNaN(), isKnownNeverSNaN(), llvm::InstCombinerImpl::visitFCmpInst(), and llvm::InstCombinerImpl::visitFMul().

◆ isKnownNeverNaN() [2/2]

bool llvm::isKnownNeverNaN ( Register Val,
const MachineRegisterInfo & MRI,
bool SNaN = false )

Returns true if Val can be assumed to never be a NaN.

If SNaN is true, this returns if Val can be assumed to never be a signaling NaN.

Definition at line 815 of file Utils.cpp.

References DefMI, llvm::MachineInstr::FmNoNans, getConstantFPVRegVal(), isKnownNeverNaN(), isKnownNeverSNaN(), and MRI.

◆ isKnownNeverSNaN()

bool llvm::isKnownNeverSNaN ( Register Val,
const MachineRegisterInfo & MRI )
inline

Returns true if Val can be assumed to never be a signaling NaN.

Definition at line 352 of file Utils.h.

References isKnownNeverNaN(), and MRI.

Referenced by isKnownNeverNaN(), and llvm::LegalizerHelper::lowerFMinNumMaxNum().

◆ isKnownNonEqual()

bool llvm::isKnownNonEqual ( const Value * V1,
const Value * V2,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Return true if the given values are known to be non-equal when defined.

Supports scalar integer types only.

Definition at line 303 of file ValueTracking.cpp.

References Depth, dyn_cast(), llvm::APInt::getAllOnes(), and llvm::Value::getType().

Referenced by llvm::InstCombinerImpl::foldICmpBinOp(), isKnownNonEqual(), isKnownNonZeroFromOperator(), isNonEqualPHIs(), isNonEqualSelect(), and simplifyICmpInst().

◆ isKnownNonNegative()

◆ 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 1504 of file LoopUtils.cpp.

References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SGE, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().

Referenced by llvm::LoopStructure::parseLoopStructure().

◆ isKnownNonPositiveInLoop()

bool llvm::isKnownNonPositiveInLoop ( const SCEV * S,
const Loop * L,
ScalarEvolution & SE )

Returns true if we can prove that S is defined and always non-positive in loop L.

Definition at line 1518 of file LoopUtils.cpp.

References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SLE, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().

◆ isKnownNonZero()

bool llvm::isKnownNonZero ( const Value * V,
const SimplifyQuery & Q,
unsigned Depth = 0 )

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 3562 of file ValueTracking.cpp.

References Depth, dyn_cast(), and llvm::APInt::getAllOnes().

Referenced by addNoUndefAttrs(), annotateNonNullAndDereferenceable(), computeKnownBitsFromShiftOperator(), computePointerICmp(), convertMetadataToAssumes(), despeculateCountZeros(), llvm::InstCombinerImpl::foldAddWithConstant(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), foldICmpWithLowBitMaskedVal(), llvm::InstCombinerImpl::foldICmpWithZero(), foldICmpXorXX(), foldSelectICmpMinMax(), foldUnsignedUnderflowCheck(), llvm::LazyValueInfo::getPredicateAt(), getUnsignedMonotonicValues(), isDereferenceableAndAlignedPointer(), isGEPKnownNonNull(), isKnownNonZero(), isKnownNonZeroFromOperator(), isKnownPositive(), isKnownToBeAPowerOfTwo(), isModifyingBinopOfNonZero(), isNonEqualMul(), isNonEqualShl(), isNonZeroAdd(), isNonZeroMul(), isNonZeroShift(), isNonZeroSub(), isReturnNonNull(), LinearizeExprTree(), matchSelectPattern(), simplifyICmpWithBinOp(), simplifyICmpWithBinOpOnLHS(), simplifyICmpWithConstant(), simplifyICmpWithZero(), simplifyUnsignedRangeCheck(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitPHINode(), and llvm::InstCombinerImpl::visitTrunc().

◆ isKnownPositive()

bool llvm::isKnownPositive ( const Value * V,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

Returns true if the given value is known be positive (i.e.

non-negative and non-zero).

Definition at line 282 of file ValueTracking.cpp.

References computeKnownBits(), Depth, dyn_cast(), isKnownNonZero(), llvm::KnownBits::isNonNegative(), and llvm::KnownBits::isNonZero().

Referenced by llvm::InstCombinerImpl::foldICmpWithZero().

◆ isKnownPositiveInLoop()

bool llvm::isKnownPositiveInLoop ( const SCEV * S,
const Loop * L,
ScalarEvolution & SE )

Returns true if we can prove that S is defined and always positive in loop L.

Definition at line 1511 of file LoopUtils.cpp.

References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_SGT, llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().

◆ isKnownToBeAPowerOfTwo() [1/3]

bool llvm::isKnownToBeAPowerOfTwo ( const Value * V,
bool OrZero,
const SimplifyQuery & Q,
unsigned Depth = 0 )

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 types and vectors of integers.

Definition at line 2441 of file ValueTracking.cpp.

References llvm::SimplifyQuery::AC, all_of(), assert(), llvm::AssumptionCache::assumptionsFor(), BitWidth, cast(), computeKnownBits(), Cond, llvm::DomConditionCache::conditionsFor(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DC, Depth, llvm::DominatorTree::dominates(), llvm::SimplifyQuery::DT, dyn_cast(), F, llvm::APInt::getBoolValue(), llvm::Instruction::getFunction(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::SimplifyQuery::getWithoutCondContext(), llvm::InstrInfoQuery::hasNoSignedWrap(), llvm::InstrInfoQuery::hasNoUnsignedWrap(), I, II, llvm::SimplifyQuery::IIQ, isa(), llvm::InstrInfoQuery::isExact(), isImpliedToBeAPowerOfTwoFromCond(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isPowerOfTwoRecurrence(), isValidAssumeForContext(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_AllOnes(), llvm::PatternMatch::m_c_And(), llvm::PatternMatch::m_LShr(), llvm::MIPatternMatch::m_Neg(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_Power2(), llvm::PatternMatch::m_Power2OrZero(), llvm::PatternMatch::m_Shl(), llvm::PatternMatch::m_SignMask(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_VScale(), llvm::PatternMatch::match(), MaxAnalysisRecursionDepth, llvm::KnownBits::One, and llvm::KnownBits::Zero.

◆ isKnownToBeAPowerOfTwo() [2/3]

bool llvm::isKnownToBeAPowerOfTwo ( const Value * V,
const DataLayout & DL,
bool OrZero = false,
AssumptionCache * AC = nullptr,
const Instruction * CxtI = nullptr,
const DominatorTree * DT = nullptr,
bool UseInstrInfo = true,
unsigned Depth = 0 )

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 264 of file ValueTracking.cpp.

References Depth, DL, and safeCxtI().

Referenced by foldAndOrOfICmpsWithPow2AndWithZero(), foldLogOpOfMaskedICmps(), llvm::InstCombiner::isKnownToBeAPowerOfTwo(), isKnownToBeAPowerOfTwo(), isKnownToBeAPowerOfTwo(), isMaskOrZero(), isNonZeroAdd(), isPowerOfTwoRecurrence(), llvm::CombinerHelper::matchOperandIsKnownToBeAPowerOfTwo(), simplifyAndCommutative(), simplifyAndInst(), and simplifyUnaryIntrinsic().

◆ isKnownToBeAPowerOfTwo() [3/3]

bool llvm::isKnownToBeAPowerOfTwo ( Register Val,
const MachineRegisterInfo & MRI,
GISelValueTracking * ValueTracking = nullptr )

Test if the given value is known to have exactly one bit set.

This differs from computeKnownBits in that it doesn't necessarily determine which bit is set.

Definition at line 1113 of file Utils.cpp.

References BitWidth, llvm::KnownBits::countMaxPopulation(), llvm::KnownBits::countMinPopulation(), drop_begin(), getDefSrcRegIgnoringCopies(), getIConstantVRegVal(), llvm::GISelValueTracking::getKnownBits(), llvm::ConstantInt::getValue(), isKnownToBeAPowerOfTwo(), llvm::APInt::isPowerOf2(), MI, MRI, and llvm::APInt::zextOrTrunc().

◆ isLeaMem()

bool llvm::isLeaMem ( const MachineInstr & MI,
unsigned Op )
inlinestatic

◆ isLegalAddressImm()

◆ isLegalAVL()

◆ isLegalToPromote()

bool llvm::isLegalToPromote ( const CallBase & CB,
Function * Callee,
const char ** FailureReason = nullptr )

Return true if the given indirect call site can be made to call Callee.

This function ensures that the number and type of the call site's arguments and return value match those of the given function. If the types do not match exactly, they must at least be bitcast compatible. If FailureReason is non-null and the indirect call cannot be promoted, the failure reason will be stored in it.

Definition at line 397 of file CallPromotionUtils.cpp.

References llvm::CallBase::arg_size(), assert(), DL, dyn_cast(), llvm::PointerType::getAddressSpace(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::CallBase::getCalledFunction(), llvm::Value::getType(), I, llvm::CastInst::isBitOrNoopPointerCastable(), llvm::CallBase::isMustTailCall(), and llvm::CallBase::paramHasAttr().

Referenced by tryPromoteCall().

◆ isLegalUTF8()

Boolean llvm::isLegalUTF8 ( const UTF8 * source,
int length )
static

◆ isLegalUTF8Sequence()

Boolean llvm::isLegalUTF8Sequence ( const UTF8 * source,
const UTF8 * sourceEnd )

Definition at line 428 of file ConvertUTF.cpp.

References isLegalUTF8(), and trailingBytesForUTF8.

Referenced by findMaximalSubpartOfIllFormedUTF8Sequence().

◆ isLegalUTF8String()

Boolean llvm::isLegalUTF8String ( const UTF8 ** source,
const UTF8 * sourceEnd )

Definition at line 555 of file ConvertUTF.cpp.

References isLegalUTF8(), and trailingBytesForUTF8.

Referenced by ConvertUTF8toWide(), convertWideToUTF8(), and llvm::json::isUTF8().

◆ isLibFreeFunction()

◆ isLibFuncEmittable() [1/2]

◆ isLibFuncEmittable() [2/2]

bool llvm::isLibFuncEmittable ( const Module * M,
const TargetLibraryInfo * TLI,
StringRef Name )

◆ isLifetimeIntrinsic()

bool llvm::isLifetimeIntrinsic ( Intrinsic::ID ID)
inlinestatic

Check if ID corresponds to a lifetime intrinsic.

Definition at line 143 of file IntrinsicInst.h.

Referenced by llvm::LifetimeIntrinsic::classof().

◆ isLiteralsPair()

bool llvm::isLiteralsPair ( const MachineInstr * FirstMI,
const MachineInstr & SecondMI )
static

Definition at line 38 of file ARMMacroFusion.cpp.

References llvm::MachineInstr::getOpcode().

Referenced by shouldScheduleAdjacent().

◆ isLoopStart()

bool llvm::isLoopStart ( const MachineInstr & MI)
inlinestatic

Definition at line 82 of file MVETailPredUtils.h.

References isDoLoopStart(), isWhileLoopStart(), and MI.

Referenced by AlignBlocks(), and IsInvalidTPInstruction().

◆ isLower()

bool llvm::isLower ( char C)
inline

Checks if character C is a lowercase letter as classified by "C" locale.

Definition at line 112 of file StringExtras.h.

References llvm::CallingConv::C.

Referenced by decodePunycodeDigit(), isAlpha(), isValid(), llvm::RISCVISAInfo::parseArchString(), llvm::RISCVISAInfo::parseNormalizedArchString(), singleLetterExtensionRank(), and toUpper().

◆ isMallocOrCallocLikeFn()

bool llvm::isMallocOrCallocLikeFn ( const Value * V,
const TargetLibraryInfo * TLI )

Tests if a value is a call or invoke to a library function that allocates memory similar to malloc or calloc.

Definition at line 306 of file MemoryBuiltins.cpp.

References getAllocationData(), and MallocOrOpNewLike.

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

◆ isManaged()

bool llvm::isManaged ( const Value & V)

Definition at line 263 of file NVPTXUtilities.cpp.

References globalHasNVVMAnnotation().

◆ isManyPotentiallyReachableFromMany()

bool llvm::isManyPotentiallyReachableFromMany ( SmallVectorImpl< BasicBlock * > & Worklist,
const SmallPtrSetImpl< const BasicBlock * > & StopSet,
const SmallPtrSetImpl< BasicBlock * > * ExclusionSet,
const DominatorTree * DT = nullptr,
const LoopInfo * LI = nullptr )

Determine whether there is a potentially a path from at least one block in 'Worklist' to at least one block in 'StopSet' within a single function without passing through any of the blocks in 'ExclusionSet'.

Returns false only if we can prove that once any block in 'Worklist' has been reached then no blocks in 'StopSet' can be executed without passing through any blocks in 'ExclusionSet'. Conservatively returns true.

Definition at line 249 of file CFG.cpp.

References isReachableImpl().

◆ isMask_32()

bool llvm::isMask_32 ( uint32_t Value)
constexpr

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 264 of file MathExtras.h.

Referenced by CombineANDShift(), isImmMskBitp(), isMImm32Val(), isShiftedMask_32(), and PerformShiftCombine().

◆ isMask_64()

bool llvm::isMask_64 ( uint64_t Value)
constexpr

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 270 of file MathExtras.h.

Referenced by llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isEndChunk(), llvm::APInt::isMask(), isMImmVal(), isSeveralBitsExtractOpFromShr(), isSeveralBitsPositioningOpFromShl(), isShiftedMask_64(), isStartChunk(), llvm::RISCVDAGToDAGISel::Select(), translateSetCCForBranch(), translateSetCCForBranch(), and tryOrrWithShift().

◆ isMaskArithmetic()

bool llvm::isMaskArithmetic ( SDValue Op)

◆ isMaskedSlidePair()

bool llvm::isMaskedSlidePair ( ArrayRef< int > Mask,
int NumElts,
std::array< std::pair< int, int >, 2 > & SrcInfo )

Does this shuffle mask represent either one slide shuffle or a pair of two slide shuffles, combined with a select on some constant vector mask?

A slide is a shuffle mask which shifts some set of elements up or down the vector, with all other elements being undefined. An identity shuffle will be matched a slide by 0. The output parameter provides the source (-1 means no source), and slide direction for each slide.

Definition at line 489 of file VectorUtils.cpp.

References assert(), and enumerate().

Referenced by isMaskedSlidePair(), llvm::RISCVTargetLowering::isShuffleMaskLegal(), and lowerVECTOR_SHUFFLE().

◆ isMaskType()

◆ isMathLibCallNoop()

bool llvm::isMathLibCallNoop ( const CallBase * Call,
const TargetLibraryInfo * TLI )

Check whether the given call has no side-effects.

Specifically checks for math routimes which sometimes set errno.

Definition at line 4472 of file ConstantFolding.cpp.

References Call, dyn_cast(), F, llvm::TargetLibraryInfo::getLibFunc(), llvm::APFloat::getOne(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), llvm::APFloat::isInfinity(), llvm::APFloat::isNaN(), and llvm::APFloat::isZero().

Referenced by wouldInstructionBeTriviallyDead().

◆ isMem()

bool llvm::isMem ( const MachineInstr & MI,
unsigned Op )
inlinestatic

Definition at line 170 of file X86InstrInfo.h.

References llvm::X86::AddrNumOperands, llvm::X86::AddrSegmentReg, isLeaMem(), and MI.

◆ isMemInstrWithGOTPCREL()

◆ isMImm32Val()

bool llvm::isMImm32Val ( uint32_t Val)
inlinestatic

Definition at line 345 of file VE.h.

References isMask_32(), and isShiftedMask_32().

Referenced by isMImm().

◆ isMImmVal()

bool llvm::isMImmVal ( uint64_t Val)
inlinestatic

Definition at line 332 of file VE.h.

References isMask_64(), and isShiftedMask_64().

Referenced by llvm::VEInstrInfo::foldImmediate(), and isMImm().

◆ isMinSignedConstant()

bool llvm::isMinSignedConstant ( SDValue V)

Returns true if V is a constant min signed integer value.

Definition at line 12741 of file SelectionDAG.cpp.

References dyn_cast().

Referenced by llvm::SelectionDAG::isADDLike(), and lowerAtomicArith().

◆ isModAndRefSet()

bool llvm::isModAndRefSet ( const ModRefInfo MRI)
inlinenodiscard

Definition at line 46 of file ModRef.h.

References ModRef, and MRI.

Referenced by llvm::AliasSet::aliasesUnknownInst(), and llvm::BasicAAResult::getModRefInfo().

◆ isModOrRefSet()

◆ isModSet()

◆ isMovRegOpcode()

bool llvm::isMovRegOpcode ( int Opc)
inlinestatic

Definition at line 733 of file ARMBaseInstrInfo.h.

References Opc.

◆ isMustProgress()

bool llvm::isMustProgress ( const Loop * L)

Return true if this loop can be assumed to make progress.

(i.e. can't be infinite without side effects without also being undefined)

Definition at line 1162 of file LoopInfo.cpp.

References hasMustProgress().

Referenced by detectShiftUntilZeroIdiom(), hasPartialIVCondition(), and llvm::ScalarEvolution::loopIsFiniteByAssumption().

◆ isMVEVectorInstruction()

bool llvm::isMVEVectorInstruction ( const MachineInstr * MI)
inline

Definition at line 962 of file ARMBaseInstrInfo.h.

References llvm::ARMII::DomainMask, llvm::ARMII::DomainMVE, and MI.

◆ isNestedPointer()

bool llvm::isNestedPointer ( const Type * Ty)

Definition at line 832 of file SPIRVUtils.cpp.

References dyn_cast(), and isNestedPointer().

Referenced by isNestedPointer().

◆ isNeutralConstant()

◆ isNewLikeFn()

bool llvm::isNewLikeFn ( const Value * V,
const TargetLibraryInfo * TLI )

Tests if a value is a call or invoke to a library function that allocates memory via new.

Definition at line 300 of file MemoryBuiltins.cpp.

References getAllocationData(), and OpNewLike.

◆ isNoAliasCall()

◆ isNoModRef()

◆ isNonMangledOCLBuiltin()

bool llvm::isNonMangledOCLBuiltin ( StringRef Name)
static

◆ 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 97 of file EHPersonalities.h.

References llvm_unreachable, and Unknown.

Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::ARMException::endFunction(), needFuncLabels(), and llvm::TargetLoweringObjectFileXCOFF::ShouldEmitEHBlock().

◆ isNotCrossLaneOperation()

bool llvm::isNotCrossLaneOperation ( const Instruction * I)

Return true if the instruction doesn't potentially cross vector lanes.

This condition is weaker than checking that the instruction is lanewise: lanewise means that the same operation is splatted across all lanes, but we also include the case where there is a different operation on each lane, as long as the operation only uses data from that lane. An example of an operation that is not lanewise, but doesn't cross vector lanes is insertelement.

Definition at line 6929 of file ValueTracking.cpp.

References dyn_cast(), I, II, isa(), and isTriviallyVectorizable().

Referenced by simplifyWithOpsReplaced(), and llvm::InstCombinerImpl::visitCallInst().

◆ isNotVisibleOnUnwind()

bool llvm::isNotVisibleOnUnwind ( const Value * Object,
bool & RequiresNoCaptureBeforeUnwind )

Return true if Object memory is not visible after an unwind, in the sense that program semantics cannot depend on Object containing any particular value on unwind.

If the RequiresNoCaptureBeforeUnwind out parameter is set to true, then the memory is only not visible if the object has not been captured prior to the unwind. Otherwise it is not visible even if captured.

Definition at line 900 of file AliasAnalysis.cpp.

References A(), dyn_cast(), isa(), and isNoAliasCall().

Referenced by mayBeVisibleThroughUnwinding().

◆ isNullConstant()

bool llvm::isNullConstant ( SDValue V)

Returns true if V is a constant integer zero.

Definition at line 12717 of file SelectionDAG.cpp.

References dyn_cast().

Referenced by AddCombineTo64bitUMAAL(), adjustICmp128(), checkBoolTestAndOrSetCCCombine(), checkSignTestSetCCCombine(), collectConcatOps(), combine_CC(), combine_CC(), combineAndOrForCcmpCtest(), combineArithReduction(), combineBallotPattern(), combineBinOpOfExtractToReduceTree(), combineBinOpToReduce(), combineBitcast(), combineCMov(), combineCMP(), combineExtractVectorElt(), combineFMA(), combineINSERT_SUBVECTOR(), combineMaskedLoadConstantMask(), combineOr(), combineOrCmpEqZeroToCtlzSrl(), combineSBB(), combineSCALAR_TO_VECTOR(), combineSelect(), combineSelectAndUse(), combineSelectAsExtAnd(), combineSelectOfTwoConstants(), combineSelectToBinOp(), combineStore(), combineSub(), combineSubABS(), combineTargetShuffle(), combineToFPTruncExtElt(), combineTruncToVnclip(), combineUADDO_CARRYDiamond(), combineVectorInsert(), combineVectorSizedSetCCEquality(), combineX86ShuffleChainWithExtract(), combineX86ShufflesRecursively(), combineX86SubCmpForFlags(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::PPCTargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::SelectionDAG::computeOverflowForSignedAdd(), llvm::SelectionDAG::computeOverflowForSignedMul(), llvm::SelectionDAG::computeOverflowForSignedSub(), llvm::SelectionDAG::computeOverflowForUnsignedAdd(), llvm::SelectionDAG::computeOverflowForUnsignedMul(), llvm::SelectionDAG::computeOverflowForUnsignedSub(), DAGCombineAddc(), EmitAVX512Test(), EmitCmp(), emitComparison(), emitConditionalComparison(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::RISCVSelectionDAGInfo::EmitTargetCodeForMemset(), extractSubVector(), foldADCToCINC(), foldCSELofCTTZ(), foldOverflowCheck(), foldSelectOfCTTZOrCTLZ(), generateComparison(), llvm::PPC::get_VSPLTI_elt(), getBMIMatchingOp(), getCSETCondCode(), getFauxShuffleMask(), llvm::VECustomDAG::getGatherScatterAddress(), llvm::SelectionDAG::getMemset(), getMemsetStores(), llvm::SelectionDAG::getVectorShuffle(), isCMN(), IsCMPZCSINC(), isFloatingPointZero(), isHorizontalBinOp(), llvm::SelectionDAG::isKnownNeverZero(), isNegatedInteger(), IsNOT(), isNullConstantOrUndef(), llvm::SelectionDAG::isUndef(), isValidVisniInsertExtractIndex(), llvm::X86::isZeroNode(), isZeroOrAllOnes(), isZeroOrAllOnes(), isZerosVector(), isZeroVector(), LookThroughSetCC(), llvm::RISCVTargetLowering::LowerAsmOperandForConstraint(), lowerAtomicArith(), LowerBR_CC(), llvm::SITargetLowering::LowerCall(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), LowerEXTRACT_VECTOR_ELT_SSE4(), LowerPtrAuthGlobalAddressStatically(), lowerScalarInsert(), lowerScalarSplat(), LowerSELECT_CC(), lowerSelectToBinOp(), LowerSELECTWithCmpZero(), llvm::MSP430TargetLowering::LowerSETCC(), lowerVECTOR_SHUFFLE(), llvm::SelectionDAG::matchBinOpReduction(), MatchVectorAllEqualTest(), PerformAddcSubcCombine(), performANDORCSELCombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), performBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performCSELCombine(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performExtractVectorEltCombine(), performFirstTrueTestVectorCombine(), PerformMVEVMULLCombine(), performOrXorChainCombine(), performScalarToVectorCombine(), performSELECT_CCCombine(), performSETCCCombine(), performSETCCCombine(), performSetccMergeZeroCombine(), performSignExtendInRegCombine(), performSUBCombine(), PerformSubCSINCCombine(), PerformUMLALCombine(), pushAddIntoCmovOfConsts(), refineUniformBase(), removeRedundantInsertVectorElt(), llvm::RISCVTargetLowering::ReplaceNodeResults(), replaceZeroVectorStore(), scalarizeExtEltFP(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::selectSETCC(), selectSOffset(), shouldCombineToPostInc(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), translateSetCCForBranch(), translateSetCCForBranch(), tryCombineMULLWithUZP1(), tryDemorganOfBooleanCondition(), llvm::X86InstrInfo::unfoldMemoryOperand(), useInversedSetcc(), and vectorizeExtractedCast().

◆ isNullConstantOrUndef()

bool llvm::isNullConstantOrUndef ( SDValue V)

Returns true if V is a constant integer zero or an UNDEF node.

Definition at line 12722 of file SelectionDAG.cpp.

References isNullConstant().

Referenced by combineBitcast(), lowerBuildVectorAsBroadcast(), and LowerMUL().

◆ isNullFPConstant()

bool llvm::isNullFPConstant ( SDValue V)

Returns true if V is an FP constant with a value of positive zero.

Definition at line 12726 of file SelectionDAG.cpp.

References dyn_cast().

Referenced by generateComparison(), isNullFPScalarOrVectorConst(), llvm::X86::isZeroNode(), isZerosVector(), replaceZeroVectorStore(), and llvm::TargetLowering::SimplifyDemandedVectorElts().

◆ isNullOrNullSplat() [1/2]

bool llvm::isNullOrNullSplat ( const MachineInstr & MI,
const MachineRegisterInfo & MRI,
bool AllowUndefs = false )

Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs if AllowUndefs is false).

This will handle G_BUILD_VECTOR and G_BUILD_VECTOR_TRUNC as truncation is not an issue for null values.

Definition at line 1589 of file Utils.cpp.

References isBuildVectorAllZeros(), llvm::ConstantFP::isNegative(), llvm::ConstantFP::isZero(), MI, and MRI.

Referenced by combineSelect(), combineVWADDSUBWSelect(), foldAndOrOfSETCC(), foldBoolSelectToLogic(), foldSelectOfConstantsUsingSra(), foldVSelectToSignBitSplatMask(), isSaturatingMinMax(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), matchShuffleWithPACK(), performPostLD1Combine(), shouldConvertSelectOfConstantsToMath(), and llvm::SelectionDAG::simplifyShift().

◆ isNullOrNullSplat() [2/2]

bool llvm::isNullOrNullSplat ( SDValue V,
bool AllowUndefs = false )

Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs by default).

Build vector implicit truncation is not an issue for null values.

Definition at line 12936 of file SelectionDAG.cpp.

References llvm::CallingConv::C, isConstOrConstSplat(), and N.

◆ isNZCVTouchedInInstructionRange()

bool llvm::isNZCVTouchedInInstructionRange ( const MachineInstr & DefMI,
const MachineInstr & UseMI,
const TargetRegisterInfo * TRI )

Return true if there is an instruction /after/ DefMI and before UseMI which either reads or clobbers NZCV.

Definition at line 5910 of file AArch64InstrInfo.cpp.

References any_of(), DefMI, I, instructionsWithoutDebug(), TRI, and UseMI.

◆ isODRAttribute()

bool llvm::isODRAttribute ( uint16_t Attr)
static
Returns
whether the passed Attr type might contain a DIE reference suitable for ODR uniquing.

Definition at line 103 of file DWARFLinker.cpp.

References llvm_unreachable.

◆ isODRCanonicalCandidate()

bool llvm::isODRCanonicalCandidate ( const DWARFDie & Die,
CompileUnit & CU )
static

Definition at line 832 of file DWARFLinker.cpp.

References llvm::DWARFDie::getTag(), and Info.

◆ isOfRegClass()

bool llvm::isOfRegClass ( const TargetInstrInfo::RegSubRegPair & P,
const TargetRegisterClass & TRC,
MachineRegisterInfo & MRI )
inline

Returns true if a reg:subreg pair P has a TRC class.

Definition at line 1580 of file SIInstrInfo.h.

References MRI, P, and TRI.

◆ isOneConstant()

bool llvm::isOneConstant ( SDValue V)

Returns true if V is a constant integer one.

Definition at line 12736 of file SelectionDAG.cpp.

References dyn_cast().

Referenced by checkBoolTestSetCCCombine(), combine_CC(), combine_CC(), combineAddOfBooleanXor(), combineAddOrSubToADCOrSBB(), combineAnd(), combineCarryThroughADD(), combineCarryThroughADD(), combineCMov(), combineCMP(), combineDeMorganOfBoolean(), combineOrOfCZERO(), combineSCALAR_TO_VECTOR(), combineSelect(), combineSelectAsExtAnd(), combineShiftAnd1ToBitTest(), combineSubOfBoolean(), combineUADDO_CARRYDiamond(), combineX86AddSub(), combineX86SubCmpForFlags(), llvm::SelectionDAG::computeOverflowForSignedMul(), llvm::SelectionDAG::computeOverflowForUnsignedMul(), Expand64BitShift(), llvm::TargetLowering::expandUADDSUBO(), foldOverflowCheck(), foldXor1SetCC(), foldXorTruncShiftIntoCmp(), getAddOneOp(), getAsCarry(), getBMIMatchingOp(), getCSETCondCode(), llvm::VECustomDAG::getGatherScatterAddress(), getX86XALUOOp(), IsCMPZCSINC(), isXor1OfSetCC(), LookThroughSetCC(), LowerAndToBT(), LowerAndToBTST(), lowerCttzElts(), lowerScalarSplat(), LowerSELECTWithCmpZero(), PerformAddcSubcCombine(), performANDCombine(), performANDORCSELCombine(), llvm::ARMTargetLowering::PerformBRCONDCombine(), performBRCONDCombine(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performSETCCCombine(), performSignExtendInRegCombine(), performXORCombine(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::RISCVDAGToDAGISel::Select(), llvm::TargetLowering::SimplifySetCC(), takeInexpensiveLog2(), and tryDemorganOfBooleanCondition().

◆ isOneOrOneSplat()

bool llvm::isOneOrOneSplat ( SDValue V,
bool AllowUndefs = false )

Return true if the value is a constant 1 integer or a splatted vector of a constant 1 integer (with no undefs).

Build vector implicit truncation is allowed, but the truncated bits need to be zero.

Definition at line 12943 of file SelectionDAG.cpp.

References llvm::CallingConv::C, isConstOrConstSplat(), and N.

Referenced by llvm::TargetLowering::expandIntMINMAX(), foldAddSubMasked1(), foldBoolSelectToLogic(), performMULCombine(), performVP_REVERSECombine(), performVP_STORECombine(), and performVP_TRUNCATECombine().

◆ isOnesOrOnesSplat()

bool llvm::isOnesOrOnesSplat ( SDValue N,
bool AllowUndefs = false )

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 12956 of file SelectionDAG.cpp.

References llvm::CallingConv::C, isConstOrConstSplat(), llvm::APInt::isSameValue(), and N.

Referenced by llvm::SDPatternMatch::Ones_match::match().

◆ isOnlyUsedInZeroComparison()

◆ isOnlyUsedInZeroEqualityComparison()

bool llvm::isOnlyUsedInZeroEqualityComparison ( const Instruction * CxtI)

Definition at line 257 of file ValueTracking.cpp.

References all_of(), and I.

Referenced by optimizeMemCmpConstantSize().

◆ isOverflowIntrinsicNoWrap()

bool llvm::isOverflowIntrinsicNoWrap ( const WithOverflowInst * WO,
const DominatorTree & DT )

Returns true if the arithmetic part of the WO 's result is used only along the paths control dependent on the computation not overflowing, WO being an <op>.with.overflow intrinsic.

Definition at line 7282 of file ValueTracking.cpp.

References any_of(), assert(), B(), llvm::DominatorTree::dominates(), dyn_cast(), llvm::BasicBlockEdge::isSingleEdge(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Results, and llvm::Value::users().

Referenced by MatchBinaryOp().

◆ isPackedVectorType()

◆ isPackingSupportOpcode()

bool llvm::isPackingSupportOpcode ( unsigned Opc)

◆ isParamGridConstant()

◆ isPartOfGOTToPCRelPair()

◆ isPassInPrintList()

bool llvm::isPassInPrintList ( StringRef PassName)

Definition at line 152 of file PrintPasses.cpp.

References FilterPasses, and PassName.

◆ isPGSOColdCodeOnly()

◆ isPhysRegUsedAfter()

bool llvm::isPhysRegUsedAfter ( Register Reg,
MachineBasicBlock::iterator MBI )

Check if physical register Reg is used after MBI.

Definition at line 353 of file LivePhysRegs.cpp.

References assert(), make_range(), MBB, and MI.

Referenced by checkAndUpdateEFLAGSKill(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), and emitXBegin().

◆ isPipeOrAddressSpaceCastBI()

bool llvm::isPipeOrAddressSpaceCastBI ( const StringRef MangledName)
static

Definition at line 387 of file SPIRVUtils.cpp.

Referenced by isNonMangledOCLBuiltin().

◆ isPointerTy()

◆ isPointerTyOrWrapper()

bool llvm::isPointerTyOrWrapper ( const Type * Ty)
inline

◆ isPopOpcode()

bool llvm::isPopOpcode ( int Opc)
inlinestatic

Definition at line 715 of file ARMBaseInstrInfo.h.

References Opc.

Referenced by tryFoldSPUpdateIntoPushPop().

◆ isPotentiallyReachable() [1/2]

bool llvm::isPotentiallyReachable ( const BasicBlock * From,
const BasicBlock * To,
const SmallPtrSetImpl< BasicBlock * > * ExclusionSet = nullptr,
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 258 of file CFG.cpp.

References A(), assert(), B(), llvm::SmallPtrSetImplBase::empty(), isPotentiallyReachableFromMany(), llvm::DominatorTree::isReachableFromEntry(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ isPotentiallyReachable() [2/2]

bool llvm::isPotentiallyReachable ( const Instruction * From,
const Instruction * To,
const SmallPtrSetImpl< BasicBlock * > * ExclusionSet = nullptr,
const DominatorTree * DT = nullptr,
const LoopInfo * LI = nullptr )

Determine whether instruction 'To' is reachable from 'From', without passing through any blocks in ExclusionSet, 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 282 of file CFG.cpp.

References A(), llvm::SmallVectorImpl< T >::append(), assert(), B(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::BasicBlock::isEntryBlock(), isPotentiallyReachable(), isPotentiallyReachableFromMany(), succ_begin(), and succ_end().

Referenced by findMayClobberedPtrAccess(), llvm::memtag::forAllReachableExits(), llvm::EarliestEscapeAnalysis::getCapturesBefore(), InsertSafepointPoll(), isPotentiallyReachable(), liesBetween(), and llvm::coro::BaseCloner::salvageDebugInfo().

◆ isPotentiallyReachableFromMany()

bool llvm::isPotentiallyReachableFromMany ( SmallVectorImpl< BasicBlock * > & Worklist,
const BasicBlock * StopBB,
const SmallPtrSetImpl< BasicBlock * > * ExclusionSet,
const DominatorTree * DT = nullptr,
const LoopInfo * LI = nullptr )

Determine whether there is at least one path from a block in 'Worklist' to 'StopBB' without passing through any blocks in 'ExclusionSet', returning true if uncertain.

Determine whether there is a path from at least one block in Worklist to StopBB within a single function without passing through any of the blocks in 'ExclusionSet'. 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 240 of file CFG.cpp.

References isReachableImpl().

Referenced by isNotInCycle(), isPotentiallyReachable(), and isPotentiallyReachable().

◆ isPowerOf2_32()

bool llvm::isPowerOf2_32 ( uint32_t Value)
constexpr

Return true if the argument is a power of two > 0.

Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)

Definition at line 288 of file MathExtras.h.

References has_single_bit().

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), adjustDown(), adjustUp(), llvm::AMDGPULegalizerInfo::AMDGPULegalizerInfo(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), canLowerByDroppingElements(), clampDynamicVectorIndex(), clampVectorIndex(), combineArithReduction(), combineBasicSADPattern(), combineBitcast(), combineFP_EXTEND(), combineFP_ROUND(), combineGatherScatter(), combineMulToPMADDWD(), combineMulToPMULDQ(), combinePredicateReduction(), combineShiftRightLogical(), combineTruncateWithSat(), combineVPDPBUSDPattern(), combineX86ShufflesRecursively(), llvm::HvxSelector::completeToPerfect(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::TargetLoweringBase::computeRegisterProperties(), llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(), llvm::AArch64TargetLowering::createComplexDeinterleavingIR(), CreateTripRemainder(), decodeLLVMAttributesForBitcode(), DecodeVALIGNMask(), detectPMADDUBSW(), EltsFromConsecutiveLoads(), llvm::VFRange::end(), llvm::TargetLowering::expandBITREVERSE(), llvm::TargetLowering::expandCTLZ(), llvm::TargetLowering::expandCTTZ(), llvm::TargetLowering::expandFunnelShift(), llvm::TargetLowering::expandROT(), llvm::TargetLowering::expandShiftParts(), llvm::TargetLowering::expandVPBITREVERSE(), expandVPFunnelShift(), extractSubVector(), extractSubVector(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), findMemType(), foldGuardedFunnelShift(), foldIdentityPaddedShuffles(), foldSelectOfCTTZOrCTLZ(), foldSwitchToSelect(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getArithmeticReductionCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), getContainerForFixedLengthVector(), llvm::NVPTXDAGToDAGISel::getFromTypeWidthForLoad(), getInputSegmentList(), llvm::AArch64TTIImpl::getInterleavedMemoryOpCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), getMaxShiftAmount(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::ARMTTIImpl::getMinMaxReductionCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::AArch64TTIImpl::getPopcntSupport(), llvm::GCNTTIImpl::getPopcntSupport(), llvm::LoongArchTTIImpl::getPopcntSupport(), llvm::PPCTTIImpl::getPopcntSupport(), llvm::RISCVTTIImpl::getPopcntSupport(), llvm::SPIRVTTIImpl::getPopcntSupport(), llvm::SystemZTTIImpl::getPopcntSupport(), llvm::WebAssemblyTTIImpl::getPopcntSupport(), llvm::X86TTIImpl::getPopcntSupport(), llvm::HexagonTargetLowering::getPreferredVectorAction(), llvm::BuildVectorSDNode::getRepeatedSequence(), getRuntimeLoopRemainder(), getShuffleReduction(), llvm::sandboxir::SeedBundle::getSlice(), llvm::PPCTargetLowering::getStackProbeSize(), llvm::SystemZTargetLowering::getStackProbeSize(), llvm::AArch64TTIImpl::getStoreMinimumVF(), llvm::RISCVTargetMachine::getSubtargetImpl(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), llvm::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::X86TargetLowering::getVectorTypeBreakdownForCallingConv(), getVectorTypeBreakdownMVT(), getX86MaskVec(), handleMaskRegisterForCallingConv(), llvm::AMDGPUSubtarget::hasWavefrontsEvenlySplittingXDim(), insertSubVector(), llvm::X86TTIImpl::instCombineIntrinsic(), llvm::AArch64TargetLowering::isComplexDeinterleavingOperationSupported(), llvm::ARMTargetLowering::isComplexDeinterleavingOperationSupported(), isDispOrCDisp8(), isFreeConcat(), llvm::ShuffleVectorInst::isInterleaveMask(), llvm::ARMTargetLowering::isLegalAddressingMode(), llvm::X86TTIImpl::isLegalAltInstr(), llvm::AArch64TargetLowering::isLegalInterleavedAccessType(), llvm::TargetTransformInfoImplBase::isLegalNTLoad(), llvm::TargetTransformInfoImplBase::isLegalNTStore(), llvm::X86TTIImpl::isLegalNTStore(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), isMultipleOfN(), isRepeatedConcatMask(), llvm::PPC::isSplatShuffleMask(), llvm::ShuffleVectorInst::isTransposeMask(), isTypeLegalForLookupTable(), llvm::RISCVVType::isValidLMUL(), llvm::HexagonInstrInfo::isValidOffset(), llvm::RISCVVType::isValidSEW(), isZipEven(), isZipOdd(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), lowerBuildVectorViaVID(), LowerCONCAT_VECTORS_i1(), LowerCONCAT_VECTORSvXi1(), llvm::HexagonTargetLowering::LowerConstantPool(), llvm::LegalizerHelper::lowerEXT(), llvm::LegalizerHelper::lowerFunnelShiftAsShifts(), llvm::LegalizerHelper::lowerFunnelShiftWithInverse(), lowerGetVectorLength(), llvm::LegalizerHelper::lowerLoad(), llvm::RISCVTargetLowering::LowerOperation(), llvm::LegalizerHelper::lowerStore(), llvm::LegalizerHelper::lowerTRUNC(), LowerTruncateVecPack(), lowerVECTOR_SHUFFLE(), matchAddReduction(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), matchPMADDWD(), matchPMADDWD_2(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::LegalizerHelper::narrowScalarShiftMultiway(), llvm::rdf::NodeAllocator::NodeAllocator(), llvm::LegalityPredicates::numElementsNotPow2(), parseAlignment(), performSETCCCombine(), PerformSplittingToWideningLoad(), PerformTruncatingStoreCombine(), llvm::LoopVectorizationPlanner::plan(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::LegalityPredicates::scalarOrEltSizeNotPow2(), llvm::LoongArchDAGToDAGISel::selectShiftMask(), llvm::RISCVDAGToDAGISel::selectShiftMask(), llvm::HexagonDAGToDAGISel::SelectVAlignAddr(), llvm::object::coff_tls_directory< support::little32_t >::setAlignment(), llvm::KnownBits::shl(), shouldWidenLoad(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyNeonVld1(), simplifyX86VPERMMask(), truncateVectorWithNARROW(), truncateVectorWithPACK(), upgradeX86ALIGNIntrinsics(), llvm::VFRange::VFRange(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitLShr().

◆ isPowerOf2_64()

bool llvm::isPowerOf2_64 ( uint64_t Value)
constexpr

Return true if the argument is a power of two > 0 (64 bit edition.)

Definition at line 293 of file MathExtras.h.

References has_single_bit().

Referenced by llvm::Align::Align(), CheckTy0Ty1MemSizeAlign(), combine_CC(), combine_CC(), combineMul(), combineMulSpecial(), computeKnownBitsFromContext(), ConstantLog2(), llvm::jitlink::InProcessMemoryManager::Create(), createStepForVF(), createVariablePermute(), llvm::PPCTargetLowering::decomposeMulByConstant(), llvm::SystemZHLASMAsmStreamer::emitAlignmentDS(), expandMul(), expandMulToAddOrSubOfShl(), llvm::FastISel::fastEmit_ri_(), FindSingleBitChange(), generateInstSeqImpl(), getHistogramCost(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), getMemSetPattern16Value(), getNewAlignmentDiff(), getOptimalRepType(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::jitlink::InProcessMemoryManager::InProcessMemoryManager(), llvm::yaml::ScalarTraits< Align >::input(), llvm::yaml::ScalarTraits< MaybeAlign >::input(), llvm::AArch64TargetLowering::isLegalAddressingMode(), llvm::AArch64TTIImpl::isLegalNTStoreLoad(), isPow2Splat(), llvm::APInt::isPowerOf2(), isTruncStoreToSizePowerOf2(), isUnalignedMemmoryAccess(), llvm::MipsLegalizerInfo::legalizeCustom(), LowerAndToBT(), LowerAndToBTST(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), lowerBuildVectorViaVID(), LowerCONCAT_VECTORSvXi1(), llvm::LegalizerHelper::lowerLoad(), llvm::RISCVTargetLowering::LowerOperation(), LowerSaturatingConditional(), lowerSelectToBinOp(), matchRotateSub(), matchVPMADD52(), llvm::MaybeAlign::MaybeAlign(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), llvm::RISCVInstrInfo::mulImm(), llvm::SIInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::RISCVTargetLowering::PerformDAGCombine(), performVECTOR_SHUFFLECombine(), llvm::MipsAsmPrinter::PrintAsmOperand(), llvm::AMDGPUInstPrinter::printSwizzle(), llvm::RISCVDAGToDAGISel::Select(), llvm::FastISel::selectBinaryOp(), llvm::RISCVDAGToDAGISel::selectSETCC(), llvm::jitlink::Block::setAlignment(), simplifySetCCIntoEq(), SimplifyValuePattern(), translateSetCCForBranch(), translateSetCCForBranch(), and llvm::InstCombinerImpl::visitCallInst().

◆ isPrefixedHexStyle()

bool llvm::isPrefixedHexStyle ( HexPrintStyle S)

◆ isPreISelGenericFloatingPointOpcode()

bool llvm::isPreISelGenericFloatingPointOpcode ( unsigned Opc)

Returns whether opcode Opc is a pre-isel generic floating-point opcode, having only floating-point operands.

Definition at line 1744 of file Utils.cpp.

References Opc.

Referenced by llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), isFloatingPointOpcodeDef(), and isFloatingPointOpcodeUse().

◆ isPreISelGenericOpcode()

◆ isPreISelGenericOptimizationHint()

bool llvm::isPreISelGenericOptimizationHint ( unsigned Opcode)
inline
Returns
true if Opcode is an optimization hint opcode which is not supposed to appear after ISel.

Definition at line 42 of file TargetOpcodes.h.

Referenced by llvm::RegBankSelect::assignInstr(), getDefSrcRegIgnoringCopies(), and llvm::InstructionSelect::selectInstr().

◆ isPresplitCoroSuspendExitEdge()

bool llvm::isPresplitCoroSuspendExitEdge ( const BasicBlock & Src,
const BasicBlock & Dest )

Definition at line 361 of file CFG.cpp.

References assert(), dyn_cast(), and llvm::BasicBlock::getParent().

◆ 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 139 of file StringExtras.h.

References llvm::CallingConv::C.

Referenced by llvm::StringSubstitution::getResultForDiagnostics(), llvm::TextCodeGenDataReader::hasFormat(), isHeader(), isPrintableString(), llvm::raw_ostream::operator<<(), PrintByteList(), printEscapedString(), and llvm::raw_ostream::write_escaped().

◆ isProcessableCondBI()

◆ isProfitableToTransform()

bool llvm::isProfitableToTransform ( const Loop & L,
const BranchInst * BI )
static

◆ isPTrueOpcode()

bool llvm::isPTrueOpcode ( unsigned Opc)
inlinestatic

Definition at line 748 of file AArch64InstrInfo.h.

References Opc.

◆ isPunct()

bool llvm::isPunct ( char C)
inline

Checks whether character C is a punctuation character.

Locale-independent version of the C standard library ispunct. The list of punctuation characters can be found in the documentation of std::ispunct: https://en.cppreference.com/w/cpp/string/byte/ispunct.

Definition at line 149 of file StringExtras.h.

References llvm::CallingConv::C, and llvm::StringRef::contains().

◆ isPushOpcode()

bool llvm::isPushOpcode ( int Opc)
inlinestatic

Definition at line 721 of file ARMBaseInstrInfo.h.

References Opc.

Referenced by tryFoldSPUpdateIntoPushPop().

◆ 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 257 of file BitcodeReader.h.

Referenced by isBitcode().

◆ isReachedBefore()

◆ isReadOnlyData()

◆ isReadOnlyLoop()

bool llvm::isReadOnlyLoop ( Loop * L,
ScalarEvolution * SE,
DominatorTree * DT,
AssumptionCache * AC,
SmallVectorImpl< LoadInst * > & NonDereferenceableAndAlignedLoads,
SmallVectorImpl< const SCEVPredicate * > * Predicates = nullptr )

Returns true if the loop contains read-only memory accesses and doesn't throw.

Puts loads that may fault into NonDereferenceableAndAlignedLoads.

Definition at line 863 of file Loads.cpp.

References dyn_cast(), I, isDereferenceableAndAlignedInLoop(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ isReallocLikeFn()

bool llvm::isReallocLikeFn ( const Function * F)

Tests if a function is a call or invoke to a library function that reallocates memory (e.g., realloc).

Tests if a functions is a call or invoke to a library function that reallocates memory (e.g., realloc).

Definition at line 320 of file MemoryBuiltins.cpp.

References checkFnAllocKind(), F, and Realloc.

Referenced by inferNonMandatoryLibFuncAttrs().

◆ isRefSet()

◆ isReleaseOrStronger()

◆ isRemovableAlloc()

bool llvm::isRemovableAlloc ( const CallBase * V,
const TargetLibraryInfo * TLI )

Return true if this is a call to an allocation function that does not have side effects that we are required to preserve beyond the effect of allocating a new object.

Ex: If our allocation routine has a counter for the number of objects allocated, and the program prints it on exit, can the value change due to optimization? Answer is highly language dependent. Note: Removable really does mean removable; it does not mean observable. A language (e.g. C++) can allow removing allocations without allowing insertion or speculative execution of allocation routines.

Definition at line 330 of file MemoryBuiltins.cpp.

References isAllocLikeFn().

Referenced by tryToOptimizeStoreOfAllocationToGlobal(), llvm::InstCombinerImpl::visitAllocSite(), and wouldInstructionBeTriviallyDead().

◆ isRequiredForExecution()

◆ isREVMask()

bool llvm::isREVMask ( ArrayRef< int > M,
unsigned EltSize,
unsigned NumElts,
unsigned BlockSize )
inline

isREVMask - Check if a vector shuffle corresponds to a REV instruction with the specified blocksize.

(The order of the elements within each block of the vector is reversed.)

Definition at line 6703 of file AArch64PerfectShuffle.h.

References assert(), and BlockSize.

Referenced by llvm::AArch64TTIImpl::getShuffleCost(), and llvm::AArch64TargetLowering::isShuffleMaskLegal().

◆ isRMOpcode()

bool llvm::isRMOpcode ( unsigned Opcode)
inlinestatic

◆ isRRMOpcode()

bool llvm::isRRMOpcode ( unsigned Opcode)
inlinestatic

Definition at line 174 of file LanaiInstrInfo.h.

Referenced by PostOperandDecodeAdjust().

◆ isRunOfOnes()

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 76 of file PPCMCTargetDesc.h.

References countl_zero(), and isShiftedMask_32().

Referenced by llvm::PPCInstrInfo::combineRLWINM().

◆ isRunOfOnes64()

bool llvm::isRunOfOnes64 ( uint64_t Val,
unsigned & MB,
unsigned & ME )
inlinestatic

Definition at line 100 of file PPCMCTargetDesc.h.

References countl_zero(), and isShiftedMask_64().

◆ 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.

Note that while constants cannot be cyclic, they can be tree-like, so we should keep a visited set to avoid exponential runtime.

Definition at line 43 of file GlobalStatus.cpp.

References llvm::CallingConv::C, dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by analyzeGlobalAux(), collectSRATypes(), eliminateAvailableExternally(), llvm::GlobalDCEPass::run(), and SRAGlobal().

◆ isSafeToLoadUnconditionally() [1/2]

bool llvm::isSafeToLoadUnconditionally ( Value * V,
Align Alignment,
const APInt & Size,
const DataLayout & DL,
Instruction * ScanFrom,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = 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 431 of file Loads.cpp.

References AreEquivalentAddressValues(), DL, dyn_cast(), llvm::TypeSize::getFixed(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), isa(), isDereferenceableAndAlignedPointer(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isKnownLE(), Size, llvm::Value::stripPointerCasts(), and suppressSpeculativeLoadForSanitizers().

Referenced by canMoveAboveCall(), isMaskedLoadCompress(), isSafeLoadOfSelectToSpeculate(), isSafePHIToSpeculate(), isSafeToLoadUnconditionally(), and llvm::InstCombinerImpl::visitLoadInst().

◆ isSafeToLoadUnconditionally() [2/2]

bool llvm::isSafeToLoadUnconditionally ( Value * V,
Type * Ty,
Align Alignment,
const DataLayout & DL,
Instruction * ScanFrom,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = nullptr )

Return true if we know that executing a load from this 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.

Definition at line 512 of file Loads.cpp.

References DL, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), isSafeToLoadUnconditionally(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and Size.

◆ isSafeToMoveBefore() [1/2]

bool llvm::isSafeToMoveBefore ( BasicBlock & BB,
Instruction & InsertPoint,
DominatorTree & DT,
const PostDominatorTree * PDT = nullptr,
DependenceInfo * DI = nullptr )

Return true if all instructions (except the terminator) in BB can be safely moved before InsertPoint.

Definition at line 412 of file CodeMoverUtils.cpp.

References all_of(), llvm::BasicBlock::getTerminator(), I, and isSafeToMoveBefore().

◆ isSafeToMoveBefore() [2/2]

◆ isSafeToSpeculativelyExecute() [1/2]

bool llvm::isSafeToSpeculativelyExecute ( const Instruction * I,
BasicBlock::iterator CtxI,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = nullptr,
bool UseVariableInfo = true,
bool IgnoreUBImplyingAttrs = true )
inline

Definition at line 546 of file ValueTracking.h.

References I, and isSafeToSpeculativelyExecute().

◆ isSafeToSpeculativelyExecute() [2/2]

bool llvm::isSafeToSpeculativelyExecute ( const Instruction * I,
const Instruction * CtxI = nullptr,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = nullptr,
bool UseVariableInfo = true,
bool IgnoreUBImplyingAttrs = true )

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 instruction has (transitive) operands that don't dominate CtxI, the analysis is performed under the assumption that these operands will also be speculated to a point before CxtI.

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.

If UseVariableInfo is true, the information from non-constant operands will be taken into account.

If IgnoreUBImplyingAttrs is true, UB-implying attributes will be ignored. The caller is responsible for correctly propagating them after hoisting.

This method can return true for instructions that read memory; for such instructions, moving them may change the resulting value.

Definition at line 6937 of file ValueTracking.cpp.

References llvm::Instruction::getOpcode(), and isSafeToSpeculativelyExecuteWithOpcode().

Referenced by llvm::IVUsers::AddUsersIfInteresting(), checkOuterLoopInsts(), checkSafeInstruction(), dominatesMergePoint(), foldBranchToCommonDest(), llvm::LoopVectorizationCostModel::getDivRemSpeculationCost(), isHoistable(), isInTailCallPosition(), llvm::LoopVectorizationCostModel::isPredicatedInst(), isSafeToExecuteUnconditionally(), isSafeToHoistInstr(), isSafeToMoveBefore(), isSafeToSpeculativelyExecute(), isSafeToSpeculativelyExecuteWithVariableReplaced(), llvm::Loop::makeLoopInvariant(), mayHaveNonDefUseDependency(), shouldSpeculateInstrs(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), sinkCommonCodeFromPredecessors(), sinkSelectOperand(), and llvm::InstCombinerImpl::visitCallInst().

◆ isSafeToSpeculativelyExecuteWithOpcode()

bool llvm::isSafeToSpeculativelyExecuteWithOpcode ( unsigned Opcode,
const Instruction * Inst,
const Instruction * CtxI = nullptr,
AssumptionCache * AC = nullptr,
const DominatorTree * DT = nullptr,
const TargetLibraryInfo * TLI = nullptr,
bool UseVariableInfo = true,
bool IgnoreUBImplyingAttrs = true )

This returns the same result as isSafeToSpeculativelyExecute if Opcode is the actual opcode of Inst.

If the provided and actual opcode differ, the function (virtually) overrides the opcode of Inst with the provided Opcode. There are come constraints in this case:

  • If Opcode has a fixed number of operands (eg, as binary operators do), then Inst has to have at least as many leading operands. The function will ignore all trailing operands beyond that number.
  • If Opcode allows for an arbitrary number of operands (eg, as CallInsts do), then all operands are considered.
  • The virtual instruction has to satisfy all typing rules of the provided Opcode.
  • This function is pessimistic in the following sense: If one actually materialized the virtual instruction, then isSafeToSpeculativelyExecute may say that the materialized instruction is speculatable whereas this function may have said that the instruction wouldn't be speculatable. This behavior is a shortcoming in the current implementation and not intentional.

Definition at line 6946 of file ValueTracking.cpp.

References assert(), DL, dyn_cast(), llvm::LoadInst::getAlign(), llvm::Instruction::getDataLayout(), llvm::User::getNumOperands(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::LoadInst::getPointerOperand(), llvm::Value::getType(), llvm::APInt::isAllOnes(), llvm::Instruction::isBinaryOp(), isDereferenceableAndAlignedPointer(), llvm::APInt::isMinSignedValue(), llvm::Instruction::isUnaryOp(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::match(), and mustSuppressSpeculation().

Referenced by isSafeToSpeculativelyExecute(), and maySpeculateLanes().

◆ isSafeToSpeculativelyExecuteWithVariableReplaced()

bool llvm::isSafeToSpeculativelyExecuteWithVariableReplaced ( const Instruction * I,
bool IgnoreUBImplyingAttrs = true )
inline

Don't use information from its non-constant operands.

This helper is used when its operands are going to be replaced.

Definition at line 560 of file ValueTracking.h.

References I, and isSafeToSpeculativelyExecute().

Referenced by llvm::InstCombinerImpl::foldVectorBinop(), llvm::LazyValueInfoImpl::getValueAtUse(), llvm::InstCombinerImpl::simplifyBinOpSplats(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitExtractElementInst().

◆ isSafeToUnrollAndJam()

◆ isSampler()

bool llvm::isSampler ( const Value & V)

Definition at line 240 of file NVPTXUtilities.cpp.

References argHasNVVMAnnotation(), and globalHasNVVMAnnotation().

◆ isScale()

bool llvm::isScale ( const MachineOperand & MO)
inlinestatic

Definition at line 152 of file X86InstrInfo.h.

References llvm::MachineOperand::getImm(), and llvm::MachineOperand::isImm().

Referenced by isLeaMem().

◆ isScatter()

bool llvm::isScatter ( IntrinsicInst * IntInst)
inline

Definition at line 938 of file ARMBaseInstrInfo.h.

References llvm::IntrinsicInst::getIntrinsicID().

Referenced by isGatherScatter().

◆ isScopedEHPersonality()

bool llvm::isScopedEHPersonality ( EHPersonality Pers)
inline

Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret.

Definition at line 81 of file EHPersonalities.h.

References CoreCLR, llvm_unreachable, MSVC_CXX, MSVC_TableSEH, MSVC_X86SEH, and Wasm_CXX.

Referenced by CanInlineCallSite(), llvm::LoopSafetyInfo::computeBlockColors(), isUsingScopeBasedEH(), and llvm::EscapeEnumerator::Next().

◆ isSEHInstruction()

bool AArch64InstrInfo::isSEHInstruction ( const MachineInstr & MI)
inlinestatic

◆ isSentinelProbe()

bool llvm::isSentinelProbe ( uint32_t Flags)
inlinestatic

◆ isShiftedInt()

◆ isShiftedMask_32() [1/2]

bool llvm::isShiftedMask_32 ( uint32_t Value)
constexpr

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 276 of file MathExtras.h.

References isMask_32().

Referenced by CombineANDShift(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::ARM::isBitFieldInvertedMask(), isMImm32Val(), isRunOfOnes(), isShiftedMask(), and isShiftedMask_32().

◆ isShiftedMask_32() [2/2]

bool llvm::isShiftedMask_32 ( uint32_t Value,
unsigned & MaskIdx,
unsigned & MaskLen )
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. If true, MaskIdx will specify the index of the lowest set bit and MaskLen is updated to specify the length of the mask, else neither are updated.

Definition at line 302 of file MathExtras.h.

References countr_zero(), isShiftedMask_32(), and popcount().

◆ isShiftedMask_64() [1/2]

◆ isShiftedMask_64() [2/2]

bool llvm::isShiftedMask_64 ( uint64_t Value,
unsigned & MaskIdx,
unsigned & MaskLen )
inline

Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.) If true, MaskIdx will specify the index of the lowest set bit and MaskLen is updated to specify the length of the mask, else neither are updated.

Definition at line 315 of file MathExtras.h.

References countr_zero(), isShiftedMask_64(), and popcount().

◆ isShiftedUInt()

◆ isSignBitCheck()

◆ IsSingleCodeUnitUTF16Codepoint()

bool llvm::IsSingleCodeUnitUTF16Codepoint ( unsigned V)

Definition at line 308 of file ConvertUTFWrapper.cpp.

◆ IsSingleCodeUnitUTF32Codepoint()

bool llvm::IsSingleCodeUnitUTF32Codepoint ( unsigned V)

Definition at line 312 of file ConvertUTFWrapper.cpp.

◆ IsSingleCodeUnitUTF8Codepoint()

bool llvm::IsSingleCodeUnitUTF8Codepoint ( unsigned V)

Definition at line 306 of file ConvertUTFWrapper.cpp.

◆ isSoleUseCopyToV0()

◆ isSpace()

bool llvm::isSpace ( char C)
inline

Checks whether character C is whitespace in the "C" locale.

Locale-independent version of the C standard library isspace.

Definition at line 158 of file StringExtras.h.

References llvm::CallingConv::C.

Referenced by llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer(), CompareNumbers(), convertStrToInt(), getHeaders(), llvm::HexagonInstrInfo::getInlineAsmLength(), llvm::TargetInstrInfo::getInlineAsmLength(), getSignature(), llvm::TextCodeGenDataReader::hasFormat(), and llvm::yaml::needsQuotes().

◆ isSpecialOpaqueType()

bool llvm::isSpecialOpaqueType ( const Type * Ty)

Definition at line 480 of file SPIRVUtils.cpp.

References dyn_cast(), hasBuiltinTypePrefix(), and isTypedPointerWrapper().

◆ isSpecialPass()

◆ isSpeculationBarrierEndBBOpcode()

bool llvm::isSpeculationBarrierEndBBOpcode ( int Opc)
inlinestatic

Definition at line 708 of file ARMBaseInstrInfo.h.

References Opc.

Referenced by llvm::ARMBaseInstrInfo::analyzeBranch().

◆ isSplatValue()

bool llvm::isSplatValue ( const Value * V,
int Index = -1,
unsigned Depth = 0 )

Return true if each element of the vector value V is poisoned or equal to every other non-poisoned element.

If an index element is specified, either every element of the vector is poisoned or the element at that index is not poisoned and equal to every other non-poisoned element. This may be more powerful than the related getSplatValue() because it is not limited by finding a scalar source value to a splatted vector.

Definition at line 406 of file VectorUtils.cpp.

References all_equal(), assert(), llvm::CallingConv::C, Depth, dyn_cast(), isa(), isSplatValue(), llvm::PatternMatch::m_BinOp(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), MaxAnalysisRecursionDepth, X, and Y.

Referenced by llvm::InstCombinerImpl::foldReversedIntrinsicOperands(), llvm::InstCombinerImpl::foldVectorBinop(), foldVectorCmp(), instCombineSVELast(), isSplatValue(), scalarizeMaskedLoad(), scalarizeMaskedStore(), simplifyIntrinsic(), and simplifyUnaryIntrinsic().

◆ isSPLSOpcode()

bool llvm::isSPLSOpcode ( unsigned Opcode)
inlinestatic

◆ isSpvIntrinsic() [1/2]

◆ isSpvIntrinsic() [2/2]

bool llvm::isSpvIntrinsic ( const Value * Arg)

Definition at line 848 of file SPIRVUtils.cpp.

References dyn_cast(), F, and II.

◆ isStatepointDirectiveAttr()

bool llvm::isStatepointDirectiveAttr ( Attribute Attr)

Return true if the Attr is an attribute that is a statepoint directive.

Definition at line 18 of file Statepoint.cpp.

References llvm::Attribute::hasAttribute().

Referenced by legalizeCallAttributes().

◆ IsStringMapEntry()

template<typename KeyMatcherT, typename ValueMatcherT>
detail::StringMapEntryMatcher< KeyMatcherT, ValueMatcherT > llvm::IsStringMapEntry ( KeyMatcherT KM,
ValueMatcherT VM )

Returns a gMock matcher that matches a StringMapEntry whose string key matches KeyMatcher, and whose value matches ValueMatcher.

Definition at line 122 of file StringMapEntry.h.

◆ isStrongerThan()

bool llvm::isStrongerThan ( AtomicOrdering AO,
AtomicOrdering Other )
inline

◆ isStrongerThanMonotonic()

◆ isStrongerThanUnordered()

bool llvm::isStrongerThanUnordered ( AtomicOrdering AO)
inline

◆ isSubImmOpcode()

bool llvm::isSubImmOpcode ( int Opc)
inlinestatic

Definition at line 726 of file ARMBaseInstrInfo.h.

References Opc.

◆ isSuperReg()

bool llvm::isSuperReg ( const MCRegisterInfo * MCRI,
MCPhysReg Reg )
inline

This analysis only keeps track and cares about super registers, not the subregisters.

All reads from/writes to subregisters are considered the same operation to super registers.

Definition at line 27 of file Registers.h.

References Reg, and llvm::MCRegisterInfo::superregs().

Referenced by getSuperReg(), and getSuperRegs().

◆ isSurface()

bool llvm::isSurface ( const Value & V)

Definition at line 238 of file NVPTXUtilities.cpp.

References globalHasNVVMAnnotation().

◆ isTargetSpecificOpcode()

bool llvm::isTargetSpecificOpcode ( unsigned Opcode)
inline

Check whether the given Opcode is a target-specific opcode.

Definition at line 36 of file TargetOpcodes.h.

Referenced by llvm::RegBankSelect::assignRegisterBanks(), constrainOperandRegClass(), and llvm::SIInstrInfo::mayReadEXEC().

◆ isTexture()

bool llvm::isTexture ( const Value & V)

Definition at line 236 of file NVPTXUtilities.cpp.

References globalHasNVVMAnnotation().

◆ isTheSameCluster()

◆ isThumbFunc()

◆ isTimeTraceVerbose()

bool llvm::isTimeTraceVerbose ( )

◆ isTLIScalarize()

bool llvm::isTLIScalarize ( const TargetLibraryInfo & TLI,
const CallInst & CI )
static

Checks if a function is scalarizable according to the TLI, in the sense that it should be vectorized and then expanded in multiple scalar calls.

This is represented in the TLI via mappings that do not specify a vector name, as in the following example:

const VecDesc VecIntrinsics[] = { {"llvm.phx.abs.i32", "", 4} };

Definition at line 765 of file LoopVectorizationLegality.cpp.

References assert(), llvm::CallBase::getCalledFunction(), llvm::ElementCount::getFixed(), llvm::Value::getName(), llvm::ElementCount::getScalable(), llvm::TargetLibraryInfo::getWidestVF(), llvm::TargetLibraryInfo::isFunctionVectorizable(), llvm::details::FixedOrScalableQuantity< ElementCount, unsigned >::isKnownLE(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isZero().

◆ isTLS()

◆ isTlsAddressCode()

bool llvm::isTlsAddressCode ( uint8_t DW_OP_Code)
static

Definition at line 412 of file DWARFLinker.cpp.

◆ isTriviallyDead()

bool llvm::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.

Definition at line 222 of file Utils.cpp.

References MI, and MRI.

Referenced by eraseInstrs(), llvm::Legalizer::legalizeMachineFunction(), and llvm::InstructionSelect::selectInstr().

◆ isTriviallyScalarizable()

bool llvm::isTriviallyScalarizable ( Intrinsic::ID ID,
const TargetTransformInfo * TTI )

Identify if the intrinsic is trivially scalarizable.

This method returns true following the same predicates of isTriviallyVectorizable. Note: There are intrinsics where implementing vectorization for the intrinsic is redundant, but we want to implement scalarization of the vector. To prevent the requirement that an intrinsic also implements vectorization we provide this separate function.

Definition at line 124 of file VectorUtils.cpp.

References llvm::Intrinsic::isTargetIntrinsic(), and isTriviallyVectorizable().

◆ isTriviallyVectorizable()

bool llvm::isTriviallyVectorizable ( Intrinsic::ID ID)

Identify if the intrinsic is trivially vectorizable.

Return true if all of the intrinsic's arguments and return type are scalars for the scalar form of the intrinsic, and vectors for the vector form of the intrinsic (except operands that are marked as always being scalar by isVectorIntrinsicWithScalarOpAtArg).

This method returns true if the intrinsic's argument types are all scalars for the scalar form of the intrinsic and all vectors (or scalars handled by isVectorIntrinsicWithScalarOpAtArg) for the vector form of the intrinsic.

Note: isTriviallyVectorizable implies isTriviallyScalarizable.

Definition at line 46 of file VectorUtils.cpp.

Referenced by llvm::InstCombinerImpl::foldReversedIntrinsicOperands(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), generateKeySubkey(), getSameOpcode(), getVectorIntrinsicIDForCall(), isNotCrossLaneOperation(), and isTriviallyScalarizable().

◆ isTRNMask()

bool llvm::isTRNMask ( ArrayRef< int > M,
unsigned NumElts,
unsigned & WhichResult )
inline

Return true for trn1 or trn2 masks of the form: <0, 8, 2, 10, 4, 12, 6, 14> or <1, 9, 3, 11, 5, 13, 7, 15>

Definition at line 6687 of file AArch64PerfectShuffle.h.

Referenced by llvm::AArch64TargetLowering::isShuffleMaskLegal().

◆ isTypedPointerTy()

bool llvm::isTypedPointerTy ( const Type * T)
inline

Definition at line 278 of file SPIRVUtils.h.

References T, and llvm::Type::TypedPointerTyID.

Referenced by getArgSPIRVType(), and isPointerTy().

◆ isTypedPointerWrapper()

◆ isTypeFoldingSupported()

bool llvm::isTypeFoldingSupported ( unsigned Opcode)

◆ isTypeTag()

bool llvm::isTypeTag ( uint16_t Tag)
static

Definition at line 118 of file DWARFLinker.cpp.

References Tag.

Referenced by updatePruning().

◆ isUInt()

template<unsigned N>
bool llvm::isUInt ( uint64_t x)
constexpr

Checks if an unsigned integer fits into the given bit width.

Definition at line 198 of file MathExtras.h.

References N.

Referenced by llvm::MachineInstr::addOperand(), adjustFixupValue(), adjustFixupValue(), adjustFixupValue(), llvm::RISCVRegisterInfo::adjustReg(), llvm::jitlink::x86::applyFixup(), llvm::jitlink::x86_64::applyFixup(), llvm::jitlink::aarch32::applyFixupData(), llvm::BCFixed< Width >::assertValid(), llvm::BCFixed< Width >::assertValid(), canCompareBeNewValueJump(), llvm::SITargetLowering::checkAsmConstraintVal(), checkIntrinsicImmArg(), llvm::MachineInstr::clearAsmPrinterFlag(), llvm::MachineInstr::clearFlag(), llvm::MachineInstr::clearFlags(), compressAnnotation(), decodeB4constOperand(), decodeB4constuOperand(), decodeBranchOperand(), decodeCallOperand(), decodeCLUIImmOperand(), DecodeDREGSRegisterClass(), decodeEntry_Imm12OpValue(), decodeFRMArg(), decodeImm12Operand(), decodeImm1_16Operand(), decodeImm1n_15Operand(), decodeImm32n_95Operand(), decodeImm64n_4nOperand(), decodeImm7_22Operand(), decodeImm8_sh8Operand(), decodeImm8n_7Operand(), decodeImm8Operand(), decodeImmZibiOperand(), DecodeIWREGSRegisterClass(), decodeJMPIXImmOperand(), decodeJumpOperand(), decodeL32ROperand(), DecodeLD8loRegisterClass(), DecodeLD8RegisterClass(), decodeLenOperand(), decodeLoopOperand(), decodeLRW16Imm8(), decodeMem16Operand(), decodeMem32nOperand(), decodeMem32Operand(), decodeMem8Operand(), decodeOImmOperand(), decodeOperand_VGPR_16(), decodeOperand_VSrcT16(), decodeOperand_VSrcT16_Lo128(), decodePCDBLOperand(), DecodeRegSeqOperand(), DecodeRegSeqOperandD1(), DecodeRegSeqOperandD2(), DecodeRegSeqOperandF1(), DecodeRegSeqOperandF2(), decodeRTZArg(), decodeShimm1_31Operand(), DecodeSIMM13(), DecodeSIMM5(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperandAndLslN(), decodeUimm4Operand(), decodeUimm5Operand(), decodeUImmLog2XLenOperand(), decodeUImmOperand(), decodeUImmOperand(), decodeUImmOperand(), decodeUImmOperand(), decodeUImmOperand(), decodeUImmOperandGE(), decodeUImmPlus1Operand(), decodeUImmPlus1OperandGE(), decodeUImmSlistOperand(), DecodeVGPR_16_Lo128RegisterClass(), DecodeVGPR_16RegisterClass(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::BitstreamWriter::emitBlob(), llvm::ARCFrameLowering::emitEpilogue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::EHStreamer::emitExceptionTable(), llvm::ARCFrameLowering::emitPrologue(), llvm::AVRFrameLowering::emitPrologue(), llvm::CSKYFrameLowering::emitPrologue(), emitRegUpdate(), llvm::X86FrameLowering::emitSPUpdate(), llvm::RuntimeDyldMachOAArch64::encodeAddend(), llvm::MCDwarfFrameEmitter::encodeAdvanceLoc(), llvm::M68kInstrInfo::ExpandMOVI(), llvm::SIInstrInfo::expandPostRAPseudo(), extractPtrauthBlendDiscriminators(), extractPtrauthBlendDiscriminators(), llvm::AArch64GISelUtils::extractPtrauthBlendDiscriminators(), findRedundantFlagInstr(), llvm::FixedPointSemantics::FixedPointSemantics(), llvm::AArch64TargetLowering::fixupPtrauthDiscriminator(), foldMaskedShiftToScaledMask(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), generateInstSeqImpl(), generateStackAdjustment(), llvm::MachineInstr::getAsmPrinterFlag(), llvm::HexagonInstrInfo::getCompoundCandidateGroup(), llvm::HexagonInstrInfo::getCompoundOpcode(), llvm::HexagonInstrInfo::getDuplexCandidateGroup(), getDwarfRegNum(), llvm::MachineInstr::getFlag(), llvm::SystemZInstrInfo::getFusedCompare(), llvm::SystemZTTIImpl::getIntImmCost(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getIntImmCostInst(), llvm::SystemZTTIImpl::getIntImmCostIntrin(), getLit64Encoding(), getMOVriOpcode(), llvm::SystemZInstrInfo::getOpcodeForOffset(), llvm::AVRTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::AMDGPU::getSMRDEncodedLiteralOffset32(), getTime(), llvm::objcopy::elf::SRecord::getType(), llvm::RISCVTTIImpl::getVectorInstrCost(), getVFFromIndVar(), llvm::jitlink::aarch32::HalfWords::HalfWords(), llvm::HexagonMCInstrInfo::inRange(), isImmSExti16i8Value(), isImmSExti32i8Value(), isImmUnsignedi4Value(), isImmUnsignedi8Value(), llvm::SIInstrInfo::isInlineConstant(), llvm::AMDGPUTargetLowering::isInt64ImmLegal(), llvm::PPCTargetLowering::isLegalAddImmediate(), llvm::SystemZTargetLowering::isLegalAddImmediate(), isLegalAddressImmediate(), llvm::AVRTargetLowering::isLegalAddressingMode(), llvm::SITargetLowering::isLegalAddressingMode(), llvm::SystemZTargetLowering::isLegalAddressingMode(), llvm::PPCTargetLowering::isLegalICmpImmediate(), llvm::SystemZTargetLowering::isLegalICmpImmediate(), IsLegalOffset(), llvm::AMDGPU::isLegalSMRDEncodedUnsignedOffset(), isLegalT1AddressImmediate(), isLegalT2AddressImmediate(), isShiftedUInt(), isShiftedUIntAtAnyPosition(), isSignExtendingOpW(), isSimpleBD12Move(), llvm::AMDGPU::isValid32BitLiteral(), isValidDisp(), isValidIncrementOffset(), llvm::AMDGPU::SendMsg::isValidMsgOp(), llvm::AMDGPU::SendMsg::isValidMsgStream(), llvm::HexagonInstrInfo::isValidOffset(), isValidVisniInsertExtractIndex(), legalizeIntrinsicImmArg(), LowerAndToBT(), LowerAndToBTST(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), llvm::RISCVTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), lowerBuildVectorViaVID(), lowerVECTOR_SHUFFLE(), lowerVectorBitClearImm(), lowerVectorBitRevImm(), lowerVectorBitSetImm(), lowerVectorSplatImm(), llvm::Mips16InstrInfo::makeFrame(), llvm::MCAsmParserExtension::maybeParseUniqueID(), Mips16WhichOp8uOr16simm(), llvm::CSKYInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::PointerEmbeddedInt< IntT, Bits >::operator=(), llvm::jitlink::x86_64::optimizeGOTAndStubAccesses(), parseAddrSpace(), parseAlignment(), parseSize(), PeepholePPC64ZExtGather(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), llvm::SystemZInstPrinterCommon::printUImmOperand(), llvm::SystemZELFFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SystemZXPLINKFrameLowering::processFunctionBeforeFrameFinalized(), llvm::LoongArchAsmBackend::relaxDwarfCFA(), llvm::RISCVAsmBackend::relaxDwarfCFA(), replaceFrameIndex(), llvm::LoongArchTargetLowering::ReplaceNodeResults(), replaceVPICKVE2GRResults(), llvm::Mips16InstrInfo::restoreFrame(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm9(), selectDisp(), llvm::HvxSelector::selectRor(), llvm::RISCVDAGToDAGISel::selectVLOp(), llvm::RISCVDAGToDAGISel::selectVSETVLI(), llvm::MachineInstr::setAsmPrinterFlag(), llvm::MachineInstr::setFlag(), llvm::MachineInstr::setFlags(), shouldSwapCmpOperands(), shouldUseLA(), splatPartsI64WithVL(), supportedAddressingMode(), llvm::MCStreamer::switchSection(), translateSetCCForBranch(), verifyAddrSpace(), llvm::RISCVInstrInfo::verifyInstruction(), llvm::SIInstrInfo::verifyInstruction(), verifyScalarSize(), verifyVectorElementCount(), llvm::MachObjectWriter::writeObject(), and llvm::MachObjectWriter::writeSection().

◆ isUIntN()

◆ isUncondBranchOpcode() [1/2]

◆ isUncondBranchOpcode() [2/2]

bool llvm::isUncondBranchOpcode ( int Opc)
inlinestatic

Definition at line 562 of file ARMBaseInstrInfo.h.

References Opc.

◆ isUniformLoop()

◆ isUniformLoopNest()

bool llvm::isUniformLoopNest ( Loop * Lp,
Loop * OuterLp )
static

Definition at line 386 of file LoopVectorizationLegality.cpp.

References isUniformLoop(), and isUniformLoopNest().

Referenced by isUniformLoopNest().

◆ isUnpackedStructLiteral()

bool llvm::isUnpackedStructLiteral ( StructType * StructTy)
inline

◆ isUntypedEquivalentToTyExt()

bool llvm::isUntypedEquivalentToTyExt ( Type * Ty1,
Type * Ty2 )
inline

◆ isUntypedPointerTy()

◆ isUpper()

bool llvm::isUpper ( char C)
inline

Checks if character C is a uppercase letter as classified by "C" locale.

Definition at line 115 of file StringExtras.h.

References llvm::CallingConv::C.

Referenced by isAlpha(), isValid(), and toLower().

◆ isUsedOutsideBlock()

bool llvm::isUsedOutsideBlock ( Value * V)
static

Checks if the provided value does not require scheduling.

It does not require scheduling if this is not an instruction or it is an instruction that does not read/write memory and all users are phi nodes or instructions from the different blocks.

Definition at line 1855 of file SLPVectorizer.cpp.

References all_of(), dyn_cast(), I, and UsesLimit.

Referenced by doesNotNeedToBeScheduled(), and doesNotNeedToSchedule().

◆ isUZPMask()

bool llvm::isUZPMask ( ArrayRef< int > M,
unsigned NumElts,
unsigned & WhichResultOut )
inline

Return true for uzp1 or uzp2 masks of the form: <0, 2, 4, 6, 8, 10, 12, 14> or <1, 3, 5, 7, 9, 11, 13, 15>

Definition at line 6660 of file AArch64PerfectShuffle.h.

Referenced by llvm::AArch64TTIImpl::getShuffleCost(), and llvm::AArch64TargetLowering::isShuffleMaskLegal().

◆ isV8EligibleForIT()

template<typename InstrType>
bool llvm::isV8EligibleForIT ( const InstrType * Instr)
inline

Definition at line 24 of file ARMFeatures.h.

References IsCPSRDead().

Referenced by 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 1166 of file LoopInfo.cpp.

Referenced by addToAccessGroupList(), intersectAccessGroups(), and llvm::Loop::isAnnotatedParallel().

◆ isValidAssumeForContext()

bool llvm::isValidAssumeForContext ( const Instruction * I,
const Instruction * CxtI,
const DominatorTree * DT = nullptr,
bool AllowEphemerals = false )

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.

By default, ephemeral values of the assumption are treated as an invalid context, to prevent the assumption from being used to optimize away its argument. If the caller can ensure that this won't happen, it can call with AllowEphemerals set to true to get more valid assumptions.

Definition at line 515 of file ValueTracking.cpp.

References llvm::Instruction::comesBefore(), llvm::DominatorTree::dominates(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), isEphemeralValueOf(), isGuaranteedToTransferExecutionToSuccessor(), make_range(), and Range.

Referenced by computeConstantRange(), computeKnownBitsFromContext(), computeKnownFPClassFromContext(), getKnowledgeValidInContext(), isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointerViaAssumption(), isKnownNonEqualFromContext(), isKnownNonNullFromDominatingCondition(), isKnownNonZeroFromAssume(), isKnownToBeAPowerOfTwo(), llvm::AlignmentFromAssumptionsPass::processAssumption(), simplifyICmpWithDominatingAssume(), and llvm::InstCombinerImpl::visitCallInst().

◆ isValidAtomicOrdering()

template<typename Int>
bool llvm::isValidAtomicOrdering ( Int I)
inline

Definition at line 75 of file AtomicOrdering.h.

References I, Int, NotAtomic, and SequentiallyConsistent.

Referenced by upgradeAMDGCNIntrinsicCall().

◆ isValidAtomicOrderingCABI()

template<typename Int>
bool llvm::isValidAtomicOrderingCABI ( Int I)
inline

Definition at line 44 of file AtomicOrdering.h.

References I, Int, relaxed, and seq_cst.

◆ isValidCoprocessorNumber()

bool llvm::isValidCoprocessorNumber ( unsigned Num,
const FeatureBitset & featureBits )
inlinestatic

isValidCoprocessorNumber - decide whether an explicit coprocessor number is legal in generic instructions like CDP.

The answer can vary with the subtarget.

Definition at line 739 of file ARMBaseInstrInfo.h.

Referenced by DecodeCoprocessor().

◆ isValidMCLOHType()

bool llvm::isValidMCLOHType ( unsigned Kind)
inlinestatic

◆ isValueProfileMD()

bool llvm::isValueProfileMD ( const MDNode * ProfileData)

Checks if an MDNode contains value profiling Metadata.

Definition at line 108 of file ProfDataUtils.cpp.

References llvm::MDProfLabels::ValueProfile.

Referenced by expandToSwitch(), and hasCountTypeMD().

◆ isVCTP()

bool llvm::isVCTP ( const MachineInstr * MI)
inlinestatic

Definition at line 58 of file MVETailPredUtils.h.

References MI.

Referenced by llvm::ARMBaseInstrInfo::analyzeLoopForPipelining().

◆ isVector1()

bool llvm::isVector1 ( Type * Ty)
inline

Definition at line 418 of file SPIRVUtils.h.

References dyn_cast().

◆ isVectorIntrinsicWithOverloadTypeAtArg()

bool llvm::isVectorIntrinsicWithOverloadTypeAtArg ( Intrinsic::ID ID,
int OpdIdx,
const TargetTransformInfo * TTI )

Identifies if the vector form of the intrinsic is overloaded on the type of the operand at index OpdIdx, or on the return type if OpdIdx is -1.

TTI is used to consider target specific intrinsics, if no target specific intrinsics will be considered then it is appropriate to pass in nullptr.

Definition at line 183 of file VectorUtils.cpp.

References assert(), llvm::Intrinsic::isTargetIntrinsic(), llvm::VPCastIntrinsic::isVPCast(), and llvm::Intrinsic::not_intrinsic.

Referenced by llvm::VPWidenIntrinsicRecipe::execute(), and replaceWithCallToVeclib().

◆ isVectorIntrinsicWithScalarOpAtArg()

bool llvm::isVectorIntrinsicWithScalarOpAtArg ( Intrinsic::ID ID,
unsigned ScalarOpdIdx,
const TargetTransformInfo * TTI )

Identifies if the vector form of the intrinsic has a scalar operand.

TTI is used to consider target specific intrinsics, if no target specific intrinsics will be considered then it is appropriate to pass in nullptr.

Definition at line 148 of file VectorUtils.cpp.

References llvm::VPIntrinsic::getVectorLengthParamPos(), and llvm::Intrinsic::isTargetIntrinsic().

Referenced by buildIntrinsicArgTypes(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::InstCombinerImpl::foldReversedIntrinsicOperands(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), generateNewInstTree(), llvm::VPWidenIntrinsicRecipe::onlyFirstLaneUsed(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), and replaceWithCallToVeclib().

◆ isVectorIntrinsicWithStructReturnOverloadAtField()

bool llvm::isVectorIntrinsicWithStructReturnOverloadAtField ( Intrinsic::ID ID,
int RetIdx,
const TargetTransformInfo * TTI )

Identifies if the vector form of the intrinsic that returns a struct is overloaded at the struct element index RetIdx.

/// TTI is used to consider target specific intrinsics, if no target specific intrinsics will be considered then it is appropriate to pass in nullptr.

Definition at line 220 of file VectorUtils.cpp.

References llvm::Intrinsic::isTargetIntrinsic().

◆ isVectorizedStructTy()

bool llvm::isVectorizedStructTy ( StructType * StructTy)

Returns true if StructTy is an unpacked literal struct where all elements are vectors of matching element count.

This does not include empty structs.

Definition at line 44 of file VectorTypeUtils.cpp.

References all_of(), cast(), llvm::StructType::elements(), and isUnpackedStructLiteral().

Referenced by isVectorizedTy().

◆ isVectorizedTy()

bool llvm::isVectorizedTy ( Type * Ty)
inline

Returns true if Ty is a vector type or a struct of vector types where all vector types share the same VF.

Definition at line 73 of file VectorTypeUtils.h.

References dyn_cast(), and isVectorizedStructTy().

Referenced by llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost(), getVectorizedTypeVF(), and llvm::VPTransformState::set().

◆ isVPTOpcode()

bool llvm::isVPTOpcode ( int Opc)
inlinestatic

Definition at line 569 of file ARMBaseInstrInfo.h.

References Opc.

Referenced by recomputeVPTBlockMask().

◆ isVREVMask()

bool llvm::isVREVMask ( ArrayRef< int > M,
EVT VT,
unsigned BlockSize )
inline

isVREVMask - Check if a vector shuffle corresponds to a VREV instruction with the specified blocksize.

(The order of the elements within each block of the vector is reversed.)

Definition at line 362 of file ARMTargetTransformInfo.h.

References assert(), BlockSize, and llvm::EVT::getScalarSizeInBits().

Referenced by llvm::ARMTTIImpl::getShuffleCost(), llvm::ARMTargetLowering::isShuffleMaskLegal(), and LowerVECTOR_SHUFFLE().

◆ isVVPBinaryOp()

bool llvm::isVVPBinaryOp ( unsigned VVPOpcode)

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 146 of file VECustomDAG.cpp.

Referenced by getAVLPos(), getMaskPos(), and llvm::VETargetLowering::lowerToVVP().

◆ isVVPOrVEC()

bool llvm::isVVPOrVEC ( unsigned Opcode)

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 126 of file VECustomDAG.cpp.

References llvm::VEISD::VEC_BROADCAST.

Referenced by llvm::VETargetLowering::getCustomOperationAction(), and llvm::VETargetLowering::legalizePackedAVL().

◆ isVVPReductionOp()

bool llvm::isVVPReductionOp ( unsigned Opcode)

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 156 of file VECustomDAG.cpp.

Referenced by getIdiomaticVectorType(), and llvm::VETargetLowering::lowerToVVP().

◆ isVVPUnaryOp()

bool llvm::isVVPUnaryOp ( unsigned VVPOpcode)

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 136 of file VECustomDAG.cpp.

Referenced by llvm::VETargetLowering::lowerToVVP().

◆ isWhileLoopStart()

bool llvm::isWhileLoopStart ( const MachineInstr & MI)
inlinestatic

◆ isWidenableBranch()

bool llvm::isWidenableBranch ( const User * U)

Returns true iff U is a widenable branch (that is, extractWidenableCondition returns widenable condition).

Definition at line 26 of file GuardUtils.cpp.

References parseWidenableBranch().

Referenced by FindWidenableTerminatorAboveLoop(), isGuardAsWidenableBranch(), makeGuardControlFlowExplicit(), parseWidenableGuard(), setWidenableBranchCond(), tryWidenCondBranchToCondBranch(), turnToExplicitForm(), and widenWidenableBranch().

◆ isWidenableCondition()

bool llvm::isWidenableCondition ( const Value * V)

Returns true iff V has semantics of llvm.experimental.widenable.condition call.

Definition at line 22 of file GuardUtils.cpp.

References llvm::PatternMatch::m_Intrinsic(), and llvm::PatternMatch::match().

Referenced by extractWidenableCondition(), and parseWidenableGuard().

◆ isWritableObject()

bool llvm::isWritableObject ( const Value * Object,
bool & ExplicitlyDereferenceableOnly )

Return true if the Object is writable, in the sense that any location based on this pointer that can be loaded can also be stored to without trapping.

Additionally, at the point Object is declared, stores can be introduced without data races. At later points, this is only the case if the pointer can not escape to a different thread.

If ExplicitlyDereferenceableOnly is set to true, this property only holds for the part of Object that is explicitly marked as dereferenceable, e.g. using the dereferenceable(N) attribute. It does not necessarily hold for parts that are only known to be dereferenceable due to the presence of loads.

Definition at line 925 of file AliasAnalysis.cpp.

References A(), dyn_cast(), isa(), and isNoAliasCall().

Referenced by isSafeToSpeculateStore(), and promoteLoopAccessesToScalars().

◆ isZeroInit()

◆ isZeroOrZeroSplat()

bool llvm::isZeroOrZeroSplat ( SDValue N,
bool AllowUndefs = false )

Return true if the value is a constant 0 integer or a splatted vector of a constant 0 integer (with no undefs).

Does not permit build vector implicit truncation.

Definition at line 12962 of file SelectionDAG.cpp.

References llvm::CallingConv::C, isConstOrConstSplat(), N, and peekThroughBitcasts().

Referenced by llvm::SDPatternMatch::Zero_match::match().

◆ isZIPMask()

bool llvm::isZIPMask ( ArrayRef< int > M,
unsigned NumElts,
unsigned & WhichResultOut )
inline

Return true for zip1 or zip2 masks of the form: <0, 8, 1, 9, 2, 10, 3, 11> or <4, 12, 5, 13, 6, 14, 7, 15>

Definition at line 6627 of file AArch64PerfectShuffle.h.

Referenced by llvm::AArch64TTIImpl::getShuffleCost(), and llvm::AArch64TargetLowering::isShuffleMaskLegal().

◆ itaniumDemangle()

char * llvm::itaniumDemangle ( std::string_view mangled_name,
bool ParseParams = true )

Returns a non-NULL pointer to a NUL-terminated C style string that should be explicitly freed, if successful.

Otherwise, may return nullptr if mangled_name is not a valid mangling or is nullptr.

Definition at line 369 of file ItaniumDemangle.cpp.

References assert(), and Node::print().

Referenced by llvm::GCOVFunction::getName(), getOclOrSpirvBuiltinDemangledName(), and nonMicrosoftDemangle().

◆ IterativeBFIMaxIterationsPerBlock()

cl::opt< unsigned > llvm::IterativeBFIMaxIterationsPerBlock ( "iterative-bfi-max-iterations-per-block" ,
cl::init(1000) ,
cl::Hidden ,
cl::desc("Iterative inference: maximum number of update iterations " "per block")  )

◆ IterativeBFIPrecision()

cl::opt< double > llvm::IterativeBFIPrecision ( "iterative-bfi-precision" ,
cl::init(1e-12) ,
cl::Hidden ,
cl::desc("Iterative inference: delta convergence precision; smaller values " "typically lead to better results at the cost of worsen runtime")  )

◆ iterator_range()

◆ itostr()

◆ jit_noop()

int llvm::jit_noop ( )
static

◆ jitLinkForORC() [1/2]

◆ jitLinkForORC() [2/2]

◆ jitTargetAddressToFunction()

template<typename T>
T llvm::jitTargetAddressToFunction ( JITTargetAddress Addr)

Convert a JITTargetAddress to a callable function pointer.

Casts the given address to a callable function pointer. This operation will perform pointer signing for platforms that require it (e.g. arm64e).

Definition at line 62 of file JITSymbol.h.

References jitTargetAddressToPointer(), and T.

◆ jitTargetAddressToPointer()

template<typename T>
T llvm::jitTargetAddressToPointer ( JITTargetAddress Addr)

Convert a JITTargetAddress to a pointer.

Note: This is a raw cast of the address bit pattern to the given pointer type. When casting to a function pointer in order to execute JIT'd code jitTargetAddressToFunction should be preferred, as it will also perform pointer signing on targets that require it.

Definition at line 51 of file JITSymbol.h.

References assert(), and T.

Referenced by jitTargetAddressToFunction(), and llvm::orc::reentry().

◆ join() [1/2]

template<typename IteratorT>
std::string llvm::join ( IteratorT Begin,
IteratorT End,
StringRef Separator )
inline

◆ 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 499 of file StringExtras.h.

References join(), and Range.

◆ 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 508 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

Concatenate errors.

The resulting Error is unchecked, and contains the ErrorInfo(s), if any, contained in E1, followed by the ErrorInfo(s), if any, contained in E2.

Definition at line 442 of file Error.h.

Referenced by llvm::jitlink::InProcessMemoryManager::IPInFlightAlloc::abandon(), llvm::orc::EPCIndirectionUtils::cleanup(), llvm::orc::JITDylib::clear(), llvm::xray::PipelineConsumer::consume(), llvm::orc::SimpleRemoteEPC::Create(), llvm::jitlink::InProcessMemoryManager::deallocate(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), decodeBBAddrMapImpl(), llvm::FileCheckPatternContext::defineCmdlineVariables(), llvm::orc::InProcessMemoryMapper::deinitialize(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::deinitialize(), llvm::telemetry::Manager::dispatch(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), llvm::DWARFYAML::emitDebugSections(), llvm::orc::ExecutionSession::endSession(), llvm::BinaryOperation::eval(), llvm::DWARFUnitHeader::extract(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::DWARFUnit::findLoclistFromOffset(), llvm::BinaryOperation::getImplicitFormat(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::orc::SimpleRemoteEPC::handleDisconnect(), llvm::orc::SimpleRemoteEPCServer::handleDisconnect(), llvm::vfs::OutputFile::keep(), llvm::pdb::NamedStreamMap::load(), llvm::orc::Platform::lookupInitSymbols(), llvm::orc::Platform::lookupInitSymbolsAsync(), llvm::vfs::makeMirroringOutputBackend(), llvm::Pattern::match(), llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyEmitted(), llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyFailed(), parallelForEachError(), llvm::DWARFDebugLine::Prologue::parse(), llvm::hlsl::rootsig::MetadataParser::ParseRootSignature(), llvm::xray::FileBasedRecordProducer::produce(), readGSIHashBuckets(), readGSIHashRecords(), llvm::pdb::readSparseBitVector(), llvm::orc::InProcessMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::release(), llvm::pdb::InfoStream::reload(), llvm::pdb::PublicsStream::reload(), llvm::orc::ExecutionSession::removeJITDylibs(), llvm::objcopy::coff::Object::removeSymbols(), llvm::orc::shared::runDeallocActions(), llvm::orc::shared::runFinalizeActions(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::shutdown(), writeArchive(), llvm::pdb::writeSparseBitVector(), writeToOutput(), and llvm::object::writeUniversalBinary().

◆ lcm()

Returns the least common multiple of A and B.

Definition at line 413 of file DynamicAPInt.h.

◆ left_justify()

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

◆ 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::MIRFormatter::parseIRValue().

◆ libDriverMain()

◆ 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 132 of file BuiltinGCs.cpp.

Referenced by getGCStrategy().

◆ linkErlangGCPrinter()

void llvm::linkErlangGCPrinter ( )

Creates an erlang-compatible metadata printer.

Definition at line 117 of file ErlangGCPrinter.cpp.

◆ linkOcamlGCPrinter()

void llvm::linkOcamlGCPrinter ( )

Creates an ocaml-compatible metadata printer.

Definition at line 49 of file OcamlGCPrinter.cpp.

◆ lintFunction()

void llvm::lintFunction ( const Function & F,
bool AbortOnError = false )

lintFunction - Check a function for errors, printing messages on stderr.

Definition at line 750 of file Lint.cpp.

References assert(), F, FAM, and llvm::LintPass::run().

Referenced by lintModule().

◆ lintModule()

void llvm::lintModule ( const Module & M,
bool AbortOnError = false )

Lint 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.

Definition at line 770 of file Lint.cpp.

References F, and lintFunction().

◆ LLVM_DECLARE_ENUM_AS_BITMASK() [1/3]

llvm::LLVM_DECLARE_ENUM_AS_BITMASK ( decltype(SDNodeFlags::None) ,
SDNodeFlags::SameSign  )

◆ LLVM_DECLARE_ENUM_AS_BITMASK() [2/3]

llvm::LLVM_DECLARE_ENUM_AS_BITMASK ( FPClassTest ,
fcPosInf  )

References fcPosInf, and LLVM_ABI.

◆ LLVM_DECLARE_ENUM_AS_BITMASK() [3/3]

llvm::LLVM_DECLARE_ENUM_AS_BITMASK ( TailFoldingOpts ,
(long) TailFoldingOpts::Reverse  )

References Reverse.

◆ LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()

llvm::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ( )

◆ llvm_is_multithreaded()

◆ llvm_shutdown()

void llvm::llvm_shutdown ( )

llvm_shutdown - Deallocate and destroy all ManagedStatic variables.

IMPORTANT: it's only safe to call llvm_shutdown() in single thread, without any other threads executing LLVM APIs. llvm_shutdown() should be the last use of LLVM APIs.

Definition at line 75 of file ManagedStatic.cpp.

References StaticList.

Referenced by LLVMShutdown(), llvm::InitLLVM::~InitLLVM(), and llvm::llvm_shutdown_obj::~llvm_shutdown_obj().

◆ 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 233 of file ErrorHandling.cpp.

References dbgs(), and file().

Referenced by llvm::LoopVectorizationCostModel::getInstructionCost(), and rewriteMemOpOfSelect().

◆ LLVMInitializeAVRTarget()

◆ LO10()

unsigned llvm::LO10 ( int64_t imm)
inlinestatic

Definition at line 177 of file Sparc.h.

Referenced by LOX10(), and replaceFI().

◆ Lo_32()

◆ LoadIntFromMemory()

void llvm::LoadIntFromMemory ( APInt & IntVal,
const uint8_t * Src,
unsigned LoadBytes )

LoadIntFromMemory - Loads the integer stored in the LoadBytes bytes starting from Src into IntVal, which is assumed to be wide enough and to hold zero.

Definition at line 3077 of file APInt.cpp.

References assert(), and llvm::sys::IsLittleEndianHost.

Referenced by llvm::ExecutionEngine::LoadValueFromMemory().

◆ LoadOpt()

cl::opt< PluginLoader, false, cl::parser< std::string > > llvm::LoadOpt ( "load" ,
cl::value_desc("pluginfilename") ,
cl::desc("Load the specified plugin")  )
static

◆ localCache()

Expected< FileCache > llvm::localCache ( const Twine & CacheNameRef,
const Twine & TempFilePrefixRef,
const Twine & CacheDirectoryPathRef,
AddBufferFn AddBuffer = [](size_t Task, const Twine &ModuleName,                               std::unique_ptr<MemoryBuffer> MB) {} )

◆ Log2()

unsigned llvm::Log2 ( Align A)
inline

Returns the log2 of the alignment.

Definition at line 208 of file Alignment.h.

Referenced by llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), llvm::GISelValueTracking::computeKnownBitsForAlignment(), llvm::TargetLowering::computeKnownBitsForFrameIndex(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), ConstantFoldBinaryInstruction(), emitAligningInstructions(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::BPFSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::MCSymbolMachO::getEncodedFlags(), llvm::HexagonTTIImpl::getMemoryOpCost(), llvm::dxil::ResourceTypeInfo::getStruct(), INITIALIZE_PASS(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::APInt::isAligned(), llvm::HexagonTargetLowering::isLegalAddressingMode(), llvm::AMDGPULegalizerInfo::legalizeFExp2(), llvm::AMDGPULegalizerInfo::legalizeFlog2(), llvm::AMDGPULegalizerInfo::legalizeFSQRTF16(), llvm::AMDGPUTargetLowering::LowerFLOG2(), llvm::RISCVTargetLowering::LowerOperation(), llvm::LegalizerHelper::lowerVAArg(), mayCrossBoundary(), performANDCombine(), llvm::BasicBlockInfo::postKnownBits(), llvm::LoongArchAsmBackend::relaxAlign(), rewriteP2Align(), llvm::TargetLoweringObjectFileGOFF::SelectSectionForGlobal(), llvm::LoongArchDAGToDAGISel::selectVSplatUimmInvPow2(), llvm::LoongArchDAGToDAGISel::selectVSplatUimmPow2(), llvm::AllocaInst::setAlignment(), llvm::AtomicCmpXchgInst::setAlignment(), llvm::AtomicRMWInst::setAlignment(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), UnknownPadding(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitUDiv(), and llvm::MachObjectWriter::writeSection().

◆ log2()

double llvm::log2 ( double V)
static

Definition at line 882 of file AMDGPULibCalls.cpp.

References llvm::numbers::ln2.

Referenced by constantFoldFpUnary(), and getHeatColor().

◆ 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 342 of file MathExtras.h.

References countl_zero().

Referenced by llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), CalculateUnswitchCostMultiplier(), clampDynamicVectorIndex(), clampVectorIndex(), combineArithReduction(), combineBasicSADPattern(), combineBT(), combineGatherScatter(), combineToVCPOP(), combineVPDPBUSDPattern(), llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::TargetLowering::CTTZTableLookup(), llvm::RISCVVType::encodeLMUL(), llvm::RISCVVType::encodeSEW(), llvm::RISCVVType::encodeXSfmmVType(), llvm::InstCombinerImpl::foldICmpWithTrunc(), foldSwitchToSelect(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), getARMFixupKindMachOInfo(), getBitcastWiderVectorElementOffset(), llvm::RISCVTTIImpl::getCastInstrCost(), getElSizeLog2Diff(), getFalkorUnrollingPreferences(), getInputSegmentList(), getIntegerExtensionOperandEEW(), getMaxShiftAmount(), llvm::BasicTTIImplBase< BasicTTIImpl >::getMinMaxReductionCost(), getScaledOffsetForBitWidth(), llvm::SIInstrInfo::getScratchRsrcWords23(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::BasicTTIImplBase< BasicTTIImpl >::getTreeReductionCost(), hasAllNBitUsers(), hasAllNBitUsers(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), isMultipleOfN(), isValidAsScaledImmediate(), llvm::HexagonInstrInfo::isValidOffset(), llvm::MipsLegalizerInfo::legalizeCustom(), lowerBuildVectorViaDominantValues(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), llvm::RISCVRegisterInfo::lowerSegmentSpillReload(), lowerShuffleWithPACK(), lowerX86CmpEqZeroToCtlzSrl(), matchAddReduction(), llvm::SelectionDAG::matchBinOpReduction(), matchTruncateWithPACK(), llvm::RISCVInstrInfo::mulImm(), llvm::LegalizerHelper::narrowScalarShiftMultiway(), llvm::rdf::NodeAllocator::NodeAllocator(), packSegmentMask(), PerformMULCombine(), llvm::AArch64InstPrinter::printMemExtendImpl(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::selectSF_VC_X_SE(), llvm::LoongArchDAGToDAGISel::selectShiftMask(), llvm::RISCVDAGToDAGISel::selectVLXSEG(), llvm::RISCVDAGToDAGISel::selectVSXSEG(), llvm::object::coff_tls_directory< support::little32_t >::setAlignment(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), llvm::TargetLowering::SimplifySetCC(), simplifySetCCWithCTPOP(), simplifyX86VPERMMask(), SortNonLocalDepInfoCache(), UnrollRuntimeLoopRemainder(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitTrunc(), and llvm::InstCombinerImpl::visitZExt().

◆ Log2_32_Ceil()

◆ Log2_64()

unsigned llvm::Log2_64 ( uint64_t Value)
inline

Return the floor log base 2 of the specified value, -1 if the value is zero.

(64 bit edition.)

Definition at line 348 of file MathExtras.h.

References countl_zero().

Referenced by llvm::Align::Align(), combine_CC(), combine_CC(), combineMul(), combineMulSpecial(), computeKnownBitsFromContext(), llvm::GISelValueTracking::computeKnownBitsImpl(), createStepForVF(), decodeImmShiftOpValue(), expandMul(), expandMulToAddOrSubOfShl(), llvm::FastISel::fastEmit_ri_(), fillCommonArgs(), llvm::UnOpInit::Fold(), generateInstSeqImpl(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::LaneBitmask::getHighestLane(), llvm::ScaledNumbers::getLgImpl(), llvm::mca::getResourceStateIndex(), llvm::RISCVTargetLowering::getVRGatherVVCost(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::TargetLoweringBase::isBeneficialToExpandPowI(), isSeveralBitsExtractOpFromShr(), lowerBuildVectorViaVID(), LowerCONCAT_VECTORSvXi1(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), lowerFixedVectorSegLoadIntrinsics(), lowerFixedVectorSegStoreIntrinsics(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), llvm::RISCVTargetLowering::LowerOperation(), lowerSelectToBinOp(), matchRotateSub(), llvm::RISCVInstrInfo::mulImm(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::RISCVTargetLowering::PerformDAGCombine(), llvm::MipsAsmPrinter::PrintAsmOperand(), SaturatingMultiply(), llvm::FastISel::selectBinaryOp(), llvm::RISCVDAGToDAGISel::selectSETCC(), llvm::AArch64TargetLowering::shouldConvertConstantLoadToIntImm(), llvm::APInt::tcMSB(), translateSetCCForBranch(), and translateSetCCForBranch().

◆ 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 361 of file MathExtras.h.

References countl_zero().

Referenced by buildFrameType(), llvm::ArrayRecycler< T, Align >::Capacity::get(), getEstimate(), LowerAndToBT(), LowerAndToBTST(), llvm::raw_ostream::operator<<(), PowerOf2Ceil(), and llvm::InstCombinerImpl::visitZExt().

◆ 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 65 of file Error.cpp.

Referenced by llvm::gsym::ObjectFileTransformer::convert(), llvm::orc::SimpleRemoteEPCServer::Create(), doImportingForModuleForTest(), llvm::gsym::GsymReader::dump(), fixupIndexV4(), fixupIndexV5(), llvm::MCJIT::generateCodeForModule(), llvm::BTFParser::hasBTFSections(), llvm::LTOModule::isThinLTO(), isThumbFunc(), llvm::ThinLTOCodeGenerator::linkCombinedIndex(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), llvm::RuntimeDyldCOFF::loadObject(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyldMachO::loadObject(), llvm::MemProfContextDisambiguation::MemProfContextDisambiguation(), llvm::Pattern::parsePattern(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::FileCheck::readCheckFile(), warnToStderr(), and llvm::orc::EPCGenericRTDyldMemoryManager::~EPCGenericRTDyldMemoryManager().

◆ longestCommonSequence()

template<typename Loc, typename Function, typename AnchorList = ArrayRef<std::pair<Loc, Function>>>
void llvm::longestCommonSequence ( AnchorList AnchorList1,
AnchorList AnchorList2,
llvm::function_ref< bool(const Function &, const Function &)> FunctionMatchesProfile,
llvm::function_ref< void(Loc, Loc)> InsertMatching )

Definition at line 36 of file LongestCommonSequence.h.

References Depth, I, P, llvm::Trace::size(), X, and Y.

Referenced by llvm::memprof::computeUndriftMap().

◆ lookupBroadcastFoldTable()

const X86FoldTableEntry * llvm::lookupBroadcastFoldTable ( unsigned RegOp,
unsigned OpNum )

Definition at line 146 of file X86InstrFoldTables.cpp.

References ArrayRef(), and lookupFoldTableImpl().

◆ lookupBroadcastFoldTableBySize()

const X86FoldTableEntry * llvm::lookupBroadcastFoldTableBySize ( unsigned MemOp,
unsigned BroadcastBits )

Definition at line 325 of file X86InstrFoldTables.cpp.

References I, lower_bound(), and matchBroadcastSize().

◆ lookupBuiltin()

std::unique_ptr< const SPIRV::IncomingCall > llvm::lookupBuiltin ( StringRef DemangledCall,
SPIRV::InstructionSet::InstructionSet Set,
Register ReturnRegister,
const SPIRVType * ReturnType,
const SmallVectorImpl< Register > & Arguments )
static

Looks up the demangled builtin call in the SPIRVBuiltins.td records using the provided DemangledCall and specified Set.

The lookup follows the following algorithm, returning the first successful match:

  1. Search with the plain demangled name (expecting a 1:1 match).
  2. Search with the prefix before or suffix after the demangled name signyfying the type of the first argument.
Returns
Wrapper around the demangled call and found builtin definition.

Definition at line 275 of file SPIRVBuiltins.cpp.

References Arguments, llvm::StringRef::find(), llvm::SPIRV::lookupBuiltinNameHelper(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::StringRef::slice(), and llvm::StringRef::split().

Referenced by llvm::SPIRV::lowerBuiltin(), and llvm::SPIRV::mapBuiltinToOpcode().

◆ lookupFoldTable()

const X86FoldTableEntry * llvm::lookupFoldTable ( unsigned RegOp,
unsigned OpNum )

Definition at line 128 of file X86InstrFoldTables.cpp.

References ArrayRef(), and lookupFoldTableImpl().

Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().

◆ lookupPGONameFromMetadata()

std::optional< std::string > llvm::lookupPGONameFromMetadata ( MDNode * MD)
static

Definition at line 370 of file InstrProf.cpp.

References cast(), llvm::MDNode::getOperand(), and llvm::StringRef::str().

Referenced by getIRPGOObjectName(), and getPGOFuncName().

◆ lookupTwoAddrFoldTable()

const X86FoldTableEntry * llvm::lookupTwoAddrFoldTable ( unsigned RegOp)

Definition at line 124 of file X86InstrFoldTables.cpp.

References lookupFoldTableImpl().

Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().

◆ lookupUnfoldTable()

◆ 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,
bool PrepareForLTO = false )

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 1033 of file LoopRotationUtils.cpp.

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

◆ lostFractionThroughTruncation()

lostFraction llvm::lostFractionThroughTruncation ( const APFloatBase::integerPart * parts,
unsigned int partCount,
unsigned int bits )
static

◆ lower_bound() [1/2]

template<typename R, typename T>
auto llvm::lower_bound ( R && Range,
T && Value )

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

Definition at line 1974 of file STLExtras.h.

References adl_begin(), adl_end(), Range, and T.

Referenced by addAttributeImpl(), llvm::MachO::InterfaceFile::addDocument(), llvm::MachO::addEntry(), llvm::MachO::InterfaceFile::addParentUmbrella(), llvm::BlockToIndexMapping::blockToIndex(), llvm::LiveIntervals::checkRegMaskInterference(), CompressEVEXImpl(), computeBucketCount(), convertSSEToAVX(), Find(), find(), llvm::GUIDProbeFunctionMap::find(), llvm::orc::AllocGroupSmallMap< Segment >::find(), llvm::pdb::PublicsStream::findByAddress(), findDefaultVersion(), llvm::InstrProfSymtab::getFuncOrVarName(), llvm::InstrProfSymtab::getFunction(), getIntrinsicWithChain(), getIntrinsicWithoutChain(), llvm::RISCVLoadFPImm::getLoadFPImm(), getNewOpcFromTable(), llvm::TargetLibraryInfoImpl::getVectorMappingInfo(), llvm::TargetLibraryInfoImpl::getWidestVF(), llvm::MachO::InterfaceFile::inlineLibrary(), llvm::ConstantRangeList::insert(), llvm::MCSubtargetInfo::isCPUStringValid(), isExperimentalExtension(), llvm::TargetLibraryInfoImpl::isFunctionVectorizable(), llvm::RISCVISAInfo::isSupportedExtension(), llvm::RISCVISAInfo::isSupportedExtensionFeature(), TransferTracker::loadInlocs(), TransferTracker::loadVarInloc(), Lookup(), lookupBroadcastFoldTableBySize(), lookupFoldTableImpl(), LookupNEONLdSt(), lookupUnfoldTable(), lowerV8I16GeneralSingleInputShuffle(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::sys::unicode::nearestMatchesForCodepointName(), llvm::orc::AllocGroupSmallMap< Segment >::operator[](), llvm::LiveRange::overlaps(), llvm::RISCVISAInfo::parseFeatures(), promoteSingleBlockAlloca(), and llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().

◆ lower_bound() [2/2]

template<typename R, typename T, typename Compare>
auto llvm::lower_bound ( R && Range,
T && Value,
Compare C )

Definition at line 1980 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, Range, and T.

◆ LowerARMMachineInstrToMCInst()

◆ lowerAtomicCmpXchgInst()

◆ lowerAtomicRMWInst()

bool llvm::lowerAtomicRMWInst ( AtomicRMWInst * RMWI)

◆ lowerConstantIntrinsics()

◆ LowerDbgDeclare()

◆ lowerGlobalIFuncUsersAsGlobalCtor()

bool llvm::lowerGlobalIFuncUsersAsGlobalCtor ( Module & M,
ArrayRef< GlobalIFunc * > IFuncsToLower = {} )

Lower all calls to ifuncs by replacing uses with indirect calls loaded out of a global table initialized in a global constructor.

This will introduce one constructor function and adds it to llvm.global_ctors. The constructor will call the resolver function once for each ifunc.

Leaves any unhandled constant initializer uses as-is.

If IFuncsToLower is empty, all ifuncs in the module will be lowered. If IFuncsToLower is non-empty, only the selected ifuncs will be lowered.

The processed ifuncs without remaining users will be removed from the module.

Definition at line 400 of file ModuleUtils.cpp.

References appendToGlobalCtors(), cast(), llvm::BasicBlock::Create(), llvm::Function::Create(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateConstInBoundsGEP2_32(), llvm::IRBuilderBase::CreatePointerCast(), llvm::IRBuilderBase::CreateRetVoid(), dbgs(), DL, dyn_cast(), llvm::ArrayRef< T >::empty(), llvm::Instruction::eraseFromParent(), GEP, llvm::ArrayType::get(), llvm::ConstantPointerNull::get(), llvm::FunctionType::get(), llvm::PointerType::get(), llvm::PoisonValue::get(), llvm::Function::getFunctionType(), llvm::Value::getName(), llvm::Value::getType(), llvm::Type::getVoidTy(), llvm::GlobalValue::InternalLinkage, LLVM_DEBUG, make_early_inc_range(), llvm::GlobalValue::NotThreadLocal, llvm::FunctionType::params(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::User::replaceUsesOfWith(), and llvm::ArrayRef< T >::size().

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

◆ lowerLoongArchMachineInstrToMCInst()

bool llvm::lowerLoongArchMachineInstrToMCInst ( const MachineInstr * MI,
MCInst & OutMI,
AsmPrinter & AP )

◆ lowerLoongArchMachineOperandToMCOperand()

◆ lowerObjectSizeCall() [1/2]

◆ lowerObjectSizeCall() [2/2]

Value * 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 645 of file MemoryBuiltins.cpp.

References DL, and lowerObjectSizeCall().

Referenced by lowerConstantIntrinsics(), lowerObjectSizeCall(), llvm::InstCombinerImpl::visitAllocSite(), and llvm::InstCombinerImpl::visitCallInst().

◆ LowerPPCMachineInstrToMCInst()

void llvm::LowerPPCMachineInstrToMCInst ( const MachineInstr * MI,
MCInst & OutMI,
AsmPrinter & AP )

◆ LowerPPCMachineOperandToMCOperand()

◆ lowerUnaryVectorIntrinsicAsLoop()

◆ LowerVEMachineInstrToMCInst()

void llvm::LowerVEMachineInstrToMCInst ( const MachineInstr * MI,
MCInst & OutMI,
AsmPrinter & AP )

◆ LOX10()

unsigned llvm::LOX10 ( int64_t imm)
inlinestatic

Definition at line 185 of file Sparc.h.

References LO10().

Referenced by replaceFI().

◆ M0()

◆ M1()

◆ machineFunctionIsIllegal()

const MachineInstr * llvm::machineFunctionIsIllegal ( const MachineFunction & MF)

Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise.

Definition at line 453 of file LegalizerInfo.cpp.

References llvm::TargetSubtargetInfo::getLegalizerInfo(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), isPreISelGenericOpcode(), MBB, MI, and MRI.

Referenced by llvm::RegBankSelect::checkFunctionIsLegal(), and llvm::InstructionSelect::selectMachineFunction().

◆ machineToStr()

◆ Make_64()

uint64_t llvm::Make_64 ( uint32_t High,
uint32_t Low )
constexpr

Make a 64-bit integer from a high / low pair of 32-bit integers.

Definition at line 169 of file MathExtras.h.

References High, and Low.

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), 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 634 of file STLExtras.h.

References adl_begin(), adl_end(), make_range(), and Range.

Referenced by addImplicitDefs(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::WindowScheduler::backupMBB(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), llvm::Combiner::combineMachineInstrs(), computeVirtualCallSiteTypeInfoMap(), llvm::VPlanTransforms::convertToAbstractRecipes(), llvm::VPlanTransforms::convertToConcreteRecipes(), convertToRelativeLookupTables(), createOutlinedFunction(), cse(), llvm::at::deleteAll(), DeleteDeadIFuncs(), deleteDeadLoop(), llvm::ConnectedVNInfoEqClasses::Distribute(), doCallSiteSplitting(), DoLowering(), dropTypeTests(), eliminateAvailableExternally(), eliminateDeadCode(), eliminateSwiftErrorAlloca(), llvm::ScheduleDAGSDNodes::EmitSchedule(), eraseLifetimeMarkersOnInputs(), expandBufferLoadIntrinsic(), llvm::VPlanTransforms::expandSCEVs(), expandSMEPPRToZPRSpillPseudos(), expansionIntrinsics(), llvm::CodeExtractor::extractCodeRegion(), DataScalarizerVisitor::findAndReplaceVectors, llvm::CodeExtractor::findOrCreateBlockForHoisting(), fixStackStores(), flattenArrays(), foldConsecutiveStores(), foldUnusualPatterns(), formLCSSAForInstructionsImpl(), forwardDeviceParams(), llvm::InstCombinerImpl::freelyInvertAllUsersOf(), HandleCallsInBlockInlinedThroughInvoke(), handleNDDOrNFInstructions(), llvm::InstCombinerImpl::handleUnreachableFrom(), hoistRegion(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), INITIALIZE_PASS(), InlineFunctionImpl(), inlineRetainOrClaimRVCalls(), insertSpills(), InsertStackProtectors(), licm(), loadCSE(), lowerExpectIntrinsic(), lowerGlobalIFuncUsersAsGlobalCtor(), lowerLoadRelative(), lowerObjCCall(), makeFunctionBodyUnreachable(), llvm::MachineRegisterInfo::markUsesInDebugValueAsUndef(), llvm::VPlanTransforms::materializeBuildVectors(), mergeBlocksIntoPredecessors(), mergeConstants(), mergeReplicateRegionsIntoSuccessors(), moveFunctionData(), moveInstructionsToTheBeginning(), moveLCSSAPhis(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::ShuffleBlockStrategy::mutate(), narrowToSingleScalarRecipes(), nullifySetjmp(), OptimizeAwayTrappingUsesOfLoads(), OptimizeEmptyGlobalAtExitDtors(), OptimizeFunctions(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAliases(), OptimizeGlobalVars(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), llvm::InstCombinerImpl::prepareWorklist(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), processSelect(), processUMulZExtIdiom(), promoteSingleBlockAlloca(), PropagateOperandBundles(), RegBankSelectHelper::reAssignRegBankOnDef(), redirectAllPredecessorsTo(), remapIndices(), llvm::MemorySSAUpdater::removeBlocks(), llvm::SIInstrInfo::removeBranch(), llvm::SIMachineFunctionInfo::removeDeadFrameIndices(), llvm::VPlanTransforms::removeDeadRecipes(), removeDebugInstrs(), removeEmptyCleanup(), removeIntrinsicUsers(), removeRedundantDbgInstrsUsingForwardScan(), removeRedundantExpandSCEVRecipes(), llvm::SCCPInstVisitor::removeSSACopies(), removeSSACopy(), removeUndefDbgAssignsFromEntryBlock(), replaceAllPrepares(), replaceCreatedSSACopys(), replaceDominatedUses(), replaceDominatedUsesWith(), llvm::coro::BaseCloner::replaceEntryBlock(), replaceLoopInvariantUses(), replaceNonLocalUsesWith(), replacePrepare(), replaceRegUsesAfterLoop(), llvm::MachineRegisterInfo::replaceRegWith(), llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(), replaceSubOverflowUses(), replaceVPBBWithIRVPBB(), llvm::VPlanTransforms::replicateByVF(), llvm::WindowScheduler::restoreMBB(), rewriteSelectInstMemOps(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::CtxProfAnalysis::run(), llvm::DeadArgumentEliminationPass::run(), llvm::ExtractGVPass::run(), llvm::JumpTableToSwitchPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), llvm::SimplifyTypeTestsPass::run(), RemoveLoadsIntoFakeUses::run(), runImpl(), runImpl(), runIPSCCP(), runOnBasicBlock(), setDanglingDebugValuesUndef(), simplifyBlends(), simplifyBranchConditionForVFAndUF(), llvm::SCCPSolver::simplifyInstsInBlock(), simplifyLoopAfterUnroll(), simplifyLoopInst(), llvm::VPlanTransforms::simplifyRecipes(), sinkLastInstruction(), sinkLoopInvariantInstructions(), llvm::VPBasicBlock::splitAt(), splitGlobals(), stripDeadPrototypes(), StripDebugInfo(), stripDebugInfo(), llvm::TailDuplicator::tailDuplicateAndUpdate(), llvm::TailDuplicator::tailDuplicateBlocks(), transformResourcePointers(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), tryToMoveFreeBeforeNullTest(), llvm::HexagonPacketizerList::unpacketizeSoloInstrs(), llvm::VPlanTransforms::unrollByUF(), UnrollRuntimeLoopRemainder(), unstackifyVRegsUsedInSplitBB(), unswitchNontrivialInvariants(), updatePublicTypeTestCalls(), UpgradeARCRuntime(), UpgradeCallsToIntrinsic(), DataScalarizerVisitor::visit(), llvm::InstCombinerImpl::visitBranchInst(), and llvm::VPDef::~VPDef().

◆ make_error()

template<typename ErrT, typename... ArgTs>
Error llvm::make_error ( ArgTs &&... Args)

Make a Error instance representing failure using the given error info type.

Definition at line 340 of file Error.h.

References Error.

Referenced by llvm::ListeningSocket::accept(), llvm::xray::Profile::addBlock(), llvm::orc::addFunctionPointerRelocationsToCurrentSymbol(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addGlobalInstructionSelect(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addInstSelector(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addIRTranslator(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addLegalizeMachineIR(), llvm::CodeGenPassBuilder< AMDGPUCodeGenPassBuilder, GCNTargetMachine >::addRegBankSelect(), llvm::msf::MSFBuilder::addStream(), llvm::InstrProfSymtab::addSymbolName(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::orc::LLJIT::applyDataLayout(), llvm::jitlink::aarch64::applyFixup(), llvm::jitlink::loongarch::applyFixup(), llvm::jitlink::ppc64::applyFixup(), llvm::jitlink::x86::applyFixup(), llvm::jitlink::x86_64::applyFixup(), llvm::jitlink::XCOFFJITLinker_ppc64::applyFixup(), llvm::jitlink::aarch32::applyFixupArm(), llvm::jitlink::aarch32::applyFixupData(), llvm::jitlink::aarch32::applyFixupThumb(), llvm::jitlink::applyPACSigningToModInitPointers(), llvm::object::Archive::Archive(), llvm::xray::Graph< VertexAttribute, EdgeAttribute, VI >::at(), llvm::xray::Graph< VertexAttribute, EdgeAttribute, VI >::at(), llvm::xray::Graph< VertexAttribute, EdgeAttribute, VI >::at(), llvm::xray::Graph< VertexAttribute, EdgeAttribute, VI >::at(), badOS(), llvm::HTTPServer::bind(), llvm::HTTPServer::bind(), llvm::TargetMachine::buildCodeGenPipeline(), buildDuplicateError(), llvm::jitlink::COFFLinkGraphBuilder::buildGraph(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::buildGraph(), llvm::jitlink::MachOLinkGraphBuilder::buildGraph(), llvm::orc::shared::WrapperFunction< SPSRetTagT(SPSTagTs...)>::call(), llvm::orc::shared::WrapperFunction< SPSRetTagT(SPSTagTs...)>::callAsync(), llvm::DWARFContext::checkAddressSizeSupported(), checkHashHdrVersion(), llvm::orc::checkMachORelocatableObject(), llvm::orc::checkMachORelocatableObject(), llvm::BinaryStream::checkOffsetForRead(), llvm::BinaryStreamRefBase< RefType, StreamType >::checkOffsetForRead(), llvm::WritableBinaryStream::checkOffsetForWrite(), llvm::msf::MSFBuilder::commit(), llvm::pdb::DbiStreamBuilder::commit(), llvm::pdb::DbiModuleDescriptorBuilder::commitSymbolStream(), computeMemberData(), llvm::codeview::consume(), llvm::codeview::consume(), llvm::codeview::consume_numeric(), llvm::vfs::convertToOutputError(), llvm::vfs::convertToTempFileOutputError(), llvm::InstrProfCorrelatorImpl< IntPtrT >::correlateProfileData(), llvm::jitlink::InProcessMemoryManager::Create(), llvm::orc::COFFPlatform::Create(), llvm::orc::ELFNixPlatform::Create(), llvm::orc::EPCIndirectionUtils::Create(), llvm::orc::FDSimpleRemoteEPCTransport::Create(), llvm::orc::JITLinkRedirectableSymbolManager::Create(), llvm::orc::JITLinkReentryTrampolines::Create(), llvm::orc::MachOPlatform::Create(), llvm::orc::PerfSupportPlugin::Create(), llvm::orc::shared::WrapperFunctionCall::Create(), llvm::orc::SharedMemoryMapper::Create(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::CodeGenDataReader::create(), llvm::coverage::BinaryCoverageReader::create(), llvm::IndexedInstrProfReader::create(), llvm::InstrProfReader::create(), llvm::memprof::RawMemProfReader::create(), llvm::msf::MSFBuilder::create(), llvm::TarWriter::create(), llvm::coverage::BinaryCoverageReader::createCoverageReaderFromBuffer(), createDirectoriesOnDemand(), llvm::orc::createDWARFContext(), createError(), createError(), createError(), llvm::object::createError(), llvm::vfs::OutputBackend::createFile(), llvm::pdb::DIASession::createFromExe(), llvm::pdb::NativeSession::createFromExe(), llvm::pdb::DIASession::createFromPdb(), llvm::mca::InstrBuilder::createInstruction(), llvm::jitlink::createLinkGraphFromCOFFObject(), llvm::jitlink::createLinkGraphFromELFObject(), llvm::jitlink::createLinkGraphFromELFObject_aarch32(), llvm::jitlink::createLinkGraphFromMachOObject(), llvm::jitlink::createLinkGraphFromObject(), llvm::jitlink::createLinkGraphFromXCOFFObject(), llvm::orc::createLocalCompileCallbackManager(), llvm::orc::createLocalLazyCallThroughManager(), llvm::object::ObjectFile::createMachOObjectFile(), llvm::CodeGenTargetMachineImpl::createMCStreamer(), llvm::vfs::OutputFile::createProxy(), llvm::MachO::createRegexFromGlob(), createResolverError(), createStringError(), llvm::orc::JITTargetMachineBuilder::createTargetMachine(), llvm::ListeningSocket::createUnix(), llvm::object::WindowsResource::createWindowsResource(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), decodeError(), llvm::orc::ORCPlatformSupport::deinitialize(), llvm::codeview::serialize_null_term_string_array_impl::deserialize(), llvm::IndexedMemProfReader::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSRetTagT, RetT >::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSError, Error >::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSExpected< SPSTagT >, Expected< T > >::deserialize(), llvm::vfs::OutputFile::discard(), llvm::logicalview::LVReader::doLoad(), llvm::InstrProfCorrelatorImpl< IntPtrT >::dumpYaml(), llvm::object::Elf_Note_Iterator_Impl< ELFType< E, Is64 > >::ELFFile, llvm::orc::enableDebuggerSupport(), error(), error(), llvm::CodeGenDataReader::error(), llvm::CodeGenDataReader::error(), llvm::InstrProfReader::error(), llvm::InstrProfReader::error(), llvm::remarks::BitstreamBlockParserHelperBase::error(), llvm::remarks::YAMLRemarkParser::error(), llvm::remarks::YAMLRemarkParser::error(), ErrorFromHResult(), llvm::NumericVariableUse::eval(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), expand(), llvm::xray::Profile::expandPath(), exprDiv(), llvm::DWARFAbbreviationDeclaration::extract(), llvm::MachO::InterfaceFile::extract(), llvm::hlsl::rootsig::extractEnumValue(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::RuntimeDyldImpl::finalizeAsync(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::pdb::GSIStreamBuilder::finalizeMsfLayout(), llvm::jitlink::MachOLinkGraphBuilder::findSectionByIndex(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByAddress(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByIndex(), llvm::lto::findThinLTOModule(), llvm::codeview::forEachCodeViewRecord(), llvm::jitlink::ELFLinkGraphBuilder< ELFType< DataEndianness, false > >::forEachRelaRelocation(), llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation(), llvm::jitlink::ELFLinkGraphBuilder< ELFType< DataEndianness, false > >::forEachRelRelocation(), llvm::CodeViewYAML::LeafRecord::fromCodeViewRecord(), llvm::CodeViewYAML::SymbolRecord::fromCodeViewSymbol(), llvm::orc::shared::detail::fromSPSSerializable(), llvm::orc::shared::detail::fromSPSSerializable(), llvm::ErrorDiagnostic::get(), llvm::InstrProfCorrelator::get(), llvm::InstrProfCorrelatorImpl< IntPtrT >::get(), llvm::MachO::TextAPIReader::get(), llvm::DWARFDebugAbbrev::getAbbreviationDeclarationSet(), llvm::DWARFFormValue::getAsCString(), llvm::orc::ExecutorProcessControl::getBootstrapMapValue(), llvm::orc::ExecutorProcessControl::getBootstrapSymbols(), llvm::memprof::getCanonicalName(), llvm::jitlink::BasicLayout::getContiguousPageBasedLayoutSizes(), getCUIdentifiers(), llvm::orc::JITDylib::getDFSLinkOrder(), llvm::orc::getDylibInterface(), llvm::orc::getDylibInterfaceFromDylib(), llvm::jitlink::getELFRelocationType(), llvm::DWARFDebugNames::NameIndex::getEntry(), llvm::InstrProfReader::getError(), llvm::yaml::FrameIndex::getFI(), getFileName(), llvm::pdb::DbiModuleList::getFileName(), llvm::object::WindowsResource::getHeadEntry(), llvm::pdb::PDBStringTable::getIDForString(), getIndexedString(), llvm::IndexedInstrProfReader::getInstrProfRecord(), getInstrProfSection(), llvm::jitlink::getJITLinkEdgeKind(), llvm::orc::getMachOSliceRangeForTriple(), llvm::ExpressionFormat::getMatchingString(), llvm::IndexedMemProfReader::getMemProfRecord(), getMemProfRecordV2(), llvm::pdb::getModuleDebugStream(), llvm::pdb::getModuleDebugStream(), llvm::pdb::NativeSession::getModuleDebugStream(), llvm::pdb::InfoStream::getNamedStreamIndex(), llvm::pdb::PDBFileBuilder::getNamedStreamIndex(), llvm::object::MachOUniversalBinary::getObjectForArch(), llvm::jitlink::getOrCreateLocalMachOHeader(), llvm::FileCheckPatternContext::getPatternVarValue(), llvm::pdb::PDBFile::getPDBIpiStream(), getPdbPathFromExe(), llvm::InstrProfReaderIndex< HashTableImpl >::getRecords(), llvm::InstrProfReaderIndex< HashTableImpl >::getRecords(), llvm::object::COFFObjectFile::getRvaPtr(), getSocketFD(), llvm::pdb::DbiStreamBuilder::getSourceFileNameIndex(), llvm::TargetPassConfig::getStartStopInfo(), llvm::DWARFUnit::getStringOffsetSectionItem(), llvm::object::DXContainerObjectFile::getSymbolAddress(), llvm::object::DXContainerObjectFile::getSymbolFlags(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::getSymbolLinkageAndScope(), llvm::object::DXContainerObjectFile::getSymbolName(), llvm::object::DXContainerObjectFile::getSymbolSection(), llvm::object::DXContainerObjectFile::getSymbolType(), llvm::jitlink::COFFLinkGraphBuilder::graphifySections(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySections(), llvm::jitlink::COFFLinkGraphBuilder::graphifySymbols(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), handleMaybeNoDataFoundError(), llvm::orc::SimpleRemoteEPC::handleMessage(), llvm::orc::SimpleRemoteEPCServer::handleMessage(), llvm::pdb::hashTagRecord(), llvm::object::MinidumpFile::Memory64Iterator::inc(), initAndLookupTarget(), llvm::codeview::DebugCrossModuleExportsSubsectionRef::initialize(), llvm::codeview::DebugFrameDataSubsectionRef::initialize(), llvm::orc::ORCPlatformSupport::initialize(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::initialize(), jitLinkForORC(), llvm::vfs::OutputFile::keep(), llvm::jitlink::link(), llvm::jitlink::link_COFF(), llvm::jitlink::link_ELF(), llvm::jitlink::link_MachO(), llvm::HTTPServer::listen(), llvm::orc::DynamicLibrarySearchGenerator::Load(), llvm::PassPlugin::Load(), llvm::coverage::CoverageMapping::load(), llvm::pdb::const_iterator< SrcHeaderBlockEntry >::load(), llvm::pdb::NamedStreamMap::load(), load(), loadBinaryFormat(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::loadClangModule(), llvm::pdb::loadDataForEXE(), llvm::pdb::loadDataForPDB(), LoadDIA(), llvm::orc::loadLinkableFile(), llvm::orc::loadLinkableSliceFromMachOUniversalBinary(), llvm::orc::loadMachORelocatableObject(), loadObj(), loadPdbFile(), llvm::xray::loadProfile(), loadSectionContribs(), loadTestingFormat(), llvm::xray::loadTrace(), llvm::xray::loadTraceFile(), loadYAML(), llvm::LegacyJITSymbolResolver::lookup(), llvm::orc::rt_bootstrap::SimpleExecutorDylibManager::lookup(), lookupAllocatableSection(), llvm::orc::lookupAndRecordAddrs(), lookupSections(), llvm::jitlink::aarch64::lowerPointer64AuthEdgesToSigningFunction(), llvm::object::MachOUniversalBinary::MachOUniversalBinary(), llvm::jitlink::makeAlignmentError(), llvm::dxil::makeOpError(), llvm::jitlink::makeTargetOutOfRangeError(), llvm::orc::makeUnexpectedEOFError(), malformedError(), malformedError(), malformedError(), llvm::codeview::CodeViewRecordIO::mapEnum(), llvm::codeview::CodeViewRecordIO::mapGuid(), llvm::Pattern::match(), llvm::MachO::InterfaceFile::merge(), llvm::windows_manifest::WindowsManifestMerger::WindowsManifestMergerImpl::merge(), llvm::InstrProfWriter::mergeProfileKind(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::remarks::BitstreamRemarkParser::next(), llvm::remarks::YAMLRemarkParser::next(), llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyResolved(), llvm::lsp::MessageHandler::onCall(), llvm::orc::rt_bootstrap::SimpleExecutorDylibManager::open(), llvm::pdb::InputFile::open(), llvm::codeview::LineColumnExtractor::operator()(), llvm::jitlink::EHFrameEdgeFixer::operator()(), llvm::orc::ExecutorNativePlatform::operator()(), llvm::orc::LoadAndLinkDynLibrary::operator()(), llvm::orc::SimpleCompiler::operator()(), llvm::coverage::CoverageMappingIterator::operator*(), llvm::coverage::CoverageMappingIterator::operator->(), llvm::ifs::overrideIFSTarget(), llvm::jitlink::COFFDirectiveParser::parse(), llvm::lsp::MessageHandler::parse(), llvm::PassBuilder::parseAAPipeline(), llvm::MachO::parseAliasList(), parseAMDGPUAtomicOptimizerStrategy(), parseAMDGPUAttributorPassOptions(), parseBraceExpansions(), parseCachePruningPolicy(), parseDuration(), llvm::object::DirectX::parseFailed(), parseFailed(), llvm::pdb::PDBFile::parseFileHeaders(), parseInfoSectionUnitHeader(), parseOptLevelParam(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parsePassPipeline(), llvm::hlsl::rootsig::MetadataParser::ParseRootSignature(), llvm::PassBuilder::parseSinglePassOption(), llvm::pdb::PDBFile::parseStreamData(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::prepare(), llvm::orc::LLJITBuilderState::prepareForConstruction(), llvm::jitlink::CompactUnwindManager< CURecTraits >::prepareForPrune(), llvm::orc::preserveDebugSections(), llvm::object::DXContainerObjectFile::printSymbolName(), llvm::jitlink::CompactUnwindManager< CURecTraits >::processAndReserveUnwindInfo(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::RuntimeDyldMachOARM::processRelocationRef(), llvm::RuntimeDyldMachOI386::processRelocationRef(), llvm::RuntimeDyldMachOX86_64::processRelocationRef(), llvm::coverage::RawCoverageFilenamesReader::read(), llvm::msgpack::Reader::read(), llvm::object::DirectX::RootDescriptorView::read(), llvm::SymbolRemappingReader::read(), llvm::jitlink::aarch32::readAddendArm(), llvm::jitlink::aarch32::readAddendData(), llvm::jitlink::aarch32::readAddendThumb(), llvm::BinaryStreamReader::readArray(), llvm::BinaryStreamReader::readArray(), readBinaryIdsInternal(), llvm::irsymtab::readBitcode(), llvm::BinaryItemStream< T, Traits >::readBytes(), llvm::jitlink::readCFIRecordLength(), llvm::cl::ExpansionContext::readConfigFile(), readCoverageMappingData(), llvm::codeview::readCVRecordFromStream(), llvm::MachO::DylibReader::readFile(), llvm::IndexedCGData::Header::readFromBuffer(), llvm::IndexedInstrProf::Header::readFromBuffer(), readGSIHashBuckets(), readGSIHashHeader(), readGSIHashRecords(), llvm::IndexedInstrProfReader::readHeader(), llvm::ifs::readIFSFromBuffer(), readInitExpr(), llvm::coverage::RawCoverageReader::readIntMax(), llvm::memprof::readMemProfSchema(), llvm::coverage::BinaryCoverageReader::readNextRecord(), llvm::memprof::MemProfReader::readNextRecord(), llvm::object::DirectX::RootParameterView::readParameter(), readSection(), llvm::coverage::RawCoverageReader::readSize(), llvm::pdb::readSparseBitVector(), llvm::BinaryStreamReader::readStreamRef(), llvm::coverage::RawCoverageReader::readULEB128(), llvm::orc::ExecutionSession::registerJITDispatchHandlers(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::release(), llvm::pdb::DbiStream::reload(), llvm::pdb::InfoStream::reload(), llvm::pdb::InjectedSourceStream::reload(), llvm::pdb::ModuleDebugStreamRef::reload(), llvm::pdb::PublicsStream::reload(), llvm::pdb::TpiStream::reload(), llvm::jitlink::ppc64::relocateHalf16(), llvm::MachO::InterfaceFile::remove(), llvm::orc::JITDylib::remove(), llvm::object::replace(), llvm::ErrorReported::reportedOrSuccess(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::SharedMemoryMapper::reserve(), llvm::orc::shared::WrapperFunctionCall::runWithSPSRet(), llvm::pdb::PDBFile::safelyCreateIndexedStream(), llvm::pdb::NativeSession::searchForPdb(), sectionOverflowErrorOrWarning(), llvm::orc::FDSimpleRemoteEPCTransport::sendMessage(), llvm::pdb::PDBFile::setBlockData(), llvm::msf::MSFBuilder::setBlockMapAddr(), llvm::memprof::DataAccessProfData::setDataAccessProfile(), llvm::msf::MSFBuilder::setDirectoryBlocksHint(), llvm::orc::LLJIT::setUpGenericLLVMIRPlatform, setupLLVMOptimizationRemarks(), setupLLVMOptimizationRemarks(), llvm::BinaryStreamReader::skip(), llvm::jitlink::splitCompactUnwindBlocks(), stringErr(), llvm::lto::thinBackend(), llvm::MCDwarfLineTableHeader::tryGetFile(), unsupportedBatch(), llvm::ifs::validateIFSTarget(), llvm::orc::ELFDebugObjectSection< ELFT >::validateInBounds(), llvm::InstrProfWriter::validateRecord(), llvm::msf::validateSuperBlock(), llvm::mca::verifyOperands(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::object::WasmObjectFile::WasmObjectFile(), llvm::orc::ResourceTracker::withResourceKeyDo(), write(), llvm::BinaryStreamWriter::writeArray(), llvm::AppendingBinaryByteStream::writeBytes(), llvm::object::writeImportLibrary(), writeMemProf(), llvm::pdb::writeSparseBitVector(), llvm::jitlink::CompactUnwindManager< CURecTraits >::writeUnwindInfo(), and llvm::orc::DefinitionGenerator::~DefinitionGenerator().

◆ make_error_code() [1/5]

◆ make_error_code() [2/5]

std::error_code llvm::make_error_code ( cgdata_error E)
inline

Definition at line 63 of file CodeGenData.h.

References cgdata_category(), and E().

◆ make_error_code() [3/5]

std::error_code llvm::make_error_code ( errc E)
inline

Definition at line 82 of file Errc.h.

References E().

◆ make_error_code() [4/5]

std::error_code llvm::make_error_code ( instrprof_error E)
inline

Definition at line 446 of file InstrProf.h.

References E(), and instrprof_category().

◆ make_error_code() [5/5]

std::error_code llvm::make_error_code ( sampleprof_error E)
inline

Definition at line 68 of file SampleProf.h.

References E(), and sampleprof_category().

◆ make_fallible_end()

template<typename Underlying>
fallible_iterator< Underlying > llvm::make_fallible_end ( Underlying E)

Convenience wrapper to make a fallible_iterator end value from an instance of an underlying iterator.

Definition at line 228 of file fallible_iterator.h.

References E(), and llvm::fallible_iterator< Underlying >::end().

Referenced by llvm::object::SFrameParser< E >::fres(), and make_fallible_range().

◆ make_fallible_itr()

template<typename Underlying>
fallible_iterator< Underlying > llvm::make_fallible_itr ( Underlying I,
Error & Err )

Convenience wrapper to make a fallible_iterator value from an instance of an underlying iterator and an Error reference.

Definition at line 221 of file fallible_iterator.h.

References I, and llvm::fallible_iterator< Underlying >::itr().

Referenced by llvm::object::SFrameParser< E >::fres(), and make_fallible_range().

◆ make_fallible_range()

template<typename Underlying>
iterator_range< fallible_iterator< Underlying > > llvm::make_fallible_range ( Underlying I,
Underlying E,
Error & Err )

Definition at line 234 of file fallible_iterator.h.

References E(), I, make_fallible_end(), make_fallible_itr(), and make_range().

◆ 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 552 of file STLExtras.h.

References adl_begin(), adl_end(), B(), E(), make_range(), and Range.

Referenced by llvm::mca::RegisterFile::addRegisterWrite(), llvm::MachineInstr::all_defs(), llvm::MachineInstr::all_defs(), llvm::MachineInstr::all_uses(), llvm::MachineInstr::all_uses(), llvm::objcopy::elf::Object::allocSections(), llvm::VPBlockUtils::blocksOnly(), llvm::LoopBodyTraits::child_begin(), llvm::LoopBodyTraits::child_end(), cloneCfiPrologue(), llvm::DWARFContext::compile_units(), llvm::DWARFContext::dwo_compile_units(), llvm::jitlink::Block::edges_at(), llvm::jitlink::Block::edges_at(), llvm::MachO::SymbolSet::exports(), filter_to_vector(), filterDbgVars(), llvm::RandomIRBuilder::findOrCreateGlobalVariable(), llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), getDebugOperandsForRegHelper(), llvm::MachineFunction::getEntryValueVariableDbgInfo(), llvm::MachineFunction::getInStackSlotVariableDbgInfo(), llvm::MachineFunction::getInStackSlotVariableDbgInfo(), llvm::StackLifetime::getMarkers(), getUniqueExitBlocksHelper(), instructionsWithoutDebug(), TransferTracker::ResolvedDbgValue::loc_indices(), llvm::InsertCFGStrategy::mutate(), phys_regs_and_masks(), llvm::MachO::SymbolSet::reexports(), saveFilteredNewMIBNodes(), llvm::MachO::InterfaceFile::targets(), llvm::MachO::Symbol::targets(), llvm::mca::RegisterFile::tryEliminateMoveOrSwap(), and llvm::MachO::SymbolSet::undefineds().

◆ make_first_range()

◆ make_pointee_range()

◆ make_pointer_range()

◆ make_range() [1/2]

template<typename T>
iterator_range< T > llvm::make_range ( std::pair< T, T > p)

Definition at line 74 of file iterator_range.h.

References iterator_range().

◆ make_range() [2/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 70 of file iterator_range.h.

References iterator_range(), and T.

Referenced by llvm::jitlink::LinkGraph::absolute_symbols(), accessedBetween(), llvm::GCStatepointInst::actual_args(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::Module::aliases(), llvm::Module::aliases(), llvm::SelectionDAG::allnodes(), llvm::SelectionDAG::allnodes(), llvm::mca::Scheduler::analyzeDataDependencies(), llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::codeview::InlineSiteSym::annotations(), applyDebugify(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), llvm::CallBase::args(), llvm::CallBase::args(), llvm::Function::args(), llvm::Function::args(), llvm::sandboxir::CallBase::args(), llvm::sandboxir::CallBase::args(), llvm::object::DynamicRelocRef::arm64x_relocs(), llvm::DWARFDie::attributes(), llvm::object::COFFObjectFile::base_relocs(), llvm::object::MachOObjectFile::bindTable(), llvm::GenericCycle< ContextT >::blocks(), llvm::jitlink::LinkGraph::blocks(), llvm::jitlink::LinkGraph::blocks(), llvm::jitlink::Section::blocks(), llvm::jitlink::Section::blocks(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::MemoryPhi::blocks(), llvm::MemoryPhi::blocks(), llvm::PHINode::blocks(), llvm::sandboxir::PHINode::blocks(), llvm::WebAssemblyException::blocks(), llvm::GCOVFunction::blocksRange(), breadth_first(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::SmallPtrSetImplBase::buckets(), llvm::SmallPtrSetImplBase::buckets(), llvm::StringMapImpl::buckets(), buildClonedLoopBlocks(), BuildInstOrderMap(), llvm::CallBase::bundle_op_infos(), llvm::CallBase::bundle_op_infos(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::StringRef::bytes(), llvm::ResourceManager::calculateResMII(), llvm::DXILResourceMap::calls(), llvm::LazyCallGraph::EdgeSequence::calls(), canRenameComdat(), canSplitCallSite(), llvm::sandboxir::SwitchInst::cases(), llvm::sandboxir::SwitchInst::cases(), llvm::SwitchInst::cases(), llvm::SwitchInst::cases(), llvm::DXILResourceMap::cbuffers(), llvm::DXILResourceMap::cbuffers(), llvm::SchedBoundary::checkHazard(), llvm::LoopBodyTraits::child_begin(), llvm::LoopBodyTraits::child_end(), children(), llvm::DIE::children(), llvm::DIE::children(), llvm::DomTreeNodeBase< BlockT >::children(), llvm::DomTreeNodeBase< BlockT >::children(), llvm::DWARFDie::children(), llvm::GenericCycle< ContextT >::children(), llvm::object::Archive::children(), children_edges(), clearKillFlags(), cloneAndAdaptNoAliasScopes(), CloneAndPruneIntoFromInst(), cloneCfiPrologue(), llvm::DbgMarker::cloneDebugInfoFrom(), llvm::ModuleSlotTracker::collectMDNodes(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), llvm::DebugInfoFinder::compile_units(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), computeLiveInValues(), computeLTOCacheKey(), const_mi_bundle_ops(), llvm::StackMapParser< Endianness >::constants(), containsIrreducibleCFG(), createOutlinedFunction(), createReplicateRegion(), llvm::VPlan::createVPIRBasicBlock(), llvm::OnDiskIterableChainedHashTable< InstrProfLookupTrait >::data(), llvm::CallBase::data_ops(), llvm::CallBase::data_ops(), llvm::sandboxir::CallBase::data_ops(), llvm::sandboxir::CallBase::data_ops(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::DataDependenceGraph::DataDependenceGraph(), 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::jitlink::LinkGraph::defined_symbols(), llvm::jitlink::LinkGraph::defined_symbols(), llvm::object::COFFObjectFile::delay_import_directories(), llvm::DenseMapIterator< KeyT, ValueT, KeyInfoT, BucketT >::DenseMapIterator< KeyT, ValueT, KeyInfoT, Bucket, false >, llvm::GCStatepointInst::deopt_operands(), depth_first(), depth_first_ext(), detectPopcountIdiom(), detectShiftUntilLessThanIdiom(), detectShiftUntilZeroIdiom(), drop_begin(), drop_end(), llvm::GCOVBlock::dsts(), llvm::BPFunctionNode::dump(), llvm::SelectionDAG::dump(), llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), llvm::object::COFFObjectFile::dynamic_relocs(), llvm::object::Archive::ec_symbols(), llvm::jitlink::Block::edges(), llvm::jitlink::Block::edges(), llvm::RegionBase< Tr >::elements(), llvm::RegionBase< Tr >::elements(), llvm::SystemZHazardRecognizer::emitInstruction(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::HexagonPacketizerList::endPacket(), llvm::AppleAcceleratorTable::entries(), llvm::GenericCycle< ContextT >::entries(), llvm::Registry< GCMetadataPrinter >::entries(), llvm::AppleAcceleratorTable::equal_range(), llvm::DWARFDebugNames::equal_range(), llvm::DWARFDebugNames::NameIndex::equal_range(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::object::COFFObjectFile::export_directories(), llvm::MachO::SymbolSet::exports(), llvm::object::MachOObjectFile::exports(), llvm::object::MachOObjectFile::external_relocations(), llvm::jitlink::LinkGraph::external_symbols(), llvm::opt::ArgList::filtered(), llvm::opt::ArgList::filtered_reverse(), llvm::pdb::GSIHashStreamBuilder::finalizeBuckets(), llvm::AddressProbesMap::find(), llvm::AddressProbesMap::find(), FindAvailableLoadedValue(), findIrreducibleHeaders(), findRedundantFlagInstr(), fixStackStores(), llvm::object::MachOObjectFile::fixupTable(), foldLoadsRecursive(), llvm::CfiFunctionIndex::forGuid(), llvm::Module::functions(), llvm::Module::functions(), llvm::StackMapParser< Endianness >::functions(), llvm::GCStatepointInst::gc_live(), llvm::GCStatepointInst::gc_transition_args(), generateGatherLanePattern(), llvm::at::getAssignmentInsts(), llvm::MachineFunction::getCalledGlobals(), llvm::TargetInstrInfo::getCallFrameSizeAt(), getCallInstr(), llvm::orc::getConstructors(), llvm::coverage::CoverageMapping::getCoveredFunctions(), llvm::coverage::CoverageMapping::getCoveredFunctions(), llvm::DbgMarker::getDbgRecordRange(), llvm::DbgMarker::getDbgRecordRange(), llvm::orc::getDestructors(), llvm::object::ELFObjectFile< ELFT >::getDynamicSymbolIterators(), llvm::DbgMarker::getEmptyDbgRecordRange(), llvm::object::MinidumpFile::getExceptionStreams(), getFirstCompositeRange(), getInsertionRange(), llvm::InterleavedAccessInfo::getInterleaveGroups(), llvm::omp::getLeafOrCompositeConstructs(), llvm::GraphDiff< MachineBasicBlock *, false >::getLegalizedUpdates(), llvm::coverage::getLineCoverageStats(), getLivePhysRegsUpTo(), llvm::sandboxir::VecUtils::getLowest(), llvm::object::MinidumpFile::getMemory64List(), llvm::object::MinidumpFile::getMemoryInfoList(), llvm::DiagnosticInfoOptimizationBase::getMsg(), llvm::objcopy::coff::Object::getMutableSections(), llvm::objcopy::coff::Object::getMutableSymbols(), llvm::rdf::Liveness::getNearestAliasedRef(), llvm::SchedBoundary::getNextResourceCycle(), llvm::ModuleSummaryIndex::getOrInsertTypeIdSummary(), llvm::AArch64RegisterInfo::getRegAllocationHints(), llvm::WindowScheduler::getScheduleRange(), getSplatIndex(), llvm::orc::getStaticInitGVs(), llvm::pdb::SymbolStream::getSymbols(), llvm::GenericUniformityInfo< ContextT >::getTemporalDivergenceList(), llvm::ModuleSummaryIndex::getTypeIdSummary(), getVFSEntries(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), llvm::DebugInfoFinder::global_variables(), llvm::Module::globals(), llvm::Module::globals(), llvm::DenseMap< const BlockT *, const BlockT * >::grow(), llvm::SmallDenseMap< LocPair, CacheEntry, 8 >::grow(), llvm::CfiFunctionIndex::guids(), llvm::CatchSwitchInst::handlers(), llvm::CatchSwitchInst::handlers(), llvm::sandboxir::CatchSwitchInst::handlers(), llvm::sandboxir::CatchSwitchInst::handlers(), llvm::InstCombinerImpl::handleUnreachableFrom(), identifyNoAliasScopesToClone(), llvm::Module::ifuncs(), llvm::Module::ifuncs(), llvm::object::COFFObjectFile::import_directories(), llvm::object::DelayImportDirectoryEntryRef::imported_symbols(), llvm::object::ImportDirectoryEntryRef::imported_symbols(), llvm::VPPhiAccessors::incoming_values(), llvm::ExtractValueInst::indices(), llvm::GEPOperator::indices(), llvm::GEPOperator::indices(), llvm::GetElementPtrInst::indices(), llvm::GetElementPtrInst::indices(), llvm::InsertValueInst::indices(), llvm::sandboxir::GetElementPtrInst::indices(), INITIALIZE_PASS(), llvm::ScheduleDAGInstrs::initSUnits(), InlineFunctionImpl(), inlineRetainOrClaimRVCalls(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), instrs(), instructionsWithoutDebug(), llvm::HexagonShuffler::insts(), llvm::HexagonShuffler::insts(), llvm::HexagonShuffler::insts(), llvm::HexagonShuffler::insts(), llvm::sandboxir::Region::insts(), inverse_children(), inverse_depth_first(), inverse_depth_first_ext(), inverse_nodes(), inverse_post_order(), inverse_post_order_ext(), isEFLAGSLive(), isGuaranteedToTransferExecutionToSuccessor(), llvm::AAIsDead::isLiveInstSet(), llvm::MachineRegisterInfo::isPhysRegModified(), isPhysRegUsedAfter(), isPrintableString(), llvm::IRSimilarity::IRSimilarityCandidate::isSimilar(), isValidAssumeForContext(), llvm::AA::isValidAtPosition(), llvm::OnDiskIterableChainedHashTable< InstrProfLookupTrait >::keys(), llvm::StringMap< std::nullopt_t, AllocatorTy >::keys(), llvm::MachineBasicBlock::liveins(), llvm::MachineBasicBlock::liveins_dbg(), llvm::MachineBasicBlock::liveouts(), llvm::StackMapParser< Endianness >::RecordAccessor::liveouts(), llvm::object::MachOObjectFile::load_commands(), LiveDebugValues::MLocTracker::locations(), llvm::StackMapParser< Endianness >::RecordAccessor::locations(), llvm::object::ImportDirectoryEntryRef::lookup_table_symbols(), llvm::vfs::RedirectingFileSystemParser::lookupOrCreateEntry(), make_early_inc_range(), make_fallible_range(), make_filter_range(), make_pointee_range(), make_pointer_range(), map_range(), llvm::Value::materialized_users(), llvm::Value::materialized_users(), llvm::Value::materialized_uses(), llvm::Value::materialized_uses(), mayBeVisibleThroughUnwinding(), llvm::BlockFrequencyInfoImplBase::LoopData::members(), llvm::EquivalenceClasses< BasicBlock * >::members(), llvm::EquivalenceClasses< BasicBlock * >::members(), llvm::sandboxir::MemDGNode::memPreds(), llvm::sandboxir::MemDGNode::memSuccs(), mi_bundle_ops(), llvm::object::IRObjectFile::modules(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::ShuffleBlockStrategy::mutate(), llvm::Module::named_metadata(), llvm::Module::named_metadata(), nodes(), llvm::object::ELFFile< ELF32LE >::notes(), llvm::object::ELFFile< ELF32LE >::notes(), llvm::object::MachOUniversalBinary::objects(), llvm::object::TapiUniversal::objects(), llvm::SDNode::op_values(), llvm::User::operand_values(), llvm::User::operand_values(), llvm::NamedMDNode::operands(), llvm::NamedMDNode::operands(), llvm::sandboxir::User::operands(), llvm::sandboxir::User::operands(), operator<<(), operator<<(), llvm::X86InstrInfo::optimizeCompareInstr(), optimized_def_chain(), llvm::object::DirectX::RootSignature::param_headers(), passingValueIsAlwaysUndefined(), pathHasTraversal(), llvm::MachineBasicBlock::phis(), llvm::VPBasicBlock::phis(), post_order(), post_order_ext(), llvm::LazyCallGraph::postorder_ref_sccs(), llvm::MachineBasicBlock::predecessors(), llvm::MachineBasicBlock::predecessors(), llvm::sandboxir::DGNode::preds(), llvm::SystemZInstrInfo::prepareCompareSwapOperands(), llvm::LiveRangeUpdater::print(), llvm::VPReplicateRecipe::print(), PrintByteList(), llvm::vfs::RedirectingFileSystem::printEntry(), programUndefinedIfUndefOrPoison(), PropagateCallSiteMetadata(), llvm::MustBeExecutedContextExplorer::range(), llvm::MustBeExecutedContextExplorer::range(), llvm::object::MachOObjectFile::rebaseTable(), rebuildLoopAfterUnswitch(), llvm::StackMapParser< Endianness >::records(), llvm::MachO::SymbolSet::reexports(), llvm::rdf::RegisterAggr::refs(), 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::DebugifyEachInstrumentation::registerCallbacks(), llvm::MCRegisterInfo::regunits(), llvm::object::SectionRef::relocations(), removeEmptyCleanup(), llvm::PHINode::removeIncomingValueIf(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::objcopy::elf::Object::removeSections(), replaceVPBBWithIRVPBB(), llvm::CoroEndResults::return_values(), llvm::CoroEndResults::return_values(), reverse(), llvm::DominatorTreeBase< BlockT, false >::roots(), llvm::DominatorTreeBase< BlockT, false >::roots(), llvm::BalancedPartitioning::run(), llvm::CFIFixup::runOnMachineFunction(), llvm::sandboxir::PackReuse::runOnRegion(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::DXContainerYAML::RootSignatureYamlDesc::samplers(), llvm::DXILResourceMap::samplers(), llvm::DXILResourceMap::samplers(), llvm::object::DirectX::RootSignature::samplers(), llvm::DebugInfoFinder::scopes(), llvm::jitlink::LinkGraph::sections(), llvm::jitlink::LinkGraph::sections(), llvm::BitVector::set_bits(), llvm::SmallBitVector::set_bits(), llvm::SmallPtrSetImplBase::small_buckets(), llvm::pdb::DbiModuleList::source_files(), llvm::VPBasicBlock::splitAt(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::GCOVBlock::srcs(), llvm::DXILResourceMap::srvs(), llvm::DXILResourceMap::srvs(), llvm::DebugInfoFinder::subprograms(), llvm::LiveInterval::subranges(), llvm::LiveInterval::subranges(), llvm::MCRegisterInfo::subregs(), llvm::MCRegisterInfo::subregs_inclusive(), llvm::pdb::ModuleDebugStreamRef::subsections(), llvm::BranchInst::successors(), llvm::BranchInst::successors(), llvm::IndirectBrInst::successors(), llvm::IndirectBrInst::successors(), llvm::MachineBasicBlock::successors(), llvm::MachineBasicBlock::successors(), llvm::sandboxir::BranchInst::successors(), llvm::sandboxir::BranchInst::successors(), llvm::MCRegisterInfo::superregs(), llvm::MCRegisterInfo::superregs_inclusive(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::pdb::InputFile::symbol_groups(), llvm::jitlink::Section::symbols(), llvm::jitlink::Section::symbols(), llvm::object::Archive::symbols(), llvm::pdb::ModuleDebugStreamRef::symbols(), llvm::TargetRegistry::targets(), llvm::MachineBasicBlock::terminators(), llvm::MachineBasicBlock::terminators(), llvm::GenericCycleInfo< MachineSSAContext >::toplevel_cycles(), llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes(), llvm::DebugInfoFinder::types(), llvm::pdb::TpiStream::types(), llvm::DXILResourceMap::uavs(), llvm::DXILResourceMap::uavs(), llvm::MachO::SymbolSet::undefineds(), llvm::rdf::RegisterAggr::units(), updateCGAndAnalysisManagerForPass(), llvm::AntiDepBreaker::UpdateDbgValues(), updatePostorderSequenceForEdgeInsertion(), 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::sandboxir::Value::users(), llvm::sandboxir::Value::users(), llvm::SDNode::users(), llvm::SDNode::users(), llvm::sandboxir::Value::uses(), llvm::sandboxir::Value::uses(), llvm::SDNode::uses(), llvm::SDNode::uses(), llvm::CoroSuspendRetconInst::value_operands(), llvm::CoroSuspendRetconInst::value_operands(), llvm::DIEValueList::values(), llvm::DIEValueList::values(), llvm::SDNode::values(), llvm::LiveRange::vnis(), llvm::LiveRange::vnis(), and writtenBetween().

◆ make_scope_exit()

template<typename Callable>
detail::scope_exit< std::decay_t< Callable > > llvm::make_scope_exit ( Callable && F)
nodiscard

Definition at line 59 of file ScopeExit.h.

References F.

Referenced by llvm::LazyCallGraph::addSplitFunction(), llvm::LazyCallGraph::addSplitRefRecursiveFunctions(), llvm::M68kInstrInfo::AnalyzeBranchImpl(), checkCondition(), llvm::SSAUpdaterImpl< UpdaterT >::CheckIfPHIMatches(), checkOrAndOpImpliedByOther(), computeKnownFPClass(), doPromotion(), llvm::LoopInfo::erase(), llvm::MCExpr::evaluateAsRelocatableImpl(), formDedicatedExitBlocks(), llvm::BasicAAResult::getModRefInfoMask(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), llvm::LazyCallGraph::RefSCC::insertTrivialCallEdge(), llvm::LazyCallGraph::RefSCC::insertTrivialRefEdge(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::orc::loadLinkableFile(), llvm::orc::loadMachORelocatableObject(), llvm::yaml::MappingTraits< DXContainerYAML::PSVInfo >::mapping(), llvm::sys::fs::readNativeFileToEOF(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::LazyCallGraph::RefSCC::removeOutgoingEdge(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), llvm::LazyCallGraph::RefSCC::replaceNodeFunction(), llvm::InlinerPass::run(), llvm::ModuleInlinerPass::run(), llvm::PGOCtxProfFlatteningPass::run(), llvm::ThinLTOCodeGenerator::run(), llvm::InstructionSelect::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::LazyCallGraph::RefSCC::switchTrivialInternalEdgeToRef(), and llvm::VPlanTransforms::unrollByUF().

◆ make_second_range()

◆ MakeErrMsg()

LLVM_ABI bool llvm::MakeErrMsg ( std::string * ErrMsg,
const std::string & prefix )

References LLVM_ABI.

Referenced by ReportLastErrorFatal().

◆ makeFollowupLoopID()

std::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 std::nullopt.
Returns
The loop ID for the after-transformation loop. The following values can be returned: std::nullopt : 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 264 of file LoopUtils.cpp.

References assert(), cast(), Changed, drop_begin(), findOptionMDForLoopID(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), isa(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MDNode::replaceOperandWith(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::StringRef::starts_with().

Referenced by CloneLoopBlocks(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), and llvm::LoopVectorizationPlanner::updateLoopMetadataAndProfileInfo().

◆ makeGCNILPScheduler()

std::vector< const SUnit * > llvm::makeGCNILPScheduler ( ArrayRef< const SUnit * > BotRoots,
const ScheduleDAG & DAG )

Definition at line 355 of file GCNILPSched.cpp.

Referenced by llvm::GCNIterativeScheduler::scheduleILP().

◆ makeGuardControlFlowExplicit()

void llvm::makeGuardControlFlowExplicit ( Function * DeoptIntrinsic,
CallInst * Guard,
bool UseWC )

Splits control flow at point of Guard, replacing it with explicit branch by the condition of guard's first argument.

The taken branch then goes to the block that contains Guard's successors, and the non-taken branch goes to a newly-created deopt block that contains a sole call of the deoptimize function DeoptIntrinsic. If 'UseWC' is set, preserve the widenable nature of the guard by lowering to equivelent form. If not set, lower to a form without widenable semantics.

Definition at line 30 of file GuardUtils.cpp.

References llvm::CallBase::args(), assert(), B(), cast(), llvm::MDBuilder::createBranchWeights(), drop_begin(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCallingConv(), llvm::Value::getContext(), llvm::Instruction::getMetadata(), llvm::CallBase::getOperandBundle(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Function::getReturnType(), llvm::Type::isVoidTy(), isWidenableBranch(), llvm::LLVMContext::OB_deopt, PredicatePassBranchWeight, and SplitBlockAndInsertIfThen().

Referenced by lowerGuardIntrinsic(), and turnToExplicitForm().

◆ makeInstrRefBasedLiveDebugValues()

LDVImpl * llvm::makeInstrRefBasedLiveDebugValues ( )
extern

Definition at line 3879 of file InstrRefBasedImpl.cpp.

◆ makeIntrusiveRefCnt()

template<typename T, typename... Args>
IntrusiveRefCntPtr< T > llvm::makeIntrusiveRefCnt ( Args &&... A)

◆ makeMinRegSchedule()

std::vector< const SUnit * > llvm::makeMinRegSchedule ( ArrayRef< const SUnit * > TopRoots,
const ScheduleDAG & DAG )

◆ makePostTransformationMetadata()

MDNode * llvm::makePostTransformationMetadata ( llvm::LLVMContext & Context,
MDNode * OrigLoopID,
llvm::ArrayRef< llvm::StringRef > RemovePrefixes,
llvm::ArrayRef< llvm::MDNode * > AddAttrs )

Create a new LoopID after the loop has been transformed.

This can be used when no follow-up loop attributes are defined (llvm::makeFollowupLoopID returning None) to stop transformations to be applied again.

Parameters
ContextThe LLVMContext in which to create the new LoopID.
OrigLoopIDThe original LoopID; can be nullptr if the original loop has no LoopID.
RemovePrefixesRemove all loop attributes that have these prefixes. Use to remove metadata of the transformation that has been applied.
AddAttrsAdd these loop attributes to the new LoopID.
Returns
A new LoopID that can be applied using Loop::setLoopID().

Definition at line 1170 of file LoopInfo.cpp.

References any_of(), llvm::SmallVectorImpl< T >::append(), llvm::ArrayRef< T >::begin(), drop_begin(), dyn_cast(), llvm::ArrayRef< T >::end(), llvm::MDNode::getDistinct(), llvm::MDString::getString(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MDNode::replaceOperandWith(), and llvm::StringRef::starts_with().

Referenced by postUnswitch(), llvm::LoopVectorizeHints::setAlreadyVectorized(), llvm::Loop::setLoopAlreadyUnrolled(), llvm::Loop::setLoopMustProgress(), and llvm::LoopVectorizationPlanner::updateLoopMetadataAndProfileInfo().

◆ makeSampler() [1/3]

template<typename T, typename GenT>
ReservoirSampler< T, GenT > llvm::makeSampler ( GenT & RandGen)

Definition at line 90 of file Random.h.

◆ makeSampler() [2/3]

template<typename GenT, typename T>
ReservoirSampler< T, GenT > llvm::makeSampler ( GenT & RandGen,
const T & Item,
uint64_t Weight )

Definition at line 82 of file Random.h.

References llvm::ReservoirSampler< T, GenT >::sample(), and T.

◆ makeSampler() [3/3]

◆ makeVarLocBasedLiveDebugValues()

LDVImpl * llvm::makeVarLocBasedLiveDebugValues ( )
extern

Definition at line 2408 of file VarLocBasedImpl.cpp.

◆ makeVisitor()

template<typename... CallableTs>
decltype(auto) llvm::makeVisitor ( CallableTs &&... Callables)
constexpr

Returns an opaquely-typed Callable object whose operator() overload set is the sum of the operator() overload sets of each CallableT in CallableTs.

The type of the returned object derives from each CallableT in CallableTs. The returned object is constructed by invoking the appropriate copy or move constructor of each CallableT, as selected by overload resolution on the corresponding argument to makeVisitor.

Example:

auto visitor = makeVisitor([](auto) { return "unhandled type"; },
[](int i) { return "int"; },
[](std::string s) { return "str"; });
auto a = visitor(42); // `a` is now "int".
auto b = visitor("foo"); // `b` is now "str".
auto c = visitor(3.14f); // `c` is now "unhandled type".
constexpr decltype(auto) makeVisitor(CallableTs &&...Callables)
Returns an opaquely-typed Callable object whose operator() overload set is the sum of the operator() ...
Definition STLExtras.h:1507

Example of making a visitor with a lambda which captures a move-only type:

std::unique_ptr<FooHandler> FH = /* ... */;
auto visitor = makeVisitor(
[FH{std::move(FH)}](Foo F) { return FH->handle(F); },
[](int i) { return i; },
[](std::string s) { return atoi(s); });
#define F(x, y, z)
Definition MD5.cpp:55

Definition at line 1507 of file STLExtras.h.

◆ map_iterator()

◆ map_range()

◆ map_to_vector() [1/2]

template<unsigned Size, class ContainerTy, class FuncTy>
auto llvm::map_to_vector ( ContainerTy && C,
FuncTy && F )

Map a range to a SmallVector with element types deduced from the mapping.

Definition at line 38 of file SmallVectorExtras.h.

References llvm::CallingConv::C, F, map_range(), and to_vector().

Referenced by toScalarizedStructTy(), and toVectorizedStructTy().

◆ map_to_vector() [2/2]

template<class ContainerTy, class FuncTy>
auto llvm::map_to_vector ( ContainerTy && C,
FuncTy && F )

Map a range to a SmallVector with element types deduced from the mapping.

Definition at line 45 of file SmallVectorExtras.h.

References llvm::CallingConv::C, F, map_range(), and to_vector().

◆ mapAtomInstance()

◆ mapLastWindowsError()

LLVM_ABI std::error_code llvm::mapLastWindowsError ( )

References LLVM_ABI.

◆ MapMetadata() [1/2]

MDNode * llvm::MapMetadata ( const MDNode * MD,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = nullptr )
inline

Version of MapMetadata with type safety for MDNode.

Definition at line 272 of file ValueMapper.h.

References llvm::ValueMapper::mapMDNode(), and RF_None.

◆ MapMetadata() [2/2]

Metadata * llvm::MapMetadata ( const Metadata * MD,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = 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 if IdentityMD predicate returns true for MD then add an identity mapping for it and return it.
  5. 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 262 of file ValueMapper.h.

References llvm::ValueMapper::mapMetadata(), and RF_None.

Referenced by CloneFunctionInto(), CloneFunctionMetadataInto(), and CloneModule().

◆ MapValue() [1/2]

Constant * llvm::MapValue ( const Constant * V,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = nullptr )
inline

Version of MapValue with type safety for Constant.

Definition at line 343 of file ValueMapper.h.

References llvm::ValueMapper::mapConstant(), and RF_None.

◆ MapValue() [2/2]

Value * llvm::MapValue ( const Value * V,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = 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 236 of file ValueMapper.h.

References llvm::ValueMapper::mapValue(), and RF_None.

Referenced by CloneAndPruneIntoFromInst(), CloneFunctionAttributesInto(), and CloneModule().

◆ mapWindowsError()

◆ markRegisterParameterAttributes()

void llvm::markRegisterParameterAttributes ( Function * F)

Definition at line 1415 of file BuildLibCalls.cpp.

References A(), assert(), llvm::CallingConv::C, DL, F, N, T, and llvm::CallingConv::X86_StdCall.

Referenced by getOrInsertLibFunc().

◆ maskContainsAllOneOrUndef()

bool llvm::maskContainsAllOneOrUndef ( Value * Mask)

Given a mask vector of i1, Return true if any of the elements of this predicate mask are known to be true or undef.

That is, return true if at least one lane can be assumed active.

Definition at line 1308 of file VectorUtils.cpp.

References assert(), cast(), dyn_cast(), I, and isa().

◆ MaskedValueIsZero()

bool llvm::MaskedValueIsZero ( const Value * V,
const APInt & Mask,
const SimplifyQuery & SQ,
unsigned Depth = 0 )

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 314 of file ValueTracking.cpp.

References computeKnownBits(), Depth, and llvm::KnownBits::Zero.

Referenced by llvm::InstCombinerImpl::foldAddWithConstant(), isMultipleOf(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::InstCombiner::MaskedValueIsZero(), simplifyOrInst(), simplifyUnaryIntrinsic(), and tryToRecognizePopCount().

◆ maskIsAllOneOrUndef()

bool llvm::maskIsAllOneOrUndef ( Value * Mask)

Given a mask vector of i1, Return true if all of the elements of this predicate mask are known to be true or undef.

That is, return true if all lanes can be assumed active.

Definition at line 1282 of file VectorUtils.cpp.

References assert(), cast(), dyn_cast(), I, and isa().

◆ maskIsAllZeroOrUndef()

bool llvm::maskIsAllZeroOrUndef ( Value * Mask)

Given a mask vector of i1, Return true if all of the elements of this predicate mask are known to be false or undef.

That is, return true if all lanes can be assumed inactive.

Definition at line 1256 of file VectorUtils.cpp.

References assert(), cast(), dyn_cast(), I, and isa().

Referenced by simplifyIntrinsic().

◆ maskLeadingOnes()

template<typename T>
T llvm::maskLeadingOnes ( unsigned N)
constexpr

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 97 of file MathExtras.h.

References maskTrailingOnes(), N, and T.

Referenced by generateInstSeqLeadingZeros(), llvm::rdf::PhysicalRegisterInfo::getUnits(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), maskTrailingZeros(), mostAlignedValueInRange(), and llvm::BitVector::operator<<=().

◆ maskLeadingZeros()

template<typename T>
T llvm::maskLeadingZeros ( unsigned N)
constexpr

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 109 of file MathExtras.h.

References maskTrailingOnes(), N, and T.

◆ maskTrailingOnes()

◆ maskTrailingZeros()

template<typename T>
T llvm::maskTrailingZeros ( unsigned N)
constexpr

◆ matchBroadcastSize()

bool llvm::matchBroadcastSize ( const X86FoldTableEntry & Entry,
unsigned BroadcastBits )

◆ matchDecomposedSelectPattern()

SelectPatternResult llvm::matchDecomposedSelectPattern ( CmpInst * CmpI,
Value * TrueVal,
Value * FalseVal,
Value *& LHS,
Value *& RHS,
FastMathFlags FMF = FastMathFlags(),
Instruction::CastOps * CastOp = nullptr,
unsigned Depth = 0 )

Determine the pattern that a select with the given compare as its predicate and given values as its true/false operands would match.

Definition at line 8991 of file ValueTracking.cpp.

References llvm::CallingConv::C, cast(), Depth, llvm::User::getOperand(), llvm::CmpInst::getPredicate(), llvm::Value::getType(), llvm::Instruction::hasNoNaNs(), isa(), llvm::CmpInst::isEquality(), lookThroughCast(), llvm::FastMathFlags::setNoNaNs(), llvm::FastMathFlags::setNoSignedZeros(), SPF_UNKNOWN, and SPNB_NA.

Referenced by matchSelectPattern(), and simplifySelectWithICmpCond().

◆ MATCHER() [1/2]

llvm::MATCHER ( Failed ,
""  )

Definition at line 195 of file Error.h.

References Failed().

◆ MATCHER() [2/2]

llvm::MATCHER ( Succeeded ,
""  )

Definition at line 194 of file Error.h.

◆ matchSelectPattern() [1/2]

SelectPatternResult llvm::matchSelectPattern ( const Value * V,
const Value *& LHS,
const Value *& RHS )
inline

Definition at line 887 of file ValueTracking.h.

References LHS, matchSelectPattern(), and RHS.

◆ matchSelectPattern() [2/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 8970 of file ValueTracking.cpp.

References Depth, dyn_cast(), isa(), matchDecomposedSelectPattern(), MaxAnalysisRecursionDepth, SPF_UNKNOWN, and SPNB_NA.

Referenced by canConvertToMinOrMaxIntrinsic(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpUsingKnownBits(), llvm::ARMTTIImpl::getCmpSelInstrCost(), getRangeForSelectPattern(), llvm::RecurrenceDescriptor::getReductionOpChain(), isSignedMinMaxClamp(), isSSATMinMaxPattern(), matchMinMaxOfMinMax(), matchSelectPattern(), llvm::InstCombinerImpl::visitFCmpInst(), and llvm::InstCombinerImpl::visitICmpInst().

◆ matchSimpleBinaryIntrinsicRecurrence()

bool llvm::matchSimpleBinaryIntrinsicRecurrence ( const IntrinsicInst * I,
PHINode *& P,
Value *& Init,
Value *& OtherOp )

Attempt to match a simple value-accumulating recurrence of the form: llvm.intrinsic.acc = phi Ty [Init, Entry], [llvm.intrinsic, backedge] llvm.intrinsic = call Ty @llvm.intrinsic(OtherOp, llvm.intrinsic.acc) OR llvm.intrinsic.acc = phi Ty [Init, Entry], [llvm.intrinsic, backedge] llvm.intrinsic = call Ty @llvm.intrinsic(llvm.intrinsic.acc, OtherOp)

The recurrence relation is of kind: X_0 = a (initial value), X_i = call @llvm.binary.intrinsic(X_i-1, b) Where b is not required to be loop-invariant.

Definition at line 9178 of file ValueTracking.cpp.

References dyn_cast(), I, II, matchTwoInputRecurrence(), and P.

Referenced by foldIdempotentBinaryIntrinsicRecurrence().

◆ matchSimpleRecurrence() [1/2]

bool llvm::matchSimpleRecurrence ( const BinaryOperator * I,
PHINode *& P,
Value *& Start,
Value *& Step )

Analogous to the above, but starting from the binary operator.

Definition at line 9169 of file ValueTracking.cpp.

References dyn_cast(), I, matchSimpleRecurrence(), and P.

◆ matchSimpleRecurrence() [2/2]

bool llvm::matchSimpleRecurrence ( const PHINode * P,
BinaryOperator *& BO,
Value *& Start,
Value *& Step )

Attempt to match a simple first order recurrence cycle of the form: iv = phi Ty [Start, Entry], [Inc, backedge] inc = binop iv, step OR iv = phi Ty [Start, Entry], [Inc, backedge] inc = binop step, iv.

A first order recurrence is a formula with the form: X_n = f(X_(n-1))

A couple of notes on subtleties in that definition:

  • The Step does not have to be loop invariant. In math terms, it can be a free variable. We allow recurrences with both constant and variable coefficients. Callers may wish to filter cases where Step does not dominate P.
  • For non-commutative operators, we will match both forms. This results in some odd recurrence structures. Callers may wish to filter out recurrences where the phi is not the LHS of the returned operator.
  • Because of the structure matched, the caller can assume as a post condition of the match the presence of a Loop with P's parent as it's header except in unreachable code. (Dominance decays in unreachable code.)

NOTE: This is intentional simple. If you want the ability to analyze non-trivial loop conditons, see ScalarEvolution instead.

Definition at line 9158 of file ValueTracking.cpp.

References matchTwoInputRecurrence(), and P.

Referenced by canFoldTermCondOfLoop(), computeKnownBitsFromOperator(), llvm::InstCombinerImpl::foldBinopWithRecurrence(), foldDependentIVs(), getInvertibleOperands(), isNonZeroRecurrence(), isPowerOfTwoRecurrence(), matchSimpleRecurrence(), RecurrenceInfo::matchSimpleRecurrence(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitFMul(), and llvm::InstCombinerImpl::visitOr().

◆ matchUnaryPredicate()

◆ max()

◆ max_element() [1/2]

template<typename R>
auto llvm::max_element ( R && Range)

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

Definition at line 2010 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

Referenced by downscaleWeights(), findMostPopularDest(), fitWeights(), llvm::DataLayout::getLargestLegalIntTypeSizeInBits(), llvm::pdb::PDBFile::getMaxStreamSize(), llvm::ScalarEvolution::isKnownViaInduction(), and llvm::objcopy::macho::MachOWriter::totalSize().

◆ max_element() [2/2]

template<typename R, typename Compare>
auto llvm::max_element ( R && Range,
Compare C )

Definition at line 2014 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.

◆ maximum()

LLVM_READONLY APFloat llvm::maximum ( const APFloat & A,
const APFloat & B )
inline

Implements IEEE 754-2019 maximum semantics.

Returns the larger of 2 arguments, returning a quiet NaN if an argument is a NaN and treating -0 as less than +0.

Definition at line 1643 of file APFloat.h.

References A(), and B().

Referenced by ConstantFoldFPBinOp(), llvm::SelectionDAG::foldConstantFPMath(), and llvm::InstCombinerImpl::visitCallInst().

◆ maximumnum()

LLVM_READONLY APFloat llvm::maximumnum ( const APFloat & A,
const APFloat & B )
inline

Implements IEEE 754-2019 maximumNumber semantics.

Returns the larger of 2 arguments, not propagating NaNs and treating -0 as less than +0.

Definition at line 1656 of file APFloat.h.

References A(), and B().

Referenced by llvm::SelectionDAG::foldConstantFPMath().

◆ maxIntN()

int64_t llvm::maxIntN ( int64_t N)
inlineconstexpr

Gets the maximum value for a N-bit signed integer.

Definition at line 241 of file MathExtras.h.

References assert(), and N.

Referenced by llvm::ARMAsmBackend::adjustFixupValue(), convertStrToInt(), extractBitsForFixup(), isIntN(), llvm::LegalizerHelper::narrowScalarFLDEXP(), and reportOutOfRangeError().

◆ maxnum()

LLVM_READONLY APFloat llvm::maxnum ( const APFloat & A,
const APFloat & B )
inline

Implements IEEE-754 2008 maxNum semantics.

Returns the larger of the 2 arguments if both are not NaN. If either argument is a qNaN, returns the other argument. If either argument is sNaN, return a qNaN. +0 is treated as ordered greater than -0.

Definition at line 1598 of file APFloat.h.

References A(), and B().

Referenced by ConstantFoldFPBinOp(), fmed3AMDGCN(), llvm::SelectionDAG::foldConstantFPMath(), llvm::ConstantFPRange::intersectWith(), llvm::ConstantFPRange::unionWith(), and llvm::InstCombinerImpl::visitCallInst().

◆ maxUIntN()

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3832 of file Local.cpp.

References llvm::CallBase::addFnAttr(), F, llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), and llvm::TargetLibraryInfo::hasOptimizedCodeGen().

Referenced by collectMemAccessInfo().

◆ mayBeOldLoopAttachmentTag()

bool llvm::mayBeOldLoopAttachmentTag ( StringRef Name)
inline

Check whether a string looks like an old loop attachment tag.

Definition at line 100 of file AutoUpgrade.h.

◆ mayContainIrreducibleControl()

bool llvm::mayContainIrreducibleControl ( const Function & F,
const LoopInfo * LI )

◆ mayHaveMemprofSummary()

LLVM_ABI bool llvm::mayHaveMemprofSummary ( const CallBase * CB)

Returns true if the instruction could have memprof metadata, used to ensure consistency between summary analysis and the ThinLTO backend processing.

References LLVM_ABI.

Referenced by computeFunctionSummary(), and INITIALIZE_PASS().

◆ mayHaveNonDefUseDependency()

bool llvm::mayHaveNonDefUseDependency ( const Instruction & I)

Returns true if the result or effects of the given instructions I depend values not reachable through the def use graph.

  • 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.
  • Control dependence arises for example if the instruction may fault if lifted above a throwing call or infinite loop.

Definition at line 7053 of file ValueTracking.cpp.

References I, isGuaranteedToTransferExecutionToSuccessor(), and isSafeToSpeculativelyExecute().

Referenced by areAllOperandsNonInsts(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().

◆ mayHaveValueProfileOfKind()

◆ mayOptimizeThumb2Instruction()

bool llvm::mayOptimizeThumb2Instruction ( const MachineInstr * MI)
static

Definition at line 27 of file ARMBasicBlockInfo.cpp.

References MI.

Referenced by llvm::ARMBasicBlockUtils::computeBlockSize().

◆ maySafelyIgnoreMask()

bool llvm::maySafelyIgnoreMask ( SDValue Op)

Definition at line 85 of file VECustomDAG.cpp.

References getVVPOpcode(), and Opc.

Referenced by llvm::VETargetLowering::legalizePackedAVL().

◆ MCLOHDirectiveName()

StringRef llvm::MCLOHDirectiveName ( )
inlinestatic

Definition at line 45 of file MCLinkerOptimizationHint.h.

◆ MCLOHIdToName()

StringRef llvm::MCLOHIdToName ( MCLOHType Kind)
inlinestatic

Definition at line 68 of file MCLinkerOptimizationHint.h.

References MCLOHCaseIdToName.

◆ MCLOHIdToNbArgs()

int llvm::MCLOHIdToNbArgs ( MCLOHType Kind)
inlinestatic

◆ MCLOHNameToId()

int llvm::MCLOHNameToId ( StringRef Name)
inlinestatic

◆ MD5Hash()

uint64_t llvm::MD5Hash ( StringRef Str)
inline

Helper to compute and return lower 64 bits of the given string's MD5 hash.

Definition at line 111 of file MD5.h.

References llvm::MD5::final(), and llvm::MD5::update().

◆ mergeAttributesForInlining()

void AttributeFuncs::mergeAttributesForInlining ( Function & Caller,
const Function & Callee )

Merge caller's and callee's attributes.

Definition at line 2711 of file Attributes.cpp.

Referenced by areInlineCompatible().

◆ mergeAttributesForOutlining()

void AttributeFuncs::mergeAttributesForOutlining ( Function & Base,
const Function & ToMerge )

Merges the functions attributes from ToMerge into function Base.

Parameters
[in,out]Base- The function being merged into.
[in]ToMerge- The function to merge attributes from.

Definition at line 2716 of file Attributes.cpp.

References llvm::sampleprof::Base.

Referenced by areInlineCompatible().

◆ MergeBasicBlockIntoOnlyPred()

void llvm::MergeBasicBlockIntoOnlyPred ( BasicBlock * BB,
DomTreeUpdater * DTU = nullptr )

BB is a block with one predecessor and its predecessor is known to have one successor (BB!).

Eliminate the edge between them, moving the instructions in the predecessor into BB. This deletes the predecessor block.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 761 of file Local.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdatesPermissive(), assert(), llvm::BasicBlock::begin(), llvm::SmallPtrSetImplBase::clear(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::DomTreeUpdater::deleteBB(), llvm::Constant::destroyConstant(), dyn_cast(), llvm::BasicBlock::eraseFromParent(), llvm::Instruction::eraseFromParent(), llvm::BlockAddress::get(), llvm::PoisonValue::get(), llvm::BasicBlock::getContext(), llvm::Value::getContext(), llvm::Type::getInt32Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::BasicBlock::hasAddressTaken(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::hasDomTree(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::SmallPtrSetImpl< PtrType >::insert(), isa(), llvm::BasicBlock::isEntryBlock(), llvm::BasicBlock::moveAfter(), pred_size(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::recalculate(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorImpl< T >::reserve(), llvm::BasicBlock::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::BasicBlock::splice().

Referenced by llvm::JumpThreadingPass::maybeMergeBasicBlockIntoOnlyPred().

◆ MergeBlockIntoPredecessor()

bool llvm::MergeBlockIntoPredecessor ( BasicBlock * BB,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
MemoryDependenceResults * MemDep = nullptr,
bool PredecessorWithTwoSuccessors = false,
DominatorTree * DT = nullptr )

Attempts to merge a block into its predecessor, if possible.

The return value indicates success or failure. By default do not merge blocks if BB's predecessor has multiple successors. If PredecessorWithTwoSuccessors = true, the blocks can only be merged if BB's Pred has a branch to BB and to AnotherBB, and BB has a single successor Sing. In this case the branch will be updated with Sing instead of BB, and BB will still be merged into its predecessor and removed. If DT is not nullptr, update it directly; in that case, DTU must be nullptr.

Definition at line 177 of file BasicBlockUtils.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), llvm::CallingConv::C, cast(), cast_or_null(), llvm::DomTreeNodeBase< NodeT >::children(), llvm::SmallPtrSetImplBase::clear(), llvm::SmallPtrSetImpl< PtrType >::contains(), dbgs(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, DeleteDeadBlock(), dyn_cast(), llvm::MemorySSA::End, llvm::BasicBlock::end(), llvm::Instruction::eraseFromParent(), llvm::DominatorTreeBase< NodeT, IsPostDom >::eraseNode(), FoldSingleEntryPHINodes(), from_range, llvm::BasicBlock::front(), llvm::BasicBlock::getContext(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MemorySSA::getMemoryAccess(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::BasicBlock::getUniqueSuccessor(), llvm::BasicBlock::hasAddressTaken(), llvm::Value::hasName(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MemoryDependenceResults::invalidateCachedPredecessors(), is_contained(), isa(), llvm::Instruction::isSpecialTerminator(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, llvm::Instruction::mayHaveSideEffects(), llvm::MemorySSAUpdater::moveAllAfterMergeBlocks(), llvm::Instruction::moveBeforePreserving(), llvm::MemorySSAUpdater::moveToPlace(), llvm::BasicBlock::phis(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::LoopInfoBase< BlockT, LoopT >::removeBlock(), llvm::Value::replaceAllUsesWith(), llvm::BranchInst::setSuccessor(), llvm::BasicBlock::splice(), succ_empty(), succ_size(), successors(), llvm::Value::takeName(), and to_vector().

Referenced by foldCondBranchOnValueKnownInPredecessorImpl(), mergeBlocksIntoPredecessors(), MergeBlockSuccessorsIntoGivenBlocks(), UnrollLoop(), and UnrollRuntimeLoopRemainder().

◆ MergeBlockSuccessorsIntoGivenBlocks()

bool llvm::MergeBlockSuccessorsIntoGivenBlocks ( SmallPtrSetImpl< BasicBlock * > & MergeBlocks,
Loop * L = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr )

Merge block(s) sucessors, if possible.

Return true if at least two of the blocks were merged together. In order to merge, each block must be terminated by an unconditional branch. If L is provided, then the blocks merged into their predecessors must be in L. In addition, This utility calls on another utility: MergeBlockIntoPredecessor. Blocks are successfully merged when the call to MergeBlockIntoPredecessor returns true.

Definition at line 336 of file BasicBlockUtils.cpp.

References assert(), llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::SmallPtrSetImplBase::empty(), llvm::SmallPtrSetImpl< PtrType >::erase(), llvm::BasicBlock::getSingleSuccessor(), llvm::BasicBlock::getUniquePredecessor(), and MergeBlockIntoPredecessor().

Referenced by UnrollAndJamLoop().

◆ mergeSampleProfErrors()

◆ MFPropsModifier()

template<typename PassT>
llvm::MFPropsModifier ( PassT & P,
MachineFunction & MF ) -> MFPropsModifier< PassT >

References P.

◆ mi_bundle_ops()

iterator_range< MIBundleOperands > llvm::mi_bundle_ops ( MachineInstr & MI)
inline

Definition at line 213 of file MachineInstrBundle.h.

References llvm::MIBundleOperands::end(), make_range(), and MI.

◆ microsoftDemangle()

char * llvm::microsoftDemangle ( std::string_view mangled_name,
size_t * n_read,
int * status,
MSDemangleFlags Flags = MSDF_None )

Demangles the Microsoft symbol pointed at by mangled_name and returns it.

Returns a pointer to the start of a null-terminated demangled string on success, or nullptr on error. If n_read is non-null and demangling was successful, it receives how many bytes of the input string were consumed. status receives one of the demangle_ enum entries above if it's not nullptr. Flags controls various details of the demangled representation.

Definition at line 2501 of file MicrosoftDemangle.cpp.

References D(), demangle_invalid_mangled_name, demangle_success, MSDF_DumpBackrefs, MSDF_NoAccessSpecifier, MSDF_NoCallingConvention, MSDF_NoMemberType, MSDF_NoReturnType, MSDF_NoVariableType, llvm::ms_demangle::OF_Default, llvm::ms_demangle::OF_NoAccessSpecifier, llvm::ms_demangle::OF_NoCallingConvention, llvm::ms_demangle::OF_NoMemberType, llvm::ms_demangle::OF_NoReturnType, llvm::ms_demangle::OF_NoVariableType, and llvm::ms_demangle::SymbolNode::output().

Referenced by demangle(), and llvm::symbolize::LLVMSymbolizer::DemangleName().

◆ mimm2Val()

uint64_t llvm::mimm2Val ( uint64_t Val)
inlinestatic

mimm2Val - Convert a target MImm immediate to an integer immediate value.

Definition at line 368 of file VE.h.

Referenced by llvm::VEInstrInfo::foldImmediate().

◆ min_element() [1/2]

template<typename R>
auto llvm::min_element ( R && Range)

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

Definition at line 2000 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

Referenced by llvm::PBQP::Vector::minIndex().

◆ min_element() [2/2]

template<typename R, typename Compare>
auto llvm::min_element ( R && Range,
Compare C )

Definition at line 2004 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.

◆ MinAlign() [1/2]

template<typename U, typename V, typename T = common_uint<U, V>>
T llvm::MinAlign ( U A,
V B )
constexpr

A and B are either alignments or offsets.

Return the minimum alignment that may be assumed after adding the two together.

Definition at line 368 of file MathExtras.h.

References A(), B(), and T.

Referenced by commonAlignment(), llvm::GIMatchTableExecutor::executeMatchTable(), getKnowledgeFromBundle(), llvm::GEPOperator::getMaxPreservedAlignment(), llvm::LegalizerHelper::getStackTemporaryAlignment(), llvm::CCState::HandleByVal(), and llvm::InstCombinerImpl::visitCallInst().

◆ MinAlign() [2/2]

uint64_t llvm::MinAlign ( uint64_t A,
uint64_t B )
constexpr

Fallback when arguments aren't integral.

Definition at line 378 of file MathExtras.h.

References A(), and B().

◆ minimum()

LLVM_READONLY APFloat llvm::minimum ( const APFloat & A,
const APFloat & B )
inline

Implements IEEE 754-2019 minimum semantics.

Returns the smaller of 2 arguments, returning a quiet NaN if an argument is a NaN and treating -0 as less than +0.

Definition at line 1616 of file APFloat.h.

References A(), and B().

Referenced by ConstantFoldFPBinOp(), llvm::SelectionDAG::foldConstantFPMath(), and llvm::InstCombinerImpl::visitCallInst().

◆ minimumnum()

LLVM_READONLY APFloat llvm::minimumnum ( const APFloat & A,
const APFloat & B )
inline

Implements IEEE 754-2019 minimumNumber semantics.

Returns the smaller of 2 arguments, not propagating NaNs and treating -0 as less than +0.

Definition at line 1629 of file APFloat.h.

References A(), and B().

Referenced by llvm::SelectionDAG::foldConstantFPMath().

◆ minIntN()

int64_t llvm::minIntN ( int64_t N)
inlineconstexpr

Gets the minimum value for a N-bit signed integer.

Definition at line 232 of file MathExtras.h.

References assert(), and N.

Referenced by llvm::ARMAsmBackend::adjustFixupValue(), extractBitsForFixup(), isIntN(), llvm::LegalizerHelper::narrowScalarFLDEXP(), and reportOutOfRangeError().

◆ minnum()

LLVM_READONLY APFloat llvm::minnum ( const APFloat & A,
const APFloat & B )
inline

Implements IEEE-754 2008 minNum semantics.

Returns the smaller of the 2 arguments if both are not NaN. If either argument is a qNaN, returns the other argument. If either argument is sNaN, return a qNaN. -0 is treated as ordered less than +0.

Definition at line 1579 of file APFloat.h.

References A(), and B().

Referenced by ConstantFoldFPBinOp(), llvm::SelectionDAG::foldConstantFPMath(), llvm::ConstantFPRange::intersectWith(), llvm::ConstantFPRange::unionWith(), and llvm::InstCombinerImpl::visitCallInst().

◆ mismatch()

template<typename R1, typename R2>
auto llvm::mismatch ( R1 && Range1,
R2 && Range2 )

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

This function returns a pair of iterators for the first mismatching elements from R1 and R2. As an example, if:

R1 = [0, 1, 4, 6], R2 = [0, 1, 5, 6]

this function will return a pair of iterators, first pointing to R1[2] and second pointing to R2[2].

Definition at line 2027 of file STLExtras.h.

References adl_begin(), adl_end(), and R2.

◆ mismatchedPred()

bool llvm::mismatchedPred ( ARMCC::CondCodes a,
ARMCC::CondCodes b )
static

Definition at line 506 of file ARMLatencyMutations.cpp.

◆ mod() [1/2]

is always non-negative.

Definition at line 395 of file DynamicAPInt.h.

Referenced by llvm::DynamicAPInt::mod, and readModRM().

◆ mod() [2/2]

template<typename U, typename V, typename T = common_sint<U, V>>
T llvm::mod ( U Numerator,
V Denominator )
constexpr

Returns the remainder of the Euclidean division of LHS by RHS.

Result is always non-negative.

Definition at line 460 of file MathExtras.h.

References assert(), Mod, and T.

◆ move()

template<typename R, typename OutputIt>
OutputIt llvm::move ( R && Range,
OutputIt Out )

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

Definition at line 1847 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

Referenced by llvm::AArch64ExternalSymbolizer::AArch64ExternalSymbolizer(), llvm::AAResults::AAResults(), llvm::DWARFDebugNames::Abbrev::Abbrev(), llvm::orc::AbsoluteSymbolsMaterializationUnit::AbsoluteSymbolsMaterializationUnit(), llvm::coro::AllocaInfo::AllocaInfo(), llvm::AllocationOrder::AllocationOrder(), llvm::AllocatorList< T, BumpPtrAllocator >< Addend >::AllocatorList(), llvm::AllocInfo::AllocInfo(), llvm::AllocInfo::AllocInfo(), llvm::AMDGPUAAResult::AMDGPUAAResult(), llvm::AMDGPUAsmPrinter::AMDGPUAsmPrinter(), llvm::AMDGPUSubtarget::AMDGPUSubtarget(), llvm::AMDGPUSymbolizer::AMDGPUSymbolizer(), llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::AnalysisPassModel(), llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::AnalysisPassModel(), llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, false >::AnalysisResultModel(), llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, false >::AnalysisResultModel(), llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, true >::AnalysisResultModel(), llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, true >::AnalysisResultModel(), llvm::Any::Any(), llvm::coro::AnyRetconABI::AnyRetconABI(), llvm::APSInt::APSInt(), llvm::ARCTTIImpl::ARCTTIImpl(), llvm::opt::ArgList::ArgList(), llvm::ARMAsmPrinter::ARMAsmPrinter(), llvm::TargetLowering::AsmOperandInfo::AsmOperandInfo(), llvm::AsmPrinter::AsmPrinter(), llvm::AsmToken::AsmToken(), llvm::mustache::ASTNode::ASTNode(), llvm::mustache::ASTNode::ASTNode(), llvm::coro::AsyncABI::AsyncABI(), llvm::orc::AsynchronousSymbolQuery::AsynchronousSymbolQuery(), llvm::MCELFStreamer::AttributeItem::AttributeItem(), llvm::AVRMCELFStreamer::AVRMCELFStreamer(), llvm::AVRMCELFStreamer::AVRMCELFStreamer(), llvm::coro::BaseABI::BaseABI(), llvm::pdb::BaseClassLayout::BaseClassLayout(), llvm::BasicAAResult::BasicAAResult(), llvm::orc::BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit(), llvm::orc::BasicObjectLayerMaterializationUnit::BasicObjectLayerMaterializationUnit(), llvm::object::BBAddrMap::BBEntry::BBEntry(), llvm::BinaryInstrProfCorrelator< IntPtrT >::BinaryInstrProfCorrelator(), llvm::SwitchCG::BitTestBlock::BitTestBlock(), llvm::BlockFrequencyInfo::BlockFrequencyInfo(), llvm::hlsl::BoundRegs::BoundRegs(), llvm::BPFAsmPrinter::BPFAsmPrinter(), llvm::BranchProbabilityInfo::BranchProbabilityInfo(), llvm::buffer_unique_ostream::buffer_unique_ostream(), llvm::BuildAttributeItem::BuildAttributeItem(), llvm::object::BuildIDFetcher::BuildIDFetcher(), llvm::BumpPtrAllocatorImpl< MallocAllocator, 65536 >::BumpPtrAllocatorImpl(), llvm::symbolize::CachedBinary::CachedBinary(), llvm::CachedFileStream::CachedFileStream(), llvm::DXILResourceMap::call_iterator::call_iterator(), llvm::CallGraph::CallGraph(), llvm::memprof::CallSiteInfo::CallSiteInfo(), llvm::memprof::CallSiteInfo::CallSiteInfo(), llvm::CallsiteInfo::CallsiteInfo(), llvm::CallsiteInfo::CallsiteInfo(), llvm::StackMaps::CallsiteInfo::CallsiteInfo(), llvm::CFIFunctionFrameStreamer::CFIFunctionFrameStreamer(), llvm::CGSCCToFunctionPassAdaptor::CGSCCToFunctionPassAdaptor(), llvm::CGSCCToFunctionPassAdaptor::CGSCCToFunctionPassAdaptor(), llvm::dwarf::CIE::CIE(), llvm::jitlink::COFFLinkGraphBuilder::COFFLinkGraphBuilder(), llvm::sandboxir::CollectDescr::CollectDescr(), llvm::orc::CompileOnDemandLayer::CompileOnDemandLayer(), computeForAddCarry(), llvm::pdb::ConcreteSymbolEnumerator< PDBSymbolData >::ConcreteSymbolEnumerator(), llvm::orc::ConcurrentIRCompiler::ConcurrentIRCompiler(), llvm::ConstantFPRange::ConstantFPRange(), llvm::ConstantRange::ConstantRange(), llvm::ConstantRange::ConstantRange(), llvm::object::content_iterator< ImportDirectoryEntryRef >::content_iterator(), llvm::SPIRV::ConvergenceRegion::ConvergenceRegion(), llvm::SPIRV::ConvergenceRegion::ConvergenceRegion(), llvm::CoroConditionalWrapper::CoroConditionalWrapper(), llvm::CostBenefitPair::CostBenefitPair(), llvm::coverage::InstantiationGroup::CoverageMapping, llvm::CSKYAsmPrinter::CSKYAsmPrinter(), llvm::CSKYELFStreamer::CSKYELFStreamer(), llvm::xray::CustomEventRecord::CustomEventRecord(), llvm::xray::CustomEventRecordV5::CustomEventRecordV5(), llvm::codeview::CVSymbolDumper::CVSymbolDumper(), llvm::SelectionDAG::DAGNodeDeletedListener::DAGNodeDeletedListener(), llvm::SelectionDAG::DAGNodeInsertedListener::DAGNodeInsertedListener(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::pdb::DataMemberLayoutItem::DataMemberLayoutItem(), llvm::pdb::DbiStream::DbiStream(), llvm::DDGEdge::DDGEdge(), llvm::DDGNode::DDGNode(), llvm::DebuginfodFetcher::DebuginfodFetcher(), llvm::orc::DebugObjectManagerPlugin::DebugObjectManagerPlugin(), llvm::orc::DebugObjectManagerPlugin::DebugObjectManagerPlugin(), llvm::codeview::DebugSubsectionRecordBuilder::DebugSubsectionRecordBuilder(), llvm::jitlink::DefineExternalSectionStartAndEndSymbols< SymbolIdentifierFunction >::DefineExternalSectionStartAndEndSymbols(), llvm::DependenceGraphInfo< DDGNode >::DependenceGraphInfo(), llvm::DevirtSCCRepeatedPass::DevirtSCCRepeatedPass(), llvm::DFAPacketizer::DFAPacketizer(), llvm::DGNode< DDGNode, DDGEdge >::DGNode(), llvm::lsp::DiagnosticRelatedInformation::DiagnosticRelatedInformation(), llvm::DWARFVerifier::DieRangeInfo::DieRangeInfo(), llvm::DirectedGraph< DDGNode, DDGEdge >::DirectedGraph(), llvm::vfs::directory_entry::directory_entry(), llvm::vfs::directory_iterator::directory_iterator(), llvm::vfs::RedirectingFileSystem::DirectoryEntry::DirectoryEntry(), llvm::vfs::RedirectingFileSystem::DirectoryEntry::DirectoryEntry(), llvm::vfs::InMemoryFileSystem::DirIterator::DirIterator(), llvm::lsp::DocumentLink::DocumentLink(), llvm::DominatorTreeBase< BlockT, false >::DominatorTreeBase(), llvm::orc::DumpObjects::DumpObjects(), llvm::orc::DuplicateDefinition::DuplicateDefinition(), llvm::DWARFContext::DWARFContext(), llvm::DWARFDebugLoc::DWARFDebugLoc(), llvm::DWARFDebugLoclists::DWARFDebugLoclists(), llvm::dwarf_linker::DWARFFile::DWARFFile(), llvm::DwarfInstrProfCorrelator< IntPtrT >::DwarfInstrProfCorrelator(), llvm::DWARFLocationTable::DWARFLocationTable(), llvm::DWARFVerifier::DWARFVerifier(), llvm::DWPError::DWPError(), llvm::DXContainerObjectWriter::DXContainerObjectWriter(), llvm::orc::DynamicLibrarySearchGenerator::DynamicLibrarySearchGenerator(), llvm::jitlink::ELFJITLinker_aarch32::ELFJITLinker_aarch32(), llvm::jitlink::ELFJITLinker_ppc64< Endianness >::ELFJITLinker_ppc64(), llvm::jitlink::ELFJITLinker_riscv::ELFJITLinker_riscv(), llvm::jitlink::ELFJITLinker_x86::ELFJITLinker_x86(), llvm::jitlink::ELFJITLinker_x86_64::ELFJITLinker_x86_64(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::ELFLinkGraphBuilder(), llvm::jitlink::ELFLinkGraphBuilder_aarch32< DataEndianness >::ELFLinkGraphBuilder_aarch32(), llvm::jitlink::ELFLinkGraphBuilder_ppc64< Endianness >::ELFLinkGraphBuilder_ppc64(), llvm::jitlink::ELFLinkGraphBuilder_riscv< ELFT >::ELFLinkGraphBuilder_riscv(), llvm::jitlink::ELFLinkGraphBuilder_x86::ELFLinkGraphBuilder_x86(), llvm::jitlink::ELFLinkGraphBuilder_x86_64::ELFLinkGraphBuilder_x86_64(), llvm::jitlink::ELFLinkGraphBuilderBase::ELFLinkGraphBuilderBase(), llvm::ELFObjectWriter::ELFObjectWriter(), llvm::ELFObjectWriter::ELFObjectWriter(), llvm::ir2vec::Embedding::Embedding(), llvm::pdb::detail::EndianAdapter< T >::EndianAdapter(), llvm::EngineBuilder::EngineBuilder(), llvm::codeview::EnumeratorRecord::EnumeratorRecord(), llvm::codeview::EnumeratorRecord::EnumeratorRecord(), llvm::orc::EPCDynamicLibrarySearchGenerator::EPCDynamicLibrarySearchGenerator(), llvm::orc::EPCDynamicLibrarySearchGenerator::EPCDynamicLibrarySearchGenerator(), llvm::orc::EPCGenericRTDyldMemoryManager::EPCGenericRTDyldMemoryManager(), llvm::sandboxir::EraseFromParent::EraseFromParent(), llvm::support::detail::ErrorAdapter::ErrorAdapter(), llvm::detail::ErrorMatchesMono< InfoT >::ErrorMatchesMono(), llvm::detail::ErrorMessageMatches::ErrorMessageMatches(), llvm::ExecutionEngine::ExecutionEngine(), llvm::ExecutionEngine::ExecutionEngine(), llvm::orc::ExecutionSession::ExecutionSession(), llvm::orc::ExecutorNativePlatform::ExecutorNativePlatform(), llvm::orc::ExecutorNativePlatform::ExecutorNativePlatform(), llvm::orc::ExecutorProcessControl::ExecutorProcessControl(), llvm::ExitOnError::ExitOnError(), llvm::detail::ExpectedHolder< T >::ExpectedHolder(), llvm::Expression::Expression(), llvm::ExternalAAWrapperPass::ExternalAAWrapperPass(), llvm::orc::FailedToMaterialize::FailedToMaterialize(), llvm::FileBufferByteStream::FileBufferByteStream(), llvm::FileCache::FileCache(), llvm::FileCheckString::FileCheckString(), llvm::FileCollectorFileSystem::FileCollectorFileSystem(), llvm::yaml::FlowStringValue::FlowStringValue(), llvm::formatv_object< Tuple >::formatv_object(), llvm::formatv_object< Tuple >::formatv_object(), FuncMergeInfo::FuncMergeInfo(), llvm::FunctionHashInfo::FunctionHashInfo(), llvm::FunctionImporter::FunctionImporter(), llvm::FunctionSummary::FunctionSummary(), llvm::FunctionToLoopPassAdaptor::FunctionToLoopPassAdaptor(), llvm::FunctionToMachineFunctionPassAdaptor::FunctionToMachineFunctionPassAdaptor(), llvm::GCNPostScheduleDAGMILive::GCNPostScheduleDAGMILive(), llvm::GCNScheduleDAGMILive::GCNScheduleDAGMILive(), llvm::GCPoint::GCPoint(), llvm::orc::GenericNamedTaskImpl< FnT >::GenericNamedTaskImpl(), llvm::GlobalsAAResult::GlobalsAAResult(), llvm::pdb::GlobalsStream::GlobalsStream(), llvm::GlobalValueSummary::GlobalValueSummary(), llvm::GlobalVarSummary::GlobalVarSummary(), llvm::GOFFObjectWriter::GOFFObjectWriter(), llvm::PBQP::Graph< RegAllocSolverImpl >::Graph(), llvm::gsym::GsymContext::GsymContext(), llvm::codeview::detail::GuidAdapter::GuidAdapter(), llvm::orc::MachOPlatform::HeaderOptions::HeaderOptions(), llvm::HexagonAsmPrinter::HexagonAsmPrinter(), llvm::HexagonMCELFStreamer::HexagonMCELFStreamer(), llvm::HexagonMCELFStreamer::HexagonMCELFStreamer(), llvm::ifs::IFSSymbol::IFSSymbol(), llvm::ImmutableGraph< MachineInstr *, int >::ImmutableGraph(), llvm::SPIRV::IncomingCall::IncomingCall(), llvm::memprof::IndexedCallSiteInfo::IndexedCallSiteInfo(), llvm::IndexedCodeGenDataReader::IndexedCodeGenDataReader(), llvm::IndexedInstrProfReader::IndexedInstrProfReader(), llvm::orc::EPCGenericJITLinkMemoryManager::InFlightAlloc::InFlightAlloc(), llvm::orc::MapperJITLinkMemoryManager::InFlightAlloc::InFlightAlloc(), llvm::pdb::InfoStream::InfoStream(), INITIALIZE_PASS(), llvm::pdb::InjectedSourceStream::InjectedSourceStream(), llvm::InjectorIRStrategy::InjectorIRStrategy(), llvm::vfs::detail::InMemoryDirectory::InMemoryDirectory(), llvm::vfs::detail::InMemoryFile::InMemoryFile(), InProgressEntry::InProgressEntry(), InProgressEntry::InProgressEntry(), llvm::orc::InProgressFullLookupState::InProgressFullLookupState(), llvm::orc::InProgressLookupFlagsState::InProgressLookupFlagsState(), llvm::orc::InProgressLookupState::InProgressLookupState(), llvm::opt::InputArgList::InputArgList(), llvm::InstrProfCorrelator::InstrProfCorrelator(), llvm::InstrProfCorrelatorImpl< IntPtrT >::InstrProfCorrelatorImpl(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::InstrProfReaderItaniumRemapper(), llvm::InstrProfRecord::InstrProfRecord(), llvm::InstrProfRecord::InstrProfRecord(), llvm::InstrProfSummaryBuilder::InstrProfSummaryBuilder(), llvm::mca::InstructionError< T >::InstructionError(), llvm::VPlanPatternMatch::int_pred_ty< is_specific_int, Bitwidth >::int_pred_ty(), llvm::orc::MaterializationUnit::Interface::Interface(), llvm::MachO::InterfaceFile::InterfaceFile(), llvm::MachO::InterfaceFileRef::InterfaceFileRef(), llvm::InternalizePass::InternalizePass(), llvm::Interpreter::Interpreter(), llvm::jitlink::InProcessMemoryManager::IPInFlightAlloc::IPInFlightAlloc(), llvm::iterator< AliasSet >::iplist(), llvm::iplist_impl< IntrusiveListT, TraitsT >::iplist_impl(), llvm::IR2VecVocabAnalysis::IR2VecVocabAnalysis(), llvm::IRBuilderCallbackInserter::IRBuilderCallbackInserter(), llvm::orc::IRCompileLayer::IRCompileLayer(), llvm::orc::IRCompileLayer::IRCompiler::IRCompiler(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::orc::IRMaterializationUnit::IRMaterializationUnit(), llvm::IRMutator::IRMutator(), llvm::orc::IRTransformLayer::IRTransformLayer(), llvm::VPlanPatternMatch::is_specific_int::is_specific_int(), llvm::iterator_adaptor_base< IteratorImpl< ValueT, IteratorBase >, IteratorBase, std::bidirectional_iterator_tag, ValueT >::iterator_adaptor_base(), llvm::iterator_range< iterator >::iterator_range(), llvm::IVUsers::IVUsers(), llvm::orc::JITCompileCallbackManager::JITCompileCallbackManager(), llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::JITLinkCtx(), llvm::jitlink::JITLinkDylib::JITLinkDylib(), llvm::jitlink::JITLinkerBase::JITLinkerBase(), llvm::orc::JITLinkRedirectableSymbolManager::JITLinkRedirectableSymbolManager(), llvm::orc::JITLinkReentryTrampolines::JITLinkReentryTrampolines(), llvm::JITSymbol::JITSymbol(), llvm::JITSymbol::JITSymbol(), llvm::JITSymbol::JITSymbol(), llvm::orc::JITSymbolNotFound::JITSymbolNotFound(), llvm::orc::JITTargetMachineBuilder::JITTargetMachineBuilder(), llvm::JSONScopedPrinter::JSONScopedPrinter(), llvm::lsp::JSONTransport::JSONTransport(), llvm::SwitchCG::JumpTableHeader::JumpTableHeader(), llvm::LazyCallGraph::LazyCallGraph(), llvm::orc::LazyReexportsMaterializationUnit::LazyReexportsMaterializationUnit(), llvm::sandboxir::DiamondReuseMultiInput::LegalityAnalysis, llvm::jitlink::LinkGraph::LinkGraph(), llvm::jitlink::Symbol::LinkGraph, llvm::orc::LinkGraphMaterializationUnit::LinkGraphMaterializationUnit(), llvm::orc::LinkGraphMaterializationUnit::LinkGraphMaterializationUnit(), llvm::LinkingSymbolResolver::LinkingSymbolResolver(), llvm::orc::LLJIT::LLJIT(), llvm::LLVMDisasmContext::LLVMDisasmContext(), llvm::RuntimeDyld::LoadedObjectInfo::LoadedObjectInfo(), llvm::orc::LocalIndirectStubsInfo< ORCABI >::LocalIndirectStubsInfo(), llvm::Loop::LocRange::LocRange(), llvm::Logger::Logger(), llvm::orc::LookupTask::LookupTask(), llvm::LoongArchAsmPrinter::LoongArchAsmPrinter(), llvm::LoopInfo::LoopInfo(), llvm::LoopInfoBase< BasicBlock, Loop >::LoopInfoBase(), llvm::LowerAllowCheckPass::LowerAllowCheckPass(), llvm::lsp::LSPError::LSPError(), llvm::lto::LTO::LTO(), llvm::M68kAsmPrinter::M68kAsmPrinter(), llvm::MachineModuleInfo::MachineModuleInfo(), llvm::RegionInfoBase< RegionTraits< Function > >::MachineRegionInfo, llvm::MachObjectWriter::MachObjectWriter(), llvm::orc::MachOBuilderDylibLoadCommand< LCType >::MachOBuilderDylibLoadCommand(), llvm::orc::MachOBuilderLoadCommand< MachO::LC_RPATH >::MachOBuilderLoadCommand(), llvm::jitlink::MachOJITLinker_arm64::MachOJITLinker_arm64(), llvm::jitlink::MachOJITLinker_x86_64::MachOJITLinker_x86_64(), llvm::jitlink::MachOLinkGraphBuilder::MachOLinkGraphBuilder(), llvm::mapped_iterator< CallGraphNode::iterator, decltype(&CGNGetValue)>::mapped_iterator(), llvm::mapped_iterator_base< DerivedT, ItTy, ReferenceTy >::mapped_iterator_base(), llvm::orc::MapperJITLinkMemoryManager::MapperJITLinkMemoryManager(), llvm::symbolize::MarkupParser::MarkupParser(), llvm::Pattern::MatchResult::MatchResult(), llvm::Pattern::MatchResult::MatchResult(), llvm::Pattern::MatchResult::MatchResult(), llvm::orc::MaterializationTask::MaterializationTask(), llvm::orc::MaterializationUnit::MaterializationUnit(), llvm::PBQP::Matrix::Matrix(), llvm::MCAsmMacro::MCAsmMacro(), llvm::MCAsmMacro::MCAsmMacro(), llvm::MCAssembler::MCAssembler(), llvm::coverage::MCDCRecord::MCDCRecord(), llvm::MCDXContainerStreamer::MCDXContainerStreamer(), llvm::MCELFStreamer::MCELFStreamer(), llvm::MCExternalSymbolizer::MCExternalSymbolizer(), llvm::MCGOFFStreamer::MCGOFFStreamer(), llvm::MCObjectStreamer::MCObjectStreamer(), llvm::MCSPIRVStreamer::MCSPIRVStreamer(), llvm::MCSymbolizer::MCSymbolizer(), llvm::MCWasmStreamer::MCWasmStreamer(), llvm::MCWinCOFFStreamer::MCWinCOFFStreamer(), llvm::MCXCOFFStreamer::MCXCOFFStreamer(), llvm::PBQP::MDMatrix< MatrixMetadata >::MDMatrix(), llvm::MDNodeKeyImpl< DIEnumerator >::MDNodeKeyImpl(), llvm::PBQP::MDVector< Metadata >::MDVector(), llvm::MemoryBufferByteStream::MemoryBufferByteStream(), llvm::memprof::MemProfReader::MemProfReader(), llvm::sandboxir::MemSeedBundle< sandboxir::StoreInst >::MemSeedBundle(), llvm::MetadataLoader::MetadataLoader(), llvm::MetadataLoader::MetadataLoader(), llvm::MetadataLoader::MetadataLoaderImpl::MetadataLoaderImpl(), llvm::MIBInfo::MIBInfo(), llvm::MIMetadata::MIMetadata(), llvm::MipsAsmPrinter::MipsAsmPrinter(), llvm::MipsDAGToDAGISelLegacy::MipsDAGToDAGISelLegacy(), llvm::MipsELFStreamer::MipsELFStreamer(), llvm::MIRParser::MIRParser(), llvm::MIRParserImpl::MIRParserImpl(), llvm::MIRProfileLoader::MIRProfileLoader(), llvm::orc::MissingSymbolDefinitions::MissingSymbolDefinitions(), llvm::MLPriorityAdvisor::MLPriorityAdvisor(), llvm::ModuleToFunctionPassAdaptor::ModuleToFunctionPassAdaptor(), llvm::ModuleToPostOrderCGSCCPassAdaptor::ModuleToPostOrderCGSCCPassAdaptor(), llvm::ModuleToPostOrderCGSCCPassAdaptor::ModuleToPostOrderCGSCCPassAdaptor(), llvm::ModuloSchedule::ModuloSchedule(), llvm::ModuloScheduleExpander::ModuloScheduleExpander(), llvm::MSVCPError::MSVCPError(), llvm::MSVCPError::MSVCPError(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::orc::LazyReexportsManager::MU::MU(), llvm::MustBeExecutedIterator::MustBeExecutedIterator(), llvm::NamedInstrProfRecord::NamedInstrProfRecord(), llvm::NamedInstrProfRecord::NamedInstrProfRecord(), llvm::pdb::NativeEnumLineNumbers::NativeEnumLineNumbers(), llvm::pdb::NativeEnumSymbols::NativeEnumSymbols(), llvm::pdb::NativeEnumTypes::NativeEnumTypes(), llvm::pdb::NativeSession::NativeSession(), llvm::pdb::NativeSymbolEnumerator::NativeSymbolEnumerator(), llvm::pdb::NativeTypeEnum::NativeTypeEnum(), llvm::pdb::NativeTypeEnum::NativeTypeEnum(), llvm::pdb::NativeTypeFunctionSig::NativeTypeFunctionSig(), llvm::pdb::NativeTypeFunctionSig::NativeTypeFunctionSig(), llvm::pdb::NativeTypePointer::NativeTypePointer(), llvm::pdb::NativeTypeTypedef::NativeTypeTypedef(), llvm::pdb::NativeTypeUDT::NativeTypeUDT(), llvm::pdb::NativeTypeUDT::NativeTypeUDT(), llvm::pdb::NativeTypeUDT::NativeTypeUDT(), llvm::pdb::NativeTypeVTShape::NativeTypeVTShape(), llvm::objcopy::NewSectionInfo::NewSectionInfo(), llvm::NumericSubstitution::NumericSubstitution(), llvm::NVPTXAAResult::NVPTXAAResult(), llvm::NVPTXAsmPrinter::NVPTXAsmPrinter(), llvm::objcarc::ObjCARCAAResult::ObjCARCAAResult(), llvm::MinidumpYAML::Object::Object(), llvm::json::ObjectKey::ObjectKey(), llvm::orc::ObjectLinkingLayer::ObjectLinkingLayer(), llvm::orc::ObjectTransformLayer::ObjectTransformLayer(), llvm::object::OffloadFile::OffloadFile(), llvm::OperandBundleDefT< Value * >::OperandBundleDefT(), llvm::OperandBundleDefT< Value * >::OperandBundleDefT(), llvm::orc::SimpleLazyReexportsSpeculator::operator=(), llvm::orc::SimpleRemoteEPC::operator=(), llvm::GCOV::Options::Options(), llvm::RegAllocFastPass::Options::Options(), RAGreedyPass::Options::Options(), LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit::OrcCAPIMaterializationUnit(), llvm::OutlinedHashTreeRecord::OutlinedHashTreeRecord(), llvm::vfs::OutputFile::OutputFile(), llvm::GCNIterativeScheduler::OverrideLegacyStrategy::OverrideLegacyStrategy(), llvm::object::OwningBinary< T >::OwningBinary(), llvm::object::OwningBinary< T >::OwningBinary(), llvm::sys::OwningMemoryBlock::OwningMemoryBlock(), llvm::orc::PartitioningIRMaterializationUnit::PartitioningIRMaterializationUnit(), llvm::orc::PartitioningIRMaterializationUnit::PartitioningIRMaterializationUnit(), llvm::PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::PassManager(), llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >::PassModel(), llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >::PassModel(), llvm::PBQP::RegAlloc::PBQPRAGraph::PBQPRAGraph(), llvm::pdb::PDBContext::PDBContext(), llvm::pdb::PDBFile::PDBFile(), llvm::pdb::PDBSymbol::PDBSymbol(), llvm::PGOInstrumentationUse::PGOInstrumentationUse(), llvm::PGOOptions::PGOOptions(), llvm::PiBlockDDGNode::PiBlockDDGNode(), llvm::pointer_iterator< pointee_iterator< WrappedIteratorT, T1 >, T2 >::pointer_iterator(), llvm::PPCELFStreamer::PPCELFStreamer(), llvm::PPCXCOFFStreamer::PPCXCOFFStreamer(), llvm::Printable::Printable(), llvm::ProfileSummaryBuilder::ProfileSummaryBuilder(), llvm::vfs::ProxyFileSystem::ProxyFileSystem(), llvm::vfs::ProxyOutputBackend::ProxyOutputBackend(), llvm::pdb::PublicsStream::PublicsStream(), llvm::lsp::PublishDiagnosticsParams::PublishDiagnosticsParams(), llvm::R600AsmPrinter::R600AsmPrinter(), RAGreedyPass::RAGreedyPass(), llvm::RawInstrProfReader< uint32_t >::RawInstrProfReader(), llvm::consthoist::RebasedConstantInfo::RebasedConstantInfo(), llvm::MachO::RecordLoc::RecordLoc(), llvm::xray::RecordPrinter::RecordPrinter(), llvm::RecordsEntry::RecordsEntry(), llvm::RecordsEntry::RecordsEntry(), llvm::RecordsEntry::RecordsEntry(), llvm::RecordsEntry::RecordsEntry(), llvm::orc::RedirectableMaterializationUnit::RedirectableMaterializationUnit(), llvm::orc::ReexportsGenerator::ReexportsGenerator(), llvm::orc::ReExportsMaterializationUnit::ReExportsMaterializationUnit(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::RefModuleUnit::RefModuleUnit(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::RefModuleUnit::RefModuleUnit(), llvm::RegAllocFastPass::RegAllocFastPass(), llvm::RegionInfo::RegionInfo(), llvm::RegisterTargetPassConfigCallback::RegisterTargetPassConfigCallback(), llvm::remarks::RemarkStreamer::RemarkStreamer(), llvm::ReplayInlineAdvisor::ReplayInlineAdvisor(), llvm::orc::ResourceTrackerDefunct::ResourceTrackerDefunct(), llvm::FunctionAnalysisManagerMachineFunctionProxy::Result::Result(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::Result(), llvm::LoopAnalysisManagerFunctionProxy::Result::Result(), llvm::MachineFunctionAnalysis::Result::Result(), llvm::MemorySSAAnalysis::Result::Result(), llvm::RISCVELFStreamer::RISCVELFStreamer(), llvm::RootDDGNode::RootDDGNode(), llvm::RopePiece::RopePiece(), llvm::orc::RTDyldObjectLinkingLayer::RTDyldObjectLinkingLayer(), llvm::RuntimeDyldChecker::RuntimeDyldChecker(), llvm::RuntimeDyldCheckerImpl::RuntimeDyldCheckerImpl(), llvm::RuntimeDyldError::RuntimeDyldError(), llvm::orc::RuntimeFunction::RuntimeFunction(), llvm::SampleProfileLoaderBaseImpl< FT >::SampleProfileLoaderBaseImpl(), llvm::SampleProfileLoaderPass::SampleProfileLoaderPass(), llvm::sampleprof::SampleProfileReader::SampleProfileReader(), llvm::sampleprof::SampleProfileReaderBinary::SampleProfileReaderBinary(), llvm::sampleprof::SampleProfileReaderExtBinary::SampleProfileReaderExtBinary(), llvm::sampleprof::SampleProfileReaderExtBinaryBase::SampleProfileReaderExtBinaryBase(), llvm::sampleprof::SampleProfileReaderGCC::SampleProfileReaderGCC(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::SampleProfileReaderItaniumRemapper(), llvm::sampleprof::SampleProfileReaderRawBinary::SampleProfileReaderRawBinary(), llvm::sampleprof::SampleProfileReaderText::SampleProfileReaderText(), llvm::SampleProfileSummaryBuilder::SampleProfileSummaryBuilder(), llvm::sampleprof::SampleProfileWriter::SampleProfileWriter(), llvm::SanitizerBinaryMetadataPass::SanitizerBinaryMetadataPass(), llvm::SaveAndRestore< T >::SaveAndRestore(), llvm::ScalarEvolution::ScalarEvolution(), llvm::SCCPSolver::SCCPSolver(), llvm::SCEVAAResult::SCEVAAResult(), llvm::sandboxir::SchedBundle::SchedBundle(), llvm::ScheduleDAGMI::ScheduleDAGMI(), llvm::ScheduleDAGMILive::ScheduleDAGMILive(), llvm::mca::Scheduler::Scheduler(), llvm::mca::Scheduler::Scheduler(), llvm::detail::scope_exit< Callable >::scope_exit(), llvm::SDDbgLabel::SDDbgLabel(), llvm::SDNode::SDNode(), llvm::orc::SectCreateMaterializationUnit::SectCreateMaterializationUnit(), llvm::object::SectionFilter::SectionFilter(), llvm::object::SectionFilterIterator::SectionFilterIterator(), llvm::sandboxir::SeedBundle::SeedBundle(), llvm::SelectionDAGISelLegacy::SelectionDAGISelLegacy(), llvm::SelectionDAGISelPass::SelectionDAGISelPass(), llvm::orc::SelfExecutorProcessControl::SelfExecutorProcessControl(), llvm::sandboxir::ShuffleMask::ShuffleMask(), llvm::SimpleDDGNode::SimpleDDGNode(), llvm::orc::SimpleMachOHeaderMU::SimpleMachOHeaderMU(), llvm::SizeOffsetAPInt::SizeOffsetAPInt(), llvm::SizeOffsetType< T, C >::SizeOffsetType(), llvm::object::Slice::Slice(), llvm::SmallPtrSet< NodeRef, SmallSize >::SmallPtrSet(), llvm::SmallVectorMemoryBuffer::SmallVectorMemoryBuffer(), llvm::SmallVectorMemoryBuffer::SmallVectorMemoryBuffer(), llvm::SparseBitVector< 128 >::SparseBitVector(), llvm::SpecificBumpPtrAllocator< T >::SpecificBumpPtrAllocator(), llvm::SDPatternMatch::SpecificInt_match::SpecificInt_match(), llvm::orc::SimpleLazyReexportsSpeculator::SpeculateTask::SpeculateTask(), llvm::SPIRVObjectWriter::SPIRVObjectWriter(), llvm::StableFunction::StableFunction(), llvm::StableFunctionMap::StableFunctionEntry::StableFunctionEntry(), llvm::StableFunctionMapRecord::StableFunctionMapRecord(), llvm::StringMap< std::nullopt_t, AllocatorTy >::StringMap(), llvm::StringMapKeyIterator< ValueTy >::StringMapKeyIterator(), llvm::StringSwitch< T, R >::StringSwitch(), llvm::yaml::StringValue::StringValue(), llvm::coro::SwitchABI::SwitchABI(), llvm::MachO::Symbol::Symbol(), llvm::orc::SymbolAliasMapEntry::SymbolAliasMapEntry(), llvm::orc::SymbolInstance::SymbolInstance(), llvm::orc::SymbolsCouldNotBeRemoved::SymbolsCouldNotBeRemoved(), llvm::orc::SymbolsNotFound::SymbolsNotFound(), llvm::orc::SymbolsNotFound::SymbolsNotFound(), llvm::pdb::SymbolStream::SymbolStream(), llvm::MachO::SymLink::SymLink(), llvm::MinidumpYAML::SystemInfoStream::SystemInfoStream(), llvm::SystemZAsmPrinter::SystemZAsmPrinter(), llvm::SystemZHLASMAsmStreamer::SystemZHLASMAsmStreamer(), llvm::pdb::TagRecordHash::TagRecordHash(), llvm::pdb::TagRecordHash::TagRecordHash(), llvm::pdb::TagRecordHash::TagRecordHash(), llvm::TargetIRAnalysis::TargetIRAnalysis(), llvm::TargetIRAnalysis::TargetIRAnalysis(), llvm::TargetLibraryAnalysis::TargetLibraryAnalysis(), llvm::TargetLibraryInfoImpl::TargetLibraryInfoImpl(), llvm::TargetTransformInfo::TargetTransformInfo(), llvm::TargetTransformInfo::TargetTransformInfo(), llvm::TargetTransformInfoWrapperPass::TargetTransformInfoWrapperPass(), llvm::MachO::TextAPIError::TextAPIError(), llvm::TextCodeGenDataReader::TextCodeGenDataReader(), llvm::TextEncodingConverter::TextEncodingConverter(), llvm::TextInstrProfReader::TextInstrProfReader(), llvm::TGVarScope::TGVarScope(), llvm::TGVarScope::TGVarScope(), llvm::TGVarScope::TGVarScope(), llvm::TGVarScope::TGVarScope(), llvm::lto::ThinBackend::ThinBackend(), llvm::orc::ThreadSafeContext::ThreadSafeContext(), llvm::orc::ThreadSafeModule::ThreadSafeModule(), llvm::orc::ThreadSafeModule::ThreadSafeModule(), llvm::TimeTraceProfilerEntry::TimeTraceProfilerEntry(), llvm::TimeTraceProfilerEntry::TimeTraceProfilerEntry(), llvm::orc::TMOwningSimpleCompiler::TMOwningSimpleCompiler(), llvm::mustache::Token::Token(), llvm::mustache::Token::Token(), llvm::pdb::TpiStream::TpiStream(), llvm::xray::TraceExpander::TraceExpander(), llvm::vfs::TracingFileSystem::TracingFileSystem(), llvm::Triple::Triple(), llvm::xray::TypedEventRecord::TypedEventRecord(), llvm::TypedTrackingMDRef< MDNode >::TypedTrackingMDRef(), llvm::orc::UnexpectedSymbolDefinitions::UnexpectedSymbolDefinitions(), llvm::orc::UnsatisfiedSymbolDependencies::UnsatisfiedSymbolDependencies(), llvm::dwarf::UnwindTable::UnwindTable(), llvm::ThreadSafeTrieRawHashMap< T, NumHashBytes >::value_type::value_type(), llvm::pdb::VBPtrLayoutItem::VBPtrLayoutItem(), llvm::PBQP::Vector::Vector(), llvm::codeview::VFTableShapeRecord::VFTableShapeRecord(), llvm::VLIWMachineScheduler::VLIWMachineScheduler(), llvm::ir2vec::Vocabulary::Vocabulary(), llvm::pdb::VTableLayoutItem::VTableLayoutItem(), llvm::WebAssemblyAsmPrinter::WebAssemblyAsmPrinter(), llvm::WinCOFFObjectWriter::WinCOFFObjectWriter(), llvm::WinCOFFObjectWriter::WinCOFFObjectWriter(), llvm::orc::shared::WrapperFunctionCall::WrapperFunctionCall(), llvm::X86AsmPrinter::X86AsmPrinter(), llvm::jitlink::XCOFFJITLinker_ppc64::XCOFFJITLinker_ppc64(), llvm::jitlink::XCOFFLinkGraphBuilder::XCOFFLinkGraphBuilder(), and llvm::XtensaAsmPrinter::XtensaAsmPrinter().

◆ moveInstructionsToTheBeginning()

void llvm::moveInstructionsToTheBeginning ( BasicBlock & FromBB,
BasicBlock & ToBB,
DominatorTree & DT,
const PostDominatorTree & PDT,
DependenceInfo & DI )

Move instructions, in an order-preserving manner, from FromBB to the beginning of ToBB when proven safe.

Definition at line 424 of file CodeMoverUtils.cpp.

References drop_begin(), llvm::BasicBlock::getFirstNonPHIOrDbg(), I, isSafeToMoveBefore(), make_early_inc_range(), and reverse().

◆ moveInstructionsToTheEnd()

void llvm::moveInstructionsToTheEnd ( BasicBlock & FromBB,
BasicBlock & ToBB,
DominatorTree & DT,
const PostDominatorTree & PDT,
DependenceInfo & DI )

Move instructions, in an order-preserving manner, from FromBB to the end of ToBB when proven safe.

Definition at line 437 of file CodeMoverUtils.cpp.

References llvm::BasicBlock::front(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), I, isSafeToMoveBefore(), and llvm::BasicBlock::size().

◆ MulOverflow()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, T > llvm::MulOverflow ( T X,
T Y,
T & Result )

Multiply two signed integers, computing the two's complement truncated result, returning true if an overflow occurred.

Definition at line 764 of file MathExtras.h.

References T, X, and Y.

Referenced by llvm::ConstraintSystem::negateOrEqual(), llvm::DynamicAPInt::operator*(), llvm::DynamicAPInt::operator*=(), and llvm::InstructionCost::operator*=().

◆ mustExecuteUBIfPoisonOnPathTo()

bool llvm::mustExecuteUBIfPoisonOnPathTo ( Instruction * Root,
Instruction * OnPathTo,
DominatorTree * DT )

Return true if undefined behavior would provable be executed on the path to OnPathTo if Root produced a posion result.

Return true if undefined behavior would provably be executed on the path to OnPathTo if Root produced a posion result.

Note that this doesn't say anything about whether OnPathTo is actually executed or whether Root is actually poison. This can be used to assess whether a new use of Root can be added at a location which is control equivalent with OnPathTo (such as immediately before it) without introducing UB which didn't previously exist. Note that a false result conveys no information.

Definition at line 7770 of file ValueTracking.cpp.

References any_of(), cast(), llvm::DominatorTree::dominates(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), mustTriggerUB(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by canFoldTermCondOfLoop(), and FindLoopCounter().

◆ mustSuppressSpeculation()

bool llvm::mustSuppressSpeculation ( const LoadInst & LI)

Return true if speculation of the given load must be suppressed to avoid ordering or interfering with an active sanitizer.

If not suppressed, dereferenceability and alignment must be proven separately. Note: This is only needed for raw reasoning; if you use the interface below (isSafeToSpeculativelyExecute), this is handled internally.

Definition at line 416 of file Loads.cpp.

References llvm::LoadInst::isUnordered(), and suppressSpeculativeLoadForSanitizers().

Referenced by canWidenLoad(), and isSafeToSpeculativelyExecuteWithOpcode().

◆ mustTriggerUB()

bool llvm::mustTriggerUB ( const Instruction * I,
const SmallPtrSetImpl< const Value * > & KnownPoison )

Return true if the given instruction must trigger undefined behavior when I is executed with any operands which appear in KnownPoison holding a poison value at the point of execution.

Definition at line 8078 of file ValueTracking.cpp.

References llvm::SmallPtrSetImpl< PtrType >::count(), handleGuaranteedNonPoisonOps(), and I.

Referenced by mustExecuteUBIfPoisonOnPathTo(), and programUndefinedIfUndefOrPoison().

◆ MutableArrayRef() [1/7]

template<class T, unsigned N>
llvm::MutableArrayRef ( SmallVector< T, N > & Vec) -> MutableArrayRef< T >

◆ MutableArrayRef() [2/7]

template<class T>
llvm::MutableArrayRef ( SmallVectorImpl< T > & Vec) -> MutableArrayRef< T >

Deduction guide to construct a MutableArrayRef from a SmallVector.

◆ MutableArrayRef() [3/7]

template<class T, std::size_t N>
llvm::MutableArrayRef ( std::array< T, N > & Vec) -> MutableArrayRef< T >

Deduction guide to construct a MutableArrayRef from a std::array.

◆ MutableArrayRef() [4/7]

template<class T>
llvm::MutableArrayRef ( std::vector< T > & Vec) -> MutableArrayRef< T >

Deduction guide to construct a MutableArrayRef from a std::vector.

◆ MutableArrayRef() [5/7]

◆ MutableArrayRef() [6/7]

template<class T>
llvm::MutableArrayRef ( T * data,
size_t length ) -> MutableArrayRef< T >

Deduction guide to construct a MutableArrayRef from a pointer and length.

References data, and T.

◆ MutableArrayRef() [7/7]

template<typename T, size_t N>
llvm::MutableArrayRef ( T(&) Arr[N]) -> MutableArrayRef< T >

Deduction guide to construct a MutableArrayRef from a C array.

References N, and T.

◆ 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 64 of file NameAnonGlobals.cpp.

References Changed, and count().

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

◆ narrowShuffleMaskElts()

void llvm::narrowShuffleMaskElts ( int Scale,
ArrayRef< int > Mask,
SmallVectorImpl< int > & ScaledMask )

Replace each shuffle mask index with the scaled sequential indices for an equivalent mask of narrowed elements.

Mask elements that are less than 0 (sentinel values) are repeated in the output mask.

Example with Scale = 4: <4 x i32> <3, 2, 0, -1> --> <16 x i8> <12, 13, 14, 15, 8, 9, 10, 11, 0, 1, 2, 3, -1, -1, -1, -1>

This is the reverse process of widening shuffle mask elements, but it always succeeds because the indexes can always be multiplied (scaled up) to map to narrower vector elements.

Definition at line 519 of file VectorUtils.cpp.

References assert(), llvm::SmallVectorImpl< T >::assign(), llvm::SmallVectorImpl< T >::clear(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by combineExtractWithShuffle(), combineTargetShuffle(), combineX86ShuffleChain(), getFauxShuffleMask(), lowerShuffleAsLanePermuteAndPermute(), lowerV4I64Shuffle(), lowerV4X128Shuffle(), lowerV8I64Shuffle(), matchUnaryPermuteShuffle(), performVECTOR_SHUFFLECombine(), scaleShuffleElements(), scaleShuffleMaskElts(), and truncateVectorWithPACK().

◆ needsComdatForCounter()

bool llvm::needsComdatForCounter ( const GlobalObject & GV,
const Module & M )

Check if we can use Comdat for profile variables.

This will eliminate the duplicated profile variables for Comdat functions.

Definition at line 1468 of file InstrProf.cpp.

References llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::GlobalValue::getLinkage(), and llvm::GlobalObject::hasComdat().

Referenced by canRenameComdatFunc().

◆ needsParamAccessSummary()

bool llvm::needsParamAccessSummary ( const Module & M)

◆ neg()

APFloat llvm::neg ( APFloat X)
inline

◆ next_nodbg()

template<typename IterT>
IterT llvm::next_nodbg ( IterT It,
IterT End,
bool SkipPseudoOp = true )
inline

Increment It, then continue incrementing it while it points to a debug instruction.

A replacement for std::next.

Definition at line 1485 of file MachineBasicBlock.h.

References skipDebugInstructionsForward().

Referenced by llvm::RegPressureTracker::advance(), areInstructionsConsecutive(), llvm::RISCVFrameLowering::emitEpilogue(), emitSelectPseudo(), isLibCallInTailPosition(), and llvm::MachineBasicBlock::rfindPrevDebugLoc().

◆ NextPowerOf2()

◆ nodes()

template<class GraphType>
iterator_range< typename GraphTraits< GraphType >::nodes_iterator > llvm::nodes ( const GraphType & G)

Definition at line 136 of file GraphTraits.h.

References G, and make_range().

Referenced by llvm::GraphWriterBase< GraphType, Derived >::writeNodes().

◆ none_of()

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

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

Definition at line 1719 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by llvm::jitlink::LinkGraph::addAbsoluteSymbol(), llvm::jitlink::LinkGraph::addDefinedSymbol(), llvm::SIScheduleBlock::addPred(), llvm::RegionBase< Tr >::addSubRegion(), llvm::SIScheduleBlock::addSucc(), addToFwdRegWorklist(), llvm::PPCTTIImpl::areTypesABICompatible(), llvm::X86TTIImpl::areTypesABICompatible(), basicBlockCanReturn(), llvm::slpvectorizer::BoUpSLP::buildExternalUses(), calculateRegisterUsageForPlan(), llvm::DIExpression::canonicalizeExpressionOps(), llvm::RegAllocEvictionAdvisor::canReassign(), combineConcatVectorOps(), combineX86ShufflesConstants(), llvm::EpilogueVectorizerEpilogueLoop::createVectorizedLoopSkeleton(), dependsOnLocalPhi(), llvm::TargetLoweringBase::emitPatchPoint(), emitSCSEpilogue(), emitSCSPrologue(), llvm::TimeTraceProfiler::end(), llvm::VPlanTransforms::expandSCEVs(), llvm::InstCombinerImpl::foldICmpSubConstant(), llvm::InstCombinerImpl::foldReversedIntrinsicOperands(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), getAppleRuntimeUnrollPreferences(), llvm::GCNTTIImpl::getCallerAllocaCost(), llvm::X86::getFirstAddrOperandIdx(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), hoistLockstepIdenticalDbgVariableRecords(), imageIntrinsicOptimizerImpl(), isAssumeWithEmptyBundle(), isPointerValueDeadOnEntryToFunction(), llvm::slpvectorizer::BoUpSLP::isProfitableToReorder(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), legalizeAndOptimizeInductions(), llvm::AMDGPUCallLowering::lowerChainCall(), lowerV16I8Shuffle(), lowerV8I16GeneralSingleInputShuffle(), llvm::SelectionDAG::matchBinOpReduction(), llvm::VPlanTransforms::materializeBuildVectors(), llvm::VPExpressionRecipe::mayHaveSideEffects(), OptimizeStaticIFuncs(), planContainsAdditionalSimplifications(), processUse(), llvm::ModuleSummaryIndex::propagateAttributes(), llvm::HashRecognize::recognizeCRC(), llvm::jitlink::LinkGraph::removeAbsoluteSymbol(), llvm::jitlink::LinkGraph::removeBlock(), llvm::jitlink::LinkGraph::removeExternalSymbol(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::LiveRange::removeValNoIfDead(), llvm::LiveIntervals::repairIntervalsInRange(), replicateMask(), resolveTargetShuffleInputsAndMask(), llvm::HexagonShuffler::restrictStoreLoadOrder(), llvm::MachineInstr::setPhysRegsDeadExcept(), stashEntryDbgValues(), tryUnmergingGEPsAcrossIndirectBr(), tryWidenCondBranchToCondBranch(), llvm::AssumptionCache::updateAffectedValues(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsAfterUpdate(), upgradeInstructionLoopAttachment(), and llvm::InstCombinerImpl::visitSub().

◆ nonMicrosoftDemangle()

bool llvm::nonMicrosoftDemangle ( std::string_view MangledName,
std::string & Result,
bool CanHaveLeadingDot = true,
bool ParseParams = true )

◆ nonStrictlyPostDominate()

bool llvm::nonStrictlyPostDominate ( const BasicBlock * ThisBlock,
const BasicBlock * OtherBlock,
const DominatorTree * DT,
const PostDominatorTree * PDT )

In case that two BBs ThisBlock and OtherBlock are control flow equivalent but they do not strictly dominate and post-dominate each other, we determine if ThisBlock is reached after OtherBlock in the control flow.

Recursively check the predecessors of ThisBlock up to their common dominator, and see if any of them post-dominates OtherBlock.

Definition at line 449 of file CodeMoverUtils.cpp.

References assert(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::PostDominatorTree::dominates(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::DominatorTree::findNearestCommonDominator(), llvm::SmallPtrSetImpl< PtrType >::insert(), isControlFlowEquivalent(), llvm::SmallVectorImpl< T >::pop_back_val(), predecessors(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by isReachedBefore().

◆ NoPGOWarnMismatch()

cl::opt< bool > llvm::NoPGOWarnMismatch ( "no-pgo-warn-mismatch" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Use this option to turn off/on " "warnings about profile cfg mismatch.")  )

◆ NoPGOWarnMismatchComdatWeak()

cl::opt< bool > llvm::NoPGOWarnMismatchComdatWeak ( "no-pgo-warn-mismatch-comdat-weak" ,
cl::init(true) ,
cl::Hidden ,
cl::desc("The option is used to turn on/off " "warnings about hash mismatch for comdat " "or weak functions.")  )

◆ normalizeForPostIncUse()

const SCEV * llvm::normalizeForPostIncUse ( const SCEV * S,
const PostIncLoopSet & Loops,
ScalarEvolution & SE,
bool CheckInvertible = true )

Normalize S to be post-increment for all loops present in Loops.

Returns nullptr if the result is not invertible and CheckInvertible is true.

Definition at line 97 of file ScalarEvolutionNormalization.cpp.

References denormalizeForPostIncUse(), llvm::SCEVAddRecExpr::getLoop(), Loops, and Normalize.

Referenced by getAnyExtendConsideringPostIncUses(), and llvm::IVUsers::getExpr().

◆ 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 115 of file ScalarEvolutionNormalization.cpp.

References Normalize.

Referenced by llvm::IVUsers::AddUsersIfInteresting().

◆ normalizeSpillWeight()

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 34 of file CalcSpillWeights.h.

References llvm::SlotIndex::InstrDist, and Size.

Referenced by llvm::VirtRegAuxInfo::normalize().

◆ normalizeType()

Type * llvm::normalizeType ( Type * Ty)
inline

Definition at line 426 of file SPIRVUtils.h.

References dyn_cast(), and normalizeType().

Referenced by getNormalizedPoisonValue(), and normalizeType().

◆ NoWarnSampleUnused()

cl::opt< bool > llvm::NoWarnSampleUnused ( "no-warn-sample-unused" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Use this option to turn off/on warnings about function with " "samples but without debug information to use those samples. ")  )

◆ NullPointerIsDefined()

◆ nulls()

raw_ostream & llvm::nulls ( )

This returns a reference to a raw_ostream which simply discards output.

nulls() - This returns a reference to a raw_ostream which discards output.

Definition at line 920 of file raw_ostream.cpp.

Referenced by llvm::DWARFFormValue::dump(), llvm::MCStreamer::getCommentOS(), and LLVMParseCommandLineOptions().

◆ offsetToAlignedAddr()

uint64_t llvm::offsetToAlignedAddr ( const void * Addr,
Align Alignment )
inline

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

Definition at line 203 of file Alignment.h.

References offsetToAlignment().

Referenced by loadTestingFormat().

◆ offsetToAlignment()

◆ onlyUsedByLifetimeMarkers()

bool llvm::onlyUsedByLifetimeMarkers ( const Value * V)

Return true if the only users of this pointer are lifetime markers.

Definition at line 6920 of file ValueTracking.cpp.

References onlyUsedByLifetimeMarkersOrDroppableInstsHelper().

Referenced by isAllocaPromotable().

◆ onlyUsedByLifetimeMarkersOrDroppableInsts()

bool llvm::onlyUsedByLifetimeMarkersOrDroppableInsts ( const Value * V)

Return true if the only users of this pointer are lifetime markers or droppable instructions.

Definition at line 6924 of file ValueTracking.cpp.

References onlyUsedByLifetimeMarkersOrDroppableInstsHelper().

Referenced by isAllocaPromotable().

◆ operator!=() [1/31]

bool llvm::operator!= ( Align Lhs,
Align Rhs )
inline

Definition at line 262 of file Alignment.h.

◆ operator!=() [2/31]

bool llvm::operator!= ( Align Lhs,
MaybeAlign Rhs )
inline

Definition at line 298 of file Alignment.h.

◆ operator!=() [3/31]

bool llvm::operator!= ( Align Lhs,
uint64_t Rhs )
inline

Definition at line 237 of file Alignment.h.

References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().

◆ operator!=() [4/31]

template<typename T>
bool llvm::operator!= ( ArrayRef< T > LHS,
ArrayRef< T > RHS )
inline

Definition at line 555 of file ArrayRef.h.

References LHS, and RHS.

◆ operator!=() [5/31]

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 690 of file DenseMap.h.

References LHS, and RHS.

◆ operator!=() [6/31]

template<typename DerivedT, typename KeyInfoT, typename BucketT>
bool llvm::operator!= ( const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & LHS,
const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & RHS )

Definition at line 68 of file SymbolSet.h.

References LHS, and RHS.

◆ operator!=() [7/31]

bool llvm::operator!= ( const DWARFDie & LHS,
const DWARFDie & RHS )
inline

Definition at line 356 of file DWARFDie.h.

References LHS, and RHS.

◆ operator!=() [8/31]

bool llvm::operator!= ( const DWARFDie::attribute_iterator & LHS,
const DWARFDie::attribute_iterator & RHS )
inline

Definition at line 346 of file DWARFDie.h.

References LHS, and RHS.

◆ operator!=() [9/31]

bool llvm::operator!= ( const DWARFLocationExpression & L,
const DWARFLocationExpression & R )
inline

Definition at line 37 of file DWARFLocationExpression.h.

◆ operator!=() [10/31]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator!= ( const DynamicAPInt & A,
int64_t B )

Definition at line 599 of file DynamicAPInt.h.

◆ operator!=() [11/31]

template<class T, class U>
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > & A,
const IntrusiveRefCntPtr< U > & B )
inline

Definition at line 246 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator!=() [12/31]

template<class T>
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > & A,
std::nullptr_t B )

Definition at line 287 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator!=() [13/31]

template<class T, class U>
bool llvm::operator!= ( const IntrusiveRefCntPtr< T > & A,
U * B )
inline

Definition at line 257 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator!=() [14/31]

bool llvm::operator!= ( const MachineLocation & LHS,
const MachineLocation & RHS )
inline

Definition at line 52 of file MachineLocation.h.

References LHS, and RHS.

◆ operator!=() [15/31]

template<typename PtrType>
bool llvm::operator!= ( const SmallPtrSetImpl< PtrType > & LHS,
const SmallPtrSetImpl< PtrType > & RHS )

Inequality comparison for SmallPtrSet.

Equivalent to !(LHS == RHS).

Definition at line 531 of file SmallPtrSet.h.

References LHS, and RHS.

◆ operator!=() [16/31]

template<typename T, unsigned LN, unsigned RN, typename C>
bool llvm::operator!= ( const SmallSet< T, LN, C > & LHS,
const SmallSet< T, RN, C > & RHS )

Inequality comparison for SmallSet.

Equivalent to !(LHS == RHS). See operator== for performance notes.

Definition at line 294 of file SmallSet.h.

References LHS, and RHS.

◆ operator!=() [17/31]

bool llvm::operator!= ( const std::reverse_iterator< DWARFDie::iterator > & LHS,
const std::reverse_iterator< DWARFDie::iterator > & RHS )
inline

Definition at line 477 of file DWARFDie.h.

References LHS, and RHS.

◆ operator!=() [18/31]

bool llvm::operator!= ( const ValueInfo & A,
const ValueInfo & B )
inline

Definition at line 275 of file ModuleSummaryIndex.h.

References A(), assert(), and B().

◆ operator!=() [19/31]

bool llvm::operator!= ( DIDerivedType::PtrAuthData Lhs,
DIDerivedType::PtrAuthData Rhs )
inline

Definition at line 1447 of file DebugInfoMetadata.h.

◆ operator!=() [20/31]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator!= ( int64_t A,
const DynamicAPInt & B )

Definition at line 629 of file DynamicAPInt.h.

◆ operator!=() [21/31]

bool llvm::operator!= ( int64_t V1,
const APSInt & V2 )
inline

Definition at line 359 of file APSInt.h.

◆ operator!=() [22/31]

bool llvm::operator!= ( MaybeAlign Lhs,
Align Rhs )
inline

Definition at line 296 of file Alignment.h.

◆ operator!=() [23/31]

bool llvm::operator!= ( MaybeAlign Lhs,
MaybeAlign Rhs )
inline

Definition at line 303 of file Alignment.h.

◆ operator!=() [24/31]

bool llvm::operator!= ( MaybeAlign Lhs,
std::nullopt_t  )
inline

Definition at line 306 of file Alignment.h.

◆ operator!=() [25/31]

template<typename ... PTs>
bool llvm::operator!= ( PointerUnion< PTs... > lhs,
PointerUnion< PTs... > rhs )

Definition at line 212 of file PointerUnion.h.

References llvm::PointerUnion< PTs >::getOpaqueValue().

◆ operator!=() [26/31]

template<typename T>
bool llvm::operator!= ( SmallVectorImpl< T > & LHS,
ArrayRef< T > RHS )
inline

Definition at line 560 of file ArrayRef.h.

References LHS, and RHS.

◆ operator!=() [27/31]

bool llvm::operator!= ( std::nullopt_t ,
MaybeAlign Rhs )
inline

Definition at line 308 of file Alignment.h.

◆ operator!=() [28/31]

template<class T>
bool llvm::operator!= ( std::nullptr_t A,
const IntrusiveRefCntPtr< T > & B )

Definition at line 282 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator!=() [29/31]

bool llvm::operator!= ( StringRef LHS,
StringRef RHS )
inline

Definition at line 898 of file StringRef.h.

References LHS, and RHS.

◆ operator!=() [30/31]

template<class T, class U>
bool llvm::operator!= ( T * A,
const IntrusiveRefCntPtr< U > & B )
inline

Definition at line 267 of file IntrusiveRefCntPtr.h.

References A(), B(), and T.

◆ operator!=() [31/31]

bool llvm::operator!= ( uint64_t V1,
const APInt & V2 )
inline

Definition at line 2113 of file APInt.h.

References operator!=().

Referenced by operator!=().

◆ operator%() [1/2]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator% ( const DynamicAPInt & A,
int64_t B )

Definition at line 567 of file DynamicAPInt.h.

◆ operator%() [2/2]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator% ( int64_t A,
const DynamicAPInt & B )

Definition at line 587 of file DynamicAPInt.h.

◆ operator%=()

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator%= ( DynamicAPInt & A,
int64_t B )

Definition at line 547 of file DynamicAPInt.h.

◆ operator&() [1/12]

APInt llvm::operator& ( APInt a,
const APInt & b )
inline

Definition at line 2123 of file APInt.h.

References operator&().

Referenced by operator&(), operator&(), operator&(), and operator&().

◆ operator&() [2/12]

APInt llvm::operator& ( APInt a,
uint64_t RHS )
inline

Definition at line 2133 of file APInt.h.

References operator&(), and RHS.

◆ operator&() [3/12]

ChangeStatus llvm::operator& ( ChangeStatus l,
ChangeStatus r )

Definition at line 191 of file Attributor.cpp.

References UNCHANGED.

◆ operator&() [4/12]

APInt llvm::operator& ( const APInt & a,
APInt && b )
inline

Definition at line 2128 of file APInt.h.

References operator&().

◆ operator&() [5/12]

JITSymbolFlags llvm::operator& ( const JITSymbolFlags & LHS,
const JITSymbolFlags::FlagNames & RHS )
inline

Definition at line 196 of file JITSymbol.h.

References LHS, and RHS.

◆ operator&() [6/12]

KnownBits llvm::operator& ( const KnownBits & LHS,
KnownBits && RHS )
inline

Definition at line 546 of file KnownBits.h.

References LHS, and RHS.

◆ operator&() [7/12]

SmallBitVector llvm::operator& ( const SmallBitVector & LHS,
const SmallBitVector & RHS )
inline

Definition at line 712 of file SmallBitVector.h.

References LHS, and RHS.

◆ operator&() [8/12]

template<unsigned ElementSize>
SparseBitVector< ElementSize > llvm::operator& ( const SparseBitVector< ElementSize > & LHS,
const SparseBitVector< ElementSize > & RHS )
inline

Definition at line 856 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator&() [9/12]

FastMathFlags llvm::operator& ( FastMathFlags LHS,
FastMathFlags RHS )
inline

Definition at line 131 of file FMF.h.

References LHS, and RHS.

◆ operator&() [10/12]

KnownBits llvm::operator& ( KnownBits LHS,
const KnownBits & RHS )
inline

Definition at line 541 of file KnownBits.h.

References LHS, and RHS.

◆ operator&() [11/12]

SDNodeFlags llvm::operator& ( SDNodeFlags LHS,
SDNodeFlags RHS )
inline

Definition at line 494 of file SelectionDAGNodes.h.

References LHS, and RHS.

◆ operator&() [12/12]

APInt llvm::operator& ( uint64_t LHS,
APInt b )
inline

Definition at line 2138 of file APInt.h.

References LHS, and operator&().

◆ operator&=() [1/3]

ChangeStatus & llvm::operator&= ( ChangeStatus & l,
ChangeStatus r )

Definition at line 194 of file Attributor.cpp.

◆ operator&=() [2/3]

template<unsigned ElementSize>
bool llvm::operator&= ( SparseBitVector< ElementSize > & LHS,
const SparseBitVector< ElementSize > * RHS )
inline

Definition at line 838 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator&=() [3/3]

template<unsigned ElementSize>
bool llvm::operator&= ( SparseBitVector< ElementSize > * LHS,
const SparseBitVector< ElementSize > & RHS )
inline

Definition at line 832 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator*() [1/5]

APInt llvm::operator* ( APInt a,
uint64_t RHS )
inline

Definition at line 2235 of file APInt.h.

References operator*(), and RHS.

Referenced by operator*(), and operator*().

◆ operator*() [2/5]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator* ( const DynamicAPInt & A,
int64_t B )

Definition at line 559 of file DynamicAPInt.h.

◆ operator*() [3/5]

InstructionCost llvm::operator* ( const InstructionCost & LHS,
const InstructionCost & RHS )
inline

Definition at line 262 of file InstructionCost.h.

References LHS, and RHS.

◆ operator*() [4/5]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator* ( int64_t A,
const DynamicAPInt & B )

Definition at line 579 of file DynamicAPInt.h.

◆ operator*() [5/5]

APInt llvm::operator* ( uint64_t LHS,
APInt b )
inline

Definition at line 2240 of file APInt.h.

References LHS, and operator*().

◆ operator*=()

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator*= ( DynamicAPInt & A,
int64_t B )

Definition at line 539 of file DynamicAPInt.h.

◆ operator+() [1/11]

APInt llvm::operator+ ( APInt a,
const APInt & b )
inline

Definition at line 2193 of file APInt.h.

References operator+().

Referenced by operator+(), operator+(), operator+(), and operator+().

◆ operator+() [2/11]

APInt llvm::operator+ ( APInt a,
uint64_t RHS )
inline

Definition at line 2203 of file APInt.h.

References operator+(), and RHS.

◆ operator+() [3/11]

APInt llvm::operator+ ( const APInt & a,
APInt && b )
inline

Definition at line 2198 of file APInt.h.

References operator+().

◆ operator+() [4/11]

Twine llvm::operator+ ( const char * LHS,
const StringRef & RHS )
inline

Additional overload to guarantee simplified codegen; this is equivalent to concat().

Definition at line 533 of file Twine.h.

References LHS, and RHS.

◆ operator+() [5/11]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator+ ( const DynamicAPInt & A,
int64_t B )

Definition at line 551 of file DynamicAPInt.h.

◆ operator+() [6/11]

GCNRegPressure llvm::operator+ ( const GCNRegPressure & P1,
const GCNRegPressure & P2 )
inline

Definition at line 165 of file GCNRegPressure.h.

◆ operator+() [7/11]

InstructionCost llvm::operator+ ( const InstructionCost & LHS,
const InstructionCost & RHS )
inline

Definition at line 248 of file InstructionCost.h.

References LHS, and RHS.

◆ operator+() [8/11]

Twine llvm::operator+ ( const StringRef & LHS,
const char * RHS )
inline

Additional overload to guarantee simplified codegen; this is equivalent to concat().

Definition at line 540 of file Twine.h.

References LHS, and RHS.

◆ operator+() [9/11]

Twine llvm::operator+ ( const Twine & LHS,
const Twine & RHS )
inline

Definition at line 526 of file Twine.h.

References LHS, and RHS.

◆ operator+() [10/11]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator+ ( int64_t A,
const DynamicAPInt & B )

Definition at line 571 of file DynamicAPInt.h.

◆ operator+() [11/11]

APInt llvm::operator+ ( uint64_t LHS,
APInt b )
inline

Definition at line 2208 of file APInt.h.

References LHS, and operator+().

◆ operator+=() [1/2]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator+= ( DynamicAPInt & A,
int64_t B )

Convenience operator overloads for int64_t.

Definition at line 531 of file DynamicAPInt.h.

◆ operator+=() [2/2]

std::string & llvm::operator+= ( std::string & buffer,
StringRef string )
inline

Definition at line 916 of file StringRef.h.

References data, and size().

◆ operator-() [1/10]

APInt llvm::operator- ( APInt a,
const APInt & b )
inline

Definition at line 2213 of file APInt.h.

References operator-().

◆ operator-() [2/10]

APInt llvm::operator- ( APInt a,
uint64_t RHS )
inline

Definition at line 2224 of file APInt.h.

References operator-(), and RHS.

◆ operator-() [3/10]

APInt llvm::operator- ( APInt v)
inline

Definition at line 2188 of file APInt.h.

References operator-().

Referenced by operator-(), operator-(), operator-(), operator-(), and operator-().

◆ operator-() [4/10]

APInt llvm::operator- ( const APInt & a,
APInt && b )
inline

Definition at line 2218 of file APInt.h.

References operator-().

◆ operator-() [5/10]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator- ( const DynamicAPInt & A,
int64_t B )

Definition at line 555 of file DynamicAPInt.h.

◆ operator-() [6/10]

GCNRegPressure llvm::operator- ( const GCNRegPressure & P1,
const GCNRegPressure & P2 )
inline

Definition at line 172 of file GCNRegPressure.h.

◆ operator-() [7/10]

InstructionCost llvm::operator- ( const InstructionCost & LHS,
const InstructionCost & RHS )
inline

Definition at line 255 of file InstructionCost.h.

References LHS, and RHS.

◆ operator-() [8/10]

template<unsigned ElementSize>
SparseBitVector< ElementSize > llvm::operator- ( const SparseBitVector< ElementSize > & LHS,
const SparseBitVector< ElementSize > & RHS )
inline

Definition at line 865 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator-() [9/10]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator- ( int64_t A,
const DynamicAPInt & B )

Definition at line 575 of file DynamicAPInt.h.

◆ operator-() [10/10]

APInt llvm::operator- ( uint64_t LHS,
APInt b )
inline

Definition at line 2229 of file APInt.h.

References LHS, and operator-().

◆ operator-=()

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator-= ( DynamicAPInt & A,
int64_t B )

Definition at line 535 of file DynamicAPInt.h.

◆ operator/() [1/3]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator/ ( const DynamicAPInt & A,
int64_t B )

Definition at line 563 of file DynamicAPInt.h.

◆ operator/() [2/3]

InstructionCost llvm::operator/ ( const InstructionCost & LHS,
const InstructionCost & RHS )
inline

Definition at line 269 of file InstructionCost.h.

References LHS, and RHS.

◆ operator/() [3/3]

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator/ ( int64_t A,
const DynamicAPInt & B )

Definition at line 583 of file DynamicAPInt.h.

◆ operator/=()

LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator/= ( DynamicAPInt & A,
int64_t B )

Definition at line 543 of file DynamicAPInt.h.

◆ operator<() [1/23]

bool llvm::operator< ( Align Lhs,
Align Rhs )
inline

Definition at line 271 of file Alignment.h.

◆ operator<() [2/23]

bool llvm::operator< ( Align Lhs,
MaybeAlign Rhs )
delete

◆ operator<() [3/23]

bool llvm::operator< ( Align Lhs,
uint64_t Rhs )
inline

Definition at line 249 of file Alignment.h.

References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().

◆ operator<() [4/23]

template<typename T>
bool llvm::operator< ( ArrayRef< T > LHS,
ArrayRef< T > RHS )
inline

Definition at line 565 of file ArrayRef.h.

References LHS, and RHS.

◆ operator<() [5/23]

bool llvm::operator< ( AtomicOrdering ,
AtomicOrdering  )
delete

◆ operator<() [6/23]

bool llvm::operator< ( AtomicOrderingCABI ,
AtomicOrderingCABI  )
delete

◆ operator<() [7/23]

bool llvm::operator< ( const DbgValueLoc & A,
const DbgValueLoc & B )
inline

Compare two fragments based on their offset.

Definition at line 280 of file DebugLocEntry.h.

◆ operator<() [8/23]

Definition at line 3758 of file DebugInfoMetadata.h.

References A(), and B().

◆ operator<() [9/23]

bool llvm::operator< ( const DWARFAddressRange & LHS,
const DWARFAddressRange & RHS )
inline

Definition at line 77 of file DWARFAddressRange.h.

References LHS, and RHS.

◆ operator<() [10/23]

bool llvm::operator< ( const DWARFDie & LHS,
const DWARFDie & RHS )
inline

Definition at line 360 of file DWARFDie.h.

References LHS, and RHS.

◆ operator<() [11/23]

bool llvm::operator< ( const DWARFVerifier::DieRangeInfo & LHS,
const DWARFVerifier::DieRangeInfo & RHS )
inlinestatic

Definition at line 418 of file DWARFVerifier.h.

References LHS, and RHS.

◆ operator<() [12/23]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator< ( const DynamicAPInt & A,
int64_t B )

Definition at line 609 of file DynamicAPInt.h.

◆ operator<() [13/23]

bool llvm::operator< ( const LiveRange::Segment & S,
SlotIndex V )
inline

Definition at line 935 of file LiveInterval.h.

References llvm::LiveRange::Segment::start.

◆ operator<() [14/23]

bool llvm::operator< ( const struct EntryValueInfo & LHS,
const struct EntryValueInfo & RHS )

References LHS, and RHS.

◆ operator<() [15/23]

bool llvm::operator< ( const struct FrameIndexExpr & LHS,
const struct FrameIndexExpr & RHS )

References LHS, and RHS.

◆ operator<() [16/23]

bool llvm::operator< ( const ValueInfo & A,
const ValueInfo & B )
inline

Definition at line 281 of file ModuleSummaryIndex.h.

References A(), assert(), and B().

◆ operator<() [17/23]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator< ( int64_t A,
const DynamicAPInt & B )

Definition at line 639 of file DynamicAPInt.h.

◆ operator<() [18/23]

◆ operator<() [19/23]

bool llvm::operator< ( MaybeAlign Lhs,
Align Rhs )
delete

◆ operator<() [20/23]

bool llvm::operator< ( MaybeAlign Lhs,
MaybeAlign Rhs )
delete

◆ operator<() [21/23]

template<typename ... PTs>
bool llvm::operator< ( PointerUnion< PTs... > lhs,
PointerUnion< PTs... > rhs )

Definition at line 217 of file PointerUnion.h.

References llvm::PointerUnion< PTs >::getOpaqueValue().

◆ operator<() [22/23]

bool llvm::operator< ( SlotIndex V,
const LiveRange::Segment & S )
inline

Definition at line 931 of file LiveInterval.h.

References llvm::LiveRange::Segment::start.

◆ operator<() [23/23]

bool llvm::operator< ( StringRef LHS,
StringRef RHS )
inline

Definition at line 900 of file StringRef.h.

References LHS, and RHS.

◆ operator<<() [1/149]

template<class DigitsT>
ScaledNumber< DigitsT > llvm::operator<< ( const ScaledNumber< DigitsT > & L,
int16_t Shift )

Definition at line 410 of file ScaledNumber.h.

◆ operator<<() [2/149]

Definition at line 175 of file Annotations.cpp.

References formatv().

◆ operator<<() [3/149]

llvm::raw_ostream & llvm::operator<< ( llvm::raw_ostream & OS,
const GUID & G )

Definition at line 192 of file DIARawSymbol.cpp.

References A(), and G.

◆ operator<<() [4/149]

◆ operator<<() [5/149]

template<typename OStream, typename T>
std::enable_if_t<!std::is_reference_v< OStream > &&std::is_base_of_v< raw_ostream, OStream >, OStream && > llvm::operator<< ( OStream && OS,
const T & Value )

Call the appropriate insertion operator, given an rvalue reference to a raw_ostream object and return a stream of the same type as the argument.

Definition at line 53 of file raw_ostream.h.

References LLVM_ABI, and llvm::raw_ostream::raw_ostream().

◆ operator<<() [6/149]

◆ operator<<() [7/149]

◆ operator<<() [8/149]

raw_ostream & llvm::operator<< ( raw_ostream & O,
const ARMConstantPoolValue & V )
inline

Definition at line 134 of file ARMConstantPoolValue.h.

◆ operator<<() [9/149]

template<class NodeT>
raw_ostream & llvm::operator<< ( raw_ostream & O,
const DomTreeNodeBase< NodeT > * Node )

Definition at line 170 of file GenericDomTree.h.

References Node::printAsOperand().

◆ operator<<() [10/149]

raw_ostream & llvm::operator<< ( raw_ostream & O,
const Module & M )
inline

An raw_ostream inserter for modules.

Definition at line 1058 of file Module.h.

◆ operator<<() [11/149]

raw_ostream & llvm::operator<< ( raw_ostream & O,
const XtensaConstantPoolValue & V )
inline

Definition at line 117 of file XtensaConstantPoolValue.h.

◆ operator<<() [12/149]

raw_ostream & llvm::operator<< ( raw_ostream & O,
FastMathFlags FMF )
inline

Definition at line 136 of file FMF.h.

References llvm::FastMathFlags::print().

◆ operator<<() [13/149]

◆ operator<<() [14/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
BranchProbability Prob )
inline

Definition at line 209 of file BranchProbability.h.

References llvm::BranchProbability::print().

◆ operator<<() [15/149]

◆ operator<<() [16/149]

◆ operator<<() [17/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
ChangeStatus S )

Helpers to ease debugging through output streams and print calls.

{

Definition at line 3664 of file Attributor.cpp.

References CHANGED.

◆ operator<<() [18/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
CmpInst::Predicate Pred )

Definition at line 3658 of file Instructions.cpp.

References llvm::CmpInst::getPredicateName().

◆ operator<<() [19/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AbstractAttribute & AA )

Forward declarations of output streams for debug purposes.

{

Definition at line 3714 of file Attributor.cpp.

◆ operator<<() [20/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AbstractState & State )

◆ operator<<() [21/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AddressRange & R )

Definition at line 64 of file ExtractRanges.cpp.

References HEX64.

◆ operator<<() [22/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AddressRanges & AR )

Definition at line 68 of file ExtractRanges.cpp.

References I, Size, and llvm::AddressRangesBase< T >::size().

◆ operator<<() [23/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AliasSet & AS )
inline

Definition at line 158 of file AliasSetTracker.h.

References llvm::AliasSet::print().

◆ operator<<() [24/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AliasSetTracker & AST )
inline

Definition at line 268 of file AliasSetTracker.h.

References llvm::AliasSetTracker::print().

◆ operator<<() [25/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const AllocInfo & AE )
inline

◆ operator<<() [26/149]

◆ operator<<() [27/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const APFixedPoint & FX )
inline

Definition at line 312 of file APFixedPoint.h.

References llvm::APFixedPoint::toString().

◆ operator<<() [28/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const APFloat & V )
inline

Definition at line 1666 of file APFloat.h.

◆ operator<<() [29/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const APInt & I )
inline

Definition at line 2183 of file APInt.h.

References I.

◆ operator<<() [30/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const APSInt & I )
inline

Definition at line 365 of file APSInt.h.

References I.

◆ operator<<() [31/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const ArgDescriptor & Arg )
inline

Definition at line 93 of file AMDGPUArgumentUsageInfo.h.

References llvm::ArgDescriptor::print().

◆ operator<<() [32/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const BitVector & V )
inlinestatic

Definition at line 167 of file StackLifetime.h.

◆ operator<<() [33/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const BT::BitValue & BV )

Definition at line 92 of file BitTracker.cpp.

◆ operator<<() [34/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const BT::RegisterCell & RC )

Definition at line 110 of file BitTracker.cpp.

◆ operator<<() [35/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const CacheCost & CC )

Definition at line 560 of file LoopCacheAnalysis.cpp.

◆ operator<<() [36/149]

◆ operator<<() [37/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Comdat & C )
inline

Definition at line 72 of file Comdat.h.

References llvm::CallingConv::C, const, and inline.

◆ operator<<() [38/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const ConstantFPRange & CR )
inline

Definition at line 205 of file ConstantFPRange.h.

References llvm::ConstantFPRange::print().

◆ operator<<() [39/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const ConstantRange & CR )
inline

Definition at line 620 of file ConstantRange.h.

References llvm::ConstantRange::print().

◆ operator<<() [40/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DataDependenceGraph & G )

Definition at line 252 of file DDG.cpp.

References G.

◆ operator<<() [41/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DbgMarker & Marker )
inline

Definition at line 677 of file DebugProgramInstruction.h.

References llvm::DbgMarker::print().

◆ operator<<() [42/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DbgRecord & R )
inline

Definition at line 230 of file DebugProgramInstruction.h.

◆ operator<<() [43/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DbgSSAPhi & PHI )
inline

Definition at line 118 of file DebugSSAUpdater.h.

References PHI.

◆ operator<<() [44/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DbgValueDef & DV )
inline

Definition at line 114 of file DebugSSAUpdater.h.

References llvm::DbgValueDef::print().

◆ operator<<() [45/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DDGEdge & E )

Definition at line 176 of file DDG.cpp.

◆ operator<<() [46/149]

◆ operator<<() [47/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DDGNode & N )

Definition at line 81 of file DDG.cpp.

References cast(), Count, I, llvm::raw_ostream::indent(), isa(), llvm_unreachable, and N.

◆ operator<<() [48/149]

◆ operator<<() [49/149]

template<typename LeafTy, typename ScalarTy>
raw_ostream & llvm::operator<< ( raw_ostream & OS,
const details::FixedOrScalableQuantity< LeafTy, ScalarTy > & PS )
inline

Stream operator function for FixedOrScalableQuantity.

Definition at line 426 of file TypeSize.h.

References llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::print().

◆ operator<<() [50/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DWARFAddressRange & R )

Definition at line 30 of file DWARFAddressRange.cpp.

◆ operator<<() [51/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DWARFLocationExpression & Loc )

Definition at line 15 of file DWARFLocationExpression.cpp.

References formatv(), and make_range().

◆ operator<<() [52/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const DynamicAPInt & X )
inline

Definition at line 235 of file DynamicAPInt.h.

References X.

◆ operator<<() [53/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const EVT & V )
inline

Definition at line 567 of file ValueTypes.h.

References const, and inline.

◆ operator<<() [54/149]

◆ operator<<() [55/149]

◆ operator<<() [56/149]

◆ operator<<() [57/149]

◆ operator<<() [58/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const HexagonBlockRanges::IndexRange & IR )

Definition at line 501 of file HexagonBlockRanges.cpp.

References IR.

◆ operator<<() [59/149]

Definition at line 516 of file HexagonBlockRanges.cpp.

◆ operator<<() [60/149]

Definition at line 525 of file HexagonBlockRanges.cpp.

References I, P, and printReg().

◆ operator<<() [61/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const HexagonBlockRanges::RangeList & RL )

Definition at line 509 of file HexagonBlockRanges.cpp.

◆ operator<<() [62/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const HexNumber & Value )

Definition at line 9 of file ScopedPrinter.cpp.

References utohexstr(), and llvm::Value::Value().

◆ operator<<() [63/149]

LLVM_ATTRIBUTE_UNUSED raw_ostream & llvm::operator<< ( raw_ostream & OS,
const ILPValue & Val )

Definition at line 1557 of file ScheduleDAGInstrs.cpp.

References llvm::ILPValue::print().

◆ operator<<() [64/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const indent & Indent )
inline

◆ operator<<() [65/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const IndexedReference & R )

Definition at line 129 of file LoopCacheAnalysis.cpp.

References Size.

◆ operator<<() [66/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Init & I )
inline

Definition at line 412 of file Record.h.

References I.

◆ operator<<() [67/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const InstructionCost & V )
inline

Definition at line 276 of file InstructionCost.h.

◆ operator<<() [68/149]

◆ operator<<() [69/149]

template<typename base_ty, base_ty BestState, base_ty WorstState>
raw_ostream & llvm::operator<< ( raw_ostream & OS,
const IntegerStateBase< base_ty, BestState, WorstState > & S )

◆ operator<<() [70/149]

◆ operator<<() [71/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const KnownBits & Known )
inline

Definition at line 571 of file KnownBits.h.

References llvm::KnownBits::print().

◆ operator<<() [72/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LiveInterval & LI )
inline

Definition at line 923 of file LiveInterval.h.

References llvm::LiveInterval::print().

◆ operator<<() [73/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LiveInterval::SubRange & SR )
inline

Definition at line 917 of file LiveInterval.h.

References llvm::LiveInterval::SubRange::print().

◆ operator<<() [74/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LivePhysRegs & LR )
inline

Definition at line 184 of file LivePhysRegs.h.

References llvm::LivePhysRegs::print().

◆ operator<<() [75/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LiveRange & LR )
inline

Definition at line 683 of file LiveInterval.h.

References llvm::LiveRange::print().

◆ operator<<() [76/149]

◆ operator<<() [77/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LiveRangeUpdater & X )
inline

Definition at line 993 of file LiveInterval.h.

References X.

◆ operator<<() [78/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LLT & Ty )
inline

Definition at line 411 of file LowLevelType.h.

◆ operator<<() [79/149]

template<class BlockT, class LoopT>
raw_ostream & llvm::operator<< ( raw_ostream & OS,
const LoopBase< BlockT, LoopT > & Loop )

Definition at line 516 of file GenericLoopInfo.h.

References llvm::LoopBase< BlockT, LoopT >::print().

◆ operator<<() [80/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MachineBasicBlock & MBB )

Definition at line 115 of file MachineBasicBlock.cpp.

References MBB.

◆ operator<<() [81/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MachineConstantPoolValue & V )
inline

Definition at line 57 of file MachineConstantPool.h.

◆ operator<<() [82/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MachineInstr & MI )
inline

Definition at line 2113 of file MachineInstr.h.

References MI.

◆ operator<<() [83/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MachineOperand & MO )
inline

Definition at line 1046 of file MachineOperand.h.

References llvm::MachineOperand::print().

◆ operator<<() [84/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MachineTraceMetrics::Ensemble & En )
inline

◆ operator<<() [85/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MachineTraceMetrics::Trace & Tr )
inline

Definition at line 439 of file MachineTraceMetrics.h.

References llvm::MachineTraceMetrics::Trace::print().

◆ operator<<() [86/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MCInst & MI )
inline

Definition at line 256 of file MCInst.h.

References MI.

◆ operator<<() [87/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MCLabel & Label )
inline

Definition at line 49 of file MCLabel.h.

◆ operator<<() [88/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MCOperand & MO )
inline

Definition at line 251 of file MCInst.h.

References llvm::MCOperand::print().

◆ operator<<() [89/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MCSymbol & Sym )
inline

Definition at line 381 of file MCSymbol.h.

References llvm::MCSymbol::print().

◆ operator<<() [90/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MemoryAccess & MA )
inline

Definition at line 238 of file MemorySSA.h.

References llvm::MemoryAccess::print().

◆ operator<<() [91/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Metadata & MD )
inline

Definition at line 170 of file Metadata.h.

References llvm::Metadata::print().

◆ operator<<() [92/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MIBInfo & MIB )
inline

◆ operator<<() [93/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const MVT & VT )
inline

Definition at line 587 of file MachineValueType.h.

References llvm::MVT::print().

◆ operator<<() [94/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const object::WasmSymbol & Sym )
inline

Definition at line 372 of file Wasm.h.

References llvm::object::WasmSymbol::print().

◆ operator<<() [95/149]

◆ operator<<() [96/149]

◆ operator<<() [97/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Printable & P )
inline

Definition at line 45 of file Printable.h.

References P.

◆ operator<<() [98/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const PseudoSourceValue * PSV )

Definition at line 1052 of file ScheduleDAGInstrs.cpp.

◆ operator<<() [99/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Record & R )

Definition at line 3038 of file Record.cpp.

References assert(), llvm::ArrayRef< T >::empty(), and llvm::RecordVal::print().

◆ operator<<() [100/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RecordKeeper & RK )

◆ operator<<() [101/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RecordVal & RV )
inline

Definition at line 1624 of file Record.h.

References llvm::RecordVal::print().

◆ operator<<() [102/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RecTy & Ty )
inline

Definition at line 107 of file Record.h.

◆ operator<<() [103/149]

template<class Tr>
raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RegionNodeBase< Tr > & Node )
inline

Print a RegionNode.

Definition at line 1012 of file RegionInfo.h.

◆ operator<<() [104/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RegisterBank & RegBank )
inline

Definition at line 85 of file RegisterBank.h.

References llvm::RegisterBank::print().

◆ operator<<() [105/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RegisterBankInfo::InstructionMapping & InstrMapping )
inline

◆ operator<<() [106/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RegisterBankInfo::OperandsMapper & OpdMapper )
inline

◆ operator<<() [107/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RegisterBankInfo::PartialMapping & PartMapping )
inline

◆ operator<<() [108/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const RegisterBankInfo::ValueMapping & ValMapping )
inline

Definition at line 771 of file RegisterBankInfo.h.

References llvm::RegisterBankInfo::ValueMapping::print().

◆ operator<<() [109/149]

template<class DigitsT>
raw_ostream & llvm::operator<< ( raw_ostream & OS,
const ScaledNumber< DigitsT > & X )

Definition at line 746 of file ScaledNumber.h.

References X.

◆ operator<<() [110/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const SCEV & S )
inline

Definition at line 197 of file ScalarEvolution.h.

References llvm::SCEV::print().

◆ operator<<() [111/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const SCEVPredicate & P )
inline

Definition at line 252 of file ScalarEvolution.h.

References P.

◆ operator<<() [112/149]

◆ operator<<() [113/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const StackLifetime::LiveRange & R )
inline

Definition at line 176 of file StackLifetime.h.

◆ operator<<() [114/149]

template<typename T, typename = decltype(std::declval<raw_ostream &>() << std::declval<const T &>())>
raw_ostream & llvm::operator<< ( raw_ostream & OS,
const std::optional< T > & O )

Definition at line 846 of file raw_ostream.h.

◆ operator<<() [115/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Twine & RHS )
inline

Definition at line 544 of file Twine.h.

References RHS.

◆ operator<<() [116/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Type & T )
inline

Definition at line 499 of file Type.h.

References const, inline, and T.

◆ operator<<() [117/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const Value & V )
inline

Definition at line 900 of file Value.h.

◆ operator<<() [118/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const ValueInfo & VI )
inline

Definition at line 262 of file ModuleSummaryIndex.h.

◆ operator<<() [119/149]

◆ operator<<() [120/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const VirtRegMap & VRM )
inline

Definition at line 189 of file VirtRegMap.h.

References llvm::VirtRegMap::print().

◆ operator<<() [121/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const VPlan & Plan )
inline

Definition at line 4435 of file VPlan.h.

References llvm::VPlan::print().

◆ operator<<() [122/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const VPRecipeBase & R )

Definition at line 77 of file VPlan.cpp.

References llvm::VPBlockBase::getPlan().

◆ operator<<() [123/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
const WebAssemblyException & WE )

◆ operator<<() [124/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
DenormalMode Mode )
inline

Definition at line 184 of file FloatingPointMode.h.

References Mode.

◆ operator<<() [125/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
FPClassTest Mask )

Write a human readable form of Mask to OS.

Definition at line 86 of file FloatingPointMode.cpp.

References assert(), fcNone, and NoFPClassName.

◆ operator<<() [126/149]

◆ operator<<() [127/149]

◆ operator<<() [128/149]

◆ operator<<() [129/149]

◆ operator<<() [130/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
LocationSize Size )
inline

Definition at line 202 of file MemoryLocation.h.

References Size.

◆ operator<<() [131/149]

◆ operator<<() [132/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
ModRefInfo MR )

Debug print ModRefInfo.

Definition at line 19 of file ModRef.cpp.

References Mod, ModRef, NoModRef, and Ref.

◆ operator<<() [133/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
RoundingMode RM )
inline

Definition at line 64 of file FloatingPointMode.h.

References spell().

◆ operator<<() [134/149]

◆ operator<<() [135/149]

◆ operator<<() [136/149]

raw_ostream & llvm::operator<< ( raw_ostream & os,
SlotIndex li )
inline

Definition at line 288 of file SlotIndexes.h.

References llvm::SlotIndex::print().

◆ operator<<() [137/149]

llvm::raw_ostream & llvm::operator<< ( raw_ostream & OS,
std::nullopt_t  )

Definition at line 11 of file Optional.cpp.

◆ operator<<() [138/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
sys::TimePoint<> TP )

Definition at line 62 of file Chrono.cpp.

References format(), and getStructTM().

◆ operator<<() [139/149]

LLVM_ABI raw_ostream & llvm::operator<< ( raw_ostream & OS,
sys::UtcTime<> TP )

References LLVM_ABI.

◆ operator<<() [140/149]

raw_ostream & llvm::operator<< ( raw_ostream & OS,
vfs::OutputConfig Config )

Definition at line 52 of file VirtualOutputConfig.cpp.

References llvm::vfs::OutputConfig::print().

◆ operator<<() [141/149]

raw_ostream & llvm::operator<< ( raw_ostream & Out,
const VersionTuple & V )

Print a version number.

Definition at line 30 of file VersionTuple.cpp.

◆ operator<<() [142/149]

raw_ostream & llvm::operator<< ( raw_ostream & R,
const ore::NV & Arg )
static

◆ operator<<() [143/149]

template<class RemarkT>
decltype(auto) llvm::operator<< ( RemarkT && R,
const InlineCost & IC )

◆ operator<<() [144/149]

template<class RemarkT>
decltype(auto) llvm::operator<< ( RemarkT && R,
std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, DiagnosticInfoOptimizationBase::Argument > A )

Definition at line 663 of file DiagnosticInfo.h.

References A().

◆ operator<<() [145/149]

template<class RemarkT>
decltype(auto) llvm::operator<< ( RemarkT && R,
std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, DiagnosticInfoOptimizationBase::setExtraArgs > EA )

Definition at line 685 of file DiagnosticInfo.h.

◆ operator<<() [146/149]

template<class RemarkT>
decltype(auto) llvm::operator<< ( RemarkT && R,
std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, DiagnosticInfoOptimizationBase::setIsVerbose > V )

Definition at line 674 of file DiagnosticInfo.h.

◆ operator<<() [147/149]

template<class RemarkT>
decltype(auto) llvm::operator<< ( RemarkT && R,
std::enable_if_t< std::is_base_of_v< DiagnosticInfoOptimizationBase, std::remove_reference_t< RemarkT > >, StringRef > 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 652 of file DiagnosticInfo.h.

◆ operator<<() [148/149]

template<typename T>
std::ostream & llvm::operator<< ( std::ostream & OS,
const StringMap< T > & M )

Support for printing to std::ostream, for use with e.g.

producing more useful error messages with Google Test.

Definition at line 24 of file StringMap.h.

References E(), formatv(), make_range(), and sort().

◆ operator<<() [149/149]

template<typename T>
std::ostream & llvm::operator<< ( std::ostream & OS,
const StringMapEntry< T > & E )

Support for printing to std::ostream, for use with e.g.

producing more useful error messages with Google Test.

Definition at line 33 of file StringMapEntry.h.

◆ operator<=() [1/12]

bool llvm::operator<= ( Align Lhs,
Align Rhs )
inline

Definition at line 265 of file Alignment.h.

◆ operator<=() [2/12]

bool llvm::operator<= ( Align Lhs,
MaybeAlign Rhs )
delete

◆ operator<=() [3/12]

bool llvm::operator<= ( Align Lhs,
uint64_t Rhs )
inline

Definition at line 241 of file Alignment.h.

References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().

◆ operator<=() [4/12]

template<typename T>
bool llvm::operator<= ( ArrayRef< T > LHS,
ArrayRef< T > RHS )
inline

Definition at line 576 of file ArrayRef.h.

References LHS, and RHS.

◆ operator<=() [5/12]

bool llvm::operator<= ( AtomicOrdering ,
AtomicOrdering  )
delete

◆ operator<=() [6/12]

bool llvm::operator<= ( AtomicOrderingCABI ,
AtomicOrderingCABI  )
delete

◆ operator<=() [7/12]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator<= ( const DynamicAPInt & A,
int64_t B )

Definition at line 614 of file DynamicAPInt.h.

◆ operator<=() [8/12]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator<= ( int64_t A,
const DynamicAPInt & B )

Definition at line 644 of file DynamicAPInt.h.

◆ operator<=() [9/12]

bool llvm::operator<= ( int64_t V1,
const APSInt & V2 )
inline

Definition at line 360 of file APSInt.h.

◆ operator<=() [10/12]

bool llvm::operator<= ( MaybeAlign Lhs,
Align Rhs )
delete

◆ operator<=() [11/12]

bool llvm::operator<= ( MaybeAlign Lhs,
MaybeAlign Rhs )
delete

◆ operator<=() [12/12]

bool llvm::operator<= ( StringRef LHS,
StringRef RHS )
inline

Definition at line 904 of file StringRef.h.

References LHS, and RHS.

◆ operator==() [1/39]

bool llvm::operator== ( Align Lhs,
Align Rhs )
inline

Comparisons operators between Align.

Definition at line 259 of file Alignment.h.

◆ operator==() [2/39]

bool llvm::operator== ( Align Lhs,
MaybeAlign Rhs )
inline

Definition at line 297 of file Alignment.h.

◆ operator==() [3/39]

bool llvm::operator== ( Align Lhs,
uint64_t Rhs )
inline

Comparisons between Align and scalars. Rhs must be positive.

Definition at line 233 of file Alignment.h.

References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().

◆ operator==() [4/39]

template<typename T>
bool llvm::operator== ( ArrayRef< T > LHS,
ArrayRef< T > RHS )
inline

Definition at line 545 of file ArrayRef.h.

References LHS, and RHS.

◆ operator==() [5/39]

◆ operator==() [6/39]

bool llvm::operator== ( const DbgValueLoc & A,
const DbgValueLoc & B )
inline

Compare two DbgValueLocs for equality.

Definition at line 274 of file DebugLocEntry.h.

◆ operator==() [7/39]

bool llvm::operator== ( const DbgValueLocEntry & A,
const DbgValueLocEntry & B )
inline

Compare two DbgValueLocEntries for equality.

Definition at line 254 of file DebugLocEntry.h.

◆ operator==() [8/39]

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 670 of file DenseMap.h.

References I, LHS, and RHS.

◆ operator==() [9/39]

template<typename DerivedT, typename KeyInfoT, typename BucketT>
bool llvm::operator== ( const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & LHS,
const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & RHS )

Definition at line 53 of file SymbolSet.h.

References I, LHS, and RHS.

◆ operator==() [10/39]

bool llvm::operator== ( const DIExpression::FragmentInfo & A,
const DIExpression::FragmentInfo & B )
inline

Definition at line 3752 of file DebugInfoMetadata.h.

References A(), and B().

◆ operator==() [11/39]

bool llvm::operator== ( const DWARFAddressRange & LHS,
const DWARFAddressRange & RHS )
inline

Definition at line 82 of file DWARFAddressRange.h.

References LHS, and RHS.

◆ operator==() [12/39]

bool llvm::operator== ( const DWARFDie & LHS,
const DWARFDie & RHS )
inline

Definition at line 351 of file DWARFDie.h.

References LHS, and RHS.

◆ operator==() [13/39]

bool llvm::operator== ( const DWARFDie::attribute_iterator & LHS,
const DWARFDie::attribute_iterator & RHS )
inline

Definition at line 341 of file DWARFDie.h.

◆ operator==() [14/39]

bool llvm::operator== ( const DWARFDie::iterator & LHS,
const DWARFDie::iterator & RHS )
inline

Definition at line 391 of file DWARFDie.h.

◆ operator==() [15/39]

bool llvm::operator== ( const DWARFExpression::iterator & LHS,
const DWARFExpression::iterator & RHS )
inline

Definition at line 166 of file DWARFExpression.h.

◆ operator==() [16/39]

bool llvm::operator== ( const DWARFLocationExpression & L,
const DWARFLocationExpression & R )
inline

Definition at line 32 of file DWARFLocationExpression.h.

◆ operator==() [17/39]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator== ( const DynamicAPInt & A,
int64_t B )

We provide special implementations of the comparison operators rather than calling through as above, as this would result in a 1.2x slowdown.

Definition at line 594 of file DynamicAPInt.h.

◆ operator==() [18/39]

template<class T, class E>
std::enable_if_t< std::is_error_code_enum< E >::value||std::is_error_condition_enum< E >::value, bool > llvm::operator== ( const ErrorOr< T > & Err,
E Code )

Definition at line 266 of file ErrorOr.h.

References E().

◆ operator==() [19/39]

bool llvm::operator== ( const HTTPRequest & A,
const HTTPRequest & B )

References A(), and B().

◆ operator==() [20/39]

template<class T, class U>
bool llvm::operator== ( const IntrusiveRefCntPtr< T > & A,
const IntrusiveRefCntPtr< U > & B )
inline

Definition at line 240 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator==() [21/39]

template<class T>
bool llvm::operator== ( const IntrusiveRefCntPtr< T > & A,
std::nullptr_t B )

Definition at line 277 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator==() [22/39]

template<class T, class U>
bool llvm::operator== ( const IntrusiveRefCntPtr< T > & A,
U * B )
inline

Definition at line 252 of file IntrusiveRefCntPtr.h.

References A(), and B().

◆ operator==() [23/39]

template<typename PtrType>
bool llvm::operator== ( const SmallPtrSetImpl< PtrType > & LHS,
const SmallPtrSetImpl< PtrType > & RHS )

Equality comparison for SmallPtrSet.

Iterates over elements of LHS confirming that each value from LHS is also in RHS, and that no additional values are in RHS.

Definition at line 515 of file SmallPtrSet.h.

References LHS, and RHS.

◆ operator==() [24/39]

template<typename T, unsigned LN, unsigned RN, typename C>
bool llvm::operator== ( const SmallSet< T, LN, C > & LHS,
const SmallSet< T, RN, C > & RHS )

Equality comparison for SmallSet.

Iterates over elements of LHS confirming that each element is also a member of RHS, and that RHS contains no additional values. Equivalent to N calls to RHS.count. For small-set mode amortized complexity is O(N^2) For large-set mode amortized complexity is linear, worst case is O(N^2) (if every hash collides).

Definition at line 282 of file SmallSet.h.

References all_of(), E(), LHS, RHS, and T.

◆ operator==() [25/39]

bool llvm::operator== ( const std::reverse_iterator< DWARFDie::iterator > & LHS,
const std::reverse_iterator< DWARFDie::iterator > & RHS )
inline

Definition at line 472 of file DWARFDie.h.

References LHS, and RHS.

◆ operator==() [26/39]

bool llvm::operator== ( const ValueInfo & A,
const ValueInfo & B )
inline

Definition at line 269 of file ModuleSummaryIndex.h.

References A(), assert(), and B().

◆ operator==() [27/39]

bool llvm::operator== ( DIDerivedType::PtrAuthData Lhs,
DIDerivedType::PtrAuthData Rhs )
inline

Definition at line 1442 of file DebugInfoMetadata.h.

References llvm::DIDerivedType::PtrAuthData::RawData.

◆ operator==() [28/39]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator== ( int64_t A,
const DynamicAPInt & B )

Definition at line 624 of file DynamicAPInt.h.

◆ operator==() [29/39]

bool llvm::operator== ( int64_t V1,
const APSInt & V2 )
inline

Definition at line 358 of file APSInt.h.

◆ operator==() [30/39]

bool llvm::operator== ( MaybeAlign Lhs,
Align Rhs )
inline

Definition at line 295 of file Alignment.h.

◆ operator==() [31/39]

bool llvm::operator== ( MaybeAlign Lhs,
MaybeAlign Rhs )
inline

Definition at line 300 of file Alignment.h.

◆ operator==() [32/39]

bool llvm::operator== ( MaybeAlign Lhs,
std::nullopt_t  )
inline

Definition at line 305 of file Alignment.h.

◆ operator==() [33/39]

template<typename ... PTs>
bool llvm::operator== ( PointerUnion< PTs... > lhs,
PointerUnion< PTs... > rhs )

Definition at line 207 of file PointerUnion.h.

References llvm::PointerUnion< PTs >::getOpaqueValue().

◆ operator==() [34/39]

template<typename T>
bool llvm::operator== ( SmallVectorImpl< T > & LHS,
ArrayRef< T > RHS )
inline

Definition at line 550 of file ArrayRef.h.

References llvm::ArrayRef< T >::equals(), LHS, and RHS.

◆ operator==() [35/39]

bool llvm::operator== ( std::nullopt_t ,
MaybeAlign Rhs )
inline

Definition at line 307 of file Alignment.h.

◆ operator==() [36/39]

template<class T>
bool llvm::operator== ( std::nullptr_t ,
const IntrusiveRefCntPtr< T > & B )

Definition at line 272 of file IntrusiveRefCntPtr.h.

References B().

◆ operator==() [37/39]

bool llvm::operator== ( StringRef LHS,
StringRef RHS )
inline

Definition at line 890 of file StringRef.h.

References LHS, and RHS.

◆ operator==() [38/39]

template<class T, class U>
bool llvm::operator== ( T * A,
const IntrusiveRefCntPtr< U > & B )
inline

Definition at line 262 of file IntrusiveRefCntPtr.h.

References A(), B(), and T.

◆ operator==() [39/39]

bool llvm::operator== ( uint64_t V1,
const APInt & V2 )
inline

Definition at line 2111 of file APInt.h.

References const, and inline.

◆ operator>() [1/12]

bool llvm::operator> ( Align Lhs,
Align Rhs )
inline

Definition at line 274 of file Alignment.h.

◆ operator>() [2/12]

bool llvm::operator> ( Align Lhs,
MaybeAlign Rhs )
delete

◆ operator>() [3/12]

bool llvm::operator> ( Align Lhs,
uint64_t Rhs )
inline

Definition at line 253 of file Alignment.h.

References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().

◆ operator>() [4/12]

template<typename T>
bool llvm::operator> ( ArrayRef< T > LHS,
ArrayRef< T > RHS )
inline

Definition at line 571 of file ArrayRef.h.

References LHS, and RHS.

◆ operator>() [5/12]

bool llvm::operator> ( AtomicOrdering ,
AtomicOrdering  )
delete

◆ operator>() [6/12]

bool llvm::operator> ( AtomicOrderingCABI ,
AtomicOrderingCABI  )
delete

◆ operator>() [7/12]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator> ( const DynamicAPInt & A,
int64_t B )

Definition at line 604 of file DynamicAPInt.h.

◆ operator>() [8/12]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator> ( int64_t A,
const DynamicAPInt & B )

Definition at line 634 of file DynamicAPInt.h.

◆ operator>() [9/12]

bool llvm::operator> ( int64_t V1,
const APSInt & V2 )
inline

Definition at line 363 of file APSInt.h.

◆ operator>() [10/12]

bool llvm::operator> ( MaybeAlign Lhs,
Align Rhs )
delete

◆ operator>() [11/12]

bool llvm::operator> ( MaybeAlign Lhs,
MaybeAlign Rhs )
delete

◆ operator>() [12/12]

bool llvm::operator> ( StringRef LHS,
StringRef RHS )
inline

Definition at line 908 of file StringRef.h.

References LHS, and RHS.

◆ operator>=() [1/12]

bool llvm::operator>= ( Align Lhs,
Align Rhs )
inline

Definition at line 268 of file Alignment.h.

◆ operator>=() [2/12]

bool llvm::operator>= ( Align Lhs,
MaybeAlign Rhs )
delete

◆ operator>=() [3/12]

bool llvm::operator>= ( Align Lhs,
uint64_t Rhs )
inline

Definition at line 245 of file Alignment.h.

References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().

◆ operator>=() [4/12]

template<typename T>
bool llvm::operator>= ( ArrayRef< T > LHS,
ArrayRef< T > RHS )
inline

Definition at line 581 of file ArrayRef.h.

References LHS, and RHS.

◆ operator>=() [5/12]

bool llvm::operator>= ( AtomicOrdering ,
AtomicOrdering  )
delete

◆ operator>=() [6/12]

bool llvm::operator>= ( AtomicOrderingCABI ,
AtomicOrderingCABI  )
delete

◆ operator>=() [7/12]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator>= ( const DynamicAPInt & A,
int64_t B )

Definition at line 619 of file DynamicAPInt.h.

◆ operator>=() [8/12]

LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator>= ( int64_t A,
const DynamicAPInt & B )

Definition at line 649 of file DynamicAPInt.h.

◆ operator>=() [9/12]

bool llvm::operator>= ( int64_t V1,
const APSInt & V2 )
inline

Definition at line 361 of file APSInt.h.

◆ operator>=() [10/12]

bool llvm::operator>= ( MaybeAlign Lhs,
Align Rhs )
delete

◆ operator>=() [11/12]

bool llvm::operator>= ( MaybeAlign Lhs,
MaybeAlign Rhs )
delete

◆ operator>=() [12/12]

bool llvm::operator>= ( StringRef LHS,
StringRef RHS )
inline

Definition at line 912 of file StringRef.h.

References LHS, and RHS.

◆ operator>>()

template<class DigitsT>
ScaledNumber< DigitsT > llvm::operator>> ( const ScaledNumber< DigitsT > & L,
int16_t Shift )

Definition at line 740 of file ScaledNumber.h.

◆ operator^() [1/7]

APInt llvm::operator^ ( APInt a,
const APInt & b )
inline

Definition at line 2163 of file APInt.h.

References operator^().

Referenced by operator^(), operator^(), operator^(), and operator^().

◆ operator^() [2/7]

APInt llvm::operator^ ( APInt a,
uint64_t RHS )
inline

Definition at line 2173 of file APInt.h.

References operator^(), and RHS.

◆ operator^() [3/7]

APInt llvm::operator^ ( const APInt & a,
APInt && b )
inline

Definition at line 2168 of file APInt.h.

References operator^().

◆ operator^() [4/7]

KnownBits llvm::operator^ ( const KnownBits & LHS,
KnownBits && RHS )
inline

Definition at line 566 of file KnownBits.h.

References LHS, and RHS.

◆ operator^() [5/7]

SmallBitVector llvm::operator^ ( const SmallBitVector & LHS,
const SmallBitVector & RHS )
inline

Definition at line 726 of file SmallBitVector.h.

References LHS, and RHS.

◆ operator^() [6/7]

KnownBits llvm::operator^ ( KnownBits LHS,
const KnownBits & RHS )
inline

Definition at line 561 of file KnownBits.h.

References LHS, and RHS.

◆ operator^() [7/7]

APInt llvm::operator^ ( uint64_t LHS,
APInt b )
inline

Definition at line 2178 of file APInt.h.

References LHS, and operator^().

◆ operator|() [1/15]

APInt llvm::operator| ( APInt a,
const APInt & b )
inline

Definition at line 2143 of file APInt.h.

References operator|().

Referenced by operator|(), operator|(), operator|(), and operator|().

◆ operator|() [2/15]

APInt llvm::operator| ( APInt a,
uint64_t RHS )
inline

Definition at line 2153 of file APInt.h.

References operator|(), and RHS.

◆ operator|() [3/15]

ChangeStatus llvm::operator| ( ChangeStatus L,
ChangeStatus R )

Logic operators for the change status enum class.

{

Definition at line 184 of file Attributor.cpp.

References CHANGED.

◆ operator|() [4/15]

APInt llvm::operator| ( const APInt & a,
APInt && b )
inline

Definition at line 2148 of file APInt.h.

References operator|().

◆ operator|() [5/15]

JITSymbolFlags llvm::operator| ( const JITSymbolFlags & LHS,
const JITSymbolFlags::FlagNames & RHS )
inline

Definition at line 203 of file JITSymbol.h.

References LHS, and RHS.

◆ operator|() [6/15]

KnownBits llvm::operator| ( const KnownBits & LHS,
KnownBits && RHS )
inline

Definition at line 556 of file KnownBits.h.

References LHS, and RHS.

◆ operator|() [7/15]

KnownFPClass llvm::operator| ( const KnownFPClass & LHS,
KnownFPClass && RHS )
inline

Definition at line 232 of file KnownFPClass.h.

References LHS, and RHS.

◆ operator|() [8/15]

SmallBitVector llvm::operator| ( const SmallBitVector & LHS,
const SmallBitVector & RHS )
inline

Definition at line 719 of file SmallBitVector.h.

References LHS, and RHS.

◆ operator|() [9/15]

template<unsigned ElementSize>
SparseBitVector< ElementSize > llvm::operator| ( const SparseBitVector< ElementSize > & LHS,
const SparseBitVector< ElementSize > & RHS )
inline

Definition at line 847 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator|() [10/15]

FastMathFlags llvm::operator| ( FastMathFlags LHS,
FastMathFlags RHS )
inline

Definition at line 126 of file FMF.h.

References LHS, and RHS.

◆ operator|() [11/15]

KnownBits llvm::operator| ( KnownBits LHS,
const KnownBits & RHS )
inline

Definition at line 551 of file KnownBits.h.

References LHS, and RHS.

◆ operator|() [12/15]

KnownFPClass llvm::operator| ( KnownFPClass LHS,
const KnownFPClass & RHS )
inline

Definition at line 227 of file KnownFPClass.h.

References LHS, and RHS.

◆ operator|() [13/15]

RemapFlags llvm::operator| ( RemapFlags LHS,
RemapFlags RHS )
inline

Definition at line 118 of file ValueMapper.h.

References LHS, and RHS.

◆ operator|() [14/15]

SDNodeFlags llvm::operator| ( SDNodeFlags LHS,
SDNodeFlags RHS )
inline

Definition at line 489 of file SelectionDAGNodes.h.

References LHS, and RHS.

◆ operator|() [15/15]

APInt llvm::operator| ( uint64_t LHS,
APInt b )
inline

Definition at line 2158 of file APInt.h.

References LHS, and operator|().

◆ operator|=() [1/3]

ChangeStatus & llvm::operator|= ( ChangeStatus & l,
ChangeStatus r )

Definition at line 187 of file Attributor.cpp.

◆ operator|=() [2/3]

template<unsigned ElementSize>
bool llvm::operator|= ( SparseBitVector< ElementSize > & LHS,
const SparseBitVector< ElementSize > * RHS )
inline

Definition at line 820 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator|=() [3/3]

template<unsigned ElementSize>
bool llvm::operator|= ( SparseBitVector< ElementSize > * LHS,
const SparseBitVector< ElementSize > & RHS )
inline

Definition at line 826 of file SparseBitVector.h.

References LHS, and RHS.

◆ operator~()

APInt llvm::operator~ ( APInt v)
inline

Unary bitwise complement operator.

Returns
an APInt that is the bitwise complement of v.

Definition at line 2118 of file APInt.h.

References operator~().

Referenced by operator~().

◆ optimal_concurrency()

ThreadPoolStrategy llvm::optimal_concurrency ( unsigned TaskCount = 0)
inline

Returns an optimal thread strategy to execute specified amount of tasks.

This strategy should prevent us from creating too many threads if we occasionaly have an unexpectedly small amount of tasks.

Definition at line 206 of file Threading.h.

References llvm::ThreadPoolStrategy::Limit, and llvm::ThreadPoolStrategy::ThreadsRequested.

Referenced by llvm::dwarf_linker::parallel::DWARFLinkerImpl::link().

◆ optimized_def_chain()

template<class T>
iterator_range< def_chain_iterator< T, true > > llvm::optimized_def_chain ( T MA)
inline

Definition at line 1372 of file MemorySSA.h.

References make_range(), and T.

◆ optimizeGlobalCtorsList()

bool llvm::optimizeGlobalCtorsList ( Module & M,
function_ref< bool(uint32_t, 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 110 of file CtorUtils.cpp.

References dbgs(), F, findGlobalCtors(), LLVM_DEBUG, parseGlobalCtors(), removeGlobalCtors(), llvm::BitVector::set(), and stable_sort().

Referenced by optimizeGlobalsInModule(), and llvm::GlobalDCEPass::run().

◆ or32le()

void llvm::or32le ( void * P,
int32_t V )
static

◆ outs()

raw_fd_ostream & llvm::outs ( )

This returns a reference to a raw_fd_ostream for standard output.

Use it like: outs() << "foo" << "bar";

Definition at line 894 of file raw_ostream.cpp.

References assert(), llvm::sys::fs::OF_None, and STDOUT_FILENO.

Referenced by llvm::DroppedVariableStats::calculateDroppedStatsAndPrint(), CleanupStdHandles(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), dlltoolDriverMain(), doList(), llvm::DroppedVariableStats::DroppedVariableStats(), llvm::AArch64::ExtensionSet::dump(), llvm::pdb::PDBSymbol::dumpChildStats(), llvm::object::OffloadBundleFatBin::dumpEntries(), llvm::AADepGraph::dumpGraph(), llvm::pdb::PDBSymbol::dumpProperties(), fouts(), llvm::logicalview::LVCompare::getInstance(), llvm::logicalview::LVReader::getInstance(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::isClangModuleRef(), llvm::dwarf_linker::parallel::DependencyTracker::isLiveSubprogramEntry(), llvm::dwarf_linker::parallel::DependencyTracker::isLiveVariableEntry(), libDriverMain(), llvm::dwarf_linker::classic::DWARFLinker::link(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::link(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::link(), lle_X_printf(), llvm::AADepGraph::print(), llvm::AttributorCallGraph::print(), llvm::AArch64::printEnabledExtensions(), llvm::RISCVISAInfo::printEnabledExtensions(), llvm::object::OffloadBundleFatBin::printEntriesAsURI(), llvm::cl::Option::printEnumValHelpStr(), PrintExtension(), llvm::cl::generic_parser_base::printGenericOptionDiff(), llvm::cl::Option::printHelpStr(), llvm::cl::basic_parser_impl::printOptionInfo(), llvm::cl::generic_parser_base::printOptionInfo(), llvm::cl::basic_parser_impl::printOptionName(), llvm::cl::basic_parser_impl::printOptionNoValue(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::printStatistic(), llvm::AArch64::PrintSupportedExtensions(), llvm::ARM::PrintSupportedExtensions(), llvm::RISCVISAInfo::printSupportedExtensions(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::registerModuleReference(), runNewPMPasses(), llvm::sandboxir::PrintInstructionCount::runOnRegion(), llvm::sandboxir::PrintRegion::runOnRegion(), llvm::ToolOutputFile::ToolOutputFile(), and writeToOutput().

◆ overwriteULEB128()

uint64_t llvm::overwriteULEB128 ( uint8_t * bufLoc,
uint64_t val )
inline

Overwrite a ULEB128 value and keep the original length.

Definition at line 225 of file LEB128.h.

◆ packConstantV2I16()

◆ parallelFor()

void llvm::parallelFor ( size_t Begin,
size_t End,
llvm::function_ref< void(size_t)> Fn )

◆ parallelForEach() [1/2]

template<class IterTy, class FuncTy>
void llvm::parallelForEach ( IterTy Begin,
IterTy End,
FuncTy Fn )

◆ parallelForEach() [2/2]

template<class RangeTy, class FuncTy>
void llvm::parallelForEach ( RangeTy && R,
FuncTy Fn )

Definition at line 261 of file Parallel.h.

References parallelForEach().

◆ parallelForEachError()

template<class RangeTy, class FuncTy>
Error llvm::parallelForEachError ( RangeTy && R,
FuncTy Fn )

◆ parallelSort() [1/2]

template<class RandomAccessIterator, class Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>>
void llvm::parallelSort ( RandomAccessIterator Start,
RandomAccessIterator End,
const Comparator & Comp = Comparator() )

◆ parallelSort() [2/2]

template<class RangeTy, class Comparator = std::less<decltype(*std::begin(RangeTy()))>>
void llvm::parallelSort ( RangeTy && R,
const Comparator & Comp = Comparator() )

Definition at line 256 of file Parallel.h.

References parallelSort().

◆ parallelTransformReduce() [1/2]

template<class IterTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
ResultTy llvm::parallelTransformReduce ( IterTy Begin,
IterTy End,
ResultTy Init,
ReduceFuncTy Reduce,
TransformFuncTy Transform )

Definition at line 239 of file Parallel.h.

References I, and llvm::parallel::strategy.

Referenced by parallelForEachError(), and parallelTransformReduce().

◆ parallelTransformReduce() [2/2]

template<class RangeTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>
ResultTy llvm::parallelTransformReduce ( RangeTy && R,
ResultTy Init,
ReduceFuncTy Reduce,
TransformFuncTy Transform )

Definition at line 267 of file Parallel.h.

References parallelTransformReduce().

◆ 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 877 of file PassBuilder.h.

References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), llvm::StringRef::ends_with(), llvm::StringRef::size(), llvm::StringRef::starts_with(), 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 785 of file IRMutator.cpp.

References Data, errs(), parseModule(), Size, and verifyModule().

◆ parseAssembly()

std::unique_ptr< Module > llvm::parseAssembly ( MemoryBufferRef F,
SMDiagnostic & Err,
LLVMContext & Context,
SlotMapping * Slots = nullptr,
DataLayoutCallbackTy DataLayoutCallback = [](StringRefStringRef) { return std::nullopt; } )

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.
DataLayoutCallbackOverride datalayout in the llvm assembly.

Definition at line 47 of file Parser.cpp.

References F, and parseAssemblyInto().

Referenced by getLazyIRModule(), parseAssemblyFile(), parseAssemblyString(), parseIR(), and llvm::MIRParserImpl::parseIRModule().

◆ parseAssemblyFile()

std::unique_ptr< Module > llvm::parseAssemblyFile ( StringRef Filename,
SMDiagnostic & Err,
LLVMContext & Context,
SlotMapping * Slots = nullptr )

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.

Definition at line 59 of file Parser.cpp.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and parseAssembly().

◆ parseAssemblyFileWithIndex()

ParsedModuleAndIndex llvm::parseAssemblyFileWithIndex ( StringRef Filename,
SMDiagnostic & Err,
LLVMContext & Context,
SlotMapping * Slots = nullptr,
DataLayoutCallbackTy DataLayoutCallback = [](StringRefStringRef) { return std::nullopt; } )

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.
DataLayoutCallbackOverride datalayout in the llvm assembly.

Definition at line 120 of file Parser.cpp.

◆ parseAssemblyFileWithIndexNoUpgradeDebugInfo()

ParsedModuleAndIndex llvm::parseAssemblyFileWithIndexNoUpgradeDebugInfo ( StringRef Filename,
SMDiagnostic & Err,
LLVMContext & Context,
SlotMapping * Slots,
DataLayoutCallbackTy DataLayoutCallback )

Only for use in llvm-as for testing; this does not produce a valid module.

Definition at line 128 of file Parser.cpp.

◆ parseAssemblyInto()

bool llvm::parseAssemblyInto ( MemoryBufferRef F,
Module * M,
ModuleSummaryIndex * Index,
SMDiagnostic & Err,
SlotMapping * Slots = nullptr,
DataLayoutCallbackTy DataLayoutCallback = [](StringRefStringRef) { return std::nullopt; } )

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
DataLayoutCallbackOverride datalayout in the llvm assembly.

Definition at line 38 of file Parser.cpp.

References F.

Referenced by parseAssembly(), and parseAssemblyWithIndex().

◆ parseAssemblyString()

std::unique_ptr< Module > llvm::parseAssemblyString ( StringRef AsmString,
SMDiagnostic & Err,
LLVMContext & Context,
SlotMapping * Slots = nullptr )

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.

Definition at line 136 of file Parser.cpp.

References F, and parseAssembly().

◆ parseAssemblyWithIndex()

ParsedModuleAndIndex llvm::parseAssemblyWithIndex ( MemoryBufferRef F,
SMDiagnostic & Err,
LLVMContext & Context,
SlotMapping * Slots = nullptr )

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.

parseAssemblyFileWithIndex is a wrapper around this function.

Definition at line 91 of file Parser.cpp.

References F.

Referenced by parseAssemblyFileWithIndex().

◆ parseBasicTypeName()

◆ parseBitcodeFile()

Expected< std::unique_ptr< Module > > llvm::parseBitcodeFile ( MemoryBufferRef Buffer,
LLVMContext & Context,
ParserCallbacks Callbacks = {} )

◆ 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 78 of file CachePruning.cpp.

References llvm::CachePruningPolicy::Expiration, llvm::StringRef::getAsInteger(), inconvertibleErrorCode(), InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::CachePruningPolicy::Interval, make_error(), llvm::CachePruningPolicy::MaxSizeBytes, llvm::CachePruningPolicy::MaxSizeFiles, llvm::CachePruningPolicy::MaxSizePercentageOfAvailableSpace, P, parseDuration(), and Size.

Referenced by getCachedOrDownloadArtifact().

◆ parseCommandLineOptions()

void llvm::parseCommandLineOptions ( std::vector< std::string > & Options)

A convenience function that calls cl::ParseCommandLineOptions on the given set of options.

Definition at line 669 of file LTOCodeGenerator.cpp.

References Options, and llvm::cl::ParseCommandLineOptions().

Referenced by llvm::LTOCodeGenerator::parseCodeGenDebugOptions().

◆ 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 188 of file Parser.cpp.

References llvm::SourceMgr::AddNewSourceBuffer(), llvm::CallingConv::C, llvm::Module::getContext(), llvm::MemoryBuffer::getMemBuffer(), and llvm::LLParser::parseStandaloneConstantValue().

Referenced by llvm::MIRParserImpl::initializeConstantPool(), and parseIRConstant().

◆ parseDenormalFPAttribute()

DenormalMode llvm::parseDenormalFPAttribute ( StringRef Str)
inline

Returns the denormal mode to use for inputs and outputs.

Definition at line 219 of file FloatingPointMode.h.

References llvm::StringRef::empty(), Mode, parseDenormalFPAttributeComponent(), and llvm::StringRef::split().

Referenced by checkDenormalAttributeConsistency(), and llvm::SIModeRegisterDefaults::SIModeRegisterDefaults().

◆ parseDenormalFPAttributeComponent()

◆ parseDIExpressionBodyAtBeginning()

◆ 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 18 of file FuzzerCLI.cpp.

References I, and llvm::cl::ParseCommandLineOptions().

◆ parseInfoSectionUnitHeader()

◆ parseIR()

std::unique_ptr< Module > llvm::parseIR ( MemoryBufferRef Buffer,
SMDiagnostic & Err,
LLVMContext & Context,
ParserCallbacks Callbacks = {} )

◆ parseIRFile()

std::unique_ptr< Module > llvm::parseIRFile ( StringRef Filename,
SMDiagnostic & Err,
LLVMContext & Context,
ParserCallbacks Callbacks = {} )

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
DataLayoutCallbackOverride datalayout in the llvm assembly.

Definition at line 94 of file IRReader.cpp.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and parseIR().

◆ 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 3615 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 3621 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::initializeMachineFunction().

◆ parseMachineMetadata()

bool llvm::parseMachineMetadata ( PerFunctionMIParsingState & PFS,
StringRef Src,
SMRange SourceRange,
SMDiagnostic & Error )

Definition at line 3661 of file MIParser.cpp.

◆ parseMBBReference()

bool llvm::parseMBBReference ( PerFunctionMIParsingState & PFS,
MachineBasicBlock *& MBB,
StringRef Src,
SMDiagnostic & Error )

Definition at line 3626 of file MIParser.cpp.

References MBB.

◆ parseMDNode()

bool llvm::parseMDNode ( PerFunctionMIParsingState & PFS,
MDNode *& Node,
StringRef Src,
SMDiagnostic & Error )

Definition at line 3656 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 753 of file IRMutator.cpp.

References Data, errs(), llvm::MemoryBuffer::getMemBuffer(), parseBitcodeFile(), Size, and toString().

Referenced by parseAndVerify().

◆ parseNamedRegisterReference()

◆ parseRegisterReference()

bool llvm::parseRegisterReference ( PerFunctionMIParsingState & PFS,
Register & Reg,
StringRef Src,
SMDiagnostic & Error )

Definition at line 3632 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::parseRegisterInfo().

◆ parseStackObjectReference()

bool llvm::parseStackObjectReference ( PerFunctionMIParsingState & PFS,
int & FI,
StringRef Src,
SMDiagnostic & Error )

Definition at line 3650 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::initializeFrameInfo().

◆ parseStatepointDirectivesFromAttrs()

StatepointDirectives llvm::parseStatepointDirectivesFromAttrs ( AttributeList AS)

Parse out statepoint directives from the function attributes present in AS.

Definition at line 24 of file Statepoint.cpp.

References llvm::StringRef::getAsInteger(), llvm::Attribute::getValueAsString(), and llvm::Attribute::isStringAttribute().

Referenced by llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), and makeStatepointExplicitImpl().

◆ 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 159 of file Parser.cpp.

References F, and parseSummaryIndexAssemblyInto().

Referenced by parseSummaryIndexAssemblyFile(), and parseSummaryIndexAssemblyString().

◆ 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 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 170 of file Parser.cpp.

References llvm::SourceMgr::DK_Error, llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and parseSummaryIndexAssembly().

◆ parseSummaryIndexAssemblyString()

std::unique_ptr< ModuleSummaryIndex > llvm::parseSummaryIndexAssemblyString ( StringRef AsmString,
SMDiagnostic & Err )

The function is a secondary interface to the LLVM Assembly Parser.

It parses an ASCII string 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 from a string

Parameters
AsmStringThe string containing assembly
ErrError result info.

Definition at line 183 of file Parser.cpp.

References F, and parseSummaryIndexAssembly().

◆ 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 200 of file Parser.cpp.

References llvm::SourceMgr::AddNewSourceBuffer(), llvm::SourceMgr::DK_Error, llvm::SMLoc::getFromPointer(), llvm::MemoryBuffer::getMemBuffer(), llvm::SourceMgr::GetMessage(), parseTypeAtBeginning(), and Read.

◆ 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 216 of file Parser.cpp.

References llvm::SourceMgr::AddNewSourceBuffer(), llvm::Module::getContext(), llvm::MemoryBuffer::getMemBuffer(), llvm::LLParser::parseTypeAtBeginning(), and Read.

Referenced by parseType().

◆ parseTypeString()

◆ parseVirtualRegisterReference()

bool llvm::parseVirtualRegisterReference ( PerFunctionMIParsingState & PFS,
VRegInfo *& Info,
StringRef Src,
SMDiagnostic & Error )

Definition at line 3644 of file MIParser.cpp.

Referenced by llvm::MIRParserImpl::parseRegisterInfo().

◆ parseWidenableBranch() [1/2]

bool llvm::parseWidenableBranch ( const User * U,
Value *& Condition,
Value *& WidenableCondition,
BasicBlock *& IfTrueBB,
BasicBlock *& IfFalseBB )

If U is widenable branch looking like: cond = ... wc = call i1 @llvm.experimental.widenable.condition() branch_cond = and i1 cond, wc br i1 branch_cond, label if_true_bb, label if_false_bb ; <— U The function returns true, and the values cond and wc and blocks if_true_bb, if_false_bb are returned in the parameters (Condition, WidenableCondition, IfTrueBB and IfFalseFF) respectively.

If U does not match this pattern, return false.

Definition at line 53 of file GuardUtils.cpp.

References llvm::CallingConv::C, llvm::BasicBlock::getContext(), llvm::ConstantInt::getTrue(), and parseWidenableBranch().

Referenced by isWidenableBranch(), parseWidenableBranch(), setWidenableBranchCond(), and widenWidenableBranch().

◆ parseWidenableBranch() [2/2]

bool llvm::parseWidenableBranch ( User * U,
Use *& Cond,
Use *& WC,
BasicBlock *& IfTrueBB,
BasicBlock *& IfFalseBB )

Analogous to the above, but return the Uses so that they can be modified.

Unlike previous version, Condition is optional and may be null.

Definition at line 69 of file GuardUtils.cpp.

References A(), B(), llvm::CallingConv::C, Cond, dyn_cast(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().

◆ parseWidenableGuard()

◆ partAsHex()

unsigned int llvm::partAsHex ( char * dst,
APFloatBase::integerPart part,
unsigned int count,
const char * hexDigitChars )
static

Definition at line 855 of file APFloat.cpp.

References assert(), count(), and llvm::APFloatBase::integerPartWidth.

◆ partCountForBits()

◆ partition()

template<typename R, typename UnaryPredicate>
auto llvm::partition ( R && Range,
UnaryPredicate P )

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

Definition at line 1955 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by llvm::ARMBaseInstrInfo::getOutliningCandidateInfo(), reconnectChildLoops(), and llvm::GenericConvergenceVerifier< ContextT >::verify().

◆ partition_point()

template<typename R, typename Predicate, typename Val = decltype(*adl_begin(std::declval<R>()))>
auto llvm::partition_point ( R && Range,
Predicate P )

◆ passCopy()

MachineInstr * llvm::passCopy ( MachineInstr * Def,
const MachineRegisterInfo * MRI )

Definition at line 963 of file SPIRVUtils.cpp.

References MRI.

Referenced by getDef(), and isConstReg().

◆ patchAddrBase()

void llvm::patchAddrBase ( DIE & Die,
DIEInteger Offset )
static

Definition at line 2178 of file DWARFLinker.cpp.

References llvm_unreachable, Offset, and llvm::DIEValueList::values().

◆ patchReplacementInstruction()

void llvm::patchReplacementInstruction ( Instruction * I,
Value * Repl )

Patch the replacement so that it is not more restrictive than the value being replaced.

It assumes that the replacement does not get moved from its original position.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3143 of file Local.cpp.

References assert(), combineMetadataForCSE(), llvm::Instruction::dropPoisonGeneratingFlags(), dyn_cast(), I, isa(), llvm::PatternMatch::m_ExtractValue(), llvm::PatternMatch::m_WithOverflowInst(), llvm::PatternMatch::match(), and Success.

Referenced by patchAndReplaceAllUsesWith(), and patchAndReplaceAllUsesWith().

◆ patchStmtList()

void llvm::patchStmtList ( DIE & Die,
DIEInteger Offset )
static

Definition at line 2254 of file DWARFLinker.cpp.

References llvm_unreachable, Offset, and llvm::DIEValueList::values().

◆ peekThroughBitcasts()

SDValue llvm::peekThroughBitcasts ( SDValue V)

Return the non-bitcasted source operand of V if it exists.

If V is not a bitcasted value, it is returned as-is.

Definition at line 12809 of file SelectionDAG.cpp.

References llvm::SDValue::getOperand().

Referenced by adjustICmp128(), canonicalizeBitSelect(), canonicalizeLaneShuffleWithRepeatedOps(), canonicalizeShuffleMaskWithHorizOp(), combineAndMaskToShift(), combineCONCAT_VECTORS(), combineConcatVectorOfExtracts(), combineConcatVectorOps(), combineEXTRACT_SUBVECTOR(), combineExtractVectorElt(), combineExtractWithShuffle(), combineHorizOpWithShuffle(), combineINSERT_SUBVECTOR(), combineLogicBlendIntoPBLENDV(), combinePTESTCC(), combineSetCCMOVMSK(), combineTargetShuffle(), combineTruncationShuffle(), combineVectorSizedSetCCEquality(), combineVectorSizedSetCCEquality(), combineVectorSizedSetCCEquality(), combineVSelectWithAllOnesOrZeros(), combineX86ShuffleChain(), combineX86ShuffleChainWithExtract(), combineX86ShufflesRecursively(), llvm::X86TargetLowering::ComputeNumSignBitsForTargetNode(), computeZeroableShuffleElements(), computeZeroableShuffleElements(), EltsFromConsecutiveLoads(), llvm::SelectionDAG::FoldConstantArithmetic(), getAVX512Node(), getFauxShuffleMask(), getScalarValueForVectorElement(), getTargetConstantBitsFromNode(), getTargetConstantFromNode(), getTargetShuffleAndZeroables(), hasNon16BitAccesses(), isAllOnesOrAllOnesSplat(), isBitwiseNot(), llvm::SelectionDAG::isConstantIntBuildVectorOrConstantInt(), IsElementEquivalent(), isFNEG(), isHorizontalBinOp(), IsNOT(), isZeroOrZeroSplat(), LowerFMINIMUM_FMAXIMUM(), lowerShuffleAsBroadcast(), lowerShuffleAsSplitOrBlend(), lowerShuffleWithVPMOV(), lowerV2X128Shuffle(), lowerV8F32Shuffle(), lowerV8I16Shuffle(), LowerVSETCC(), matchShuffleWithPACK(), MatchVectorAllEqualTest(), narrowExtractedVectorBinOp(), performUzpCombine(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), and splitAndLowerShuffle().

◆ peekThroughExtractSubvectors()

SDValue llvm::peekThroughExtractSubvectors ( SDValue V)

Return the non-extracted vector source operand of V if it exists.

If V is not an extracted subvector, it is returned as-is.

Definition at line 12821 of file SelectionDAG.cpp.

References llvm::ISD::EXTRACT_SUBVECTOR, and llvm::SDValue::getOperand().

Referenced by llvm::SelectionDAG::getSplatSourceVector().

◆ peekThroughInsertVectorElt()

SDValue llvm::peekThroughInsertVectorElt ( SDValue V,
const APInt & DemandedElts )

Recursively peek through INSERT_VECTOR_ELT nodes, returning the source vector operand of V, as long as V is an INSERT_VECTOR_ELT operation that do not insert into any of the demanded vector elts.

Definition at line 12827 of file SelectionDAG.cpp.

References dyn_cast(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::EVT::getVectorNumElements(), llvm::ISD::INSERT_VECTOR_ELT, and llvm::EVT::isFixedLengthVector().

Referenced by llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison().

◆ peekThroughOneUseBitcasts()

◆ peekThroughTruncates()

SDValue llvm::peekThroughTruncates ( SDValue V)

Return the non-truncated source operand of V if it exists.

If V is not a truncation, it is returned as-is.

Definition at line 12844 of file SelectionDAG.cpp.

References llvm::SDValue::getOperand(), and llvm::ISD::TRUNCATE.

Referenced by combineBitcast(), and isSaturatingMinMax().

◆ peelLoop()

bool llvm::peelLoop ( Loop * L,
unsigned PeelCount,
bool PeelLast,
LoopInfo * LI,
ScalarEvolution * SE,
DominatorTree & DT,
AssumptionCache * AC,
bool PreserveLCSSA,
ValueToValueMapTy & LVMap )

VMap is the value-map that maps instructions from the original loop to instructions in the last peeled-off iteration.

Peel off the first PeelCount iterations of loop L.

If PeelLast is true, peel off the last PeelCount iterations from L (canPeelLastIteration must be true for L), otherwise peel off the first PeelCount iterations.

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 1173 of file LoopPeel.cpp.

References addStringMetadataToLoop(), assert(), B(), canPeel(), canPeelLastIteration(), cast(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), cloneLoopBlocks(), Cond, dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::SCEVExpander::expandCodeFor(), F, llvm::DominatorTree::findNearestCommonDominator(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetTopmostLoop(), formLCSSA(), llvm::ScalarEvolution::getBackedgeTakenCount(), llvm::BasicBlock::getDataLayout(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), getOptionalIntLoopAttribute(), llvm::BasicBlock::getTerminator(), llvm::SCEV::getType(), llvm::Value::getType(), I, identifyNoAliasScopesToClone(), initBranchWeights(), isa(), llvm::ScalarEvolution::isKnownNonZero(), P, PeeledCountMetaData, PHI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), remapInstructionsInBlocks(), setBranchWeights(), llvm::Value::setName(), simplifyLoop(), SplitBlock(), SplitEdge(), updateBranchWeights(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().

Referenced by tryToUnrollLoop().

◆ PeelSingleBlockLoop()

MachineBasicBlock * llvm::PeelSingleBlockLoop ( LoopPeelDirection Direction,
MachineBasicBlock * Loop,
MachineRegisterInfo & MRI,
const TargetInstrInfo * TII )

Peels a single block loop.

Loop must have two successors, one of which must be itself. Similarly it must have two predecessors, one of which must be itself.

The loop block is copied and inserted into the CFG such that two copies of the loop follow on from each other. The copy is inserted either before or after the loop based on Direction.

Phis are updated and an unconditional branch inserted at the end of the clone so as to execute a single iteration.

The trip count of Loop is not updated.

Definition at line 26 of file MachineLoopUtils.cpp.

References llvm::MachineBasicBlock::addSuccessor(), assert(), llvm::MachineBasicBlock::begin(), Cond, llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineInstr::defs(), DL, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::MachineBasicBlock::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::MachineBasicBlock::getFirstNonPHI(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), I, llvm::MachineBasicBlock::insert(), llvm::MachineFunction::insert(), llvm::MachineInstr::isPHI(), llvm::Register::isPhysical(), LPD_Back, LPD_Front, MI, MRI, llvm::MachineBasicBlock::ReplaceUsesOfBlockWith(), llvm::MachineOperand::setReg(), std::swap(), TBB, TII, llvm::MachineBasicBlock::updateTerminator(), and Uses.

Referenced by llvm::PeelingModuloScheduleExpander::peelKernel().

◆ performOptimizedStructLayout()

std::pair< uint64_t, Align > llvm::performOptimizedStructLayout ( MutableArrayRef< OptimizedStructLayoutField > Fields)

Compute a layout for a struct containing the given fields, making a best-effort attempt to minimize the amount of space required.

Two features are supported which require a more careful solution than the well-known "sort by decreasing alignment" solution:

  • Fields may be assigned a fixed offset in the layout. If there are gaps among the fixed-offset fields, the algorithm may attempt to allocate flexible-offset fields into those gaps. If that's undesirable, the caller should "block out" those gaps by e.g. just creating a single fixed-offset field that represents the entire "header".
  • The size of a field is not required to be a multiple of, or even greater than, the field's required alignment. The only constraint on fields is that they must not be zero-sized.

To simplify the implementation, any fixed-offset fields in the layout must appear at the start of the field array, and they must be ordered by increasing offset.

The algorithm will produce a guaranteed-minimal layout with no interior padding in the following "C-style" case:

  • every field's size is a multiple of its required alignment and
  • either no fields have initially fixed offsets, or the fixed-offset fields have no interior padding and end at an offset that is at least as aligned as all the flexible-offset fields.

Otherwise, while the algorithm will make a best-effort attempt to avoid padding, it cannot guarantee a minimal layout, as there is no known efficient algorithm for doing so.

The layout produced by this algorithm may not be stable across LLVM releases. Do not use this anywhere where ABI stability is required.

Flexible-offset fields with the same size and alignment will be ordered the same way they were in the initial array. Otherwise the current algorithm makes no effort to preserve the initial order of flexible-offset fields.

On return, all fields will have been assigned a fixed offset, and the array will be sorted in order of ascending offsets. Note that this means that the fixed-offset fields may no longer form a strict prefix if there's any padding before they end.

The return value is the total size of the struct and its required alignment. Note that the total size is not rounded up to a multiple of the required alignment; clients which require this can do so easily.

The minimum size of anything currently in this queue.

The head of the queue. A singly-linked list. The order here should be consistent with the earlier sort, i.e. the elements should be monotonically descending in size and otherwise in the original order.

We remove the queue from the array as soon as this is empty.

The alignment requirement of the queue.

Helper function to remove a field from a queue.

Definition at line 43 of file OptimizedStructLayout.cpp.

References llvm::OptimizedStructLayoutField::Alignment, alignTo(), array_pod_sort(), assert(), llvm::MutableArrayRef< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::MutableArrayRef< T >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), checkValidLayout(), llvm::MutableArrayRef< T >::data(), llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::ArrayRef< T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::MutableArrayRef< T >::end(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), I, isAligned(), Last, llvm_unreachable, Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::OptimizedStructLayoutField::Scratch, Size, llvm::OptimizedStructLayoutField::Size, llvm::ArrayRef< T >::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and Success.

◆ PGOWarnMissing()

cl::opt< bool > llvm::PGOWarnMissing ( "pgo-warn-missing-function" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Use this option to turn on/off " "warnings about missing profile data for " "functions.")  )

◆ phys_regs_and_masks()

iterator_range< filter_iterator< ConstMIBundleOperands, bool(*)(const MachineOperand &)> > llvm::phys_regs_and_masks ( const MachineInstr & MI)
inline

Returns an iterator range over all physical register and mask operands for MI and bundled instructions.

This also skips any debug operands.

Definition at line 167 of file LiveRegUnits.h.

References const_mi_bundle_ops(), make_filter_range(), and MI.

Referenced by llvm::LivePhysRegs::addUses(), llvm::LivePhysRegs::removeDefs(), and updateDefinedRegisters().

◆ PickMergedSourceLocations()

LLVM_ABI cl::opt< bool > llvm::PickMergedSourceLocations ( "pick-merged-source-locations" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Preserve line and column number when merging locations.")  )

◆ po_begin()

template<class T>
po_iterator< T > llvm::po_begin ( const T & G)

Definition at line 193 of file PostOrderIterator.h.

References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::begin(), G, and T.

Referenced by post_order().

◆ po_end()

template<class T>
po_iterator< T > llvm::po_end ( const T & G)

Definition at line 195 of file PostOrderIterator.h.

References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::end(), G, and T.

Referenced by post_order().

◆ 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/3]

CaptureComponents llvm::PointerMayBeCaptured ( const Value * V,
bool ReturnCaptures,
CaptureComponents Mask,
function_ref< bool(CaptureComponents)> StopFn = capturesAnything,
unsigned MaxUsesToExplore = 0 )

Return which components of the pointer may be captured.

Only consider components that are part of Mask. Once StopFn on the accumulated components returns true, the traversal is aborted early. By default, this happens when any of the components in Mask are captured. This function only considers captures of the passed value via its def-use chain, without considering captures of values it may be based on, or implicit captures such as for external globals.

Definition at line 194 of file CaptureTracking.cpp.

References assert(), capturesAnything(), dbgs(), isa(), LLVM_DEBUG, and PointerMayBeCaptured().

◆ PointerMayBeCaptured() [2/3]

bool llvm::PointerMayBeCaptured ( const Value * V,
bool ReturnCaptures,
unsigned MaxUsesToExplore = 0 )

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. MaxUsesToExplore specifies how many uses the analysis should explore for one value before giving up due too "too many uses". If MaxUsesToExplore is zero, a default value is assumed. This function only considers captures of the passed value via its def-use chain, without considering captures of values it may be based on, or implicit captures such as for external globals.

Definition at line 213 of file CaptureTracking.cpp.

References All, capturesAnything(), and PointerMayBeCaptured().

Referenced by addArgumentAttrs(), computePointerICmp(), FindEarliestCapture(), llvm::InstCombinerImpl::foldAllocaCmp(), llvm::SimpleCaptureAnalysis::getCapturesBefore(), isFunctionMallocLike(), isSafeToSpeculateStore(), PointerMayBeCaptured(), PointerMayBeCaptured(), and PointerMayBeCapturedBefore().

◆ PointerMayBeCaptured() [3/3]

void llvm::PointerMayBeCaptured ( const Value * V,
CaptureTracker * Tracker,
unsigned MaxUsesToExplore = 0 )

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 the analysis should explore for one value before giving up due too "too many uses". If MaxUsesToExplore is zero, a default value is assumed. This function only considers captures of the passed value via its def-use chain, without considering captures of values it may be based on, or implicit captures such as for external globals.

Definition at line 399 of file CaptureTracking.cpp.

References assert(), llvm::CaptureTracker::captured(), capturesAnything(), capturesNothing(), llvm::CaptureTracker::Continue, llvm::CaptureTracker::ContinueIgnoringReturn, DefaultMaxUsesToExplore, DetermineUseCaptureKind(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), getDefaultMaxUsesToExploreForCaptureTracking(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::UseCaptureInfo::ResultCC, llvm::CaptureTracker::shouldExplore(), llvm::SmallPtrSetImplBase::size(), llvm::CaptureTracker::Stop, llvm::CaptureTracker::tooManyUses(), llvm::UseCaptureInfo::UseCC, and llvm::Value::uses().

◆ PointerMayBeCapturedBefore() [1/2]

CaptureComponents llvm::PointerMayBeCapturedBefore ( const Value * V,
bool ReturnCaptures,
const Instruction * I,
const DominatorTree * DT,
bool IncludeI,
CaptureComponents Mask,
function_ref< bool(CaptureComponents)> StopFn = capturesAnything,
const LoopInfo * LI = nullptr,
unsigned MaxUsesToExplore = 0 )

Return which components of the pointer may be captured on the path to I.

Only consider components that are part of Mask. Once StopFn on the accumulated components returns true, the traversal is aborted early. By default, this happens when any of the components in Mask are captured. This function only considers captures of the passed value via its def-use chain, without considering captures of values it may be based on, or implicit captures such as for external globals.

Definition at line 220 of file CaptureTracking.cpp.

References assert(), capturesAnything(), I, isa(), and PointerMayBeCaptured().

◆ PointerMayBeCapturedBefore() [2/2]

bool llvm::PointerMayBeCapturedBefore ( const Value * V,
bool ReturnCaptures,
const Instruction * I,
const DominatorTree * DT,
bool IncludeI = false,
unsigned MaxUsesToExplore = 0,
const LoopInfo * LI = nullptr )

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. Captures by the provided instruction are considered if the final parameter is true. MaxUsesToExplore specifies how many uses the analysis should explore for one value before giving up due too "too many uses". If MaxUsesToExplore is zero, a default value is assumed. This function only considers captures of the passed value via its def-use chain, without considering captures of values it may be based on, or implicit captures such as for external globals.

Definition at line 241 of file CaptureTracking.cpp.

References All, capturesAnything(), I, and PointerMayBeCapturedBefore().

Referenced by AddAliasScopeMetadata(), llvm::AAResults::callCapturesBefore(), and PointerMayBeCapturedBefore().

◆ pointerToJITTargetAddress()

template<typename T>
JITTargetAddress llvm::pointerToJITTargetAddress ( T * Ptr)

Convert a pointer to a JITTargetAddress.

Definition at line 70 of file JITSymbol.h.

References Ptr, and T.

Referenced by llvm::JITEvaluatedSymbol::fromPointer().

◆ popcount()

template<typename T>
int llvm::popcount ( T Value)
inlinenodiscardnoexcept

Count the number of set bits in a value.

Ex. popcount(0xF000F000) = 8 Returns 0 if Value is zero.

Definition at line 154 of file bit.h.

References T.

Referenced by llvm::SITargetLowering::AddMemOpInit(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::AMDGPUDisassembler::convertMIMGInst(), llvm::Bitset< AEK_NUM_EXTENSIONS >::count(), llvm::BitVector::count(), llvm::FeatureBitset::count(), llvm::SmallBitVector::count(), llvm::SparseBitVectorElement< ElementSize >::count(), countr_zero(), eliminateDeadSwitchCases(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::RISCVMatInt::generateInstSeq(), getBBAddrMapFeature(), getBitRangeFromMask(), llvm::detail::IEEEFloat::getExactLog2Abs(), llvm::SIRegisterInfo::getNumCoveredRegs(), llvm::LaneBitmask::getNumLanes(), getNumSubRegsForSpillOp(), llvm::HvxSelector::getPerfectCompletions(), llvm::MCSchedModel::getReciprocalThroughput(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::memprof::hasSingleAllocType(), llvm::mca::initializeUsedResources(), llvm::TargetLoweringBase::isBeneficialToExpandPowI(), isShiftedMask_32(), isShiftedMask_64(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::HexagonResource::lessUnits(), LowerCONCAT_VECTORSvXi1(), llvm::mca::ExecuteStage::notifyReservedOrReleasedBuffers(), optimizeSection(), llvm::APInt::popcount(), llvm::RegisterBank::print(), llvm::AMDGPUInstPrinter::printSwizzle(), readGSIHashBuckets(), llvm::HexagonResource::setWeight(), simplifyAMDGCNMemoryIntrinsicDemanded(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), tryEorOfLogicalImmediates(), llvm::hlsl::rootsig::verifyDescriptorRangeFlag(), llvm::SIInstrInfo::verifyInstruction(), llvm::hlsl::rootsig::verifyRootDescriptorFlag(), and llvm::SelectionDAGBuilder::visitBitTestCase().

◆ possiblyDemandedEltsInMask()

APInt llvm::possiblyDemandedEltsInMask ( Value * Mask)

Given a mask vector of the form <Y x i1>, return an APInt (of bitwidth Y) for each lane which may be active.

TODO: This is a lot like known bits, but for vectors.

Is there something we can common this with?

Definition at line 1335 of file VectorUtils.cpp.

References assert(), cast(), llvm::APInt::clearBit(), dyn_cast(), llvm::APInt::getAllOnes(), and isa().

◆ post_order()

◆ post_order_ext()

template<class T, class SetType>
iterator_range< po_ext_iterator< T, SetType > > llvm::post_order_ext ( const T & G,
SetType & S )

Definition at line 219 of file PostOrderIterator.h.

References G, make_range(), po_ext_begin(), po_ext_end(), and T.

◆ PowerOf2Ceil()

◆ powerOf5()

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 111 of file CFG.h.

◆ pred_begin() [2/3]

const_pred_iterator llvm::pred_begin ( const BasicBlock * BB)
inline

Definition at line 112 of file CFG.h.

◆ pred_begin() [3/3]

◆ pred_empty()

◆ pred_end() [1/3]

pred_iterator llvm::pred_end ( BasicBlock * BB)
inline

Definition at line 115 of file CFG.h.

◆ pred_end() [2/3]

const_pred_iterator llvm::pred_end ( const BasicBlock * BB)
inline

Definition at line 116 of file CFG.h.

◆ pred_end() [3/3]

◆ pred_size() [1/2]

unsigned llvm::pred_size ( const BasicBlock * BB)
inline

Get the number of predecessors of BB.

This is a linear time operation. Use BasicBlock::hasNPredecessors() or hasNPredecessorsOrMore if able.

Definition at line 124 of file CFG.h.

References pred_begin(), and pred_end().

◆ pred_size() [2/2]

◆ predecessors() [1/3]

pred_range llvm::predecessors ( BasicBlock * BB)
inline

Definition at line 127 of file CFG.h.

References pred_begin(), and pred_end().

◆ predecessors() [2/3]

const_pred_range llvm::predecessors ( const BasicBlock * BB)
inline

Definition at line 130 of file CFG.h.

References pred_begin(), and pred_end().

◆ predecessors() [3/3]

auto llvm::predecessors ( const MachineBasicBlock * BB)
inline

Definition at line 1422 of file MachineBasicBlock.h.

References llvm::MachineBasicBlock::predecessors().

Referenced by addBlockAndPredsToSet(), llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(), allPredecessorsComeFromSameSource(), llvm::LoopVectorizationLegality::blockNeedsPredication(), buildClonedLoops(), buildExtractionBlockSet(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), canProveExitOnFirstIteration(), CanRedirectPredsOfEmptyBBToSucc(), canSplitCallSite(), canSplitPredecessors(), CloneAndPruneIntoFromInst(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), collectTransitivePredecessors(), computeEHOnlyBlocks(), computeLiveInValues(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), ConnectEpilog(), ConnectProlog(), DeleteDeadBlocks(), llvm::DominatorTree::dominates(), ehAwareSplitEdge(), ensureValueAvailableInSuccessor(), llvm::GVNPass::ValueTable::eraseTranslateCacheEntry(), llvm::CodeExtractor::extractCodeRegion(), findArgParts(), llvm::MustBeExecutedContextExplorer::findBackwardJoinPoint(), findBestNonTrivialUnswitchCandidate(), findDependencies(), findIBRPredecessor(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), findOrCreatePHIBlock(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), findReaching(), fixIrreducible(), fixScalarResumeValuesFromBypass(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldBranchToCommonDest(), foldCondBranchOnValueKnownInPredecessorImpl(), formDedicatedExitBlocks(), llvm::PredIteratorCache::get(), getAppleRuntimeUnrollPreferences(), llvm::GenericCycle< ContextT >::getCyclePredecessor(), getGVNForPHINode(), llvm::PartialOrderingVisitor::GetNodeRank(), llvm::afdo_detail::IRTraits< BasicBlock >::getPredecessors(), getPredState(), llvm::BranchProbabilityInfo::SccInfo::getSccEnterBlocks(), getTwoPredecessors(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), llvm::InstCombinerImpl::handlePotentiallyDeadBlocks(), hasCallsInBlocksBetween(), llvm::MemorySSAUpdater::insertDef(), InsertPreheaderForLoop(), insertTrivialPHIs(), insertUniqueBackedgeBlock(), llvm::PHINode::isComplete(), isCriticalEdge(), isFullPostDominator(), llvm::HardwareLoopInfo::isHardwareLoopCandidate(), isIndirectBrTarget(), isLoopNeverExecuted(), isUniformlyReached(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), memoryIsNotModifiedBetween(), MergeBasicBlockIntoOnlyPred(), mergeCompatibleInvokes(), moveLCSSAPhis(), llvm::InsertPHIStrategy::mutate(), nonStrictlyPostDominate(), optimizeDivRem(), llvm::InstCombinerImpl::prepareWorklist(), rebuildLoopAfterUnswitch(), recomputeLoopBlockSet(), redirectAllPredecessorsTo(), removeEmptyCleanup(), removeSwitchAfterSelectFold(), reuseTableCompare(), rewritePHIs(), rewritePHIsForCleanupPad(), llvm::GenericCycleInfoCompute< ContextT >::run(), runMoveAutoInit(), separateNestedLoop(), shouldFoldCondBranchesToCommonDestination(), simplifyOneLoop(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), sinkCommonCodeFromPredecessors(), splitBlockBefore(), splitCallSite(), SplitKnownCriticalEdge(), tryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), unswitchNontrivialInvariants(), llvm::MemorySSAUpdater::updateForClonedLoop(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().

◆ 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 58 of file CmpInstAnalysis.cpp.

References llvm::ICmpInst::isEquality(), llvm::ICmpInst::isEquality(), and llvm::CmpInst::isSigned().

◆ predOps()

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 540 of file ARMBaseInstrInfo.h.

References llvm::MachineOperand::CreateImm(), and llvm::MachineOperand::CreateReg().

Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), CMSEPopCalleeSaves(), CMSEPushCalleeSaves(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::ARMFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), emitPostLd(), emitPostSt(), llvm::ARMFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), emitT2RegPlusImmediate(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::foldImmediate(), genTPEntry(), genTPLoopBody(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::insertOutlinedCall(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::ARMCallLowering::lowerCall(), llvm::ARMCallLowering::lowerReturn(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), popRegsFromStack(), pushRegsToStack(), RevertDoLoopStart(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), rewriteT2FrameIndex(), selectMergeValues(), selectUnmergeValues(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), and llvm::Thumb2InstrInfo::storeRegToStackSlot().

◆ prepareTempFiles()

◆ 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 61 of file Instrumentation.cpp.

References assert(), dyn_cast(), llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getParent(), I, II, and moveBeforeInsertPoint().

◆ PreRADirection()

cl::opt< MISched::Direction > llvm::PreRADirection ( "misched-prera-direction" ,
cl::Hidden ,
cl::desc("Pre reg-alloc list scheduling direction") ,
cl::init(MISched::Unspecified) ,
cl::values(clEnumValN(MISched::TopDown, "topdown", "Force top-down pre reg-alloc list scheduling"), clEnumValN(MISched::BottomUp, "bottomup", "Force bottom-up pre reg-alloc list scheduling"), clEnumValN(MISched::Bidirectional, "bidirectional", "Force bidirectional pre reg-alloc list scheduling"))  )

◆ prettyPrintBaseTypeRef()

void llvm::prettyPrintBaseTypeRef ( DWARFUnit * U,
raw_ostream & OS,
DIDumpOptions DumpOpts,
ArrayRef< uint64_t > Operands,
unsigned Operand )
static

◆ prettyPrintRegisterOp()

bool llvm::prettyPrintRegisterOp ( DWARFUnit * U,
raw_ostream & OS,
DIDumpOptions DumpOpts,
uint8_t Opcode,
ArrayRef< uint64_t > Operands )

Pretty print a register opcode and operands.

Parameters
Uwithin the context of this Dwarf unit, if any.
OSto this stream
DumpOptswith these options
Opcodeto print
Operandsto the opcode

returns true if the Op was successfully printed

Definition at line 341 of file DWARFExpressionPrinter.cpp.

References format(), llvm::DIDumpOptions::GetNameForDWARFReg, llvm::DIDumpOptions::IsEH, Operands, prettyPrintBaseTypeRef(), and RegName.

Referenced by llvm::logicalview::LVDWARFReader::getRegisterName(), and printOp().

◆ prev_nodbg()

template<typename IterT>
IterT llvm::prev_nodbg ( IterT It,
IterT Begin,
bool SkipPseudoOp = true )
inline

Decrement It, then continue decrementing it while it points to a debug instruction.

A replacement for std::prev.

Definition at line 1492 of file MachineBasicBlock.h.

References skipDebugInstructionsBackward().

Referenced by findHoistingInsertPosAndDeps(), llvm::MachineBasicBlock::findPrevDebugLoc(), llvm::RegPressureTracker::recedeSkipDebugValues(), and updateKillStatus().

◆ print() [1/2]

Printable llvm::print ( const GCNRegPressure & RP,
const GCNSubtarget * ST = nullptr,
unsigned DynamicVGPRBlockSize = 0 )

Definition at line 237 of file GCNRegPressure.cpp.

Referenced by llvm::GCNSchedStage::checkScheduling(), llvm::BaseIndexOffset::dump(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::dump(), llvm::RegBankSelect::MappingCost::dump(), llvm::RegionBase< Tr >::dump(), llvm::RegionInfoBase< Tr >::dump(), llvm::RegisterBankInfo::InstructionMapping::dump(), llvm::RegisterBankInfo::OperandsMapper::dump(), llvm::RegisterBankInfo::ValueMapping::dump(), llvm::sandboxir::Interval< T >::dump(), llvm::SpillPlacement::BlockConstraint::dump(), llvm::SplitAnalysis::BlockInfo::dump(), llvm::GCNSchedStage::initGCNRegion(), llvm::GCNUpwardRPTracker::isValid(), llvm::MachO::PackedVersion::operator std::string(), llvm::LoopInfoBase< BlockT, LoopT >::print(), printLivenessInfo(), printNBits(), llvm::GCNIterativeScheduler::printRegions(), llvm::GCNIterativeScheduler::printSchedRP(), llvm::AbstractAttribute::printWithDeps(), llvm::BlockFrequencyPrinterPass::run(), llvm::CallGraphPrinterPass::run(), llvm::CycleInfoPrinterPass::run(), llvm::DebugAssignmentTrackingPrinterPass::run(), llvm::DemandedBitsPrinterPass::run(), llvm::DominanceFrontierPrinterPass::run(), llvm::DominatorTreePrinterPass::run(), llvm::FunctionPropertiesPrinterPass::run(), llvm::IVUsersPrinterPass::run(), llvm::LiveIntervalsPrinterPass::run(), llvm::LiveStacksPrinterPass::run(), llvm::LiveVariablesPrinterPass::run(), llvm::MachineDominatorTreePrinterPass::run(), llvm::MachineLoopPrinterPass::run(), llvm::MachinePostDominatorTreePrinterPass::run(), llvm::PostDominatorTreePrinterPass::run(), llvm::RegionInfoPrinterPass::run(), llvm::ScalarEvolutionPrinterPass::run(), llvm::SlotIndexesPrinterPass::run(), llvm::StackSafetyGlobalPrinterPass::run(), llvm::StackSafetyPrinterPass::run(), llvm::UniformityInfoPrinterPass::run(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), llvm::GCNIterativeScheduler::scheduleRegion(), and llvm::BlockFrequencyInfoImpl< BT >::verifyMatch().

◆ print() [2/2]

◆ printAfterPasses()

std::vector< std::string > llvm::printAfterPasses ( )

Definition at line 144 of file PrintPasses.cpp.

References PrintAfter.

◆ printBeforePasses()

std::vector< std::string > llvm::printBeforePasses ( )

Definition at line 140 of file PrintPasses.cpp.

References PrintBefore.

◆ printBlockFreq() [1/4]

Printable llvm::printBlockFreq ( const BlockFrequencyInfo & BFI,
BlockFrequency Freq )

Print the block frequency Freq relative to the current functions entry frequency.

Returns a Printable object that can be piped via << to a raw_ostream.

Definition at line 283 of file BlockFrequencyInfo.cpp.

References printRelativeBlockFreq().

Referenced by llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfo, BranchProbabilityInfo >::getNodeLabel(), printBlockFreq(), and printBlockFreq().

◆ printBlockFreq() [2/4]

Printable llvm::printBlockFreq ( const BlockFrequencyInfo & BFI,
const BasicBlock & BB )

Convenience function equivalent to calling printBlockFreq(BFI, BFI.getBlocakFreq(&BB)).

Definition at line 290 of file BlockFrequencyInfo.cpp.

References printBlockFreq().

◆ printBlockFreq() [3/4]

Printable llvm::printBlockFreq ( const MachineBlockFrequencyInfo & MBFI,
BlockFrequency Freq )

Print the block frequency Freq relative to the current functions entry frequency.

Returns a Printable object that can be piped via << to a raw_ostream.

Definition at line 319 of file MachineBlockFrequencyInfo.cpp.

References llvm::MachineBlockFrequencyInfo::getEntryFreq(), and printRelativeBlockFreq().

◆ printBlockFreq() [4/4]

Printable llvm::printBlockFreq ( const MachineBlockFrequencyInfo & MBFI,
const MachineBasicBlock & MBB )

Convenience function equivalent to calling printBlockFreq(MBFI, MBFI.getBlockFreq(&MBB)).

Definition at line 326 of file MachineBlockFrequencyInfo.cpp.

References llvm::MachineBlockFrequencyInfo::getBlockFreq(), MBB, and printBlockFreq().

◆ printCompactDWARFExpr()

◆ PrintDAGs()

cl::opt< bool > llvm::PrintDAGs ( "misched-print-dags" ,
cl::Hidden ,
cl::desc("Print schedule DAGs")  )

References llvm::cl::Hidden.

◆ PrintDomTree()

template<class NodeT>
void llvm::PrintDomTree ( const DomTreeNodeBase< NodeT > * N,
raw_ostream & O,
unsigned Lev )

Definition at line 183 of file GenericDomTree.h.

References I, N, and PrintDomTree().

Referenced by llvm::DominatorTreeBase< BlockT, false >::print(), and PrintDomTree().

◆ printDwarfExpression()

void llvm::printDwarfExpression ( const DWARFExpression * E,
raw_ostream & OS,
DIDumpOptions DumpOpts,
DWARFUnit * U,
bool IsEH = false )

Print a Dwarf expression/.

Parameters
Eto be printed
OSto this stream
GetNameForDWARFRegcallback to return dwarf register name

Definition at line 166 of file DWARFExpressionPrinter.cpp.

References format(), llvm::DIDumpOptions::IsEH, printOp(), llvm::DIDumpOptions::PrintRegisterOnly, and size().

Referenced by dumpExpression(), dumpLocationExpr(), printOperand(), and printUnwindLocation().

◆ printDwarfExpressionCompact()

bool llvm::printDwarfExpressionCompact ( const DWARFExpression * E,
raw_ostream & OS,
std::function< StringRef(uint64_t RegNum, bool IsEH)> GetNameForDWARFReg = nullptr )

Print the expression in a format intended to be compact and useful to a user, but not perfectly unambiguous, or capable of representing every valid DWARF expression.

Returns true if the expression was sucessfully printed.

Parameters
Eto be printed
OSto this stream
GetNameForDWARFRegcallback to return dwarf register name
Returns
true if the expression was successfully printed

Definition at line 335 of file DWARFExpressionPrinter.cpp.

References printCompactDWARFExpr().

◆ PrintError() [1/6]

void llvm::PrintError ( ArrayRef< SMLoc > ErrorLoc,
const Twine & Msg )

Definition at line 110 of file Error.cpp.

References llvm::SourceMgr::DK_Error, and PrintMessage().

◆ PrintError() [2/6]

void llvm::PrintError ( const char * Loc,
const Twine & Msg )

Definition at line 114 of file Error.cpp.

References llvm::SourceMgr::DK_Error, llvm::SMLoc::getFromPointer(), and SrcMgr.

◆ PrintError() [3/6]

void llvm::PrintError ( const Record * Rec,
const Twine & Msg )

Definition at line 120 of file Error.cpp.

References llvm::SourceMgr::DK_Error, llvm::Record::getLoc(), and PrintMessage().

◆ PrintError() [4/6]

void llvm::PrintError ( const RecordVal * RecVal,
const Twine & Msg )

Definition at line 126 of file Error.cpp.

References llvm::SourceMgr::DK_Error, llvm::RecordVal::getLoc(), and PrintMessage().

◆ PrintError() [5/6]

◆ PrintError() [6/6]

void llvm::PrintError ( function_ref< void(raw_ostream &OS)> PrintMsg)

Definition at line 106 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 62 of file StringExtras.cpp.

References llvm::CallingConv::C, hexdigit(), and isPrint().

Referenced by llvm::Attribute::getAsString(), llvm::lsp::operator<<(), printLLVMNameWithoutPrefix(), printSyncScope(), WriteAsOperandInternal(), WriteAsOperandInternal(), and WriteConstantInternal().

◆ PrintFatalError() [1/5]

void llvm::PrintFatalError ( ArrayRef< SMLoc > ErrorLoc,
const Twine & Msg )

Definition at line 142 of file Error.cpp.

References fatal_exit(), and PrintError().

◆ PrintFatalError() [2/5]

void llvm::PrintFatalError ( const Record * Rec,
const Twine & Msg )

Definition at line 149 of file Error.cpp.

References fatal_exit(), llvm::Record::getLoc(), and PrintError().

◆ PrintFatalError() [3/5]

void llvm::PrintFatalError ( const RecordVal * RecVal,
const Twine & Msg )

Definition at line 156 of file Error.cpp.

References fatal_exit(), llvm::RecordVal::getLoc(), and PrintError().

◆ PrintFatalError() [4/5]

◆ PrintFatalError() [5/5]

void llvm::PrintFatalError ( function_ref< void(raw_ostream &OS)> PrintMsg)

Definition at line 137 of file Error.cpp.

References fatal_exit(), and PrintError().

◆ PrintFatalNote() [1/4]

void llvm::PrintFatalNote ( ArrayRef< SMLoc > ErrorLoc,
const Twine & Msg )

Definition at line 71 of file Error.cpp.

References fatal_exit(), and PrintNote().

◆ PrintFatalNote() [2/4]

void llvm::PrintFatalNote ( const Record * Rec,
const Twine & Msg )

Definition at line 78 of file Error.cpp.

References fatal_exit(), llvm::Record::getLoc(), and PrintNote().

◆ PrintFatalNote() [3/4]

void llvm::PrintFatalNote ( const RecordVal * RecVal,
const Twine & Msg )

Definition at line 85 of file Error.cpp.

References fatal_exit(), llvm::RecordVal::getLoc(), and PrintNote().

◆ PrintFatalNote() [4/4]

void llvm::PrintFatalNote ( const Twine & Msg)

Definition at line 66 of file Error.cpp.

References fatal_exit(), and PrintNote().

◆ printGraphForFunction()

◆ printHTMLEscaped()

void llvm::printHTMLEscaped ( StringRef String,
raw_ostream & Out )

Print each character of the specified string, escaping HTML special characters.

Definition at line 73 of file StringExtras.cpp.

References llvm::CallingConv::C, and String.

◆ printIRUnitNameForStackTrace()

template<typename IRUnitT>
void llvm::printIRUnitNameForStackTrace ( raw_ostream & OS,
const IRUnitT & IR )

◆ printIRUnitNameForStackTrace< Function >()

Definition at line 158 of file PassManager.cpp.

◆ printIRUnitNameForStackTrace< Module >()

Definition at line 152 of file PassManager.cpp.

◆ 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 1455 of file MachineFunction.cpp.

Referenced by llvm::MachineJumpTableInfo::print(), and llvm::MachineOperand::print().

◆ PrintLaneMask()

◆ 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 444 of file AsmWriter.cpp.

References assert(), llvm::CallingConv::C, and printEscapedString().

Referenced by llvm::MachineMemOperand::print(), llvm::MachineOperand::print(), printIRBlockReference(), llvm::MIRFormatter::printIRValue(), and PrintLLVMName().

◆ printLoop()

void llvm::printLoop ( Loop & L,
raw_ostream & OS,
const std::string & Banner = "" )

Function to print a loop's contents as LLVM's text IR assembly.

Definition at line 989 of file LoopInfo.cpp.

References Block, llvm::SmallVectorTemplateCommon< T, typename >::empty(), forcePrintFuncIR(), and forcePrintModuleIR().

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

◆ printLowerCase()

void llvm::printLowerCase ( StringRef String,
raw_ostream & Out )

printLowerCase - Print each character as lowercase if it is uppercase.

Definition at line 90 of file StringExtras.cpp.

References llvm::CallingConv::C, String, and toLower().

Referenced by 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 120 of file MachineBasicBlock.cpp.

References MBB.

Referenced by llvm::HexagonInstrInfo::analyzeBranch(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::rdf::Liveness::computeLiveIns(), convertMJTI(), convertSRPoints(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::SplitEditor::enterIntvAtEnd(), llvm::SystemZPostRASchedStrategy::enterMBB(), llvm::ScheduleDAGInstrs::fixupKills(), getBlockName(), llvm::DOTGraphTraits< const MachineFunction * >::getNodeLabel(), hoistAndMergeSGPRInits(), llvm::GCNSchedStage::initGCNRegion(), llvm::HexagonInstrInfo::insertBranch(), llvm::MachineTraceMetrics::Ensemble::invalidate(), llvm::MachineTraceMetrics::invalidate(), llvm::HexagonInstrInfo::invertAndChangeJumpTarget(), llvm::ARMBasicBlockUtils::isBBInRange(), llvm::SplitEditor::leaveIntvAtTop(), llvm::SystemZPostRASchedStrategy::leaveMBB(), llvm::rdf::operator<<(), llvm::rdf::operator<<(), llvm::ARMConstantPoolMBB::print(), llvm::MachineBasicBlock::print(), llvm::MachineFrameInfo::print(), llvm::MachineJumpTableInfo::print(), llvm::MachineOperand::print(), llvm::MachineTraceMetrics::Trace::print(), llvm::MachineTraceMetrics::TraceBlockInfo::print(), llvm::SplitAnalysis::BlockInfo::print(), llvm::MachineBranchProbabilityInfo::printEdgeProbability(), printMBB(), printRegion(), ProfitableToMerge(), llvm::HexagonInstrInfo::removeBranch(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::impl_detail::MachineSchedulerBase::scheduleRegions(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), llvm::MachineBasicBlock::updateTerminator(), verifyCTRBranch(), VerifyPHIs(), and WriteGraph().

◆ PrintMessage()

◆ printMIR() [1/2]

void llvm::printMIR ( raw_ostream & OS,
const MachineModuleInfo & MMI,
const MachineFunction & MF )

Print a machine function using the MIR serialization format to the given output stream.

Definition at line 998 of file MIRPrinter.cpp.

References printMF().

◆ printMIR() [2/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 993 of file MIRPrinter.cpp.

Referenced by llvm::PrintMIRPass::run(), and llvm::PrintMIRPreparePass::run().

◆ PrintNote() [1/3]

void llvm::PrintNote ( ArrayRef< SMLoc > NoteLoc,
const Twine & Msg )

Definition at line 60 of file Error.cpp.

References llvm::SourceMgr::DK_Note, and PrintMessage().

◆ PrintNote() [2/3]

void llvm::PrintNote ( const Twine & Msg)

◆ PrintNote() [3/3]

void llvm::PrintNote ( function_ref< void(raw_ostream &OS)> PrintMsg)

Definition at line 56 of file Error.cpp.

References llvm::WithColor::note().

◆ printOp()

◆ PrintRecyclerStats()

void llvm::PrintRecyclerStats ( size_t Size,
size_t Align,
size_t FreeListSize )

PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics.

Definition at line 31 of file Allocator.cpp.

References errs(), and Size.

Referenced by llvm::Recycler< T, Size, Align >::PrintStats().

◆ printReg()

Printable llvm::printReg ( Register 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 107 of file TargetRegisterInfo.cpp.

References llvm_unreachable, MRI, printLowerCase(), Reg, and TRI.

Referenced by llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::A57ChainingConstraint::apply(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::LiveRegMatrix::assign(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::RegAllocEvictionAdvisor::canAllocatePhysReg(), llvm::RegAllocEvictionAdvisor::canReassign(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), llvm::MachineRegisterInfo::clearVirtRegs(), convertArgumentInfo(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::AllocationOrder::create(), createCFAOffset(), createDefCFAExpression(), createDefCFAExpression(), createDefCFAOffset(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::SDep::dump(), dump_registers(), llvm::TargetRegisterInfo::dumpReg(), emitDebugValueComment(), llvm::LiveDebugVariables::LDVImpl::emitDebugValues(), emitFakeUse(), llvm::AMDGPUAsmPrinter::emitImplicitDef(), llvm::AsmPrinter::emitImplicitDef(), emitKill(), llvm::RegAllocBase::enqueue(), llvm::RegScavenger::FindUnusedReg(), getSpillArea(), getVGPRSpillLaneOrTempRegister(), INITIALIZE_PASS(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::HexagonEvaluator::mask(), llvm::AggressiveAntiDepBreaker::Observe(), operator<<(), llvm::rdf::operator<<(), performCopyPropagation(), llvm::LiveInterval::print(), llvm::LiveIntervalUnion::print(), llvm::LivePhysRegs::print(), llvm::MachineBasicBlock::print(), llvm::MachineFunction::print(), llvm::MachineOperand::print(), llvm::PhysicalRegisterUsageInfo::print(), llvm::rdf::PhysicalRegisterInfo::print(), llvm::RegisterBankInfo::OperandsMapper::print(), llvm::SDDbgValue::print(), llvm::VirtRegMap::print(), llvm::BitTracker::print_cells(), llvm::SDNode::print_details(), llvm::SystemZAsmPrinter::PrintAsmMemoryOperand(), printCFIRegister(), printCustomRegMask(), printMBB(), PrintNodeInfo(), printOperand(), printRegMIR(), regToString(), llvm::RegBankSelect::repairReg(), replaceFrameIndex(), reportMismatch(), llvm::PPCRegisterInfo::requiresFrameIndexScavenging(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::RABasic::spillInterferences(), llvm::ARCInstrInfo::storeRegToStackSlot(), tryToFindRegisterToRename(), llvm::LiveRegMatrix::unassign(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::MachineRegisterInfo::verifyUseList().

◆ printRegClassOrBank()

Printable llvm::printRegClassOrBank ( Register Reg,
const MachineRegisterInfo & RegInfo,
const TargetRegisterInfo * TRI )

Create Printable object to print register classes or register banks on a raw_ostream.

Definition at line 171 of file TargetRegisterInfo.cpp.

References assert(), llvm::StringRef::lower(), and TRI.

Referenced by convertMRI(), llvm::MachineOperand::print(), printRegClassOrBank(), and llvm::RegBankSelect::repairReg().

◆ printRegUnit()

Printable llvm::printRegUnit ( unsigned Unit,
const TargetRegisterInfo * TRI )

Create Printable object to print register units on a raw_ostream.

Register units are named after their root registers:

al - Single root. fp0~st7 - Dual roots.

Usage: OS << printRegUnit(Unit, TRI) << '
';

Definition at line 138 of file TargetRegisterInfo.cpp.

References assert(), llvm::MCRegUnitRootIterator::isValid(), and TRI.

Referenced by llvm::LiveRegMatrix::assign(), llvm::LiveIntervals::print(), llvm::rdf::PhysicalRegisterInfo::print(), llvm::rdf::PhysicalRegisterInfo::print(), printVRegOrUnit(), and llvm::LiveRegMatrix::unassign().

◆ printRelativeBlockFreq()

void llvm::printRelativeBlockFreq ( raw_ostream & OS,
BlockFrequency EntryFreq,
BlockFrequency Freq )

Definition at line 51 of file BlockFrequency.cpp.

References Block, and llvm::BlockFrequency::getFrequency().

Referenced by printBlockFreq(), and printBlockFreq().

◆ PrintStatistics() [1/2]

void llvm::PrintStatistics ( )

◆ PrintStatistics() [2/2]

void llvm::PrintStatistics ( raw_ostream & OS)

◆ 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::TrackingStatistic::getDebugType(), llvm::TrackingStatistic::getName(), llvm::TrackingStatistic::getValue(), llvm::yaml::needsQuotes(), llvm::yaml::None, llvm::TimerGroup::printAllJSONValues(), StatInfo, StatLock, and Stats.

Referenced by llvm::LTOCodeGenerator::compileOptimized(), PrintStatistics(), and llvm::lto::LTO::run().

◆ printVRegOrUnit()

Printable llvm::printVRegOrUnit ( unsigned VRegOrUnit,
const TargetRegisterInfo * TRI )

Create Printable object to print virtual registers and physical registers on a raw_ostream.

Definition at line 161 of file TargetRegisterInfo.cpp.

References llvm::Register::isVirtualRegister(), printRegUnit(), Register, and TRI.

Referenced by llvm::RegisterPressure::dump(), print(), llvm::SIScheduleBlock::printDebug(), and llvm::ScheduleDAGMILive::updatePressureDiffs().

◆ PrintWarning() [1/3]

void llvm::PrintWarning ( ArrayRef< SMLoc > WarningLoc,
const Twine & Msg )

Definition at line 94 of file Error.cpp.

References llvm::SourceMgr::DK_Warning, and PrintMessage().

◆ PrintWarning() [2/3]

void llvm::PrintWarning ( const char * Loc,
const Twine & Msg )

Definition at line 98 of file Error.cpp.

References llvm::SourceMgr::DK_Warning, llvm::SMLoc::getFromPointer(), and SrcMgr.

◆ PrintWarning() [3/3]

void llvm::PrintWarning ( const Twine & Msg)

Definition at line 92 of file Error.cpp.

References llvm::WithColor::warning().

Referenced by llvm::Record::checkUnusedTemplateArgs().

◆ processImportsFiles()

void llvm::processImportsFiles ( StringRef ModulePath,
const ModuleToSummariesForIndexTy & ModuleToSummariesForIndex,
function_ref< void(const std::string &)> F )

Call F passing each of the files module ModulePath will import from.

Invoke callback F on the file paths from which ModulePath will import.

Definition at line 1619 of file FunctionImport.cpp.

References F.

Referenced by llvm::lto::ThinBackendProc::emitFiles(), and EmitImportsFiles().

◆ processInstr()

◆ processShuffleMasks()

void llvm::processShuffleMasks ( ArrayRef< int > Mask,
unsigned NumOfSrcRegs,
unsigned NumOfDestRegs,
unsigned NumOfUsedRegs,
function_ref< void()> NoInputAction,
function_ref< void(ArrayRef< int >, unsigned, unsigned)> SingleInputAction,
function_ref< void(ArrayRef< int >, unsigned, unsigned, bool)> ManyInputsAction )

Splits and processes shuffle mask depending on the number of input and output registers.

The function does 2 main things: 1) splits the source/destination vectors into real registers; 2) do the mask analysis to identify which real registers are permuted. Then the function processes resulting registers mask using provided action items. If no input register is defined, NoInputAction action is used. If only 1 input register is used, SingleInputAction is used, otherwise ManyInputsAction is used to process > 2 input registers and masks.

Parameters
MaskOriginal shuffle mask.
NumOfSrcRegsNumber of source registers.
NumOfDestRegsNumber of destination registers.
NumOfUsedRegsNumber of actually used destination registers.

Definition at line 665 of file VectorUtils.cpp.

References assert(), llvm::SmallVectorImpl< T >::assign(), llvm::SmallVectorImpl< T >::clear(), count_if(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), find_if(), I, PoisonMaskElem, seq(), and llvm::ArrayRef< T >::size().

Referenced by costShuffleViaSplitting(), costShuffleViaVRegSplitting(), llvm::X86TTIImpl::getShuffleCost(), and lowerShuffleViaVRegSplitting().

◆ ProfileCorrelate()

◆ ProfileInlineGrowthLimit()

cl::opt< int > llvm::ProfileInlineGrowthLimit ( "sample-profile-inline-growth-limit" ,
cl::Hidden ,
cl::init(12) ,
cl::desc("The size growth ratio limit for proirity-based sample profile " "loader inlining.")  )

◆ ProfileInlineLimitMax()

cl::opt< int > llvm::ProfileInlineLimitMax ( "sample-profile-inline-limit-max" ,
cl::Hidden ,
cl::init(10000) ,
cl::desc("The upper bound of size growth limit for " "proirity-based sample profile loader inlining.")  )

◆ ProfileInlineLimitMin()

cl::opt< int > llvm::ProfileInlineLimitMin ( "sample-profile-inline-limit-min" ,
cl::Hidden ,
cl::init(100) ,
cl::desc("The lower bound of size growth limit for " "proirity-based sample profile loader inlining.")  )

◆ ProfileLikelyProb()

cl::opt< unsigned > llvm::ProfileLikelyProb ( "profile-likely-prob" ,
cl::desc("branch probability threshold in percentage to be considered" " very likely when profile is available") ,
cl::init(51) ,
cl::Hidden  )

◆ ProfileSummaryColdCount()

cl::opt< uint64_t > llvm::ProfileSummaryColdCount ( "profile-summary-cold-count" ,
cl::ReallyHidden ,
cl::desc("A fixed cold count that overrides the count derived from" " profile-summary-cutoff-cold")  )

◆ ProfileSummaryCutoffCold()

cl::opt< int > llvm::ProfileSummaryCutoffCold ( "profile-summary-cutoff-cold" ,
cl::Hidden ,
cl::init(999999) ,
cl::desc("A count is cold if it is below the minimum count" " to reach this percentile of total counts.")  )

◆ ProfileSummaryCutoffHot()

cl::opt< int > llvm::ProfileSummaryCutoffHot ( "profile-summary-cutoff-hot" ,
cl::Hidden ,
cl::init(990000) ,
cl::desc("A count is hot if it exceeds the minimum count to" " reach this percentile of total counts.")  )

◆ ProfileSummaryHotCount()

cl::opt< uint64_t > llvm::ProfileSummaryHotCount ( "profile-summary-hot-count" ,
cl::ReallyHidden ,
cl::desc("A fixed hot count that overrides the count derived from" " profile-summary-cutoff-hot")  )

◆ ProfileSummaryHugeWorkingSetSizeThreshold()

cl::opt< unsigned > llvm::ProfileSummaryHugeWorkingSetSizeThreshold ( "profile-summary-huge-working-set-size-threshold" ,
cl::Hidden ,
cl::init(15000) ,
cl::desc("The code working set size is considered huge if the number of" " blocks required to reach the -profile-summary-cutoff-hot" " percentile exceeds this count.")  )

◆ ProfileSummaryLargeWorkingSetSizeThreshold()

cl::opt< unsigned > llvm::ProfileSummaryLargeWorkingSetSizeThreshold ( "profile-summary-large-working-set-size-threshold" ,
cl::Hidden ,
cl::init(12500) ,
cl::desc("The code working set size is considered large if the number of" " blocks required to reach the -profile-summary-cutoff-hot" " percentile exceeds this count.")  )

◆ programUndefinedIfPoison()

bool llvm::programUndefinedIfPoison ( const Instruction * Inst)

◆ programUndefinedIfUndefOrPoison()

bool llvm::programUndefinedIfUndefOrPoison ( const Instruction * Inst)

Return true if this function can prove that if Inst is executed and yields a poison value or undef bits, then that will trigger undefined behavior.

Note that this currently only considers the basic block that is the parent of Inst.

Definition at line 8178 of file ValueTracking.cpp.

Referenced by isGuaranteedNotToBeUndefOrPoison().

◆ promoteCall()

CallBase & llvm::promoteCall ( CallBase & CB,
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 483 of file CallPromotionUtils.cpp.

References assert(), llvm::CastInst::CreateBitOrPointerCast(), createRetBitCast(), llvm::AttributeSet::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getFunctionType(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getType(), llvm::Type::isVoidTy(), llvm::CallBase::mutateFunctionType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::CallBase::setArgOperand(), llvm::CallBase::setAttributes(), llvm::CallBase::setCalledOperand(), and llvm::Instruction::setMetadata().

Referenced by promoteCallWithIfThenElse(), promoteCallWithIfThenElse(), promoteCallWithVTableCmp(), and tryPromoteCall().

◆ promoteCallWithIfThenElse() [1/2]

◆ promoteCallWithIfThenElse() [2/2]

CallBase & llvm::promoteCallWithIfThenElse ( CallBase & CB,
Function * Callee,
MDNode * BranchWeights = nullptr )

Promote the given indirect call site to conditionally call Callee.

The promoted direct call instruction is predicated on CB.getCalledOperand() == / 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
\p BranchWeights is non-null, it will be used to set !prof metadata on the
new conditional branch. 

Definition at line 567 of file CallPromotionUtils.cpp.

References promoteCall(), and versionCallSite().

Referenced by llvm::pgo::promoteIndirectCall(), and llvm::ModuleInlinerPass::run().

◆ promoteCallWithVTableCmp()

CallBase & llvm::promoteCallWithVTableCmp ( CallBase & CB,
Instruction * VPtr,
Function * Callee,
ArrayRef< Constant * > AddressPoints,
MDNode * BranchWeights )

This is similar to promoteCallWithIfThenElse except that the condition to promote a virtual call is that VPtr is the same as any of AddressPoints.

This function is expected to be used on virtual calls (a subset of indirect calls). VPtr is the virtual table address stored in the objects, and AddressPoints contains vtable address points. A vtable address point is a location inside the vtable that's referenced by vpointer in C++ objects.

TODO: sink the address-calculation instructions of indirect callee to the indirect call fallback after transformation.

Definition at line 664 of file CallPromotionUtils.cpp.

References assert(), Cond, llvm::ArrayRef< T >::empty(), promoteCall(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and versionCallSiteWithCond().

◆ promoteLoopAccessesToScalars()

bool llvm::promoteLoopAccessesToScalars ( const SmallSetVector< Value *, 8 > & PointerMustAliases,
SmallVectorImpl< BasicBlock * > & ExitBlocks,
SmallVectorImpl< BasicBlock::iterator > & InsertPts,
SmallVectorImpl< MemoryAccess * > & MSSAInsertPts,
PredIteratorCache & PIC,
LoopInfo * LI,
DominatorTree * DT,
AssumptionCache * AC,
const TargetLibraryInfo * TLI,
TargetTransformInfo * TTI,
Loop * CurLoop,
MemorySSAUpdater & MSSAU,
ICFLoopSafetyInfo * SafetyInfo,
OptimizationRemarkEmitter * ORE,
bool AllowSpeculation,
bool HasReadsOutsideSet )

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. AllowSpeculation is whether values should be hoisted even if they are not guaranteed to execute in the loop, but are safe to speculatively execute.

We do this by looping over the stores in the loop, looking for stores to Must pointers which are loop invariant.

Definition at line 1912 of file LICM.cpp.

References all_of(), llvm::ICFLoopSafetyInfo::anyBlockMayThrow(), assert(), llvm::SetVector< T, Vector, Set, N >::begin(), cast(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::MemorySSAUpdater::createMemoryAccessInBB(), dbgs(), DEBUG_TYPE, DL, llvm::DominatorTree::dominates(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::MemorySSA::End, eraseInstruction(), llvm::PoisonValue::get(), llvm::Instruction::getAAMetadata(), llvm::BasicBlock::getDataLayout(), llvm::DebugLoc::getDropped(), llvm::ilist_node_impl< OptionsT >::getIterator(), getLoadStoreType(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::DebugLoc::getMergedLocations(), llvm::Value::getName(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::StoreInst::getPointerOperandIndex(), llvm::BasicBlock::getTerminator(), llvm::DataLayout::getTypeStoreSize(), getUnderlyingObject(), llvm::MemorySSAUpdater::insertUse(), isDereferenceableAndAlignedPointer(), isDereferenceablePointer(), llvm::ICFLoopSafetyInfo::isGuaranteedToExecute(), isSafeToExecuteUnconditionally(), isWritableObject(), LLVM_DEBUG, llvm::AAMDNodes::merge(), PIC, Ptr, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Instruction::setAAMetadata(), llvm::LoadInst::setAlignment(), llvm::Instruction::setDebugLoc(), llvm::LoadInst::setOrdering(), SSA, Unordered, llvm::Value::use_empty(), llvm::Value::uses(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().

◆ 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 1206 of file PromoteMemoryToRegister.cpp.

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

Referenced by doPromotion(), eliminateSwiftError(), promoteMemoryToRegister(), and relocationViaAlloca().

◆ promoteScalarArgumentSize()

unsigned llvm::promoteScalarArgumentSize ( unsigned size)
inline

◆ propagateIRFlags()

void llvm::propagateIRFlags ( Value * I,
ArrayRef< Value * > VL,
Value * OpValue = nullptr,
bool IncludeWrapFlags = true )

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 (if IncludeWrapFlags is true), exact, and all of fast-math.

Definition at line 1477 of file LoopUtils.cpp.

References dyn_cast(), and I.

Referenced by generateNewInstTree().

◆ 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, MD_mmra].

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 1080 of file VectorUtils.cpp.

References cast(), llvm::MMRAMetadata::combine(), llvm::ArrayRef< T >::empty(), llvm::Value::getContext(), llvm::Instruction::getMetadata(), getMetadataToPropagate(), llvm::MDNode::getMostGenericAliasScope(), llvm::MDNode::getMostGenericFPMath(), llvm::MDNode::getMostGenericTBAA(), llvm::MDNode::intersect(), intersectAccessGroups(), llvm_unreachable, llvm::Instruction::setMetadata(), and llvm::ArrayRef< T >::size().

Referenced by llvm::InterleaveGroup< llvm::Instruction >::addMetadata(), and propagateMetadata().

◆ propagatesPoison()

bool llvm::propagatesPoison ( const Use & PoisonOp)

Return true if PoisonOp's user yields poison or raises UB if its operand PoisonOp is poison.

If PoisonOp is a vector or an aggregate and the operation's result is a single value, any poison element in /p PoisonOp should make the result poison or raise UB.

To filter out operands that raise UB on poison, you can use getGuaranteedNonPoisonOp.

Definition at line 7970 of file ValueTracking.cpp.

References cast(), dyn_cast(), llvm::Use::getOperandNo(), llvm::Use::getUser(), I, II, intrinsicPropagatesPoison(), and isa().

Referenced by programUndefinedIfUndefOrPoison().

◆ pruneCache()

bool llvm::pruneCache ( StringRef Path,
CachePruningPolicy Policy,
const std::vector< std::unique_ptr< MemoryBuffer > > & Files = {} )

Peform pruning using the supplied policy, returns true if pruning occurred, i.e.

Prune the cache of files that haven't been accessed in a long time.

if Policy.Interval was expired.

Check whether cache pruning happens using the supplied policy, adds a ThinLTO warning if cache_size_bytes or cache_size_files is too small for the current link job. The warning recommends the user to consider adjusting –thinlto-cache-policy.

As a safeguard against data loss if the user specifies the wrong directory as their cache directory, this function will ignore files not matching the pattern "llvmcache-*".

Definition at line 145 of file CachePruning.cpp.

References llvm::sys::path::append(), count(), dbgs(), llvm::sys::fs::disk_space(), llvm::CachePruningPolicy::Expiration, llvm::sys::path::filename(), llvm::sys::fs::space_info::free, llvm::sys::fs::basic_file_status::getLastModificationTime(), llvm::CachePruningPolicy::Interval, llvm::sys::fs::is_directory(), LLVM_DEBUG, llvm::CachePruningPolicy::MaxSizeBytes, llvm::CachePruningPolicy::MaxSizeFiles, llvm::CachePruningPolicy::MaxSizePercentageOfAvailableSpace, llvm::sys::path::native, no_such_file_or_directory, llvm::sys::fs::remove(), report_fatal_error(), llvm::StringRef::starts_with(), llvm::sys::fs::status(), llvm::WithColor::warning(), and writeTimestampFile().

Referenced by getCachedOrDownloadArtifact(), and llvm::ThinLTOCodeGenerator::run().

◆ PTOGV()

◆ range_size()

template<typename R>
size_t llvm::range_size ( R && Range)
constexpr

Returns the size of the Range, i.e., the number of elements.

This implementation takes inspiration from std::ranges::size from C++20 and delegates the size check to adl_size or std::distance, in this order of preference. Unlike llvm::size, this function does not guarantee O(1) running time, and is intended to be used in generic code that does not know the exact range type.

Definition at line 1682 of file STLExtras.h.

References adl_begin(), adl_end(), adl_size(), llvm::detail::HasFreeFunctionSize, and Range.

Referenced by append_values(), enumerate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::sandboxir::Value::getNumUses(), zip_equal(), and zip_first().

◆ readAndDecodeStrings()

Error llvm::readAndDecodeStrings ( StringRef NameStrings,
std::function< Error(StringRef)> NameCallback )

NameStrings is a string composed of one or more possibly encoded sub-strings.

The substrings are separated by \01 (returned by InstrProf.h:getInstrProfNameSeparator). This method decodes the string and calls NameCallback for each substring.

Definition at line 576 of file InstrProf.cpp.

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

Referenced by llvm::InstrProfSymtab::create(), llvm::InstrProfSymtab::create(), and llvm::InstrProfSymtab::initVTableNamesFromCompressedStrings().

◆ ReadByteArrayFromGlobal()

◆ readDescriptorRanges()

◆ readExponent()

Expected< int > llvm::readExponent ( StringRef::iterator begin,
StringRef::iterator end )
static

Definition at line 436 of file APFloat.cpp.

References createError(), and decDigitValue().

Referenced by interpretDecimal().

◆ readModuleSummaryIndex()

Error llvm::readModuleSummaryIndex ( MemoryBufferRef Buffer,
ModuleSummaryIndex & CombinedIndex )

Parse the specified bitcode buffer and merge the index into CombinedIndex.

Definition at line 8749 of file BitcodeReader.cpp.

References getSingleModule(), and llvm::Expected< T >::takeError().

◆ readWideAPInt()

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

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3728 of file Local.cpp.

References all_of(), assert(), llvm::ArrayRef< T >::back(), bitTransformIsCorrectForBitReverse(), bitTransformIsCorrectForBSwap(), llvm::APInt::clearBit(), collectBitParts(), llvm::BinaryOperator::Create(), llvm::CallInst::Create(), llvm::CastInst::CreateIntegerCast(), llvm::ArrayRef< T >::drop_back(), dyn_cast(), llvm::ArrayRef< T >::empty(), F, llvm::VectorType::get(), llvm::APInt::getAllOnes(), llvm::Type::getIntNTy(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), I, llvm::APInt::isAllOnes(), llvm::Type::isIntOrIntVectorTy(), llvm::PatternMatch::m_BSwap(), llvm::PatternMatch::m_FShl(), llvm::PatternMatch::m_FShr(), llvm::PatternMatch::m_Or(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::ArrayRef< T >::size().

Referenced by llvm::InstCombinerImpl::matchBSwapOrBitReverse().

◆ recomputeLiveIns()

bool llvm::recomputeLiveIns ( MachineBasicBlock & MBB)
inlinestatic

Convenience function for recomputing live-in's for a MBB.

Returns true if any changes were made.

Definition at line 210 of file LivePhysRegs.h.

References computeAndAddLiveIns(), and MBB.

Referenced by fullyRecomputeLiveIns().

◆ recomputeLivenessFlags()

◆ recomputeLTOCacheKey()

std::string llvm::recomputeLTOCacheKey ( const std::string & Key,
StringRef ExtraID )

Recomputes the LTO cache key for a given key with an extra identifier.

Definition at line 353 of file LTO.cpp.

References InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::SHA1::result(), toHex(), and llvm::SHA1::update().

◆ recomputeVPTBlockMask()

◆ reconstructFunctionType()

Type * llvm::reconstructFunctionType ( Function * F)
inline

◆ RecursivelyDeleteDeadPHINode()

bool llvm::RecursivelyDeleteDeadPHINode ( PHINode * PN,
const TargetLibraryInfo * TLI = nullptr,
llvm::MemorySSAUpdater * MSSAU = 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 641 of file Local.cpp.

References areAllUsesEqual(), cast(), llvm::PoisonValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), and RecursivelyDeleteTriviallyDeadInstructions().

Referenced by CanWidenIV(), and DeleteDeadPHIs().

◆ RecursivelyDeleteTriviallyDeadInstructions() [1/2]

void llvm::RecursivelyDeleteTriviallyDeadInstructions ( SmallVectorImpl< WeakTrackingVH > & DeadInsts,
const TargetLibraryInfo * TLI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
std::function< void(Value *)> AboutToDeleteCallback = std::function<void(Value *)>() )

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 567 of file Local.cpp.

References assert(), cast_or_null(), dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), I, isInstructionTriviallyDead(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MemorySSAUpdater::removeMemoryAccess(), salvageDebugInfo(), and llvm::Value::use_empty().

◆ RecursivelyDeleteTriviallyDeadInstructions() [2/2]

bool llvm::RecursivelyDeleteTriviallyDeadInstructions ( Value * V,
const TargetLibraryInfo * TLI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
std::function< void(Value *)> AboutToDeleteCallback = std::function<void(Value *)>() )

◆ RecursivelyDeleteTriviallyDeadInstructionsPermissive()

bool llvm::RecursivelyDeleteTriviallyDeadInstructionsPermissive ( SmallVectorImpl< WeakTrackingVH > & DeadInsts,
const TargetLibraryInfo * TLI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
std::function< void(Value *)> AboutToDeleteCallback = std::function<void(Value *)>() )

Same functionality as RecursivelyDeleteTriviallyDeadInstructions, but allow instructions that are not trivially dead.

These will be ignored. Returns true if any changes were made, i.e. any instructions trivially dead were found and deleted.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 548 of file Local.cpp.

References dyn_cast_or_null(), I, isInstructionTriviallyDead(), RecursivelyDeleteTriviallyDeadInstructions(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by CleanupConstantGlobalUsers(), doPromotion(), and ReduceLoopStrength().

◆ refineInstruction()

◆ 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  )

◆ registerCodeGenCallback()

◆ registerDefinedBetween()

bool llvm::registerDefinedBetween ( unsigned Reg,
MachineBasicBlock::iterator From,
MachineBasicBlock::iterator To,
const TargetRegisterInfo * TRI )

Return true if Reg is defd between From and To.

Definition at line 5435 of file ARMBaseInstrInfo.cpp.

References I, and TRI.

Referenced by findCMPToFoldIntoCBZ(), and findVCMPToFoldIntoVPST().

◆ RemapDbgRecord()

void llvm::RemapDbgRecord ( Module * M,
DbgRecord * DR,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = nullptr )
inline

Remap the Values used in the DbgRecord DR using the value map VM.

Definition at line 306 of file ValueMapper.h.

References llvm::ValueMapper::remapDbgRecord(), and RF_None.

Referenced by performBranchToCommonDestFolding().

◆ RemapDbgRecordRange()

void llvm::RemapDbgRecordRange ( Module * M,
iterator_range< DbgRecordIterator > Range,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = nullptr )
inline

◆ remapDebugVariable()

void llvm::remapDebugVariable ( ValueToValueMapTy & Mapping,
Instruction * Inst )

◆ RemapFunction()

void llvm::RemapFunction ( Function & F,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = 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 334 of file ValueMapper.h.

References F, llvm::ValueMapper::remapFunction(), and RF_None.

Referenced by replaceConstants().

◆ RemapInstruction()

void llvm::RemapInstruction ( Instruction * I,
ValueToValueMapTy & VM,
RemapFlags Flags = RF_None,
ValueMapTypeRemapper * TypeMapper = nullptr,
ValueMaterializer * Materializer = nullptr,
const MetadataPredicate * IdentityMD = 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 289 of file ValueMapper.h.

References I, llvm::ValueMapper::remapInstruction(), and RF_None.

Referenced by buildClonedLoopBlocks(), buildPartialInvariantUnswitchConditionalBranch(), CloneAndPruneIntoFromInst(), CloneFunctionBodyInto(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), foldCondBranchOnValueKnownInPredecessorImpl(), phiNodeRemapHelper(), remapInstructionsInBlocks(), and UnrollRuntimeLoopRemainder().

◆ remapInstructionsInBlocks()

void llvm::remapInstructionsInBlocks ( ArrayRef< BasicBlock * > Blocks,
ValueToValueMapTy & VMap )

◆ remapPath()

std::string llvm::remapPath ( StringRef Path,
const DWARFLinkerBase::ObjectPrefixMapTy & ObjectPrefixMap )
static

Definition at line 2657 of file DWARFLinker.cpp.

References llvm::sys::path::replace_path_prefix().

Referenced by getPCMFile(), and getPCMFile().

◆ RemapSourceAtom()

void llvm::RemapSourceAtom ( Instruction * I,
ValueToValueMapTy & VM )

Remap source location atom.

Called by RemapInstruction. This updates the instruction's atom group number if it has been mapped (e.g. with llvm::mapAtomInstance), which is necessary to distinguish source code atoms on duplicated code paths.

Definition at line 1307 of file ValueMapper.cpp.

References llvm::ValueMap< KeyT, ValueT, Config >::AtomMap, DL, llvm::MDNode::get(), and I.

Referenced by cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), remapSourceAtoms(), SplitIndirectBrCriticalEdges(), and UnrollLoop().

◆ remove_bad_alloc_error_handler()

void llvm::remove_bad_alloc_error_handler ( )

Restores default bad alloc error handling behavior.

Definition at line 170 of file ErrorHandling.cpp.

References BadAllocErrorHandler, and BadAllocErrorHandlerUserData.

◆ remove_fatal_error_handler()

void llvm::remove_fatal_error_handler ( )

Restores default error handling behaviour.

Definition at line 87 of file ErrorHandling.cpp.

References ErrorHandler, and ErrorHandlerUserData.

Referenced by LLVMResetFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().

◆ remove_if()

template<typename R, typename UnaryPredicate>
auto llvm::remove_if ( R && Range,
UnaryPredicate P )

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

Definition at line 1750 of file STLExtras.h.

References adl_begin(), adl_end(), P, and Range.

Referenced by erase_if(), llvm::PriorityWorklist< T, VectorT, MapT >::erase_if(), llvm::SetVector< EdgeType * >::remove_if(), llvm::logicalview::LVScope::removeElement(), and llvm::PHINode::removeIncomingValueIf().

◆ removeAllNonTerminatorAndEHPadInstructions()

◆ removeASanIncompatibleFnAttributes()

void llvm::removeASanIncompatibleFnAttributes ( Function & F,
bool ReadsArgMem )

Remove memory attributes that are incompatible with the instrumentation added by AddressSanitizer and HWAddressSanitizer.

ReadsArgMem - indicates whether function arguments may be read by instrumentation and require removing writeonly attributes.

Definition at line 619 of file AddressSanitizer.cpp.

References A(), Changed, and F.

◆ removeFromUsedLists()

void llvm::removeFromUsedLists ( Module & M,
function_ref< bool(Constant *)> ShouldRemove )

Removes global values from the llvm.used and llvm.compiler.used arrays.

ShouldRemove should return true for any initializer field that should not be included in the replacement global.

Definition at line 196 of file ModuleUtils.cpp.

References removeFromUsedList().

Referenced by removeUnreachableFunctions().

◆ RemoveRedundantDbgInstrs()

bool llvm::RemoveRedundantDbgInstrs ( BasicBlock * BB)

◆ removeUnreachableBlocks()

◆ removeUnwindEdge()

Instruction * 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. Returns the instruction that replaced the original terminator, which might be a call in case the original terminator was an invoke.

Parameters
BBBlock whose terminator will be replaced. Its terminator must have an unwind successor.
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 2845 of file Local.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), changeToCall(), llvm::CatchSwitchInst::Create(), llvm::CleanupReturnInst::Create(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, dyn_cast(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getTerminator(), II, llvm_unreachable, llvm::BasicBlock::removePredecessor(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setDebugLoc(), and llvm::Value::takeName().

Referenced by removeEmptyCleanup().

◆ renameModuleForThinLTO()

void llvm::renameModuleForThinLTO ( Module & M,
const ModuleSummaryIndex & Index,
bool ClearDSOLocalOnDeclarations,
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 372 of file FunctionImportUtils.cpp.

References llvm::FunctionImportGlobalProcessing::run().

Referenced by doImportingForModuleForTest(), llvm::FunctionImporter::importFunctions(), promoteModule(), and llvm::lto::thinBackend().

◆ reorderScalars()

◆ replace() [1/3]

template<typename Container, typename RandomAccessIterator>
void llvm::replace ( Container & Cont,
typename Container::iterator ContIt,
typename Container::iterator ContEnd,
RandomAccessIterator ValIt,
RandomAccessIterator ValEnd )

Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range [ValIt, ValEnd) (which is not from the same container).

Definition at line 2131 of file STLExtras.h.

◆ replace() [2/3]

template<typename Container, typename Range = std::initializer_list< typename Container::value_type>>
void llvm::replace ( Container & Cont,
typename Container::iterator ContIt,
typename Container::iterator ContEnd,
Range && R )

Given a sequence container Cont, replace the range [ContIt, ContEnd) with the range R.

Definition at line 2153 of file STLExtras.h.

References adl_begin(), adl_end(), Range, and replace().

◆ replace() [3/3]

◆ replace_copy()

template<typename R, typename OutputIt, typename T>
OutputIt llvm::replace_copy ( R && Range,
OutputIt Out,
const T & OldValue,
const T & NewValue )

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

Definition at line 1831 of file STLExtras.h.

References adl_begin(), adl_end(), Range, and T.

Referenced by TransferTracker::clobberMloc().

◆ replace_copy_if()

template<typename R, typename OutputIt, typename UnaryPredicate, typename T>
OutputIt llvm::replace_copy_if ( R && Range,
OutputIt Out,
UnaryPredicate P,
const T & NewValue )

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

Definition at line 1822 of file STLExtras.h.

References adl_begin(), adl_end(), P, Range, and T.

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 2414 of file Local.cpp.

References llvm::DIExpression::appendExt(), assert(), DL, llvm::Instruction::getModule(), llvm::Type::getPrimitiveSizeInBits(), llvm::DIVariable::getSignedness(), llvm::Value::getType(), isBitCastSemanticsPreserving(), llvm::Type::isIntegerTy(), llvm::Value::isUsedByMetadata(), rewriteDebugUsers(), llvm::DIBasicType::Signed, and Signed.

Referenced by llvm::InstCombinerImpl::commonCastTransforms(), llvm::InstCombinerImpl::foldOpIntoPhi(), simplifyAllocaArraySize(), and llvm::InstCombinerImpl::visitZExt().

◆ replaceAndRecursivelySimplify()

bool llvm::replaceAndRecursivelySimplify ( Instruction * I,
Value * SimpleV,
const TargetLibraryInfo * TLI = nullptr,
const DominatorTree * DT = nullptr,
AssumptionCache * AC = nullptr,
SmallSetVector< Instruction *, 8 > * UnsimplifiedUsers = 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'. If UnsimplifiedUsers is provided, instructions that could not be simplified are added to it.

The function returns true if any simplifications were performed.

Definition at line 7359 of file InstructionSimplify.cpp.

References assert(), I, and replaceAndRecursivelySimplifyImpl().

Referenced by replaceConditionalBranchesOnConstant(), and replaceWithConstant().

◆ replaceCreatedSSACopys()

void llvm::replaceCreatedSSACopys ( PredicateInfo & PredInfo,
Function & F )
static

Definition at line 764 of file PredicateInfo.cpp.

References assert(), F, instructions, isa(), and make_early_inc_range().

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

◆ replaceDbgDeclare()

bool llvm::replaceDbgDeclare ( Value * Address,
Value * NewAddress,
DIBuilder & Builder,
uint8_t DIExprFlags,
int Offset )

Replaces dbg.declare record 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1942 of file Local.cpp.

References Address, assert(), llvm::TinyPtrVector< EltTy >::empty(), findDVRDeclares(), for_each(), Offset, and llvm::DIExpression::prepend().

◆ replaceDbgUsesWithUndef()

bool llvm::replaceDbgUsesWithUndef ( Instruction * I)

Replace all the uses of an SSA value in @llvm.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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 610 of file Local.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::empty(), findDbgUsers(), and I.

◆ replaceDbgValueForAlloca()

void llvm::replaceDbgValueForAlloca ( AllocaInst * AI,
Value * NewAllocaAddress,
DIBuilder & Builder,
int Offset = 0 )

Replaces multiple dbg.value records 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 dbg.value records are inserted at the locations of the instructions they replace.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1982 of file Local.cpp.

References findDbgValues(), Offset, and updateOneDbgValueForAlloca().

◆ replaceDominatedUsesWith() [1/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 3229 of file Local.cpp.

References llvm::DominatorTree::dominates().

◆ replaceDominatedUsesWith() [2/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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3222 of file Local.cpp.

References llvm::DominatorTree::dominates().

Referenced by sinkInstruction().

◆ replaceDominatedUsesWithIf() [1/2]

unsigned llvm::replaceDominatedUsesWithIf ( Value * From,
Value * To,
DominatorTree & DT,
const BasicBlock * BB,
function_ref< bool(const Use &U, const Value *To)> ShouldReplace )

Replace each use of 'From' with 'To' if that use is dominated by the end of the given BasicBlock and the callback ShouldReplace returns true.

Returns the number of replacements made.

Definition at line 3245 of file Local.cpp.

References llvm::DominatorTree::dominates().

◆ replaceDominatedUsesWithIf() [2/2]

unsigned llvm::replaceDominatedUsesWithIf ( Value * From,
Value * To,
DominatorTree & DT,
const BasicBlockEdge & Edge,
function_ref< bool(const Use &U, const Value *To)> ShouldReplace )

Replace each use of 'From' with 'To' if that use is dominated by the given edge and the callback ShouldReplace returns true.

Returns the number of replacements made.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 3236 of file Local.cpp.

References llvm::DominatorTree::dominates().

◆ ReplaceInstWithInst() [1/2]

void llvm::ReplaceInstWithInst ( BasicBlock * BB,
BasicBlock::iterator & BI,
Instruction * I )

Replace the instruction specified by BI with the instruction specified by I.

Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc. The original instruction is deleted and BI is updated to point to the new instruction.

Definition at line 564 of file BasicBlockUtils.cpp.

References assert(), I, and ReplaceInstWithValue().

Referenced by llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::InsertCFGStrategy::mutate(), ReplaceInstWithInst(), and SplitBlockAndInsertIfThenElse().

◆ 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 598 of file BasicBlockUtils.cpp.

References llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), and ReplaceInstWithInst().

◆ ReplaceInstWithValue()

void llvm::ReplaceInstWithValue ( 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 551 of file BasicBlockUtils.cpp.

References I.

Referenced by ReplaceInstWithInst().

◆ replaceNonLocalUsesWith()

◆ replaceRelativePointerUsersWithZero()

void llvm::replaceRelativePointerUsersWithZero ( Constant * C)

Finds the same "relative pointer" pattern as described above, where the target is C, and replaces the entire pattern with a constant zero.

Definition at line 258 of file TypeMetadataUtils.cpp.

References llvm::CallingConv::C, dyn_cast(), replaceRelativePointerUsersWithZero(), and replaceRelativePointerUserWithZero().

Referenced by replaceRelativePointerUsersWithZero(), and llvm::GlobalDCEPass::run().

◆ replaceSignedInst()

◆ replaceSymbolicStrideSCEV()

const SCEV * llvm::replaceSymbolicStrideSCEV ( PredicatedScalarEvolution & PSE,
const DenseMap< Value *, const SCEV * > & PtrToStride,
Value * Ptr )

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.

PtrToStride provides the mapping between the pointer value and its stride as collected by LoopVectorizationLegality::collectStridedAccess.

Definition at line 155 of file LoopAccessAnalysis.cpp.

References llvm::PredicatedScalarEvolution::addPredicate(), assert(), dbgs(), llvm::ScalarEvolution::getEqualPredicate(), llvm::ScalarEvolution::getOne(), llvm::PredicatedScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), llvm::SCEV::getType(), isa(), LLVM_DEBUG, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), and Ptr.

Referenced by getPtrStride().

◆ 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 might not terminate, e.g. the user defined error handler throws an exception, but it won't return.

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), throws a bad_alloc exception if LLVM is compiled with exception support. Otherwise prints the error to standard error and calls abort().

Definition at line 178 of file ErrorHandling.cpp.

References BadAllocErrorHandler, BadAllocErrorHandlerUserData, llvm_unreachable, and write_retry().

Referenced by allocate_buffer(), operator new(), out_of_memory_new_handler(), safe_calloc(), safe_malloc(), and safe_realloc().

◆ report_fatal_error() [1/4]

void llvm::report_fatal_error ( const char * reason,
bool gen_crash_diag = true )

◆ report_fatal_error() [2/4]

◆ report_fatal_error() [3/4]

void llvm::report_fatal_error ( Error Err,
bool gen_crash_diag = true )
Deprecated
Use reportFatalInternalError() or reportFatalUsageError() instead.

Definition at line 167 of file Error.cpp.

Referenced by llvm::AArch64FunctionInfo::AArch64FunctionInfo(), addData(), llvm::cl::parser< DataType >::addLiteralOption(), llvm::ThinLTOCodeGenerator::addModule(), addNumImm(), llvm::MCJIT::addObjectFile(), addOperandsForVFMK(), addressSpaceToStorageClass(), llvm::NVPTX::AddressSpaceToString(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::AMDGPUMachineFunction::allocateLDSGlobal(), allocateSGPR32InputImpl(), llvm::SITargetLowering::allocateSpecialInputVGPRsFixed(), llvm::RuntimeDyld::MemoryManager::allocateTLSSection(), llvm::coro::Shape::analyze(), llvm::CCState::AnalyzeFormalArguments(), llvm::AMDGPUResourceUsageAnalysisImpl::analyzeResourceUsage(), llvm::CCState::AnalyzeReturn(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), ARM64EmitUnwindInfo(), ARM64EmitUnwindInfoForSegment(), ARMEmitUnwindInfo(), AVRDAGToDAGISel::select< ISD::LOAD >(), basicCheckForEHAndSjLj(), llvm::yaml::Stream::begin(), llvm::MachObjectWriter::bindIndirectSymbols(), buildBarrierInst(), buildExtendedBitOpsInst(), buildFrameType(), buildModuleSummaryIndex(), buildOpBitcast(), buildOpSpirvDecorations(), buildScratchExecCopy(), llvm::SIRegisterInfo::buildSpillLoadStore(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), callDefaultCtor(), llvm::Interpreter::callExternalFunction(), CC_AIX(), CC_LoongArch_GHC(), CC_RISCV_GHC(), CC_SystemZ_GHC_Error(), CC_X86_Intr(), CC_Xtensa_Custom(), checkAddrSpaceIsValidForLibcall(), checkMachOComdat(), llvm::object::XCOFFObjectFile::checkSymbolEntryPointer(), codegen(), codegenModule(), llvm::coro::collectSpillsAndAllocasFromInsts(), computeDeadSymbolsAndUpdateIndirectCalls(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::DwarfFile::computeSizeAndOffsets(), llvm::object::computeSymbolSizes(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::ThinLTOCodeGeneratorImpl::TargetMachineBuilder::create(), llvm::MCAsmBackend::createDwoObjectWriter(), llvm::SpecialCaseList::createOrDie(), CreateZ3Solver(), crossImportIntoModule(), llvm::DataLayout::DataLayout(), llvm::thread::detach(), determineSVEStackObjectOffsets(), llvm::vfs::OutputFile::discard(), doImportingForModuleForTest(), llvm::BasicBlockSectionsProfileReaderWrapperPass::doInitialization(), llvm::NVPTXAsmPrinter::doInitialization(), doInsertBitcast(), llvm::DwarfDebug::DwarfDebug(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::SystemZHLASMAsmStreamer::emitAlignmentDS(), llvm::AMDGPUTargetELFStreamer::emitAMDGPULDS(), llvm::MCELFStreamer::emitCommonSymbol(), llvm::MCWinCOFFStreamer::emitCommonSymbol(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MipsTargetStreamer::emitDirectiveModuleOddSPReg(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::SIFrameLowering::emitEpilogue(), llvm::EHStreamer::emitExceptionTable(), emitGlobalConstantVector(), llvm::ExecutionEngine::emitGlobals(), llvm::AMDGPUAsmPrinter::emitGlobalVariable(), llvm::ThinLTOCodeGenerator::emitImports(), EmitInlineAsmStr(), llvm::X86AsmPrinter::emitInstruction(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitKCFICheck(), llvm::TargetLoweringObjectFileELF::emitLinkerDirectives(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), llvm::MCJIT::emitObject(), llvm::SIFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), llvm::MCStreamer::emitRawTextImpl(), llvm::RuntimeDyldImpl::emitSection(), llvm::MCXCOFFStreamer::emitSymbolAttribute(), llvm::RISCVTargetStreamer::emitTargetAttributes(), llvm::MCStreamer::emitXCOFFExceptDirective(), llvm::MCXCOFFStreamer::emitXCOFFRenameDirective(), llvm::WinCOFFWriter::executePostLayoutBinding(), llvm::TargetLowering::expandFMINNUM_FMAXNUM(), expandPseudoVFMK(), llvm::TargetLowering::expandVecReduceSeq(), llvm::TargetLowering::expandVECTOR_COMPRESS(), llvm::CodeExtractor::extractCodeRegion(), fail(), llvm::NVPTXSubtarget::failIfClustersUnsupported(), llvm::MCJIT::findSymbol(), foldPatchpoint(), llvm::ARMJITSymbolFlags::fromObjectSymbol(), llvm::MCJIT::generateCodeForModule(), generateConvertInst(), generateCoopMatrInst(), generateGroupInst(), generateGroupUniformInst(), generateICarryBorrowInst(), generateIntelSubgroupsInst(), generateKernelClockInst(), generateSampleImageInst(), GetAbsDifference(), llvm::object::ELFObjectFile< ELFT >::getArch(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsArchive(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsIRObject(), llvm::object::MachOUniversalBinary::ObjectForArch::getAsObjectFile(), llvm::SelectionDAG::getAtomicMemcpy(), llvm::SelectionDAG::getAtomicMemmove(), llvm::SelectionDAG::getAtomicMemset(), llvm::BlockFrequencyInfoImplBase::getBlockFreq(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCallPreservedMask(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), llvm::MCRegisterInfo::getCodeViewRegNum(), getComdatGVForCOFF(), llvm::object::ObjectFile::getCommonSymbolSize(), llvm::ExecutionEngine::getConstantValue(), getCopyFromParts(), llvm::AArch64RegisterInfo::getDarwinCalleeSavedRegs(), llvm::AArch64RegisterInfo::getDarwinCallPreservedMask(), llvm::TargetLoweringBase::getDefaultSafeStackPointerLocation(), llvm::HexagonInstrInfo::getDotNewOp(), getDXILArchNameFromShaderModel(), getEffectiveAArch64CodeModel(), getEffectiveLoongArchCodeModel(), getEffectivePPCCodeModel(), getEffectiveRelocModel(), getEffectiveSparcCodeModel(), getEffectiveSystemZCodeModel(), getEffectiveXCoreCodeModel(), llvm::AMDGPU::getELFABIVersion(), getELFComdat(), llvm::MCSymbolMachO::getEncodedFlags(), llvm::ProfileSummaryBuilder::getEntryForPercentile(), getExecutionModel(), llvm::XtensaConstantPoolValue::getExistingMachineCPValue(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileXCOFF::getExplicitSectionGlobal(), llvm::XCoreTargetObjectFile::getExplicitSectionGlobal(), getFenceOp(), llvm::object::ELFObjectFile< ELFT >::getFileFormatName(), getGCStrategy(), getGlobalVariable(), getHiPELiteral(), getLeastCommonType(), llvm::RISCVSubtarget::getMaxRVVVectorSizeInBits(), llvm::WebAssemblyAsmPrinter::getMCSymbolForFunction(), llvm::RISCVSubtarget::getMinRVVVectorSizeInBits(), getModifierSpecifier(), llvm::XtensaConstantPoolValue::getModifierText(), llvm::yaml::Output::getNodeKind(), getNumComponentsForDim(), getOperandAsUnsigned(), getPointerOperandIndex(), llvm::MCJIT::getPointerToNamedFunction(), llvm::RTDyldMemoryManager::getPointerToNamedFunction(), GetPromotionOpcode(), GetPromotionOpcodeStrict(), getRegClassForSVT(), llvm::NVPTXTargetLowering::getRegForInlineAsmConstraint(), llvm::PPCTargetLowering::getRegForInlineAsmConstraint(), llvm::AVRTargetLowering::getRegisterByName(), llvm::LoongArchTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::TargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::object::ELFObjectFile< ELFT >::getRel(), llvm::object::ELFObjectFile< ELFT >::getRela(), llvm::object::ELFObjectFile< ELF32LE >::getRelSection(), llvm::M68kRegisterInfo::getReservedRegs(), getSamplerAddressingModeFromBitmask(), GetScratchRegister(), llvm::TargetLoweringObjectFile::getSectionForConstant(), llvm::TargetLoweringObjectFileXCOFF::getSectionForConstant(), getSEHRegistrationNodeSize(), getSPIRVMemSemantics(), getSPIRVScope(), llvm::TargetLoweringObjectFileXCOFF::getStaticCtorSection(), llvm::TargetLoweringObjectFileWasm::getStaticDtorSection(), llvm::TargetLoweringObjectFileXCOFF::getStaticDtorSection(), llvm::TargetLoweringObjectFileXCOFF::getStorageClassForGlobal(), getStruct(), llvm::LoongArchTargetMachine::getSubtargetImpl(), llvm::RISCVTargetMachine::getSubtargetImpl(), llvm::MachObjectWriter::getSymbolAddress(), llvm::MCJIT::getSymbolAddress(), llvm::object::ELFObjectFile< ELFT >::getSymbolAlignment(), llvm::object::COFFObjectFile::getSymbolAuxData(), llvm::object::ELFObjectFile< ELFT >::getSymbolBinding(), llvm::object::MachOObjectFile::getSymbolByIndex(), llvm::object::ELFObjectFile< ELFT >::getSymbolELFType(), llvm::SelectionDAG::getSymbolFunctionGlobalAddress(), llvm::object::MachOObjectFile::getSymbolIndex(), llvm::object::ELFObjectFile< ELFT >::getSymbolOther(), llvm::object::ELFObjectFile< ELFT >::getSymbolValueImpl(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), getVRBValueMapping(), getWasmComdat(), llvm::TargetFrameLowering::getWinEHParentFrameOffset(), llvm::MCContext::getXCOFFSection(), llvm::BitCodeAbbrevOp::hasEncodingData(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::TargetLowering::IncrementMemoryAddress(), llvm::coro::AnyRetconABI::init(), llvm::coro::SwitchABI::init(), llvm::GCNSchedStrategy::initCandidate(), INITIALIZE_PASS(), llvm::XtensaInstrInfo::insertBranchAtInst(), insertCall(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::insertIndirectBranch(), llvm::XtensaInstrInfo::insertIndirectBranch(), insertInlineAsm(), InsertSEH(), insertSEH(), insertSignalHandler(), insertSpills(), isArchiveSymbol(), llvm::AArch64RegisterInfo::isArgumentRegister(), isGPRShadowAligned(), isThumbFunc(), llvm::SingleThreadExecutor::isWorkerThread(), llvm::vfs::OutputFile::keep(), llvm::yaml::Output::keys(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), LLVMVerifyFunction(), LLVMVerifyModule(), loadFile(), llvm::XtensaInstrInfo::loadImmediate(), llvm::cgdata::loadModuleForTwoRounds(), loadModuleFromInput(), llvm::RuntimeDyld::loadObject(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::ExecutionEngine::LoadValueFromMemory(), llvm::SPIRVMCInstLower::lower(), LowerADDRSPACECAST(), lowerAddrSpaceCast(), llvm::X86TargetLowering::LowerAsmOutputForConstraint(), llvm::SPIRV::lowerBuiltinType(), llvm::LoongArchTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::SITargetLowering::LowerCallResult(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AsmPrinter::lowerConstantPtrAuth(), llvm::LoongArchTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::XtensaTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerInterruptReturn(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerLoongArchMachineOperandToMCOperand(), LowerOperand(), llvm::XtensaAsmPrinter::lowerOperand(), llvm::BPFTargetLowering::LowerOperation(), llvm::XtensaTargetLowering::LowerOperation(), LowerPtrAuthGlobalAddressStatically(), llvm::LoongArchTargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::XtensaAsmPrinter::LowerSymbolOperand(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), mapArchToCVCPUType(), mapToSinitPriority(), MarkEHGuard(), MarkEHRegistrationNode(), llvm::MCContext::MCContext(), llvm::MemProfContextDisambiguation::MemProfContextDisambiguation(), llvm::MFPropsModifier< PassT >::MFPropsModifier(), llvm::MipsSubtarget::MipsSubtarget(), llvm::CSKYInstrInfo::movImm(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::TargetLoweringBase::needsFixedCatchObjects(), llvm::AArch64FunctionInfo::needsShadowCallStackPrologueEpilogue(), llvm::EscapeEnumerator::Next(), llvm::NVPTXScopes::operator[](), llvm::LTOCodeGenerator::optimize(), optimizeCall(), llvm::NVPTX::OrderingToString(), llvm::SymbolRewriter::RewriteMapParser::parse(), llvm::SPIRV::parseBuiltinTypeNameToTargetExtType(), llvm::TargetLowering::ParseConstraints(), parseRefinementStep(), parseTypeString(), llvm::AMDGPUCallLowering::passSpecialInputs(), llvm::SITargetLowering::passSpecialInputs(), patchMatchingInput(), llvm::sys::fs::recursive_directory_iterator::pop(), postSplitCleanup(), llvm::PPCXCOFFMCAsmInfo::PPCXCOFFMCAsmInfo(), prepareDumpIRFileDescriptor(), llvm::MCSymbol::print(), llvm::NVPTXInstPrinter::printAtomicCode(), llvm::XtensaInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printRegName(), llvm::AsmPrinter::PrintSpecial(), llvm::MCAsmInfoXCOFF::printSwitchToSection(), processBlockAddr(), processNewInstrs(), llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), llvm::RuntimeDyldCOFFX86_64::processRelocationRef(), llvm::RuntimeDyldELF::processRelocationRef(), pruneCache(), raise_relocation_error(), llvm::memprof::RawMemProfReader::RawMemProfReader(), readFloat32(), readFloat64(), readInstruction16(), readInstruction24(), readLEB128(), readLimits(), readString(), readUint32(), readUint8(), readULEB128(), readVarint32(), readVaruint1(), readVaruint32(), llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::RehashBucket(), llvm::RegBankSelect::repairReg(), report_at_maximum_capacity(), report_fatal_error(), report_fatal_error(), llvm::PrintCrashIRInstrumentation::reportCrashIR(), ReportErrnumFatal(), reportFatalInternalError(), reportFatalInternalError(), reportFatalInternalError(), reportFatalOnTokenType(), reportFatalUsageError(), reportFatalUsageError(), reportFatalUsageError(), ReportLastErrorFatal(), reportNodeError(), reportTranslationError(), reservePrivateMemoryRegs(), llvm::RuntimeDyldCOFFX86_64::resolveRelocation(), llvm::XtensaInstrInfo::reverseBranchCondition(), rewriteAccessChain(), llvm::RISCVTargetMachine::RISCVTargetMachine(), llvm::DAGTypeLegalizer::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::LintPass::run(), llvm::MachineBlockPlacementPass::run(), llvm::SafeStackPass::run(), llvm::ThinLTOCodeGenerator::run(), llvm::VerifierPass::run(), llvm::VerifierPass::run(), llvm::MCJIT::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), runNewPMPasses(), StaticDataAnnotator::runOnModule(), llvm::cgdata::saveModuleForTwoRounds(), saveTempBitcode(), llvm::TargetLowering::scalarizeVectorLoad(), llvm::TargetLowering::scalarizeVectorStore(), scavengeFrameVirtualRegs(), llvm::NVPTX::ScopeToString(), llvm::object::COFFObjectFile::section_rel_begin(), llvm::object::ELFObjectFile< ELFT >::section_rel_end(), llvm::RISCVDAGToDAGISel::Select(), llvm::Hexagon_MC::selectHexagonCPU(), llvm::RISCVDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands(), llvm::TargetLoweringObjectFileWasm::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileXCOFF::SelectSectionForGlobal(), llvm::XCoreTargetObjectFile::SelectSectionForGlobal(), llvm::RISCVDAGToDAGISel::selectVLXSEG(), llvm::RISCVDAGToDAGISel::selectVSXSEG(), llvm::AMDGPUMachineFunction::setDynLDSAlign(), llvm::SPIRVSubtarget::setEnv(), setOptionalCodeModel(), llvm::OptPassGateInstrumentation::shouldRun(), llvm::fuzzerop::SourcePred::SourcePred(), splitCodeGen(), storageClassToAddressSpace(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::cgdata::StreamCacheData::StreamCacheData(), tocDataChecks(), tryARM64PackedUnwind(), UpgradeDebugInfo(), llvm::SystemZELFFrameLowering::usePackedStack(), llvm::PPCSubtarget::useSoftFloat(), llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander(), validatePtrTypes(), llvm::LegalizerInfo::verify(), llvm::AssumptionCacheTracker::verifyAnalysis(), llvm::MachineDominatorTreeWrapperPass::verifyAnalysis(), llvm::MachinePostDominatorTreeWrapperPass::verifyAnalysis(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), verifyKeepChain(), verifyLoadedModule(), VisitGlobalVariableForEmission(), llvm::Interpreter::visitUnreachableInst(), llvm::WebAssembly::wasmSymbolSetType(), writeFragment(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), llvm::MachObjectWriter::writeObject(), and llvm::CachedFileStream::~CachedFileStream().

◆ report_fatal_error() [4/4]

void llvm::report_fatal_error ( StringRef reason,
bool gen_crash_diag = true )

Definition at line 99 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportAndResetTimings()

void llvm::reportAndResetTimings ( raw_ostream * OutStream = nullptr)

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.

By default it uses the stream created by CreateInfoOutputFile().

Definition at line 151 of file PassTimingInfo.cpp.

Referenced by llvm::LTOCodeGenerator::compileOptimized(), and llvm::ThinLTOCodeGenerator::run().

◆ reportFatalInternalError() [1/4]

void llvm::reportFatalInternalError ( const char * reason)

Report a fatal error that likely indicates a bug in LLVM.

It serves a similar purpose as an assertion, but is always enabled, regardless of the value of NDEBUG.

This will call installed error handlers (or print the message by default) and then abort. This will produce a crash trace and will ask users to report an LLVM bug.

Definition at line 140 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportFatalInternalError() [2/4]

void llvm::reportFatalInternalError ( const Twine & reason)

Definition at line 146 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportFatalInternalError() [3/4]

◆ reportFatalInternalError() [4/4]

void llvm::reportFatalInternalError ( StringRef reason)

Definition at line 143 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportFatalUsageError() [1/4]

void llvm::reportFatalUsageError ( const char * reason)

Report a fatal error that does not indicate a bug in LLVM.

This can be used in contexts where a proper error reporting mechanism (such as Error/Expected or DiagnosticInfo) is currently not supported, and would be too involved to introduce at the moment.

Examples where this function should be used instead of reportFatalInternalError() include invalid inputs or options, but also environment error conditions outside LLVM's control. It should also be used for known unsupported/unimplemented functionality.

This will call installed error handlers (or print the message by default) and then exit with code 1. It will not produce a crash trace and will not ask users to report an LLVM bug.

Definition at line 149 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportFatalUsageError() [2/4]

void llvm::reportFatalUsageError ( const Twine & reason)

Definition at line 155 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportFatalUsageError() [3/4]

void llvm::reportFatalUsageError ( Error Err)

Report a fatal error that does not indicate a bug in LLVM.

See ErrorHandling.h for details.

Definition at line 180 of file Error.cpp.

Referenced by llvm::TargetPassConfig::addPass(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::addRegAllocPass(), llvm::TargetPassConfig::addRegAssignAndRewriteFast(), llvm::RISCVRegisterInfo::adjustReg(), llvm::AMDGPUDisassembler::AMDGPUDisassembler(), CC_RISCV(), llvm::AArch64TargetLowering::CCAssignFnForCall(), llvm::AMDGPUCallLowering::CCAssignFnForCall(), llvm::R600TargetLowering::CCAssignFnForCall(), llvm::AMDGPUCallLowering::CCAssignFnForReturn(), llvm::MCContext::cloneSymbol(), combineInstructionsOverFunction(), llvm::RISCVABI::computeTargetABI(), computeUnrollCount(), createAArch64MCAsmInfo(), createStoreIntrinsic(), llvm::AMDGPUAsmPrinter::doInitialization(), llvm::dxil::DXILOpBuilder::DXILOpBuilder(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::AMDGPUAsmPrinter::emitFunctionBodyStart(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AArch64PrologueEmitter::emitPrologue(), llvm::MCObjectStreamer::emitWeakReference(), expandCrossIntrinsic(), expandFloatDotIntrinsic(), expandIsFPClass(), expandNormalizeIntrinsic(), failForInvalidBundles(), llvm::GCOVOptions::getDefault(), getEffectiveCodeModel(), getEffectiveX86CodeModel(), getLabelOffset(), getPassInfo(), getPassNameAndInstanceNum(), llvm::RISCVTargetLowering::getRegisterByName(), llvm::RISCVRegisterInfo::getReservedRegs(), llvm::AArch64TargetMachine::getSubtargetImpl(), getSymbolOffsetImpl(), llvm::AMDGPU::getTransitiveUsesOfLDS(), llvm::MipsSubtarget::initializeSubtargetDependencies(), llvm::RISCVTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerReturn(), RegisterPassPlugins(), replaceMemCpy(), reportFastISelFailure(), reportGISelDiagnostic(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::EmbedBitcodePass::run(), llvm::FunctionToLoopPassAdaptor::run(), llvm::LICMPass::run(), llvm::LNICMPass::run(), llvm::SelectionDAGISelPass::run(), llvm::SelectionDAGISelLegacy::runOnMachineFunction(), llvm::TargetLowering::softenSetCCOperands(), llvm::TargetPassConfig::TargetPassConfig(), llvm::RISCVFeatures::validate(), and llvm::raw_fd_ostream::~raw_fd_ostream().

◆ reportFatalUsageError() [4/4]

void llvm::reportFatalUsageError ( StringRef reason)

Definition at line 152 of file ErrorHandling.cpp.

References report_fatal_error().

◆ reportGISelFailure() [1/2]

void llvm::reportGISelFailure ( MachineFunction & MF,
const TargetPassConfig & TPC,
MachineOptimizationRemarkEmitter & MORE,
const char * PassName,
StringRef Msg,
const MachineInstr & MI )

◆ reportGISelFailure() [2/2]

◆ reportGISelWarning()

void llvm::reportGISelWarning ( MachineFunction & MF,
const TargetPassConfig & TPC,
MachineOptimizationRemarkEmitter & MORE,
MachineOptimizationRemarkMissed & R )

Report an ISel warning as a missed optimization remark to the LLVMContext's diagnostic stream.

Definition at line 253 of file Utils.cpp.

References DS_Warning, MORE, and reportGISelDiagnostic().

Referenced by llvm::Legalizer::runOnMachineFunction().

◆ ReportLastErrorFatal()

void llvm::ReportLastErrorFatal ( const char * Msg)
inline

Definition at line 72 of file WindowsSupport.h.

References MakeErrMsg(), and report_fatal_error().

◆ reportMismatch()

◆ reportVectorization()

void llvm::reportVectorization ( OptimizationRemarkEmitter * ORE,
Loop * TheLoop,
VectorizationFactor VF,
unsigned IC )
static

◆ reportVectorizationFailure() [1/2]

void llvm::reportVectorizationFailure ( const StringRef DebugMsg,
const StringRef OREMsg,
const StringRef ORETag,
OptimizationRemarkEmitter * ORE,
Loop * TheLoop,
Instruction * I = nullptr )

Reports a vectorization failure: print DebugMsg for debugging purposes along with the corresponding optimization remark RemarkName.

If I is passed, it is an instruction that prevents vectorization. Otherwise, the loop TheLoop is used for the location of the remark.

Definition at line 811 of file LoopVectorize.cpp.

References createLVAnalysis(), debugVectorizationMessage(), llvm::OptimizationRemarkEmitter::emit(), I, LLVM_DEBUG, and llvm::LoopVectorizeHints::vectorizeAnalysisPassName().

Referenced by llvm::LoopVectorizationLegality::canVectorize(), llvm::LoopVectorizationCostModel::computeMaxVF(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::LoopVectorizePass::processLoop(), reportVectorizationFailure(), and llvm::LoopVectorizationCostModel::runtimeChecksRequired().

◆ reportVectorizationFailure() [2/2]

void llvm::reportVectorizationFailure ( const StringRef DebugMsg,
const StringRef ORETag,
OptimizationRemarkEmitter * ORE,
Loop * TheLoop,
Instruction * I = nullptr )
inline

Same as above, but the debug message and optimization remark are identical.

Definition at line 177 of file LoopVectorize.h.

References I, and reportVectorizationFailure().

◆ reportVectorizationInfo()

void llvm::reportVectorizationInfo ( const StringRef Msg,
const StringRef ORETag,
OptimizationRemarkEmitter * ORE,
Loop * TheLoop,
Instruction * I = nullptr,
DebugLoc DL = {} )
static

Reports an informative message: print Msg for debugging purposes as well as an optimization remark.

Uses either I as location of the remark, or otherwise TheLoop. If DL is passed, use it as debug location for the remark. If DL is passed, use it as debug location for the remark.

Definition at line 826 of file LoopVectorize.cpp.

References DL, and I.

Referenced by llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), and llvm::LoopVectorizationPlanner::plan().

◆ 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.

References StatInfo.

◆ resolveRelativeObjectPath()

void llvm::resolveRelativeObjectPath ( SmallVectorImpl< char > & Buf,
DWARFDie CU )
static

Resolve the relative path to a build artifact referenced by DWARF by applying DW_AT_comp_dir.

Definition at line 186 of file DWARFLinker.cpp.

References llvm::sys::path::append(), and llvm::dwarf::toString().

Referenced by analyzeImportedModule(), and llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::loadClangModule().

◆ resolveTypes()

const RecTy * llvm::resolveTypes ( const RecTy * T1,
const RecTy * T2 )

Find a common type that T1 and T2 convert to.

Return 0 if no such type exists.

Definition at line 346 of file Record.cpp.

References assert(), dyn_cast(), llvm::RecTy::getListTy(), resolveRecordTypes(), and resolveTypes().

Referenced by resolveTypes().

◆ 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 329 of file PrettyStackTrace.cpp.

◆ restoreStatusRegister()

◆ Ret_CSKY_ABIV2_SOFT_64()

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

Definition at line 44 of file CSKYCallingConv.h.

References ArgGPRs, llvm::CCValAssign::getReg(), and Reg.

◆ RetCC_AArch64_AAPCS()

bool llvm::RetCC_AArch64_AAPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_AArch64_Arm64EC_CFGuard_Check()

bool llvm::RetCC_AArch64_Arm64EC_CFGuard_Check ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_AArch64_Arm64EC_Thunk()

bool llvm::RetCC_AArch64_Arm64EC_Thunk ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_ARM_AAPCS()

bool llvm::RetCC_ARM_AAPCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_ARM_AAPCS_VFP()

bool llvm::RetCC_ARM_AAPCS_VFP ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_ARM_APCS()

bool llvm::RetCC_ARM_APCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_PPC()

bool llvm::RetCC_PPC ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_PPC64_ELF_FIS()

bool llvm::RetCC_PPC64_ELF_FIS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_PPC_Cold()

bool llvm::RetCC_PPC_Cold ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ RetCC_SystemZ_Error()

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

Definition at line 159 of file SystemZCallingConv.h.

References llvm_unreachable.

◆ RetCC_X86()

◆ RetFastCC_ARM_APCS()

bool llvm::RetFastCC_ARM_APCS ( unsigned ValNo,
MVT ValVT,
MVT LocVT,
CCValAssign::LocInfo LocInfo,
ISD::ArgFlagsTy ArgFlags,
Type * OrigTy,
CCState & State )

◆ returnTypeIsEligibleForTailCall()

bool llvm::returnTypeIsEligibleForTailCall ( const Function * F,
const Instruction * I,
const ReturnInst * Ret,
const TargetLoweringBase & TLI,
bool ReturnsFirstArg = false )

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.

Definition at line 652 of file Analysis.cpp.

References attributesPermitTailCall(), llvm::SmallVectorTemplateCommon< T, typename >::back(), F, firstRealType(), llvm::UndefValue::get(), llvm::ExtractValueInst::getIndexedType(), llvm::Value::getType(), I, isa(), nextRealType(), reverse(), and slotOnlyDiscardsData().

Referenced by isInTailCallPosition().

◆ reverse()

template<typename ContainerTy>
auto llvm::reverse ( ContainerTy && C)
nodiscard

Definition at line 408 of file STLExtras.h.

References adl_begin(), adl_end(), adl_rbegin(), adl_rend(), llvm::CallingConv::C, llvm::detail::HasFreeFunctionRBegin, and make_range().

Referenced by addLoopIntoQueue(), llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder::addParentName(), AlignBlocks(), llvm::X86InstrInfo::analyzeBranchPredicate(), analyzeContextInfo(), llvm::AArch64InstrInfo::analyzeLoopForPipelining(), llvm::DebugLoc::appendInlinedAt(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), ARM64EmitUnwindInfoForSegment(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::RegBankSelect::assignRegisterBanks(), bitTrackingDCE(), blockIsSimpleEnoughToThreadThrough(), llvm::memprof::CallStackRadixTreeBuilder< FrameIdTy >::build(), buildPartialInvariantUnswitchConditionalBranch(), calculateClrEHStateNumbers(), checkForMustTailInVarArgFn(), llvm::SCEVExpanderCleaner::cleanup(), cloneLoopNest(), llvm::DILocalScope::cloneScopeForSubprogram(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), llvm::Combiner::combineMachineInstrs(), computeLiveIns(), computeScheduledInsts(), computeUnlikelySuccessors(), containsEpilogue(), convertToParamAS(), llvm::vfs::RedirectingFileSystem::create(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), deduceFunctionAttributeInRPO(), llvm::orc::InProcessMemoryMapper::deinitialize(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::deinitialize(), deleteDeadLoop(), llvm::AsmPrinter::doFinalization(), doList(), llvm::ARMFrameLowering::emitPrologue(), llvm::PseudoProbeHandler::emitPseudoProbe(), llvm::VETargetLowering::emitSjLjDispatchBlock(), llvm::EHStreamer::emitTypeInfos(), EmitUnwindInfo(), llvm::codeview::ContinuationRecordBuilder::end(), llvm::TimeTraceProfiler::end(), llvm::sandboxir::EraseFromParent::EraseFromParent(), expandSMEPPRToZPRSpillPseudos(), llvm::SMSchedule::finalizeSchedule(), findBestInsertionSet(), llvm::HexagonInstrInfo::findLoopInstr(), findMemType(), findPotentialBlockers(), findPrologueEnd(), llvm::SIRegisterInfo::findUnusedRegister(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::InstCombinerImpl::foldPtrToIntOfGEP(), foldUnusualPatterns(), formatNestedName(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), generateGatherLanePattern(), llvm::rdf::Liveness::getAllReachingDefs(), llvm::BitsInit::getAsString(), getBitcodeFileContents(), llvm::ScalarEvolution::getBlockDisposition(), llvm::TargetInstrInfo::getCallFrameSizeAt(), llvm::orc::JITDylib::getDFSLinkOrder(), llvm::json::Path::Root::getError(), getExprBase(), getLastNonPseudo(), getLivePhysRegsUpTo(), llvm::ScalarEvolution::getLoopDisposition(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopsInPreorder(), getMaxBitmapSize(), llvm::SIRegisterInfo::getNumUsedPhysRegs(), llvm::DwarfUnit::getParentContextString(), llvm::ScalarEvolution::getSCEVAtScope(), llvm::ScheduleDAGTopologicalSort::GetSubGraph(), handleArgs(), llvm::FastISel::handleDbgInfo(), handlePhiDef(), llvm::SCEVExpander::hoistIVInc(), hoistRegion(), incorporateNewSCCRange(), inferInitializes(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), llvm::SpecialCaseList::inSectionBlame(), insertCSRRestores(), insertCSRRestores(), llvm::xray::Profile::internPath(), llvm::MemorySSAAnalysis::Result::invalidate(), isEFLAGSLive(), llvm::ARMBaseInstrInfo::isMBBSafeToOutlineFrom(), llvm::ShuffleVectorInst::isReplicationMask(), isSafeToSpeculateStore(), llvm::LoopVectorizationLegality::isUniform(), legalizeAndOptimizeInductions(), llvm::sys::DynamicLibrary::HandleSet::LibLookup(), lowerExpectIntrinsic(), llvm::SpecialCaseList::Matcher::match(), llvm::sandboxir::VecUtils::matchPack(), mergeEltWithShuffle(), mergeReplicateRegionsIntoSuccessors(), moveInstructionsToTheBeginning(), narrowToSingleScalarRecipes(), orderModule(), llvm::vfs::OverlayFileSystem::overlays_range(), llvm::vfs::OverlayFileSystem::overlays_range(), parseBraceExpansions(), llvm::PeelingModuloScheduleExpander::peelPrologAndEpilogs(), phiNodeReplacement(), predictUseListOrder(), predictUseListOrder(), llvm::InstCombinerImpl::prepareWorklist(), llvm::xray::profileFromTrace(), llvm::SyntheticCountsUtils< CallGraphType >::propagate(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), pushRegsToStack(), llvm::LiveVariables::recomputeForSingleDefVirtReg(), recomputeLivenessFlags(), reduceDbgValsBackwardScan(), llvm::orc::EPCGenericRTDyldMemoryManager::registerEHFrames(), llvm::MCContext::remapDebugPath(), rematerializeChain(), llvm::VPlanTransforms::removeDeadRecipes(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::SIInstrInfo::removeModOperands(), removeRedundantDbgInstrsUsingBackwardScan(), removeRedundantDbgLocsUsingBackwardScan(), removeRedundantInductionCasts(), replaceAccess(), replaceFoldableUses(), llvm::DebugLoc::replaceInlinedAtSubprogram(), llvm::VPlanTransforms::replicateByVF(), llvm::rdf::Liveness::resetKills(), llvm::CSKYFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::SIFrameLowering::restoreCalleeSavedRegisters(), returnTypeIsEligibleForTailCall(), llvm::detail::reverse_if_helper(), llvm::sandboxir::Tracker::revert(), llvm::GenericCycleInfoCompute< ContextT >::run(), llvm::InlinerPass::run(), llvm::ModuleInlinerPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), RemoveLoadsIntoFakeUses::run(), runImpl(), runMoveAutoInit(), llvm::LPPassManager::runOnFunction(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::PPCInstrInfo::shouldReduceRegisterPressure(), shouldSplitOnPredicatedArgument(), sinkLoopInvariantInstructions(), sinkRegion(), sortLocalVars(), llvm::AbstractDependenceGraphBuilder< GraphType >::sortNodesTopologically(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::RABasic::spillInterferences(), splitEndLoopBB(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::JumpThreadingPass::threadGuard(), LiveDebugValues::MLocTracker::trackRegister(), transformRecipestoEVLRecipes(), llvm::DbgValueHistoryMap::trimLocationRanges(), tryFoldSPUpdateIntoPushPop(), llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(), llvm::MCJIT::UnregisterJITEventListener(), unswitchTrivialSwitch(), updateCGAndAnalysisManagerForPass(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), verifyKeepChain(), llvm::MachObjectWriter::writeObject(), and llvm::VPExpressionRecipe::~VPExpressionRecipe().

◆ reverseBits()

template<typename T>
T llvm::reverseBits ( T Val)
constexpr

Reverse the bits in Val.

Definition at line 127 of file MathExtras.h.

References BitReverseTable256, and T.

Referenced by canModifyToInlineImmOp32(), llvm::SIInstrInfo::getConstValDefinedInReg(), and llvm::APInt::reverseBits().

◆ RevertDoLoopStart()

void llvm::RevertDoLoopStart ( MachineInstr * MI,
const TargetInstrInfo * TII )
inline

◆ RevertLoopDec()

◆ RevertLoopEnd()

void llvm::RevertLoopEnd ( MachineInstr * MI,
const TargetInstrInfo * TII,
unsigned BrOpc = ARM::t2Bcc,
bool SkipCmp = false )
inline

◆ RevertWhileLoopStartLR()

◆ rewriteAArch64FrameIndex()

bool llvm::rewriteAArch64FrameIndex ( MachineInstr & MI,
unsigned FrameRegIdx,
unsigned FrameReg,
StackOffset & Offset,
const AArch64InstrInfo * TII )

rewriteAArch64FrameIndex - Rewrite MI to access 'Offset' bytes from the FP.

Return false if the offset could not be handled directly in MI, and return the left-over portion by reference.

Definition at line 6586 of file AArch64InstrInfo.cpp.

References AArch64FrameOffsetCanUpdate, AArch64FrameOffsetIsLegal, emitFrameOffset(), llvm::StackOffset::getFixed(), isAArch64FrameOffsetLegal(), MI, llvm::MachineInstr::NoFlags, Offset, and TII.

Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex(), and llvm::AArch64RegisterInfo::resolveFrameIndex().

◆ rewriteARMFrameIndex()

◆ rewriteLoopExitValues()

int llvm::rewriteLoopExitValues ( Loop * L,
LoopInfo * LI,
TargetLibraryInfo * TLI,
ScalarEvolution * SE,
const TargetTransformInfo * TTI,
SCEVExpander & Rewriter,
DominatorTree * DT,
ReplaceExitVal ReplaceExitValue,
SmallVector< WeakTrackingVH, 16 > & DeadInsts )

◆ rewriteT2FrameIndex()

◆ 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 154 of file Format.h.

References llvm::FormattedString::JustifyRight.

Referenced by llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), and printSymbolizedStackTrace().

◆ rotl()

template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>
T llvm::rotl ( T V,
int R )
nodiscardconstexpr

◆ rotr()

◆ 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 142 of file FuzzerCLI.cpp.

References errs(), llvm::MemoryBuffer::getFile(), I, and llvm::StringRef::starts_with().

◆ RunningWindows11OrGreater()

LLVM_ABI bool llvm::RunningWindows11OrGreater ( )

Determines if the program is running on Windows 11 or Windows Server 2022.

References LLVM_ABI.

◆ RunningWindows8OrGreater()

LLVM_ABI 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.

References LLVM_ABI.

◆ runOnNewStack() [1/3]

template<typename R, typename... Ts>
std::enable_if_t<!std::is_same_v< R, void >, R > llvm::runOnNewStack ( unsigned StackSize,
function_ref< R(Ts...)> Fn,
Ts &&... Args )

Definition at line 50 of file ProgramStack.h.

References runOnNewStack().

◆ runOnNewStack() [2/3]

void llvm::runOnNewStack ( unsigned StackSize,
function_ref< void()> Fn )

Runs Fn on a new stack of at least the given size.

Parameters
StackSizerequested stack size. A size of 0 uses the default stack size of the platform.

The preferred implementation is split stacks on platforms that have a good debugging experience for them. On other platforms a new thread is used.

Definition at line 122 of file ProgramStack.cpp.

Referenced by runOnNewStack(), runOnNewStack(), and llvm::CrashRecoveryContext::RunSafelyOnNewStack().

◆ runOnNewStack() [3/3]

template<typename... Ts>
void llvm::runOnNewStack ( unsigned StackSize,
function_ref< void(Ts...)> Fn,
Ts &&... Args )

Definition at line 57 of file ProgramStack.h.

References runOnNewStack().

◆ runWholeProgramDevirtOnIndex()

void llvm::runWholeProgramDevirtOnIndex ( ModuleSummaryIndex & Summary,
std::set< GlobalValue::GUID > & ExportedGUIDs,
std::map< ValueInfo, std::vector< VTableSlotSummary > > & LocalWPDTargetsMap )

Perform index-based whole program devirtualization on the Summary index.

Any devirtualized targets used by a type test in another module are added to the ExportedGUIDs set. For any local devirtualized targets only used within the defining module, the information necessary for locating the corresponding WPD resolution is recorded for the ValueInfo in case it is exported by cross module importing (in which case the devirtualized target name will need adjustment).

Definition at line 947 of file WholeProgramDevirt.cpp.

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

◆ rustDemangle()

char * llvm::rustDemangle ( std::string_view MangledName)

Definition at line 151 of file RustDemangle.cpp.

References D(), and starts_with().

Referenced by nonMicrosoftDemangle().

◆ safe_calloc()

◆ safe_malloc()

◆ safe_realloc()

LLVM_ATTRIBUTE_RETURNS_NONNULL void * llvm::safe_realloc ( void * Ptr,
size_t Sz )
inline

◆ salvageDebugInfo() [1/2]

◆ salvageDebugInfo() [2/2]

void llvm::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.

Where possible to salvage debug information for I do so.

If it cannot be salvaged changes its debug uses to undef.

If not possible mark undef.

Definition at line 1996 of file Local.cpp.

References findDbgUsers(), I, and salvageDebugInfoForDbgValues().

◆ salvageDebugInfoForDbgValue()

◆ salvageDebugInfoForDbgValues()

◆ salvageDebugInfoImpl()

◆ salvageKnowledge()

bool llvm::salvageKnowledge ( Instruction * I,
AssumptionCache * AC = nullptr,
DominatorTree * DT = nullptr )

Calls BuildAssumeFromInst and if the resulting llvm.assume is valid insert if before I.

This is usually what need to be done to salvage the knowledge contained in the instruction I. The AssumptionCache must be provided if it is available or the cache may become silently be invalid. The DominatorTree can optionally be provided to enable cross-block reasoning. This returns if a change was made.

Definition at line 292 of file AssumeBundleBuilder.cpp.

References Changed, EnableKnowledgeRetention, I, and llvm::AssumptionCache::registerAssumption().

Referenced by DCEInstruction(), InlineFunctionImpl(), llvm::AssumeBuilderPass::run(), llvm::GVNPass::salvageAndRemoveInstruction(), and sinkRegion().

◆ SampleColdCallSiteThreshold()

cl::opt< int > llvm::SampleColdCallSiteThreshold ( "sample-profile-cold-inline-threshold" ,
cl::Hidden ,
cl::init(45) ,
cl::desc("Threshold for inlining cold callsites")  )

◆ SampleHotCallSiteThreshold()

cl::opt< int > llvm::SampleHotCallSiteThreshold ( "sample-profile-hot-inline-threshold" ,
cl::Hidden ,
cl::init(3000) ,
cl::desc("Hot callsite threshold for proirity-based sample profile loader " "inlining.")  )

◆ sampleprof_category()

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

Definition at line 121 of file SampleProf.cpp.

Referenced by make_error_code().

◆ SampleProfileMaxPropagateIterations()

cl::opt< unsigned > llvm::SampleProfileMaxPropagateIterations ( "sample-profile-max-propagate-iterations" ,
cl::init(100) ,
cl::desc("Maximum number of iterations to go through when propagating " "sample block/edge weights through the CFG.")  )

References llvm::cl::init().

◆ SampleProfileRecordCoverage()

cl::opt< unsigned > llvm::SampleProfileRecordCoverage ( "sample-profile-check-record-coverage" ,
cl::init(0) ,
cl::value_desc("N") ,
cl::desc("Emit a warning if less than N% of records in the input profile " "are matched to the IR.")  )

References llvm::cl::init().

◆ SampleProfileSampleCoverage()

cl::opt< unsigned > llvm::SampleProfileSampleCoverage ( "sample-profile-check-sample-coverage" ,
cl::init(0) ,
cl::value_desc("N") ,
cl::desc("Emit a warning if less than N% of samples in the input profile " "are matched to the IR.")  )

References llvm::cl::init().

◆ SampleProfileUseProfi()

cl::opt< bool > llvm::SampleProfileUseProfi ( "sample-profile-use-profi" ,
cl::Hidden ,
cl::desc("Use profi to infer block and edge counts.")  )

References llvm::cl::Hidden.

◆ SaturatingAdd() [1/2]

template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, T > 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 620 of file MathExtras.h.

References T, X, and Y.

Referenced by llvm::StaticDataProfileInfo::addConstantProfileCount(), annotateValueSite(), foldOperationIfPossible(), getDataSlice(), runCGProfilePass(), SaturatingAdd(), SaturatingMultiply(), SaturatingMultiplyAdd(), and llvm::CalleeInfo::updateRelBlockFreq().

◆ SaturatingAdd() [2/2]

template<class T, class... Ts>
std::enable_if_t< std::is_unsigned_v< T >, T > llvm::SaturatingAdd ( T X,
T Y,
T Z,
Ts... Args )

Add multiple unsigned integers of type T.

Clamp the result to the maximum representable value of T on overflow.

Definition at line 635 of file MathExtras.h.

References SaturatingAdd(), T, X, and Y.

◆ SaturatingMultiply()

template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, T > 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 649 of file MathExtras.h.

References Log2_64(), SaturatingAdd(), T, X, and Y.

Referenced by foldOperationIfPossible(), llvm::BlockFrequency::mul(), SaturatingMultiplyAdd(), llvm::InstrProfRecord::scale(), and llvm::InstrProfValueSiteRecord::scale().

◆ SaturatingMultiplyAdd()

template<typename T>
std::enable_if_t< std::is_unsigned_v< T >, T > 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 695 of file MathExtras.h.

References A(), SaturatingAdd(), SaturatingMultiply(), T, X, and Y.

Referenced by llvm::sampleprof::SampleRecord::addCalledTarget(), llvm::sampleprof::FunctionSamples::addCallsiteVTableTypeProfAt(), llvm::sampleprof::FunctionSamples::addHeadSamples(), llvm::sampleprof::SampleRecord::addSamples(), llvm::sampleprof::FunctionSamples::addTotalSamples(), llvm::sampleprof::FunctionSamples::addTypeSamplesAt(), convertStrToInt(), llvm::InstrProfRecord::merge(), and llvm::InstrProfValueSiteRecord::merge().

◆ SaveAndRestore() [1/3]

template<typename T>
llvm::SaveAndRestore ( T & ) -> SaveAndRestore< T >

References T.

◆ SaveAndRestore() [2/3]

template<typename T>
llvm::SaveAndRestore ( T & ,
const T &  ) -> SaveAndRestore< T >

References T.

◆ SaveAndRestore() [3/3]

template<typename T>
llvm::SaveAndRestore ( T & ,
T &&  ) -> SaveAndRestore< T >

References T.

◆ SavePrettyStackState()

const void * llvm::SavePrettyStackState ( )

Returns the topmost element of the "pretty" stack state.

Definition at line 321 of file PrettyStackTrace.cpp.

◆ saveUsesAndErase()

void llvm::saveUsesAndErase ( MachineInstr & MI,
MachineRegisterInfo & MRI,
LostDebugLocObserver * LocObserver,
SmallInstListTy & DeadInstChain )

◆ scalbn()

APFloat llvm::scalbn ( APFloat X,
int Exp,
APFloat::roundingMode RM )
inline

Returns: X * 2^Exp for integral exponents.

Definition at line 1543 of file APFloat.h.

References llvm_unreachable, scalbn(), and X.

Referenced by foldFCmpFpTrunc(), llvm::detail::IEEEFloat::frexp, harrisonUlp(), llvm::GCNTTIImpl::instCombineIntrinsic(), and scalbn().

◆ scaleBranchCount()

uint32_t llvm::scaleBranchCount ( uint64_t Count,
uint64_t Scale )
inline

Scale an individual branch count.

Scale a 64-bit weight down to 32-bits using Scale.

Definition at line 171 of file ProfDataUtils.h.

References assert(), Count, and Scaled.

Referenced by createBranchWeights(), downscaleWeights(), and setProfMetadata().

◆ scaleProfData()

◆ scaleShuffleMaskElts()

bool llvm::scaleShuffleMaskElts ( unsigned NumDstElts,
ArrayRef< int > Mask,
SmallVectorImpl< int > & ScaledMask )

Attempt to narrow/widen the Mask shuffle mask to the NumDstElts target width.

Internally this will call narrowShuffleMaskElts/widenShuffleMaskElts. This will assert unless NumDstElts is a multiple of Mask.size (or vice-versa). Returns false on failure, and ScaledMask will be in an undefined state.

Definition at line 626 of file VectorUtils.cpp.

References assert(), llvm::SmallVectorImpl< T >::assign(), narrowShuffleMaskElts(), and widenShuffleMaskElts().

Referenced by combineSelect(), llvm::X86TTIImpl::instCombineIntrinsic(), and llvm::InstCombinerImpl::visitShuffleVectorInst().

◆ scavengeFrameVirtualRegs()

void llvm::scavengeFrameVirtualRegs ( MachineFunction & MF,
RegScavenger & RS )

Replaces all frame index virtual registers with physical registers.

Uses the register scavenger to find an appropriate register to use.

Definition at line 463 of file RegisterScavenging.cpp.

References dbgs(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getRegInfo(), LLVM_DEBUG, MBB, MRI, report_fatal_error(), and scavengeFrameVirtualRegsInBlock().

◆ scc_begin()

◆ 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 238 of file SCCIterator.h.

References llvm::scc_iterator< GraphT, GT >::end(), G, and T.

Referenced by llvm::DataDependenceGraph::DataDependenceGraph().

◆ SCEVExprContains()

template<typename PredTy>
bool llvm::SCEVExprContains ( const SCEV * Root,
PredTy Pred )

◆ ScopedPrinter::printHex< support::ulittle16_t >()

Definition at line 557 of file ScopedPrinter.h.

References llvm::ScopedPrinter::printHex().

◆ SearchForAddressOfSpecialSymbol()

void * llvm::SearchForAddressOfSpecialSymbol ( const char * SymbolName)

◆ seq() [1/2]

template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>
auto llvm::seq ( T Begin,
T End )

Iterate over an integral type from Begin up to - but not including - End.

Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse iteration).

Definition at line 305 of file Sequence.h.

References T.

Referenced by buildCompressMask(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::sandboxir::Region::clearAux(), combineConcatVectorOps(), combineEXTRACT_SUBVECTOR(), combineOrders(), CompareValueComplexity(), computeKnownBitsForPRMT(), computePRMT(), ComputePTXValueVTs(), llvm::ARMTargetLowering::createComplexDeinterleavingIR(), llvm::ir2vec::Vocabulary::createDummyVocabForTest(), llvm::omp::DirectiveNameParser::DirectiveNameParser(), llvm::VPlan::duplicate(), llvm::yaml::IsResizableBase< T >::element(), llvm::yaml::SequenceTraits< ArrayRef< T > >::element(), llvm::AsmPrinter::emitJumpTableInfo(), extractVector(), llvm::slpvectorizer::BoUpSLP::findBestRootPair(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), llvm::SplitEditor::finish(), gatherPossiblyVectorizableLoads(), llvm::lto::generateModulesOrdering(), getAltInstrMask(), getBuildVectorizedValue(), llvm::sandboxir::SeedBundle::getFirstUnusedElementIdx(), getGatherLanePattern(), llvm::sandboxir::ShuffleMask::getIdentity(), llvm::sandboxir::Context::getOrCreateValueInternal(), getPRMTDemandedBits(), llvm::NVPTXTargetLowering::getPrototype(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::X86TTIImpl::getScalarizationOverhead(), llvm::IndexedReference::hasSpacialReuse(), llvm::X86TTIImpl::isLegalAltInstr(), isMaskedLoadCompress(), isReplicationMaskWithParams(), llvm::slpvectorizer::BoUpSLP::isTreeNotExtendable(), llvm::LoopVectorizationLegality::isUniform(), legalizeCallAttributes(), llvm::NVPTXTargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerFormalArguments(), lowerSTOREVector(), llvm::sandboxir::VecUtils::matchPack(), optimizeVectorResizeWithIntegerBitCasts(), outputHasNonPHI(), llvm::NVPTXInstPrinter::printCallOperand(), processShuffleMasks(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), replaceLoadVector(), llvm::sandboxir::User::replaceUsesOfWith(), rewritePHINodesForUnswitchedExitBlock(), runImpl(), seq(), llvm::sandboxir::SeedBundle::setUsed(), llvm::yaml::SequenceTraits< ArrayRef< T > >::size(), llvm::yaml::SequenceTraitsImpl< T, Flow >::size(), llvm::jitlink::splitCompactUnwindBlocks(), splitLoopBound(), llvm::slpvectorizer::BoUpSLP::transformNodes(), transformScalarShuffleIndiciesToVector(), updateOperandRegConstraints(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().

◆ seq() [2/2]

template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>
auto llvm::seq ( T Size)

Iterate over an integral type from 0 up to - but not including - Size.

Note: Size value has to be within [INTMAX_MIN, INTMAX_MAX - 1] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse iteration).

Definition at line 315 of file Sequence.h.

References seq(), Size, and T.

◆ seq_inclusive()

template<typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>
auto llvm::seq_inclusive ( T Begin,
T End )

Iterate over an integral type from Begin to End inclusive.

Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1] for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse iteration).

Definition at line 325 of file Sequence.h.

References T.

Referenced by llvm::ShuffleVectorInst::isReplicationMask().

◆ serializeSectionKind()

uint32_t llvm::serializeSectionKind ( DWARFSectionKind Kind,
unsigned IndexVersion )

Convert the internal value for a section kind to an on-disk value.

The conversion depends on the version of the index section. IndexVersion is expected to be either 2 for pre-standard GNU proposal or 5 for DWARFv5 package file.

Definition at line 42 of file DWARFUnitIndex.cpp.

References assert(), CASE, isKnownV5SectionID(), llvm_unreachable, and TYPES.

Referenced by getContributionIndex().

◆ serializeValueProfDataFrom()

INSTR_PROF_VISIBILITY ValueProfData * llvm::serializeValueProfDataFrom ( ValueProfRecordClosure * Closure,
ValueProfData * DstData )

Extract value profile data of a function from the Closure and serialize the data into DstData if it is not NULL or heap memory allocated by the Closure's allocator method.

If DstData is not null, the caller is expected to set the TotalSize in DstData.

Definition at line 669 of file InstrProf.cpp.

References F, and llvm::GlobalValue::getGUIDAssumingExternalLinkage().

◆ serializeValueProfRecordFrom()

INSTR_PROF_VISIBILITY void llvm::serializeValueProfRecordFrom ( ValueProfRecord * This,
ValueProfRecordClosure * Closure,
uint32_t ValueKind,
uint32_t NumValueSites )

Extract value profile data of a function for the profile kind ValueKind from the Closure and serialize the data into This record instance.

Definition at line 644 of file InstrProf.cpp.

References llvm::StringRef::npos.

◆ 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 93 of file SetOperations.h.

References E(), and S1.

◆ 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 58 of file SetOperations.h.

References E(), llvm::detail::HasMemberRemoveIf, I, Next, and S1.

Referenced by CheckLargerCands(), llvm::SetState< BaseTy >::SetContents::getIntersection(), and mergeConditionalStores().

◆ set_intersection()

template<class S1Ty, class S2Ty>
S1Ty llvm::set_intersection ( const S1Ty & S1,
const S2Ty & S2 )

set_intersection(A, B) - Return A ^ B

Definition at line 83 of file SetOperations.h.

References S1, and set_intersection_impl().

◆ set_intersection_impl()

template<class S1Ty, class S2Ty>
S1Ty llvm::set_intersection_impl ( const S1Ty & S1,
const S2Ty & S2 )

Definition at line 73 of file SetOperations.h.

References E(), and S1.

Referenced by set_intersection().

◆ set_intersects()

◆ set_is_subset()

template<class S1Ty, class S2Ty>
bool llvm::set_is_subset ( const S1Ty & S1,
const S2Ty & S2 )

set_is_subset(A, B) - Return true iff A in B

Definition at line 151 of file SetOperations.h.

References S1.

Referenced by checkNode(), llvm::ReachingDefAnalysis::collectKilledOperands(), impliesPoison(), llvm::ReachingDefAnalysis::isSafeToDefRegAt(), and sinkInstruction().

◆ set_subtract() [1/2]

template<class S1Ty, class S2Ty>
void llvm::set_subtract ( S1Ty & S1,
const S2Ty & S2 )

set_subtract(A, B) - Compute A := A - B

Selects the set to iterate based on the relative sizes of A and B for better efficiency.

Definition at line 106 of file SetOperations.h.

References E(), llvm::detail::HasMemberContains, llvm::detail::HasMemberEraseIter, llvm::detail::HasMemberRemoveIf, Next, and S1.

◆ set_subtract() [2/2]

template<class S1Ty, class S2Ty>
void llvm::set_subtract ( S1Ty & S1,
const S2Ty & S2,
S1Ty & Removed,
S1Ty & Remaining )

set_subtract(A, B, C, D) - Compute A := A - B, set C to the elements of B removed from A (A ^ B), and D to the elements of B not found in and removed from A (B - A).

Definition at line 140 of file SetOperations.h.

References E(), and S1.

◆ 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.

Definition at line 35 of file Threading.cpp.

◆ set_thread_priority()

LLVM_ABI SetThreadPriorityResult llvm::set_thread_priority ( ThreadPriority Priority)

References LLVM_ABI.

◆ 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 43 of file SetOperations.h.

References Changed, E(), and S1.

Referenced by checkNode(), llvm::AMDGPU::getTransitiveUsesOfLDS(), llvm::SetState< BaseTy >::SetContents::getUnion(), and llvm::AAPointerInfo::OffsetInfo::merge().

◆ setAtomicSyncScopeID()

void llvm::setAtomicSyncScopeID ( Instruction * I,
SyncScope::ID SSID )
inline

A helper function that sets an atomic operation's sync scope.

Definition at line 5170 of file Instructions.h.

References assert(), dyn_cast(), I, and llvm_unreachable.

Referenced by LLVMSetAtomicSingleThread(), and LLVMSetAtomicSyncScopeID().

◆ setBranchWeights()

void llvm::setBranchWeights ( Instruction & I,
ArrayRef< uint32_t > Weights,
bool IsExpected )

Create a new branch_weights metadata node and add or overwrite a prof metadata reference to instruction I.

Parameters
Ithe Instruction to set branch weights on.
Weightsan array of weights to set on instruction I.
IsExpectedwere these weights added from an llvm.expect* intrinsic.

Definition at line 277 of file ProfDataUtils.cpp.

References llvm::MDBuilder::createBranchWeights(), and I.

Referenced by ConstantFoldTerminator(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), expandToSwitch(), handleSwitchExpect(), mergeConditionalStoreToAddress(), mergeNestedCondBranch(), peelLoop(), performBranchToCommonDestFolding(), llvm::pgo::promoteIndirectCall(), setProfMetadata(), SimplifyCondBranchToCondBranch(), updateBranchWeights(), updateBranchWeights(), and updatePredecessorProfileMetadata().

◆ setBugReportMsg()

void llvm::setBugReportMsg ( const char * Msg)

Replaces the generic bug report message that is output upon a crash.

Definition at line 220 of file PrettyStackTrace.cpp.

References BugReportMsg.

◆ 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. The debug type format is "type[:level]", where the level is an optional integer. If a level is provided, the debug output is enabled only if the user specified a level at least as high as the provided level. 0 is a special level that acts as an opt-out for this specific debug type without affecting the other debug output.

Definition at line 107 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 111 of file Debug.cpp.

References ArrayRef(), Count, CurrentDebugType, and parseDebugType().

Referenced by setCurrentDebugType().

◆ setDefaultDebuginfodUrls()

void llvm::setDefaultDebuginfodUrls ( const SmallVector< StringRef > & URLs)

Sets the list of debuginfod server URLs to query.

This overrides the environment variable DEBUGINFOD_URLS.

Definition at line 90 of file Debuginfod.cpp.

◆ setDirectAddressInInstr()

void llvm::setDirectAddressInInstr ( MachineInstr * MI,
unsigned Operand,
Register Reg )
inlinestatic

Replace the address used in the instruction with the direct memory reference.

Definition at line 126 of file X86InstrBuilder.h.

References MI, and Reg.

Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().

◆ setExplicitlyUnknownBranchWeights()

void llvm::setExplicitlyUnknownBranchWeights ( Instruction & I,
StringRef PassName )

Specify that the branch weights for this terminator cannot be known at compile time.

This should only be called by passes, and never as a default behavior in e.g. MDBuilder. The goal is to use this info to validate passes do not accidentally drop profile info, and this API is called in cases where the pass explicitly cannot provide that info. Defaulting it in would hide bugs where the pass forgets to transfer over or otherwise specify profile info. Use PassName to capture the pass name (i.e. DEBUG_TYPE) for debuggability.

Definition at line 246 of file ProfDataUtils.cpp.

References llvm::MDNode::get(), I, and PassName.

Referenced by expandToSwitch().

◆ setExplicitlyUnknownFunctionEntryCount()

void llvm::setExplicitlyUnknownFunctionEntryCount ( Function & F,
StringRef PassName )

Analogous to setExplicitlyUnknownBranchWeights, but for functions and their entry counts.

Definition at line 255 of file ProfDataUtils.cpp.

References F, llvm::MDNode::get(), and PassName.

◆ setGlobalVariableLargeSection()

◆ setInlineRemark()

void llvm::setInlineRemark ( CallBase & CB,
StringRef Message )

◆ setIrrLoopHeaderMetadata()

void llvm::setIrrLoopHeaderMetadata ( Module * M,
Instruction * TI,
uint64_t Count )

◆ setKCFIType()

void llvm::setKCFIType ( Module & M,
Function & F,
StringRef MangledType )

Sets the KCFI type for the function.

Used for compiler-generated functions that are indirectly called in instrumented code.

Definition at line 202 of file ModuleUtils.cpp.

References llvm::MDBuilder::createConstant(), llvm::mdconst::extract_or_null(), F, llvm::MDNode::get(), llvm::Type::getInt32Ty(), Offset, llvm::StringRef::str(), and xxHash64().

Referenced by createSanitizerCtor().

◆ setLoadStoreAlignment()

void llvm::setLoadStoreAlignment ( Value * I,
Align NewAlign )
inline

A helper function that set the alignment of load or store instruction.

Definition at line 5123 of file Instructions.h.

References assert(), cast(), dyn_cast(), I, and isa().

Referenced by tryToImproveAlign().

◆ setLoopEstimatedTripCount()

bool llvm::setLoopEstimatedTripCount ( Loop * L,
unsigned EstimatedTripCount,
std::optional< unsigned > EstimatedLoopInvocationWeight = std::nullopt )

Set llvm.loop.estimated_trip_count with the value EstimatedTripCount in the loop metadata of L.

Return false if the implementation is unable to handle the loop form of L (e.g., L must have a latch block that controls the loop exit). Otherwise, return true.

In addition, if EstimatedLoopInvocationWeight, set the branch weight metadata of L to reflect that L has an estimated EstimatedTripCount iterations and has *EstimatedLoopInvocationWeight exit weight through the loop's latch.

TODO: Eventually, once all passes have migrated away from setting branch weights to indicate estimated trip counts, this function will drop the EstimatedLoopInvocationWeight parameter.

Definition at line 927 of file LoopUtils.cpp.

References addStringMetadataToLoop(), llvm::MDBuilder::createBranchWeights(), llvm::Value::getContext(), getExpectedExitLoopLatchBranch(), llvm::BranchInst::getSuccessor(), LLVMLoopEstimatedTripCount, llvm::Instruction::setMetadata(), and std::swap().

Referenced by setProfileInfoAfterUnrolling(), and UnrollLoop().

◆ setPGOFuncVisibility()

◆ setProbeDistributionFactor()

◆ setProfileInfoAfterUnrolling()

void llvm::setProfileInfoAfterUnrolling ( Loop * OrigLoop,
Loop * UnrolledLoop,
Loop * RemainderLoop,
uint64_t UF )

Set weights for UnrolledLoop and RemainderLoop based on weights for OrigLoop and the following distribution of OrigLoop iteration among UnrolledLoop and RemainderLoop.

Set weights for UnrolledLoop and RemainderLoop based on weights for OrigLoop.

UnrolledLoop receives weights that reflect TC/UF iterations, and RemainderLoop receives weights that reflect the remaining TCUF iterations.

Note that OrigLoop may be equal to either UnrolledLoop or RemainderLoop in which case weights for OrigLoop are updated accordingly. Note also behavior is undefined if UnrolledLoop and RemainderLoop are equal. UF must be greater than zero. If OrigLoop has no profile info associated nothing happens.

This utility may be useful for such optimizations as unroller and vectorizer as it's typical transformation for them.

Definition at line 1870 of file LoopUtils.cpp.

References assert(), getLoopEstimatedTripCount(), and setLoopEstimatedTripCount().

Referenced by llvm::LoopVectorizationPlanner::updateLoopMetadataAndProfileInfo().

◆ setProfMetadata()

◆ setRegClassIfNull()

void llvm::setRegClassIfNull ( Register Reg,
MachineRegisterInfo * MRI,
SPIRVGlobalRegistry * GR )
static

◆ setRegClassType() [1/3]

void llvm::setRegClassType ( Register Reg,
const MachineInstr * SpvType,
SPIRVGlobalRegistry * GR,
MachineRegisterInfo * MRI,
const MachineFunction & MF,
bool Force = false )

References MRI, and Reg.

◆ setRegClassType() [2/3]

void llvm::setRegClassType ( Register Reg,
const Type * Ty,
SPIRVGlobalRegistry * GR,
MachineIRBuilder & MIRBuilder,
SPIRV::AccessQualifier::AccessQualifier AccessQual,
bool EmitIR,
bool Force )

◆ setRegClassType() [3/3]

◆ setUnwindEdgeTo()

void llvm::setUnwindEdgeTo ( Instruction * TI,
BasicBlock * Succ )

Sets the unwind edge of an instruction to a particular successor.

Definition at line 636 of file BasicBlockUtils.cpp.

References dyn_cast(), II, and llvm_unreachable.

Referenced by ehAwareSplitEdge(), and rewritePHIsForCleanupPad().

◆ setupLLVMOptimizationRemarks() [1/2]

Error llvm::setupLLVMOptimizationRemarks ( LLVMContext & Context,
raw_ostream & OS,
StringRef RemarksPasses,
StringRef RemarksFormat,
bool RemarksWithHotness,
std::optional< uint64_t > RemarksHotnessThreshold = 0 )

Setup optimization remarks that output directly to a raw_ostream.

OS is managed by the caller and should be open for writing as long as Context is streaming remarks to it.

Definition at line 142 of file LLVMRemarkStreamer.cpp.

References llvm::remarks::createRemarkSerializer(), Format, make_error(), llvm::remarks::parseFormat(), RemarksFormat, RemarksHotnessThreshold, RemarksPasses, RemarksWithHotness, llvm::remarks::Separate, llvm::Error::success(), and llvm::Expected< T >::takeError().

◆ setupLLVMOptimizationRemarks() [2/2]

Expected< std::unique_ptr< ToolOutputFile > > llvm::setupLLVMOptimizationRemarks ( LLVMContext & Context,
StringRef RemarksFilename,
StringRef RemarksPasses,
StringRef RemarksFormat,
bool RemarksWithHotness,
std::optional< uint64_t > RemarksHotnessThreshold = 0 )

◆ setupMemoryBuffer()

◆ setWidenableBranchCond()

void llvm::setWidenableBranchCond ( BranchInst * WidenableBR,
Value * Cond )

Given a branch we know is widenable (defined per Analysis/GuardUtils.h), set it's condition such that (only) 'Cond' is known to hold on the taken path and that the branch remains widenable after transform.

Definition at line 108 of file GuardUtils.cpp.

References assert(), B(), llvm::CallingConv::C, cast(), llvm::BranchInst::getCondition(), llvm::ilist_node_impl< OptionsT >::getIterator(), isWidenableBranch(), llvm::Instruction::moveBefore(), parseWidenableBranch(), and llvm::BranchInst::setCondition().

◆ shiftRight()

lostFraction llvm::shiftRight ( APFloatBase::integerPart * dst,
unsigned int parts,
unsigned int bits )
static

◆ shortenFileName()

void llvm::shortenFileName ( std::string & FN,
unsigned char len = 250 )
inlinestatic

◆ shouldEmitPTXNoReturn()

bool llvm::shouldEmitPTXNoReturn ( const Value * V,
const TargetMachine & TM )

Definition at line 361 of file NVPTXUtilities.cpp.

References assert(), cast(), dyn_cast(), F, isa(), and isKernelFunction().

Referenced by llvm::NVPTXTargetLowering::getPrototype().

◆ shouldFuncOptimizeForSizeImpl()

◆ shouldIgnorePass()

bool llvm::shouldIgnorePass ( StringRef PassID)
static

Definition at line 234 of file PassTimingInfo.cpp.

References isSpecialPass().

◆ shouldInline()

std::optional< InlineCost > llvm::shouldInline ( CallBase & CB,
TargetTransformInfo & CalleeTTI,
function_ref< InlineCost(CallBase &CB)> GetInlineCost,
OptimizationRemarkEmitter & ORE,
bool EnableDeferral = true )

Return the cost only if the inliner should attempt to inline at the given CallSite.

If we return the cost, we will emit an optimisation remark later using that cost, so we won't do so from this function. Return std::nullopt if inlining should not be attempted.

Definition at line 412 of file InlineAdvisor.cpp.

References Call, dbgs(), DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCaller(), llvm::InlineCost::getCost(), inlineCostStr(), llvm::InlineCost::isAlways(), llvm::InlineCost::isNever(), LLVM_DEBUG, setInlineRemark(), and shouldBeDeferred().

Referenced by getDefaultInlineAdvice().

◆ shouldOptimizeForSize() [1/5]

bool llvm::shouldOptimizeForSize ( const BasicBlock * BB,
ProfileSummaryInfo * PSI,
BlockFrequencyInfo * BFI,
PGSOQueryType QueryType = PGSOQueryType::Other )

Returns true if basic block BB is suggested to be size-optimized based on the profile.

Definition at line 107 of file SizeOpts.cpp.

References assert(), llvm::BasicBlock::getParent(), llvm::Function::hasOptSize(), and shouldOptimizeForSizeImpl().

◆ shouldOptimizeForSize() [2/5]

bool llvm::shouldOptimizeForSize ( const Function * F,
ProfileSummaryInfo * PSI,
BlockFrequencyInfo * BFI,
PGSOQueryType QueryType = PGSOQueryType::Other )

Returns true if function F is suggested to be size-optimized based on the profile.

Definition at line 99 of file SizeOpts.cpp.

References F, and shouldFuncOptimizeForSizeImpl().

◆ shouldOptimizeForSize() [3/5]

bool llvm::shouldOptimizeForSize ( const MachineBasicBlock * MBB,
ProfileSummaryInfo * PSI,
const MachineBlockFrequencyInfo * MBFI,
PGSOQueryType QueryType = PGSOQueryType::Other )

Returns true if machine basic block MBB is suggested to be size-optimized based on the profile.

Definition at line 36 of file MachineSizeOpts.cpp.

References assert(), MBB, and shouldOptimizeForSizeImpl().

◆ shouldOptimizeForSize() [4/5]

bool llvm::shouldOptimizeForSize ( const MachineBasicBlock * MBB,
ProfileSummaryInfo * PSI,
MBFIWrapper * MBFIWrapper,
PGSOQueryType QueryType = PGSOQueryType::Other )

Returns true if machine basic block MBB is suggested to be size-optimized based on the profile.

Definition at line 46 of file MachineSizeOpts.cpp.

References assert(), llvm::MBFIWrapper::getBlockFreq(), llvm::MBFIWrapper::getMBFI(), MBB, and shouldOptimizeForSizeImpl().

◆ shouldOptimizeForSize() [5/5]

◆ shouldOptimizeForSizeImpl()

◆ shouldPassAsArray()

bool llvm::shouldPassAsArray ( Type * Ty)
inline

◆ ShouldPreserveAllAttributes()

LLVM_ABI cl::opt< bool > llvm::ShouldPreserveAllAttributes ( "assume-preserve-all" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("enable preservation of all attributes. even those that are " "unlikely to be useful")  )

◆ shouldPrintAfterAll()

bool llvm::shouldPrintAfterAll ( )

Definition at line 130 of file PrintPasses.cpp.

References PrintAfterAll.

◆ shouldPrintAfterPass()

bool llvm::shouldPrintAfterPass ( StringRef PassID)

◆ shouldPrintAfterSomePass()

bool llvm::shouldPrintAfterSomePass ( )

Definition at line 119 of file PrintPasses.cpp.

References PrintAfter, and PrintAfterAll.

Referenced by llvm::PrintIRInstrumentation::registerCallbacks().

◆ shouldPrintBeforeAll()

bool llvm::shouldPrintBeforeAll ( )

Definition at line 128 of file PrintPasses.cpp.

References PrintBeforeAll.

◆ shouldPrintBeforePass()

bool llvm::shouldPrintBeforePass ( StringRef PassID)

◆ shouldPrintBeforeSomePass()

bool llvm::shouldPrintBeforeSomePass ( )

This is a helper to determine whether to print IR before or after a pass.

Definition at line 115 of file PrintPasses.cpp.

References PrintBefore, and PrintBeforeAll.

Referenced by llvm::PrintIRInstrumentation::registerCallbacks().

◆ shouldRename()

bool llvm::shouldRename ( Value * V)

Definition at line 324 of file PredicateInfo.cpp.

References isa().

◆ shouldReverseIterate()

◆ shouldScheduleAdjacent()

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 51 of file ARMMacroFusion.cpp.

References isAESPair(), isLiteralsPair(), and TII.

Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), createARMMacroFusionDAGMutation(), createPowerPCMacroFusionDAGMutation(), and createX86MacroFusionDAGMutation().

◆ shouldSkipAttribute()

bool llvm::shouldSkipAttribute ( bool Update,
DWARFAbbreviationDeclaration::AttributeSpec AttrSpec,
bool SkipPC )
static

◆ shuffle()

template<class Iterator, class RNG>
void llvm::shuffle ( Iterator first,
Iterator last,
RNG && g )

Definition at line 1518 of file STLExtras.h.

References g(), and size().

Referenced by llvm::InstrProfWriter::addTemporalProfileTraces(), and llvm::HexagonEvaluator::evaluate().

◆ signatureFromMVTs()

◆ SignExtend32() [1/2]

template<unsigned B>
int32_t llvm::SignExtend32 ( uint32_t X)
constexpr

Sign-extend the number in the bottom B bits of X to a 32-bit integer.

Requires B <= 32.

Definition at line 565 of file MathExtras.h.

References B(), and X.

Referenced by llvm::RuntimeDyldMachOARM::decodeAddend(), DecodeASX(), DecodeBFLabelOperand(), DecodeBranchCondition(), DecodeBranchImmInstruction(), DecodeBranchTarget(), DecodeBranchTarget10MM(), DecodeBranchTarget1SImm16(), DecodeBranchTarget21(), DecodeBranchTarget21MM(), DecodeBranchTarget26(), DecodeBranchTarget26MM(), DecodeBranchTarget7MM(), DecodeBranchTargetMM(), DecodeBranchTargetS(), DecodeCacheeOp_CacheOpR6(), DecodeCacheOp(), DecodeCacheOpMM(), DecodeCAS(), decodeCondBrTarget(), decodeDirectBrTarget(), DecodeFMem(), DecodeFMem2(), DecodeFMem3(), DecodeFMemCop2MMR6(), DecodeFMemCop2R6(), DecodeFMemMMR2(), DecodeInsSize(), DecodeLoadByte15(), DecodeMem(), DecodeMemEVA(), DecodeMemMMImm12(), DecodeMemMMImm16(), DecodeMemMMImm9(), DecodeMemMMReglistImm4Lsl2(), decodeMemoryOpValue(), DecodeMEMrs9(), DecodeMSA128Mem(), DecodePrefeOpMM(), decodeRelCondBrTarget13(), decodeRelCondBrTarget7(), decodeRiMemoryValue(), decodeShiftImm(), DecodeSignedOperand(), DecodeSimm18Lsl3(), DecodeSimm19Lsl2(), DecodeSimm23Lsl2(), DecodeSimm9SP(), DecodeSImmWithOffsetAndScale(), decodeSplsValue(), DecodeSyncI(), DecodeSyncI_MM(), DecodeSynciR6(), DecodeT2BInstruction(), DecodeT2BROperand(), DecodeThumbBCCTargetOperand(), DecodeThumbBLTargetOperand(), DecodeThumbBLXOffset(), DecodeThumbBROperand(), llvm::LoongArchMatInt::generateInstSeq(), llvm::PPC::get_VSPLTI_elt(), getEncodedOrdinal(), isBLACompatibleAddress(), llvm::PPCInstPrinter::printBranchOperand(), llvm::PPCInstPrinter::printS5ImmOperand(), and llvm::RuntimeDyldELF::processRelocationRef().

◆ 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 B <= 32.

Definition at line 574 of file MathExtras.h.

References assert(), B(), and X.

◆ SignExtend64() [1/2]

template<unsigned B>
int64_t llvm::SignExtend64 ( uint64_t x)
constexpr

Sign-extend the number in the bottom B bits of X to a 64-bit integer.

Requires B <= 64.

Definition at line 583 of file MathExtras.h.

References B().

Referenced by llvm::jitlink::loongarch::applyFixup(), llvm::APInt::ashrInPlace(), brtargetDecoder(), llvm::RISCVInstrInfo::canFoldIntoAddrMode(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), DecodeAddiGroupBranch(), DecodeAdrInstruction(), DecodeAS(), DecodeASX(), DecodeBgtzGroupBranch(), DecodeBgtzGroupBranchMMR6(), DecodeBgtzlGroupBranch(), DecodeBlezGroupBranch(), DecodeBlezGroupBranchMMR6(), DecodeBlezlGroupBranch(), decodeBranchOperand(), DecodeCall(), decodeCallOperand(), decodeCLUIImmOperand(), DecodeDaddiGroupBranch(), DecodeDisp(), decodeDispRIHashOperand(), decodeDispRIX16Operand(), decodeDispRIXOperand(), decodeImm12Operand(), decodeImm8_sh8Operand(), decodeImm8Operand(), llvm::jitlink::aarch32::decodeImmBA1BlA1BlxA2(), llvm::jitlink::aarch32::decodeImmBT4BlT1BlxT2(), llvm::jitlink::aarch32::decodeImmBT4BlT1BlxT2_J1J2(), decodeJumpOperand(), decodeL32ROperand(), DecodePairLdStInstruction(), decodePCDBLOperand(), DecodePCRelLabel19(), DecodePCRelLabel9(), DecodePOP35GroupBranchMMR6(), DecodePOP37GroupBranchMMR6(), DecodePOP65GroupBranchMMR6(), DecodePOP75GroupBranchMMR6(), DecodeSignedLdStInstruction(), DecodeSIMM13(), DecodeSIMM32(), DecodeSIMM5(), DecodeSIMM7(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperand(), decodeSImmOperandAndLslN(), decodeSMEMOffset(), decodeSOPPBrTarget(), DecodeSpecial3LlSc(), DecodeTestAndBranch(), DecodeUnconditionalBranch(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::AMDGPU::AMDGPUMCInstrAnalysis::evaluateBranch(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::extractSubregFromImm(), llvm::LoongArchMatInt::generateInstSeq(), llvm::RISCVMatInt::generateInstSeq(), generateInstSeqImpl(), llvm::RISCVMatInt::generateTwoRegInstSeq(), llvm::DWARFDataExtractorBase< Relocator >::getEncodedPointer(), llvm::SelectionDAG::getGlobalAddress(), llvm::AMDGPUDisassembler::getInstruction(), llvm::APInt::getSExtValue(), llvm::RISCVInstrInfo::isBranchOffsetInRange(), llvm::jitlink::isInRangeForImm(), isSignExtendedW(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), llvm::MipsSEInstrInfo::loadImmediate(), lowerBuildVectorOfConstants(), llvm::RISCVInstrInfo::movImm(), llvm::PPCTargetLowering::PerformDAGCombine(), performSETCCCombine(), llvm::AArch64InstPrinter::printInst(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::jitlink::aarch32::readAddendData(), llvm::jitlink::aarch32::readAddendThumb(), llvm::APInt::roundToDouble(), s32_0ImmDecoder(), llvm::RISCVDAGToDAGISel::Select(), llvm::LoongArchDAGToDAGISel::SelectAddrConstant(), llvm::LoongArchDAGToDAGISel::SelectAddrRegImm12(), selectConstantAddr(), selectI64Imm(), llvm::RISCVDAGToDAGISel::selectRVVSimm5(), and llvm::APInt::sext().

◆ 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 B <= 64.

Definition at line 592 of file MathExtras.h.

References assert(), B(), and X.

◆ SimpleNodeLabelString()

template<typename BasicBlockT>
std::string llvm::SimpleNodeLabelString ( const BasicBlockT * Node)

◆ simplifyAddInst()

◆ 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 2233 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by handleOtherCmpSelSimplifications(), simplifyBinOp(), simplifyInstructionWithOperands(), simplifyMulInst(), and llvm::InstCombinerImpl::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 1501 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitAShr().

◆ simplifyBinaryIntrinsic()

Value * llvm::simplifyBinaryIntrinsic ( Intrinsic::ID IID,
Type * ReturnType,
Value * Op0,
Value * Op1,
const SimplifyQuery & Q,
const CallBase * Call )

Given operands for a BinaryIntrinsic, fold the result or return null.

Definition at line 6496 of file InstructionSimplify.cpp.

References assert(), BitWidth, llvm::CallingConv::C, Call, cast(), llvm::ICmpInst::compare(), computeKnownBits(), ConstantFoldBinaryOpOperands(), llvm::SimplifyQuery::DL, dyn_cast(), fcAllFlags, foldMinimumMaximumSharedOp(), foldMinMaxSharedOp(), llvm::ConstantStruct::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::ConstantInt::getFalse(), llvm::DataLayout::getIndexTypeSizeInBits(), getInverseMinMaxIntrinsic(), llvm::CmpInst::getNonStrictPredicate(), llvm::Constant::getNullValue(), llvm::MinMaxIntrinsic::getPredicate(), llvm::MinMaxIntrinsic::getSaturationPoint(), llvm::Type::getScalarSizeInBits(), llvm::ConstantInt::getSigned(), llvm::Value::getType(), llvm::SimplifyQuery::getWithoutUndef(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, isa(), isICmpTrue(), llvm::SimplifyQuery::isUndefValue(), llvm::PatternMatch::m_AllOnes(), llvm::PatternMatch::m_APFloat(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_APIntAllowPoison(), llvm::PatternMatch::m_AShr(), llvm::PatternMatch::m_FNeg(), llvm::PatternMatch::m_ImmConstant(), llvm::PatternMatch::m_Intrinsic(), llvm::PatternMatch::m_LShr(), llvm::PatternMatch::m_NaN(), llvm::PatternMatch::m_Negative(), llvm::PatternMatch::m_One(), llvm::PatternMatch::m_PtrToInt(), llvm::PatternMatch::m_Shl(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), propagateNaN(), RecursionLimit, simplifyLdexp(), simplifyRelativeLoad(), std::swap(), X, llvm::KnownBits::Zero, and llvm::APInt::zextOrTrunc().

Referenced by llvm::InstSimplifyFolder::FoldBinaryIntrinsic(), and simplifyIntrinsic().

◆ simplifyBinOp() [1/2]

◆ simplifyBinOp() [2/2]

Value * llvm::simplifyBinOp ( unsigned Opcode,
Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q )

Given operands for a BinaryOperator, fold the result or return null.

Try to use FastMathFlags when folding the result.

Definition at line 6162 of file InstructionSimplify.cpp.

References RecursionLimit.

◆ simplifyCall()

Value * llvm::simplifyCall ( CallBase * Call,
Value * Callee,
ArrayRef< Value * > Args,
const SimplifyQuery & Q )

Given a callsite, callee, and arguments, fold the result or return null.

Definition at line 7054 of file InstructionSimplify.cpp.

References assert(), Call, dyn_cast(), F, llvm::PoisonValue::get(), isa(), simplifyIntrinsic(), and tryConstantFoldCall().

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitCallInst().

◆ 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 5438 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by constantFoldUser(), simplifyInstructionWithOperands(), and simplifySubInst().

◆ simplifyCFG()

◆ simplifyCmpInst()

Value * llvm::simplifyCmpInst ( CmpPredicate Predicate,
Value * LHS,
Value * RHS,
const SimplifyQuery & Q )

Given operands for a CmpInst, fold the result or return null.

Definition at line 6175 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by CanProveNotTakenFirstIteration(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), simplifyCmpSelCase(), and threadCmpOverPHI().

◆ simplifyConstrainedFPCall()

Value * llvm::simplifyConstrainedFPCall ( CallBase * Call,
const SimplifyQuery & Q )

Given a constrained FP intrinsic call, tries to compute its simplified version.

Returns a simplified result or null.

This function provides an additional contract: it guarantees that if simplification succeeds that the intrinsic is side effect free. As a result, successful simplification can be used to delete the intrinsic not just replace its result.

Definition at line 7080 of file InstructionSimplify.cpp.

References assert(), Call, isa(), simplifyIntrinsic(), and tryConstantFoldCall().

Referenced by llvm::InstCombinerImpl::visitCallInst().

◆ 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 5338 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::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 5286 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitExtractValueInst().

◆ simplifyFAddInst()

Value * llvm::simplifyFAddInst ( Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q,
fp::ExceptionBehavior ExBehavior = fp::ebIgnore,
RoundingMode Rounding = RoundingMode::NearestTiesToEven )

Given operands for an FAdd, fold the result or return null.

Definition at line 5921 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyBinOp(), simplifyInstructionWithOperands(), simplifyIntrinsic(), and llvm::InstCombinerImpl::visitFAdd().

◆ simplifyFCmpInst()

Value * llvm::simplifyFCmpInst ( CmpPredicate Predicate,
Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q )

Given operands for an FCmpInst, fold the result or return null.

Definition at line 4318 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyCmpInst(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitFCmpInst().

◆ simplifyFDivInst()

Value * llvm::simplifyFDivInst ( Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q,
fp::ExceptionBehavior ExBehavior = fp::ebIgnore,
RoundingMode Rounding = RoundingMode::NearestTiesToEven )

Given operands for an FDiv, fold the result or return null.

Definition at line 6004 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyBinOp(), simplifyInstructionWithOperands(), simplifyIntrinsic(), and llvm::InstCombinerImpl::visitFDiv().

◆ simplifyFMAFMul()

Value * llvm::simplifyFMAFMul ( Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q,
fp::ExceptionBehavior ExBehavior = fp::ebIgnore,
RoundingMode Rounding = RoundingMode::NearestTiesToEven )

Given operands for the multiplication of a FMA, fold the result or return null.

In contrast to simplifyFMulInst, this function will not perform simplifications whose unrounded results differ when rounded to the argument type.

Definition at line 5945 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyFMulInst(), and llvm::InstCombinerImpl::visitCallInst().

◆ simplifyFMulInst()

Value * llvm::simplifyFMulInst ( Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q,
fp::ExceptionBehavior ExBehavior = fp::ebIgnore,
RoundingMode Rounding = RoundingMode::NearestTiesToEven )

Given operands for an FMul, fold the result or return null.

Definition at line 5937 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyBinOp(), simplifyInstructionWithOperands(), simplifyIntrinsic(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitFMul().

◆ simplifyFNegInst()

Value * llvm::simplifyFNegInst ( Value * Op,
FastMathFlags FMF,
const SimplifyQuery & Q )

Given operand for an FNeg, fold the result or return null.

Definition at line 5635 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyFPUnOp(), simplifyInstructionWithOperands(), simplifyUnOp(), and llvm::InstCombinerImpl::visitFNeg().

◆ simplifyFreezeInst()

Value * llvm::simplifyFreezeInst ( Value * Op,
const SimplifyQuery & Q )

Given an operand for a Freeze, see if we can fold the result.

If not, this returns null.

Definition at line 7099 of file InstructionSimplify.cpp.

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitFreeze().

◆ simplifyFRemInst()

Value * llvm::simplifyFRemInst ( Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q,
fp::ExceptionBehavior ExBehavior = fp::ebIgnore,
RoundingMode Rounding = RoundingMode::NearestTiesToEven )

Given operands for an FRem, fold the result or return null.

Definition at line 6042 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), simplifyIntrinsic(), and llvm::InstCombinerImpl::visitFRem().

◆ simplifyFSubInst()

Value * llvm::simplifyFSubInst ( Value * LHS,
Value * RHS,
FastMathFlags FMF,
const SimplifyQuery & Q,
fp::ExceptionBehavior ExBehavior = fp::ebIgnore,
RoundingMode Rounding = RoundingMode::NearestTiesToEven )

Given operands for an FSub, fold the result or return null.

Definition at line 5929 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyBinOp(), simplifyInstructionWithOperands(), simplifyIntrinsic(), and llvm::InstCombinerImpl::visitFSub().

◆ simplifyGEPInst()

Value * llvm::simplifyGEPInst ( Type * SrcTy,
Value * Ptr,
ArrayRef< Value * > Indices,
GEPNoWrapFlags NW,
const SimplifyQuery & Q )

Given operands for a GetElementPtrInst, fold the result or return null.

Definition at line 5164 of file InstructionSimplify.cpp.

References Ptr, and RecursionLimit.

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitGetElementPtrInst().

◆ simplifyICmpInst()

◆ simplifyInsertElementInst()

◆ 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 5203 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitInsertValueInst().

◆ simplifyInstruction() [1/2]

◆ simplifyInstruction() [2/2]

◆ 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 721 of file Local.cpp.

References assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), llvm::SetVector< T, Vector, Set, N >::count(), DL, llvm::SetVector< T, Vector, Set, N >::empty(), llvm::BasicBlock::end(), llvm::BasicBlock::getDataLayout(), I, llvm::SetVector< T, Vector, Set, N >::pop_back_val(), and simplifyAndDCEInstruction().

Referenced by foldUnusualPatterns(), llvm::JumpThreadingPass::threadEdge(), and llvm::JumpThreadingPass::threadThroughTwoBasicBlocks().

◆ simplifyInstructionWithOperands()

Value * llvm::simplifyInstructionWithOperands ( Instruction * I,
ArrayRef< Value * > NewOps,
const SimplifyQuery & Q )

Like simplifyInstruction but the operands of I are replaced with NewOps.

Returns a simplified value, or null if none was found.

Definition at line 7275 of file InstructionSimplify.cpp.

References assert(), I, RecursionLimit, and llvm::ArrayRef< T >::size().

Referenced by simplifyInstruction(), simplifyInstructionWithPHI(), simplifyOperationIntoSelectOperand(), and simplifyWithOpsReplaced().

◆ simplifyLoadInst()

◆ simplifyLoop()

◆ simplifyLoopAfterUnroll()

◆ simplifyLoopIVs()

bool llvm::simplifyLoopIVs ( Loop * L,
ScalarEvolution * SE,
DominatorTree * DT,
LoopInfo * LI,
const TargetTransformInfo * TTI,
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 1025 of file SimplifyIndVar.cpp.

References _, llvm::CallingConv::C, cast(), Changed, DEBUG_TYPE, llvm::ScalarEvolution::getDataLayout(), I, isa(), Rewriter, and simplifyUsersOfIV().

Referenced by 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 1468 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitLShr().

◆ simplifyMulInst()

Value * llvm::simplifyMulInst ( Value * LHS,
Value * RHS,
bool IsNSW,
bool IsNUW,
const SimplifyQuery & Q )

Given operands for a Mul, fold the result or return null.

Definition at line 960 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::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 2507 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by handleOtherCmpSelSimplifications(), simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitOr().

◆ simplifyRetainedKnowledge()

RetainedKnowledge llvm::simplifyRetainedKnowledge ( AssumeInst * Assume,
RetainedKnowledge RK,
AssumptionCache * AC,
DominatorTree * DT )

canonicalize the RetainedKnowledge RK.

it is assumed that RK is part of Assume. This will return an empty RetainedKnowledge if the knowledge is useless.

Definition at line 318 of file AssumeBundleBuilder.cpp.

References llvm::RetainedKnowledge::none().

Referenced by llvm::InstCombinerImpl::visitCallInst().

◆ simplifySDivInst()

Value * llvm::simplifySDivInst ( Value * LHS,
Value * RHS,
bool IsExact,
const SimplifyQuery & Q )

Given operands for an SDiv, fold the result or return null.

Definition at line 1217 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::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 5027 of file InstructionSimplify.cpp.

References Cond, and RecursionLimit.

Referenced by simplifyInstructionWithOperands().

◆ 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 1431 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitShl().

◆ simplifyShuffleVectorInst()

Value * llvm::simplifyShuffleVectorInst ( Value * Op0,
Value * Op1,
ArrayRef< int > Mask,
Type * RetTy,
const SimplifyQuery & Q )

Given operands for a ShuffleVectorInst, fold the result or return null.

See class ShuffleVectorInst for a description of the mask representation.

Definition at line 5607 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::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 1251 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::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 888 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by dropRedundantMaskingOfLeftShiftInput(), simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitSub().

◆ simplifyUDivInst()

Value * llvm::simplifyUDivInst ( Value * LHS,
Value * RHS,
bool IsExact,
const SimplifyQuery & Q )

Given operands for a UDiv, fold the result or return null.

Definition at line 1229 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitUDiv().

◆ simplifyUnOp() [1/2]

Value * llvm::simplifyUnOp ( unsigned Opcode,
Value * Op,
const SimplifyQuery & Q )

Given operand for a UnaryOperator, fold the result or return null.

Definition at line 6078 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by simplifyFPUnOp().

◆ simplifyUnOp() [2/2]

Value * llvm::simplifyUnOp ( unsigned Opcode,
Value * Op,
FastMathFlags FMF,
const SimplifyQuery & Q )

Given operand for a UnaryOperator, fold the result or return null.

Try to use FastMathFlags when folding the result.

Definition at line 6082 of file InstructionSimplify.cpp.

References RecursionLimit.

◆ 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 1262 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by foldURemOfLoopIncrement(), simplifyBinOp(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitURem().

◆ simplifyUsersOfIV()

std::pair< bool, bool > llvm::simplifyUsersOfIV ( PHINode * CurrIV,
ScalarEvolution * SE,
DominatorTree * DT,
LoopInfo * LI,
const TargetTransformInfo * TTI,
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.

Returns a pair where the first entry indicates that the function makes changes and the second entry indicates that it introduced new opportunities for loop unswitching.

Definition at line 1012 of file SimplifyIndVar.cpp.

References llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent().

Referenced by simplifyLoopIVs().

◆ simplifyWithOpReplaced()

Value * llvm::simplifyWithOpReplaced ( Value * V,
Value * Op,
Value * RepOp,
const SimplifyQuery & Q,
bool AllowRefinement,
SmallVectorImpl< Instruction * > * DropFlags = nullptr )

See if V simplifies when its operand Op is replaced with RepOp.

If not, return null. AllowRefinement specifies whether the simplification can be a refinement (e.g. 0 instead of poison), or whether it needs to be strictly identical. Op and RepOp can be assumed to not be poison when determining refinement.

If DropFlags is passed, then the replacement result is only valid if poison-generating flags/metadata on those instructions are dropped. This is only useful in conjunction with AllowRefinement=false.

Definition at line 4516 of file InstructionSimplify.cpp.

References llvm::SimplifyQuery::getWithoutUndef(), and RecursionLimit.

Referenced by simplifyAndOrWithICmpEq().

◆ simplifyXorInst()

Value * llvm::simplifyXorInst ( Value * LHS,
Value * RHS,
const SimplifyQuery & Q )

Given operands for an Xor, fold the result or return null.

Definition at line 2592 of file InstructionSimplify.cpp.

References RecursionLimit.

Referenced by handleOtherCmpSelSimplifications(), simplifyAddInst(), simplifyBinOp(), simplifyInstructionWithOperands(), simplifySubInst(), and llvm::InstCombinerImpl::visitXor().

◆ sinkRegion()

bool llvm::sinkRegion ( DomTreeNode * N,
AAResults * AA,
LoopInfo * LI,
DominatorTree * DT,
TargetLibraryInfo * TLI,
TargetTransformInfo * TTI,
Loop * CurLoop,
MemorySSAUpdater & MSSAU,
ICFLoopSafetyInfo * SafetyInfo,
SinkAndHoistLICMFlags & Flags,
OptimizationRemarkEmitter * ORE,
Loop * OutermostLoop = nullptr )

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, AAResults, LoopInfo, DominatorTree, 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. CurLoop is a loop to do sinking on. OutermostLoop is used only when this function is called by sinkRegionForLoopNest.

This allows us to visit uses before definitions, allowing us to sink a loop body in one pass without iteration.

Definition at line 557 of file LICM.cpp.

References assert(), canSinkOrHoistInst(), Changed, collectChildrenInLoop(), dbgs(), eraseInstruction(), llvm::MemorySSAUpdater::getMemorySSA(), I, II, inSubLoop(), isInstructionTriviallyDead(), isNotUsedOrFoldableInLoop(), LLVM_DEBUG, N, reverse(), salvageDebugInfo(), salvageKnowledge(), sink(), VerifyMemorySSA, and llvm::MemorySSA::verifyMemorySSA().

Referenced by sinkRegionForLoopNest().

◆ sinkRegionForLoopNest()

bool llvm::sinkRegionForLoopNest ( DomTreeNode * N,
AAResults * AA,
LoopInfo * LI,
DominatorTree * DT,
TargetLibraryInfo * TLI,
TargetTransformInfo * TTI,
Loop * CurLoop,
MemorySSAUpdater & MSSAU,
ICFLoopSafetyInfo * SafetyInfo,
SinkAndHoistLICMFlags & Flags,
OptimizationRemarkEmitter * ORE )

◆ size()

template<typename R>
auto llvm::size ( R && Range,
std::enable_if_t< std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< decltype(Range.begin())>::iterator_category >::value, void > * = nullptr )

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 1657 of file STLExtras.h.

References Range.

Referenced by llvm::pdb::NativeSession::addressForRVA(), llvm::AllocationOrder::AllocationOrder(), Analyze_CC_Sparc64_Full(), llvm::dwarf_linker::parallel::SectionDescriptor::applyIntVal(), llvm::dwarf_linker::parallel::SectionDescriptor::applySLEB128(), llvm::dwarf_linker::parallel::SectionDescriptor::applyULEB128(), llvm::AttributeListImpl::AttributeListImpl(), llvm::BinaryStreamRef::BinaryStreamRef(), CalculateUnswitchCostMultiplier(), llvm::mca::CodeEmitter::CodeEmitter(), llvm::objcopy::elf::CompressedSection::CompressedSection(), llvm::LoopVectorizationPlanner::computeBestVF(), llvm::ValueEnumerator::computeBitsRequiredForTypeIndices(), llvm::LegacyLegalizerInfo::computeTables(), llvm::ConstantRangeListAttributeImpl::ConstantRangeListAttributeImpl(), llvm::gsym::ObjectFileTransformer::convert(), convertUTF8Sequence(), llvm::LTOModule::createFromOpenFile(), llvm::mca::InstrBuilder::createInstruction(), llvm::orc::createJITLoaderGDBRegistrar(), llvm::object::DataRegion< T >::DataRegion(), LiveDebugValues::DbgValue::DbgValue(), llvm::AArch64_AM::decodeLogicalImmediate(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDST2Instruction(), DecodeVLDST3Instruction(), DecodeVLDST4Instruction(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), llvm::CSKYFrameLowering::determineCalleeSaves(), llvm::dxil::DXILBitcodeWriter::DXILBitcodeWriter(), llvm::PBQP::Graph< SolverT >::EdgeItr::EdgeItr(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitEpilogue(), emitFDESymbol(), EmitPersonality(), llvm::RISCVFrameLowering::emitPrologue(), llvm::EnumeratedArray< ValueType, Enumeration, LargestEnum, IndexType, Size >::empty(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), FindInsertedValue(), llvm::sampleprof::FunctionId::FunctionId(), llvm::AAPotentialConstantValues::getAssumedConstant(), getDataAlignmentFactor(), llvm::LTOModule::getDependentLibrary(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::MCLOHDirective::getEmitSize(), llvm::dwarf_linker::parallel::SectionDescriptor::getIntVal(), llvm::MachineFunction::getJTISymbol(), llvm::object::MinidumpFile::getMemory64List(), llvm::MachineInstr::getNumDebugOperands(), llvm::cl::generic_parser_base::getOptionWidth(), llvm::cl::bits< DataType, Storage, ParserClass >::getPosition(), llvm::NVPTXTargetLowering::getPrototype(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), llvm::SIRegisterInfo::getSubRegFromChannel(), llvm::slpvectorizer::BoUpSLP::VLOperands::getVL(), llvm::SmallVectorBase< Size_T >::grow_pod(), InlineFunction(), llvm::InteractiveModelRunner::InteractiveModelRunner(), llvm::M68kRegisterInfo::intRegClass(), llvm::ShuffleVectorInst::isReplicationMask(), isSafeToUnrollAndJam(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), false::LoopCarriedOrderDepsTracker::LoopCarriedOrderDepsTracker(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::X86CallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), llvm::RuntimeDyldChecker::MemoryRegionInfo::MemoryRegionInfo(), llvm::GlobalMergeFunc::merge(), llvm::PBQP::Graph< SolverT >::NodeItr::NodeItr(), llvm::NoInferenceModelRunner::NoInferenceModelRunner(), llvm::MachO::ArchitectureSet::operator std::string(), operator+=(), llvm::ELFCompactAttrParser::parseSubsection(), performBitcastCombine(), llvm::PGOCtxProfileReader::PGOCtxProfileReader(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_iterator::PHI_iterator(), llvm::R600SchedStrategy::pickNode(), llvm::PreRARematStage::PreRARematStage(), llvm::NodeSet::print(), printDwarfExpression(), llvm::AArch64InstPrinter::printGPRSeqPairsClassOperand(), promoteScalarArgumentSize(), readImmediate(), readOpcodeRegister(), ReadSignature(), llvm::SDPatternMatch::ReassociatableOpc_match< PatternTs >::reassociatableMatchHelper(), llvm::RegsForValue::RegsForValue(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::RegBankSelect::repairReg(), llvm::LoopBase< BlockT, LoopT >::reserveBlocks(), llvm::AArch64_AM::ror(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SchedDFSImpl::SchedDFSImpl(), llvm::SDDbgValue::SDDbgValue(), llvm::SectionEntry::SectionEntry(), llvm::SplitEditor::selectIntv(), separateNestedLoop(), llvm::sampleprof::SampleRecord::serialize(), llvm::LegacyLegalizerInfo::setAction(), llvm::ARMFunctionInfo::setArgumentStackSize(), llvm::M68kMachineFunctionInfo::setArgumentStackSize(), llvm::X86MachineFunctionInfo::setArgumentStackSize(), llvm::LineEditor::setHistorySize(), llvm::LegacyLegalizerInfo::setLegalizeScalarToDifferentSizeStrategy(), llvm::LegacyLegalizerInfo::setLegalizeVectorElementToDifferentSizeStrategy(), llvm::PPCFunctionInfo::setMinReservedArea(), llvm::DIEBlock::setSize(), llvm::DIELoc::setSize(), llvm::PPCFunctionInfo::setTailCallSPDelta(), llvm::InlineAsmIdentifierInfo::setVar(), llvm::AAMDNodes::shiftTBAAStruct(), shuffle(), llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::SIRegisterInfo::SIRegisterInfo(), llvm::orc::shared::SPSSerializationTraits< SPSTuple< SPSTagTs... >, std::tuple< Ts... > >::size(), llvm::adl_detail::size_impl(), llvm::DWARFFormValue::skipValue(), llvm::StackLifetime::StackLifetime(), llvm::StringAttributeImpl::StringAttributeImpl(), llvm::orc::DLLImportDefinitionGenerator::tryToGenerate(), llvm::coverage::mcdc::TVIdxBuilder::TVIdxBuilder(), upgradeArmOrAarch64IntrinsicFunction(), llvm::WritableBinaryStreamRef::WritableBinaryStreamRef(), llvm::objcopy::wasm::Writer::write(), write32AArch64Ldr(), and llvm::LTOModule::~LTOModule().

◆ 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 292 of file BitcodeReader.h.

References BWH_OffsetField, BWH_SizeField, Offset, llvm::support::endian::read32le(), and Size.

Referenced by analyzeHeader(), and initStream().

◆ skipDebugInstructionsBackward()

template<class IterT>
IterT llvm::skipDebugInstructionsBackward ( IterT It,
IterT Begin,
bool SkipPseudoOp = true )
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 1474 of file MachineBasicBlock.h.

Referenced by llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), getLastMIForRegion(), llvm::RISCVRegisterInfo::getRegAllocationHints(), prev_nodbg(), and llvm::MachineBasicBlock::rfindDebugLoc().

◆ skipDebugInstructionsForward()

template<typename IterT>
IterT llvm::skipDebugInstructionsForward ( IterT It,
IterT End,
bool SkipPseudoOp = true )
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 682 of file BasicBlock.cpp.

Referenced by llvm::objcarc::BottomUpPtrState::HandlePotentialUse(), and updateScopeLine().

◆ skipLeadingZeroesAndAnyDot()

Expected< StringRef::iterator > llvm::skipLeadingZeroesAndAnyDot ( StringRef::iterator begin,
StringRef::iterator end,
StringRef::iterator * dot )
static

Definition at line 533 of file APFloat.cpp.

References createError().

Referenced by interpretDecimal().

◆ skipProfileForFunction()

bool llvm::skipProfileForFunction ( const Function & F)
inlinestatic

Definition at line 156 of file SampleProfileLoaderBaseImpl.h.

References F.

Referenced by buildTopDownFuncOrder(), and llvm::SampleProfileMatcher::runOnModule().

◆ sort() [1/4]

template<typename Container>
void llvm::sort ( Container && C)
inline

Definition at line 1637 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, and sort().

◆ sort() [2/4]

template<typename Container, typename Compare>
void llvm::sort ( Container && C,
Compare Comp )
inline

Definition at line 1650 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, and sort().

◆ sort() [3/4]

template<typename IteratorTy>
void llvm::sort ( IteratorTy Start,
IteratorTy End )
inline

Definition at line 1624 of file STLExtras.h.

References array_pod_sort().

Referenced by llvm::TargetLibraryInfoImpl::addVectorizableFunctions(), adjustCostForPairing(), llvm::orc::AllocGroupSmallMap< Segment >::AllocGroupSmallMap(), llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence(), llvm::BlockToIndexMapping::BlockToIndexMapping(), llvm::memprof::CallStackRadixTreeBuilder< FrameIdTy >::build(), llvm::MCPseudoProbeDecoder::buildAddress2ProbeMap(), llvm::SwitchCG::SwitchLowering::buildBitTests(), buildClonedLoops(), llvm::MCPseudoProbeDecoder::buildGUID2FuncDescMap(), buildVRegToDbgValueMap(), checkVectorTypesForPromotion(), collectBlockUseDef(), collectContributionData(), llvm::mca::RegisterFile::collectWrites(), combineWeightsBySorting(), llvm::codeview::DebugCrossModuleImportsSubsection::commit(), llvm::codeview::DebugFrameDataSubsection::commit(), compareVectors(), llvm::AccelTableBase::computeBucketCount(), llvm::ProfileSummaryBuilder::computeDetailedSummary(), llvm::rdf::Liveness::computeLiveIns(), computeLTOCacheKey(), computeParamInfo(), llvm::MachObjectWriter::computeSymbolTable(), llvm::LegacyLegalizerInfo::computeTables(), constructSeqOffsettoOrigRowMapping(), convertCalledGlobals(), convertCallSiteObjects(), llvm::TemporalProfTraceTy::createBPFunctionNodes(), llvm::MDBuilder::createFunctionEntryCount(), llvm::SIFrameLowering::determineCalleeSaves(), determineGPRegsToClear(), llvm::jitlink::LinkGraph::dump(), llvm::sampleprof::ProfileSymbolList::dump(), llvm::InstrProfSymtab::dumpNames(), llvm::DwarfStringPool::emit(), llvm::MCPseudoProbeInlineTree::emit(), llvm::MCPseudoProbeSections::emit(), llvm::EHStreamer::emitExceptionTable(), llvm::AsmPrinter::emitFunctionBody(), llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), llvm::rdf::DeadCodeElimination::erase(), llvm::ModuleSummaryIndex::exportToDot(), llvm::memprof::extractCallsFromIR(), llvm::AArch64::fillValidCPUArchList(), llvm::objcopy::elf::ASCIIHexWriter::finalize(), llvm::pdb::GSIHashStreamBuilder::finalizeBuckets(), findArgParts(), findArrayDimensions(), findFixedSizeArrayDimensions(), findIrreducibleHeaders(), llvm::jitlink::EHFrameCFIBlockInspector::FromEdgeScan(), generateGatherLanePattern(), llvm::lto::generateModulesOrdering(), generateReproducer(), llvm::AttributeSetNode::get(), llvm::RecordRecTy::get(), llvm::ReplaceableMetadataImpl::getAllArgListUsers(), llvm::ReplaceableMetadataImpl::getAllDbgVariableRecordUsers(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::rdf::Liveness::getAllReachingDefs(), GetEHSpillList(), llvm::NonRelocatableStringpool::getEntriesForEmission(), llvm::DWARFUnitIndex::getFromOffset(), llvm::sys::detail::getHostCPUNameForARM(), llvm::HexagonSubtarget::getIntrinsicId(), getLiveRegMap(), llvm::IndexedMemProfReader::getMemProfCallerCalleePairs(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::StackSafetyInfo::getParamAccesses(), llvm::HvxSelector::getPerfectCompletions(), llvm::FunctionImporter::ImportMapTy::getSourceModules(), GetSpillList(), getStableIndexOperandHashes(), getSuperRegs(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), hoistPreviousBeforeFORUsers(), inferInitializes(), llvm::mca::initializeUsedResources(), llvm::jitlink::initRelaxAux(), llvm::SlotIndexes::insertMBBInMaps(), llvm::cfg::LegalizeUpdates(), llvm::dwarf_linker::classic::DWARFLinker::link(), llvm::coverage::CoverageMapping::load(), llvm::object::ResourceSectionRef::load(), TransferTracker::loadInlocs(), llvm::PhiLoweringHelper::lowerPhis(), llvm::yaml::MappingTraits< ModuleSummaryIndex >::mapping(), mergePartStores(), llvm::yaml::MappingTraits< const InterfaceFile * >::NormalizedTBD::NormalizedTBD(), llvm::yaml::MappingTraits< const InterfaceFile * >::NormalizedTBD_V4::NormalizedTBD_V4(), llvm::jitlink::DWARFRecordSectionSplitter::operator()(), llvm::jitlink::EHFrameEdgeFixer::operator()(), llvm::orc::BlockFreqQuery::operator()(), operator<<(), llvm::orc::SymbolStringPool::operator<<, llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeNonTrivialIFuncs(), parallelSort(), predictValueUseListOrder(), predictValueUseListOrderImpl(), predictValueUseListOrderImpl(), PrefixMatcher::PrefixMatcher(), llvm::CallGraph::print(), llvm::DebugCounter::print(), llvm::PhysicalRegisterUsageInfo::print(), llvm::sandboxir::DependencyGraph::print(), llvm::ReachingDefAnalysis::printAllReachingDefs(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::printStatistic(), llvm::Pattern::printVariableDefs(), promoteSingleBlockAlloca(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), reduceSwitchRange(), relocationViaAlloca(), llvm::MemoryDependenceResults::removeInstruction(), llvm::SelectionDAG::ReplaceAllUsesOfValuesWith(), llvm::ReplaceableMetadataImpl::replaceAllUsesWith(), replaceConstantExprOp(), llvm::objcopy::elf::Object::replaceSections(), rescheduleLexographically(), llvm::ReplaceableMetadataImpl::resolveAllUses(), llvm::LoadAndStorePromoter::run(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::runDFS(), llvm::PlaceSafepointsPass::runImpl(), llvm::sandboxir::PackReuse::runOnRegion(), llvm::MIRParserImpl::setupRegisterInfo(), simplifySwitchOfPowersOfTwo(), sinkInstruction(), sinkRecurrenceUsersAfterPrevious(), llvm::coro::sinkSpillUsesAfterCoroBegin(), llvm::SMDiagnostic::SMDiagnostic(), llvm::simple_ilist< T, Options >::sort(), sort(), sort(), llvm::SwitchCG::sortAndRangeify(), llvm::orc::SymbolLookupSet::sortByAddress(), llvm::orc::SymbolLookupSet::sortByName(), llvm::json::sortedElements(), llvm::codeview::DebugStringTableSubsection::sortedIds(), llvm::FunctionImporter::SortedImportList::SortedImportList(), sortGlobalExprs(), SortNonLocalDepInfoCache(), llvm::GCNIterativeScheduler::sortRegionsByPressure(), llvm::MachineBasicBlock::sortUniqueLiveIns(), llvm::DebugLocEntry::sortUniqueValues(), SRAGlobal(), llvm::DbgValueHistoryMap::trimLocationRanges(), llvm::coverage::mcdc::TVIdxBuilder::TVIdxBuilder(), llvm::HexagonBlockRanges::RangeList::unionize(), updateIDTMetaData(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyDFSNumbers(), llvm::OutlinedHashTree::walkGraph(), llvm::VirtRegAuxInfo::weightCalcHelper(), llvm::sampleprof::ProfileSymbolList::write(), llvm::TimeTraceProfiler::write(), llvm::vfs::YAMLVFSWriter::write(), writeMemProfFrameArray(), and llvm::InstrProfWriter::writeText().

◆ sort() [4/4]

template<typename IteratorTy, typename Compare>
void llvm::sort ( IteratorTy Start,
IteratorTy End,
Compare Comp )
inline

Definition at line 1642 of file STLExtras.h.

◆ sortBasicBlocksAndUpdateBranches()

◆ sortBlocks()

◆ SortProfiledSCC()

cl::opt< bool > llvm::SortProfiledSCC ( "sort-profiled-scc-member" ,
cl::init(true) ,
cl::Hidden ,
cl::desc("Sort profiled recursion by edge weights.")  )

◆ sortPtrAccesses()

bool llvm::sortPtrAccesses ( ArrayRef< Value * > VL,
Type * ElemTy,
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 1700 of file LoopAccessAnalysis.cpp.

References all_of(), assert(), llvm::SmallVectorImpl< T >::clear(), DL, drop_begin(), enumerate(), getPointersDiff(), Offset, Ptr, llvm::SmallVectorImpl< T >::resize(), and llvm::ArrayRef< T >::size().

Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads().

◆ SPARCCondCodeToString()

◆ spell()

StringRef llvm::spell ( RoundingMode RM)
inline

Returns text representation of the given rounding mode.

Definition at line 52 of file FloatingPointMode.h.

References Dynamic, NearestTiesToAway, NearestTiesToEven, TowardNegative, TowardPositive, and TowardZero.

Referenced by operator<<().

◆ SPIRVTranslate()

◆ SPIRVTranslateModule()

bool llvm::SPIRVTranslateModule ( Module * M,
std::string & SpirvObj,
std::string & ErrMsg,
const std::vector< std::string > & AllowExtNames,
const std::vector< std::string > & Opts )

◆ split() [1/2]

iterator_range< SplittingIterator > llvm::split ( StringRef Str,
char Separator )
inline

Definition at line 616 of file StringExtras.h.

◆ split() [2/2]

iterator_range< SplittingIterator > llvm::split ( StringRef Str,
StringRef Separator )
inline

Split the specified string over a separator and return a range-compatible iterable over its partitions. Used to permit conveniently iterating over separated strings like so:

for (StringRef x : llvm::split("foo,bar,baz", ","))
...;
\end
Note that the passed string must remain valid throuhgout lifetime
of the iterators.
iterator_range< SplittingIterator > split(StringRef Str, StringRef Separator)
Split the specified string over a separator and return a range-compatible iterable over its partition...

Definition at line 611 of file StringExtras.h.

Referenced by llvm::StringToOffsetTable::EmitStringTableDef(), llvm::RopePieceBTree::erase(), getHeaders(), llvm::NVPTXTTIImpl::getInstructionCost(), and llvm::RopePieceBTree::insert().

◆ 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 851 of file BasicBlockUtils.cpp.

References F, llvm::Instruction::getNumSuccessors(), isa(), Options, and SplitCriticalEdge().

◆ SplitBlock() [1/4]

BasicBlock * llvm::SplitBlock ( BasicBlock * Old,
BasicBlock::iterator SplitPt,
DominatorTree * DT,
LoopInfo * LI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
const Twine & BBName = "",
bool Before = false )

Split the specified block at the specified instruction.

If Before is true, splitBlockBefore handles the block splitting. Otherwise, execution proceeds as described below.

Everything before SplitPt stays in Old and everything starting with SplitPt moves to a new block. The two blocks are joined by an unconditional branch. The new block with name BBName is returned.

FIXME: deprecated, switch to the DomTreeUpdater-based one.

Definition at line 920 of file BasicBlockUtils.cpp.

References SplitBlockImpl().

Referenced by addReplicateRegions(), buildClonedLoopBlocks(), changeToInvokeAndSplitBasicBlock(), llvm::InnerLoopVectorizer::createScalarPreheader(), llvm::EpilogueVectorizerEpilogueLoop::createVectorizedLoopSkeleton(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), expandToSwitch(), foldMemChr(), peelLoop(), llvm::VPBasicBlock::splitAt(), SplitBlock(), SplitBlock(), SplitBlockAndInsertSimpleForLoop(), splitCallSite(), SplitEdge(), UnrollRuntimeLoopRemainder(), unswitchTrivialBranch(), unswitchTrivialSwitch(), and llvm::LoopVersioning::versionLoop().

◆ SplitBlock() [2/4]

BasicBlock * llvm::SplitBlock ( BasicBlock * Old,
BasicBlock::iterator SplitPt,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
const Twine & BBName = "",
bool Before = false )

Split the specified block at the specified instruction.

If Before is true, splitBlockBefore handles the block splitting. Otherwise, execution proceeds as described below.

Everything before SplitPt stays in Old and everything starting with SplitPt moves to a new block. The two blocks are joined by an unconditional branch. The new block with name BBName is returned.

Definition at line 927 of file BasicBlockUtils.cpp.

References SplitBlockImpl().

◆ SplitBlock() [3/4]

BasicBlock * llvm::SplitBlock ( BasicBlock * Old,
Instruction * SplitPt,
DominatorTree * DT,
LoopInfo * LI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
const Twine & BBName = "",
bool Before = false )
inline

◆ SplitBlock() [4/4]

BasicBlock * llvm::SplitBlock ( BasicBlock * Old,
Instruction * SplitPt,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
MemorySSAUpdater * MSSAU = nullptr,
const Twine & BBName = "",
bool Before = false )
inline

◆ SplitBlockAndInsertForEachLane() [1/2]

void llvm::SplitBlockAndInsertForEachLane ( ElementCount EC,
Type * IndexTy,
BasicBlock::iterator InsertBefore,
std::function< void(IRBuilderBase &, Value *)> Func )

Utility function for performing a given action on each lane of a vector with EC elements.

To simplify porting legacy code, this defaults to unrolling the implied loop for non-scalable element counts, but this is not considered to be part of the contract of this routine, and is expected to change in the future. The callback takes as arguments an IRBuilder whose insert point is correctly set for instantiating the given index, and a value which is (at runtime) the index to access. This index may be a constant.

Definition at line 1595 of file BasicBlockUtils.cpp.

References llvm::IRBuilderBase::CreateElementCount(), llvm::IRBuilderBase::SetInsertPoint(), and SplitBlockAndInsertSimpleForLoop().

◆ SplitBlockAndInsertForEachLane() [2/2]

void llvm::SplitBlockAndInsertForEachLane ( Value * End,
BasicBlock::iterator InsertBefore,
std::function< void(IRBuilderBase &, Value *)> Func )

Utility function for performing a given action on each lane of a vector with EVL effective length.

EVL is assumed > 0. To simplify porting legacy code, this defaults to unrolling the implied loop for non-scalable element counts, but this is not considered to be part of the contract of this routine, and is expected to change in the future. The callback takes as arguments an IRBuilder whose insert point is correctly set for instantiating the given index, and a value which is (at runtime) the index to access. This index may be a constant.

Definition at line 1619 of file BasicBlockUtils.cpp.

References cast(), llvm::Value::getType(), isa(), llvm::IRBuilderBase::SetInsertPoint(), and SplitBlockAndInsertSimpleForLoop().

◆ SplitBlockAndInsertIfElse() [1/2]

Instruction * llvm::SplitBlockAndInsertIfElse ( Value * Cond,
BasicBlock::iterator SplitBefore,
bool Unreachable,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
BasicBlock * ElseBlock = nullptr )

Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false path of the branch.

Definition at line 1458 of file BasicBlockUtils.cpp.

References Cond, llvm::BasicBlock::getTerminator(), and SplitBlockAndInsertIfThenElse().

Referenced by SplitBlockAndInsertIfElse().

◆ SplitBlockAndInsertIfElse() [2/2]

Instruction * llvm::SplitBlockAndInsertIfElse ( Value * Cond,
Instruction * SplitBefore,
bool Unreachable,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
BasicBlock * ElseBlock = nullptr )
inline

◆ SplitBlockAndInsertIfThen() [1/2]

Instruction * llvm::SplitBlockAndInsertIfThen ( Value * Cond,
BasicBlock::iterator SplitBefore,
bool Unreachable,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
BasicBlock * ThenBlock = 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 ThenBlock is not specified, a new block will be created for it. If Unreachable is true, the newly created block will end with UnreachableInst, otherwise it branches to Tail. Returns the NewBasicBlock's terminator.

Updates DTU and LI if given.

Definition at line 1445 of file BasicBlockUtils.cpp.

References Cond, llvm::BasicBlock::getTerminator(), and SplitBlockAndInsertIfThenElse().

Referenced by llvm::AMDGPU::genAMDGPUReportBlock(), InsertStackProtectors(), makeGuardControlFlowExplicit(), mergeConditionalStoreToAddress(), optimizeSQRT(), llvm::orc::ReOptimizeLayer::reoptimizeIfCallFrequent(), rewriteMemOpOfSelect(), llvm::KCFIPass::run(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), SplitBlockAndInsertIfThen(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), turnGuardIntoBranch(), turnSelectIntoBranch(), and versionCallSiteWithCond().

◆ SplitBlockAndInsertIfThen() [2/2]

Instruction * llvm::SplitBlockAndInsertIfThen ( Value * Cond,
Instruction * SplitBefore,
bool Unreachable,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr,
BasicBlock * ThenBlock = nullptr )
inline

◆ SplitBlockAndInsertIfThenElse() [1/4]

void llvm::SplitBlockAndInsertIfThenElse ( Value * Cond,
BasicBlock::iterator SplitBefore,
BasicBlock ** ThenBlock,
BasicBlock ** ElseBlock,
bool UnreachableThen = false,
bool UnreachableElse = false,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = 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) TrueBlock else FalseBlock SplitBefore Tail

If ThenBlock is null, the resulting CFG won't contain the TrueBlock. If ThenBlock is non-null and points to non-null BasicBlock pointer, that block will be inserted as the TrueBlock. Otherwise a new block will be created. Likewise for the ElseBlock parameter. If UnreachableThen or UnreachableElse is true, the corresponding newly created blocks will end with UnreachableInst, otherwise with branches to Tail. The function will not modify existing basic blocks passed to it. The caller must ensure that Tail is reachable from Head. Returns the newly created blocks in ThenBlock and ElseBlock. Updates DTU and LI if given.

Definition at line 1486 of file BasicBlockUtils.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::CallingConv::C, Cond, llvm::BasicBlock::Create(), llvm::BranchInst::Create(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::SmallVectorImpl< T >::emplace_back(), llvm::BasicBlock::getContext(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::SmallPtrSetImpl< PtrType >::insert_range(), ReplaceInstWithInst(), llvm::SmallVectorImpl< T >::reserve(), llvm::Instruction::setDebugLoc(), llvm::Instruction::setMetadata(), llvm::SmallPtrSetImplBase::size(), llvm::BasicBlock::splitBasicBlock(), successors(), and llvm::CallingConv::Tail.

◆ SplitBlockAndInsertIfThenElse() [2/4]

void llvm::SplitBlockAndInsertIfThenElse ( Value * Cond,
BasicBlock::iterator SplitBefore,
Instruction ** ThenTerm,
Instruction ** ElseTerm,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr )

SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen, but also creates the ElseBlock.

Before: Head SplitBefore Tail After: Head if (Cond) ThenBlock else ElseBlock SplitBefore Tail

Updates DT if given.

Definition at line 1471 of file BasicBlockUtils.cpp.

References Cond, llvm::BasicBlock::getTerminator(), and SplitBlockAndInsertIfThenElse().

Referenced by createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), rewriteMemOpOfSelect(), SplitBlockAndInsertIfElse(), SplitBlockAndInsertIfThen(), SplitBlockAndInsertIfThenElse(), SplitBlockAndInsertIfThenElse(), SplitBlockAndInsertIfThenElse(), and versionCallSiteWithCond().

◆ SplitBlockAndInsertIfThenElse() [3/4]

void llvm::SplitBlockAndInsertIfThenElse ( Value * Cond,
Instruction * SplitBefore,
BasicBlock ** ThenBlock,
BasicBlock ** ElseBlock,
bool UnreachableThen = false,
bool UnreachableElse = false,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr )
inline

◆ SplitBlockAndInsertIfThenElse() [4/4]

void llvm::SplitBlockAndInsertIfThenElse ( Value * Cond,
Instruction * SplitBefore,
Instruction ** ThenTerm,
Instruction ** ElseTerm,
MDNode * BranchWeights = nullptr,
DomTreeUpdater * DTU = nullptr,
LoopInfo * LI = nullptr )
inline

◆ SplitBlockAndInsertSimpleForLoop()

std::pair< Instruction *, Value * > llvm::SplitBlockAndInsertSimpleForLoop ( Value * End,
BasicBlock::iterator SplitBefore )

Insert a for (int i = 0; i < End; i++) loop structure (with the exception that End is assumed > 0, and thus not checked on entry) at SplitBefore.

Returns the first insert point in the loop body, and the PHINode for the induction variable (i.e. "i" above).

Definition at line 1568 of file BasicBlockUtils.cpp.

References DL, llvm::Instruction::eraseFromParent(), llvm::BasicBlock::getFirstNonPHIIt(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), IV, and SplitBlock().

Referenced by SplitBlockAndInsertForEachLane(), and SplitBlockAndInsertForEachLane().

◆ splitBlockBefore() [1/2]

◆ splitBlockBefore() [2/2]

BasicBlock * llvm::splitBlockBefore ( BasicBlock * Old,
Instruction * SplitPt,
DomTreeUpdater * DTU,
LoopInfo * LI,
MemorySSAUpdater * MSSAU,
const Twine & BBName = "" )
inline

◆ SplitBlockPredecessors() [1/2]

BasicBlock * llvm::SplitBlockPredecessors ( BasicBlock * BB,
ArrayRef< BasicBlock * > Preds,
const char * Suffix,
DominatorTree * DT,
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).

FIXME: deprecated, switch to the DomTreeUpdater-based one.

Definition at line 1255 of file BasicBlockUtils.cpp.

References SplitBlockPredecessorsImpl().

Referenced by ConnectEpilog(), ConnectProlog(), ehAwareSplitEdge(), foldCondBranchOnValueKnownInPredecessorImpl(), formDedicatedExitBlocks(), InsertPreheaderForLoop(), mergeConditionalStoreToAddress(), normalizeForInvokeSafepoint(), separateNestedLoop(), sinkCommonCodeFromPredecessors(), SplitKnownCriticalEdge(), splitPredecessorsOfLoopExit(), and UnrollRuntimeLoopRemainder().

◆ SplitBlockPredecessors() [2/2]

BasicBlock * llvm::SplitBlockPredecessors ( BasicBlock * BB,
ArrayRef< BasicBlock * > Preds,
const char * Suffix,
DomTreeUpdater * DTU = 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 1263 of file BasicBlockUtils.cpp.

References SplitBlockPredecessorsImpl().

◆ SplitCriticalEdge() [1/2]

BasicBlock * llvm::SplitCriticalEdge ( BasicBlock * Src,
BasicBlock * Dst,
const CriticalEdgeSplittingOptions & Options = CriticalEdgeSplittingOptions() )
inline

If an edge from Src to Dst is critical, split the edge and return true, otherwise return false.

This method requires that there be an edge between the two blocks. It updates the analyses passed in the options struct

Definition at line 237 of file BasicBlockUtils.h.

References assert(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), Options, and SplitCriticalEdge().

◆ SplitCriticalEdge() [2/2]

BasicBlock * llvm::SplitCriticalEdge ( Instruction * TI,
unsigned SuccNum,
const CriticalEdgeSplittingOptions & Options = CriticalEdgeSplittingOptions(),
const Twine & BBName = "" )

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 101 of file BreakCriticalEdges.cpp.

References isCriticalEdge(), Options, and SplitKnownCriticalEdge().

Referenced by DemoteRegToStack(), getInstrBB(), llvm::objcarc::BundledRetainClaimRVs::insertAfterInvokes(), SplitAllCriticalEdges(), and SplitCriticalEdge().

◆ SplitEdge()

◆ SplitIndirectBrCriticalEdges()

◆ SplitKnownCriticalEdge()

BasicBlock * llvm::SplitKnownCriticalEdge ( Instruction * TI,
unsigned SuccNum,
const CriticalEdgeSplittingOptions & Options = CriticalEdgeSplittingOptions(),
const Twine & BBName = "" )

◆ SplitLandingPadPredecessors()

void llvm::SplitLandingPadPredecessors ( BasicBlock * OrigBB,
ArrayRef< BasicBlock * > Preds,
const char * Suffix,
const char * Suffix2,
SmallVectorImpl< BasicBlock * > & NewBBs,
DomTreeUpdater * DTU = 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 1375 of file BasicBlockUtils.cpp.

References SplitLandingPadPredecessorsImpl().

◆ splitLoopBound()

◆ SplitModule()

void llvm::SplitModule ( Module & M,
unsigned N,
function_ref< void(std::unique_ptr< Module > MPart)> ModuleCallback,
bool PreserveLocals = false,
bool RoundRobin = false )

Splits the module M into N linkable partitions.

The function ModuleCallback is called N times passing each individual partition as the MPart argument. PreserveLocals: Split without externalizing locals. RoundRobin: Use round-robin distribution of functions to modules instead of the default name-hash-based one.

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 238 of file SplitModule.cpp.

References CloneModule(), Count, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), externalize(), llvm::GlobalValue::ExternalLinkage, F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), findPartitions(), I, isInPartition(), N, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by splitCodeGen().

◆ splitModuleTransitiveFromEntryPoints()

void llvm::splitModuleTransitiveFromEntryPoints ( std::unique_ptr< Module > M,
function_ref< std::optional< int >(const Function &F)> EntryPointCategorizer,
function_ref< void(std::unique_ptr< Module > Part)> Callback )

Splits the given module M into parts.

Each output part is passed to Callback for further possible processing. Each part corresponds to a subset of the module that is transitively reachable from some entry point group. Each entry point group is defined by EntryPointCategorizer (EPC) as follows: 1) If the function is not an entry point, then the Categorizer returns std::nullopt. Therefore, the function doesn't belong to any group. However, the function and global objects can still be associated with some output parts if they are transitively used from some entry points. 2) If the function belongs to an entry point group, then EPC returns an integer which is an identifier of the group. If two entry points belong to one group, then EPC returns the same identifier for both of them.

Let A and B be global objects in the module. The transitive dependency relation is defined such that: If global object A is used by global object B in any way (e.g., store, bitcast, phi node, call), then "A" -> "B". Transitivity is defined such that: If "A" -> "B" and "B" -> "C", then "A" -> "C". Examples of dependencies:

  • Function FA calls function FB
  • Function FA uses global variable GA
  • Global variable GA references (is initialized with) function FB
  • Function FA stores the address of function FB somewhere

The following cases are treated as dependencies between global objects:

  1. Global object A is used by global object B in any way (store, bitcast, phi node, call, etc.): an "A" -> "B" edge will be added to the graph;
  2. Function A performs an indirect call of a function with signature S, and there is a function B with signature S. An "A" -> "B" edge will be added to the graph;

FIXME: For now, the algorithm assumes no recursion in the input Module. This will be addressed in the near future.

Definition at line 311 of file SplitModuleByCategory.cpp.

References F, and Groups.

◆ 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 52 of file StringExtras.cpp.

References getToken(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by llvm::sys::Process::FindInEnvPath(), llvm::MachO::PackedVersion::parse32(), llvm::MachO::PackedVersion::parse64(), llvm::SPIRV::parseBuiltinTypeNameToTargetExtType(), and llvm::omp::DirectiveNameParser::tokenize().

◆ splitVectorType()

◆ stable_hash_combine() [1/4]

◆ stable_hash_combine() [2/4]

stable_hash llvm::stable_hash_combine ( stable_hash A,
stable_hash B )
inline

Definition at line 36 of file StableHashing.h.

References A(), B(), and stable_hash_combine().

◆ stable_hash_combine() [3/4]

stable_hash llvm::stable_hash_combine ( stable_hash A,
stable_hash B,
stable_hash C )
inline

Definition at line 41 of file StableHashing.h.

References A(), B(), llvm::CallingConv::C, and stable_hash_combine().

◆ stable_hash_combine() [4/4]

stable_hash llvm::stable_hash_combine ( stable_hash A,
stable_hash B,
stable_hash C,
stable_hash D )
inline

Definition at line 47 of file StableHashing.h.

References A(), B(), llvm::CallingConv::C, D(), and stable_hash_combine().

◆ stable_hash_name()

stable_hash llvm::stable_hash_name ( StringRef Name)
inline

Definition at line 71 of file StableHashing.h.

References get_stable_name(), and xxh3_64bits().

Referenced by stableHashValue().

◆ stable_sort() [1/2]

template<typename R>
void llvm::stable_sort ( R && Range)

Definition at line 2038 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

Referenced by llvm::hlsl::BindingInfoBuilder::calculateBindingInfo(), checkIntegrityScopesTree(), clusterSortPtrAccesses(), collectMultiplyFactors(), CombineBaseUpdate(), ComputeASanStackFrameLayout(), llvm::safestack::StackLayout::computeLayout(), llvm::symbolize::SymbolizableObjectFile::create(), llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), eliminateConstraints(), llvm::MCDwarfFrameEmitter::Emit(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::WindowScheduler::expand(), llvm::AccelTableBase::finalize(), llvm::gsym::GsymCreator::finalize(), llvm::StableFunctionMap::finalize(), findExtractedOutputToOverallOutputMapping(), llvm::MDAttachments::getAll(), getCodeExtractorArguments(), llvm::TargetLowering::getConstraintPreferences(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getSortedConstantKeys(), getStableFunctionEntries(), GroupByComplexity(), layoutSections(), layoutSectionsForOnlyKeepDebug(), llvm::xray::loadTrace(), optimizeGlobalCtorsList(), llvm::AArch64FrameLowering::orderFrameObjects(), llvm::HexagonFrameLowering::orderFrameObjects(), llvm::SystemZELFFrameLowering::orderFrameObjects(), llvm::X86FrameLowering::orderFrameObjects(), orderSegments(), llvm::DWARFDebugLine::LineTable::parse(), llvm::gsym::GsymCreator::prepareMergedFunctions(), llvm::AsmPrinter::preprocessXXStructorList(), llvm::logicalview::LVScopeCompileUnit::printMatchedElements(), llvm::BitcodeAnalyzer::printStats(), rebuildLoopAfterUnswitch(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::BalancedPartitioning::run(), llvm::sampleprof::SampleSorter< LocationT, SampleT >::SampleSorter(), llvm::SwingSchedulerDAG::schedule(), sinkLoopInvariantInstructions(), llvm::logicalview::LVRange::sort(), llvm::logicalview::LVScope::sort(), llvm::InstrProfValueSiteRecord::sortByCount(), llvm::sampleprof::sortFuncProfiles(), llvm::object::ELFFile< ELFT >::toMappedAddr(), llvm::HexagonShuffler::tryAuction(), llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(), tryToVectorizeSequence(), llvm::HexagonShuffler::ValidResourceUsage(), llvm::coverage::CoverageMappingWriter::write(), llvm::mcdxbc::Signature::write(), and llvm::objcopy::elf::BinaryWriter::write().

◆ stable_sort() [2/2]

template<typename R, typename Compare>
void llvm::stable_sort ( R && Range,
Compare C )

Definition at line 2043 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.

◆ stableHashValue() [1/4]

◆ stableHashValue() [2/4]

◆ stableHashValue() [3/4]

stable_hash llvm::stableHashValue ( const MachineInstr & MI,
bool HashVRegs = false,
bool HashConstantPoolIndices = false,
bool HashMemOperands = false )

A stable hash value for machine instructions.

Returns 0 if no stable hash could be computed. The hashing and equality testing functions ignore definitions so this is useful for CSE, etc.

Definition at line 187 of file MachineStableHash.cpp.

References MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), stable_hash_combine(), and stableHashValue().

◆ stableHashValue() [4/4]

stable_hash llvm::stableHashValue ( const MachineOperand & MO)

Definition at line 59 of file MachineStableHash.cpp.

References assert(), llvm::APFloat::bitcastToAPInt(), dyn_cast(), llvm::MachineOperand::getCFIIndex(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getInstrRefInstrIndex(), llvm::MachineOperand::getInstrRefOpIndex(), llvm::MachineOperand::getIntrinsicID(), llvm::MachineOperand::getMCSymbol(), llvm::MachineInstr::getMF(), llvm::MCSymbol::getName(), llvm::Value::getName(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getPredicate(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::getRegMask(), llvm::MachineOperand::getRegMaskSize(), llvm::MachineOperand::getShuffleMask(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getTargetFlags(), llvm::MachineOperand::getTargetIndexName(), llvm::MachineOperand::getType(), llvm::ConstantInt::getValue(), llvm::ConstantFP::getValueAPF(), llvm::Value::hasName(), llvm::Register::id(), llvm::MachineOperand::isCImm(), llvm::MachineOperand::isDef(), llvm::Register::isVirtual(), llvm_unreachable, MBB, MI, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_DbgInstrRef, 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, llvm::MachineOperand::MO_ShuffleMask, llvm::MachineOperand::MO_TargetIndex, MRI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), stable_hash_combine(), stable_hash_name(), StructuralHash(), transform(), and TRI.

Referenced by getMatchedEntries(), stableHashValue(), stableHashValue(), and stableHashValue().

◆ StaticLikelyProb()

cl::opt< unsigned > llvm::StaticLikelyProb ( "static-likely-prob" ,
cl::desc("branch probability threshold in percentage" " to be considered very likely") ,
cl::init(80) ,
cl::Hidden  )

◆ STATISTIC() [1/8]

llvm::STATISTIC ( NumAllocas ,
"Total number of allocas"  )

◆ STATISTIC() [2/8]

llvm::STATISTIC ( NumFunctions ,
"Total number of functions"  )

◆ STATISTIC() [3/8]

llvm::STATISTIC ( NumUnsafeByValArguments ,
"Number of unsafe byval arguments"  )

◆ STATISTIC() [4/8]

llvm::STATISTIC ( NumUnsafeDynamicAllocas ,
"Number of unsafe dynamic allocas"  )

◆ STATISTIC() [5/8]

llvm::STATISTIC ( NumUnsafeStackFunctions ,
"Number of functions with unsafe stack"  )

◆ STATISTIC() [6/8]

llvm::STATISTIC ( NumUnsafeStackRestorePoints ,
"Number of setjmps and landingpads"  )

◆ STATISTIC() [7/8]

llvm::STATISTIC ( NumUnsafeStackRestorePointsFunctions ,
"Number of functions that use setjmp or exceptions"  )

◆ STATISTIC() [8/8]

llvm::STATISTIC ( NumUnsafeStaticAllocas ,
"Number of unsafe static allocas"  )

◆ storageClassToAddressSpace()

unsigned llvm::storageClassToAddressSpace ( SPIRV::StorageClass::StorageClass SC)
constexpr

◆ StoreIntToMemory()

void llvm::StoreIntToMemory ( const APInt & IntVal,
uint8_t * Dst,
unsigned StoreBytes )

StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst with the integer held in IntVal.

Definition at line 3051 of file APInt.cpp.

References assert(), and llvm::sys::IsLittleEndianHost.

Referenced by llvm::MCStreamer::emitIntValue(), and llvm::ExecutionEngine::StoreValueToMemory().

◆ storeToSameAddress()

bool llvm::storeToSameAddress ( ScalarEvolution * SE,
StoreInst * A,
StoreInst * B )
static

Returns true if A and B have same pointer operands or same SCEVs addresses.

Definition at line 439 of file LoopVectorizationLegality.cpp.

References A(), B(), and llvm::ScalarEvolution::getSCEV().

◆ StrCmpOptionName()

int llvm::StrCmpOptionName ( StringRef A,
StringRef B,
bool FallbackCaseSensitive = true )

Definition at line 20 of file OptionStrCmp.cpp.

References A(), and B().

Referenced by StrCmpOptionPrefixes().

◆ StrCmpOptionPrefixes()

int llvm::StrCmpOptionPrefixes ( ArrayRef< StringRef > APrefixes,
ArrayRef< StringRef > BPrefixes )

Definition at line 35 of file OptionStrCmp.cpp.

References StrCmpOptionName(), and zip().

◆ streamFile()

◆ stringToVEFCondCode()

◆ stringToVEICondCode()

◆ stringToVERD()

◆ 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.

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 23 of file StringExtras.cpp.

References llvm::StringRef::equals_insensitive(), N, llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().

◆ stripDebugifyMetadata()

bool llvm::stripDebugifyMetadata ( Module & M)

◆ 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 566 of file DebugInfo.cpp.

References Changed, F, make_early_inc_range(), and stripDebugInfo().

Referenced by LLVMStripModuleDebugInfo(), llvm::StripSymbolsPass::run(), stripDebugifyMetadata(), UpgradeDebugInfo(), and verifyLoadedModule().

◆ stripDebugInfo()

◆ stripDirPrefix()

StringRef llvm::stripDirPrefix ( StringRef PathNameStr,
uint32_t NumPrefix )
static

◆ 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 806 of file DebugInfo.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, cast(), Changed, DL, dyn_cast_or_null(), F, llvm::MDNode::get(), llvm::NamedMDNode::getName(), I, and updateLoopMetadataDebugLocations().

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

◆ stripNullTest() [1/2]

◆ stripNullTest() [2/2]

Value * llvm::stripNullTest ( Value * V)

Returns the inner value X if the expression has the form f(X) where f(X) == 0 if and only if X == 0, otherwise returns nullptr.

Definition at line 10275 of file ValueTracking.cpp.

References stripNullTest().

Referenced by llvm::InstCombinerImpl::foldICmpWithZero(), isKnownNonZero(), and stripNullTest().

◆ StripTemplateParameters()

std::optional< StringRef > llvm::StripTemplateParameters ( StringRef Name)

If Name is the name of a templated function that includes template parameters, returns a substring of Name containing no template parameters.

E.g.: StripTemplateParameters("foo<int>") = "foo".

Definition at line 1113 of file DWARFAcceleratorTable.cpp.

Referenced by getNames(), and llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::save().

◆ StructuralHash() [1/3]

stable_hash llvm::StructuralHash ( const Function & F,
bool DetailedHash = false )

Returns a hash of the function F.

Parameters
FThe function to hash.
DetailedHashWhether or not to encode additional information in the hash. The additional information added into the hash when this flag is set to true includes instruction and operand type information.

Definition at line 329 of file StructuralHash.cpp.

References F, and H.

Referenced by llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), llvm::StructuralHashPrinterPass::run(), PreservedFunctionHashAnalysis::run(), PreservedModuleHashAnalysis::run(), and stableHashValue().

◆ StructuralHash() [2/3]

stable_hash llvm::StructuralHash ( const GlobalVariable & G)

Returns a hash of the global variable G.

Definition at line 335 of file StructuralHash.cpp.

◆ StructuralHash() [3/3]

stable_hash llvm::StructuralHash ( const Module & M,
bool DetailedHash = false )

Returns a hash of the module M by hashing all functions and global variables contained within.

Parameters
MThe module to hash.
DetailedHashWhether or not to encode additional information in the function hashes that composed the module hash.

Definition at line 339 of file StructuralHash.cpp.

References H.

◆ StructuralHashWithDifferences()

FunctionHashInfo llvm::StructuralHashWithDifferences ( const Function & F,
IgnoreOperandFunc IgnoreOp )

Computes a structural hash of a given function, considering the structure and content of the function's instructions while allowing for selective ignoring of certain operands based on custom criteria.

This hash can be used to identify functions that are structurally similar or identical, which is useful in optimizations, deduplication, or analysis tasks.

Parameters
FThe function to hash.
IgnoreOpA callable that takes an instruction and an operand index, and returns true if the operand should be ignored in the hash computation.
Returns
A FunctionHashInfo structure

Definition at line 346 of file StructuralHash.cpp.

References F, and H.

Referenced by llvm::GlobalMergeFunc::analyze(), llvm::GlobalMergeFunc::merge(), and llvm::StructuralHashPrinterPass::run().

◆ SubOverflow()

template<typename T>
std::enable_if_t< std::is_signed_v< T >, T > llvm::SubOverflow ( T X,
T Y,
T & Result )

Subtract two signed integers, computing the two's complement truncated result, returning true if an overflow occurred.

Definition at line 738 of file MathExtras.h.

References T, X, and Y.

Referenced by llvm::detail::CheckedInt::operator-(), llvm::DynamicAPInt::operator-(), llvm::DynamicAPInt::operator-=(), llvm::InstructionCost::operator-=(), and llvm::ConstraintSystem::toStrictLessThan().

◆ succ_begin() [1/6]

succ_iterator llvm::succ_begin ( BasicBlock * BB)
inline

Definition at line 269 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_begin() [2/6]

const_succ_iterator llvm::succ_begin ( const BasicBlock * BB)
inline

Definition at line 272 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_begin() [3/6]

const_succ_iterator llvm::succ_begin ( const Instruction * I)
inline

Definition at line 249 of file CFG.h.

References I.

◆ succ_begin() [4/6]

auto llvm::succ_begin ( const MachineBasicBlock * BB)
inline

Definition at line 1427 of file MachineBasicBlock.h.

References llvm::MachineBasicBlock::succ_begin().

◆ succ_begin() [5/6]

succ_iterator llvm::succ_begin ( Instruction * I)
inline

Definition at line 248 of file CFG.h.

References I.

◆ succ_begin() [6/6]

◆ succ_empty() [1/2]

bool llvm::succ_empty ( const BasicBlock * BB)
inline

Definition at line 281 of file CFG.h.

References succ_begin(), and succ_end().

◆ succ_empty() [2/2]

◆ succ_end() [1/6]

succ_iterator llvm::succ_end ( BasicBlock * BB)
inline

Definition at line 275 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_end() [2/6]

const_succ_iterator llvm::succ_end ( const BasicBlock * BB)
inline

Definition at line 278 of file CFG.h.

References llvm::BasicBlock::getTerminator().

◆ succ_end() [3/6]

const_succ_iterator llvm::succ_end ( const Instruction * I)
inline

Definition at line 253 of file CFG.h.

References I.

◆ succ_end() [4/6]

auto llvm::succ_end ( const MachineBasicBlock * BB)
inline

Definition at line 1429 of file MachineBasicBlock.h.

References llvm::MachineBasicBlock::succ_end().

◆ succ_end() [5/6]

succ_iterator llvm::succ_end ( Instruction * I)
inline

Definition at line 252 of file CFG.h.

References I.

◆ succ_end() [6/6]

◆ succ_size() [1/3]

unsigned llvm::succ_size ( const BasicBlock * BB)
inline

Definition at line 284 of file CFG.h.

References succ_begin(), and succ_end().

◆ succ_size() [2/3]

unsigned llvm::succ_size ( const Instruction * I)
inline

Definition at line 259 of file CFG.h.

References I, succ_begin(), and succ_end().

◆ succ_size() [3/3]

◆ succeeded()

bool llvm::succeeded ( LogicalResult Result)
inline

Utility function that returns true if the provided LogicalResult corresponds to a success value.

Definition at line 67 of file LogicalResult.h.

Referenced by llvm::AArch64InstrInfo::optimizeCompareInstr(), llvm::lsp::JSONTransportInputOverFile::readDelimitedMessage(), and llvm::lsp::JSONTransport::run().

◆ success() [1/2]

LogicalResult llvm::success ( bool IsSuccess = true)
inline

Utility function to generate a LogicalResult.

If isSuccess is true a success result is generated, otherwise a 'failure' result is generated.

Definition at line 55 of file LogicalResult.h.

References llvm::LogicalResult::success().

Referenced by llvm::DataExtractor::Cursor::Cursor(), llvm::pdb::DIASession::getLoadAddress(), and llvm::FailureOr< T >::operator LogicalResult().

◆ success() [2/2]

template<typename T, typename = std::enable_if_t<!std::is_convertible_v<T, bool>>>
auto llvm::success ( T && Y)
inline

Wrap a value on the success path in a FailureOr of the same value type.

Definition at line 104 of file LogicalResult.h.

References T, and Y.

◆ successors() [1/5]

succ_range llvm::successors ( BasicBlock * BB)
inline

Definition at line 287 of file CFG.h.

References succ_begin(), and succ_end().

◆ successors() [2/5]

const_succ_range llvm::successors ( const BasicBlock * BB)
inline

Definition at line 290 of file CFG.h.

References succ_begin(), and succ_end().

◆ successors() [3/5]

const_succ_range llvm::successors ( const Instruction * I)
inline

Definition at line 265 of file CFG.h.

References I, succ_begin(), and succ_end().

◆ successors() [4/5]

auto llvm::successors ( const MachineBasicBlock * BB)
inline

Definition at line 1421 of file MachineBasicBlock.h.

References llvm::MachineBasicBlock::successors().

Referenced by llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(), allPathsGoThroughCold(), analyzeLoopUnrollCost(), buildClonedLoopBlocks(), calculateCXXStateForAsynchEH(), calculateSEHStateForAsynchEH(), CalculateUnswitchCostMultiplier(), canProveExitOnFirstIteration(), canReturn(), llvm::PreservedCFGCheckerInstrumentation::CFG::CFG(), changeToUnreachable(), llvm::MemorySSAUpdater::changeToUnreachable(), CloneAndPruneIntoFromInst(), collectInstructionsInBetween(), colorEHFunclets(), llvm::InstCombiner::computeBackEdges(), computeEHOnlyBlocks(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), computeLiveInValues(), computeLiveOutSeed(), computeUnlikelySuccessors(), ConnectEpilog(), ConnectProlog(), ConstantFoldTerminator(), createUnreachableSwitchDefault(), llvm::DCData::DCData(), llvm::DCData::DCData(), deleteDeadBlocksFromLoop(), deleteDeadClonedBlocks(), DemoteRegToStack(), detachDeadBlocks(), DuplicateInstructionsInSplitBetween(), findBestNonTrivialUnswitchCandidate(), findDependencies(), findExtractedOutputToOverallOutputMapping(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), findMostPopularDest(), llvm::FunctionPropertiesUpdater::finish(), foldBranchToCommonDest(), foldTwoEntryPHINode(), formDedicatedExitBlocks(), llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(), getCommonExitBlock(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::GenericCycle< ContextT >::getExitBlocks(), getExitFor(), llvm::GenericCycle< ContextT >::getExitingBlocks(), getOutliningPenalty(), llvm::BranchProbabilityInfo::SccInfo::getSccExitBlocks(), llvm::afdo_detail::IRTraits< BasicBlock >::getSuccessors(), getSuccState(), llvm::InstCombinerImpl::handlePotentiallyDeadSuccessors(), llvm::InstCombinerImpl::handleUnreachableFrom(), hasPartialIVCondition(), inferInitializes(), initBranchWeights(), isFullDominator(), isNotInCycle(), isSafeToHoistInvoke(), llvm::BasicBlockEdge::isSingleEdge(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::isUpdateValid(), markAliveBlocks(), markTails(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), MergeBlockIntoPredecessor(), mergeCompatibleInvokesImpl(), llvm::MemorySSAUpdater::moveAllAfterMergeBlocks(), llvm::MemorySSAUpdater::moveAllAfterSpliceBlocks(), optimizeDivRem(), partitionLoopBlocks(), llvm::InstCombinerImpl::prepareWorklist(), llvm::BranchProbabilityInfo::print(), processSwitch(), llvm::JumpThreadingPass::processThreadableEdges(), llvm::ProfileAnnotatorImpl::ProfileAnnotatorImpl(), remapIndices(), llvm::MemorySSAUpdater::removeBlocks(), llvm::SCCPSolver::removeNonFeasibleEdges(), rewriteMemOpOfSelect(), llvm::PlaceSafepointsPass::runImpl(), runMoveAutoInit(), safeToMergeTerminators(), scanOneBB(), simplifyOneLoop(), SplitBlockAndInsertIfThenElse(), SplitBlockImpl(), SplitIndirectBrCriticalEdges(), SplitKnownCriticalEdge(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), UnrollLoop(), UnrollRuntimeLoopRemainder(), updateSuccessor(), llvm::GenericConvergenceVerifier< ContextT >::verify(), visit(), and willLeaveFunctionImmediatelyAfter().

◆ successors() [5/5]

succ_range llvm::successors ( Instruction * I)
inline

Definition at line 262 of file CFG.h.

References I, succ_begin(), and succ_end().

◆ SupportsHotColdNew()

cl::opt< bool > llvm::SupportsHotColdNew ( "supports-hot-cold-new" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Linking with hot/cold operator new interfaces")  )

◆ supportsPackedMode()

bool llvm::supportsPackedMode ( unsigned Opcode,
EVT IdiomVT )

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode. VVPOPC is the VVP_* SDNode opcode.

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator. SDNAME is the generic SD opcode corresponding to VVPName.

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator. SDNAME is the generic SD opcode corresponding to VVPName.

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation. SDNAME The standard opcode of the operation.

Reductions.

Definition at line 101 of file VECustomDAG.cpp.

References isMaskType(), isPackedVectorType(), and llvm::VEISD::VEC_BROADCAST.

Referenced by llvm::VETargetLowering::legalizeInternalVectorOp().

◆ SwpEnableCopyToPhi()

cl::opt< bool > llvm::SwpEnableCopyToPhi ( "pipeliner-enable-copytophi" ,
cl::ReallyHidden ,
cl::init(true) ,
cl::desc("Enable CopyToPhi DAG Mutation")  )

◆ SwpForceIssueWidth()

cl::opt< int > llvm::SwpForceIssueWidth ( "pipeliner-force-issue-width" ,
cl::desc("Force pipeliner to use specified issue width.") ,
cl::Hidden ,
cl::init(-1)  )

A command line argument to force pipeliner to use specified issue width.

References llvm::cl::Hidden, and llvm::cl::init().

◆ t1CondCodeOp()

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 555 of file ARMBaseInstrInfo.h.

References llvm::MachineOperand::CreateReg(), and isDead().

Referenced by emitPostLd(), emitPostSt(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), and insertSEH().

◆ TableGenMain()

◆ TableGenParseFile()

bool llvm::TableGenParseFile ( SourceMgr & InputSrcMgr,
RecordKeeper & Records )

Parse the TableGen file defined within the main buffer of the given SourceMgr.

On success, populates the provided RecordKeeper with the parsed records and returns false. On failure, returns true.

NOTE: TableGen currently relies on global state within a given parser invocation, so this function is not thread-safe.

Definition at line 16 of file Parser.cpp.

References llvm::SourceMgr::getDiagContext(), llvm::SourceMgr::getDiagHandler(), llvm::SourceMgr::getIncludeDirs(), SrcMgr, and llvm::SourceMgr::takeSourceBuffersFrom().

◆ tensorValueToString()

std::string llvm::tensorValueToString ( const char * Buffer,
const TensorSpec & Spec )

For debugging.

Definition at line 107 of file TensorSpec.cpp.

References _IMR_DBG_PRINTER, Invalid, llvm_unreachable, SUPPORTED_TENSOR_TYPES, and Total.

◆ thinLTOFinalizeInModule()

void llvm::thinLTOFinalizeInModule ( Module & TheModule,
const GVSummaryMapTy & DefinedGlobals,
bool PropagateAttrs )

Based on the information recorded in the summaries during global summary-based analysis:

  1. Resolve prevailing symbol linkages and constrain visibility (CanAutoHide and consider visibility from other definitions for ELF) in TheModule
  2. (optional) Apply propagated function attributes to TheModule if PropagateAttrs is true

Definition at line 1666 of file FunctionImport.cpp.

References llvm::Module::aliases(), assert(), llvm::GlobalValue::AvailableExternallyLinkage, llvm::CallingConv::C, llvm::GlobalValue::canBeOmittedFromSymbolTable(), Changed, convertToDeclaration(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), dbgs(), llvm::GlobalValue::DefaultVisibility, dyn_cast(), dyn_cast_or_null(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::GlobalValue::getAliaseeObject(), llvm::GlobalValue::getGUID(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::Module::global_objects(), llvm::Module::globals(), llvm::GlobalValue::hasAvailableExternallyLinkage(), llvm::GlobalValue::HiddenVisibility, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::GlobalValue::isAvailableExternallyLinkage(), llvm::GlobalValue::isDeclaration(), llvm::GlobalValue::isInterposableLinkage(), llvm::GlobalValue::isLocalLinkage(), LLVM_DEBUG, llvm_unreachable, PropagateAttrs, llvm::GlobalValue::setLinkage(), llvm::GlobalValue::setVisibility(), and llvm::GlobalValue::WeakODRLinkage.

Referenced by llvm::ThinLTOCodeGenerator::internalize(), ProcessThinLTOModule(), llvm::ThinLTOCodeGenerator::promote(), and llvm::lto::thinBackend().

◆ thinLTOInternalizeAndPromoteInIndex()

void llvm::thinLTOInternalizeAndPromoteInIndex ( ModuleSummaryIndex & Index,
function_ref< bool(StringRef, ValueInfo)> isExported,
function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing )

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 548 of file LTO.cpp.

References I, and thinLTOInternalizeAndPromoteGUID().

Referenced by llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::ThinLTOCodeGenerator::run().

◆ thinLTOInternalizeModule()

◆ thinLTOPropagateFunctionAttrs()

◆ thinLTOResolvePrevailingInIndex()

void llvm::thinLTOResolvePrevailingInIndex ( const lto::Config & C,
ModuleSummaryIndex & Index,
function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing,
function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage,
const DenseSet< GlobalValue::GUID > & GUIDPreservedSymbols )

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 thinLTOFinalizeInModule.

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 447 of file LTO.cpp.

References llvm::CallingConv::C, dyn_cast(), I, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), and thinLTOResolvePrevailingGUID().

Referenced by resolvePrevailingInIndex().

◆ timeTraceAddInstantEvent()

void llvm::timeTraceAddInstantEvent ( StringRef Name,
llvm::function_ref< std::string()> Detail )

Definition at line 485 of file TimeProfiler.cpp.

References TimeTraceProfilerInstance.

◆ timeTraceAsyncProfilerBegin()

TimeTraceProfilerEntry * llvm::timeTraceAsyncProfilerBegin ( StringRef Name,
StringRef Detail )

Manually begin a time section, with the given Name and Detail.

This starts Async Events having Name as a category which is shown separately from other traces. See https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.jh64i9l3vwa1 for more details.

Definition at line 476 of file TimeProfiler.cpp.

References AsyncEvent, and TimeTraceProfilerInstance.

◆ timeTraceProfilerBegin() [1/3]

TimeTraceProfilerEntry * llvm::timeTraceProfilerBegin ( StringRef Name,
llvm::function_ref< std::string()> Detail )

Definition at line 459 of file TimeProfiler.cpp.

References CompleteEvent, and TimeTraceProfilerInstance.

◆ timeTraceProfilerBegin() [2/3]

TimeTraceProfilerEntry * llvm::timeTraceProfilerBegin ( StringRef Name,
llvm::function_ref< TimeTraceMetadata()> MetaData )

Definition at line 468 of file TimeProfiler.cpp.

References CompleteEvent, and TimeTraceProfilerInstance.

◆ timeTraceProfilerBegin() [3/3]

TimeTraceProfilerEntry * llvm::timeTraceProfilerBegin ( StringRef Name,
StringRef Detail )

Manually begin a time section, with the given Name and Detail.

Profiler copies the string data, so the pointers can be given into temporaries. Time sections can be hierarchical; every Begin must have a matching End pair but they can nest.

Definition at line 449 of file TimeProfiler.cpp.

References CompleteEvent, and TimeTraceProfilerInstance.

Referenced by llvm::ThinLTOCodeGenerator::run(), llvm::TimeTraceScope::TimeTraceScope(), llvm::TimeTraceScope::TimeTraceScope(), llvm::TimeTraceScope::TimeTraceScope(), and llvm::TimeTraceScope::TimeTraceScope().

◆ timeTraceProfilerCleanup()

void llvm::timeTraceProfilerCleanup ( )

Cleanup the time trace profiler, if it was initialized.

Definition at line 403 of file TimeProfiler.cpp.

References TimeTraceProfilerInstance.

◆ timeTraceProfilerEnabled()

bool llvm::timeTraceProfilerEnabled ( )
inline

Is the time trace profiler enabled, i.e. initialized?

Definition at line 130 of file TimeProfiler.h.

References getTimeTraceProfilerInstance().

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

◆ timeTraceProfilerEnd() [1/2]

void llvm::timeTraceProfilerEnd ( )

Manually end the last time section.

Definition at line 491 of file TimeProfiler.cpp.

References TimeTraceProfilerInstance.

Referenced by llvm::ThinLTOCodeGenerator::run(), and llvm::TimeTraceScope::~TimeTraceScope().

◆ timeTraceProfilerEnd() [2/2]

void llvm::timeTraceProfilerEnd ( TimeTraceProfilerEntry * E)

Definition at line 496 of file TimeProfiler.cpp.

References TimeTraceProfilerInstance.

◆ timeTraceProfilerFinishThread()

void llvm::timeTraceProfilerFinishThread ( )

Finish a time trace profiler running on a worker thread.

Definition at line 416 of file TimeProfiler.cpp.

References TimeTraceProfilerInstance.

◆ timeTraceProfilerInitialize()

void llvm::timeTraceProfilerInitialize ( unsigned TimeTraceGranularity,
StringRef ProcName,
bool TimeTraceVerbose = false )

Initialize the time trace profiler.

This sets up the global TimeTraceProfilerInstance variable to be the profiler instance.

Definition at line 391 of file TimeProfiler.cpp.

References assert(), llvm::sys::path::filename(), and TimeTraceProfilerInstance.

◆ timeTraceProfilerWrite() [1/2]

void llvm::timeTraceProfilerWrite ( raw_pwrite_stream & OS)

Write profiling data to output stream.

Data produced is JSON, in Chrome "Trace Event" format, see https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview

Definition at line 423 of file TimeProfiler.cpp.

References assert(), and TimeTraceProfilerInstance.

Referenced by timeTraceProfilerWrite().

◆ timeTraceProfilerWrite() [2/2]

Error llvm::timeTraceProfilerWrite ( StringRef PreferredFileName,
StringRef FallbackFileName )

Write profiling data to a file.

The function will write to PreferredFileName if provided, if not then will write to FallbackFileName appending .time-trace. Returns a StringError indicating a failure if the function is unable to open the file for writing.

Definition at line 429 of file TimeProfiler.cpp.

References assert(), createStringError(), llvm::sys::fs::OF_TextWithCRLF, llvm::StringRef::str(), llvm::Error::success(), TimeTraceProfilerInstance, and timeTraceProfilerWrite().

◆ to_address() [1/2]

template<class Ptr>
auto llvm::to_address ( const Ptr & P)

Returns a raw pointer that represents the same address as the argument.

This implementation can be removed once we move to C++20 where it's defined as std::to_address().

The std::pointer_traits<>::to_address(p) variations of these overloads has not been implemented.

Definition at line 2590 of file STLExtras.h.

References P, and Ptr.

◆ to_address() [2/2]

template<class T>
T * llvm::to_address ( T * P)
constexpr

Definition at line 2591 of file STLExtras.h.

References P, and T.

◆ to_float() [1/3]

bool llvm::to_float ( const Twine & T,
double & Num )
inline

Definition at line 314 of file StringExtras.h.

References T, and llvm::detail::to_float().

◆ to_float() [2/3]

bool llvm::to_float ( const Twine & T,
float & Num )
inline

Definition at line 310 of file StringExtras.h.

References T, and llvm::detail::to_float().

Referenced by parseDouble().

◆ to_float() [3/3]

bool llvm::to_float ( const Twine & T,
long double & Num )
inline

Definition at line 318 of file StringExtras.h.

References T, and llvm::detail::to_float().

◆ 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 292 of file StringExtras.h.

References llvm::sampleprof::Base, llvm::StringRef::getAsInteger(), and N.

Referenced by collectMetadataInfo(), getDefaultDebuginfodTimeout(), parseAddrSpace(), parseAlignment(), parseAnnotation(), parseDebugType(), and parseSize().

◆ to_string() [1/2]

template<class T>
std::string llvm::to_string ( const T & Value)

Definition at line 95 of file ScopedPrinter.h.

References T.

◆ to_string() [2/2]

◆ to_underlying()

◆ to_vector() [1/2]

◆ to_vector() [2/2]

template<typename R>
SmallVector< ValueTypeFromRangeType< R > > llvm::to_vector ( R && Range)

Definition at line 1304 of file SmallVector.h.

References Range, and to_vector().

◆ to_vector_of() [1/2]

template<typename Out, unsigned Size, typename R>
SmallVector< Out, Size > llvm::to_vector_of ( R && Range)

Definition at line 1309 of file SmallVector.h.

References Range, and to_vector_of().

Referenced by to_vector_of().

◆ to_vector_of() [2/2]

template<typename Out, typename R>
SmallVector< Out > llvm::to_vector_of ( R && Range)

Definition at line 1313 of file SmallVector.h.

References Range, and to_vector_of().

◆ toCABI()

◆ toHex() [1/3]

◆ toHex() [2/3]

std::string llvm::toHex ( ArrayRef< uint8_t > Input,
bool LowerCase = false )
inline

Definition at line 208 of file StringExtras.h.

References toHex().

◆ toHex() [3/3]

std::string llvm::toHex ( StringRef Input,
bool LowerCase = false )
inline

Definition at line 214 of file StringExtras.h.

References arrayRefFromStringRef(), and toHex().

◆ toIRString()

const char * llvm::toIRString ( AtomicOrdering ao)
inline

String used by LLVM IR to represent atomic ordering.

Definition at line 82 of file AtomicOrdering.h.

Referenced by llvm::MachineMemOperand::print().

◆ toLower()

◆ toScalarizedStructTy()

Type * llvm::toScalarizedStructTy ( StructType * StructTy)

A helper for converting structs of vector types to structs of scalar types.

Note: Only unpacked literal struct types are supported.

Definition at line 32 of file VectorTypeUtils.cpp.

References assert(), llvm::StructType::elements(), llvm::StructType::get(), llvm::Type::getContext(), isUnpackedStructLiteral(), and map_to_vector().

Referenced by toScalarizedTy().

◆ toScalarizedTy()

Type * llvm::toScalarizedTy ( Type * Ty)
inline

A helper for converting vectorized types to scalarized (non-vector) types.

For vector types, this is equivalent to calling .getScalarType(). For struct types, this returns a new struct where each element type has been converted to a scalar type. Note: Only unpacked literal struct types are supported.

Definition at line 65 of file VectorTypeUtils.h.

References dyn_cast(), and toScalarizedStructTy().

Referenced by llvm::BasicTTIImplBase< BasicTTIImpl >::getTypeBasedIntrinsicInstrCost().

◆ toString() [1/5]

std::string llvm::toString ( const APInt & I,
unsigned Radix,
bool Signed,
bool formatAsCLiteral = false,
bool UpperCase = true,
bool InsertSeparators = false )
inline

Definition at line 344 of file StringExtras.h.

References I, and Signed.

Referenced by llvm::CodeGenTargetMachineImpl::addAsmPrinter(), addConstantComments(), llvm::ThinLTOCodeGenerator::addModule(), llvm::SpecialCaseList::addSection(), APIntToHexString(), llvm::DWARFUnit::collectAddressRanges(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), createError(), createError(), llvm::LTOModule::createInputFile(), decodeBBAddrMapImpl(), llvm::object::CompressedOffloadBundle::decompress(), dumpAttribute(), dumpResult(), llvm::DWARFYAML::emitDebugAddr(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::AMDGPUTargetELFStreamer::EmitISAVersion(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), encodeError(), llvm::cl::ExpandResponseFiles(), llvm::cl::expandResponseFiles(), llvm::DWARFDebugArangeSet::extract(), llvm::DWARFDebugNames::Header::extract(), llvm::DWARFDebugPubTable::extract(), llvm::DWARFListTableHeader::extract(), llvm::object::extractOffloadBundleFatBinary(), llvm::DWARFDebugAddrTable::extractV5(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::orc::EPCGenericRTDyldMemoryManager::finalizeMemory(), fixupIndexV4(), fixupIndexV5(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::object::getExtendedSymbolTableIndex(), llvm::object::XCOFFObjectFile::getImportFileTable(), getInstrStrFromOpNo(), llvm::object::ELFFile< ELFT >::getLinkAsStrtab(), llvm::object::XCOFFObjectFile::getRawData(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::object::XCOFFObjectFile::getSectionContents(), llvm::object::XCOFFObjectFile::getSectionFileOffsetToRawData(), getUniqueInternalLinkagePostfix(), llvm::object::ELFFile< ELFT >::getVersionDefinitions(), llvm::object::ELFFile< ELFT >::getVersionDependencies(), llvm::jitlink::COFFLinkGraphBuilder::graphifySymbols(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), llvm::FunctionImporter::importFunctions(), llvm::SIMachineFunctionInfo::initializeBaseYamlFields(), llvm::dwarf_linker::classic::DWARFLinker::link(), LLVMCreateBinary(), LLVMMachOUniversalBinaryCopyObjectForArch(), llvm::cas::ObjectStore::load(), localCache(), llvm::LTOCodeGenerator::optimize(), llvm::DWARFDebugLine::Prologue::parse(), llvm::SpecialCaseList::parse(), parseInfoSectionUnitHeader(), parseModule(), parseV5EntryFormat(), llvm::object::WasmSymbol::print(), llvm::SpillPlacement::BlockConstraint::print(), llvm::WebAssemblyInstPrinter::printOperand(), promoteIndirectCalls(), readBBAddrMapImpl(), readDynsymVersionsImpl(), llvm::offloading::readPropertiesFromJSON(), readPropertyValueFromJSON(), llvm::BitstreamCursor::readRecord(), llvm::object::XCOFFObjectFile::relocations(), llvm::orc::EPCGenericRTDyldMemoryManager::reserveAllocationSpace(), llvm::RuntimeDyldImpl::resolveRelocations(), llvm::CtxProfAnalysis::run(), llvm::JumpTableToSwitchPass::run(), llvm::lsp::JSONTransport::run(), llvm::ThinLTOCodeGenerator::run(), runNewPMPasses(), llvm::object::ELFObjectFile< ELFT >::section_rel_begin(), SPIRVTranslate(), llvm::lto::thinBackend(), llvm::TensorSpec::toJSON(), llvm::orc::shared::detail::toSPSSerializable(), llvm::orc::shared::detail::toSPSSerializable(), toString(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), llvm::DWARFCFIState::update(), llvm::DWARFVerifier::verifyDebugStrOffsets(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), writeDIE(), llvm::ifs::writeELFBinaryToFile(), writeListEntryAddress(), and llvm::yaml::yaml2ObjectFile().

◆ toString() [2/5]

std::string llvm::toString ( const APSInt & I,
unsigned Radix )
inline

Definition at line 353 of file StringExtras.h.

References I, and toString().

◆ toString() [3/5]

const char * llvm::toString ( DWARFSectionKind Kind)
inline

◆ toString() [4/5]

std::string llvm::toString ( Error E)

Write all error messages (if any) in E to a string.

The newline character is used to separate error messages.

Definition at line 77 of file Error.cpp.

◆ toString() [5/5]

StringRef llvm::toString ( TensorType TT)

Definition at line 46 of file TensorSpec.cpp.

References TensorTypeNames.

◆ toStringRef() [1/3]

StringRef llvm::toStringRef ( ArrayRef< char > Input)
inline

Definition at line 62 of file StringExtras.h.

◆ toStringRef() [2/3]

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

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

Definition at line 59 of file StringExtras.h.

◆ toStringRef() [3/3]

◆ 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 48 of file StringExtras.h.

◆ toStringWithoutConsuming()

std::string llvm::toStringWithoutConsuming ( const Error & E)

Like toString(), but does not consume the error.

This can be used to print a warning while retaining the original error object.

Definition at line 85 of file Error.cpp.

◆ totalExponent()

Expected< int > llvm::totalExponent ( StringRef::iterator p,
StringRef::iterator end,
int exponentAdjustment )
static

Definition at line 481 of file APFloat.cpp.

References createError(), and decDigitValue().

◆ toTypedFunPointer()

◆ toTypedPointer()

◆ toUpper()

char llvm::toUpper ( char x)
inline

◆ toVectorizedStructTy()

Type * llvm::toVectorizedStructTy ( StructType * StructTy,
ElementCount EC )

A helper for converting structs of scalar types to structs of vector types.

Note:

  • If EC is scalar, StructTy is returned unchanged
  • Only unpacked literal struct types are supported

Note: Only unpacked literal struct types are supported.

Definition at line 16 of file VectorTypeUtils.cpp.

References all_of(), assert(), llvm::StructType::elements(), llvm::StructType::get(), llvm::Type::getContext(), isUnpackedStructLiteral(), llvm::VectorType::isValidElementType(), and map_to_vector().

Referenced by toVectorizedTy().

◆ toVectorizedTy()

Type * llvm::toVectorizedTy ( Type * Ty,
ElementCount EC )
inline

A helper for converting to vectorized types.

For scalar types, this is equivalent to calling toVectorTy. For struct types, this returns a new struct where each element type has been widened to a vector type. Note:

  • If the incoming type is void, we return void
  • If EC is scalar, Ty is returned unchanged
  • Only unpacked literal struct types are supported

Definition at line 55 of file VectorTypeUtils.h.

References dyn_cast(), toVectorizedStructTy(), and toVectorTy().

Referenced by llvm::VFABI::createFunctionType(), getCostForIntrinsics(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::VPCostContext::getScalarizationOverhead(), maybeVectorizeType(), llvm::LoopVectorizationCostModel::setVectorizedCallDecision(), and willGenerateVectors().

◆ toVectorTy() [1/2]

◆ toVectorTy() [2/2]

Type * llvm::toVectorTy ( Type * Scalar,
unsigned VF )
inline

Definition at line 26 of file VectorTypeUtils.h.

References llvm::ElementCount::getFixed(), and toVectorTy().

◆ trailingHexadecimalFraction()

Expected< lostFraction > llvm::trailingHexadecimalFraction ( StringRef::iterator p,
StringRef::iterator end,
unsigned int digitValue )
static

◆ transform()

◆ transformGlobalCtors()

void llvm::transformGlobalCtors ( Module & M,
const GlobalCtorTransformFn & Fn )

Definition at line 118 of file ModuleUtils.cpp.

References transformGlobalArray().

◆ transformGlobalDtors()

void llvm::transformGlobalDtors ( Module & M,
const GlobalCtorTransformFn & Fn )

Definition at line 122 of file ModuleUtils.cpp.

References transformGlobalArray().

◆ transformOptional()

template<typename Optional, typename Function, typename Value = typename llvm::remove_cvref_t<Optional>::value_type>
std::optional< std::invoke_result_t< Function, Value > > llvm::transformOptional ( Optional && O,
Function && F )

Definition at line 81 of file STLForwardCompat.h.

References F.

◆ trimBlockToPageSize()

◆ tryDelinearizeFixedSizeImpl()

bool llvm::tryDelinearizeFixedSizeImpl ( ScalarEvolution * SE,
Instruction * Inst,
const SCEV * AccessFn,
SmallVectorImpl< const SCEV * > & Subscripts,
SmallVectorImpl< int > & Sizes )

Implementation of fixed size array delinearization.

Try to delinearize access function for a fixed size multi-dimensional array, by deriving subscripts from GEP instructions. Returns true upon success and false otherwise. Inst is the load/store instruction whose pointer operand is the one we want to delinearize. AccessFn is its corresponding SCEV expression w.r.t. the surrounding loop.

Definition at line 707 of file Delinearization.cpp.

References assert(), llvm::SmallVectorImpl< T >::clear(), dyn_cast(), getIndexExpressionsFromGEP(), getLoadStorePointerOperand(), llvm::ScalarEvolution::getPointerBase(), llvm::SCEVUnknown::getValue(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::Value::stripPointerCasts().

◆ tryEnforceAlignment()

Align llvm::tryEnforceAlignment ( Value * V,
Align PrefAlign,
const DataLayout & DL )

If the specified pointer points to an object that we control, try to modify the object's alignment to PrefAlign.

Returns a minimum known alignment of the value after the operation, which may be lower than PrefAlign.

Increating value alignment isn't often possible though. 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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1517 of file Local.cpp.

References DL, and dyn_cast().

Referenced by getOrEnforceKnownAlignment(), and inferAlignment().

◆ tryFoldSPUpdateIntoPushPop()

bool llvm::tryFoldSPUpdateIntoPushPop ( const ARMSubtarget & Subtarget,
MachineFunction & MF,
MachineInstr * MI,
unsigned NumBytes )

◆ tryGetFromHex()

bool llvm::tryGetFromHex ( StringRef Input,
std::string & Output )
inline

Convert hexadecimal string Input to its binary representation and store the result in Output. Returns true if the binary representation could be converted from the hexadecimal string. Returns false if Input contains non-hexadecimal digits. The output string is half the size of Input.

Definition at line 246 of file StringExtras.h.

References assert(), and tryGetHexFromNibbles().

Referenced by fromHex(), llvm::object::parseBuildID(), and llvm::cas::builtin::BuiltinCASContext::parseID().

◆ tryGetHexFromNibbles()

bool llvm::tryGetHexFromNibbles ( char MSB,
char LSB,
uint8_t & Hex )
inline

Store the binary representation of the two provided values, MSB and LSB, that make up the nibbles of a hexadecimal digit. If MSB or LSB do not correspond to proper nibbles of a hexadecimal digit, this method returns false. Otherwise, returns true.

Definition at line 222 of file StringExtras.h.

References hexDigitValue().

Referenced by hexFromNibbles(), and tryGetFromHex().

◆ tryGreater()

◆ tryLatency()

◆ tryLess()

bool llvm::tryLess ( int TryVal,
int CandVal,
GenericSchedulerBase::SchedCandidate & TryCand,
GenericSchedulerBase::SchedCandidate & Cand,
GenericSchedulerBase::CandReason Reason )

Return true if this heuristic determines order.

TODO: Consider refactor return type of these functions as integer or enum, as we may need to differentiate whether TryCand is better than Cand.

Definition at line 3452 of file MachineScheduler.cpp.

References llvm::GenericSchedulerBase::SchedCandidate::Reason.

Referenced by llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), llvm::GenericScheduler::tryCandidate(), llvm::PostGenericScheduler::tryCandidate(), llvm::PPCPostRASchedStrategy::tryCandidate(), llvm::PPCPreRASchedStrategy::tryCandidate(), tryLatency(), and tryPressure().

◆ tryPressure()

◆ tryPromoteCall()

bool llvm::tryPromoteCall ( CallBase & CB)

Try to promote (devirtualize) a virtual call on an Alloca.

Return true on success.

Look for a pattern like:

o = alloca class.Impl %1 = getelementptr class.Impl, class.Impl* o, i64 0, i32 0, i32 0 store i32 (...)** bitcast (i8** getelementptr inbounds ({ [3 x i8*] }, { [3 x i8*] }* @_ZTV4Impl, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %1 %2 = getelementptr inbounds class.Impl, class.Impl* o, i64 0, i32 0 %3 = bitcast class.Interface* %2 to void (class.Interface*)*** vtable.i = load void (class.Interface*)**, void (class.Interface*)*** %3 %4 = load void (class.Interface*)*, void (class.Interface*)** vtable.i call void %4(class.Interface* nonnull %2)

@_ZTV4Impl = linkonce_odr dso_local unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI4Impl to i8*), i8* bitcast (void (class.Impl*)* @_ZN4Impl3RunEv to i8*)] }

Definition at line 685 of file CallPromotionUtils.cpp.

References assert(), DL, dyn_cast(), FindAvailableLoadedValue(), llvm::APInt::getActiveBits(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCalledOperand(), llvm::CallBase::getCaller(), getFunctionAtVTableOffset(), llvm::GlobalValue::getParent(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::LoadInst::getPointerOperand(), llvm::Value::getType(), llvm::APInt::getZExtValue(), llvm::GlobalVariable::hasDefinitiveInitializer(), isa(), llvm::GlobalVariable::isConstant(), isLegalToPromote(), llvm::Type::isPointerTy(), promoteCall(), and llvm::Value::stripAndAccumulateConstantOffsets().

Referenced by llvm::InlinerPass::run(), and llvm::ModuleInlinerPass::run().

◆ 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.

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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 1140 of file Local.cpp.

References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), CanPropagatePredecessorsForPHIs(), CanRedirectPredsOfEmptyBBToSucc(), cast(), llvm::SmallPtrSetImplBase::clear(), llvm::SmallPtrSetImpl< PtrType >::contains(), dbgs(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, DeleteDeadBlock(), dyn_cast(), llvm::Instruction::eraseFromParent(), from_range, llvm::BasicBlock::front(), llvm::BasicBlock::getContext(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getFirstNonPHIIt(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getSinglePredecessor(), llvm::BasicBlock::getTerminator(), llvm::Value::hasName(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, llvm::SmallPtrSetImpl< PtrType >::insert(), introduceTooManyPhiEntries(), isa(), LLVM_DEBUG, pred_size(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), redirectValuesFromPredecessorsToPhi(), llvm::Value::replaceAllUsesWith(), llvm::Value::replaceUsesWithIf(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::BasicBlock::splice(), succ_empty(), llvm::Value::takeName(), and llvm::Value::uses().

Referenced by llvm::JumpThreadingPass::runImpl().

◆ typeIncompatible()

AttributeMask AttributeFuncs::typeIncompatible ( Type * Ty,
AttributeSet AS,
AttributeSafetyKind ASK = ASK_ALL )

This class holds the attributes for a function, its return value, and its parameters.

Which attributes cannot be applied to a type.

You access the attributes for each of them via an index into the AttributeList object. The function attributes are at index ‘AttributeList::FunctionIndex’, the return value is at index / ‘AttributeList::ReturnIndex’, and the attributes for the parameters start at index ‘AttributeList::FirstArgIndex’. class AttributeList { public: enum AttrIndex : unsigned { ReturnIndex = 0U, FunctionIndex = ~0U, FirstArgIndex = 1, };

private: friend class AttrBuilder; friend class AttributeListImpl; friend class AttributeSet; friend class AttributeSetNode; template <typename Ty, typename Enable> friend struct DenseMapInfo;

/ The attributes that we are managing. This can be null to represent / the empty attributes list. AttributeListImpl *pImpl = nullptr;

public: / Create an AttributeList with the specified parameters in it. LLVM_ABI static AttributeList get(LLVMContext &C, ArrayRef<std::pair<unsigned, Attribute>> Attrs); LLVM_ABI static AttributeList get(LLVMContext &C, ArrayRef<std::pair<unsigned, AttributeSet>> Attrs);

/ Create an AttributeList from attribute sets for a function, its / return value, and all of its arguments. LLVM_ABI static AttributeList get(LLVMContext &C, AttributeSet FnAttrs, AttributeSet RetAttrs, ArrayRef<AttributeSet> ArgAttrs);

private: explicit AttributeList(AttributeListImpl *LI) : pImpl(LI) {}

static AttributeList getImpl(LLVMContext &C, ArrayRef<AttributeSet> AttrSets);

AttributeList setAttributesAtIndex(LLVMContext &C, unsigned Index, AttributeSet Attrs) const;

public: AttributeList() = default;

===-----------------------------------------------------------------—===// AttributeList Construction and Mutation ===-----------------------------------------------------------------—===//

/ Return an AttributeList with the specified parameters in it. LLVM_ABI static AttributeList get(LLVMContext &C, ArrayRef<AttributeList> Attrs); LLVM_ABI static AttributeList get(LLVMContext &C, unsigned Index, ArrayRef<Attribute::AttrKind> Kinds); LLVM_ABI static AttributeList get(LLVMContext &C, unsigned Index, ArrayRef<Attribute::AttrKind> Kinds, ArrayRef<uint64_t> Values); LLVM_ABI static AttributeList get(LLVMContext &C, unsigned Index, ArrayRef<StringRef> Kind); LLVM_ABI static AttributeList get(LLVMContext &C, unsigned Index, AttributeSet Attrs); LLVM_ABI static AttributeList get(LLVMContext &C, unsigned Index, const AttrBuilder &B);

TODO: remove non-AtIndex versions of these methods. / Add an attribute to the attribute set at the given index. / Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addAttributeAtIndex( LLVMContext &C, unsigned Index, Attribute::AttrKind Kind) const;

/ Add an attribute to the attribute set at the given index. / Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addAttributeAtIndex(LLVMContext &C, unsigned Index, StringRef Kind, StringRef Value = StringRef()) const;

/ Add an attribute to the attribute set at the given index. / Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addAttributeAtIndex(LLVMContext &C, unsigned Index, Attribute A) const;

/ Add attributes to the attribute set at the given index. / Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addAttributesAtIndex( LLVMContext &C, unsigned Index, const AttrBuilder &B) const;

/ Add a function attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addFnAttribute(LLVMContext &C, Attribute::AttrKind Kind) const { return addAttributeAtIndex(C, FunctionIndex, Kind); }

/ Add a function attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addFnAttribute(LLVMContext &C, Attribute Attr) const { return addAttributeAtIndex(C, FunctionIndex, Attr); }

/ Add a function attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addFnAttribute(LLVMContext &C, StringRef Kind, StringRef Value = StringRef()) const { return addAttributeAtIndex(C, FunctionIndex, Kind, Value); }

/ Add function attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addFnAttributes(LLVMContext &C, const AttrBuilder &B) const { return addAttributesAtIndex(C, FunctionIndex, B); }

/ Add a return value attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addRetAttribute(LLVMContext &C, Attribute::AttrKind Kind) const { return addAttributeAtIndex(C, ReturnIndex, Kind); }

/ Add a return value attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addRetAttribute(LLVMContext &C, Attribute Attr) const { return addAttributeAtIndex(C, ReturnIndex, Attr); }

/ Add a return value attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addRetAttributes(LLVMContext &C, const AttrBuilder &B) const { return addAttributesAtIndex(C, ReturnIndex, B); }

/ Add an argument attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addParamAttribute(LLVMContext &C, unsigned ArgNo, Attribute::AttrKind Kind) const { return addAttributeAtIndex(C, ArgNo + FirstArgIndex, Kind); }

/ Add an argument attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addParamAttribute(LLVMContext &C, unsigned ArgNo, StringRef Kind, StringRef Value = StringRef()) const { return addAttributeAtIndex(C, ArgNo + FirstArgIndex, Kind, Value); }

/ Add an attribute to the attribute list at the given arg indices. Returns a / new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addParamAttribute( LLVMContext &C, ArrayRef<unsigned> ArgNos, Attribute A) const;

/ Add an argument attribute to the list. Returns a new list because / attribute lists are immutable. [[nodiscard]] AttributeList addParamAttributes(LLVMContext &C, unsigned ArgNo, const AttrBuilder &B) const { return addAttributesAtIndex(C, ArgNo + FirstArgIndex, B); }

/ Remove the specified attribute at the specified index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList removeAttributeAtIndex( LLVMContext &C, unsigned Index, Attribute::AttrKind Kind) const;

/ Remove the specified attribute at the specified index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList removeAttributeAtIndex(LLVMContext &C, unsigned Index, StringRef Kind) const; [[nodiscard]] AttributeList removeAttribute(LLVMContext &C, unsigned Index, StringRef Kind) const { return removeAttributeAtIndex(C, Index, Kind); }

/ Remove the specified attributes at the specified index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList removeAttributesAtIndex( LLVMContext &C, unsigned Index, const AttributeMask &AttrsToRemove) const;

/ Remove all attributes at the specified index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList removeAttributesAtIndex(LLVMContext &C, unsigned Index) const;

/ Remove the specified attribute at the function index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeFnAttribute(LLVMContext &C, Attribute::AttrKind Kind) const { return removeAttributeAtIndex(C, FunctionIndex, Kind); }

/ Remove the specified attribute at the function index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeFnAttribute(LLVMContext &C, StringRef Kind) const { return removeAttributeAtIndex(C, FunctionIndex, Kind); }

/ Remove the specified attribute at the function index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeFnAttributes(LLVMContext &C, const AttributeMask &AttrsToRemove) const { return removeAttributesAtIndex(C, FunctionIndex, AttrsToRemove); }

/ Remove the attributes at the function index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeFnAttributes(LLVMContext &C) const { return removeAttributesAtIndex(C, FunctionIndex); }

/ Remove the specified attribute at the return value index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeRetAttribute(LLVMContext &C, Attribute::AttrKind Kind) const { return removeAttributeAtIndex(C, ReturnIndex, Kind); }

/ Remove the specified attribute at the return value index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeRetAttribute(LLVMContext &C, StringRef Kind) const { return removeAttributeAtIndex(C, ReturnIndex, Kind); }

/ Remove the specified attribute at the return value index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeRetAttributes(LLVMContext &C, const AttributeMask &AttrsToRemove) const { return removeAttributesAtIndex(C, ReturnIndex, AttrsToRemove); }

/ Remove the specified attribute at the specified arg index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeParamAttribute(LLVMContext &C, unsigned ArgNo, Attribute::AttrKind Kind) const { return removeAttributeAtIndex(C, ArgNo + FirstArgIndex, Kind); }

/ Remove the specified attribute at the specified arg index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeParamAttribute(LLVMContext &C, unsigned ArgNo, StringRef Kind) const { return removeAttributeAtIndex(C, ArgNo + FirstArgIndex, Kind); }

/ Remove the specified attribute at the specified arg index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeParamAttributes(LLVMContext &C, unsigned ArgNo, const AttributeMask &AttrsToRemove) const { return removeAttributesAtIndex(C, ArgNo + FirstArgIndex, AttrsToRemove); }

/ Remove all attributes at the specified arg index from this / attribute list. Returns a new list because attribute lists are immutable. [[nodiscard]] AttributeList removeParamAttributes(LLVMContext &C, unsigned ArgNo) const { return removeAttributesAtIndex(C, ArgNo + FirstArgIndex); }

/ Replace the type contained by attribute AttrKind at index ArgNo wih / ReplacementTy, preserving all other attributes. [[nodiscard]] AttributeList replaceAttributeTypeAtIndex(LLVMContext &C, unsigned ArgNo, Attribute::AttrKind Kind, Type *ReplacementTy) const { Attribute Attr = getAttributeAtIndex(ArgNo, Kind); auto Attrs = removeAttributeAtIndex(C, ArgNo, Kind); return Attrs.addAttributeAtIndex(C, ArgNo, Attr.getWithNewType(C, ReplacementTy)); }

/ Add the dereferenceable attribute to the attribute set at the given / index. Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addDereferenceableRetAttr(LLVMContext &C, uint64_t Bytes) const;

/ Add the dereferenceable attribute to the attribute set at the given / arg index. Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addDereferenceableParamAttr( LLVMContext &C, unsigned ArgNo, uint64_t Bytes) const;

/ Add the dereferenceable_or_null attribute to the attribute set at / the given arg index. Returns a new list because attribute lists are / immutable. [[nodiscard]] LLVM_ABI AttributeList addDereferenceableOrNullParamAttr( LLVMContext &C, unsigned ArgNo, uint64_t Bytes) const;

/ Add the range attribute to the attribute set at the return value index. / Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addRangeRetAttr(LLVMContext &C, const ConstantRange &CR) const;

/ Add the allocsize attribute to the attribute set at the given arg index. / Returns a new list because attribute lists are immutable. [[nodiscard]] LLVM_ABI AttributeList addAllocSizeParamAttr(LLVMContext &C, unsigned ArgNo, unsigned ElemSizeArg, const std::optional<unsigned> &NumElemsArg) const;

/ Try to intersect this AttributeList with Other. Returns std::nullopt if / the two lists are inherently incompatible (imply different behavior, not / just analysis). [[nodiscard]] LLVM_ABI std::optional<AttributeList> intersectWith(LLVMContext &C, AttributeList Other) const;

===-----------------------------------------------------------------—===// AttributeList Accessors ===-----------------------------------------------------------------—===//

/ The attributes for the specified index are returned. LLVM_ABI AttributeSet getAttributes(unsigned Index) const;

/ The attributes for the argument or parameter at the given index are / returned. LLVM_ABI AttributeSet getParamAttrs(unsigned ArgNo) const;

/ The attributes for the ret value are returned. LLVM_ABI AttributeSet getRetAttrs() const;

/ The function attributes are returned. LLVM_ABI AttributeSet getFnAttrs() const;

/ Return true if the attribute exists at the given index. LLVM_ABI bool hasAttributeAtIndex(unsigned Index, Attribute::AttrKind Kind) const;

/ Return true if the attribute exists at the given index. LLVM_ABI bool hasAttributeAtIndex(unsigned Index, StringRef Kind) const;

/ Return true if attribute exists at the given index. LLVM_ABI bool hasAttributesAtIndex(unsigned Index) const;

/ Return true if the attribute exists for the given argument bool hasParamAttr(unsigned ArgNo, Attribute::AttrKind Kind) const { return hasAttributeAtIndex(ArgNo + FirstArgIndex, Kind); }

/ Return true if the attribute exists for the given argument bool hasParamAttr(unsigned ArgNo, StringRef Kind) const { return hasAttributeAtIndex(ArgNo + FirstArgIndex, Kind); }

/ Return true if attributes exists for the given argument bool hasParamAttrs(unsigned ArgNo) const { return hasAttributesAtIndex(ArgNo + FirstArgIndex); }

/ Return true if the attribute exists for the return value. bool hasRetAttr(Attribute::AttrKind Kind) const { return hasAttributeAtIndex(ReturnIndex, Kind); }

/ Return true if the attribute exists for the return value. bool hasRetAttr(StringRef Kind) const { return hasAttributeAtIndex(ReturnIndex, Kind); }

/ Return true if attributes exist for the return value. bool hasRetAttrs() const { return hasAttributesAtIndex(ReturnIndex); }

/ Return true if the attribute exists for the function. LLVM_ABI bool hasFnAttr(Attribute::AttrKind Kind) const;

/ Return true if the attribute exists for the function. LLVM_ABI bool hasFnAttr(StringRef Kind) const;

/ Return true the attributes exist for the function. bool hasFnAttrs() const { return hasAttributesAtIndex(FunctionIndex); }

/ Return true if the specified attribute is set for at least one / parameter or for the return value. If Index is not nullptr, the index / of a parameter with the specified attribute is provided. LLVM_ABI bool hasAttrSomewhere(Attribute::AttrKind Kind, unsigned *Index = nullptr) const;

/ Return the attribute object that exists at the given index. LLVM_ABI Attribute getAttributeAtIndex(unsigned Index, Attribute::AttrKind Kind) const;

/ Return the attribute object that exists at the given index. LLVM_ABI Attribute getAttributeAtIndex(unsigned Index, StringRef Kind) const;

/ Return the attribute object that exists at the arg index. Attribute getParamAttr(unsigned ArgNo, Attribute::AttrKind Kind) const { return getAttributeAtIndex(ArgNo + FirstArgIndex, Kind); }

/ Return the attribute object that exists at the given index. Attribute getParamAttr(unsigned ArgNo, StringRef Kind) const { return getAttributeAtIndex(ArgNo + FirstArgIndex, Kind); }

/ Return the attribute object that exists for the function. Attribute getFnAttr(Attribute::AttrKind Kind) const { return getAttributeAtIndex(FunctionIndex, Kind); }

/ Return the attribute object that exists for the function. Attribute getFnAttr(StringRef Kind) const { return getAttributeAtIndex(FunctionIndex, Kind); }

/ Return the attribute for the given attribute kind for the return value. Attribute getRetAttr(Attribute::AttrKind Kind) const { return getAttributeAtIndex(ReturnIndex, Kind); }

/ Return the alignment of the return value. LLVM_ABI MaybeAlign getRetAlignment() const;

/ Return the alignment for the specified function parameter. LLVM_ABI MaybeAlign getParamAlignment(unsigned ArgNo) const;

/ Return the stack alignment for the specified function parameter. LLVM_ABI MaybeAlign getParamStackAlignment(unsigned ArgNo) const;

/ Return the byval type for the specified function parameter. LLVM_ABI Type *getParamByValType(unsigned ArgNo) const;

/ Return the sret type for the specified function parameter. LLVM_ABI Type *getParamStructRetType(unsigned ArgNo) const;

/ Return the byref type for the specified function parameter. LLVM_ABI Type *getParamByRefType(unsigned ArgNo) const;

/ Return the preallocated type for the specified function parameter. LLVM_ABI Type *getParamPreallocatedType(unsigned ArgNo) const;

/ Return the inalloca type for the specified function parameter. LLVM_ABI Type *getParamInAllocaType(unsigned ArgNo) const;

/ Return the elementtype type for the specified function parameter. LLVM_ABI Type *getParamElementType(unsigned ArgNo) const;

/ Get the stack alignment of the function. LLVM_ABI MaybeAlign getFnStackAlignment() const;

/ Get the stack alignment of the return value. LLVM_ABI MaybeAlign getRetStackAlignment() const;

/ Get the number of dereferenceable bytes (or zero if unknown) of the return / value. LLVM_ABI uint64_t getRetDereferenceableBytes() const;

/ Get the number of dereferenceable bytes (or zero if unknown) of an arg. LLVM_ABI uint64_t getParamDereferenceableBytes(unsigned Index) const;

/ Get the number of dereferenceable_or_null bytes (or zero if unknown) of / the return value. LLVM_ABI uint64_t getRetDereferenceableOrNullBytes() const;

/ Get the number of dereferenceable_or_null bytes (or zero if unknown) of an / arg. LLVM_ABI uint64_t getParamDereferenceableOrNullBytes(unsigned ArgNo) const;

/ Get range (or std::nullopt if unknown) of an arg. LLVM_ABI std::optional<ConstantRange> getParamRange(unsigned ArgNo) const;

/ Get the disallowed floating-point classes of the return value. LLVM_ABI FPClassTest getRetNoFPClass() const;

/ Get the disallowed floating-point classes of the argument value. LLVM_ABI FPClassTest getParamNoFPClass(unsigned ArgNo) const;

/ Get the unwind table kind requested for the function. LLVM_ABI UWTableKind getUWTableKind() const;

LLVM_ABI AllocFnKind getAllocKind() const;

/ Returns memory effects of the function. LLVM_ABI MemoryEffects getMemoryEffects() const;

/ Return the attributes at the index as a string. LLVM_ABI std::string getAsString(unsigned Index, bool InAttrGrp = false) const;

/ Return true if this attribute list belongs to the LLVMContext. LLVM_ABI bool hasParentContext(LLVMContext &C) const;

===-----------------------------------------------------------------—===// AttributeList Introspection ===-----------------------------------------------------------------—===//

using iterator = const AttributeSet *;

LLVM_ABI iterator begin() const; LLVM_ABI iterator end() const;

LLVM_ABI unsigned getNumAttrSets() const;

Implementation of indexes(). Produces iterators that wrap an index. Mostly to hide the awkwardness of unsigned wrapping when iterating over valid indexes. struct index_iterator { unsigned NumAttrSets; index_iterator(int NumAttrSets) : NumAttrSets(NumAttrSets) {} struct int_wrapper { int_wrapper(unsigned i) : i(i) {} unsigned i; unsigned operator*() { return i; } bool operator!=(const int_wrapper &Other) { return i != Other.i; } int_wrapper &operator++() { This is expected to undergo unsigned wrapping since FunctionIndex is ~0 and that's where we start. ++i; return *this; } };

int_wrapper begin() { return int_wrapper(AttributeList::FunctionIndex); }

int_wrapper end() { return int_wrapper(NumAttrSets - 1); } };

/ Use this to iterate over the valid attribute indexes. index_iterator indexes() const { return index_iterator(getNumAttrSets()); }

/ operator==/!= - Provide equality predicates. bool operator==(const AttributeList &RHS) const { return pImpl == RHS.pImpl; } bool operator!=(const AttributeList &RHS) const { return pImpl != RHS.pImpl; }

/ Return a raw pointer that uniquely identifies this attribute list. void *getRawPointer() const { return pImpl; }

/ Return true if there are no attributes. bool isEmpty() const { return pImpl == nullptr; }

LLVM_ABI void print(raw_ostream &O) const;

LLVM_ABI void dump() const; };

===-------------------------------------------------------------------—===// / / Provide DenseMapInfo for AttributeList. template <> struct DenseMapInfo<AttributeList, void> { static AttributeList getEmptyKey() { auto Val = static_cast<uintptr_t>(-1); Val <<= PointerLikeTypeTraits<void*>::NumLowBitsAvailable; return AttributeList(reinterpret_cast<AttributeListImpl *>(Val)); }

static AttributeList getTombstoneKey() { auto Val = static_cast<uintptr_t>(-2); Val <<= PointerLikeTypeTraits<void*>::NumLowBitsAvailable; return AttributeList(reinterpret_cast<AttributeListImpl *>(Val)); }

static unsigned getHashValue(AttributeList AS) { return (unsigned((uintptr_t)AS.pImpl) >> 4) ^ (unsigned((uintptr_t)AS.pImpl) >> 9); }

static bool isEqual(AttributeList LHS, AttributeList RHS) { return LHS == RHS; } };

===-------------------------------------------------------------------—===// / / This class is used in conjunction with the Attribute::get method to / create an Attribute object. The object itself is uniquified. The Builder's / value, however, is not. So this can be used as a quick way to test for / equality, presence of attributes, etc. class AttrBuilder { LLVMContext &Ctx; SmallVector<Attribute, 8> Attrs;

public: AttrBuilder(LLVMContext &Ctx) : Ctx(Ctx) {} AttrBuilder(const AttrBuilder &) = delete; AttrBuilder(AttrBuilder &&) = default;

AttrBuilder(LLVMContext &Ctx, const Attribute &A) : Ctx(Ctx) { addAttribute(A); }

LLVM_ABI AttrBuilder(LLVMContext &Ctx, AttributeSet AS);

LLVM_ABI void clear();

/ Add an attribute to the builder. LLVM_ABI AttrBuilder &addAttribute(Attribute::AttrKind Val);

/ Add the Attribute object to the builder. LLVM_ABI AttrBuilder &addAttribute(Attribute A);

/ Add the target-dependent attribute to the builder. LLVM_ABI AttrBuilder &addAttribute(StringRef A, StringRef V = StringRef());

/ Remove an attribute from the builder. LLVM_ABI AttrBuilder &removeAttribute(Attribute::AttrKind Val);

/ Remove the target-dependent attribute from the builder. LLVM_ABI AttrBuilder &removeAttribute(StringRef A);

/ Remove the target-dependent attribute from the builder. AttrBuilder &removeAttribute(Attribute A) { if (A.isStringAttribute()) return removeAttribute(A.getKindAsString()); else return removeAttribute(A.getKindAsEnum()); }

/ Add the attributes from the builder. Attributes in the passed builder / overwrite attributes in this builder if they have the same key. LLVM_ABI AttrBuilder &merge(const AttrBuilder &B);

/ Remove the attributes from the builder. LLVM_ABI AttrBuilder &remove(const AttributeMask &AM);

/ Return true if the builder has any attribute that's in the / specified builder. LLVM_ABI bool overlaps(const AttributeMask &AM) const;

/ Return true if the builder has the specified attribute. LLVM_ABI bool contains(Attribute::AttrKind A) const;

/ Return true if the builder has the specified target-dependent / attribute. LLVM_ABI bool contains(StringRef A) const;

/ Return true if the builder has IR-level attributes. bool hasAttributes() const { return !Attrs.empty(); }

/ Return Attribute with the given Kind. The returned attribute will be / invalid if the Kind is not present in the builder. LLVM_ABI Attribute getAttribute(Attribute::AttrKind Kind) const;

/ Return Attribute with the given Kind. The returned attribute will be / invalid if the Kind is not present in the builder. LLVM_ABI Attribute getAttribute(StringRef Kind) const;

/ Retrieve the range if the attribute exists (std::nullopt is returned / otherwise). LLVM_ABI std::optional<ConstantRange> getRange() const;

/ Return raw (possibly packed/encoded) value of integer attribute or / std::nullopt if not set. LLVM_ABI std::optional<uint64_t> getRawIntAttr(Attribute::AttrKind Kind) const;

/ Retrieve the alignment attribute, if it exists. MaybeAlign getAlignment() const { return MaybeAlign(getRawIntAttr(Attribute::Alignment).value_or(0)); }

/ Retrieve the stack alignment attribute, if it exists. MaybeAlign getStackAlignment() const { return MaybeAlign(getRawIntAttr(Attribute::StackAlignment).value_or(0)); }

/ Retrieve the number of dereferenceable bytes, if the / dereferenceable attribute exists (zero is returned otherwise). uint64_t getDereferenceableBytes() const { return getRawIntAttr(Attribute::Dereferenceable).value_or(0); }

/ Retrieve the number of dereferenceable_or_null bytes, if the / dereferenceable_or_null attribute exists (zero is returned otherwise). uint64_t getDereferenceableOrNullBytes() const { return getRawIntAttr(Attribute::DereferenceableOrNull).value_or(0); }

/ Retrieve the bitmask for nofpclass, if the nofpclass attribute exists / (fcNone is returned otherwise). FPClassTest getNoFPClass() const { std::optional<uint64_t> Raw = getRawIntAttr(Attribute::NoFPClass); return static_cast<FPClassTest>(Raw.value_or(0)); }

/ Retrieve type for the given type attribute. LLVM_ABI Type *getTypeAttr(Attribute::AttrKind Kind) const;

/ Retrieve the byval type. Type *getByValType() const { return getTypeAttr(Attribute::ByVal); }

/ Retrieve the sret type. Type *getStructRetType() const { return getTypeAttr(Attribute::StructRet); }

/ Retrieve the byref type. Type *getByRefType() const { return getTypeAttr(Attribute::ByRef); }

/ Retrieve the preallocated type. Type *getPreallocatedType() const { return getTypeAttr(Attribute::Preallocated); }

/ Retrieve the inalloca type. Type *getInAllocaType() const { return getTypeAttr(Attribute::InAlloca); }

/ Retrieve the allocsize args, or std::nullopt if the attribute does not / exist. LLVM_ABI std::optional<std::pair<unsigned, std::optional<unsigned>>> getAllocSizeArgs() const;

/ Add integer attribute with raw value (packed/encoded if necessary). LLVM_ABI AttrBuilder &addRawIntAttr(Attribute::AttrKind Kind, uint64_t Value);

/ This turns an alignment into the form used internally in Attribute. / This call has no effect if Align is not set. LLVM_ABI AttrBuilder &addAlignmentAttr(MaybeAlign Align);

/ This turns an int alignment (which must be a power of 2) into the / form used internally in Attribute. / This call has no effect if Align is 0. / Deprecated, use the version using a MaybeAlign. inline AttrBuilder &addAlignmentAttr(unsigned Align) { return addAlignmentAttr(MaybeAlign(Align)); }

/ This turns a stack alignment into the form used internally in Attribute. / This call has no effect if Align is not set. LLVM_ABI AttrBuilder &addStackAlignmentAttr(MaybeAlign Align);

/ This turns an int stack alignment (which must be a power of 2) into / the form used internally in Attribute. / This call has no effect if Align is 0. / Deprecated, use the version using a MaybeAlign. inline AttrBuilder &addStackAlignmentAttr(unsigned Align) { return addStackAlignmentAttr(MaybeAlign(Align)); }

/ This turns the number of dereferenceable bytes into the form used / internally in Attribute. LLVM_ABI AttrBuilder &addDereferenceableAttr(uint64_t Bytes);

/ This turns the number of dereferenceable_or_null bytes into the / form used internally in Attribute. LLVM_ABI AttrBuilder &addDereferenceableOrNullAttr(uint64_t Bytes);

/ This turns one (or two) ints into the form used internally in Attribute. LLVM_ABI AttrBuilder & addAllocSizeAttr(unsigned ElemSizeArg, const std::optional<unsigned> &NumElemsArg);

/ This turns two ints into the form used internally in Attribute. LLVM_ABI AttrBuilder &addVScaleRangeAttr(unsigned MinValue, std::optional<unsigned> MaxValue);

/ Add a type attribute with the given type. LLVM_ABI AttrBuilder &addTypeAttr(Attribute::AttrKind Kind, Type *Ty);

/ This turns a byval type into the form used internally in Attribute. LLVM_ABI AttrBuilder &addByValAttr(Type *Ty);

/ This turns a sret type into the form used internally in Attribute. LLVM_ABI AttrBuilder &addStructRetAttr(Type *Ty);

/ This turns a byref type into the form used internally in Attribute. LLVM_ABI AttrBuilder &addByRefAttr(Type *Ty);

/ This turns a preallocated type into the form used internally in Attribute. LLVM_ABI AttrBuilder &addPreallocatedAttr(Type *Ty);

/ This turns an inalloca type into the form used internally in Attribute. LLVM_ABI AttrBuilder &addInAllocaAttr(Type *Ty);

/ Add an allocsize attribute, using the representation returned by / Attribute.getIntValue(). LLVM_ABI AttrBuilder &addAllocSizeAttrFromRawRepr(uint64_t RawAllocSizeRepr);

/ Add a vscale_range attribute, using the representation returned by / Attribute.getIntValue(). LLVM_ABI AttrBuilder & addVScaleRangeAttrFromRawRepr(uint64_t RawVScaleRangeRepr);

/ This turns the unwind table kind into the form used internally in / Attribute. LLVM_ABI AttrBuilder &addUWTableAttr(UWTableKind Kind);

This turns the allocator kind into the form used internally in Attribute. LLVM_ABI AttrBuilder &addAllocKindAttr(AllocFnKind Kind);

/ Add memory effect attribute. LLVM_ABI AttrBuilder &addMemoryAttr(MemoryEffects ME);

/ Add captures attribute. LLVM_ABI AttrBuilder &addCapturesAttr(CaptureInfo CI);

Add nofpclass attribute LLVM_ABI AttrBuilder &addNoFPClassAttr(FPClassTest NoFPClassMask);

/ Add a ConstantRange attribute with the given range. LLVM_ABI AttrBuilder &addConstantRangeAttr(Attribute::AttrKind Kind, const ConstantRange &CR);

/ Add range attribute. LLVM_ABI AttrBuilder &addRangeAttr(const ConstantRange &CR);

/ Add a ConstantRangeList attribute with the given ranges. LLVM_ABI AttrBuilder &addConstantRangeListAttr(Attribute::AttrKind Kind, ArrayRef<ConstantRange> Val);

/ Add initializes attribute. LLVM_ABI AttrBuilder &addInitializesAttr(const ConstantRangeList &CRL);

/ Add 0 or more parameter attributes which are equivalent to metadata / attached to I. e.g. !align -> align. This assumes the argument type is / the same as the original instruction and the attribute is compatible. LLVM_ABI AttrBuilder &addFromEquivalentMetadata(const Instruction &I);

ArrayRef<Attribute> attrs() const { return Attrs; }

LLVM_ABI bool operator==(const AttrBuilder &B) const; bool operator!=(const AttrBuilder &B) const { return !(*this == B); } };

namespace AttributeFuncs {

enum AttributeSafetyKind : uint8_t { ASK_SAFE_TO_DROP = 1, ASK_UNSAFE_TO_DROP = 2, ASK_ALL = ASK_SAFE_TO_DROP | ASK_UNSAFE_TO_DROP, };

/ Returns true if this is a type legal for the 'nofpclass' attribute. This / follows the same type rules as FPMathOperator. LLVM_ABI bool isNoFPClassCompatibleType(Type *Ty);

/ Which attributes cannot be applied to a type. The argument AS / is used as a hint for the attributes whose compatibility is being / checked against Ty. This does not mean the return will be a / subset of AS, just that attributes that have specific dynamic / type compatibilities (i.e range) will be checked against what is contained in AS. The argument ASK indicates, if only attributes that are known to be safely droppable are contained in the mask; only attributes that might be unsafe to drop (e.g., ABI-related attributes) are in the mask; or both.

Definition at line 2405 of file Attributes.cpp.

References llvm::AttributeMask::addAttribute(), llvm::AttributeSet::getAttribute(), llvm::ConstantRange::getBitWidth(), llvm::Attribute::getRange(), and llvm::Attribute::isValid().

◆ ulpsFromBoundary()

APFloatBase::integerPart llvm::ulpsFromBoundary ( const APFloatBase::integerPart * parts,
unsigned int bits,
bool isNearest )
static

Definition at line 744 of file APFloat.cpp.

References assert(), count(), and llvm::APFloatBase::integerPartWidth.

◆ uniform() [1/2]

template<typename T, typename GenT>
T llvm::uniform ( GenT & Gen)

Return a uniformly distributed random value of type T.

Definition at line 26 of file Random.h.

References T, and uniform().

◆ uniform() [2/2]

◆ unifyPtrType()

const Type * llvm::unifyPtrType ( const Type * Ty)
inline

◆ uninitialized_copy()

◆ unique() [1/2]

template<typename Range>
auto llvm::unique ( Range && R)

Wrapper function around std::unique to allow calling unique on a container without having to specify the begin/end iterators.

Definition at line 2062 of file STLExtras.h.

References adl_begin(), adl_end(), and Range.

◆ unique() [2/2]

◆ unique_dyn_cast() [1/2]

template<class X, class Y>
auto llvm::unique_dyn_cast ( std::unique_ptr< Y > && Val)
inlinenodiscard

Definition at line 785 of file Casting.h.

References unique_dyn_cast().

◆ unique_dyn_cast() [2/2]

template<class X, class Y>
CastInfo< X, std::unique_ptr< Y > >::CastResultType llvm::unique_dyn_cast ( std::unique_ptr< Y > & Val)
inlinenodiscard

unique_dyn_cast<X> - Given a unique_ptr<Y>, try to return a unique_ptr<X>, taking ownership of the input pointer iff isa<X>(Val) is true.

If the cast is successful, From refers to nullptr on exit and the casted value is returned. If the cast is unsuccessful, the function returns nullptr and From is unchanged.

Definition at line 778 of file Casting.h.

References cast(), and isa().

Referenced by llvm::pdb::DataMemberLayoutItem::DataMemberLayoutItem(), llvm::pdb::DIARawSymbol::getVirtualBaseTableType(), llvm::pdb::UDTLayoutBase::initializeChildren(), unique_dyn_cast(), and unique_dyn_cast_or_null().

◆ unique_dyn_cast_or_null() [1/2]

template<class X, class Y>
auto llvm::unique_dyn_cast_or_null ( std::unique_ptr< Y > && Val)
inlinenodiscard

Definition at line 800 of file Casting.h.

References unique_dyn_cast_or_null().

◆ unique_dyn_cast_or_null() [2/2]

◆ uniteAccessGroups()

MDNode * llvm::uniteAccessGroups ( MDNode * AccGroups1,
MDNode * AccGroups2 )

Compute the union of two access-group lists.

If the list contains just one access group, it is returned directly. If the list is empty, returns nullptr.

Definition at line 988 of file VectorUtils.cpp.

References addToAccessGroupList(), cast(), llvm::MDNode::get(), and llvm::MDNode::getContext().

Referenced by PropagateCallSiteMetadata().

◆ unknown_sign()

FPClassTest llvm::unknown_sign ( FPClassTest Mask)

Return the test mask which returns true if the value could have the same set of classes, but with a different sign.

Definition at line 48 of file FloatingPointMode.cpp.

References fcInf, fcNan, fcNormal, fcSubnormal, and fcZero.

Referenced by llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().

◆ UnknownPadding()

unsigned llvm::UnknownPadding ( Align Alignment,
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
Alignmentalignment
KnownBitsNumber of known low offset bits.

Definition at line 33 of file ARMBasicBlockInfo.h.

References Log2(), and llvm::Align::value().

Referenced by 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,
const TargetTransformInfo * TTI,
OptimizationRemarkEmitter * ORE,
Loop ** EpilogueLoop = nullptr )

Definition at line 215 of file LoopUnrollAndJam.cpp.

References addClonedBlockToLoopInfo(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdatesPermissive(), assert(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::LoopBlocksDFS::beginRPO(), cast(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), Count, llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorImpl< T >::emplace_back(), EnableFSDiscriminator, llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::LoopBlocksDFS::endRPO(), llvm::LoopInfo::erase(), llvm::Instruction::eraseFromParent(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLoop(), FullyUnrolled, llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::getDomTree(), llvm::LoopBase< BlockT, LoopT >::getExitBlock(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BranchInst::getNumSuccessors(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BranchInst::getSuccessor(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), I, II, llvm::SmallPtrSetImpl< PtrType >::insert_range(), llvm::Loop::isLoopSimplifyForm(), llvm::Loop::isRecursivelyLCSSAForm(), llvm::BranchInst::isUnconditional(), Last, LLVM_DEBUG, llvm_unreachable, MergeBlockSuccessorsIntoGivenBlocks(), moveHeaderPhiOperandsToForeBlocks(), PartiallyUnrolled, partitionOuterLoopBlocks(), llvm::LoopBlocksDFS::perform(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstructionsInBlocks(), SCEVCheapExpansionBudget, llvm::BranchInst::setSuccessor(), simplifyLoopAfterUnroll(), Unmodified, UnrollRuntimeLoopRemainder(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), and llvm::ScalarEvolution::verify().

Referenced by tryToUnrollAndJamLoop().

◆ UnrollLoop()

LoopUnrollResult llvm::UnrollLoop ( Loop * L,
UnrollLoopOptions ULO,
LoopInfo * LI,
ScalarEvolution * SE,
DominatorTree * DT,
AssumptionCache * AC,
const llvm::TargetTransformInfo * TTI,
OptimizationRemarkEmitter * ORE,
bool PreserveLCSSA,
Loop ** RemainderLoop = nullptr,
AAResults * AA = 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.

If Runtime is true then UnrollLoop will try to insert a prologue or epilogue that ensures the latch has a trip multiple of Count. UnrollLoop will not runtime-unroll the loop if computing the run-time trip count will be expensive and AllowExpensiveTripCount is false.

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 460 of file LoopUnroll.cpp.

References llvm::UnrollLoopOptions::AddAdditionalAccumulators, addClonedBlockToLoopInfo(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::UnrollLoopOptions::AllowExpensiveTripCount, any_of(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::ValueMap< KeyT, ValueT, Config >::AtomMap, llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::BasicBlock::begin(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::LoopBlocksDFS::beginRPO(), llvm::CallingConv::C, canHaveUnrollRemainder(), canParallelizeReductionWhenUnrolling(), cast(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), changeToUnreachable(), llvm::DomTreeNodeBase< NodeT >::children(), cloneAndAdaptNoAliasScopes(), CloneBasicBlock(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::UnrollLoopOptions::Count, llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, llvm::DominatorTreeBase< BasicBlock, false >::Delete, drop_begin(), dyn_cast(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), EnableFSDiscriminator, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::LoopBlocksDFS::endRPO(), erase(), llvm::LoopInfo::erase(), llvm::ValueMap< KeyT, ValueT, Config >::erase(), llvm::Instruction::eraseFromParent(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::DominatorTree::findNearestCommonDominator(), llvm::UnrollLoopOptions::Force, llvm::ScalarEvolution::forgetAllLoops(), llvm::UnrollLoopOptions::ForgetAllSCEV, llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLcssaPhiWithNewPredecessor(), llvm::ScalarEvolution::forgetTopmostLoop(), formLCSSARecursively(), llvm::SmallVectorTemplateCommon< T, typename >::front(), FullyUnrolled, llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::getDomTree(), llvm::RecurrenceDescriptor::getFastMathFlags(), llvm::BasicBlock::getFirstNonPHIIt(), llvm::DomTreeNodeBase< NodeT >::getIDom(), llvm::PHINode::getIncomingValueForBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), getLoopEstimatedTripCount(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::RecurrenceDescriptor::getOpcode(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), getRecurrenceIdentity(), llvm::RecurrenceDescriptor::getRecurrenceKind(), llvm::BasicBlock::getSingleSuccessor(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::UnrollLoopOptions::Heart, I, identifyNoAliasScopesToClone(), II, llvm::SetVector< T, Vector, Set, N >::insert(), llvm::SetVector< T, Vector, Set, N >::insert_range(), isa(), llvm::ScalarEvolution::isBackedgeTakenCountMaxOrZero(), isEpilogProfitable(), llvm::Loop::isLCSSAForm(), LLVM_DEBUG, MergeBlockIntoPredecessor(), llvm::Instruction::moveBefore(), needToInsertPhisForLCSSA(), PartiallyUnrolled, llvm::LoopBlocksDFS::perform(), PHI, llvm::BasicBlock::phis(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reductions, llvm::AssumptionCache::registerAssumption(), remapInstructionsInBlocks(), RemapSourceAtom(), llvm::BasicBlock::removePredecessor(), replace(), llvm::User::replaceUsesOfWith(), llvm::UnrollLoopOptions::Runtime, llvm::UnrollLoopOptions::RuntimeUnrollMultiExit, llvm::UnrollLoopOptions::SCEVExpansionBudget, llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second, llvm::PHINode::setIncomingValueForBlock(), setLoopEstimatedTripCount(), simplifyLoop(), simplifyLoopAfterUnroll(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), successors(), to_vector(), Unmodified, UnrollAddParallelReductions, llvm::UnrollLoopOptions::UnrollRemainder, UnrollRuntimeEpilog, UnrollRuntimeLoopRemainder(), UnrollVerifyDomtree, UnrollVerifyLoopInfo, llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), and llvm::LoopInfoBase< BlockT, LoopT >::verify().

Referenced by tryToUnrollLoop(), and UnrollRuntimeLoopRemainder().

◆ UnrollRuntimeLoopRemainder()

bool llvm::UnrollRuntimeLoopRemainder ( Loop * L,
unsigned Count,
bool AllowExpensiveTripCount,
bool UseEpilogRemainder,
bool UnrollRemainder,
bool ForgetAllSCEV,
LoopInfo * LI,
ScalarEvolution * SE,
DominatorTree * DT,
AssumptionCache * AC,
const TargetTransformInfo * TTI,
bool PreserveLCSSA,
unsigned SCEVExpansionBudget,
bool RuntimeUnrollMultiExit,
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 577 of file LoopUnrollRuntime.cpp.

References llvm::PHINode::addIncoming(), llvm::UnrollLoopOptions::AllowExpensiveTripCount, assert(), B(), breakLoopBackedge(), canProfitablyRuntimeUnrollMultiExitLoop(), cast(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneLoopBlocks(), ConnectEpilog(), ConnectProlog(), Count, llvm::UnrollLoopOptions::Count, llvm::PHINode::Create(), llvm::IRBuilderBase::CreateAdd(), llvm::MDBuilder::createBranchWeights(), llvm::IRBuilderBase::CreateICmp(), llvm::IRBuilderBase::CreateSub(), CreateTripRemainder(), dbgs(), DL, dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), EpilogHeaderWeights, llvm::Instruction::eraseFromParent(), llvm::SCEVExpander::expandCodeFor(), F, llvm::UnrollLoopOptions::Force, llvm::UnrollLoopOptions::ForgetAllSCEV, llvm::ScalarEvolution::forgetTopmostLoop(), formDedicatedExitBlocks(), FullyUnrolled, llvm::ScalarEvolution::getAddExpr(), llvm::Constant::getAllOnesValue(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), llvm::ScalarEvolution::getConstant(), llvm::ScalarEvolution::getExitCount(), llvm::ilist_node_impl< OptionsT >::getIterator(), getLoopConvergenceHeart(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::BasicBlock::getSingleSuccessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::SCEV::getType(), llvm::Value::getType(), hasBranchWeightMD(), I, llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::Instruction::insertBefore(), is_contained(), isa(), isGuaranteedNotToBeUndefOrPoison(), llvm::SCEVExpander::isHighCostExpansion(), isInstructionTriviallyDead(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, Log2_32(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), llvm::ScalarEvolution::loopHasNoAbnormalExits(), make_early_inc_range(), MergeBlockIntoPredecessor(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RecursivelyDeleteTriviallyDeadInstructions(), RemapDbgRecordRange(), RemapInstruction(), llvm::LoopInfo::replacementPreservesLCSSAForm(), RF_IgnoreMissingLocals, RF_NoModuleLevelChanges, llvm::UnrollLoopOptions::Runtime, llvm::BranchInst::setCondition(), llvm::Instruction::setDebugLoc(), llvm::IRBuilderBase::SetInsertPoint(), llvm::Value::setName(), simplifyInstruction(), llvm::SmallVectorTemplateCommon< T, typename >::size(), SplitBlock(), SplitBlockPredecessors(), SplitEdge(), successors(), Unmodified, UnrollLoop(), llvm::UnrollLoopOptions::UnrollRemainder, UnrollRuntimeMultiExit, llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), and llvm::LoopInfoBase< BlockT, LoopT >::verify().

Referenced by UnrollAndJamLoop(), and UnrollLoop().

◆ unwrap() [1/10]

Attribute llvm::unwrap ( LLVMAttributeRef Attr)
inline

Definition at line 351 of file Attributes.h.

References llvm::Attribute::fromRawPointer().

Referenced by LLVMABIAlignmentOfType(), LLVMABISizeOfType(), LLVMAddAlias2(), LLVMAddAnalysisPasses(), LLVMAddAttributeAtIndex(), LLVMAddCallSiteAttribute(), LLVMAddCase(), LLVMAddClause(), LLVMAddDestination(), LLVMAddFunction(), LLVMAddGlobal(), LLVMAddGlobalIFunc(), LLVMAddGlobalInAddressSpace(), LLVMAddGlobalMapping(), LLVMAddHandler(), LLVMAddIncoming(), LLVMAddMetadataToInst(), LLVMAddModule(), LLVMAddModuleFlag(), LLVMAddNamedMetadataOperand(), LLVMAddTargetDependentFunctionAttr(), LLVMAddTargetLibraryInfo(), LLVMAliasGetAliasee(), LLVMAliasSetAliasee(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMAppendExistingBasicBlock(), LLVMAppendModuleInlineAsm(), LLVMArrayType(), LLVMArrayType2(), LLVMBasicBlockAsValue(), LLVMBFloatTypeInContext(), LLVMBinaryCopyMemoryBuffer(), LLVMBinaryGetType(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicCmpXchg(), LLVMBuildAtomicCmpXchgSyncScope(), LLVMBuildAtomicRMW(), LLVMBuildAtomicRMWSyncScope(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall2(), LLVMBuildCallBr(), LLVMBuildCallWithOperandBundles(), LLVMBuildCast(), LLVMBuildCatchPad(), LLVMBuildCatchRet(), LLVMBuildCatchSwitch(), LLVMBuildCleanupPad(), LLVMBuildCleanupRet(), LLVMBuildCondBr(), LLVMBuilderGetDefaultFPMathTag(), LLVMBuilderSetDefaultFPMathTag(), LLVMBuildExactSDiv(), LLVMBuildExactUDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFenceSyncScope(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFreeze(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP2(), LLVMBuildGEPWithNoWrapFlags(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP2(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntCast2(), LLVMBuildIntToPtr(), LLVMBuildInvoke2(), LLVMBuildInvokeWithOperandBundles(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad2(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMemCpy(), LLVMBuildMemMove(), LLVMBuildMemSet(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff2(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP2(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMByteOrder(), LLVMCallFrameAlignmentOfType(), LLVMCanValueUseFastMathFlags(), LLVMClearInsertionPosition(), LLVMCloneModule(), LLVMConstAdd(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstantPtrAuth(), LLVMConstArray(), LLVMConstArray2(), LLVMConstBitCast(), LLVMConstDataArray(), LLVMConstExtractElement(), LLVMConstGEP2(), LLVMConstGEPWithNoWrapFlags(), LLVMConstInBoundsGEP2(), LLVMConstInlineAsm(), LLVMConstInsertElement(), LLVMConstInt(), LLVMConstIntGetSExtValue(), LLVMConstIntGetZExtValue(), LLVMConstIntOfArbitraryPrecision(), LLVMConstIntOfString(), LLVMConstIntOfStringAndSize(), LLVMConstIntToPtr(), LLVMConstNamedStruct(), LLVMConstNeg(), LLVMConstNot(), LLVMConstNSWAdd(), LLVMConstNSWNeg(), LLVMConstNSWSub(), LLVMConstNull(), LLVMConstNUWAdd(), LLVMConstNUWNeg(), LLVMConstNUWSub(), LLVMConstPointerCast(), LLVMConstPointerNull(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealGetDouble(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstShuffleVector(), LLVMConstStringInContext(), LLVMConstStringInContext2(), LLVMConstStructInContext(), LLVMConstSub(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstVector(), LLVMConstXor(), LLVMContextDispose(), LLVMContextGetDiagnosticContext(), LLVMContextGetDiagnosticHandler(), LLVMContextSetDiagnosticHandler(), LLVMContextSetDiscardValueNames(), LLVMContextSetYieldCallback(), LLVMContextShouldDiscardValueNames(), LLVMCopyModuleFlagsMetadata(), LLVMCopyStringRepOfTargetData(), LLVMCountBasicBlocks(), LLVMCountIncoming(), LLVMCountParams(), LLVMCountParamTypes(), LLVMCountStructElementTypes(), LLVMCreateBasicBlockInContext(), LLVMCreateBinary(), LLVMCreateBuilderInContext(), LLVMCreateConstantRangeAttribute(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGenericValueOfFloat(), LLVMCreateGenericValueOfInt(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateObjectFile(), LLVMCreateOperandBundle(), LLVMCreateStringAttribute(), LLVMCreateTargetDataLayout(), LLVMCreateTargetMachineWithOptions(), LLVMCreateTypeAttribute(), LLVMDeleteBasicBlock(), LLVMDeleteFunction(), LLVMDeleteGlobal(), LLVMDeleteInstruction(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateDynamicArrayType(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateEnumerator(), LLVMDIBuilderCreateEnumeratorOfArbitraryPrecision(), LLVMDIBuilderCreateExpression(), LLVMDIBuilderCreateFile(), LLVMDIBuilderCreateForwardDecl(), LLVMDIBuilderCreateFunction(), LLVMDIBuilderCreateGlobalVariableExpression(), LLVMDIBuilderCreateImportedDeclaration(), LLVMDIBuilderCreateImportedModuleFromAlias(), LLVMDIBuilderCreateImportedModuleFromModule(), LLVMDIBuilderCreateImportedModuleFromNamespace(), LLVMDIBuilderCreateInheritance(), LLVMDIBuilderCreateLabel(), LLVMDIBuilderCreateLexicalBlock(), LLVMDIBuilderCreateLexicalBlockFile(), LLVMDIBuilderCreateMacro(), LLVMDIBuilderCreateMemberPointerType(), LLVMDIBuilderCreateMemberType(), LLVMDIBuilderCreateModule(), LLVMDIBuilderCreateNameSpace(), LLVMDIBuilderCreateNullPtrType(), LLVMDIBuilderCreateObjCIVar(), LLVMDIBuilderCreateObjCProperty(), LLVMDIBuilderCreateObjectPointerType(), LLVMDIBuilderCreateParameterVariable(), LLVMDIBuilderCreatePointerType(), LLVMDIBuilderCreateQualifiedType(), LLVMDIBuilderCreateReferenceType(), LLVMDIBuilderCreateReplaceableCompositeType(), LLVMDIBuilderCreateSetType(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubrangeType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTempMacroFile(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderFinalize(), LLVMDIBuilderFinalizeSubprogram(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueRecordAtEnd(), LLVMDIBuilderInsertDbgValueRecordBefore(), LLVMDIBuilderInsertDeclareRecordAtEnd(), LLVMDIBuilderInsertDeclareRecordBefore(), LLVMDIBuilderInsertLabelAtEnd(), LLVMDIBuilderInsertLabelBefore(), LLVMDisposeBinary(), LLVMDisposeBuilder(), LLVMDisposeDIBuilder(), LLVMDisposeExecutionEngine(), LLVMDisposeGenericValue(), LLVMDisposeMCJITMemoryManager(), LLVMDisposeMemoryBuffer(), LLVMDisposeModule(), LLVMDisposeModuleProvider(), LLVMDisposeObjectFile(), LLVMDisposeOperandBundle(), LLVMDisposePassBuilderOptions(), LLVMDisposePassManager(), LLVMDisposeRelocationIterator(), LLVMDisposeSectionIterator(), LLVMDisposeSymbolIterator(), LLVMDisposeTargetData(), LLVMDisposeTargetMachine(), LLVMDisposeTargetMachineOptions(), LLVMDoubleTypeInContext(), LLVMDumpModule(), LLVMDumpType(), LLVMDumpValue(), LLVMElementAtOffset(), LLVMEraseGlobalIFunc(), LLVMExecutionEngineGetErrMsg(), LLVMFinalizeFunctionPassManager(), LLVMFindFunction(), LLVMFloatTypeInContext(), LLVMFP128TypeInContext(), LLVMFunctionType(), LLVMGenericValueIntWidth(), LLVMGenericValueToFloat(), LLVMGenericValueToInt(), LLVMGenericValueToPointer(), LLVMGEPGetNoWrapFlags(), LLVMGEPSetNoWrapFlags(), LLVMGetAggregateElement(), LLVMGetAlignment(), LLVMGetAllocatedType(), LLVMGetArgOperand(), LLVMGetArrayLength(), LLVMGetArrayLength2(), LLVMGetAsString(), LLVMGetAtomicRMWBinOp(), LLVMGetAtomicSyncScopeID(), LLVMGetAttributeCountAtIndex(), LLVMGetAttributesAtIndex(), LLVMGetBasicBlockName(), LLVMGetBasicBlockParent(), LLVMGetBasicBlocks(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext(), LLVMGetBitcodeModuleInContext2(), LLVMGetBlockAddressBasicBlock(), LLVMGetBlockAddressFunction(), LLVMGetBufferSize(), LLVMGetBufferStart(), LLVMGetBuilderContext(), LLVMGetCallBrDefaultDest(), LLVMGetCallBrIndirectDest(), LLVMGetCallBrNumIndirectDests(), LLVMGetCalledFunctionType(), LLVMGetCalledValue(), LLVMGetCallSiteAttributeCount(), LLVMGetCallSiteAttributes(), LLVMGetCallSiteEnumAttribute(), LLVMGetCallSiteStringAttribute(), LLVMGetCastOpcode(), LLVMGetClause(), LLVMGetCmpXchgFailureOrdering(), LLVMGetCmpXchgSuccessOrdering(), LLVMGetComdat(), LLVMGetComdatSelectionKind(), LLVMGetCondition(), LLVMGetConstantPtrAuthAddrDiscriminator(), LLVMGetConstantPtrAuthDiscriminator(), LLVMGetConstantPtrAuthKey(), LLVMGetConstantPtrAuthPointer(), LLVMGetConstOpcode(), LLVMGetCurrentDebugLocation(), LLVMGetCurrentDebugLocation2(), LLVMGetDataLayoutStr(), LLVMGetDebugLocColumn(), LLVMGetDebugLocDirectory(), LLVMGetDebugLocFilename(), LLVMGetDebugLocLine(), LLVMGetDiagInfoDescription(), LLVMGetDiagInfoSeverity(), LLVMGetDLLStorageClass(), LLVMGetElementAsConstant(), LLVMGetElementType(), LLVMGetEntryBasicBlock(), LLVMGetEnumAttributeAtIndex(), LLVMGetEnumAttributeKind(), LLVMGetEnumAttributeValue(), LLVMGetExact(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFastMathFlags(), LLVMGetFCmpPredicate(), LLVMGetFirstBasicBlock(), LLVMGetFirstDbgRecord(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstGlobalIFunc(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstParam(), LLVMGetFirstUse(), LLVMGetFunctionAddress(), LLVMGetFunctionCallConv(), LLVMGetGC(), LLVMGetGEPSourceElementType(), LLVMGetGlobalIFuncResolver(), LLVMGetGlobalParent(), LLVMGetGlobalValueAddress(), LLVMGetHandlers(), LLVMGetICmpPredicate(), LLVMGetICmpSameSign(), LLVMGetIncomingBlock(), LLVMGetIncomingValue(), LLVMGetIndices(), LLVMGetInitializer(), LLVMGetInlineAsm(), LLVMGetInlineAsmAsmString(), LLVMGetInlineAsmCanUnwind(), LLVMGetInlineAsmConstraintString(), LLVMGetInlineAsmDialect(), LLVMGetInlineAsmFunctionType(), LLVMGetInlineAsmHasSideEffects(), LLVMGetInlineAsmNeedsAlignedStack(), LLVMGetInsertBlock(), LLVMGetInstructionCallConv(), LLVMGetInstructionOpcode(), LLVMGetInstructionParent(), LLVMGetIntrinsicDeclaration(), LLVMGetIntrinsicID(), LLVMGetIntTypeWidth(), LLVMGetIsDisjoint(), LLVMGetLastBasicBlock(), LLVMGetLastDbgRecord(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastGlobalAlias(), LLVMGetLastGlobalIFunc(), LLVMGetLastInstruction(), LLVMGetLastNamedMetadata(), LLVMGetLastParam(), LLVMGetLinkage(), LLVMGetMaskValue(), LLVMGetMDKindIDInContext(), LLVMGetMDNodeNumOperands(), LLVMGetMDNodeOperands(), LLVMGetMDString(), LLVMGetMetadata(), LLVMGetMetadataKind(), LLVMGetModuleContext(), LLVMGetModuleDataLayout(), LLVMGetModuleDebugMetadataVersion(), LLVMGetModuleFlag(), LLVMGetModuleIdentifier(), LLVMGetModuleInlineAsm(), LLVMGetNamedFunction(), LLVMGetNamedFunctionWithLength(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedGlobalIFunc(), LLVMGetNamedGlobalWithLength(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataName(), LLVMGetNamedMetadataNumOperands(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextDbgRecord(), LLVMGetNextFunction(), LLVMGetNextGlobal(), LLVMGetNextGlobalAlias(), LLVMGetNextGlobalIFunc(), LLVMGetNextInstruction(), LLVMGetNextNamedMetadata(), LLVMGetNextParam(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNNeg(), LLVMGetNormalDest(), LLVMGetNSW(), LLVMGetNumArgOperands(), LLVMGetNumClauses(), LLVMGetNumContainedTypes(), LLVMGetNumHandlers(), LLVMGetNumIndices(), LLVMGetNumMaskElements(), LLVMGetNumOperandBundleArgs(), LLVMGetNumOperandBundles(), LLVMGetNumOperands(), LLVMGetNumSuccessors(), LLVMGetNUW(), LLVMGetOperand(), LLVMGetOperandBundleArgAtIndex(), LLVMGetOperandBundleAtIndex(), LLVMGetOperandBundleTag(), LLVMGetOperandUse(), LLVMGetOrdering(), LLVMGetOrInsertComdat(), LLVMGetOrInsertNamedMetadata(), LLVMGetParam(), LLVMGetParamParent(), LLVMGetParams(), LLVMGetParamTypes(), LLVMGetParentCatchSwitch(), LLVMGetPersonalityFn(), LLVMGetPointerAddressSpace(), LLVMGetPointerToGlobal(), LLVMGetPoison(), LLVMGetPrefixData(), LLVMGetPreviousBasicBlock(), LLVMGetPreviousDbgRecord(), LLVMGetPreviousFunction(), LLVMGetPreviousGlobal(), LLVMGetPreviousGlobalAlias(), LLVMGetPreviousGlobalIFunc(), LLVMGetPreviousInstruction(), LLVMGetPreviousNamedMetadata(), LLVMGetPreviousParam(), LLVMGetPrologueData(), LLVMGetRawDataValues(), LLVMGetRelocationOffset(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetRelocationType(), LLVMGetRelocationTypeName(), LLVMGetReturnType(), LLVMGetSection(), LLVMGetSectionAddress(), LLVMGetSectionContainsSymbol(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSections(), LLVMGetSectionSize(), LLVMGetSourceFileName(), LLVMGetStringAttributeAtIndex(), LLVMGetStringAttributeKind(), LLVMGetStringAttributeValue(), LLVMGetStructElementTypes(), LLVMGetStructName(), LLVMGetSubprogram(), LLVMGetSubtypes(), LLVMGetSuccessor(), LLVMGetSwitchDefaultDest(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMGetSymbols(), LLVMGetSymbolSize(), LLVMGetSyncScopeID(), LLVMGetTailCallKind(), LLVMGetTarget(), LLVMGetTargetDescription(), LLVMGetTargetExtTypeIntParam(), LLVMGetTargetExtTypeName(), LLVMGetTargetExtTypeNumIntParams(), LLVMGetTargetExtTypeNumTypeParams(), LLVMGetTargetExtTypeTypeParam(), LLVMGetTargetMachineCPU(), LLVMGetTargetMachineFeatureString(), LLVMGetTargetMachineTarget(), LLVMGetTargetMachineTriple(), LLVMGetTargetName(), LLVMGetThreadLocalMode(), LLVMGetTypeAttributeValue(), LLVMGetTypeByName(), LLVMGetTypeByName2(), LLVMGetTypeContext(), LLVMGetTypeKind(), LLVMGetUndef(), LLVMGetUnnamedAddress(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGetValueContext(), LLVMGetValueKind(), LLVMGetValueName(), LLVMGetValueName2(), LLVMGetVectorSize(), LLVMGetVisibility(), LLVMGetVolatile(), LLVMGetWeak(), LLVMGlobalAddDebugInfo(), LLVMGlobalAddMetadata(), LLVMGlobalClearMetadata(), LLVMGlobalCopyAllMetadata(), LLVMGlobalEraseMetadata(), LLVMGlobalGetValueType(), LLVMGlobalSetMetadata(), LLVMHalfTypeInContext(), LLVMHasMetadata(), LLVMHasPersonalityFn(), LLVMHasPrefixData(), LLVMHasPrologueData(), LLVMHasUnnamedAddr(), LLVMInitializeFunctionPassManager(), LLVMInsertBasicBlockInContext(), LLVMInsertExistingBasicBlockAfterInsertBlock(), LLVMInsertIntoBuilder(), LLVMInsertIntoBuilderWithName(), LLVMInstructionClone(), LLVMInstructionEraseFromParent(), LLVMInstructionGetAllMetadataOtherThanDebugLoc(), LLVMInstructionGetDebugLoc(), LLVMInstructionRemoveFromParent(), LLVMInstructionSetDebugLoc(), LLVMInt128TypeInContext(), LLVMInt16TypeInContext(), LLVMInt1TypeInContext(), LLVMInt32TypeInContext(), LLVMInt64TypeInContext(), LLVMInt8TypeInContext(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntrinsicCopyOverloadedName(), LLVMIntrinsicCopyOverloadedName2(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsAMDNode(), LLVMIsAMDString(), LLVMIsATerminatorInst(), LLVMIsAtomic(), LLVMIsAtomicSingleThread(), LLVMIsAValueAsMetadata(), LLVMIsCleanup(), LLVMIsConditional(), LLVMIsConstant(), LLVMIsConstantString(), LLVMIsDeclaration(), LLVMIsEnumAttribute(), LLVMIsExternallyInitialized(), LLVMIsFunctionVarArg(), LLVMIsGlobalConstant(), LLVMIsInBounds(), LLVMIsLiteralStruct(), LLVMIsNull(), LLVMIsOpaqueStruct(), LLVMIsPackedStruct(), LLVMIsPoison(), LLVMIsRelocationIteratorAtEnd(), LLVMIsSectionIteratorAtEnd(), LLVMIsStringAttribute(), LLVMIsSymbolIteratorAtEnd(), LLVMIsTailCall(), LLVMIsThreadLocal(), LLVMIsTypeAttribute(), LLVMIsUndef(), LLVMLabelTypeInContext(), LLVMLinkModules2(), LLVMMachOUniversalBinaryCopyObjectForArch(), LLVMMDNodeInContext(), LLVMMDNodeInContext2(), LLVMMDStringInContext(), LLVMMDStringInContext2(), LLVMMetadataAsValue(), LLVMMetadataReplaceAllUsesWith(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithNameInContext(), LLVMMoveBasicBlockAfter(), LLVMMoveBasicBlockBefore(), LLVMMoveToContainingSection(), LLVMMoveToNextRelocation(), LLVMMoveToNextSection(), LLVMMoveToNextSymbol(), LLVMObjectFileCopySectionIterator(), LLVMObjectFileCopySymbolIterator(), LLVMObjectFileIsSectionIteratorAtEnd(), LLVMObjectFileIsSymbolIteratorAtEnd(), LLVMOffsetOfElement(), LLVMOrcCreateCustomMaterializationUnit(), LLVMOrcCreateLLJIT(), LLVMOrcCreateLocalLazyCallThroughManager(), LLVMOrcCreateNewThreadSafeContextFromLLVMContext(), LLVMOrcCreateNewThreadSafeModule(), LLVMOrcCreateRTDyldObjectLinkingLayerWithMCJITMemoryManagerLikeCallbacks(), LLVMOrcCreateRTDyldObjectLinkingLayerWithSectionMemoryManager(), LLVMOrcCreateStaticLibrarySearchGeneratorForPath(), LLVMOrcDisposeDefinitionGenerator(), LLVMOrcDisposeDumpObjects(), LLVMOrcDisposeIndirectStubsManager(), LLVMOrcDisposeJITTargetMachineBuilder(), LLVMOrcDisposeLazyCallThroughManager(), LLVMOrcDisposeLLJIT(), LLVMOrcDisposeLLJITBuilder(), LLVMOrcDisposeMaterializationResponsibility(), LLVMOrcDisposeMaterializationUnit(), LLVMOrcDisposeObjectLayer(), LLVMOrcDisposeThreadSafeContext(), LLVMOrcDisposeThreadSafeModule(), LLVMOrcDumpObjects_CallOperator(), LLVMOrcExecutionSessionCreateBareJITDylib(), LLVMOrcExecutionSessionCreateJITDylib(), LLVMOrcExecutionSessionGetJITDylibByName(), LLVMOrcExecutionSessionGetSymbolStringPool(), LLVMOrcExecutionSessionIntern(), LLVMOrcExecutionSessionLookup(), LLVMOrcExecutionSessionSetErrorReporter(), LLVMOrcIRTransformLayerEmit(), LLVMOrcIRTransformLayerSetTransform(), LLVMOrcJITDylibAddGenerator(), LLVMOrcJITDylibClear(), LLVMOrcJITDylibCreateResourceTracker(), LLVMOrcJITDylibDefine(), LLVMOrcJITDylibGetDefaultResourceTracker(), LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine(), LLVMOrcJITTargetMachineBuilderGetTargetTriple(), LLVMOrcJITTargetMachineBuilderSetTargetTriple(), LLVMOrcLazyReexports(), LLVMOrcLLJITAddLLVMIRModule(), LLVMOrcLLJITAddLLVMIRModuleWithRT(), LLVMOrcLLJITAddObjectFile(), LLVMOrcLLJITAddObjectFileWithRT(), LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(), LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(), LLVMOrcLLJITEnableDebugSupport(), LLVMOrcLLJITGetDataLayoutStr(), LLVMOrcLLJITGetExecutionSession(), LLVMOrcLLJITGetGlobalPrefix(), LLVMOrcLLJITGetIRTransformLayer(), LLVMOrcLLJITGetMainJITDylib(), LLVMOrcLLJITGetObjLinkingLayer(), LLVMOrcLLJITGetObjTransformLayer(), LLVMOrcLLJITGetTripleString(), LLVMOrcLLJITLookup(), LLVMOrcLLJITMangleAndIntern(), LLVMOrcLookupStateContinueLookup(), LLVMOrcMaterializationResponsibilityDefineMaterializing(), LLVMOrcMaterializationResponsibilityDelegate(), LLVMOrcMaterializationResponsibilityFailMaterialization(), LLVMOrcMaterializationResponsibilityGetExecutionSession(), LLVMOrcMaterializationResponsibilityGetInitializerSymbol(), LLVMOrcMaterializationResponsibilityGetRequestedSymbols(), LLVMOrcMaterializationResponsibilityGetSymbols(), LLVMOrcMaterializationResponsibilityGetTargetDylib(), LLVMOrcMaterializationResponsibilityNotifyEmitted(), LLVMOrcMaterializationResponsibilityNotifyResolved(), LLVMOrcMaterializationResponsibilityReplace(), LLVMOrcObjectLayerAddObjectFile(), LLVMOrcObjectLayerAddObjectFileWithRT(), LLVMOrcObjectLayerEmit(), LLVMOrcObjectTransformLayerSetTransform(), LLVMOrcReleaseResourceTracker(), LLVMOrcReleaseSymbolStringPoolEntry(), LLVMOrcResourceTrackerRemove(), LLVMOrcResourceTrackerTransferTo(), LLVMOrcRetainSymbolStringPoolEntry(), LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener(), LLVMOrcSymbolStringPoolClearDeadEntries(), LLVMOrcSymbolStringPoolEntryStr(), LLVMOrcThreadSafeModuleWithModuleDo(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPassBuilderOptionsSetAAPipeline(), LLVMPassBuilderOptionsSetCallGraphProfile(), LLVMPassBuilderOptionsSetDebugLogging(), LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll(), LLVMPassBuilderOptionsSetInlinerThreshold(), LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap(), LLVMPassBuilderOptionsSetLicmMssaOptCap(), LLVMPassBuilderOptionsSetLoopInterleaving(), LLVMPassBuilderOptionsSetLoopUnrolling(), LLVMPassBuilderOptionsSetLoopVectorization(), LLVMPassBuilderOptionsSetMergeFunctions(), LLVMPassBuilderOptionsSetSLPVectorization(), LLVMPassBuilderOptionsSetVerifyEach(), LLVMPointerSize(), LLVMPointerSizeForAS(), LLVMPointerType(), LLVMPointerTypeInContext(), LLVMPositionBuilder(), LLVMPositionBuilderAtEnd(), LLVMPositionBuilderBefore(), LLVMPositionBuilderBeforeDbgRecords(), LLVMPositionBuilderBeforeInstrAndDbgRecords(), LLVMPPCFP128TypeInContext(), LLVMPreferredAlignmentOfGlobal(), LLVMPreferredAlignmentOfType(), LLVMPrintDbgRecordToString(), LLVMPrintModuleToFile(), LLVMPrintModuleToString(), LLVMPrintTypeToString(), LLVMPrintValueToString(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMRemarkDebugLocGetSourceColumn(), LLVMRemarkDebugLocGetSourceFilePath(), LLVMRemarkDebugLocGetSourceLine(), LLVMRemarkEntryDispose(), LLVMRemarkEntryGetDebugLoc(), LLVMRemarkEntryGetFirstArg(), LLVMRemarkEntryGetFunctionName(), LLVMRemarkEntryGetHotness(), LLVMRemarkEntryGetNextArg(), LLVMRemarkEntryGetNumArgs(), LLVMRemarkEntryGetPassName(), LLVMRemarkEntryGetRemarkName(), LLVMRemarkEntryGetType(), LLVMRemarkParserDispose(), LLVMRemarkParserGetErrorMessage(), LLVMRemarkParserGetNext(), LLVMRemarkParserHasError(), LLVMRemarkStringGetData(), LLVMRemarkStringGetLen(), LLVMRemoveBasicBlockFromParent(), LLVMRemoveCallSiteEnumAttribute(), LLVMRemoveCallSiteStringAttribute(), LLVMRemoveEnumAttributeAtIndex(), LLVMRemoveGlobalIFunc(), LLVMRemoveModule(), LLVMRemoveStringAttributeAtIndex(), LLVMReplaceAllUsesWith(), LLVMReplaceArrays(), LLVMReplaceMDNodeOperandWith(), LLVMRunFunction(), LLVMRunFunctionAsMain(), LLVMRunFunctionPassManager(), LLVMRunPasses(), LLVMRunPassesOnFunction(), LLVMRunPassManager(), LLVMRunStaticConstructors(), LLVMRunStaticDestructors(), LLVMScalableVectorType(), LLVMSetAlignment(), LLVMSetArgOperand(), LLVMSetAtomicRMWBinOp(), LLVMSetAtomicSingleThread(), LLVMSetAtomicSyncScopeID(), LLVMSetCleanup(), LLVMSetCmpXchgFailureOrdering(), LLVMSetCmpXchgSuccessOrdering(), LLVMSetComdat(), LLVMSetComdatSelectionKind(), LLVMSetCondition(), LLVMSetCurrentDebugLocation(), LLVMSetCurrentDebugLocation2(), LLVMSetDataLayout(), LLVMSetDLLStorageClass(), LLVMSetExact(), LLVMSetExternallyInitialized(), LLVMSetFastMathFlags(), LLVMSetFunctionCallConv(), LLVMSetGC(), LLVMSetGlobalConstant(), LLVMSetGlobalIFuncResolver(), LLVMSetICmpSameSign(), LLVMSetInitializer(), LLVMSetInstDebugLocation(), LLVMSetInstrParamAlignment(), LLVMSetInstructionCallConv(), LLVMSetIsDisjoint(), LLVMSetIsInBounds(), LLVMSetLinkage(), LLVMSetMetadata(), LLVMSetModuleDataLayout(), LLVMSetModuleIdentifier(), LLVMSetModuleInlineAsm(), LLVMSetModuleInlineAsm2(), LLVMSetNNeg(), LLVMSetNormalDest(), LLVMSetNSW(), LLVMSetNUW(), LLVMSetOperand(), LLVMSetOrdering(), LLVMSetParamAlignment(), LLVMSetParentCatchSwitch(), LLVMSetPersonalityFn(), LLVMSetPrefixData(), LLVMSetPrologueData(), LLVMSetSection(), LLVMSetSourceFileName(), LLVMSetSubprogram(), LLVMSetSuccessor(), LLVMSetTailCall(), LLVMSetTailCallKind(), LLVMSetTarget(), LLVMSetTargetMachineAsmVerbosity(), LLVMSetTargetMachineFastISel(), LLVMSetTargetMachineGlobalISel(), LLVMSetTargetMachineGlobalISelAbort(), LLVMSetTargetMachineMachineOutliner(), LLVMSetThreadLocal(), LLVMSetThreadLocalMode(), LLVMSetUnnamedAddr(), LLVMSetUnnamedAddress(), LLVMSetUnwindDest(), LLVMSetValueName(), LLVMSetValueName2(), LLVMSetVisibility(), LLVMSetVolatile(), LLVMSetWeak(), LLVMSizeOf(), LLVMSizeOfTypeInBits(), LLVMStoreSizeOfType(), LLVMStripModuleDebugInfo(), LLVMStructCreateNamed(), LLVMStructGetTypeAtIndex(), LLVMStructSetBody(), LLVMStructTypeInContext(), LLVMTargetExtTypeInContext(), LLVMTargetHasAsmBackend(), LLVMTargetHasJIT(), LLVMTargetHasTargetMachine(), LLVMTargetMachineEmit(), LLVMTargetMachineOptionsSetABI(), LLVMTargetMachineOptionsSetCodeGenOptLevel(), LLVMTargetMachineOptionsSetCodeModel(), LLVMTargetMachineOptionsSetCPU(), LLVMTargetMachineOptionsSetFeatures(), LLVMTargetMachineOptionsSetRelocMode(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeIsSized(), LLVMTypeOf(), LLVMValueAsBasicBlock(), LLVMValueAsMetadata(), LLVMValueIsBasicBlock(), LLVMVectorType(), LLVMVerifyFunction(), LLVMVerifyModule(), LLVMViewFunctionCFG(), LLVMViewFunctionCFGOnly(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), LLVMX86AMXTypeInContext(), LLVMX86FP80TypeInContext(), parallelForEachError(), LLVMOrcLazyCallThroughManagerRef::toSymbolDependenceMap(), LLVMOrcLazyCallThroughManagerRef::toSymbolMap(), LLVMOrcLazyCallThroughManagerRef::toSymbolNameSet(), llvm::orc::CAPIDefinitionGenerator::tryToGenerate(), unwrap(), unwrap(), unwrap(), unwrap(), unwrap(), unwrap(), unwrap(), and unwrapDI().

◆ unwrap() [2/10]

◆ unwrap() [3/10]

LLVMContext ** llvm::unwrap ( LLVMContextRef * Tys)
inline

Definition at line 369 of file LLVMContext.h.

References inline, and unwrap().

◆ unwrap() [4/10]

Error llvm::unwrap ( LLVMErrorRef ErrRef)
inline

Conversion from LLVMErrorRef to Error for C error bindings.

Definition at line 1495 of file Error.h.

References Error.

◆ unwrap() [5/10]

Metadata ** llvm::unwrap ( LLVMMetadataRef * MDs)
inline

Definition at line 153 of file Metadata.h.

References inline, and unwrap().

◆ unwrap() [6/10]

Module * llvm::unwrap ( LLVMModuleProviderRef MP)
inline

Definition at line 1069 of file Module.h.

References inline, and unwrap().

◆ unwrap() [7/10]

DataLayout * llvm::unwrap ( LLVMTargetDataRef P)
inline

Definition at line 611 of file DataLayout.h.

References P.

◆ unwrap() [8/10]

Type ** llvm::unwrap ( LLVMTypeRef * Tys)
inline

Definition at line 516 of file Type.h.

References inline, and unwrap().

◆ unwrap() [9/10]

Value ** llvm::unwrap ( LLVMValueRef * Vals)
inline

Definition at line 1080 of file Value.h.

References inline, and unwrap().

◆ unwrap() [10/10]

template<typename T>
T ** llvm::unwrap ( LLVMValueRef * Vals,
unsigned Length )
inline

Definition at line 1085 of file Value.h.

References E(), I, Length, T, and unwrap().

◆ updateCGAndAnalysisManagerForCGSCCPass()

LazyCallGraph::SCC & llvm::updateCGAndAnalysisManagerForCGSCCPass ( LazyCallGraph & G,
LazyCallGraph::SCC & C,
LazyCallGraph::Node & N,
CGSCCAnalysisManager & AM,
CGSCCUpdateResult & UR,
FunctionAnalysisManager & FAM )

Helper to update the call graph after running a CGSCC pass.

CGSCC 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 1189 of file CGSCCPassManager.cpp.

References FAM, G, N, and updateCGAndAnalysisManagerForPass().

Referenced by llvm::CallGraphUpdater::reanalyzeFunction(), llvm::CoroAnnotationElidePass::run(), llvm::InlinerPass::run(), and updateCallGraphAfterCoroutineSplit().

◆ updateCGAndAnalysisManagerForFunctionPass()

LazyCallGraph::SCC & llvm::updateCGAndAnalysisManagerForFunctionPass ( LazyCallGraph & G,
LazyCallGraph::SCC & C,
LazyCallGraph::Node & N,
CGSCCAnalysisManager & AM,
CGSCCUpdateResult & UR,
FunctionAnalysisManager & FAM )

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 1182 of file CGSCCPassManager.cpp.

References FAM, G, N, and updateCGAndAnalysisManagerForPass().

Referenced by llvm::CGSCCToFunctionPassAdaptor::run(), and updateCallGraphAfterCoroutineSplit().

◆ updateChildIncompleteness()

void llvm::updateChildIncompleteness ( const DWARFDie & Die,
CompileUnit & CU,
CompileUnit::DIEInfo & ChildInfo )
static

Helper that updates the completeness of the current DIE based on the completeness of one of its children.

It depends on the incompleteness of the children already being computed.

Definition at line 760 of file DWARFLinker.cpp.

References llvm::DWARFDie::getTag(), llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Incomplete, and llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Prune.

◆ updateChildPruning()

void llvm::updateChildPruning ( const DWARFDie & Die,
CompileUnit & CU,
CompileUnit::DIEInfo & ChildInfo )
static

Definition at line 291 of file DWARFLinker.cpp.

References Info, and llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Prune.

Referenced by analyzeContextInfo().

◆ 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().

◆ updateDbgValueForSpill()

void llvm::updateDbgValueForSpill ( MachineInstr & Orig,
int FrameIndex,
Register Reg )

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 2497 of file MachineInstr.cpp.

References llvm::MachineOperand::ChangeToImmediate(), computeExprForSpill(), llvm::MachineInstr::getDebugExpressionOp(), llvm::MachineInstr::getDebugOffset(), llvm::MachineInstr::getDebugOperandsForReg(), llvm::MachineInstr::isNonListDebugValue(), and llvm::MachineOperand::setMetadata().

◆ updateIndexWPDForExports()

void llvm::updateIndexWPDForExports ( ModuleSummaryIndex & Summary,
function_ref< bool(StringRef, ValueInfo)> isExported,
std::map< ValueInfo, std::vector< VTableSlotSummary > > & LocalWPDTargetsMap )

Call after cross-module importing to update the recorded single impl devirt target names for any locals that were exported.

Definition at line 953 of file WholeProgramDevirt.cpp.

References assert(), llvm::ModuleSummaryIndex::getGlobalNameForLocal(), and T.

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

◆ updateIndirectCalls()

void llvm::updateIndirectCalls ( ModuleSummaryIndex & Index)

Update call edges for indirect calls to local functions added from SamplePGO when needed.

Normally this is done during computeDeadSymbolsAndUpdateIndirectCalls, but can be called standalone when that is not called (e.g. during testing).

Definition at line 1424 of file FunctionImport.cpp.

References dyn_cast(), and updateValueInfoForIndirectCalls().

Referenced by computeDeadSymbolsAndUpdateIndirectCalls().

◆ updateLoopMetadataDebugLocations()

void llvm::updateLoopMetadataDebugLocations ( Instruction & I,
function_ref< Metadata *(Metadata *)> Updater )

Update the debug locations contained within the MD_loop metadata attached to the instruction I, if one exists.

Updater is applied to Metadata operand in the MD_loop metadata: the returned value is included in the updated loop metadata node if it is non-null.

Definition at line 402 of file DebugInfo.cpp.

References I, and updateLoopMetadataDebugLocationsImpl().

Referenced by fixupDebugInfoPostExtraction(), fixupLineNumbers(), moveFunctionData(), and stripNonLineTableDebugInfo().

◆ updateMinLegalVectorWidthAttr()

void AttributeFuncs::updateMinLegalVectorWidthAttr ( Function & Fn,
uint64_t Width )

Update min-legal-vector-width if it is in Attribute and less than Width.

Definition at line 2729 of file Attributes.cpp.

References llvm::Function::addFnAttr(), llvm::StringRef::getAsInteger(), llvm::Function::getFnAttribute(), llvm::Attribute::getValueAsString(), llvm::Attribute::isValid(), and utostr().

Referenced by areInlineCompatible().

◆ updatePhiNodes()

void llvm::updatePhiNodes ( BasicBlock * DestBB,
BasicBlock * OldPred,
BasicBlock * NewPred,
PHINode * Until = nullptr )

Replaces all uses of OldPred with the NewPred block in all PHINodes in a block.

Definition at line 647 of file BasicBlockUtils.cpp.

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

Referenced by ehAwareSplitEdge(), and rewritePHIsForCleanupPad().

◆ updateProfileCallee()

void llvm::updateProfileCallee ( Function * Callee,
int64_t EntryDelta,
const ValueMap< const Value *, WeakTrackingVH > * VMap = nullptr )

Updates profile information by adjusting the entry count by adding EntryDelta then scaling callsite information by the new count divided by the old count.

VMap is used during inlinng to also update the new clone

Definition at line 2063 of file InlineFunction.cpp.

References llvm::ValueMap< KeyT, ValueT, Config >::count(), dyn_cast(), dyn_cast_or_null(), I, II, isa(), scaleProfData(), and llvm::PGOIndirectCallVisitor::tryGetVTableInstruction().

Referenced by updateCallProfile().

◆ updatePruning()

bool llvm::updatePruning ( const DWARFDie & Die,
CompileUnit & CU,
uint64_t ModulesEndOffset )
static

◆ updatePublicTypeTestCalls()

◆ updateRefIncompleteness()

void llvm::updateRefIncompleteness ( const DWARFDie & Die,
CompileUnit & CU,
CompileUnit::DIEInfo & RefInfo )
static

Helper that updates the completeness of the current DIE based on the completeness of the DIEs it references.

It depends on the incompleteness of the referenced DIE already being computed.

Definition at line 780 of file DWARFLinker.cpp.

References llvm::DWARFDie::getTag(), and llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Incomplete.

◆ updateVCallVisibilityInIndex()

void llvm::updateVCallVisibilityInIndex ( ModuleSummaryIndex & Index,
bool WholeProgramVisibilityEnabledInLTO,
const DenseSet< GlobalValue::GUID > & DynamicExportSymbols,
const DenseSet< GlobalValue::GUID > & VisibleToRegularObjSymbols )

If whole program visibility asserted, then upgrade all public vcall visibility metadata on vtable definition summaries to linkage unit visibility in Module summary index (for ThinLTO).

Definition at line 920 of file WholeProgramDevirt.cpp.

References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), dyn_cast(), hasWholeProgramVisibility(), P, llvm::GlobalObject::VCallVisibilityLinkageUnit, and llvm::GlobalObject::VCallVisibilityPublic.

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

◆ updateVCallVisibilityInModule()

void llvm::updateVCallVisibilityInModule ( Module & M,
bool WholeProgramVisibilityEnabledInLTO,
const DenseSet< GlobalValue::GUID > & DynamicExportSymbols,
bool ValidateAllVtablesHaveTypeInfos,
function_ref< bool(StringRef)> IsVisibleToRegularObj )

◆ UpgradeARCRuntime()

◆ UpgradeAttributes()

void llvm::UpgradeAttributes ( AttrBuilder & B)

Upgrade attributes that changed format or kind.

Definition at line 6106 of file AutoUpgrade.cpp.

References A(), B(), and llvm::StringRef::empty().

◆ UpgradeBitCastExpr()

Constant * 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 5313 of file AutoUpgrade.cpp.

References llvm::CallingConv::C, llvm::Type::getInt64Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPtrToInt(), llvm::Type::isPtrOrPtrVectorTy(), and Opc.

◆ 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 5291 of file AutoUpgrade.cpp.

References llvm::CastInst::Create(), llvm::Type::getInt64Ty(), llvm::Type::getPointerAddressSpace(), llvm::Type::isPtrOrPtrVectorTy(), and Opc.

◆ 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 5246 of file AutoUpgrade.cpp.

References assert(), dyn_cast(), F, make_early_inc_range(), UpgradeIntrinsicCall(), and UpgradeIntrinsicFunction().

◆ UpgradeDataLayoutString()

std::string llvm::UpgradeDataLayoutString ( StringRef DL,
StringRef Triple )

Upgrade the datalayout string by adding a section for address space pointers.

Definition at line 5986 of file AutoUpgrade.cpp.

References contains(), DL, Groups, I, llvm::StringRef::npos, Ref, llvm::StringRef::size(), and T.

◆ UpgradeDebugInfo()

bool llvm::UpgradeDebugInfo ( Module & M)

◆ UpgradeFunctionAttributes()

void llvm::UpgradeFunctionAttributes ( Function & F)

Correct any IR that is relying on old function attribute behavior.

Definition at line 5882 of file AutoUpgrade.cpp.

References A(), and F.

◆ UpgradeGlobalVariable()

◆ UpgradeInlineAsmString()

void llvm::UpgradeInlineAsmString ( std::string * AsmStr)

Upgrade comment in call to inline asm that represents an objc retain release marker.

Definition at line 2465 of file AutoUpgrade.cpp.

◆ upgradeInstructionLoopAttachment()

MDNode * llvm::upgradeInstructionLoopAttachment ( MDNode & N)

◆ UpgradeIntrinsicCall()

void llvm::UpgradeIntrinsicCall ( CallBase * 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 4603 of file AutoUpgrade.cpp.

References llvm::NVPTXAS::ADDRESS_SPACE_SHARED, llvm::NVPTXAS::ADDRESS_SPACE_SHARED_CLUSTER, llvm::DIExpression::append(), applyX86MaskOn1BitsVec(), llvm::CallBase::arg_size(), llvm::CallBase::args(), assert(), llvm::CallingConv::C, cast(), Data, llvm::StringSwitch< T, R >::Default(), dyn_cast(), dyn_cast_or_null(), Dynamic, llvm::Instruction::eraseFromParent(), F, llvm::ConstantPointerNull::get(), llvm::ConstantTokenNone::get(), llvm::FixedVectorType::get(), llvm::MetadataAsValue::get(), llvm::PoisonValue::get(), llvm::VectorType::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::Type::getBFloatTy(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCalledOperand(), llvm::Value::getContext(), llvm::Type::getFloatTy(), llvm::CallBase::getFunctionType(), llvm::Function::getFunctionType(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::VectorType::getInteger(), llvm::Function::getIntrinsicID(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::User::getNumOperands(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPrimitiveSizeInBits(), llvm::Function::getReturnType(), getType(), llvm::Value::getType(), getX86MaskVec(), I, isa(), llvm::Type::isIntegerTy(), llvm_unreachable, N, Offset, Ptr, llvm::Value::replaceAllUsesWith(), llvm::CallBase::setAttributes(), llvm::CallBase::setCalledFunction(), llvm::CallBase::setCalledOperand(), llvm::StringSwitch< T, R >::StartsWith(), llvm::Value::takeName(), upgradeAArch64IntrinsicCall(), upgradeAMDGCNIntrinsicCall(), upgradeARMIntrinsicCall(), upgradeDbgIntrinsicToDbgRecord(), upgradeNVVMIntrinsicCall(), and upgradeX86IntrinsicCall().

Referenced by UpgradeCallsToIntrinsic().

◆ UpgradeIntrinsicFunction()

bool llvm::UpgradeIntrinsicFunction ( Function * F,
Function *& NewFn,
bool CanUpgradeDebugIntrinsicsToRecords = true )

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 1678 of file AutoUpgrade.cpp.

References F, llvm::Intrinsic::getAttributes(), llvm::Intrinsic::getIntrinsicSignature(), and upgradeIntrinsicFunction1().

Referenced by UpgradeCallsToIntrinsic().

◆ UpgradeModuleFlags()

◆ UpgradeNVVMAnnotations()

◆ UpgradeOperandBundles()

void llvm::UpgradeOperandBundles ( std::vector< OperandBundleDef > & OperandBundles)

Upgrade operand bundles (without knowing about their user instruction).

Definition at line 6133 of file AutoUpgrade.cpp.

References erase_if(), llvm::OperandBundleDefT< InputTy >::getTag(), and llvm::OperandBundleDefT< InputTy >::inputs().

◆ 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 5265 of file AutoUpgrade.cpp.

References llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::Type::getInt64Ty(), llvm::Constant::getNullValue(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and isa().

Referenced by llvm::MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment().

◆ upper_bound() [1/2]

◆ upper_bound() [2/2]

template<typename R, typename T, typename Compare>
auto llvm::upper_bound ( R && Range,
T && Value,
Compare C )

Definition at line 1993 of file STLExtras.h.

References adl_begin(), adl_end(), llvm::CallingConv::C, Range, and T.

◆ upward_defs()

iterator_range< upward_defs_iterator > llvm::upward_defs ( const MemoryAccessPair & Pair,
DominatorTree & DT )
inline

Definition at line 1315 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,
DominatorTree & DT )
inline

Definition at line 1308 of file MemorySSA.h.

Referenced by checkClobberSanity(), and upward_defs().

◆ upward_defs_end()

upward_defs_iterator llvm::upward_defs_end ( )
inline

Definition at line 1312 of file MemorySSA.h.

Referenced by checkClobberSanity(), and upward_defs().

◆ UseContextLessSummary()

cl::opt< bool > llvm::UseContextLessSummary ( "profile-summary-contextless" ,
cl::Hidden ,
cl::desc("Merge context profiles before calculating thresholds.")  )

References llvm::cl::Hidden.

◆ UseIterativeBFIInference()

cl::opt< bool > llvm::UseIterativeBFIInference ( "use-iterative-bfi-inference" ,
cl::Hidden ,
cl::desc("Apply an iterative post-processing to infer correct BFI counts")  )

References llvm::cl::Hidden.

◆ 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.")  )

◆ useUniversalCRT()

bool llvm::useUniversalCRT ( ToolsetLayout VSLayout,
const std::string & VCToolChainPath,
llvm::Triple::ArchType TargetArch,
llvm::vfs::FileSystem & VFS )

◆ utohexstr()

◆ utostr()

std::string llvm::utostr ( uint64_t X,
bool isNeg = false )
inline

Definition at line 322 of file StringExtras.h.

References isNeg(), and X.

Referenced by AddAliasScopeMetadata(), llvm::lto::Config::addSaveTemps(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::cas::MappedFileRegionArena::create(), llvm::ModuleSummaryIndex::dumpSCCs(), formatCallSiteLocation(), llvm::AArch64SysReg::genericRegisterString(), llvm::AnonymousNameInit::getAsString(), llvm::ArgumentInit::getAsString(), llvm::BitsRecTy::getAsString(), llvm::VarBitInit::getAsString(), getCUIdentifiers(), getDebuginfodCacheKey(), getELFSectionNameForGlobal(), llvm::EVT::getEVTString(), getExtensionVersion(), llvm::ModuleSummaryIndex::getGlobalNameForLocal(), llvm::AMDGPU::getIntegerVecAttribute(), getMangledTypeStr(), llvm::SDNode::getOperationName(), getPointerAuthStableSipHash(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLoweringObjectFileWasm::getStaticCtorSection(), getStaticStructorSection(), llvm::object::MachOObjectFile::getVersionString(), itostr(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::output(), llvm::yaml::CustomMappingTraits< IdHashNodeStableMapTy >::output(), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::output(), llvm::yaml::CustomMappingTraits< std::map< uint64_t, WholeProgramDevirtResolution > >::output(), llvm::ELFExtendedAttrParser::parse(), parseInfoSectionUnitHeader(), llvm::WebAssemblyInstPrinter::printInst(), PrintStatistics(), llvm::WebAssemblyAsmPrinter::regToString(), llvm::lto::setupLLVMOptimizationRemarks(), SlotMaskToText(), splitGlobal(), updateMinLegalVectorWidthAttr(), updateNVPTXAttr(), upgradeNVVMFnVectorAttr(), upgradeSingleNVVMAnnotation(), write(), and writeDIE().

◆ val2MImm()

uint64_t llvm::val2MImm ( uint64_t Val)
inlinestatic

val2MImm - Convert an integer immediate value to target MImm immediate.

Definition at line 359 of file VE.h.

References countl_one(), and countl_zero().

Referenced by llvm::VEInstrInfo::foldImmediate().

◆ valTypesFromMVTs()

◆ ValueIs()

template<class InnerMatcher>
detail::ValueIsMatcher< InnerMatcher > llvm::ValueIs ( const InnerMatcher & ValueMatcher)

Matches an std::optional<T> with a value that conforms to an inner matcher.

To match std::nullopt you could use Eq(std::nullopt).

Definition at line 104 of file SupportHelpers.h.

◆ VarAndRedzoneSize()

uint64_t llvm::VarAndRedzoneSize ( uint64_t Size,
uint64_t Granularity,
uint64_t Alignment )
static

Definition at line 40 of file ASanStackFrameLayout.cpp.

References alignTo(), and Size.

Referenced by ComputeASanStackFrameLayout().

◆ VCMPOpcodeToVPT()

unsigned llvm::VCMPOpcodeToVPT ( unsigned Opcode)
inlinestatic

Definition at line 585 of file ARMBaseInstrInfo.h.

Referenced by findVCMPToFoldIntoVPST(), and IsVCMP().

◆ VCTPOpcodeToLSTP()

unsigned llvm::VCTPOpcodeToLSTP ( unsigned Opcode,
bool IsDoLoop )
inlinestatic

Definition at line 25 of file MVETailPredUtils.h.

References llvm_unreachable.

◆ VECondCodeToString()

◆ VECondCodeToVal()

◆ VERDToString()

◆ VERDToVal()

◆ 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 7550 of file Verifier.cpp.

References F.

Referenced by generateReproducer(), llvm::ScalarEvolution::isBasicBlockEntryGuardedByCond(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), LLVMVerifyFunction(), postSplitCleanup(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::VerifierAnalysis::run(), llvm::sandboxir::Utils::verifyFunction(), and llvm::slpvectorizer::BoUpSLP::~BoUpSLP().

◆ verifyIntrinsicTables()

void llvm::verifyIntrinsicTables ( )
static

◆ verifyKeepChain()

void llvm::verifyKeepChain ( CompileUnit & CU)
static

Verify the keep chain by looking for DIEs that are kept but who's parent isn't.

Definition at line 1075 of file DWARFLinker.cpp.

References llvm::DWARFDie::children(), llvm::WithColor::error(), errs(), formatv(), report_fatal_error(), and reverse().

Referenced by llvm::dwarf_linker::classic::DWARFLinker::link().

◆ verifyMachineFunction()

void llvm::verifyMachineFunction ( const std::string & Banner,
const MachineFunction & MF )

Definition at line 417 of file MachineVerifier.cpp.

References errs().

Referenced by llvm::VerifyInstrumentation::registerCallbacks().

◆ verifyModule()

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 7561 of file Verifier.cpp.

References F.

Referenced by LLVMVerifyModule(), parseAndVerify(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::VerifierAnalysis::run(), UpgradeDebugInfo(), and verifyLoadedModule().

◆ verifySafepointIR()

void llvm::verifySafepointIR ( Function & F)

Run the safepoint verifier over a single function. Crashes on failure.

Definition at line 235 of file SafepointIRVerifier.cpp.

References F, and pass.

◆ VerifyScheduling()

cl::opt< bool > llvm::VerifyScheduling ( "verify-misched" ,
cl::Hidden ,
cl::desc("Verify machine instrs before and after machine scheduling")  )

References llvm::cl::Hidden.

◆ verifyVPlanIsValid()

bool llvm::verifyVPlanIsValid ( const VPlan & Plan,
bool VerifyLate = false )

Verify invariants for general VPlans.

If VerifyLate is passed, skip some checks that are not applicable at later stages of the transform pipeline. Currently it checks the following:

  1. Region/Block verification: Check the Region/Block verification invariants for every region in the H-CFG.
  2. all phi-like recipes must be at the beginning of a block, with no other recipes in between. Note that currently there is still an exception for VPBlendRecipes.

Definition at line 491 of file VPlanVerifier.cpp.

References llvm::DominatorTreeBase< NodeT, IsPostDom >::recalculate(), and Verifier.

Referenced by llvm::LoopVectorizationPlanner::executePlan(), llvm::VPlanTransforms::runPass(), and llvm::VPlanTransforms::runPass().

◆ versionCallSite()

CallBase & llvm::versionCallSite ( CallBase & CB,
Value * Callee,
MDNode * BranchWeights )

Predicate and clone the given call site.

This function creates an if-then-else structure at the location of the call site. The "if" condition compares the call site's called value to the given callee. The original call site is moved into the "else" block, and a clone of the call site is placed in the "then" block. The cloned instruction is returned.

Definition at line 383 of file CallPromotionUtils.cpp.

References Cond, llvm::CallBase::getCalledOperand(), llvm::Value::getType(), and versionCallSiteWithCond().

Referenced by promoteCallWithIfThenElse(), and promoteCallWithIfThenElse().

◆ VEValToCondCode()

◆ VEValToRD()

VERD::RoundingMode llvm::VEValToRD ( unsigned Val)
inlinestatic

◆ ViewGraph()

◆ viewGraphForFunction()

◆ ViewMISchedDAGs()

cl::opt< bool > llvm::ViewMISchedDAGs ( "view-misched-dags" ,
cl::Hidden ,
cl::desc("Pop up a window to show MISched dags after they are processed")  )

References llvm::cl::Hidden.

◆ viewRegion() [1/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 240 of file RegionPrinter.cpp.

References createRegionViewerPass(), F, and invokeFunctionPass().

◆ viewRegion() [2/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 238 of file RegionPrinter.cpp.

References viewRegionInfo().

Referenced by llvm::RegionInfo::view().

◆ viewRegionOnly() [1/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 246 of file RegionPrinter.cpp.

References createRegionOnlyViewerPass(), F, and invokeFunctionPass().

◆ viewRegionOnly() [2/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 244 of file RegionPrinter.cpp.

References viewRegionInfo().

Referenced by llvm::RegionInfo::viewOnly().

◆ visitAll()

template<typename SV>
void llvm::visitAll ( const SCEV * Root,
SV & Visitor )

◆ visitErrors()

template<typename HandlerT>
void llvm::visitErrors ( const Error & E,
HandlerT H )

Visit all the ErrorInfo(s) contained in E by passing them to the respective handler, without consuming the error.

Definition at line 1002 of file Error.h.

◆ vp_depth_first_deep() [1/2]

iterator_range< df_iterator< VPBlockDeepTraversalWrapper< const VPBlockBase * > > > llvm::vp_depth_first_deep ( const VPBlockBase * G)
inline

Definition at line 248 of file VPlanCFG.h.

References depth_first(), and G.

◆ vp_depth_first_deep() [2/2]

◆ vp_depth_first_shallow() [1/2]

iterator_range< df_iterator< VPBlockShallowTraversalWrapper< const VPBlockBase * > > > llvm::vp_depth_first_shallow ( const VPBlockBase * G)
inline

Definition at line 221 of file VPlanCFG.h.

References depth_first(), and G.

◆ vp_depth_first_shallow() [2/2]

◆ vp_post_order_deep()

iterator_range< po_iterator< VPBlockDeepTraversalWrapper< VPBlockBase * > > > llvm::vp_post_order_deep ( VPBlockBase * G)
inline

Returns an iterator range to traverse the graph starting at G in post order while traversing through region blocks.

Definition at line 236 of file VPlanCFG.h.

References G, and post_order().

Referenced by llvm::VPlanTransforms::removeDeadRecipes().

◆ vp_post_order_shallow()

iterator_range< po_iterator< VPBlockShallowTraversalWrapper< VPBlockBase * > > > llvm::vp_post_order_shallow ( VPBlockBase * G)
inline

Returns an iterator range to traverse the graph starting at G in post order.

The iterator won't traverse through region blocks.

Definition at line 229 of file VPlanCFG.h.

References G, and post_order().

Referenced by llvm::VPlanTransforms::createLoopRegions().

◆ warnToStderr()

void llvm::warnToStderr ( Error Err)

Definition at line 1300 of file ArchiveWriter.cpp.

References errs(), and logAllUnhandledErrors().

◆ widenShuffleMaskElts() [1/2]

bool llvm::widenShuffleMaskElts ( ArrayRef< int > M,
SmallVectorImpl< int > & NewMask )

A variant of the previous method which is specialized for Scale=2, and treats -1 as undef and allows widening when a wider element is partially undef in the narrow form of the mask.

This transformation discards information about which bytes in the original shuffle were undef.

Definition at line 591 of file VectorUtils.cpp.

References assert(), llvm::SmallVectorImpl< T >::clear(), M0(), M1(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

◆ widenShuffleMaskElts() [2/2]

bool llvm::widenShuffleMaskElts ( int Scale,
ArrayRef< int > Mask,
SmallVectorImpl< int > & ScaledMask )

Try to transform a shuffle mask by replacing elements with the scaled index for an equivalent mask of widened elements.

If all mask elements that would map to a wider element of the new mask are the same negative number (sentinel value), that element of the new mask is the same value. If any element in a given slice is negative and some other element in that slice is not the same value, return false (partial matches with sentinel values are not allowed).

Example with Scale = 4: <16 x i8> <12, 13, 14, 15, 8, 9, 10, 11, 0, 1, 2, 3, -1, -1, -1, -1> --> <4 x i32> <3, 2, 0, -1>

This is the reverse process of narrowing shuffle mask elements if it succeeds. This transform is not always possible because indexes may not divide evenly (scale down) to map to wider vector elements.

Definition at line 540 of file VectorUtils.cpp.

References all_equal(), assert(), llvm::SmallVectorImpl< T >::assign(), llvm::SmallVectorImpl< T >::clear(), llvm::ArrayRef< T >::front(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::ArrayRef< T >::size(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by combineShuffleOfBitcast(), getShuffleMaskWithWidestElts(), scaleShuffleMaskElts(), tryWidenMaskForShuffle(), tryWidenMaskForShuffle(), and widenShuffleMask().

◆ widenWidenableBranch()

void llvm::widenWidenableBranch ( BranchInst * WidenableBR,
Value * NewCond )

Given a branch we know is widenable (defined per Analysis/GuardUtils.h), widen it such that condition 'NewCond' is also known to hold on the taken path.

Branch remains widenable after transform.

Definition at line 82 of file GuardUtils.cpp.

References assert(), B(), llvm::CallingConv::C, cast(), llvm::BranchInst::getCondition(), llvm::ilist_node_impl< OptionsT >::getIterator(), isWidenableBranch(), llvm::Instruction::moveBefore(), parseWidenableBranch(), and llvm::BranchInst::setCondition().

◆ wouldInstructionBeTriviallyDead()

◆ wouldInstructionBeTriviallyDeadOnUnusedPaths()

bool llvm::wouldInstructionBeTriviallyDeadOnUnusedPaths ( Instruction * I,
const TargetLibraryInfo * TLI = nullptr )

Return true if the result produced by the instruction has no side effects on any paths other than where it is used.

This is less conservative than wouldInstructionBeTriviallyDead which is based on the assumption that the use count will be 0. An example usage of this API is for identifying instructions that can be sunk down to use(s).

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Definition at line 409 of file Local.cpp.

References dyn_cast(), I, II, and wouldInstructionBeTriviallyDead().

◆ wrap() [1/7]

LLVMAttributeRef llvm::wrap ( Attribute Attr)
inline

Definition at line 346 of file Attributes.h.

References llvm::Attribute::getRawPointer().

Referenced by getMDNodeOperandImpl(), if(), if(), llvm_getMetadata(), LLVMAddAlias2(), LLVMAddFunction(), LLVMAddGlobal(), LLVMAddGlobalIFunc(), LLVMAddGlobalInAddressSpace(), LLVMAliasGetAliasee(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMArrayType(), LLVMArrayType2(), LLVMBasicBlockAsValue(), LLVMBinaryCopyMemoryBuffer(), LLVMBlockAddress(), LLVMBuildAdd(), LLVMBuildAddrSpaceCast(), LLVMBuildAggregateRet(), LLVMBuildAlloca(), LLVMBuildAnd(), LLVMBuildArrayAlloca(), LLVMBuildArrayMalloc(), LLVMBuildAShr(), LLVMBuildAtomicCmpXchg(), LLVMBuildAtomicCmpXchgSyncScope(), LLVMBuildAtomicRMW(), LLVMBuildAtomicRMWSyncScope(), LLVMBuildBinOp(), LLVMBuildBitCast(), LLVMBuildBr(), LLVMBuildCall2(), LLVMBuildCallBr(), LLVMBuildCallWithOperandBundles(), LLVMBuildCast(), LLVMBuildCatchPad(), LLVMBuildCatchRet(), LLVMBuildCatchSwitch(), LLVMBuildCleanupPad(), LLVMBuildCleanupRet(), LLVMBuildCondBr(), LLVMBuilderGetDefaultFPMathTag(), LLVMBuildExactSDiv(), LLVMBuildExactUDiv(), LLVMBuildExtractElement(), LLVMBuildExtractValue(), LLVMBuildFAdd(), LLVMBuildFCmp(), LLVMBuildFDiv(), LLVMBuildFence(), LLVMBuildFenceSyncScope(), LLVMBuildFMul(), LLVMBuildFNeg(), LLVMBuildFPCast(), LLVMBuildFPExt(), LLVMBuildFPToSI(), LLVMBuildFPToUI(), LLVMBuildFPTrunc(), LLVMBuildFree(), LLVMBuildFreeze(), LLVMBuildFRem(), LLVMBuildFSub(), LLVMBuildGEP2(), LLVMBuildGEPWithNoWrapFlags(), LLVMBuildGlobalString(), LLVMBuildGlobalStringPtr(), LLVMBuildICmp(), LLVMBuildInBoundsGEP2(), LLVMBuildIndirectBr(), LLVMBuildInsertElement(), LLVMBuildInsertValue(), LLVMBuildIntCast(), LLVMBuildIntCast2(), LLVMBuildIntToPtr(), LLVMBuildInvoke2(), LLVMBuildInvokeWithOperandBundles(), LLVMBuildIsNotNull(), LLVMBuildIsNull(), LLVMBuildLandingPad(), LLVMBuildLoad2(), LLVMBuildLShr(), LLVMBuildMalloc(), LLVMBuildMemCpy(), LLVMBuildMemMove(), LLVMBuildMemSet(), LLVMBuildMul(), LLVMBuildNeg(), LLVMBuildNot(), LLVMBuildNSWAdd(), LLVMBuildNSWMul(), LLVMBuildNSWNeg(), LLVMBuildNSWSub(), LLVMBuildNUWAdd(), LLVMBuildNUWMul(), LLVMBuildNUWNeg(), LLVMBuildNUWSub(), LLVMBuildOr(), LLVMBuildPhi(), LLVMBuildPointerCast(), LLVMBuildPtrDiff2(), LLVMBuildPtrToInt(), LLVMBuildResume(), LLVMBuildRet(), LLVMBuildRetVoid(), LLVMBuildSDiv(), LLVMBuildSelect(), LLVMBuildSExt(), LLVMBuildSExtOrBitCast(), LLVMBuildShl(), LLVMBuildShuffleVector(), LLVMBuildSIToFP(), LLVMBuildSRem(), LLVMBuildStore(), LLVMBuildStructGEP2(), LLVMBuildSub(), LLVMBuildSwitch(), LLVMBuildTrunc(), LLVMBuildTruncOrBitCast(), LLVMBuildUDiv(), LLVMBuildUIToFP(), LLVMBuildUnreachable(), LLVMBuildURem(), LLVMBuildVAArg(), LLVMBuildXor(), LLVMBuildZExt(), LLVMBuildZExtOrBitCast(), LLVMCloneModule(), LLVMConstAdd(), LLVMConstAddrSpaceCast(), LLVMConstAllOnes(), LLVMConstantPtrAuth(), LLVMConstArray(), LLVMConstArray2(), LLVMConstBitCast(), LLVMConstDataArray(), LLVMConstExtractElement(), LLVMConstGEP2(), LLVMConstGEPWithNoWrapFlags(), LLVMConstInBoundsGEP2(), LLVMConstInlineAsm(), LLVMConstInsertElement(), LLVMConstInt(), LLVMConstIntOfArbitraryPrecision(), LLVMConstIntOfString(), LLVMConstIntOfStringAndSize(), LLVMConstIntToPtr(), LLVMConstNamedStruct(), LLVMConstNeg(), LLVMConstNot(), LLVMConstNSWAdd(), LLVMConstNSWNeg(), LLVMConstNSWSub(), LLVMConstNull(), LLVMConstNUWAdd(), LLVMConstNUWNeg(), LLVMConstNUWSub(), LLVMConstPointerCast(), LLVMConstPointerNull(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstShuffleVector(), LLVMConstStringInContext(), LLVMConstStringInContext2(), LLVMConstStructInContext(), LLVMConstSub(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstVector(), LLVMConstXor(), LLVMContextCreate(), LLVMCopyModuleFlagsMetadata(), LLVMCreateBasicBlockInContext(), LLVMCreateBinary(), LLVMCreateBuilderInContext(), LLVMCreateConstantRangeAttribute(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateExecutionEngineForModule(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGDBRegistrationListener(), LLVMCreateGenericValueOfFloat(), LLVMCreateGenericValueOfInt(), LLVMCreateGenericValueOfPointer(), LLVMCreateIntelJITEventListener(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMCreateMemoryBufferWithContentsOfFile(), LLVMCreateMemoryBufferWithMemoryRange(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMCreateMemoryBufferWithSTDIN(), LLVMCreateObjectFile(), LLVMCreateOperandBundle(), LLVMCreateOProfileJITEventListener(), LLVMCreatePassBuilderOptions(), LLVMCreatePassManager(), LLVMCreatePerfJITEventListener(), LLVMCreateSimpleMCJITMemoryManager(), LLVMCreateStringAttribute(), LLVMCreateTargetData(), LLVMCreateTargetDataLayout(), LLVMCreateTargetMachineOptions(), LLVMCreateTargetMachineWithOptions(), LLVMCreateTypeAttribute(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateDynamicArrayType(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateEnumerator(), LLVMDIBuilderCreateEnumeratorOfArbitraryPrecision(), LLVMDIBuilderCreateExpression(), LLVMDIBuilderCreateFile(), LLVMDIBuilderCreateForwardDecl(), LLVMDIBuilderCreateFunction(), LLVMDIBuilderCreateGlobalVariableExpression(), LLVMDIBuilderCreateImportedDeclaration(), LLVMDIBuilderCreateImportedModuleFromAlias(), LLVMDIBuilderCreateImportedModuleFromModule(), LLVMDIBuilderCreateImportedModuleFromNamespace(), LLVMDIBuilderCreateInheritance(), LLVMDIBuilderCreateLabel(), LLVMDIBuilderCreateLexicalBlock(), LLVMDIBuilderCreateLexicalBlockFile(), LLVMDIBuilderCreateMacro(), LLVMDIBuilderCreateMemberPointerType(), LLVMDIBuilderCreateMemberType(), LLVMDIBuilderCreateModule(), LLVMDIBuilderCreateNameSpace(), LLVMDIBuilderCreateNullPtrType(), LLVMDIBuilderCreateObjCIVar(), LLVMDIBuilderCreateObjCProperty(), LLVMDIBuilderCreateObjectPointerType(), LLVMDIBuilderCreateParameterVariable(), LLVMDIBuilderCreatePointerType(), LLVMDIBuilderCreateQualifiedType(), LLVMDIBuilderCreateReferenceType(), LLVMDIBuilderCreateReplaceableCompositeType(), LLVMDIBuilderCreateSetType(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubrangeType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTempMacroFile(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueRecordAtEnd(), LLVMDIBuilderInsertDbgValueRecordBefore(), LLVMDIBuilderInsertDeclareRecordAtEnd(), LLVMDIBuilderInsertDeclareRecordBefore(), LLVMDIBuilderInsertLabelAtEnd(), LLVMDIBuilderInsertLabelBefore(), LLVMDIGlobalVariableExpressionGetExpression(), LLVMDIGlobalVariableExpressionGetVariable(), LLVMDILocationGetInlinedAt(), LLVMDILocationGetScope(), LLVMDIScopeGetFile(), LLVMDIVariableGetFile(), LLVMDIVariableGetScope(), LLVMFindFunction(), LLVMFunctionType(), LLVMGetAggregateElement(), LLVMGetAllocatedType(), LLVMGetArgOperand(), LLVMGetAttributesAtIndex(), LLVMGetBasicBlockParent(), LLVMGetBasicBlocks(), LLVMGetBasicBlockTerminator(), LLVMGetBitcodeModuleInContext(), LLVMGetBitcodeModuleInContext2(), LLVMGetBlockAddressBasicBlock(), LLVMGetBlockAddressFunction(), LLVMGetBuilderContext(), LLVMGetCallBrDefaultDest(), LLVMGetCallBrIndirectDest(), LLVMGetCalledFunctionType(), LLVMGetCalledValue(), LLVMGetCallSiteAttributes(), LLVMGetCallSiteEnumAttribute(), LLVMGetCallSiteStringAttribute(), LLVMGetClause(), LLVMGetComdat(), LLVMGetCondition(), LLVMGetConstantPtrAuthAddrDiscriminator(), LLVMGetConstantPtrAuthDiscriminator(), LLVMGetConstantPtrAuthKey(), LLVMGetConstantPtrAuthPointer(), LLVMGetCurrentDebugLocation(), LLVMGetCurrentDebugLocation2(), LLVMGetElementAsConstant(), LLVMGetElementType(), LLVMGetEntryBasicBlock(), LLVMGetEnumAttributeAtIndex(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFirstBasicBlock(), LLVMGetFirstDbgRecord(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstGlobalIFunc(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstParam(), LLVMGetFirstTarget(), LLVMGetFirstUse(), LLVMGetGEPSourceElementType(), LLVMGetGlobalContext(), LLVMGetGlobalIFuncResolver(), LLVMGetGlobalParent(), LLVMGetHandlers(), LLVMGetIncomingBlock(), LLVMGetIncomingValue(), LLVMGetInitializer(), LLVMGetInlineAsm(), LLVMGetInsertBlock(), LLVMGetInstructionParent(), LLVMGetIntrinsicDeclaration(), LLVMGetLastBasicBlock(), LLVMGetLastDbgRecord(), LLVMGetLastFunction(), LLVMGetLastGlobal(), LLVMGetLastGlobalAlias(), LLVMGetLastGlobalIFunc(), LLVMGetLastInstruction(), LLVMGetLastNamedMetadata(), LLVMGetLastParam(), LLVMGetMDNodeOperands(), LLVMGetMetadata(), LLVMGetModuleContext(), LLVMGetModuleDataLayout(), LLVMGetModuleFlag(), LLVMGetNamedFunction(), LLVMGetNamedFunctionWithLength(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedGlobalIFunc(), LLVMGetNamedGlobalWithLength(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextDbgRecord(), LLVMGetNextFunction(), LLVMGetNextGlobal(), LLVMGetNextGlobalAlias(), LLVMGetNextGlobalIFunc(), LLVMGetNextInstruction(), LLVMGetNextNamedMetadata(), LLVMGetNextParam(), LLVMGetNextTarget(), LLVMGetNextUse(), LLVMGetNormalDest(), LLVMGetOperand(), LLVMGetOperandBundleArgAtIndex(), LLVMGetOperandBundleAtIndex(), LLVMGetOperandUse(), LLVMGetOrInsertComdat(), LLVMGetOrInsertNamedMetadata(), LLVMGetParam(), LLVMGetParamParent(), LLVMGetParams(), LLVMGetParamTypes(), LLVMGetParentCatchSwitch(), LLVMGetPersonalityFn(), LLVMGetPoison(), LLVMGetPrefixData(), LLVMGetPreviousBasicBlock(), LLVMGetPreviousDbgRecord(), LLVMGetPreviousFunction(), LLVMGetPreviousGlobal(), LLVMGetPreviousGlobalAlias(), LLVMGetPreviousGlobalIFunc(), LLVMGetPreviousInstruction(), LLVMGetPreviousNamedMetadata(), LLVMGetPreviousParam(), LLVMGetPrologueData(), LLVMGetRelocations(), LLVMGetRelocationSymbol(), LLVMGetReturnType(), LLVMGetSections(), LLVMGetStringAttributeAtIndex(), LLVMGetStructElementTypes(), LLVMGetSubprogram(), LLVMGetSubtypes(), LLVMGetSuccessor(), LLVMGetSwitchDefaultDest(), LLVMGetSymbols(), LLVMGetTargetExtTypeTypeParam(), LLVMGetTargetFromName(), LLVMGetTargetFromTriple(), LLVMGetTargetMachineTarget(), LLVMGetTypeAttributeValue(), LLVMGetTypeByName(), LLVMGetTypeByName2(), LLVMGetTypeContext(), LLVMGetUndef(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGetValueContext(), LLVMGlobalGetValueType(), LLVMInsertBasicBlockInContext(), LLVMInstructionClone(), LLVMInstructionGetDebugLoc(), LLVMIntPtrType(), LLVMIntPtrTypeForAS(), LLVMIntPtrTypeForASInContext(), LLVMIntPtrTypeInContext(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsATerminatorInst(), LLVMLabelTypeInContext(), LLVMMachOUniversalBinaryCopyObjectForArch(), LLVMMDNodeInContext(), LLVMMDNodeInContext2(), LLVMMDStringInContext(), LLVMMDStringInContext2(), LLVMMetadataAsValue(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithName(), LLVMModuleCreateWithNameInContext(), LLVMObjectFileCopySectionIterator(), LLVMObjectFileCopySymbolIterator(), LLVMOrcAbsoluteSymbols(), LLVMOrcCreateCustomCAPIDefinitionGenerator(), LLVMOrcCreateCustomMaterializationUnit(), LLVMOrcCreateDumpObjects(), LLVMOrcCreateDynamicLibrarySearchGeneratorForPath(), LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess(), LLVMOrcCreateLLJIT(), LLVMOrcCreateLLJITBuilder(), LLVMOrcCreateLocalIndirectStubsManager(), LLVMOrcCreateLocalLazyCallThroughManager(), LLVMOrcCreateNewThreadSafeContext(), LLVMOrcCreateNewThreadSafeContextFromLLVMContext(), LLVMOrcCreateNewThreadSafeModule(), LLVMOrcCreateRTDyldObjectLinkingLayerWithMCJITMemoryManagerLikeCallbacks(), LLVMOrcCreateRTDyldObjectLinkingLayerWithSectionMemoryManager(), LLVMOrcCreateStaticLibrarySearchGeneratorForPath(), LLVMOrcDumpObjects_CallOperator(), LLVMOrcExecutionSessionCreateBareJITDylib(), LLVMOrcExecutionSessionCreateJITDylib(), LLVMOrcExecutionSessionGetJITDylibByName(), LLVMOrcExecutionSessionGetSymbolStringPool(), LLVMOrcExecutionSessionIntern(), LLVMOrcExecutionSessionLookup(), LLVMOrcExecutionSessionSetErrorReporter(), LLVMOrcIRTransformLayerSetTransform(), LLVMOrcJITDylibClear(), LLVMOrcJITDylibCreateResourceTracker(), LLVMOrcJITDylibDefine(), LLVMOrcJITDylibGetDefaultResourceTracker(), LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine(), LLVMOrcJITTargetMachineBuilderDetectHost(), LLVMOrcLazyReexports(), LLVMOrcLLJITAddLLVMIRModule(), LLVMOrcLLJITAddLLVMIRModuleWithRT(), LLVMOrcLLJITAddObjectFile(), LLVMOrcLLJITAddObjectFileWithRT(), LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(), LLVMOrcLLJITEnableDebugSupport(), LLVMOrcLLJITGetExecutionSession(), LLVMOrcLLJITGetIRTransformLayer(), LLVMOrcLLJITGetMainJITDylib(), LLVMOrcLLJITGetObjLinkingLayer(), LLVMOrcLLJITGetObjTransformLayer(), LLVMOrcLLJITLookup(), LLVMOrcLLJITMangleAndIntern(), LLVMOrcMaterializationResponsibilityDefineMaterializing(), LLVMOrcMaterializationResponsibilityDelegate(), LLVMOrcMaterializationResponsibilityGetExecutionSession(), LLVMOrcMaterializationResponsibilityGetInitializerSymbol(), LLVMOrcMaterializationResponsibilityGetRequestedSymbols(), LLVMOrcMaterializationResponsibilityGetSymbols(), LLVMOrcMaterializationResponsibilityGetTargetDylib(), LLVMOrcMaterializationResponsibilityNotifyEmitted(), LLVMOrcMaterializationResponsibilityNotifyResolved(), LLVMOrcMaterializationResponsibilityReplace(), LLVMOrcObjectLayerAddObjectFile(), LLVMOrcObjectLayerAddObjectFileWithRT(), LLVMOrcObjectTransformLayerSetTransform(), LLVMOrcResourceTrackerRemove(), LLVMOrcThreadSafeModuleWithModuleDo(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPointerType(), LLVMPointerTypeInContext(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMRemarkDebugLocGetSourceFilePath(), LLVMRemarkEntryGetDebugLoc(), LLVMRemarkEntryGetFunctionName(), LLVMRemarkEntryGetPassName(), LLVMRemarkEntryGetRemarkName(), LLVMRemarkParserCreateBitstream(), LLVMRemarkParserCreateYAML(), LLVMRemarkParserGetNext(), LLVMRemoveModule(), LLVMRunFunction(), LLVMScalableVectorType(), LLVMSizeOf(), LLVMStructCreateNamed(), LLVMStructGetTypeAtIndex(), LLVMStructTypeInContext(), LLVMTargetExtTypeInContext(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeOf(), LLVMValueAsBasicBlock(), LLVMValueAsMetadata(), LLVMVectorType(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToMemoryBuffer(), LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit::materialize(), parallelForEachError(), llvm::orc::CAPIDefinitionGenerator::tryToGenerate(), and wrap().

◆ wrap() [2/7]

◆ wrap() [3/7]

LLVMTargetDataRef llvm::wrap ( const DataLayout * P)
inline

Definition at line 615 of file DataLayout.h.

References P.

◆ wrap() [4/7]

LLVMContextRef * llvm::wrap ( const LLVMContext ** Tys)
inline

Definition at line 373 of file LLVMContext.h.

◆ wrap() [5/7]

LLVMValueRef * llvm::wrap ( const Value ** Vals)
inline

Definition at line 1094 of file Value.h.

◆ wrap() [6/7]

LLVMErrorRef llvm::wrap ( Error Err)
inline

Conversion from Error to LLVMErrorRef for C error bindings.

Definition at line 1490 of file Error.h.

◆ wrap() [7/7]

LLVMTypeRef * llvm::wrap ( Type ** Tys)
inline

Definition at line 520 of file Type.h.

◆ write()

Error llvm::write ( MCStreamer & Out,
ArrayRef< std::string > Inputs,
OnCuIndexOverflow OverflowOptValue )

◆ write32AArch64Addr()

void llvm::write32AArch64Addr ( void * T,
uint64_t s,
uint64_t p,
int shift )
static

◆ write32AArch64Imm()

void llvm::write32AArch64Imm ( uint8_t * T,
uint64_t imm,
uint32_t rangeLimit )
static

◆ write32AArch64Ldr()

void llvm::write32AArch64Ldr ( uint8_t * T,
uint64_t imm )
static

◆ write_double()

void llvm::write_double ( raw_ostream & S,
double D,
FloatStyle Style,
std::optional< size_t > Precision = std::nullopt )

◆ write_hex()

◆ write_integer() [1/6]

void llvm::write_integer ( raw_ostream & S,
int N,
size_t MinDigits,
IntegerStyle Style )

Definition at line 109 of file NativeFormatting.cpp.

References N, and write_signed().

◆ write_integer() [2/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 N, and write_signed().

◆ write_integer() [3/6]

void llvm::write_integer ( raw_ostream & S,
long N,
size_t MinDigits,
IntegerStyle Style )

Definition at line 119 of file NativeFormatting.cpp.

References N, and write_signed().

◆ write_integer() [4/6]

◆ 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 N, and write_unsigned().

◆ write_integer() [6/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 N, and write_unsigned().

◆ writeArchive()

Error llvm::writeArchive ( StringRef ArcName,
ArrayRef< NewArchiveMember > NewMembers,
SymtabWritingMode WriteSymtab,
object::Archive::Kind Kind,
bool Deterministic,
bool Thin,
std::unique_ptr< MemoryBuffer > OldArchiveBuf = nullptr,
std::optional< bool > IsEC = std::nullopt,
function_ref< void(Error)> Warn = warnToStderr )

◆ writeArchiveToBuffer()

Expected< std::unique_ptr< MemoryBuffer > > llvm::writeArchiveToBuffer ( ArrayRef< NewArchiveMember > NewMembers,
SymtabWritingMode WriteSymtab,
object::Archive::Kind Kind,
bool Deterministic,
bool Thin,
function_ref< void(Error)> Warn = warnToStderr )

◆ writeArchiveToStream()

◆ 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 5568 of file BitcodeWriter.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), BWH_HeaderSize, llvm::SmallVectorTemplateCommon< T, typename >::data(), emitDarwinBCHeaderAndTrailer(), llvm::SmallVectorImpl< T >::insert(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorTemplateCommon< T, typename >::size(), Write, and llvm::raw_ostream::write().

Referenced by llvm::lto::Config::addSaveTemps(), embedBitcodeInModule(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), llvm::LTOCodeGenerator::optimize(), ProcessThinLTOModule(), llvm::BitcodeWriterPass::run(), llvm::cgdata::saveModuleForTwoRounds(), saveTempBitcode(), splitCodeGen(), llvm::LTOCodeGenerator::writeMergedModules(), and writeModule().

◆ WriteDOTGraphToFile()

template<typename GraphT>
void llvm::WriteDOTGraphToFile ( Function & F,
GraphT && Graph,
std::string FileNamePrefix,
bool IsSimple )

◆ WriteGraph() [1/3]

template<typename GraphType>
std::string llvm::WriteGraph ( const GraphType & G,
const Twine & Name,
bool ShortNames = false,
const Twine & Title = "",
std::string Filename = "" )

Writes graph into a provided Filename.

If Filename is empty, generates a random one.

Returns
The resulting filename, or an empty string if writing failed.

Definition at line 394 of file GraphWriter.h.

References llvm::sys::fs::CD_CreateAlways, createGraphFilename(), errs(), G, llvm::sys::fs::OF_Text, llvm::sys::fs::openFileForWrite(), and WriteGraph().

◆ WriteGraph() [2/3]

template<>
raw_ostream & llvm::WriteGraph ( raw_ostream & O,
const EdgeBundles & G,
bool ShortNames,
const Twine & Title )

Specialize WriteGraph, the standard implementation won't work.

Definition at line 88 of file EdgeBundles.cpp.

References G, MBB, and printMBBReference().

◆ WriteGraph() [3/3]

◆ writeIndex()

◆ writeIndexTable()

void llvm::writeIndexTable ( MCStreamer & Out,
ArrayRef< unsigned > ContributionOffsets,
const MapVector< uint64_t, UnitIndexEntry > & IndexEntries,
const AccessField & Field )

Definition at line 478 of file DWP.cpp.

References llvm::MCStreamer::emitIntValue(), I, and Offset.

Referenced by writeIndex().

◆ writeIndexToFile()

void llvm::writeIndexToFile ( const ModuleSummaryIndex & Index,
raw_ostream & Out,
const ModuleToSummariesForIndexTy * ModuleToSummariesForIndex = nullptr,
const GVSummaryPtrSet * DecSummaries = nullptr )

Write the specified module summary index to the given raw output stream, where it will be written in a new bitcode block.

This is used when writing the combined index file for ThinLTO. When writing a subset of the index for a distributed backend, provide the ModuleToSummariesForIndex map. DecSummaries specifies the set of summaries for which the corresponding value should be imported as a declaration (prototype).

Definition at line 5615 of file BitcodeWriter.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeIndex(), and llvm::BitcodeWriter::writeStrtab().

Referenced by llvm::lto::Config::addSaveTemps(), llvm::lto::ThinBackendProc::emitFiles(), and llvm::ThinLTOCodeGenerator::run().

◆ writeMemProf()

◆ writeMemProfCallStackArray()

◆ writeMemProfCallStacks()

uint64_t llvm::writeMemProfCallStacks ( ProfOStream & OS,
llvm::MapVector< memprof::CallStackId, llvm::SmallVector< memprof::FrameId > > & MemProfCallStackData )
static

◆ writeMemProfFrameArray()

◆ writeMemProfFrames()

◆ writeMemProfRadixTreeBased()

◆ writeMemProfRecords()

◆ writeMemProfSchema()

void llvm::writeMemProfSchema ( ProfOStream & OS,
const memprof::MemProfSchema & Schema )
static

◆ writeMemProfV2()

◆ writeMemProfV3()

Error llvm::writeMemProfV3 ( ProfOStream & OS,
memprof::IndexedMemProfData & MemProfData,
bool MemProfFullSchema )
static

Definition at line 294 of file IndexedMemProfData.cpp.

References llvm::memprof::Version3, and writeMemProfRadixTreeBased().

Referenced by writeMemProf().

◆ writeMemProfV4()

Error llvm::writeMemProfV4 ( ProfOStream & OS,
memprof::IndexedMemProfData & MemProfData,
bool MemProfFullSchema,
std::unique_ptr< memprof::DataAccessProfData > DataAccessProfileData,
std::unique_ptr< memprof::MemProfSummary > MemProfSum )
static

Definition at line 302 of file IndexedMemProfData.cpp.

References llvm::memprof::Version4, and writeMemProfRadixTreeBased().

Referenced by writeMemProf().

◆ 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 773 of file IRMutator.cpp.

References WriteBitcodeToFile().

◆ writeNewOffsetsTo()

void llvm::writeNewOffsetsTo ( MCStreamer & Out,
DataExtractor & Data,
DenseMap< uint64_t, uint32_t > & OffsetRemapping,
uint64_t & Offset,
uint64_t & Size )
static

Definition at line 415 of file DWP.cpp.

References Data, llvm::MCStreamer::emitIntValue(), Offset, and Size.

Referenced by writeStringsAndOffsets().

◆ writeSignedDecimal()

char * llvm::writeSignedDecimal ( char * dst,
int value )
static

Definition at line 891 of file APFloat.cpp.

References writeUnsignedDecimal().

◆ writeStringsAndOffsets()

void llvm::writeStringsAndOffsets ( MCStreamer & Out,
DWPStringPool & Strings,
MCSection * StrOffsetSection,
StringRef CurStrSection,
StringRef CurStrOffsetSection,
uint16_t Version )

◆ 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 5776 of file BitcodeWriter.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeStrtab(), llvm::BitcodeWriter::writeSymtab(), and llvm::BitcodeWriter::writeThinLinkBitcode().

◆ writeToOutput()

Error llvm::writeToOutput ( StringRef OutputFileName,
std::function< Error(raw_ostream &)> Write )

This helper creates an output stream and then passes it to Write.

The stream created is based on the specified OutputFileName: llvm::outs for "-", raw_null_ostream for "/dev/null", and raw_fd_ostream for other names. For raw_fd_ostream instances, the stream writes to a temporary file. The final output file is atomically replaced with the temporary file after the Write function is finished.

Definition at line 1014 of file raw_ostream.cpp.

References llvm::sys::fs::all_read, llvm::sys::fs::all_write, llvm::sys::fs::TempFile::create(), createFileError(), llvm::raw_ostream::flush(), joinErrors(), outs(), llvm::Expected< T >::takeError(), and Write.

Referenced by llvm::objcopy::dxbc::extractPartAsObject().

◆ writeUnsignedDecimal()

char * llvm::writeUnsignedDecimal ( char * dst,
unsigned int n )
static

Definition at line 873 of file APFloat.cpp.

Referenced by writeSignedDecimal().

◆ xxh3_128bits()

llvm::XXH128_hash_t llvm::xxh3_128bits ( ArrayRef< uint8_t > data)

◆ xxh3_64bits() [1/2]

◆ xxh3_64bits() [2/2]

uint64_t llvm::xxh3_64bits ( StringRef data)
inline

Definition at line 51 of file xxhash.h.

References ArrayRef(), data, and xxh3_64bits().

◆ xxHash64() [1/2]

uint64_t llvm::xxHash64 ( llvm::ArrayRef< uint8_t > Data)

Definition at line 163 of file xxhash.cpp.

References Data, and xxHash64().

◆ xxHash64() [2/2]

◆ 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.

Iteration continues until the end of the shortest iteratee is reached.

Definition at line 831 of file STLExtras.h.

References args, and T.

Referenced by llvm::detail::all_of_zip_predicate_first(), areLoadedOffsetButOtherwiseSame(), canConvertToFMA(), CC_AArch64_Custom_Block(), CC_ARM_AAPCS_Custom_Aggregate(), llvm::VPExpressionRecipe::clone(), cloneFrom(), combineConcatVectorOfShuffleAndItsOperands(), combineShuffleToZeroExtendVectorInReg(), llvm::IRSimilarity::IRSimilarityCandidate::compareStructure(), ComputePTXValueVTs(), createOutlinedFunction(), llvm::mcdxbc::PSVRuntimeInfo::finalize(), findForkedSCEVs(), fixScalarResumeValuesFromBypass(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), llvm::InstCombinerImpl::foldICmpWithConstant(), llvm::InstCombinerImpl::foldIntegerTypedPHI(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), gatherPossiblyVectorizableLoads(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), initBranchWeights(), llvm::IRSimilarity::isClose(), llvm::IRSimilarity::IRSimilarityCandidate::isSimilar(), llvm::LegalizerHelper::narrowScalar(), performBlockTailMerging(), performExtBinopLoadFold(), ProfileCondOpInit(), remapOperands(), scalarizeBinOpOfSplats(), simplifyUsingControlFlow(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), and StrCmpOptionPrefixes().

◆ zip_equal()

template<typename T, typename U, typename... Args>
detail::zippy< detail::zip_first, T, U, Args... > llvm::zip_equal ( T && t,
U && u,
Args &&... args )

◆ 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.

Iteration continues until the end of the first iteratee is reached. In builds with assertions on, we check that the assumption about the first iteratee being the shortest holds.

Definition at line 854 of file STLExtras.h.

References args, assert(), range_size(), and T.

Referenced by buildClonedLoopBlocks(), llvm::DWARFDebugNames::Entry::dump(), llvm::RegsForValue::getRegsAndSizes(), 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 std::optional only contains a value if the iterator has not reached the end.

Definition at line 982 of file STLExtras.h.

References args, and T.

Variable Documentation

◆ AbortOnMaxDevirtIterationsReached

cl::opt< bool > llvm::AbortOnMaxDevirtIterationsReached("abort-on-max-devirt-iterations-reached", cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " "pass is reached")) ( "abort-on-max-devirt-iterations-reached" ,
cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " "pass is reached")  )
static

◆ AIXSystemAssemblerPath

cl::opt< std::string > llvm::AIXSystemAssemblerPath("lto-aix-system-assembler", cl::desc("Path to a system assembler, picked up on AIX only"), cl::value_desc("path")) ( "lto-aix-system-assembler" ,
cl::desc("Path to a system assembler, picked up on AIX only") ,
cl::value_desc("path")  )
static

◆ all_types_equal_v

template<typename T = void, typename... Ts>
bool llvm::all_types_equal_v = all_types_equal<T, Ts...>::value
constexpr

Definition at line 122 of file STLExtras.h.

◆ AllAnalysesOn< Function >

Definition at line 21 of file PassManager.cpp.

◆ AllAnalysesOn< IRUnitT >::SetKey

template<typename IRUnitT>
AnalysisSetKey llvm::AllAnalysesOn< IRUnitT >::SetKey

Definition at line 58 of file Analysis.h.

◆ AllAnalysesOn< LazyCallGraph::SCC >

Extern template declaration for the analysis set for this IR unit.

Definition at line 51 of file CGSCCPassManager.cpp.

◆ AllAnalysesOn< Loop >

Extern template declaration for the analysis set for this IR unit.

Definition at line 24 of file LoopAnalysisManager.cpp.

◆ AllAnalysesOn< Module >

Definition at line 20 of file PassManager.cpp.

◆ AllowNonPow2

cl::opt< bool > llvm::AllowNonPow2("sbvec-allow-non-pow2", cl::init(false), cl::Hidden, cl::desc("Allow non-power-of-2 vectorization.")) ( "sbvec-allow-non-pow2" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Allow non-power-of-2 vectorization.")  )
static

◆ AlwaysVerify

cl::opt< bool > llvm::AlwaysVerify("sbvec-always-verify", cl::init(false), cl::Hidden, cl::desc("Helps find bugs by verifying the IR whenever we " "emit new instructions (*very* expensive).")) ( "sbvec-always-verify" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Helps find bugs by verifying the IR whenever we " "emit new instructions (*very* expensive).")  )
static

◆ AMDGPUAnnotateUniformValuesLegacyPassID

char& llvm::AMDGPUAnnotateUniformValuesLegacyPassID
extern

◆ AMDGPUAtomicOptimizerID

char & llvm::AMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID
extern

Definition at line 112 of file AMDGPUAtomicOptimizer.cpp.

Referenced by initializeAMDGPUAtomicOptimizerPass().

◆ AMDGPUCodeGenPrepareID

char& llvm::AMDGPUCodeGenPrepareID
extern

◆ AMDGPUCtorDtorLoweringLegacyPassID

char & llvm::AMDGPUCtorDtorLoweringLegacyPassID
extern
Initial value:
=
AMDGPUCtorDtorLoweringLegacy::ID

Definition at line 189 of file AMDGPUCtorDtorLowering.cpp.

Referenced by initializeAMDGPUCtorDtorLoweringLegacyPass().

◆ AMDGPUExportKernelRuntimeHandlesLegacyID

char & llvm::AMDGPUExportKernelRuntimeHandlesLegacyID
extern
Initial value:
=
AMDGPUExportKernelRuntimeHandlesLegacy::ID

Definition at line 50 of file AMDGPUExportKernelRuntimeHandles.cpp.

Referenced by initializeAMDGPUExportKernelRuntimeHandlesLegacyPass().

◆ AMDGPUFeatureKV

const SubtargetFeatureKV llvm::AMDGPUFeatureKV[AMDGPU::NumSubtargetFeatures - 1]
extern

◆ AMDGPUGlobalISelDivergenceLoweringID

char & llvm::AMDGPUGlobalISelDivergenceLoweringID
extern
Initial value:
=
AMDGPUGlobalISelDivergenceLowering::ID

Definition at line 298 of file AMDGPUGlobalISelDivergenceLowering.cpp.

Referenced by initializeAMDGPUGlobalISelDivergenceLoweringPass().

◆ AMDGPUImageIntrinsicOptimizerID

char& llvm::AMDGPUImageIntrinsicOptimizerID
extern

◆ AMDGPUInsertDelayAluID

char & llvm::AMDGPUInsertDelayAluID = AMDGPUInsertDelayAluLegacy::ID
extern

Definition at line 526 of file AMDGPUInsertDelayAlu.cpp.

Referenced by initializeAMDGPUInsertDelayAluLegacyPass().

◆ AMDGPULateCodeGenPrepareLegacyID

char& llvm::AMDGPULateCodeGenPrepareLegacyID
extern

◆ AMDGPULowerBufferFatPointersID

char & llvm::AMDGPULowerBufferFatPointersID = AMDGPULowerBufferFatPointers::ID
extern

◆ AMDGPULowerKernelArgumentsID

char& llvm::AMDGPULowerKernelArgumentsID
extern

◆ AMDGPULowerKernelAttributesID

char& llvm::AMDGPULowerKernelAttributesID
extern

◆ AMDGPULowerModuleLDSLegacyPassID

char & llvm::AMDGPULowerModuleLDSLegacyPassID = AMDGPULowerModuleLDSLegacy::ID
extern

◆ AMDGPULowerVGPREncodingLegacyID

char & llvm::AMDGPULowerVGPREncodingLegacyID = AMDGPULowerVGPREncodingLegacy::ID
extern

◆ AMDGPUMarkLastScratchLoadID

char & llvm::AMDGPUMarkLastScratchLoadID = AMDGPUMarkLastScratchLoadLegacy::ID
extern

◆ AMDGPUPerfHintAnalysisLegacyID

char & llvm::AMDGPUPerfHintAnalysisLegacyID = AMDGPUPerfHintAnalysisLegacy::ID
extern

◆ AMDGPUPreloadKernArgPrologLegacyID

char& llvm::AMDGPUPreloadKernArgPrologLegacyID
extern

◆ AMDGPUPreloadKernelArgumentsLegacyID

char& llvm::AMDGPUPreloadKernelArgumentsLegacyID
extern

◆ AMDGPUPrepareAGPRAllocLegacyID

char & llvm::AMDGPUPrepareAGPRAllocLegacyID = AMDGPUPrepareAGPRAllocLegacy::ID
extern

◆ AMDGPUPrintfRuntimeBindingID

amdgpu printf runtime AMDGPU Printf false char & llvm::AMDGPUPrintfRuntimeBindingID = AMDGPUPrintfRuntimeBinding::ID
extern

◆ AMDGPUPromoteAllocaID

AMDGPU promote alloca to vector or false char & llvm::AMDGPUPromoteAllocaID = AMDGPUPromoteAlloca::ID
extern

Definition at line 209 of file AMDGPUPromoteAlloca.cpp.

Referenced by initializeAMDGPUPromoteAllocaPass().

◆ AMDGPUPromoteKernelArgumentsID

char& llvm::AMDGPUPromoteKernelArgumentsID
extern

◆ AMDGPURegBankLegalizeID

char & llvm::AMDGPURegBankLegalizeID = AMDGPURegBankLegalize::ID
extern

Definition at line 79 of file AMDGPURegBankLegalize.cpp.

Referenced by initializeAMDGPURegBankLegalizePass().

◆ AMDGPURegBankSelectID

char & llvm::AMDGPURegBankSelectID = AMDGPURegBankSelect::ID
extern

Definition at line 72 of file AMDGPURegBankSelect.cpp.

Referenced by initializeAMDGPURegBankSelectPass().

◆ AMDGPURemoveIncompatibleFunctionsID

char& llvm::AMDGPURemoveIncompatibleFunctionsID
extern

◆ AMDGPUReserveWWMRegsLegacyID

char& llvm::AMDGPUReserveWWMRegsLegacyID
extern

◆ AMDGPUResourceUsageAnalysisID

◆ AMDGPURewriteAGPRCopyMFMALegacyID

char & llvm::AMDGPURewriteAGPRCopyMFMALegacyID
extern
Initial value:
=
AMDGPURewriteAGPRCopyMFMALegacy::ID

Definition at line 629 of file AMDGPURewriteAGPRCopyMFMA.cpp.

Referenced by initializeAMDGPURewriteAGPRCopyMFMALegacyPass().

◆ AMDGPURewriteOutArgumentsID

char& llvm::AMDGPURewriteOutArgumentsID
extern

◆ AMDGPURewriteUndefForPHILegacyPassID

char& llvm::AMDGPURewriteUndefForPHILegacyPassID
extern

◆ AMDGPUSwLowerLDSLegacyPassID

char & llvm::AMDGPUSwLowerLDSLegacyPassID = AMDGPUSwLowerLDSLegacy::ID
extern

Definition at line 1312 of file AMDGPUSwLowerLDS.cpp.

Referenced by initializeAMDGPUSwLowerLDSLegacyPass().

◆ AMDGPUUnifyDivergentExitNodesID

char & llvm::AMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID
extern

◆ AMDGPUWaitSGPRHazardsLegacyID

char & llvm::AMDGPUWaitSGPRHazardsLegacyID = AMDGPUWaitSGPRHazardsLegacy::ID
extern

◆ AnalysisManager< Function >

Definition at line 25 of file PassManager.cpp.

◆ AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >

◆ AnalysisManager< Loop, LoopStandardAnalysisResults & >

◆ AnalysisManager< MachineFunction >

◆ AnalysisManager< Module >

Definition at line 24 of file PassManager.cpp.

◆ ApplyExtTspWithoutProfile

cl::opt< bool > llvm::ApplyExtTspWithoutProfile("ext-tsp-apply-without-profile", cl::desc("Whether to apply ext-tsp placement for instances w/o profile"), cl::init(true), cl::Hidden)

◆ ArcKillAddrMode

cl::opt< unsigned > llvm::ArcKillAddrMode("arc-kill-addr-mode", cl::init(0), cl::ReallyHidden) ( "arc-kill-addr-mode" ,
cl::init(0) ,
cl::ReallyHidden  )
static

◆ AsmMacroMaxNestingDepth

cl::opt< unsigned > llvm::AsmMacroMaxNestingDepth

Definition at line 966 of file MasmParser.cpp.

◆ AsmRewritePrecedence

const char llvm::AsmRewritePrecedence[]
Initial value:
= {
2,
2,
2,
3,
3,
3,
5,
1,
5,
2,
2
}

Definition at line 50 of file MCTargetAsmParser.h.

Referenced by rewritesSort(), and rewritesSort().

◆ AssumptionAttrKey

StringRef llvm::AssumptionAttrKey = "llvm.assume"
constexpr

The key we use for assumption attributes.

Definition at line 29 of file Assumptions.h.

Referenced by getAssumptions(), getAssumptions(), hasAssumption(), and hasAssumption().

◆ AtomicExpandID

char & llvm::AtomicExpandID = AtomicExpandLegacy::ID
extern

AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.

Definition at line 177 of file AtomicExpandPass.cpp.

Referenced by createResetMachineFunctionPass().

◆ BaseDiscriminatorBitWidth

const unsigned llvm::BaseDiscriminatorBitWidth = 8
static

Definition at line 70 of file Discriminator.h.

Referenced by getBaseFSBitEnd(), and getFSPassBitEnd().

◆ BBSectionsColdTextPrefix

cl::opt< std::string > llvm::BBSectionsColdTextPrefix
extern

◆ BigBasicBlockInstructionThreshold

cl::opt< unsigned > llvm::BigBasicBlockInstructionThreshold("big-basic-block-instruction-threshold", cl::Hidden, cl::init(500), cl::desc("The minimum number of instructions a basic block should contain " "before being considered big.")) ( "big-basic-block-instruction-threshold" ,
cl::Hidden ,
cl::init(500) ,
cl::desc("The minimum number of instructions a basic block should contain " "before being considered big.")  )
static

◆ BitmapDelta

FunctionAddr VTableAddr uintptr_t llvm::BitmapDelta

Definition at line 167 of file InstrProf.h.

◆ 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 116 of file MathExtras.h.

Referenced by reverseBits().

◆ BitWidth

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
unsigned llvm::BitWidth
constexpr
Initial value:
uint64_t{llvm::to_underlying(E::LLVM_BITMASK_LARGEST_ENUMERATOR)})
constexpr unsigned bitWidth(uint64_t Value)
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.

Definition at line 223 of file BitmaskEnum.h.

Referenced by llvm::SCEVAAResult::alias(), llvm::BasicTTIImplBase< BasicTTIImpl >::allowsMisalignedMemoryAccesses(), llvm::TargetTransformInfo::allowsMisalignedMemoryAccesses(), llvm::TargetTransformInfoImplBase::allowsMisalignedMemoryAccesses(), llvm::KnownBits::anyext(), llvm::KnownBits::anyextOrTrunc(), llvm::CombinerHelper::applySDivByPow2(), llvm::KnownBits::ashr(), llvm::SPIRVGlobalRegistry::assignFloatTypeToVReg(), llvm::SPIRVGlobalRegistry::assignIntTypeToVReg(), avgComputeU(), binaryOpKnownBitsMapHelper(), bitTransformIsCorrectForBitReverse(), bitTransformIsCorrectForBSwap(), llvm::KnownBits::blsi(), llvm::KnownBits::blsmsk(), llvm::SwitchCG::SwitchLowering::buildBitTests(), llvm::SPIRVGlobalRegistry::buildConstantInt(), buildNDRange(), llvm::BuildVectorSDNode::BuildVectorSDNode(), calculateByteProvider(), calculateByteProvider(), calculateUpperBound(), llvm::ARMTargetLowering::canCombineStoreAndExtract(), canEvaluateTruncated(), canNarrowShiftAmt(), cannotBeMaxInLoop(), cannotBeMinInLoop(), collectBitParts(), llvm::GEPOperator::collectOffset(), llvm::GetElementPtrInst::collectOffset(), collectOffsets(), combineBT(), combineCMP(), combinePredicateReduction(), combineShiftAnd1ToBitTest(), combineSIntToFP(), combineVSelectToBLENDV(), llvm::InstCombinerImpl::commonShiftTransforms(), computeConstantRange(), llvm::KnownBits::computeForAddSub(), computeForSatAddSub(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::LanaiTargetLowering::computeKnownBitsForTargetNode(), llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromCmp(), computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsFromRangeMetadata(), llvm::GISelValueTracking::computeKnownBitsImpl(), computeKnownFPClass(), llvm::SelectionDAG::ComputeNumSignBits(), computeOverflowForSignedMul(), llvm::SelectionDAG::computeOverflowForSignedMul(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computeShlNSW(), computeShlNSWWithNegLHS(), computeShlNSWWithNNegLHS(), computeShlNUW(), ConstantFoldCastInstruction(), ConstantFoldCastOperand(), llvm::ConstantRange::ConstantRange(), llvm::StringRef::consumeInteger(), llvm::ifs::convertELFBitWidthToIFS(), llvm::ifs::convertIFSBitWidthToELF(), ConvertShiftToMul(), copyRangeMetadata(), llvm::SPIRVGlobalRegistry::createConstFP(), llvm::SPIRVGlobalRegistry::createConstInt(), createMaskedBitTest(), llvm::ConstantRange::ctpop(), llvm::ConstantRange::cttz(), llvm::TargetLowering::CTTZTableLookup(), decomposeBitTest(), decomposeLinearExpression(), despeculateCountZeros(), emitConstantRange(), emitGlobalConstantLargeInt(), encodeFunctionSignature(), estimateBitMaskedAndLowerBound(), llvm::TargetLowering::expandAddSubSat(), llvm::TargetLowering::expandDIVREMByConstant(), expandFPToI(), expandIsFPClass(), expandIToFP(), expandMulToNAFSequence(), extractBits(), extractConstantWithoutWrapping(), extractConstantWithoutWrapping(), llvm::SwitchCG::SwitchLowering::findBitTestClusters(), llvm::InstCombinerImpl::fmulByZeroIsZero(), llvm::InstCombinerImpl::foldAddWithConstant(), foldAndToUsubsat(), llvm::InstCombinerImpl::foldBinOpOfSelectAndCastOfSelectCondition(), foldBoxMultiply(), foldCSELofCTTZ(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpEqIntrinsicWithConstant(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpIntrinsicWithConstant(), llvm::InstCombinerImpl::foldICmpUsingKnownBits(), foldICmpWithTruncSignExtendedVal(), foldICmpXNegX(), foldMinimumOverTrailingOrLeadingZeroCount(), foldSelectOfCTTZOrCTLZ(), foldSetCCWithFunnelShift(), foldSubCtlzNot(), fromOptionalToKnownBits(), genConstMult(), generateBuiltinVar(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), llvm::DataLayout::getABIIntegerTypeAlignment(), llvm::ScalarEvolution::getAddExpr(), llvm::SIRegisterInfo::getAGPRClassForBitWidth(), getAlignedAGPRClassForBitWidth(), llvm::SIRegisterInfo::getAlignedLo256VGPRClassForBitWidth(), getAlignedVectorSuperClassForBitWidth(), getAlignedVGPRClassForBitWidth(), getAnyAGPRClassForBitWidth(), getAnyVectorSuperClassForBitWidth(), getAnyVGPRClassForBitWidth(), llvm::SMTSolver::getBitvector(), llvm::SMTSolver::getBitvectorSort(), getBitWidth(), getBitWidth(), llvm::BuildVectorSDNode::getConstantFPSplatPow2ToLog2Int(), llvm::ExecutionEngine::getConstantValue(), getConstraintFromMemoryAccess(), llvm::DemandedBits::getDemandedBits(), getDemandedBitsLHSMask(), getElementIndex(), llvm::ConstantRange::getEmpty(), getExactInteger(), llvm::EVT::getFloatingPointVT(), llvm::MVT::getFloatingPointVT(), llvm::SMTSolver::getFloatSort(), llvm::ConstantRange::getFull(), llvm::SelectionDAG::getGlobalAddress(), getIdentityValueForAtomicOp(), llvm::EVT::getIntegerVT(), llvm::MVT::getIntegerVT(), getIntToFPVal(), getKnownBitsFromAndXorOr(), getLeftShift(), llvm::FunctionLoweringInfo::GetLiveOutRegInfo(), getMaxShiftAmount(), getMinMaxLimit(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::TargetLoweringBase::getNumRegisters(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVFloatType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::DataLayout::getPointerSize(), getPreStartForExtend(), GetQuadraticEquation(), getRangeForAffineARHelper(), getRangeForSelectPattern(), llvm::SITargetLowering::getRegForInlineAsmConstraint(), llvm::EVT::getRoundIntegerType(), getSalvageOpsForGEP(), getScaledOffsetForBitWidth(), llvm::SIRegisterInfo::getSGPRClassForBitWidth(), getSignedOverflowLimitForStep(), llvm::ScalarEvolution::getSignExtendExprImpl(), llvm::DataLayout::getTypeAllocSize(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getTypeName(), getUnsignedCountTrailingZerosRange(), getUnsignedOverflowLimitForStep(), getUnsignedPopCountRange(), llvm::GISelValueTracking::getValidShiftAmountRange(), llvm::SelectionDAG::getValidShiftAmountRange(), getValueFromICmpCtpop(), llvm::SIRegisterInfo::getVectorSuperClassForBitWidth(), llvm::SIRegisterInfo::getVGPRClassForBitWidth(), getVScaleRange(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::X86TTIImpl::instCombineIntrinsic(), isAllOnesOrAllOnesSplat(), isBitfieldDstMask(), isBitfieldExtractOpFromSExtInReg(), isBitfieldPositioningOp(), isBytewiseValue(), IsConstantOffsetFromGlobal(), isConstantOrConstantVector(), llvm::AArch64TargetLowering::isDesirableToCommuteXorWithShift(), llvm::ARMTargetLowering::isDesirableToCommuteXorWithShift(), IsIncrementNSW(), IsIncrementNUW(), llvm::sandboxir::Type::isIntOrIntVectorTy(), llvm::Type::isIntOrIntVectorTy(), isKnownNonZeroFromOperator(), isKnownToBeAPowerOfTwo(), isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isNonZeroAdd(), isNonZeroMul(), isNonZeroSub(), isSafeDecreasingBound(), isSafeIncreasingBound(), isSignExtendedW(), isSignExtendedW(), isSignExtInReg(), llvm::SelectionDAG::isSplatValue(), isTypeLegalForLookupTable(), llvm::KnownBits::KnownBits(), knownBitsMapHelper(), llvm::LinearExpression::LinearExpression(), LowerADDSAT_SUBSAT(), lowerAddSubToHorizontalOp(), LowerAndToBT(), LowerAndToBTST(), lowerFunnelShifts(), LowerVSETCC(), llvm::KnownBits::lshr(), makeExactMulNSWRegion(), makeExactMulNUWRegion(), llvm::ConstantRange::makeGuaranteedNoWrapRegion(), llvm::ConstantRange::makeMaskNotEqualRange(), llvm::VPlanPatternMatch::int_pred_ty< is_specific_int, Bitwidth >::match(), MatchBinaryOp(), matchBinaryOp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::SMTSolver::mkBitvector(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::KnownBits::mul(), llvm::KnownBits::mulhs(), llvm::KnownBits::mulhu(), nextAPIntBitWidth(), llvm::X86InstrInfo::optimizeCompareInstr(), parseJumpTable(), parseSize(), llvm::ARMTargetLowering::PerformDAGCombine(), llvm::ARMTargetLowering::PerformIntrinsicCombine(), performMulCombine(), llvm::KnownBits::print(), llvm::AArch64InstPrinter::printAMIndexedWB(), printBroadcast(), printConstant(), llvm::AArch64InstPrinter::printInst(), rebuildConstant(), rotateModulo(), llvm::MCJIT::runFunction(), llvm::KnownBits::sdiv(), llvm::wholeprogramdevirt::setAfterReturnValues(), llvm::wholeprogramdevirt::setBeforeReturnValues(), setLimitForFPToI(), setShiftFlags(), llvm::KnownBits::sext(), llvm::KnownBits::sextInReg(), llvm::KnownBits::sextOrTrunc(), llvm::KnownBits::shl(), llvm::NVPTXTargetLowering::shouldExpandAtomicRMWInIR(), shouldTransformMulToShiftsAddsSubs(), llvm::TargetLowering::ShrinkDemandedOp(), llvm::SelectionDAG::SignBitIsZero(), llvm::GISelValueTracking::signBitIsZero(), simplifyBinaryIntrinsic(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::LoongArchTargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::RISCVTargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyInstruction(), simplifyIntrinsic(), llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), llvm::TargetLowering::SimplifySetCC(), llvm::InstCombinerImpl::simplifyShrShlDemandedBits(), simplifyUnaryIntrinsic(), simplifyX86immShift(), simplifyX86varShift(), solveDIType(), SolveQuadraticAddRecExact(), SolveQuadraticAddRecRange(), targetOpKnownBitsMapHelper(), llvm::Constant::toConstantRange(), llvm::KnownBits::trunc(), TruncIfPossible(), tryBitfieldInsertOpFromOr(), tryBitfieldInsertOpFromOrAndImm(), TryMULWIDECombine(), llvm::KnownBits::udiv(), unaryOpKnownBitsMapHelper(), unpackFromRegLoc(), unpackFromRegLoc(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitSwitchInst(), widenBitWidthToNextPow2(), llvm::KnownBits::zext(), and llvm::KnownBits::zextOrTrunc().

◆ BranchFolderPassID

char & llvm::BranchFolderPassID = BranchFolderLegacy::ID
extern

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 118 of file BranchFolding.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), createResetMachineFunctionPass(), and overridePass().

◆ BranchRelaxationPassID

char & llvm::BranchRelaxationPassID = BranchRelaxationLegacy::ID
extern

BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.

Definition at line 140 of file BranchRelaxation.cpp.

Referenced by createResetMachineFunctionPass().

◆ BreakCriticalEdgesID

LLVM_ABI char& llvm::BreakCriticalEdgesID
extern

◆ CandidateVirtRegPos

const int64_t llvm::CandidateVirtRegPos = MaxInterferences
static

Definition at line 64 of file MLRegAllocEvictAdvisor.h.

◆ CheckBFIUnknownBlockQueries

cl::opt< bool > llvm::CheckBFIUnknownBlockQueries("check-bfi-unknown-block-queries", cl::init(false), cl::Hidden, cl::desc("Check if block frequency is queried for an unknown block " "for debugging missed BFI updates"))

◆ CodeModelLargeSize

const unsigned llvm::CodeModelLargeSize = 256
static

◆ CollectSeeds

cl::opt< std::string > llvm::CollectSeeds("sbvec-collect-seeds", cl::init(StoreSeedsDef), cl::Hidden, cl::desc("Collect these seeds. Use empty for none or a comma-separated " "list of '" StoreSeedsDef "' and '" LoadSeedsDef "'.")) ( "sbvec-collect-seeds" ,
cl::init(StoreSeedsDef) ,
cl::Hidden ,
cl::desc("Collect these seeds. Use empty for none or a comma-separated " "list of '" StoreSeedsDef "' and '" LoadSeedsDef "'.")  )

◆ CostThreshold

cl::opt< int > llvm::CostThreshold("sbvec-cost-threshold", cl::init(0), cl::Hidden, cl::desc("Vectorization cost threshold.")) ( "sbvec-cost-threshold" ,
cl::init(0) ,
cl::Hidden ,
cl::desc("Vectorization cost threshold.")  )
static

◆ Count

FunctionAddr VTableAddr llvm::Count

Definition at line 139 of file InstrProf.h.

Referenced by llvm::InstrProfRecord::accumulateCounts(), llvm::sampleprof::FunctionSamples::addCallsiteVTableTypeProfAt(), llvm::StaticDataProfileInfo::addConstantProfileCount(), llvm::ProfileSummaryBuilder::addCount(), llvm::InstrProfSummaryBuilder::addEntryCount(), llvm::InstrProfSummaryBuilder::addInternalCount(), llvm::SampleProfileSummaryBuilder::addRecord(), llvm::sampleprof::FunctionSamples::addTypeSamplesAt(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, LeafSize >::adjustFromLeftSib(), aggregatePossibleConstantValuesImpl(), llvm::AggressiveAntiDepBreaker::AggressiveAntiDepBreaker(), llvm::ms_demangle::ArenaAllocator::allocArray(), allOnes(), allowPGOOutlining(), llvm::DWARFTypePrinter< DieType >::appendArrayType(), llvm::jitlink::loongarch::applyFixup(), ARM64CountOfUnwindCodes(), ARMCountOfInstructionBytes(), ARMCountOfUnwindCodes(), AssertSorted(), llvm::object::MachOObjectFile::BindEntryCheckSegAndOffsets(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), CanGenerateTest(), checkResourceLimit(), llvm::object::BindRebaseSegInfo::checkSegAndOffsets(), CloneLoopBlocks(), collectHWRegs(), collectMultiplyFactors(), computeCalleeSaveRegisterPairs(), llvm::ProfileSummaryBuilder::computeDetailedSummary(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), ConnectEpilog(), ConnectProlog(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, LeafSize >::copy(), llvm::Bitset< AEK_NUM_EXTENSIONS >::count(), llvm::FeatureBitset::count(), llvm::StringRef::count(), llvm::StringRef::count(), llvm::sampleprofutil::SampleCoverageTracker::countBodyRecords(), llvm::SplitAnalysis::countLiveBlocks(), CountOfUnwindCodes(), llvm::CallBase::countOperandBundlesOfType(), llvm::CallBase::countOperandBundlesOfType(), llvm::SchedBoundary::countResource(), countTrailingNullBytes(), llvm::sampleprofutil::SampleCoverageTracker::countUsedRecords(), llvm::MDBuilder::createFunctionEntryCount(), llvm::EpilogueVectorizerMainLoop::createIterationCountCheck(), createLoopUnrollPass(), CreateTripRemainder(), llvm::object::decodeCrel(), llvm::object::ELFFile< ELFT >::decodeCrel(), llvm::DISubrange::DEFINE_MDNODE_GET(), dependencies(), llvm::codeview::serialize_arrayref_tail_impl< T >::deserialize(), discoverTypeIndices(), discoverTypeIndices(), llvm::CFGMST< Edge, BBInfo >::dumpEdges(), llvm::object::Archive::ec_symbols(), llvm::MCELFStreamer::emitCGProfileEntry(), llvm::MCStreamer::emitCGProfileEntry(), llvm::MCWinCOFFStreamer::emitCGProfileEntry(), llvm::TargetLoweringObjectFile::emitCGProfileMetadata(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::BitstreamWriter::EmitRecord(), encodeSLEB128(), encodeSLEB128(), encodeULEB128(), encodeULEB128(), llvm::SelectionDAG::ExtractVectorElements(), fillIndirectionTable(), FindCheckType(), fmt_repeat(), llvm::ScalarEvolution::getAddExpr(), llvm::pdb::DIAEnumDebugStreams::getChildCount(), llvm::pdb::DIAEnumFrameData::getChildCount(), llvm::pdb::DIAEnumInjectedSources::getChildCount(), llvm::pdb::DIAEnumLineNumbers::getChildCount(), llvm::pdb::DIAEnumSectionContribs::getChildCount(), llvm::pdb::DIAEnumSourceFiles::getChildCount(), llvm::pdb::DIAEnumSymbols::getChildCount(), llvm::pdb::DIAEnumTables::getChildCount(), llvm::StaticDataProfileInfo::getConstantSectionPrefix(), getDataSliceAsArrayOf(), llvm::MCLOHDirective::getEmitSize(), getExpressionFrameOffset(), llvm::gsym::MergedFunctionsInfo::getFuncsDataExtractors(), llvm::sampleprof::FunctionSamples::getHeadSamplesEstimate(), llvm::pdb::PDBStringTable::getIDForString(), llvm::SIInstrInfo::getInstrLatency(), llvm::pdb::DIATable::getItemCount(), getMatchedEntries(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfo, BranchProbabilityInfo >::getNodeLabel(), llvm::DIBuilder::getOrCreateSubrange(), llvm::HvxSelector::getPerfectCompletions(), llvm::pdb::DIADataStream::getRecordCount(), getSpirvLoopControlOperandsFromLoopMetadata(), getTableEnumerator(), llvm::coverage::InstantiationGroup::getTotalExecutionCount(), llvm::dxil::ResourceTypeInfo::getTyped(), llvm::DataExtractor::getU8(), llvm::DataExtractor::getU8(), getUnderlyingObject(), getValueProfDataFromInst(), hasUnrollAndJamTransformation(), hasUnrollTransformation(), llvm::SchedBoundary::incExecutedResources(), llvm::codeview::DebugFrameDataSubsectionRef::initialize(), llvm::OutlinedHashTree::insert(), llvm::AVRInstrInfo::insertBranch(), llvm::M68kInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::SystemZInstrInfo::insertBranch(), llvm::X86InstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), insertSpills(), isColdBlock(), llvm::ProfileSummaryInfo::isColdBlock(), llvm::ProfileSummaryInfo::isColdBlock(), llvm::ProfileSummaryInfo::isHotBlock(), llvm::HexagonInstrInfo::isValidAutoIncImm(), llvm::RISCVTargetLowering::joinRegisterPartsIntoValue(), LLVMAddIncoming(), LLVMConstNamedStruct(), LLVMConstStruct(), LLVMConstStructInContext(), LLVMDIBuilderGetOrCreateSubrange(), LLVMMDNode(), LLVMMDNodeInContext(), LLVMMDNodeInContext2(), LLVMTemporaryMDNode(), loadSectionContribs(), llvm::orc::Platform::lookupInitSymbols(), lowerBuildVectorViaDominantValues(), LowerCTPOP(), llvm::sampleprofutil::SampleCoverageTracker::markSamplesUsed(), llvm::DISubrange::MDNode, llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, LeafSize >::moveLeft(), llvm::object::MachOBindEntry::moveNext(), llvm::object::MachOChainedFixupEntry::moveNext(), llvm::object::MachORebaseEntry::moveNext(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, LeafSize >::moveRight(), nodeListToNodeArray(), nonDbgMICount(), numLLVMArgOps(), llvm::AggressiveAntiDepBreaker::Observe(), llvm::AntiDepBreaker::Observe(), llvm::CriticalAntiDepBreaker::Observe(), llvm::BitTracker::RegisterCell::operator<<, operator<<(), parseDevirtPassName(), llvm::MCAsmParserExtension::parseDirectiveCGProfile(), llvm::formatv_object_base::parseFormatString(), parseTypeCountMap(), prettyPrintResources(), llvm::RegisterBank::print(), llvm::logicalview::LVLogicalVisitor::printRecords(), printTypeCountMap(), llvm::logicalview::LVScopeCompileUnit::printWarnings(), llvm::ProfileAnnotatorImpl::ProfileAnnotator, llvm::ProfileAnnotatorImpl::ProfileAnnotatorImpl(), llvm::pgo::promoteIndirectCall(), llvm::coverage::FunctionRecord::pushRegion(), readArray(), readLEB128(), llvm::TextInstrProfReader::readNextRecord(), llvm::sampleprof::SampleProfileReaderGCC::readOneFunctionProfile(), readULEB128(), llvm::object::MachOObjectFile::RebaseEntryCheckSegAndOffsets(), llvm::PrintPassInstrumentation::registerCallbacks(), llvm::AVRInstrInfo::removeBranch(), llvm::BPFInstrInfo::removeBranch(), llvm::HexagonInstrInfo::removeBranch(), llvm::LanaiInstrInfo::removeBranch(), llvm::M68kInstrInfo::removeBranch(), llvm::MSP430InstrInfo::removeBranch(), llvm::SIInstrInfo::removeBranch(), llvm::SparcInstrInfo::removeBranch(), llvm::SystemZInstrInfo::removeBranch(), llvm::VEInstrInfo::removeBranch(), llvm::WebAssemblyInstrInfo::removeBranch(), llvm::X86InstrInfo::removeBranch(), llvm::XtensaInstrInfo::removeBranch(), llvm::sampleprof::SampleRecord::removeCalledTarget(), llvm::sampleprof::FunctionSamples::removeCalledTargetAndBodySample(), replaceDominatedUsesWith(), replaceNonLocalUsesWith(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::json::Path::report(), llvm::CountVisitsPass::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::FunctionSpecializer::run(), runCGProfilePass(), safe_calloc(), llvm::InstrProfRecord::scale(), scaleBranchCount(), scaleProfData(), llvm::object::ELFObjectFile< ELFT >::section_rel_begin(), setCurrentDebugTypes(), llvm::HardwareLoopOptions::setDecrement(), setIrrLoopHeaderMetadata(), llvm::SIMachineFunctionInfo::setNumWaveDispatchSGPRs(), llvm::SIMachineFunctionInfo::setNumWaveDispatchVGPRs(), llvm::lto::setupLLVMOptimizationRemarks(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), simplifyX86immShift(), llvm::StableFunctionMap::size(), SplitModule(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), llvm::StaticDataProfileInfo::StaticDataProfileInfo(), stripDirPrefix(), llvm::DWARFVerifier::summarize(), llvm::APInt::tcShiftLeft(), llvm::APInt::tcShiftRight(), llvm::TinyPtrVector< ReachingDef >::TinyPtrVector(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, LeafSize >::transferToLeftSib(), llvm::IntervalMapImpl::NodeBase< std::pair< KeyT, KeyT >, ValT, LeafSize >::transferToRightSib(), tryToreplicateChunks(), unpackStoreToAggregate(), unrollAndJamCountPragmaValue(), UnrollAndJamLoop(), unrollCountPragmaValue(), UnrollRuntimeLoopRemainder(), updateIDTMetaData(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), llvm::coverage::CoverageMappingWriter::write(), llvm::TimeTraceProfiler::write(), writeDIGenericSubrange(), writeFragment(), llvm::ARMAsmBackend::writeNopData(), llvm::AVRAsmBackend::writeNopData(), llvm::CSKYAsmBackend::writeNopData(), llvm::LoongArchAsmBackend::writeNopData(), llvm::MCAsmBackend::writeNopData(), llvm::MipsAsmBackend::writeNopData(), llvm::RISCVAsmBackend::writeNopData(), llvm::InstrProfWriter::writeRecordInText(), llvm::sampleprof::SampleProfileWriterText::writeSample(), llvm::CriticalAntiDepBreaker::~CriticalAntiDepBreaker(), llvm::ProfileSummaryBuilder::~ProfileSummaryBuilder(), and llvm::RISCVAsmBackend::~RISCVAsmBackend().

◆ CountersDelta

FunctionAddr VTableAddr llvm::CountersDelta

Definition at line 165 of file InstrProf.h.

◆ CoverageSize

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::CoverageSize

Definition at line 300 of file InstrProf.h.

◆ CurrentDebugType

ManagedStatic<std::vector<std::pair<std::string, std::optional<int> > > > llvm::CurrentDebugType
static

The current debug type and an optional debug level.

The debug level is the verbosity of the debug output. 0 is a special level that acts as an opt-out for this specific debug type. If provided, the debug output is enabled only if the user specified a level at least as high as the provided level.

Definition at line 76 of file Debug.cpp.

Referenced by isCurrentDebugType(), and setCurrentDebugTypes().

◆ Data

llvm::Data

Definition at line 189 of file InstrProf.h.

Referenced by llvm::ImmutableListFactory< T >::add(), addAllTypesFromTypesSection(), llvm::DwarfUnit::addAnnotation(), llvm::ThinLTOCodeGenerator::addModule(), llvm::objcopy::elf::Object::addSegment(), llvm::DWARF5AccelTable::addTypeEntries(), llvm::DwarfExpression::addUnsignedConstant(), llvm::IRComparer< T >::analyzeIR(), llvm::object::ELFFile< ELFT >::android_relas(), llvm::object::append(), llvm::TarWriter::append(), llvm::MCObjectStreamer::appendContents(), appendToGlobalArray(), appendToGlobalCtors(), appendToGlobalDtors(), llvm::ARMAsmBackend::applyFixup(), llvm::AVRAsmBackend::applyFixup(), llvm::CSKYAsmBackend::applyFixup(), llvm::LoongArchAsmBackend::applyFixup(), llvm::MCAsmBackend::applyFixup(), llvm::MipsAsmBackend::applyFixup(), llvm::RISCVAsmBackend::applyFixup(), llvm::dwarf_linker::AddressesMap::applyValidRelocs(), llvm::BinaryStreamReader::BinaryStreamReader(), llvm::BinaryStreamReader::BinaryStreamReader(), llvm::BinaryStreamReader::BinaryStreamReader(), llvm::BinaryStreamRef::BinaryStreamRef(), llvm::BinaryStreamRef::BinaryStreamRef(), llvm::BinaryStreamRef::BinaryStreamRef(), llvm::BinaryStreamWriter::BinaryStreamWriter(), llvm::BinaryStreamWriter::BinaryStreamWriter(), llvm::detail::DoubleAPFloat::bitcastToAPInt(), llvm::BitCodeAbbrevOp::BitCodeAbbrevOp(), llvm::orc::SelfExecutorProcessControl::callWrapperAsync(), checkBasicSSA(), llvm::orc::checkMachORelocatableObject(), llvm::orc::checkMachORelocatableObject(), checkRegisterClass(), llvm::dwarf_linker::parallel::DIEAttributeCloner::clone(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame(), llvm::dwarf_linker::parallel::DIEAttributeCloner::cloneBlockAttr(), compressAnnotation(), computeLiveInValues(), computeLTOCacheKey(), computeMemberData(), llvm::ConstantDataArray::ConstantDataSequential, llvm::ConstantDataSequential::ConstantDataSequential(), llvm::ConstantDataVector::ConstantDataSequential, constructRetValue(), llvm::codeview::consume(), llvm::codeview::consume(), llvm::DWARF5AccelTable::convertDieToOffset(), CopyStringRef(), crc32(), crc32(), llvm::DXContainerYAML::RootSignatureYamlDesc::create(), llvm::ImmutableListFactory< T >::create(), llvm::IntervalTree< LVAddress, LVScope * >::create(), llvm::objcopy::dxbc::DXContainerReader::create(), llvm::objcopy::NameOrPattern::create(), llvm::object::Decompressor::create(), llvm::LTOModule::createFromBuffer(), llvm::CaptureInfo::createFromIntValue(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), llvm::LTOModule::createInLocalContext(), llvm::LTOModule::createInputFile(), llvm::mca::InstrumentManager::createInstrument(), llvm::mca::RISCVInstrumentManager::createInstrument(), llvm::jitlink::createLinkGraphFromCOFFObject(), llvm::jitlink::createLinkGraphFromMachOObject(), llvm::IRBuilderBase::CreateMaskedScatter(), llvm::cas::ObjectStore::createProxy(), llvm::codeview::CVRecord< TypeLeafKind >::CVRecord(), llvm::object::DataRegion< T >::DataRegion(), decode(), llvm::gsym::CallSiteInfo::decode(), llvm::gsym::CallSiteInfoCollection::decode(), llvm::gsym::FunctionInfo::decode(), llvm::gsym::Header::decode(), llvm::gsym::InlineInfo::decode(), llvm::gsym::LineTable::decode(), llvm::gsym::MergedFunctionsInfo::decode(), decodeBBAddrMapImpl(), llvm::object::decodeCrel(), llvm::gsym::decodeRange(), llvm::gsym::decodeRanges(), llvm::orc::shared::SPSSerializationTraits< SPSString, StringRef >::deserialize(), llvm::codeview::TypeDeserializer::deserializeAs(), llvm::DWARFContext::dump(), llvm::DWARFListTableBase< DWARFListType >::dump(), llvm::DWARFListTableBase< DWARFDebugRnglist >::dump(), llvm::DWARFListTableHeader::dump(), llvm::DWARFFormValue::dumpAddress(), dumpDataAux(), dumpExpression(), dumpLocationExpr(), dumpLoclistsSection(), dumpPubTableSection(), llvm::DWARFDataExtractor::DWARFDataExtractor(), llvm::DWARFDebugPubTable::DWARFDebugPubTable(), llvm::objcopy::elf::DynamicRelocationSection::DynamicRelocationSection(), llvm::objcopy::elf::DynamicSection::DynamicSection(), llvm::objcopy::elf::DynamicSymbolTableSection::DynamicSymbolTableSection(), embedBitcodeInModule(), llvm::BCGenericRecordLayout< BCLiteral< RecordCode >, Fields... >::emit(), llvm::BCRecordLayout< RecordCode, Fields >::emit(), llvm::codeview::CodeViewRecordStreamer::emitBinaryData(), llvm::dwarf_linker::parallel::SectionDescriptor::emitBinaryData(), llvm::MCStreamer::emitBinaryData(), llvm::codeview::CodeViewRecordStreamer::emitBytes(), llvm::CSKYELFStreamer::emitBytes(), llvm::MCObjectStreamer::emitBytes(), llvm::MCStreamer::emitBytes(), llvm::RISCVELFStreamer::emitBytes(), llvm::SystemZHLASMAsmStreamer::emitBytes(), llvm::MCStreamer::emitCommonSymbol(), llvm::DwarfDebug::emitDebugLocEntry(), emitDebugSectionImpl(), llvm::dwarf_linker::parallel::DwarfUnit::emitDwarfAbbrevEntry(), llvm::MCObjectStreamer::emitInstToFragment(), llvm::offloading::emitOffloadingEntry(), emitPostLd(), emitPostSt(), llvm::MCTargetStreamer::emitRawBytes(), llvm::NVPTXTargetStreamer::emitRawBytes(), llvm::BCGenericRecordLayout< BCLiteral< RecordCode >, Fields... >::emitRecord(), llvm::BCRecordLayout< RecordCode, Fields >::emitRecord(), llvm::MCDwarfLineStr::emitSection(), encodeSignedNumber(), llvm::ARM::WinEH::EpilogueScope::EpilogueScope(), llvm::DWARFAbbreviationDeclaration::extract(), llvm::DWARFAbbreviationDeclarationSet::extract(), llvm::DWARFDebugAddrTable::extract(), llvm::DWARFDebugPubTable::extract(), llvm::DWARFListTableBase< DWARFListType >::extract(), llvm::DWARFListTableBase< DWARFDebugRnglist >::extract(), llvm::DWARFListTableHeader::extract(), llvm::DWARFListType< ListEntryType >::extract(), llvm::DWARFListType< RangeListEntry >::extract(), llvm::RangeListEntry::extract(), llvm::DWARFListTableBase< DWARFListType >::extractHeaderAndOffsets(), llvm::DWARFDebugAddrTable::extractPreStandard(), extractSections(), llvm::DWARFDebugAddrTable::extractV5(), llvm::DWARFFormValue::extractValue(), llvm::DWARFFormValue::extractValue(), finalizeTS1AM(), llvm::DWARFListTableBase< DWARFListType >::findList(), llvm::DWARFListTableBase< DWARFDebugRnglist >::findList(), findLiveSetAtInst(), fixupIndexV4(), fixupIndexV5(), fixupLeb128(), llvm::codeview::forEachCodeViewRecord(), llvm::CodeViewYAML::fromDebugS(), fullyRecomputeLiveIns(), gatherPossiblyVectorizableLoads(), llvm::IRComparer< T >::generateFunctionData(), llvm::DotCfgChangeReporter::generateIRRepresentation(), llvm::ConstantDataArray::get(), llvm::ConstantDataVector::get(), llvm::ConstantDataVector::get(), llvm::ConstantDataVector::get(), llvm::ConstantDataVector::get(), llvm::ConstantDataVector::get(), llvm::ConstantDataVector::get(), llvm::PredIteratorCache::get(), llvm::GlobalObject::getAlign(), getAllocationSize(), llvm::GlobalVariable::getCodeModelRaw(), llvm::object::ELFFile< ELFT >::getCrelHeader(), getCStringLength(), getDataSlice(), getDataSliceAs(), getDataSliceAsArrayOf(), getEncodedIntegerLength(), llvm::MCDwarfLineStr::getFinalizedData(), llvm::ConstantDataArray::getFP(), llvm::ConstantDataArray::getFP(), llvm::ConstantDataArray::getFP(), llvm::ConstantDataVector::getFP(), llvm::ConstantDataVector::getFP(), llvm::ConstantDataVector::getFP(), llvm::gsym::MergedFunctionsInfo::getFuncsDataExtractors(), getGlobalSymtabLocAndSize(), llvm::IndexedInstrProfReader::getInstrProfRecord(), llvm::BlockCoverageInference::getInstrumentedBlocksHash(), llvm::BasicTTIImplBase< BasicTTIImpl >::getIntrinsicInstrCost(), getIntrinsicWithChain(), getIntrinsicWithoutChain(), getLEB128(), llvm::LoadedObjectInfo::getLoadedSectionContents(), llvm::MemoryBuffer::getMemBufferRef(), getObjectSize(), llvm::offloading::getOffloadingEntryInitializer(), llvm::DWARFListTableBase< DWARFListType >::getOffsetEntry(), llvm::DWARFListTableHeader::getOffsetEntry(), llvm::DWARFListTableHeader::getOffsetEntry(), llvm::SGPRSpillBuilder::getPerVGPRData(), llvm::ConstantDataArray::getRaw(), llvm::ConstantDataVector::getRaw(), llvm::sandboxir::ConstantDataArray::getRaw(), llvm::sandboxir::ConstantDataVector::getRaw(), llvm::MemSDNode::getRawSubclassData(), llvm::logicalview::LVSymbolVisitorDelegate::getRecordOffset(), llvm::InstrProfReaderIndex< HashTableImpl >::getRecords(), llvm::InstrProfReaderIndex< HashTableImpl >::getRecords(), llvm::InstrProfReaderIndexBase::getRecords(), llvm::InstrProfReaderIndexBase::getRecords(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), llvm::InstrProfReaderRemapper::getRecords(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getSizeWithOverflow(), llvm::ConstantDataArray::getString(), llvm::object::ELFFile< ELFT >::getStringTable(), getStrlenWithNull(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::AccelTableBase::HashData::getValues(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), llvm::jitlink::COFFLinkGraphBuilder::graphifySections(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySections(), llvm::objcopy::elf::GroupSection::GroupSection(), handleArgs(), handleBaseClass(), handleDataMember(), handleEnumerator(), llvm::DotCfgChangeReporter::handleInitialIR(), handleListContinuation(), handleNestedType(), handleOneMethod(), handleOverloadedMethod(), handleStaticDataMember(), handleUserSection(), handleVFPtr(), handleVirtualBaseClass(), llvm::BLAKE3::hash(), llvm::MD5::hash(), llvm::SHA1::hash(), llvm::SHA256::hash(), llvm::cas::BuiltinObjectHasher< HasherT >::hashObject(), llvm::cas::BuiltinObjectHasher< HasherT >::hashObject(), llvm::ExecutionEngine::InitializeMemory(), llvm::EquivalenceClasses< BasicBlock * >::insert(), llvm::OnDiskChainedHashTableGenerator< Info >::insert(), llvm::OnDiskChainedHashTableGenerator< Info >::insert(), llvm::codeview::GlobalTypeTableBuilder::insertRecordAs(), llvm::codeview::GlobalTypeTableBuilder::insertRecordBytes(), isPrintableString(), isRepeatedByteSequence(), llvm::json::isUTF8(), isVariableIndexable(), layout(), llvm::MCAssembler::layout(), llvm::codeview::LazyRandomTypeCollection::LazyRandomTypeCollection(), llvm::codeview::LazyRandomTypeCollection::LazyRandomTypeCollection(), LLVMConstDataArray(), LLVMDIBuilderGetOrCreateArray(), LLVMDisasmInstruction(), LLVMTargetMachineEmitToMemoryBuffer(), LLVMTemporaryMDNode(), LLVMWriteBitcodeToMemoryBuffer(), llvm::xray::loadProfile(), loadTestingFormat(), llvm::xray::loadTraceFile(), llvm::gsym::FunctionInfo::lookup(), llvm::gsym::InlineInfo::lookup(), llvm::gsym::LineTable::lookup(), lookup(), lookupAllocatableSection(), lookupFoldTableImpl(), lowerShuffleViaVRegSplitting(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), llvm::yaml::MappingTraits< InstrProfCorrelator::CorrelationData >::mapping(), llvm::yaml::MappingTraits< memprof::AllMemProfData >::mapping(), llvm::yaml::MappingTraits< memprof::YamlDataAccessProfData >::mapping(), llvm::dwarf_linker::classic::CompileUnit::markEverythingAsKept(), llvm::dwarf_linker::parallel::DependencyTracker::maybeAddReferencedRoots(), llvm::MD5::MD5(), llvm::CodeGenDataReader::mergeFromObjectFile(), llvm::xray::mergeProfilesByStack(), llvm::xray::mergeProfilesByThread(), llvm::orc::CtorDtorIterator::operator*(), llvm::FixedStreamArray< CrossModuleExport >::operator[](), llvm::dwarf::CFIProgram::parse(), llvm::DWARFDebugFrame::parse(), llvm::DWARFGdbIndex::parse(), parse(), parseAndVerify(), llvm::MCAsmParser::parseAngleBracketString(), llvm::MCAsmParser::parseEscapedString(), llvm::DWARFContext::DWARFContextState::parseMacroOrMacinfo(), parseModule(), parseULEB128(), llvm::CGDataOStream::patch(), llvm::ProfOStream::patch(), performMaskedGatherScatterCombine(), performST1Combine(), performSTNT1Combine(), llvm::PGOCtxProfileWriter::PGOCtxProfileWriter(), llvm::AccelTableBase::print(), llvm::symbolize::JSONPrinter::print(), PrintByteList(), printWithSpacePadding(), llvm::orc::shared::SPSInputBuffer::read(), llvm::sampleprof::ProfileSymbolList::read(), llvm::BitstreamCursor::ReadAbbrevRecord(), readArray(), llvm::cas::ObjectStore::readData(), readFRE(), llvm::IndexedInstrProfReader::readNextRecord(), llvm::BCGenericRecordLayout< BCLiteral< RecordCode >, Fields... >::readRecord(), llvm::BCGenericRecordLayout< BCLiteral< RecordCode >, Fields... >::readRecord(), llvm::jitlink::readTargetMachineArch(), readULEB128As(), llvm::LoongArchAsmBackend::relaxDwarfCFA(), llvm::RISCVAsmBackend::relaxDwarfCFA(), llvm::LoongArchAsmBackend::relaxDwarfLineAddr(), llvm::RISCVAsmBackend::relaxDwarfLineAddr(), llvm::mustache::Template::render(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), reorderOrder(), llvm::codeview::AppendingTypeTableBuilder::replaceType(), llvm::codeview::GlobalTypeTableBuilder::replaceType(), llvm::codeview::LazyRandomTypeCollection::replaceType(), llvm::codeview::MergingTypeTableBuilder::replaceType(), llvm::codeview::TypeCollection::replaceType(), llvm::codeview::TypeTableCollection::replaceType(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::SharedMemoryMapper::reserve(), llvm::codeview::LazyRandomTypeCollection::reset(), llvm::codeview::LazyRandomTypeCollection::reset(), llvm::DXILMetadataAnalysisPrinterPass::run(), llvm::DXILResourceAnalysis::run(), llvm::DXILResourceBindingAnalysis::run(), llvm::EmbedBitcodePass::run(), llvm::ARM::WinEH::RuntimeFunction::RuntimeFunction(), llvm::ARM::WinEH::RuntimeFunctionARM64::RuntimeFunctionARM64(), llvm::DWARFDebugNames::NameTableEntry::sameNameAs(), llvm::ChangeReporter< IRUnitT >::saveIRBeforePass(), llvm::objcopy::elf::Section::Section(), llvm::DWARFDebugLine::SectionParser::SectionParser(), llvm::objcopy::elf::Segment::Segment(), llvm::msf::IMSFFile::setBlockData(), llvm::objcopy::coff::Section::setContentsRef(), llvm::objcopy::coff::Section::setOwnedContents(), llvm::dwarf_linker::parallel::SectionDescriptor::setSizesForSectionCreatedByAsmPrinter(), llvm::DXContainerYAML::ShaderHash::ShaderHash(), llvm::DXContainerYAML::ShaderHash::ShaderHash(), skip(), llvm::gsym::skipRange(), llvm::gsym::skipRanges(), stabilize(), stabilize(), llvm::cas::builtin::BuiltinCAS::store(), llvm::cas::ObjectStore::store(), llvm::cas::builtin::BuiltinCAS::storeImpl(), llvm::CodeViewYAML::toDebugH(), llvm::mustache::toMustacheString(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), llvm::BLAKE3::update(), llvm::hashbuilder_detail::HashCodeHasher::update(), llvm::HashBuilderBase< HasherT >::update(), llvm::HashBuilderBase< HasherT >::update(), llvm::JamCRC::update(), llvm::MD5::update(), llvm::SHA1::update(), llvm::SHA256::update(), updateIDTMetaData(), llvm::objcopy::elf::Object::updateSection(), llvm::objcopy::elf::Object::updateSectionData(), llvm::DWARFUnit::updateVariableDieMap(), UpgradeIntrinsicCall(), upgradeMaskedStore(), upgradeX86IntrinsicCall(), llvm::cas::builtin::BuiltinCAS::validate(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::SIInstrInfo::verifyInstruction(), verifyNoteSection(), llvm::objcopy::elf::IHexSectionWriter::visit(), llvm::objcopy::elf::SRECSectionWriter::visit(), llvm::InstCombinerImpl::visitCallInst(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::WritableBinaryStreamRef::WritableBinaryStreamRef(), llvm::WritableBinaryStreamRef::WritableBinaryStreamRef(), llvm::WritableBinaryStreamRef::WritableBinaryStreamRef(), llvm::orc::shared::SPSOutputBuffer::write(), llvm::StringTableBuilder::write(), llvm::StringTableBuilder::write(), llvm::mustache::AddIndentationStringStream::write_impl(), llvm::mustache::EscapeStringStream::write_impl(), writeArchiveToStream(), llvm::InstrProfWriter::writeBuffer(), llvm::FileBufferByteStream::writeBytes(), llvm::WritableBinaryStream::writeBytes(), llvm::WritableBinaryStreamRef::writeBytes(), llvm::gsym::FileWriter::writeData(), llvm::objcopy::elf::IHexSectionWriter::writeData(), llvm::objcopy::elf::IHexSectionWriterBase::writeData(), writeFragment(), llvm::codeview::AppendingTypeTableBuilder::writeLeafType(), llvm::codeview::GlobalTypeTableBuilder::writeLeafType(), llvm::codeview::MergingTypeTableBuilder::writeLeafType(), writeNewOffsetsTo(), llvm::MachObjectWriter::writeNlist(), llvm::MachObjectWriter::writeObject(), llvm::objcopy::elf::SRECSectionWriter::writeRecord(), llvm::objcopy::elf::IHexSectionWriterBase::writeSection(), llvm::objcopy::elf::SRECSectionWriterBase::writeSection(), writeStringsAndOffsets(), writeUint32(), writeUint64(), writeUint8(), xxHash64(), xxHash64(), llvm::yaml::yaml2offload(), llvm::codeview::AppendingTypeTableBuilder::~AppendingTypeTableBuilder(), llvm::DWARFDebugFrame::~DWARFDebugFrame(), llvm::codeview::GlobalTypeTableBuilder::~GlobalTypeTableBuilder(), llvm::InstrProfReaderIndex< HashTableImpl >::~InstrProfReaderIndex(), llvm::codeview::MergingTypeTableBuilder::~MergingTypeTableBuilder(), llvm::NVPTXTargetStreamer::~NVPTXTargetStreamer(), llvm::RISCVAsmBackend::~RISCVAsmBackend(), and llvm::mustache::Template::~Template().

◆ DataSize

◆ DbgRecordParamRef< DIExpression >

◆ DbgRecordParamRef< DILabel >

◆ DbgRecordParamRef< DILocalVariable >

◆ DeadMachineInstructionElimID

char & llvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID
extern

DeadMachineInstructionElim - This pass removes dead machine instructions.

Definition at line 76 of file DeadMachineInstructionElim.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), createResetMachineFunctionPass(), and overridePass().

◆ 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 68 of file Debug.cpp.

Referenced by llvm::CSKYInstPrinter::applyTargetSpecificCLOption(), dbgs(), and isDebug().

◆ DebugInfoCorrelate

llvm::cl::opt< bool > llvm::DebugInfoCorrelate

◆ DecisionName

◆ DecisionSpec

const TensorSpec llvm::DecisionSpec
static
Initial value:
=
static TensorSpec createSpec(const std::string &Name, const std::vector< int64_t > &Shape, int Port=0)
Definition TensorSpec.h:66
LLVM_ABI const char *const DecisionName

Definition at line 80 of file MLRegAllocPriorityAdvisor.cpp.

Referenced by llvm::ReleaseModePriorityAdvisorProvider::getAdvisor(), and INITIALIZE_PASS().

◆ DefaultDecisionName

const char *const llvm::DefaultDecisionName = "inlining_default"
extern

Definition at line 129 of file MLInlineAdvisor.cpp.

◆ DefaultDecisionSpec

const TensorSpec llvm::DefaultDecisionSpec
extern
Initial value:
=
LLVM_ABI const char *const DefaultDecisionName

Definition at line 130 of file MLInlineAdvisor.cpp.

Referenced by llvm::MLInlineAdvisor::MLInlineAdvisor().

◆ DefaultMemoryClusterDWordsLimit

◆ DefaultProcResSize

const int llvm::DefaultProcResSize = 16
static

Definition at line 637 of file MachinePipeliner.h.

◆ DefMaxInstsToScan

cl::opt< unsigned > llvm::DefMaxInstsToScan
extern

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 llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().

◆ DetectDeadLanesID

char & llvm::DetectDeadLanesID = DetectDeadLanesLegacy::ID
extern

This pass adds dead/undef flags after analyzing subregister lanes.

Definition at line 419 of file DetectDeadLanes.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ DisableABIBreakingChecks

int llvm::DisableABIBreakingChecks

Definition at line 20 of file ABIBreak.cpp.

◆ DisableBranches

cl::opt< bool > llvm::DisableBranches ( "no-ir-sim-branch-matching" ,
cl::init(false) ,
cl::ReallyHidden ,
cl::desc("disable similarity matching, and outlining, " "across branches for debugging purposes.")  )

◆ DisableGISelLegalityCheck

◆ DisableIndirectCalls

cl::opt< bool > llvm::DisableIndirectCalls ( "no-ir-sim-indirect-calls" ,
cl::init(false) ,
cl::ReallyHidden ,
cl::desc("disable outlining indirect calls.")  )

◆ DisableIntrinsics

cl::opt< bool > llvm::DisableIntrinsics ( "no-ir-sim-intrinsics" ,
cl::init(false) ,
cl::ReallyHidden ,
cl::desc("Don't match or outline intrinsics")  )

◆ DoInstrProfNameCompression

cl::opt< bool > llvm::DoInstrProfNameCompression("enable-name-compression", cl::desc("Enable name/filename string compression"), cl::init(true))

◆ DominatorTreeBase< BasicBlock, false >

template class LLVM_EXPORT_TEMPLATE llvm::DominatorTreeBase< BasicBlock, false >
extern

Definition at line 76 of file Dominators.cpp.

◆ DominatorTreeBase< BasicBlock, true >

Definition at line 78 of file Dominators.cpp.

◆ DominatorTreeBase< MachineBasicBlock, false >

Definition at line 41 of file MachineDominators.cpp.

◆ DominatorTreeBase< MachineBasicBlock, true >

Definition at line 22 of file MachinePostDominators.cpp.

◆ DomTreeNodeBase< BasicBlock >

Definition at line 74 of file Dominators.cpp.

◆ DomTreeNodeBase< MachineBasicBlock >

◆ DumpCriticalPathLength

cl::opt< bool > llvm::DumpCriticalPathLength("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout")) ( "misched-dcpl" ,
cl::Hidden ,
cl::desc("Print critical path length to stdout")  )
static

◆ DumpHSAMetadata

cl::opt< bool > llvm::DumpHSAMetadata("amdgpu-dump-hsa-metadata", cl::desc("Dump AMDGPU HSA Metadata")) ( "amdgpu-dump-hsa-metadata" ,
cl::desc("Dump AMDGPU HSA Metadata")  )
static

◆ EarlyIfConverterLegacyID

char & llvm::EarlyIfConverterLegacyID = EarlyIfConverterLegacy::ID
extern

EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.

Definition at line 839 of file EarlyIfConversion.cpp.

Referenced by createResetMachineFunctionPass(), and overridePass().

◆ EarlyIfPredicatorID

char & llvm::EarlyIfPredicatorID = EarlyIfPredicator::ID
extern

EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point.

Definition at line 1222 of file EarlyIfConversion.cpp.

Referenced by createResetMachineFunctionPass().

◆ EarlyMachineLICMID

char & llvm::EarlyMachineLICMID = EarlyMachineLICM::ID
extern

This pass performs loop invariant code motion on machine instructions.

This variant works before register allocation.

See also
MachineLICMID.

Definition at line 334 of file MachineLICM.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), createGCLoweringPass(), and overridePass().

◆ EarlyTailDuplicateLegacyID

char & llvm::EarlyTailDuplicateLegacyID = EarlyTailDuplicateLegacy::ID
extern

Duplicate blocks with unconditional branches into tails of their predecessors.

Variant that works before register allocation.

Definition at line 79 of file TailDuplication.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), createResetMachineFunctionPass(), and overridePass().

◆ EdgeBundlesWrapperLegacyID

LLVM_ABI char& llvm::EdgeBundlesWrapperLegacyID
extern

EdgeBundles analysis - Bundle machine CFG edges.

Referenced by createResetMachineFunctionPass().

◆ EmitLongStrLiterals

cl::opt< bool > llvm::EmitLongStrLiterals("long-string-literals", cl::desc("when emitting large string tables, prefer string literals over " "comma-separated char literals. This can be a readability and " "compile-time performance win, but upsets some compilers"), cl::Hidden, cl::init(true))

Controls emitting large character arrays as strings or character arrays.

Typically set to false when building with MSVC.

Referenced by llvm::StringToOffsetTable::EmitStringTableDef().

◆ EnableDebugBuffering

bool llvm::EnableDebugBuffering = false
extern

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 240 of file Debug.cpp.

Referenced by dbgs().

◆ EnableExtTspBlockPlacement

cl::opt< bool > llvm::EnableExtTspBlockPlacement

Definition at line 340 of file SampleProfile.cpp.

◆ EnableFSDiscriminator

◆ EnableKnowledgeRetention

cl::opt< bool > llvm::EnableKnowledgeRetention("enable-knowledge-retention", cl::init(false), cl::Hidden, cl::desc( "enable preservation of attributes throughout code transformation"))

◆ EnableLoopInterleaving

cl::opt< bool > llvm::EnableLoopInterleaving
extern

◆ EnableLoopVectorization

cl::opt< bool > llvm::EnableLoopVectorization
extern

◆ EnableLTOInternalization

cl::opt< bool > llvm::EnableLTOInternalization("enable-lto-internalization", cl::init(true), cl::Hidden, cl::desc("Enable global value internalization in LTO"))

Enable global value internalization in LTO.

Referenced by thinLTOInternalizeAndPromoteGUID().

◆ EnableMemProfContextDisambiguation

cl::opt< bool > llvm::EnableMemProfContextDisambiguation

Enable MemProf context disambiguation for thin link.

Definition at line 308 of file PassBuilderPipelines.cpp.

Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildThinLTODefaultPipeline(), and llvm::FunctionImporter::importFunctions().

◆ EnablePGSO

cl::opt< bool > llvm::EnablePGSO
extern

◆ 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")) ( "time-passes" ,
cl::location(TimePassesIsEnabled) ,
cl::Hidden ,
cl::desc("Time each pass, printing elapsed time for each on exit")  )
static

◆ EnableTimingPerRun

cl::opt< bool, true > llvm::EnableTimingPerRun("time-passes-per-run", cl::location(TimePassesPerRun), cl::Hidden, cl::desc("Time each pass run, printing elapsed time for each run on exit"), cl::callback([](const bool &) { TimePassesIsEnabled=true;})) ( "time-passes-per-run" ,
cl::location(TimePassesPerRun) ,
cl::Hidden ,
cl::desc("Time each pass run, printing elapsed time for each run on exit") ,
cl::callback([](const bool &) { TimePassesIsEnabled=true;})  )
static

◆ EnableVPlanNativePath

◆ EnableVTableProfileUse

cl::opt< bool > llvm::EnableVTableProfileUse ( "enable-vtable-profile-use" ,
cl::init(false) ,
cl::desc("If ThinLTO and WPD is enabled and this option is true, vtable " "profiles will be used by ICP pass for more efficient indirect " "call sequence. If false, type profiles won't be used.")  )

Definition at line 61 of file IndirectCallPromotion.cpp.

Referenced by annotateAllFunctions(), and promoteIndirectCalls().

◆ EnableVTableValueProfiling

cl::opt< bool > llvm::EnableVTableValueProfiling ( "enable-vtable-value-profiling" ,
cl::init(false) ,
cl::desc("If true, the virtual table address will be instrumented to know " "the types of a C++ pointer. The information is used in indirect " "call promotion to do selective vtable-based comparison.")  )

Definition at line 71 of file InstrProfiling.cpp.

Referenced by InstrumentAllFunctions().

◆ ErrorsPrinted

unsigned llvm::ErrorsPrinted = 0

Definition at line 25 of file Error.cpp.

Referenced by PrintMessage(), and TableGenMain().

◆ EvictInterferenceCutoff

cl::opt< unsigned > llvm::EvictInterferenceCutoff("regalloc-eviction-max-interference-cutoff", cl::Hidden, cl::desc("Number of interferences after which we declare " "an interference unevictable and bail out. This " "is a compilation cost-saving consideration. To " "disable, pass a very large number."), cl::init(10))

◆ ExpandPostRAPseudosID

char & llvm::ExpandPostRAPseudosID = ExpandPostRALegacy::ID
extern

ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.

Definition at line 73 of file ExpandPostRAPseudos.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createResetMachineFunctionPass().

◆ FEntryInserterID

char & llvm::FEntryInserterID = FEntryInserterLegacy::ID
extern

This pass inserts FEntry calls.

Definition at line 63 of file FEntryInserter.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createGCLoweringPass().

◆ FilenamesSize

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::FilenamesSize

Definition at line 298 of file InstrProf.h.

Referenced by loadTestingFormat().

◆ FinalizeISelID

char & llvm::FinalizeISelID = FinalizeISel::ID
extern

This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.

Definition at line 83 of file FinalizeISel.cpp.

Referenced by llvm::TargetPassConfig::addCoreISelPasses(), and createSjLjEHPreparePass().

◆ firstByteMark

const UTF8 llvm::firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }
static

Definition at line 145 of file ConvertUTF.cpp.

Referenced by ConvertUTF16toUTF8(), and ConvertUTF32toUTF8().

◆ FixupStatepointCallerSavedID

char & llvm::FixupStatepointCallerSavedID = FixupStatepointCallerSavedLegacy::ID
extern

The pass fixups statepoint machine instruction to replace usage of caller saved registers with stack slots.

Definition at line 89 of file FixupStatepointCallerSaved.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createMIRAddFSDiscriminatorsPass().

◆ force_iteration_on_noniterable_enum

◆ ForcePGSO

cl::opt< bool > llvm::ForcePGSO
extern

◆ ForceSummaryEdgesCold

FunctionSummary::ForceSummaryHotnessType llvm::ForceSummaryEdgesCold

◆ ForceTargetInstructionCost

◆ ForgetSCEVInLoopUnroll

cl::opt< bool > llvm::ForgetSCEVInLoopUnroll
extern

◆ from_range

◆ FSDiscriminatorBitWidth

const unsigned llvm::FSDiscriminatorBitWidth = 6
static

Definition at line 73 of file Discriminator.h.

Referenced by getFSPassBitEnd().

◆ FuncHash

◆ FuncletLayoutID

char & llvm::FuncletLayoutID = FuncletLayout::ID
extern

◆ FunctionPointer

llvm::FunctionPointer

Definition at line 87 of file InstrProf.h.

◆ GCLoweringID

char & llvm::GCLoweringID = LowerIntrinsics::ID
extern

GCLowering Pass - Used by gc.root to perform its default lowering operations.

Definition at line 108 of file GCRootLowering.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::AMDGPUPassConfig::AMDGPUPassConfig(), and createGCLoweringPass().

◆ GCMachineCodeAnalysisID

char & llvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
extern

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 255 of file GCRootLowering.cpp.

Referenced by llvm::TargetPassConfig::addGCPasses(), and createGCLoweringPass().

◆ GCNCreateVOPDID

char & llvm::GCNCreateVOPDID = GCNCreateVOPDLegacy::ID
extern

Definition at line 222 of file GCNCreateVOPD.cpp.

Referenced by initializeGCNCreateVOPDLegacyPass().

◆ GCNDPPCombineLegacyID

char& llvm::GCNDPPCombineLegacyID
extern

◆ GCNNSAReassignID

char & llvm::GCNNSAReassignID = GCNNSAReassignLegacy::ID
extern

Definition at line 113 of file GCNNSAReassign.cpp.

Referenced by initializeGCNNSAReassignLegacyPass().

◆ GCNPreRALongBranchRegID

char& llvm::GCNPreRALongBranchRegID
extern

◆ GCNPreRAOptimizationsID

char & llvm::GCNPreRAOptimizationsID = GCNPreRAOptimizationsLegacy::ID
extern

Definition at line 92 of file GCNPreRAOptimizations.cpp.

Referenced by initializeGCNPreRAOptimizationsLegacyPass().

◆ GCNRegPressurePrinterID

char & llvm::GCNRegPressurePrinterID = GCNRegPressurePrinter::ID
extern

Definition at line 837 of file GCNRegPressure.cpp.

Referenced by initializeGCNRegPressurePrinterPass().

◆ GCNRewritePartialRegUsesID

char & llvm::GCNRewritePartialRegUsesID = GCNRewritePartialRegUsesLegacy::ID
extern

◆ GenericDomTreeUpdater< DomTreeUpdater, DominatorTree, PostDominatorTree >

◆ GenericDomTreeUpdater< MachineDomTreeUpdater, MachineDominatorTree, MachinePostDominatorTree >

◆ get_array_pod_sort_comparator

template<typename T>
int(*)(const void *, const void *) llvm::get_array_pod_sort_comparator(const T &) ( 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 1547 of file STLExtras.h.

Referenced by array_pod_sort().

◆ GICombinerOptionCategory

cl::OptionCategory llvm::GICombinerOptionCategory("GlobalISel Combiner", "Control the rules which are enabled. These options all take a comma " "separated list of rules to disable and may be specified by number " "or number range (e.g. 1-10)." " They may also be specified by name.") ( "GlobalISel Combiner" ,
"Control the rules which are enabled. These options all take a comma " "separated list of rules to disable and may be specified by number " "or number range (e.g. 1-10)." " They may also be specified by name."  )

◆ GlobalIdentifierDelimiter

char llvm::GlobalIdentifierDelimiter = ';'
inlineconstexpr

◆ GraphHasNodeNumbers

template<typename NodeT>
bool llvm::GraphHasNodeNumbers
constexpr
Initial value:
=
typename detail::detector< void, Op, Args... >::value_t is_detected
Detects if a given trait holds for some set of arguments 'Args'.

Indicate whether a GraphTraits<NodeT>::getNumber() is supported.

Definition at line 106 of file GraphTraits.h.

Referenced by llvm::DominatorTreeBase< BlockT, false >::eraseNode(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::getNodeInfo(), and llvm::DominatorTreeBase< BlockT, false >::reset().

◆ halfBase

const UTF32 llvm::halfBase = 0x0010000UL
static

◆ halfMask

const UTF32 llvm::halfMask = 0x3FFUL
static

Definition at line 103 of file ConvertUTF.cpp.

Referenced by ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().

◆ halfShift

const int llvm::halfShift = 10
static

◆ heatPalette

const char llvm::heatPalette[heatSize][8]
static
Initial value:
= {
"#3d50c3", "#4055c8", "#4358cb", "#465ecf", "#4961d2", "#4c66d6", "#4f69d9",
"#536edd", "#5572df", "#5977e3", "#5b7ae5", "#5f7fe8", "#6282ea", "#6687ed",
"#6a8bef", "#6c8ff1", "#7093f3", "#7396f5", "#779af7", "#7a9df8", "#7ea1fa",
"#81a4fb", "#85a8fc", "#88abfd", "#8caffe", "#8fb1fe", "#93b5fe", "#96b7ff",
"#9abbff", "#9ebeff", "#a1c0ff", "#a5c3fe", "#a7c5fe", "#abc8fd", "#aec9fc",
"#b2ccfb", "#b5cdfa", "#b9d0f9", "#bbd1f8", "#bfd3f6", "#c1d4f4", "#c5d6f2",
"#c7d7f0", "#cbd8ee", "#cedaeb", "#d1dae9", "#d4dbe6", "#d6dce4", "#d9dce1",
"#dbdcde", "#dedcdb", "#e0dbd8", "#e3d9d3", "#e5d8d1", "#e8d6cc", "#ead5c9",
"#ecd3c5", "#eed0c0", "#efcebd", "#f1ccb8", "#f2cab5", "#f3c7b1", "#f4c5ad",
"#f5c1a9", "#f6bfa6", "#f7bca1", "#f7b99e", "#f7b599", "#f7b396", "#f7af91",
"#f7ac8e", "#f7a889", "#f6a385", "#f5a081", "#f59c7d", "#f4987a", "#f39475",
"#f29072", "#f08b6e", "#ef886b", "#ed8366", "#ec7f63", "#e97a5f", "#e8765c",
"#e57058", "#e36c55", "#e16751", "#de614d", "#dc5d4a", "#d85646", "#d65244",
"#d24b40", "#d0473d", "#cc403a", "#ca3b37", "#c53334", "#c32e31", "#be242e",
"#bb1b2c", "#b70d28"}

Definition at line 23 of file HeatUtils.cpp.

Referenced by getHeatColor().

◆ heatSize

const unsigned llvm::heatSize = 100
static

Definition at line 22 of file HeatUtils.cpp.

Referenced by getHeatColor().

◆ HexagonCopyHoistingID

char & llvm::HexagonCopyHoistingID = HexagonCopyHoisting::ID

Definition at line 70 of file HexagonCopyHoisting.cpp.

◆ HexagonDisableCompound

cl::opt< bool > llvm::HexagonDisableCompound
extern

◆ HexagonDisableDuplex

◆ HexagonExpandCondsetsID

char & llvm::HexagonExpandCondsetsID = HexagonExpandCondsets::ID
extern

Definition at line 241 of file HexagonExpandCondsets.cpp.

◆ HexagonStages

◆ HexagonTfrCleanupID

char & llvm::HexagonTfrCleanupID = HexagonTfrCleanup::ID

Definition at line 72 of file HexagonTfrCleanup.cpp.

◆ hexDigitsLower

const char llvm::hexDigitsLower[] = "0123456789abcdef0"
static

Definition at line 844 of file APFloat.cpp.

◆ hexDigitsUpper

const char llvm::hexDigitsUpper[] = "0123456789ABCDEF0"
static

Definition at line 845 of file APFloat.cpp.

◆ huge_valf

const float llvm::huge_valf = HUGE_VALF

Use this rather than HUGE_VALF; the latter causes warnings on MSVC.

Definition at line 28 of file MathExtras.cpp.

Referenced by llvm::LiveInterval::isSpillable(), and llvm::LiveInterval::markNotSpillable().

◆ HybridPatchableTargetSuffix

std::string_view llvm::HybridPatchableTargetSuffix
constexpr
Initial value:
=
constexpr char HybridPatchableTargetSuffixArr[]
Definition Mangler.h:36

Definition at line 37 of file Mangler.h.

Referenced by llvm::AsmPrinter::emitCOFFReplaceableFunctionData().

◆ HybridPatchableTargetSuffixArr

char llvm::HybridPatchableTargetSuffixArr[] = "$hp_target"
constexpr

Definition at line 36 of file Mangler.h.

◆ IfConverterID

char & llvm::IfConverterID = IfConverter::ID
extern

IfConverter - This pass performs machine code if conversion.

Definition at line 451 of file IfConversion.cpp.

Referenced by createResetMachineFunctionPass().

◆ IgnoreBundleTag

StringRef llvm::IgnoreBundleTag = "ignore"
constexpr

Tag in operand bundle indicating that this bundle should be ignored.

Definition at line 141 of file AssumeBundleQueries.h.

Referenced by findAffectedValues().

◆ ImplicitNullChecksID

char & llvm::ImplicitNullChecksID = ImplicitNullChecks::ID
extern

ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.

Definition at line 808 of file ImplicitNullChecks.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createGCLoweringPass().

◆ ImprovedFSDiscriminator

cl::opt< bool > llvm::ImprovedFSDiscriminator ( "improved-fs-discriminator" ,
cl::Hidden ,
cl::init(false) ,
cl::desc("New FS discriminators encoding (incompatible with the original " "encoding)")  )

Definition at line 66 of file MIRSampleProfile.cpp.

Referenced by llvm::MIRProfileLoader::getInstWeight().

◆ InferAddressSpacesID

LLVM_ABI char& llvm::InferAddressSpacesID
extern

Referenced by createLowerAtomicPass().

◆ infinityL

const char llvm::infinityL[] = "infinity"
static

Definition at line 846 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::convertToHexString().

◆ infinityU

const char llvm::infinityU[] = "INFINITY"
static

Definition at line 847 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::convertToHexString().

◆ InitUndefID

char & llvm::InitUndefID = InitUndefLegacy::ID
extern

◆ InlineDecisionSpec

const TensorSpec llvm::InlineDecisionSpec
extern
Initial value:

Definition at line 127 of file MLInlineAdvisor.cpp.

Referenced by getReleaseModeAdvisor().

◆ InlinerFunctionImportStats

cl::opt< InlinerFunctionImportStatsOpts > llvm::InlinerFunctionImportStats ( "inliner-function-import-stats" ,
cl::init(InlinerFunctionImportStatsOpts::No) ,
cl::values(clEnumValN(InlinerFunctionImportStatsOpts::Basic, "basic", "basic statistics"), clEnumValN(InlinerFunctionImportStatsOpts::Verbose, "verbose", "printing of statistics for each inlined function")) ,
cl::Hidden ,
cl::desc("Enable inliner stats for imported functions")  )

◆ InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

template<typename AnalysisManagerT, typename IRUnitT, typename... ExtraArgTs>
LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

Definition at line 668 of file PassManager.h.

Referenced by llvm::AA::PointerInfo::State::addAccess(), llvm::WindowsResourceProcessor::addDefine(), llvm::logicalview::addItem(), llvm::ShadowResolver::addShadow(), llvm::SPIRVGlobalRegistry::addValueAttrs(), llvm::StringMapEntryBase::allocateWithKey(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::applyRemapping(), llvm::json::OStream::attribute(), llvm::json::OStream::attributeArray(), llvm::json::OStream::attributeBegin(), llvm::json::OStream::attributeObject(), llvm::ScopedHashTable< MachineInstr *, unsigned, MachineInstrExpressionTrait, AllocatorTy >::begin(), llvm::BlotMapVector< KeyT, ValueT >::blot(), cacheAnnotationFromMD(), checkBias(), clusterSortPtrAccesses(), CollectAddOperandsWithScales(), llvm::ModuleSymbolTable::CollectAsmSymbols(), computeBaseDerivedRelocateMap(), llvm::AbstractLatticeFunction< LatticeKey, LatticeVal >::ComputeInstructionState(), llvm::AbstractLatticeFunction< LatticeKey, LatticeVal >::ComputeLatticeVal(), llvm::MapVector< StringRef, HashData >::contains(), llvm::OnDiskChainedHashTableGenerator< Info >::contains(), llvm::SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >::contains(), llvm::SparseSet< MCPhysReg, identity< MCPhysReg > >::contains(), llvm::StringMap< std::nullopt_t, AllocatorTy >::contains(), llvm::sandboxir::ConstantPtrAuth::Context, llvm::MapVector< StringRef, HashData >::count(), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::count(), llvm::ScopedHashTable< MachineInstr *, unsigned, MachineInstrExpressionTrait, AllocatorTy >::count(), llvm::SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >::count(), llvm::SparseSet< MCPhysReg, identity< MCPhysReg > >::count(), llvm::StringMap< std::nullopt_t, AllocatorTy >::count(), llvm::ConcurrentHashTableInfoByPtr< KeyTy, KeyDataTy, AllocatorTy >::create(), llvm::dwarf_linker::parallel::TypeEntryInfo::create(), llvm::dwarf_linker::StringPoolEntryInfo::create(), createCandidatesFromSuffixTree(), llvm::FunctionImporter::ImportIDTable::createImportIDs(), llvm::DIBuilder::createPtrAuthQualifiedType(), createResultCachePoisonedError(), DEBUG_COUNTER(), deleteDeadLoop(), llvm::MCDwarfFrameEmitter::Emit(), llvm::orc::ReOptimizeLayer::emit(), llvm::AArch64TargetStreamer::emitAuthValue(), llvm::TargetLoweringObjectFile::emitCGProfileMetadata(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::remarks::BitstreamRemarkSerializerHelper::emitRemarkBlock(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::emplace_or_assign(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::emplace_or_assign(), llvm::AppleAcceleratorTable::equal_range(), llvm::DWARFDebugNames::equal_range(), llvm::DWARFDebugNames::NameIndex::equal_range(), llvm::MapVector< StringRef, HashData >::erase(), llvm::msgpack::MapDocNode::erase(), llvm::sampleprof::SampleProfileMap::erase(), llvm::sandboxir::SeedContainer::erase(), llvm::SparseSet< MCPhysReg, identity< MCPhysReg > >::erase(), llvm::StringMap< std::nullopt_t, AllocatorTy >::erase(), fillMapFromAssume(), llvm::BlotMapVector< KeyT, ValueT >::find(), llvm::BlotMapVector< KeyT, ValueT >::find(), llvm::DXILResourceMap::find(), llvm::DXILResourceMap::find(), llvm::MapVector< StringRef, HashData >::find(), llvm::MapVector< StringRef, HashData >::find(), llvm::msgpack::MapDocNode::find(), llvm::rdf::RegisterAggrMap< NodeId >::find(), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::find(), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::find(), llvm::SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >::find(), llvm::SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >::find(), llvm::SparseSet< MCPhysReg, identity< MCPhysReg > >::find(), llvm::SparseSet< MCPhysReg, identity< MCPhysReg > >::find(), llvm::StringMap< std::nullopt_t, AllocatorTy >::find(), llvm::StringMap< std::nullopt_t, AllocatorTy >::find(), llvm::StringMap< std::nullopt_t, AllocatorTy >::find(), llvm::StringMap< std::nullopt_t, AllocatorTy >::find(), llvm::pdb::const_iterator< SrcHeaderBlockEntry >::find_as(), llvm::ValueMap< const Value *, WeakTrackingVH >::FindAndConstruct(), llvm::logicalview::LVStringPool::findIndex(), llvm::StringMapImpl::FindKey(), llvm::StringMapImpl::FindKey(), llvm::IRMover::IdentifiedStructTypeSet::findNonOpaque(), llvm::orc::LocalIndirectStubsManager< TargetT >::findPointer(), findRecord(), llvm::orc::LocalIndirectStubsManager< TargetT >::findStub(), llvm::SPIRVGlobalRegistry::findValueAttrs(), formatPax(), gatherImportedSummariesForModule(), generateKeySubkey(), llvm::ConstantExpr::get(), llvm::ConstantPtrAuth::get(), llvm::InlineAsm::get(), llvm::pdb::const_iterator< SrcHeaderBlockEntry >::get(), llvm::sandboxir::ConstantPtrAuth::get(), llvm::IndexedMemProfReader::getAllMemProfData(), llvm::AArch64_ELFTargetObjectFile::getAuthPtrSlotSymbol(), llvm::AArch64_MachoTargetObjectFile::getAuthPtrSlotSymbol(), getAuthPtrSlotSymbolHelper(), llvm::orc::ExecutionSession::getBootstrapMapValue(), llvm::orc::ExecutorProcessControl::getBootstrapMapValue(), llvm::dwarf_linker::classic::DeclContextTree::getChildDeclContext(), getDagArgNoByKey(), llvm::MCRegisterInfo::getDwarfRegNum(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::getExistingValueState(), llvm::ConstantExpr::getExtractElement(), getFoldedCast(), getGatherVecOpcode(), llvm::ConstantExpr::getGetElementPtr(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::ConcurrentHashTableInfoByPtr< KeyTy, KeyDataTy, AllocatorTy >::getHashValue(), llvm::DenseMapInfo< APFloat >::getHashValue(), llvm::DenseMapInfo< APInt, void >::getHashValue(), llvm::DenseMapInfo< APSInt, void >::getHashValue(), llvm::DenseMapInfo< SymbolsMapKey >::getHashValue(), llvm::DIArgListInfo::getHashValue(), llvm::dwarf_linker::parallel::TypeEntryInfo::getHashValue(), llvm::dwarf_linker::StringPoolEntryInfo::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::MDNodeInfo< NodeTy >::getHashValue(), llvm::TargetExtTypeKeyInfo::getHashValue(), llvm::SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >::getHead(), llvm::FunctionImporter::ImportIDTable::getImportIDs(), llvm::logicalview::LVStringPool::getIndex(), llvm::ConstantExpr::getInsertElement(), getKeyFPValMD(), getKeyValMD(), getKeyValMD(), llvm::RegionPressureMap::getLiveRegsForRegionIdx(), llvm::MCRegisterInfo::getLLVMRegNum(), llvm::InterleaveGroup< InstTy >::getMember(), llvm::RISCVELFTargetObjectFile::getModuleMetadata(), GetObjCImageInfo(), getOptionalVal(), llvm::ConstantUniqueMap< ConstantArray >::getOrCreate(), getOrCreateCachedOptional(), llvm::pdb::SymbolCache::getOrCreateFieldListMember(), llvm::SPIRVGlobalRegistry::getOrCreateLayoutType(), llvm::SPIRV::ModuleAnalysisInfo::getOrCreateMBBRegister(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeDeviceEvent(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypePipe(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeSampler(), llvm::SwiftErrorValueTracking::getOrCreateVReg(), llvm::SwiftErrorValueTracking::getOrCreateVRegDefAt(), llvm::SwiftErrorValueTracking::getOrCreateVRegUseAt(), llvm::SPIRVGlobalRegistry::getOrCreateVulkanBufferType(), llvm::LoopCarriedEdges::getOrderDepOrNull(), llvm::TargetLoweringBase::getPartialReduceMLAAction(), llvm::memprof::DataAccessProfData::getProfileRecord(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), llvm::ConstantExpr::getShuffleVector(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::object::OffloadBinary::getString(), llvm::yaml::getStringValue(), llvm::AArch64TargetMachine::getSubtargetImpl(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), llvm::CSKYTargetMachine::getSubtargetImpl(), llvm::LoongArchTargetMachine::getSubtargetImpl(), llvm::RISCVTargetMachine::getSubtargetImpl(), llvm::X86TargetMachine::getSubtargetImpl(), llvm::SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t >::getTail(), getTypeName(), getUniqued(), getVal(), getVal(), getValMD(), llvm::LatticeKeyInfo< CVPLatticeKey >::getValueFromLatticeKey(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::getValueState(), llvm::StringMapImpl::hash(), llvm::SPIRV::ModuleAnalysisInfo::hasMBBRegister(), llvm::yaml::CustomMappingTraits< BBNumberMap >::inputOne(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::inputOne(), llvm::yaml::CustomMappingTraits< IdHashNodeStableMapTy >::inputOne(), llvm::yaml::CustomMappingTraits< MapDocNode >::inputOne(), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::inputOne(), llvm::yaml::CustomMappingTraits< std::map< uint64_t, WholeProgramDevirtResolution > >::inputOne(), llvm::yaml::CustomMappingTraits< TypeIdSummaryMapTy >::inputOne(), llvm::OnDiskChainedHashTableGenerator< Info >::insert(), llvm::OnDiskChainedHashTableGenerator< Info >::insert(), llvm::ScopedHashTable< MachineInstr *, unsigned, MachineInstrExpressionTrait, AllocatorTy >::insert(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::insert_or_assign(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::insert_or_assign(), llvm::MapVector< StringRef, HashData >::insert_or_assign(), llvm::MapVector< StringRef, HashData >::insert_or_assign(), llvm::StringMap< std::nullopt_t, AllocatorTy >::insert_or_assign(), llvm::ScopedHashTable< MachineInstr *, unsigned, MachineInstrExpressionTrait, AllocatorTy >::insertIntoScope(), llvm::InterleaveGroup< InstTy >::insertMember(), isKeyValuePair(), llvm::ConstantPtrAuth::isKnownCompatibleWith(), llvm::sandboxir::ConstantPtrAuth::isKnownCompatibleWith(), llvm::AbstractLatticeFunction< LatticeKey, LatticeVal >::IsUntrackedValue(), LLVMAddModuleFlag(), LLVMConstantPtrAuth(), LLVMGetModuleFlag(), LLVMRemarkArgGetKey(), localCache(), llvm::MapVector< StringRef, HashData >::lookup(), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::lookup(), llvm::ScopedHashTable< MachineInstr *, unsigned, MachineInstrExpressionTrait, AllocatorTy >::lookup(), llvm::StringMap< std::nullopt_t, AllocatorTy >::lookup(), llvm::StringMapImpl::LookupBucketFor(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::lookUpNameInProfile(), llvm::SelectionDAGBuilder::LowerCallSiteWithPtrAuthBundle(), llvm::jitlink::aarch64::lowerPointer64AuthEdgesToSigningFunction(), LowerPtrAuthGlobalAddressStatically(), llvm::yaml::IO::mapOptional(), llvm::yaml::IO::mapOptional(), mapOptional(), mapOptionalAs(), mapOptionalHex(), llvm::yaml::IO::mapOptionalWithContext(), llvm::yaml::IO::mapOptionalWithContext(), llvm::yaml::IO::mapOptionalWithContext(), llvm::yaml::MappingTraits< IndexPairHash >::mapping(), llvm::yaml::IO::mapRequired(), llvm::yaml::IO::mapRequired(), mapRequiredAs(), mapRequiredHex(), llvm::MCJIT::notifyFreeingObject(), llvm::MCJIT::notifyObjectLoaded(), llvm::orc::DebugObjectManagerPlugin::notifyRemovingResources(), llvm::FileCache::operator()(), llvm::SparseSetValFunctor< KeyT, KeyT, KeyFunctorT >::operator()(), llvm::OnDiskIterableChainedHashTable< Info >::data_iterator::operator*(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::operator[](), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::operator[](), llvm::MapVector< StringRef, HashData >::operator[](), llvm::msgpack::MapDocNode::operator[](), llvm::msgpack::MapDocNode::operator[](), llvm::msgpack::MapDocNode::operator[](), llvm::msgpack::MapDocNode::operator[](), llvm::msgpack::MapDocNode::operator[](), llvm::rdf::RegisterAggrMap< NodeId >::operator[](), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::operator[](), llvm::ScheduleDAGInstrs::Value2SUsMap::operator[](), llvm::SparseSet< MCPhysReg, identity< MCPhysReg > >::operator[](), llvm::StringMap< std::nullopt_t, AllocatorTy >::operator[](), llvm::ValueMap< const Value *, WeakTrackingVH >::operator[](), llvm::yaml::CustomMappingTraits< std::map< std::vector< uint64_t >, WholeProgramDevirtResolution::ByArg > >::output(), llvm::vfs::RedirectingFileSystemParser::parse(), parseCachePruningPolicy(), llvm::remarks::YAMLRemarkParser::parseKey(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::populateRemappings(), llvm::DroppedVariableStats::populateVarIDSetAndInlinedMap(), llvm::yaml::Output::preflightKey(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Print(), llvm::AbstractLatticeFunction< LatticeKey, LatticeVal >::PrintLatticeKey(), llvm::SwiftErrorValueTracking::propagateVRegs(), llvm::DIDerivedType::PtrAuthData::PtrAuthData(), llvm::AMDGPUPALMetadata::readFromIR(), recomputeLTOCacheKey(), llvm::MapVector< StringRef, HashData >::remove_if(), llvm::StringMapImpl::RemoveKey(), removeRedundantDbgInstrsUsingBackwardScan(), removeRedundantDbgInstrsUsingForwardScan(), removeRedundantDbgLocsUsingForwardScan(), llvm::ConstantUniqueMap< ConstantArray >::replaceOperandsInPlace(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::SharedMemoryMapper::reserve(), SelectOpcodeFromVT(), llvm::memprof::DataAccessProfData::serialize(), llvm::MapResolver::set(), llvm::pdb::const_iterator< SrcHeaderBlockEntry >::set_as(), llvm::SMTSolver::setBoolParam(), llvm::orc::SimpleRemoteEPCServer::Setup::setBootstrapMapValue(), llvm::memprof::DataAccessProfData::setDataAccessProfile(), llvm::AMDGPUPALMetadata::setFromString(), llvm::TargetLoweringBase::setPartialReduceMLAAction(), llvm::yaml::setStringValue(), llvm::SMTSolver::setUnsignedParam(), llvm::HexagonResource::setWeight(), ShouldSignWithBKey(), stripDebugifyMetadata(), llvm::AMDGPUPALMetadata::toString(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace(), llvm::DenseMapBase< DenseMap, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace(), llvm::MapVector< StringRef, HashData >::try_emplace(), llvm::MapVector< StringRef, HashData >::try_emplace(), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::try_emplace(), llvm::sampleprof::HashKeyMap< MapT, KeyT, ValueT, MapTArgs >::try_emplace(), llvm::StringMap< std::nullopt_t, AllocatorTy >::try_emplace(), llvm::StringMap< std::nullopt_t, AllocatorTy >::try_emplace_with_hash(), llvm::orc::LocalIndirectStubsManager< TargetT >::updatePointer(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitCallInst(), llvm::TimeTraceProfiler::write(), llvm::jitlink::aarch64::writePACSignSeq(), llvm::AArch64TargetStreamer::~AArch64TargetStreamer(), and llvm::MachO::SymbolSet::~SymbolSet().

◆ InnerAnalysisManagerProxy< CGSCCAnalysisManager, Module >

◆ InnerAnalysisManagerProxy< FunctionAnalysisManager, Module >

◆ InnerAnalysisManagerProxy< LoopAnalysisManager, Function >

◆ InnerAnalysisManagerProxy< MachineFunctionAnalysisManager, Function >

◆ InnerAnalysisManagerProxy< MachineFunctionAnalysisManager, Module >

◆ InputFeatures

const std::vector<TensorSpec> llvm::InputFeatures
static
Initial value:
{
}
#define _DECL_FEATURES(type, name, shape, _)
#define RA_PRIORITY_FEATURES_LIST(M)

Definition at line 116 of file MLRegAllocPriorityAdvisor.cpp.

Referenced by llvm::ReleaseModePriorityAdvisorProvider::getAdvisor(), getReleaseModeAdvisor(), and INITIALIZE_PASS().

◆ InstCombineDefaultMaxIterations

unsigned llvm::InstCombineDefaultMaxIterations = 1
staticconstexpr

Definition at line 29 of file InstCombine.h.

◆ InstrProfRecordClosure

ValueProfRecordClosure llvm::InstrProfRecordClosure
static
Initial value:
= {
nullptr,
nullptr,
void getValueForSiteInstrProf(const void *R, InstrProfValueData *Dst, uint32_t K, uint32_t S)
uint32_t getNumValueSitesInstrProf(const void *Record, uint32_t VKind)
uint32_t getNumValueDataForSiteInstrProf(const void *R, uint32_t VK, uint32_t S)
uint32_t getNumValueKindsInstrProf(const void *Record)
ValueProfRecordClosure Interface implementation for InstrProfRecord class.
ValueProfData * allocValueProfDataInstrProf(size_t TotalSizeInBytes)
uint32_t getNumValueDataInstrProf(const void *Record, uint32_t VKind)

Definition at line 1168 of file InstrProf.cpp.

◆ InstructionsMappingShape

const std::vector<int64_t> llvm::InstructionsMappingShape
static
Initial value:
{
static const int ModelMaxSupportedInstructionCount
static const int64_t NumberOfInterferences

Definition at line 82 of file MLRegAllocEvictAdvisor.h.

◆ InstructionsShape

const std::vector<int64_t> llvm::InstructionsShape
static
Initial value:

Definition at line 80 of file MLRegAllocEvictAdvisor.h.

◆ Int16ArrayTy

FunctionAddr llvm::Int16ArrayTy

Definition at line 93 of file InstrProf.h.

◆ Int32Ty

◆ IntrinsicsWithChain

const IntrinsicData llvm::IntrinsicsWithChain[]
static

Definition at line 102 of file X86IntrinsicsInfo.h.

Referenced by getIntrinsicWithChain(), and verifyIntrinsicTables().

◆ IntrinsicsWithoutChain

const IntrinsicData llvm::IntrinsicsWithoutChain[]
static

Definition at line 358 of file X86IntrinsicsInfo.h.

Referenced by getIntrinsicWithoutChain(), and verifyIntrinsicTables().

◆ InvalidClusterId

◆ is_incomplete_v

template<typename T>
bool llvm::is_incomplete_v = !is_detected<detail::has_sizeof, T>::value
constexpr

Detects when type T is incomplete.

This is true for forward declarations and false for types with a full definition.

Definition at line 2601 of file STLExtras.h.

◆ IsaAndPresentPred

template<typename... Types>
detail::IsaAndPresentCheckPredicate<Types...> llvm::IsaAndPresentPred {}
inlineconstexpr

Function object wrapper for the llvm::isa_and_present type check.

The function call operator returns true when the value can be cast to any type in Types, or if the value is not present (e.g., nullptr). Example:

SmallVector<Type> myTypes = ...;
...
bool all_of(R &&range, UnaryPredicate P)
Provide wrappers to std::all_of which take ranges instead of having to pass begin/end explicitly.
Definition STLExtras.h:1705
constexpr detail::IsaAndPresentCheckPredicate< Types... > IsaAndPresentPred
Function object wrapper for the llvm::isa_and_present type check.
Definition Casting.h:848

Definition at line 848 of file Casting.h.

◆ IsaPred

◆ IsNullable

template<typename T>
bool llvm::IsNullable
constexpr
Initial value:
=
std::is_pointer_v<T> || std::is_constructible_v<T, std::nullptr_t>

Definition at line 593 of file Casting.h.

◆ IterativeBFIMaxIterationsPerBlock

cl::opt< unsigned > llvm::IterativeBFIMaxIterationsPerBlock("iterative-bfi-max-iterations-per-block", cl::init(1000), cl::Hidden, cl::desc("Iterative inference: maximum number of update iterations " "per block"))

◆ IterativeBFIPrecision

cl::opt< double > llvm::IterativeBFIPrecision("iterative-bfi-precision", cl::init(1e-12), cl::Hidden, cl::desc("Iterative inference: delta convergence precision; smaller values " "typically lead to better results at the cost of worsen runtime"))

◆ 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.

◆ kAsanStackUseAfterScopeMagic

const int llvm::kAsanStackUseAfterScopeMagic = 0xf8
static

Definition at line 28 of file ASanStackFrameLayout.h.

Referenced by GetShadowBytesAfterScope().

◆ kMinAlignment

const uint64_t llvm::kMinAlignment = 16
static

Definition at line 35 of file ASanStackFrameLayout.cpp.

Referenced by ComputeASanStackFrameLayout().

◆ kSanitizerBinaryMetadataAtomics

uint64_t llvm::kSanitizerBinaryMetadataAtomics
inlineconstexpr
Initial value:
=
constexpr int kSanitizerBinaryMetadataAtomicsBit

Definition at line 35 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataAtomicsBit

int llvm::kSanitizerBinaryMetadataAtomicsBit = 0
inlineconstexpr

Definition at line 31 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataAtomicsSection

char llvm::kSanitizerBinaryMetadataAtomicsSection[]
inlineconstexpr
Initial value:
=
"sanmd_atomics"

Definition at line 44 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataCoveredSection

char llvm::kSanitizerBinaryMetadataCoveredSection[]
inlineconstexpr
Initial value:
=
"sanmd_covered"

Definition at line 42 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataUAR

uint64_t llvm::kSanitizerBinaryMetadataUAR
inlineconstexpr
Initial value:
=
constexpr int kSanitizerBinaryMetadataUARBit

Definition at line 37 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataUARBit

int llvm::kSanitizerBinaryMetadataUARBit = 1
inlineconstexpr

Definition at line 32 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataUARHasSize

uint64_t llvm::kSanitizerBinaryMetadataUARHasSize
inlineconstexpr
Initial value:

Definition at line 39 of file SanitizerBinaryMetadata.h.

◆ kSanitizerBinaryMetadataUARHasSizeBit

int llvm::kSanitizerBinaryMetadataUARHasSizeBit = 2
inlineconstexpr

Definition at line 33 of file SanitizerBinaryMetadata.h.

◆ LCSSAID

char & llvm::LCSSAID = LCSSAWrapperPass::ID
extern

Definition at line 526 of file LCSSA.cpp.

Referenced by createBreakCriticalEdgesPass(), and getLoopAnalysisUsage().

◆ LiveDebugValuesID

char & llvm::LiveDebugValuesID = LiveDebugValuesLegacy::ID
extern

◆ LiveIntervalsID

char & llvm::LiveIntervalsID = LiveIntervalsWrapperPass::ID
extern

LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.

Definition at line 80 of file LiveIntervals.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ LiveRangeShrinkID

char & llvm::LiveRangeShrinkID = LiveRangeShrink::ID
extern

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 createResetMachineFunctionPass().

◆ LiveStacksID

Live Stack Slot true char & llvm::LiveStacksID = LiveStacksWrapperLegacy::ID
extern

LiveStacks pass. An analysis keeping track of the liveness of stack slots.

Definition at line 30 of file LiveStacks.cpp.

Referenced by createResetMachineFunctionPass().

◆ LiveVariablesID

char & llvm::LiveVariablesID = LiveVariablesWrapperPass::ID
extern

LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.

Definition at line 60 of file LiveVariables.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ LLVMLoopEstimatedTripCount

const char * llvm::LLVMLoopEstimatedTripCount = "llvm.loop.estimated_trip_count"

Profile-based loop metadata that should be accessed only by using llvm::getLoopEstimatedTripCount and llvm::setLoopEstimatedTripCount.

Definition at line 98 of file ProfDataUtils.cpp.

Referenced by getLoopEstimatedTripCount(), and setLoopEstimatedTripCount().

◆ LLVMLoopUnrollFollowupAll

const char* const llvm::LLVMLoopUnrollFollowupAll = "llvm.loop.unroll.followup_all"

Metadata attribute names

Definition at line 45 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 48 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 46 of file UnrollLoop.h.

Referenced by tryToUnrollLoop().

◆ LoadFP32ImmArr

std::pair<uint8_t, uint8_t> llvm::LoadFP32ImmArr[]
staticconstexpr
Initial value:
= {
{0b01101111, 0b00}, {0b01110000, 0b00}, {0b01110111, 0b00},
{0b01111000, 0b00}, {0b01111011, 0b00}, {0b01111100, 0b00},
{0b01111101, 0b00}, {0b01111101, 0b01}, {0b01111101, 0b10},
{0b01111101, 0b11}, {0b01111110, 0b00}, {0b01111110, 0b01},
{0b01111110, 0b10}, {0b01111110, 0b11}, {0b01111111, 0b00},
{0b01111111, 0b01}, {0b01111111, 0b10}, {0b01111111, 0b11},
{0b10000000, 0b00}, {0b10000000, 0b01}, {0b10000000, 0b10},
{0b10000001, 0b00}, {0b10000010, 0b00}, {0b10000011, 0b00},
{0b10000110, 0b00}, {0b10000111, 0b00}, {0b10001110, 0b00},
{0b10001111, 0b00}, {0b11111111, 0b00}, {0b11111111, 0b10},
}

Definition at line 170 of file RISCVBaseInfo.cpp.

Referenced by llvm::RISCVLoadFPImm::getFPImm(), and llvm::RISCVLoadFPImm::getLoadFPImm().

◆ LocalStackSlotAllocationID

char & llvm::LocalStackSlotAllocationID = LocalStackSlotPass::ID
extern

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 127 of file LocalStackSlotAllocation.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), llvm::TargetPassConfig::addMachineSSAOptimization(), and createSjLjEHPreparePass().

◆ LoopBase< BasicBlock, Loop >

Definition at line 397 of file LoopInfo.h.

◆ LoopBase< MachineBasicBlock, MachineLoop >

Definition at line 102 of file MachineLoopInfo.h.

◆ LoopInfoBase< BasicBlock, Loop >

Definition at line 397 of file LoopInfo.h.

◆ LoopInfoBase< MachineBasicBlock, MachineLoop >

Definition at line 91 of file MachineLoopInfo.h.

◆ LoopSimplifyID

loop Canonicalize natural false char & llvm::LoopSimplifyID = LoopSimplify::ID
extern

Definition at line 784 of file LoopSimplify.cpp.

Referenced by createBreakCriticalEdgesPass(), and getLoopAnalysisUsage().

◆ LowerInvokePassID

char & llvm::LowerInvokePassID = LowerInvokeLegacyPass::ID

Definition at line 82 of file LowerInvoke.cpp.

◆ LowerSwitchID

char & llvm::LowerSwitchID = LowerSwitchLegacyPass::ID
extern

Definition at line 582 of file LowerSwitch.cpp.

◆ LTOCSIRProfile

cl::opt< std::string > llvm::LTOCSIRProfile("cs-profile-path", cl::desc("Context sensitive profile file path")) ( "cs-profile-path" ,
cl::desc("Context sensitive profile file path")  )
static

◆ LTODiscardValueNames

cl::opt< bool > llvm::LTODiscardValueNames ( "lto-discard-value-names" ,
cl::desc("Strip names from Value during LTO (other than GlobalValue).") ,
cl::init(false) ,
cl::Hidden  )

◆ LTOKeepSymbolCopies

cl::opt< bool > llvm::LTOKeepSymbolCopies("lto-keep-symbol-copies", cl::init(false), cl::Hidden, cl::desc("Keep copies of symbols in LTO indexing")) ( "lto-keep-symbol-copies" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Keep copies of symbols in LTO indexing")  )
static

Referenced by llvm::lto::LTO::LTO().

◆ LTORunCSIRInstr

cl::opt< bool > llvm::LTORunCSIRInstr("cs-profile-generate", cl::desc("Perform context sensitive PGO instrumentation")) ( "cs-profile-generate" ,
cl::desc("Perform context sensitive PGO instrumentation")  )
static

◆ LTOStatsFile

cl::opt< std::string > llvm::LTOStatsFile("lto-stats-file", cl::desc("Save statistics to the specified file"), cl::Hidden) ( "lto-stats-file" ,
cl::desc("Save statistics to the specified file") ,
cl::Hidden  )
static

◆ MachineBlockPlacementID

char & llvm::MachineBlockPlacementID = MachineBlockPlacementLegacy::ID
extern

MachineBlockPlacement - This pass places basic blocks based on branch probabilities.

Definition at line 682 of file MachineBlockPlacement.cpp.

Referenced by llvm::TargetPassConfig::addBlockPlacement(), createResetMachineFunctionPass(), and overridePass().

◆ MachineBlockPlacementStatsID

char & llvm::MachineBlockPlacementStatsID = MachineBlockPlacementStatsLegacy::ID
extern

MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.

Definition at line 3895 of file MachineBlockPlacement.cpp.

Referenced by llvm::TargetPassConfig::addBlockPlacement(), and createResetMachineFunctionPass().

◆ MachineCFGPrinterID

char & llvm::MachineCFGPrinterID = MachineCFGPrinter::ID
extern

MachineCFGPrinter pass.

Definition at line 77 of file MachineCFGPrinter.cpp.

Referenced by createSjLjEHPreparePass().

◆ MachineCombinerID

char & llvm::MachineCombinerID = MachineCombiner::ID
extern

This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.

Definition at line 128 of file MachineCombiner.cpp.

Referenced by createResetMachineFunctionPass().

◆ MachineCopyPropagationID

char & llvm::MachineCopyPropagationID = MachineCopyPropagationLegacy::ID
extern

MachineCopyPropagation - This pass performs copy propagation on machine instructions.

Definition at line 525 of file MachineCopyPropagation.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), llvm::TargetPassConfig::addOptimizedRegAlloc(), createGCLoweringPass(), and overridePass().

◆ MachineCSELegacyID

char & llvm::MachineCSELegacyID = MachineCSELegacy::ID
extern

MachineCSE - This pass performs global CSE on machine instructions.

Definition at line 163 of file MachineCSE.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), createGCLoweringPass(), and overridePass().

◆ MachineDominanceFrontierID

char & llvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID
extern

MachineDominanaceFrontier - This pass is a machine dominators analysis.

Definition at line 37 of file MachineDominanceFrontier.cpp.

Referenced by createResetMachineFunctionPass().

◆ MachineDominatorsID

char & llvm::MachineDominatorsID = MachineDominatorTreeWrapperPass::ID
extern

MachineDominators - This pass is a machine dominators analysis pass.

Definition at line 103 of file MachineDominators.cpp.

Referenced by createResetMachineFunctionPass(), llvm::LiveIntervalsWrapperPass::getAnalysisUsage(), and llvm::RABasic::getAnalysisUsage().

◆ MachineFunctionPrinterPassID

char & llvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
extern

MachineFunctionPrinterPass - This pass prints out MachineInstr's.

Definition at line 59 of file MachineFunctionPrinterPass.cpp.

Referenced by createResetMachineFunctionPass().

◆ MachineLateInstrsCleanupID

char & llvm::MachineLateInstrsCleanupID = MachineLateInstrsCleanupLegacy::ID
extern

MachineLateInstrsCleanup - This pass removes redundant identical instructions after register allocation and rematerialization.

Definition at line 92 of file MachineLateInstrsCleanup.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and createGCLoweringPass().

◆ MachineLICMID

char & llvm::MachineLICMID = MachineLICM::ID
extern

This pass performs loop invariant code motion on machine instructions.

Definition at line 333 of file MachineLICM.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), createGCLoweringPass(), and overridePass().

◆ MachineLoopInfoID

machine Machine Natural Loop true char & llvm::MachineLoopInfoID = MachineLoopInfoWrapperPass::ID
extern

◆ MachinePipelinerID

char & llvm::MachinePipelinerID = MachinePipeliner::ID
extern

This pass performs software pipelining on machine instructions.

Definition at line 228 of file MachinePipeliner.cpp.

Referenced by createLowerEmuTLSPass().

◆ MachineRegionInfoPassID

LLVM_ABI char& llvm::MachineRegionInfoPassID
extern

MachineRegionInfo - This pass computes SESE regions for machine functions.

Referenced by createResetMachineFunctionPass().

◆ MachineSanitizerBinaryMetadataID

LLVM_ABI char& llvm::MachineSanitizerBinaryMetadataID
extern

◆ MachineSchedulerID

char & llvm::MachineSchedulerID = MachineSchedulerLegacy::ID
extern

MachineScheduler - This pass schedules machine instructions.

Definition at line 413 of file MachineScheduler.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ MachineSinkingLegacyID

char & llvm::MachineSinkingLegacyID = MachineSinkingLegacy::ID
extern

MachineSinking - This pass performs sinking on machine instructions.

Definition at line 322 of file MachineSink.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), createGCLoweringPass(), and overridePass().

◆ MachineTraceMetricsID

char & llvm::MachineTraceMetricsID = MachineTraceMetricsWrapperPass::ID
extern

MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.

Definition at line 57 of file MachineTraceMetrics.cpp.

Referenced by createResetMachineFunctionPass().

◆ MatchCallsByName

cl::opt< bool > llvm::MatchCallsByName("ir-sim-calls-by-name", cl::init(false), cl::ReallyHidden, cl::desc("only allow matching call instructions if the " "name and type signature match.")) ( "ir-sim-calls-by-name" ,
cl::init(false) ,
cl::ReallyHidden ,
cl::desc("only allow matching call instructions if the " "name and type signature match.")  )
static

◆ MAX_SUBTARGET_FEATURES

const unsigned llvm::MAX_SUBTARGET_FEATURES = MAX_SUBTARGET_WORDS * 64

Definition at line 36 of file SubtargetFeature.h.

Referenced by llvm::FeatureBitset::size().

◆ MAX_SUBTARGET_WORDS

const unsigned llvm::MAX_SUBTARGET_WORDS = 6

Definition at line 35 of file SubtargetFeature.h.

◆ MaxAnalysisRecursionDepth

◆ MaxDevirtIterations

cl::opt< unsigned > llvm::MaxDevirtIterations ( "max-devirt-iterations" ,
cl::ReallyHidden ,
cl::init(4)  )

Definition at line 329 of file PassBuilderPipelines.cpp.

Referenced by llvm::PassBuilder::buildInlinerPipeline().

◆ maxExponent

const unsigned int llvm::maxExponent = 16383

Definition at line 317 of file APFloat.cpp.

Referenced by powerOf5().

◆ MaxInitializationChainLength

unsigned llvm::MaxInitializationChainLength
extern

The value passed to the line option that defines the maximal initialization chain length.

Definition at line 109 of file Attributor.cpp.

Referenced by llvm::Attributor::shouldInitialize().

◆ MaxInterferences

const int64_t llvm::MaxInterferences = 32
static

Definition at line 56 of file MLRegAllocEvictAdvisor.h.

◆ MaxLookupSearchDepth

unsigned llvm::MaxLookupSearchDepth = 10
constexpr

The max limit of the search depth in DecomposeGEPExpression() and getUnderlyingObject().

Definition at line 51 of file ValueTracking.h.

Referenced by getUnderlyingObject().

◆ maxPowerOfFiveExponent

const unsigned int llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1

Definition at line 319 of file APFloat.cpp.

◆ maxPowerOfFiveParts

const unsigned int llvm::maxPowerOfFiveParts
Initial value:
=
2 +
const unsigned int maxPowerOfFiveExponent
Definition APFloat.cpp:319
static constexpr unsigned integerPartWidth
Definition APFloat.h:146

Definition at line 320 of file APFloat.cpp.

Referenced by powerOf5().

◆ maxPrecision

const unsigned int llvm::maxPrecision = 113

Definition at line 318 of file APFloat.cpp.

◆ MBBFrequencyShape

const std::vector<int64_t> llvm::MBBFrequencyShape
static
Initial value:
{1,
static const int64_t ModelMaxSupportedMBBCount

Definition at line 91 of file MLRegAllocEvictAdvisor.h.

◆ MediumBasicBlockInstructionThreshold

cl::opt< unsigned > llvm::MediumBasicBlockInstructionThreshold("medium-basic-block-instruction-threshold", cl::Hidden, cl::init(15), cl::desc("The minimum number of instructions a basic block should contain " "before being considered medium-sized.")) ( "medium-basic-block-instruction-threshold" ,
cl::Hidden ,
cl::init(15) ,
cl::desc("The minimum number of instructions a basic block should contain " "before being considered medium-sized.")  )
static

◆ MemProfRequireDefinitionForPromotion

cl::opt< bool > llvm::MemProfRequireDefinitionForPromotion("memprof-require-definition-for-promotion", cl::init(false), cl::Hidden, cl::desc( "Require target function definition when promoting indirect calls")) ( "memprof-require-definition-for-promotion" ,
cl::init(false) ,
cl::Hidden ,
cl::desc( "Require target function definition when promoting indirect calls")  )
static

◆ MIRAddFSDiscriminatorsID

LLVM_ABI char& llvm::MIRAddFSDiscriminatorsID
extern

This pass adds flow sensitive discriminators.

Referenced by createResetMachineFunctionPass().

◆ MIRCanonicalizerID

char & llvm::MIRCanonicalizerID = MIRCanonicalizer::ID
extern

MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code.

Definition at line 68 of file MIRCanonicalizerPass.cpp.

Referenced by createGCLoweringPass().

◆ MIRNamerID

char & llvm::MIRNamerID = MIRNamer::ID
extern

Definition at line 69 of file MIRNamerPass.cpp.

◆ MIRPrintingPassID

char & llvm::MIRPrintingPassID = MIRPrintingPass::ID
extern

MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.

Definition at line 81 of file MIRPrintingPass.cpp.

Referenced by createResetMachineFunctionPass().

◆ MIRProfileLoaderPassID

Load MIR Sample false char & llvm::MIRProfileLoaderPassID = MIRProfileLoaderPass::ID
extern

This pass reads flow sensitive profile.

Definition at line 81 of file MIRSampleProfile.cpp.

Referenced by createResetMachineFunctionPass().

◆ MischedDetailResourceBooking

cl::opt< bool > llvm::MischedDetailResourceBooking("misched-detail-resource-booking", cl::Hidden, cl::init(false), cl::desc("Show details of invoking getNextResoufceCycle.")) ( "misched-detail-resource-booking" ,
cl::Hidden ,
cl::init(false) ,
cl::desc("Show details of invoking getNextResoufceCycle.")  )

◆ MISchedDumpReservedCycles

cl::opt< bool > llvm::MISchedDumpReservedCycles("misched-dump-reserved-cycles", cl::Hidden, cl::init(false), cl::desc("Dump resource usage at schedule boundary.")) ( "misched-dump-reserved-cycles" ,
cl::Hidden ,
cl::init(false) ,
cl::desc("Dump resource usage at schedule boundary.")  )

◆ MisExpectTolerance

cl::opt< uint32_t > llvm::MisExpectTolerance("misexpect-tolerance", cl::init(0), cl::desc("Prevents emitting diagnostics when profile counts are " "within N% of the threshold..")) ( "misexpect-tolerance" ,
cl::init(0) ,
cl::desc("Prevents emitting diagnostics when profile counts are " "within N% of the threshold..")  )
static

◆ MOCooperative

const MachineMemOperand::Flags llvm::MOCooperative
static
Initial value:

Mark the MMO of cooperative load/store atomics.

Definition at line 52 of file SIInstrInfo.h.

Referenced by getCoopAtomicOperandsInfo(), and llvm::SIInstrInfo::getSerializableMachineMemOperandTargetFlags().

◆ ModelMaxSupportedInstructionCount

const int llvm::ModelMaxSupportedInstructionCount = 300
static

Definition at line 73 of file MLRegAllocEvictAdvisor.h.

Referenced by extractInstructionFeatures().

◆ ModelMaxSupportedMBBCount

const int64_t llvm::ModelMaxSupportedMBBCount = 100
static

Definition at line 90 of file MLRegAllocEvictAdvisor.h.

Referenced by extractMBBFrequency().

◆ MOLastUse

◆ MONoClobber

◆ MONontemporalBit0

◆ MONontemporalBit1

◆ MOStridedAccess

const MachineMemOperand::Flags llvm::MOStridedAccess
static

◆ MOSuppressPair

const MachineMemOperand::Flags llvm::MOSuppressPair
static
Initial value:

Definition at line 29 of file AArch64InstrInfo.h.

Referenced by llvm::AArch64InstrInfo::suppressLdStPair().

◆ NaNL

const char llvm::NaNL[] = "nan"
static

Definition at line 848 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::convertToHexString().

◆ NaNU

const char llvm::NaNU[] = "NAN"
static

Definition at line 849 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::convertToHexString().

◆ Next

FunctionAddr VTableAddr llvm::Next

Definition at line 141 of file InstrProf.h.

Referenced by llvm::memprof::CallStackTrie::addCallStack(), llvm::SIMachineFunctionInfo::addReservedUserSGPR(), buildOverlapMapAndRecordDeclares(), canPredictSuccessors(), llvm::LiveInterval::clearSubRanges(), llvm::omp::DirectiveNameParser::consume(), createLibcall(), createMemLibcall(), CriticalPathStep(), CriticalPathStep(), llvm::ThreadSafeTrieRawHashMapBase::destroyImpl(), llvm::detail::emitOps(), emitSelectPseudo(), emitSelectPseudo(), llvm::EquivalenceClasses< BasicBlock * >::erase(), llvm::MapVector< StringRef, HashData >::erase(), llvm::simple_ilist< Node >::eraseAndDispose(), llvm::TargetLowering::expandMUL_LOHI(), expandVPWidenIntOrFpInduction(), expectSubBlock(), llvm::DWARFDebugNames::extract(), firstRealType(), llvm::codeview::TypeCollection::ForEachRecord(), getNextNode(), llvm::iplist_impl< IntrusiveListT, TraitsT >::getNextNode(), llvm::MachObjectWriter::getPaddingSize(), getPlanEntry(), llvm::ThreadSafeTrieRawHashMapBase::getTriePrefixAsString(), llvm::OutlinedHashTree::insert(), llvm::ilist_base< enable_sentinel_tracking, parent_ty >::insertBefore(), llvm::ilist_base< enable_sentinel_tracking, parent_ty >::insertBeforeImpl(), insertCandidatesWithPendingInjections(), llvm::FoldingSetBase::InsertNode(), insertSEHRange(), IsBackEdge(), isLibCallInTailPosition(), llvm::AArch64InstrInfo::isSchedulingBoundary(), llvm::object::WasmSectionOrderChecker::isValidSectionOrder(), lexMacroName(), llvm::remarks::RemarkLinker::link(), LLVMGetNextUse(), LLVMRemarkEntryGetNextArg(), llvm::DebugLocEntry::MergeRanges(), llvm::object::MachOChainedFixupEntry::moveNext(), llvm::MachineRegisterInfo::moveOperands(), llvm::LockstepReverseIterator< EarlyFailure >::operator++(), llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >::iterator_base< SparseMultiSet * >::operator++(), llvm::remarks::BitstreamBlockParserHelper< Derived >::parseBlock(), llvm::remarks::BitstreamParserHelper::parseBlockInfoBlock(), llvm::memprof::RawMemProfReader::peekBuildIds(), llvm::DIExpressionCursor::peekNext(), processBlockAddr(), llvm::LiveInterval::removeEmptySubRanges(), llvm::ilist_base< enable_sentinel_tracking, parent_ty >::removeImpl(), llvm::MachineRegisterInfo::removeRegOperandFromUseList(), llvm::SlotIndexes::removeSingleMachineInstrFromMaps(), runImpl(), llvm::ThreadSafeTrieRawHashMapBase::ImplType::save(), set_intersect(), set_subtract(), llvm::ARMBaseInstrInfo::shouldSink(), simplifyLoopInst(), sortBlocks(), llvm::Value::sortUseList(), llvm::fuzzerop::splitBlockDescriptor(), splitBlockForLoop(), llvm::sys::unicode::startsWith(), llvm::HexagonBlockRanges::RangeList::subtract(), llvm::ilist_base< enable_sentinel_tracking, parent_ty >::transferBefore(), llvm::ilist_base< enable_sentinel_tracking, parent_ty >::transferBeforeImpl(), llvm::RegBankSelect::tryAvoidingSplit(), llvm::HexagonBlockRanges::RangeList::unionize(), verifyCFIntrinsic(), versionCallSiteWithCond(), llvm::InstCombinerImpl::visitCallInst(), llvm::OutlinedHashTree::walkGraph(), and llvm::ms_demangle::ArenaAllocator::~ArenaAllocator().

◆ NOMORE_ICP_MAGICNUM

const uint64_t llvm::NOMORE_ICP_MAGICNUM = -1

Magic number in the value profile metadata showing a target has been promoted for the instruction and shouldn't be promoted again.

Definition at line 58 of file Metadata.h.

Referenced by doesHistoryAllowICP(), getValueProfDataFromInst(), scaleProfData(), and updateIDTMetaData().

◆ NoPGOWarnMismatch

cl::opt< bool > llvm::NoPGOWarnMismatch

Definition at line 45 of file MemProfUse.cpp.

Referenced by readMemprof(), and runNewPMPasses().

◆ NoPGOWarnMismatchComdatWeak

cl::opt< bool > llvm::NoPGOWarnMismatchComdatWeak("no-pgo-warn-mismatch-comdat-weak", cl::init(true), cl::Hidden, cl::desc("The option is used to turn on/off " "warnings about hash mismatch for comdat " "or weak functions."))

Referenced by readMemprof().

◆ NoWarnSampleUnused

cl::opt< bool > llvm::NoWarnSampleUnused("no-warn-sample-unused", cl::init(false), cl::Hidden, cl::desc("Use this option to turn off/on warnings about function with " "samples but without debug information to use those samples. "))

◆ NRecords

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::NRecords

Definition at line 296 of file InstrProf.h.

◆ NumberOfInterferences

const int64_t llvm::NumberOfInterferences = CandidateVirtRegPos + 1
static

Definition at line 65 of file MLRegAllocEvictAdvisor.h.

Referenced by INITIALIZE_PASS().

◆ NumBitmapBytes

FunctionAddr llvm::NumBitmapBytes

Definition at line 95 of file InstrProf.h.

Referenced by llvm::TextInstrProfReader::readNextRecord().

◆ NumCounters

◆ NumValueSites

FunctionAddr llvm::NumValueSites

◆ offsetsFromUTF8

const UTF32 llvm::offsetsFromUTF8[6]
static
Initial value:
= { 0x00000000UL, 0x00003080UL, 0x000E2080UL,
0x03C82080UL, 0xFA082080UL, 0x82082080UL }

Definition at line 135 of file ConvertUTF.cpp.

Referenced by ConvertUTF8toUTF16(), and ConvertUTF8toUTF32Impl().

◆ OptimizePHIsLegacyID

char & llvm::OptimizePHIsLegacyID = OptimizePHIsLegacy::ID
extern

OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.

Definition at line 76 of file OptimizePHIs.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and createGCLoweringPass().

◆ OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

template<typename AnalysisManagerT, typename IRUnitT, typename... ExtraArgTs>
AnalysisKey llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

Definition at line 820 of file PassManager.h.

◆ OuterAnalysisManagerProxy< CGSCCAnalysisManager, Function >

◆ OuterAnalysisManagerProxy< FunctionAnalysisManager, Loop, LoopStandardAnalysisResults & >

◆ OuterAnalysisManagerProxy< ModuleAnalysisManager, Function >

◆ OuterAnalysisManagerProxy< ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph & >

◆ OuterAnalysisManagerProxy< ModuleAnalysisManager, MachineFunction >

◆ OverrideVecRegBits

cl::opt< unsigned > llvm::OverrideVecRegBits("sbvec-vec-reg-bits", cl::init(0), cl::Hidden, cl::desc("Override the vector register size in bits, " "which is otherwise found by querying TTI.")) ( "sbvec-vec-reg-bits" ,
cl::init(0) ,
cl::Hidden ,
cl::desc("Override the vector register size in bits, " "which is otherwise found by querying TTI.")  )
static

◆ PackedVectorWidth

const unsigned llvm::PackedVectorWidth = 512
static

Definition at line 380 of file VE.h.

Referenced by getLegalVectorType().

◆ PartialUnrollingThreshold

cl::opt< unsigned > llvm::PartialUnrollingThreshold
extern

◆ PassManager< Function >

Definition at line 23 of file PassManager.cpp.

◆ PassManager< Module >

Definition at line 22 of file PassManager.cpp.

◆ PatchableFunctionID

char & llvm::PatchableFunctionID = PatchableFunctionLegacy::ID
extern

This pass implements the "patchable-function" attribute.

Definition at line 82 of file PatchableFunction.cpp.

Referenced by llvm::AMDGPUPassConfig::addIRPasses(), llvm::TargetPassConfig::addMachinePasses(), and createGCLoweringPass().

◆ PeepholeOptimizerLegacyID

char & llvm::PeepholeOptimizerLegacyID = PeepholeOptimizerLegacy::ID
extern

PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.

Definition at line 760 of file PeepholeOptimizer.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and createGCLoweringPass().

◆ PerfectShuffleTable

◆ PerLiveRangeShape

const std::vector<int64_t> llvm::PerLiveRangeShape {1}
static

Definition at line 72 of file MLRegAllocPriorityAdvisor.cpp.

Referenced by INITIALIZE_PASS().

◆ PGOViewCounts

cl::opt< PGOViewCountsType > llvm::PGOViewCounts ( "pgo-view-counts" ,
cl::Hidden ,
cl::desc("A boolean option to show CFG dag or text with " "block profile counts and branch probabilities " "right after PGO profile annotation step. The " "profile counts are computed using branch " "probabilities from the runtime profile data and " "block frequency propagation algorithm. To view " "the raw counts from the profile, use option " "-pgo-view-raw-counts instead. To limit graph " "display to only one function, use filtering option " "-view-bfi-func-name.") ,
cl::values(clEnumValN(PGOVCT_None, "none", "do not show."), clEnumValN(PGOVCT_Graph, "graph", "show a graph."), clEnumValN(PGOVCT_Text, "text", "show in text."))  )

Definition at line 353 of file PGOInstrumentation.cpp.

Referenced by annotateAllFunctions(), and getGVDT().

◆ PGOWarnMisExpect

cl::opt< bool > llvm::PGOWarnMisExpect("pgo-warn-misexpect", cl::init(false), cl::Hidden, cl::desc("Use this option to turn on/off " "warnings about incorrect usage of llvm.expect intrinsics.")) ( "pgo-warn-misexpect" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Use this option to turn on/off " "warnings about incorrect usage of llvm.expect intrinsics.")  )
static

◆ PGOWarnMissing

cl::opt< bool > llvm::PGOWarnMissing("pgo-warn-missing-function", cl::init(false), cl::Hidden, cl::desc("Use this option to turn on/off " "warnings about missing profile data for " "functions."))

Referenced by readMemprof().

◆ PGSOColdCodeOnly

cl::opt< bool > llvm::PGSOColdCodeOnly
extern

Referenced by isPGSOColdCodeOnly().

◆ PGSOColdCodeOnlyForInstrPGO

cl::opt< bool > llvm::PGSOColdCodeOnlyForInstrPGO
extern

Referenced by isPGSOColdCodeOnly().

◆ PGSOColdCodeOnlyForPartialSamplePGO

cl::opt< bool > llvm::PGSOColdCodeOnlyForPartialSamplePGO
extern

Referenced by isPGSOColdCodeOnly().

◆ PGSOColdCodeOnlyForSamplePGO

cl::opt< bool > llvm::PGSOColdCodeOnlyForSamplePGO
extern

Referenced by isPGSOColdCodeOnly().

◆ PgsoCutoffInstrProf

cl::opt< int > llvm::PgsoCutoffInstrProf
extern

◆ PgsoCutoffSampleProf

cl::opt< int > llvm::PgsoCutoffSampleProf
extern

◆ PGSOLargeWorkingSetSizeOnly

cl::opt< bool > llvm::PGSOLargeWorkingSetSizeOnly
extern

Referenced by isPGSOColdCodeOnly().

◆ PHIEliminationID

char & llvm::PHIEliminationID = PHIElimination::ID
extern

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 193 of file PHIElimination.cpp.

Referenced by llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ PoisonMaskElem

int llvm::PoisonMaskElem = -1
constexpr

Definition at line 1922 of file Instructions.h.

Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), addMask(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), buildCompressMask(), buildUseMask(), calculateShufflevectorMask(), canCreateUndefOrPoison(), canonicalizeInsertSplat(), llvm::ShuffleVectorInst::commute(), ConstantFoldShuffleVectorInstruction(), llvm::ShuffleVectorInst::convertShuffleMaskForBitcode(), costShuffleViaSplitting(), costShuffleViaVRegSplitting(), createExtractVector(), createShiftShuffle(), defaultComponentBroadcast(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), foldIdentityExtractShuffle(), foldInsEltIntoIdentityShuffle(), llvm::InstCombinerImpl::foldSelectShuffle(), foldSelectShuffleWith1Binop(), foldTruncShuffle(), llvm::InstCombinerImpl::foldVectorBinop(), generateInstLaneVectorFromOperand(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), inversePermutation(), isFixedVectorShuffle(), isMaskedLoadCompress(), llvm::ShuffleVectorInst::isOneUseSingleSourceMask(), llvm::ShuffleVectorInst::isReplicationMask(), isReplicationMaskWithParams(), llvm::ShuffleVectorInst::isValidOperands(), LLVMGetUndefMaskElem(), lookThroughShuffles(), llvm::AArch64TargetLowering::lowerInterleavedStore(), matchSubIntegerPackFromVector(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), performExtractsShuffleAction(), PrintShuffleMask(), processShuffleMasks(), promoteAllocaUserToVector(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), reorderOrder(), reorderReuses(), reorderScalars(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), scalarizeMaskedExpandLoad(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), simplifyReductionOperand(), simplifyShuffleVectorInst(), transformScalarShuffleIndiciesToVector(), tryToFindDuplicates(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), and llvm::InstCombinerImpl::visitCallInst().

◆ PostMachineSchedulerID

char & llvm::PostMachineSchedulerID = PostMachineSchedulerLegacy::ID
extern

PostMachineScheduler - This pass schedules machine instructions postRA.

Definition at line 444 of file MachineScheduler.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createResetMachineFunctionPass().

◆ PostRADirection

cl::opt< MISched::Direction > llvm::PostRADirection("misched-postra-direction", cl::Hidden, cl::desc("Post reg-alloc list scheduling direction"), cl::init(MISched::Unspecified), cl::values( clEnumValN(MISched::TopDown, "topdown", "Force top-down post reg-alloc list scheduling"), clEnumValN(MISched::BottomUp, "bottomup", "Force bottom-up post reg-alloc list scheduling"), clEnumValN(MISched::Bidirectional, "bidirectional", "Force bidirectional post reg-alloc list scheduling"))) ( "misched-postra-direction" ,
cl::Hidden ,
cl::desc("Post reg-alloc list scheduling direction") ,
cl::init(MISched::Unspecified) ,
cl::values( clEnumValN(MISched::TopDown, "topdown", "Force top-down post reg-alloc list scheduling"), clEnumValN(MISched::BottomUp, "bottomup", "Force bottom-up post reg-alloc list scheduling"), clEnumValN(MISched::Bidirectional, "bidirectional", "Force bidirectional post reg-alloc list scheduling"))  )
static

◆ PostRAHazardRecognizerID

char & llvm::PostRAHazardRecognizerID = PostRAHazardRecognizerLegacy::ID
extern

PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.

Definition at line 67 of file PostRAHazardRecognizer.cpp.

Referenced by createResetMachineFunctionPass().

◆ PostRAMachineSinkingID

char & llvm::PostRAMachineSinkingID = PostRAMachineSinkingLegacy::ID
extern

This pass perform post-ra machine sink for COPY instructions.

Definition at line 2112 of file MachineSink.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), createResetMachineFunctionPass(), and overridePass().

◆ PostRASchedulerID

char & llvm::PostRASchedulerID = PostRASchedulerLegacy::ID
extern

PostRAScheduler - This pass performs post register allocation scheduling.

Definition at line 202 of file PostRASchedulerList.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), createResetMachineFunctionPass(), and overridePass().

◆ PPCGenScalarMASSEntriesID

char & llvm::PPCGenScalarMASSEntriesID = PPCGenScalarMASSEntries::ID
extern

Definition at line 139 of file PPCGenScalarMASSEntries.cpp.

Referenced by initializePPCGenScalarMASSEntriesPass().

◆ PPCLowerMASSVEntriesID

char & llvm::PPCLowerMASSVEntriesID = PPCLowerMASSVEntries::ID
extern

Definition at line 192 of file PPCLowerMASSVEntries.cpp.

Referenced by initializePPCLowerMASSVEntriesPass().

◆ PPCVSXFMAMutateID

PowerPC VSX FMA false char & llvm::PPCVSXFMAMutateID = PPCVSXFMAMutate::ID
extern

Definition at line 369 of file PPCVSXFMAMutate.cpp.

Referenced by initializePPCAIXAsmPrinterPass().

◆ PreRADirection

cl::opt< MISched::Direction > llvm::PreRADirection("misched-prera-direction", cl::Hidden, cl::desc("Pre reg-alloc list scheduling direction"), cl::init(MISched::Unspecified), cl::values( clEnumValN(MISched::TopDown, "topdown", "Force top-down pre reg-alloc list scheduling"), clEnumValN(MISched::BottomUp, "bottomup", "Force bottom-up pre reg-alloc list scheduling"), clEnumValN(MISched::Bidirectional, "bidirectional", "Force bidirectional pre reg-alloc list scheduling")))

◆ PrintBFI

cl::opt< bool > llvm::PrintBFI("print-bfi", cl::init(false), cl::Hidden, cl::desc("Print the block frequency info.")) ( "print-bfi" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Print the block frequency info.")  )
static

◆ PrintBFIFuncName

cl::opt< std::string > llvm::PrintBFIFuncName ( "print-bfi-func-name" ,
cl::Hidden ,
cl::desc("The option to specify the name of the function " "whose block frequency info is printed.")  )

◆ PrintChanged

◆ PrintDAGs

cl::opt< bool > llvm::PrintDAGs("misched-print-dags", cl::Hidden, cl::desc("Print schedule DAGs"))

◆ PrintMachineBlockFreq

cl::opt< bool > llvm::PrintMachineBlockFreq("print-machine-bfi", cl::init(false), cl::Hidden, cl::desc("Print the machine block frequency info.")) ( "print-machine-bfi" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Print the machine block frequency info.")  )
static

◆ PrintPipelinePasses

cl::opt< bool > llvm::PrintPipelinePasses
extern

Common option used by multiple tools to print pipeline passes.

Referenced by runNewPMPasses().

◆ ProcessImplicitDefsID

char & llvm::ProcessImplicitDefsID = ProcessImplicitDefsLegacy::ID
extern

ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.

Definition at line 63 of file ProcessImplicitDefs.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ ProfileCorrelate

◆ ProfileInlineGrowthLimit

cl::opt< int > llvm::ProfileInlineGrowthLimit("sample-profile-inline-growth-limit", cl::Hidden, cl::init(12), cl::desc("The size growth ratio limit for proirity-based sample profile " "loader inlining."))

◆ ProfileInlineLimitMax

cl::opt< int > llvm::ProfileInlineLimitMax("sample-profile-inline-limit-max", cl::Hidden, cl::init(10000), cl::desc("The upper bound of size growth limit for " "proirity-based sample profile loader inlining."))

◆ ProfileInlineLimitMin

cl::opt< int > llvm::ProfileInlineLimitMin("sample-profile-inline-limit-min", cl::Hidden, cl::init(100), cl::desc("The lower bound of size growth limit for " "proirity-based sample profile loader inlining."))

◆ ProfileLikelyProb

cl::opt< unsigned > llvm::ProfileLikelyProb("profile-likely-prob", cl::desc("branch probability threshold in percentage to be considered" " very likely when profile is available"), cl::init(51), cl::Hidden)

◆ ProfileSummaryColdCount

cl::opt< uint64_t > llvm::ProfileSummaryColdCount("profile-summary-cold-count", cl::ReallyHidden, cl::desc("A fixed cold count that overrides the count derived from" " profile-summary-cutoff-cold"))

◆ ProfileSummaryCutoffCold

cl::opt< int > llvm::ProfileSummaryCutoffCold("profile-summary-cutoff-cold", cl::Hidden, cl::init(999999), cl::desc("A count is cold if it is below the minimum count" " to reach this percentile of total counts."))

◆ ProfileSummaryCutoffHot

cl::opt< int > llvm::ProfileSummaryCutoffHot("profile-summary-cutoff-hot", cl::Hidden, cl::init(990000), cl::desc("A count is hot if it exceeds the minimum count to" " reach this percentile of total counts."))

◆ ProfileSummaryHotCount

cl::opt< uint64_t > llvm::ProfileSummaryHotCount("profile-summary-hot-count", cl::ReallyHidden, cl::desc("A fixed hot count that overrides the count derived from" " profile-summary-cutoff-hot"))

◆ ProfileSummaryHugeWorkingSetSizeThreshold

cl::opt< unsigned > llvm::ProfileSummaryHugeWorkingSetSizeThreshold("profile-summary-huge-working-set-size-threshold", cl::Hidden, cl::init(15000), cl::desc("The code working set size is considered huge if the number of" " blocks required to reach the -profile-summary-cutoff-hot" " percentile exceeds this count."))

◆ ProfileSummaryLargeWorkingSetSizeThreshold

cl::opt< unsigned > llvm::ProfileSummaryLargeWorkingSetSizeThreshold("profile-summary-large-working-set-size-threshold", cl::Hidden, cl::init(12500), cl::desc("The code working set size is considered large if the number of" " blocks required to reach the -profile-summary-cutoff-hot" " percentile exceeds this count."))

◆ PrologEpilogCodeInserterID

char & llvm::PrologEpilogCodeInserterID = PEILegacy::ID
extern

PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.

Definition at line 151 of file PrologEpilogInserter.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createResetMachineFunctionPass().

◆ PseudoProbeDescMetadataName

◆ PseudoProbeFullDistributionFactor

uint64_t llvm::PseudoProbeFullDistributionFactor
staticconstexpr
Initial value:
=
std::numeric_limits<uint64_t>::max()

Definition at line 39 of file PseudoProbe.h.

Referenced by extractProbe(), llvm::SampleProfileProber::instrumentOneFunc(), and setProbeDistributionFactor().

◆ R600ClauseMergePassID

char & llvm::R600ClauseMergePassID = R600ClauseMergePass::ID
extern

Definition at line 74 of file R600ClauseMergePass.cpp.

Referenced by initializeR600ClauseMergePassPass().

◆ R600ControlFlowFinalizerID

char & llvm::R600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID
extern

◆ R600ExpandSpecialInstrsPassID

char & llvm::R600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID
extern

◆ R600PacketizerID

char & llvm::R600PacketizerID = R600Packetizer::ID
extern

Definition at line 401 of file R600Packetizer.cpp.

Referenced by initializeR600PacketizerPass().

◆ R600VectorRegMergerID

char & llvm::R600VectorRegMergerID = R600VectorRegMerger::ID
extern

Definition at line 133 of file R600OptimizeVectorRegisters.cpp.

Referenced by initializeR600VectorRegMergerPass().

◆ RABasicID

char & llvm::RABasicID = RABasic::ID
extern

Basic register allocator.

Definition at line 43 of file RegAllocBasic.cpp.

Referenced by createResetMachineFunctionPass().

◆ RAGreedyLegacyID

char & llvm::RAGreedyLegacyID = RAGreedyLegacy::ID
extern

Greedy register allocator.

Definition at line 292 of file RegAllocGreedy.cpp.

Referenced by createResetMachineFunctionPass().

◆ RegionInfoBase< Tr >::printStyle

template<class Tr>
Tr::RegionT::PrintStyle llvm::RegionInfoBase< Tr >::printStyle
Initial value:

Definition at line 747 of file RegionInfoImpl.h.

◆ RegionInfoBase< Tr >::VerifyRegionInfo

template<class Tr>
bool llvm::RegionInfoBase< Tr >::VerifyRegionInfo = false

Definition at line 743 of file RegionInfoImpl.h.

◆ RegisterCoalescerID

char & llvm::RegisterCoalescerID = RegisterCoalescerLegacy::ID
extern

RegisterCoalescer - This pass merges live ranges to eliminate copies.

Definition at line 412 of file RegisterCoalescer.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ RegisterRegAllocBase< T >::Registry

RegisterRegAlloc's global Registry tracks allocator registration.

Definition at line 70 of file RegAllocRegistry.h.

◆ Registry< GCMetadataPrinter >

◆ Registry< GCStrategy >

template class LLVM_TEMPLATE_ABI llvm::Registry< GCStrategy >
extern

◆ RegList16AVR

const MCPhysReg llvm::RegList16AVR[]
static
Initial value:
= {
AVR::R26R25, AVR::R25R24, AVR::R24R23, AVR::R23R22, AVR::R22R21,
AVR::R21R20, AVR::R20R19, AVR::R19R18, AVR::R18R17, AVR::R17R16,
AVR::R16R15, AVR::R15R14, AVR::R14R13, AVR::R13R12, AVR::R12R11,
AVR::R11R10, AVR::R10R9, AVR::R9R8}

Definition at line 1157 of file AVRISelLowering.cpp.

Referenced by analyzeArguments(), and analyzeReturnValues().

◆ RegList16Tiny

const MCPhysReg llvm::RegList16Tiny[]
static
Initial value:
= {AVR::R26R25, AVR::R25R24,
AVR::R24R23, AVR::R23R22,
AVR::R22R21, AVR::R21R20}

Definition at line 1162 of file AVRISelLowering.cpp.

Referenced by analyzeArguments(), and analyzeReturnValues().

◆ RegList8AVR

const MCPhysReg llvm::RegList8AVR[]
static
Initial value:
= {
AVR::R25, AVR::R24, AVR::R23, AVR::R22, AVR::R21, AVR::R20,
AVR::R19, AVR::R18, AVR::R17, AVR::R16, AVR::R15, AVR::R14,
AVR::R13, AVR::R12, AVR::R11, AVR::R10, AVR::R9, AVR::R8}

Registers for calling conventions, ordered in reverse as required by ABI.

Both arrays must be of the same length.

Definition at line 1151 of file AVRISelLowering.cpp.

Referenced by analyzeArguments(), and analyzeReturnValues().

◆ RegList8Tiny

const MCPhysReg llvm::RegList8Tiny[]
static
Initial value:
= {AVR::R25, AVR::R24, AVR::R23,
AVR::R22, AVR::R21, AVR::R20}

Definition at line 1155 of file AVRISelLowering.cpp.

Referenced by analyzeArguments(), and analyzeReturnValues().

◆ RemarksFilename

cl::opt< std::string > llvm::RemarksFilename ( "lto-pass-remarks-output" ,
cl::desc("Output filename for pass remarks") ,
cl::value_desc("filename")  )

◆ RemarksFormat

◆ RemarksHotnessThreshold

cl::opt< std::optional< uint64_t >, false, remarks::HotnessThresholdParser > llvm::RemarksHotnessThreshold ( "lto-pass-remarks-hotness-threshold" ,
cl::desc("Minimum profile count required for an " "optimization remark to be output." " Use 'auto' to apply the threshold from profile summary.") ,
cl::value_desc("uint or 'auto'") ,
cl::init(0) ,
cl::Hidden  )

◆ RemarksPasses

cl::opt< std::string > llvm::RemarksPasses ( "lto-pass-remarks-filter" ,
cl::desc("Only record optimization remarks from passes whose " "names match the given regular expression") ,
cl::value_desc("regex")  )

◆ RemarksWithHotness

cl::opt< bool > llvm::RemarksWithHotness ( "lto-pass-remarks-with-hotness" ,
cl::desc("With PGO, include profile count in optimization remarks") ,
cl::Hidden  )

◆ RemoveLoadsIntoFakeUsesID

char & llvm::RemoveLoadsIntoFakeUsesID = RemoveLoadsIntoFakeUsesLegacy::ID
extern

◆ RemoveRedundantDebugValuesID

char & llvm::RemoveRedundantDebugValuesID = RemoveRedundantDebugValuesLegacy::ID
extern

RemoveRedundantDebugValues pass.

Definition at line 63 of file RemoveRedundantDebugValues.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createSjLjEHPreparePass().

◆ RenameIndependentSubregsID

char & llvm::RenameIndependentSubregsID = RenameIndependentSubregsLegacy::ID
extern

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 119 of file RenameIndependentSubregs.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and createLowerEmuTLSPass().

◆ RequireAndPreserveDomTree

cl::opt< bool > llvm::RequireAndPreserveDomTree
extern

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.

Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/llvm/include/llvm/Transforms/Utils/Local.h.

Referenced by llvm::AMDGPUUnifyDivergentExitNodesPass::run(), llvm::SimplifyCFGPass::run(), and simplifyFunctionCFG().

◆ ReuseFrameIndexVals

cl::opt<bool> llvm::ReuseFrameIndexVals
extern

◆ RewardName

const char *const llvm::RewardName = "delta_size"
extern

Definition at line 132 of file MLInlineAdvisor.cpp.

◆ RISCVFeatureKV

const SubtargetFeatureKV llvm::RISCVFeatureKV
extern

Definition at line 24 of file RISCVBaseInfo.cpp.

Referenced by llvm::RISCVFeatures::parseFeatureBits(), and STATISTIC().

◆ RISCVInsertVSETVLIID

char & llvm::RISCVInsertVSETVLIID = RISCVInsertVSETVLI::ID
extern

Definition at line 912 of file RISCVInsertVSETVLI.cpp.

Referenced by initializeRISCVInsertVSETVLIPass().

◆ SampleColdCallSiteThreshold

cl::opt< int > llvm::SampleColdCallSiteThreshold("sample-profile-cold-inline-threshold", cl::Hidden, cl::init(45), cl::desc("Threshold for inlining cold callsites"))

◆ SampleHotCallSiteThreshold

cl::opt< int > llvm::SampleHotCallSiteThreshold("sample-profile-hot-inline-threshold", cl::Hidden, cl::init(3000), cl::desc("Hot callsite threshold for proirity-based sample profile loader " "inlining."))

◆ SampleProfileMaxPropagateIterations

cl::opt< unsigned > llvm::SampleProfileMaxPropagateIterations("sample-profile-max-propagate-iterations", cl::init(100), cl::desc("Maximum number of iterations to go through when propagating " "sample block/edge weights through the CFG."))

◆ SampleProfileRecordCoverage

cl::opt< unsigned > llvm::SampleProfileRecordCoverage("sample-profile-check-record-coverage", cl::init(0), cl::value_desc("N"), cl::desc("Emit a warning if less than N% of records in the input profile " "are matched to the IR."))

◆ SampleProfileSampleCoverage

cl::opt< unsigned > llvm::SampleProfileSampleCoverage("sample-profile-check-sample-coverage", cl::init(0), cl::value_desc("N"), cl::desc("Emit a warning if less than N% of samples in the input profile " "are matched to the IR."))

◆ SampleProfileUseProfi

◆ SCEVCheapExpansionBudget

◆ semBFloat

fltSemantics llvm::semBFloat = {127, -126, 8, 16}
staticconstexpr

◆ semBogus

◆ semFloat4E2M1FN

fltSemantics llvm::semFloat4E2M1FN
staticconstexpr

◆ semFloat6E2M3FN

fltSemantics llvm::semFloat6E2M3FN
staticconstexpr
Initial value:

Definition at line 162 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float6E2M3FN().

◆ semFloat6E3M2FN

fltSemantics llvm::semFloat6E3M2FN
staticconstexpr
Initial value:

Definition at line 160 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float6E3M2FN().

◆ semFloat8E3M4

fltSemantics llvm::semFloat8E3M4 = {3, -2, 5, 8}
staticconstexpr

◆ semFloat8E4M3

fltSemantics llvm::semFloat8E4M3 = {7, -6, 4, 8}
staticconstexpr

◆ semFloat8E4M3B11FNUZ

fltSemantics llvm::semFloat8E4M3B11FNUZ
staticconstexpr

◆ semFloat8E4M3FN

fltSemantics llvm::semFloat8E4M3FN
staticconstexpr

◆ semFloat8E4M3FNUZ

fltSemantics llvm::semFloat8E4M3FNUZ
staticconstexpr

◆ semFloat8E5M2

fltSemantics llvm::semFloat8E5M2 = {15, -14, 3, 8}
staticconstexpr

◆ semFloat8E5M2FNUZ

fltSemantics llvm::semFloat8E5M2FNUZ
staticconstexpr

◆ semFloat8E8M0FNU

fltSemantics llvm::semFloat8E8M0FNU
staticconstexpr
Initial value:
= {127,
-127,
1,
8,
false,
false,
false}

Definition at line 150 of file APFloat.cpp.

Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E8M0FNU().

◆ semFloatTF32

fltSemantics llvm::semFloatTF32 = {127, -126, 11, 19}
staticconstexpr

◆ semIEEEdouble

◆ semIEEEhalf

fltSemantics llvm::semIEEEhalf = {15, -14, 11, 16}
staticconstexpr

◆ semIEEEquad

fltSemantics llvm::semIEEEquad = {16383, -16382, 113, 128}
staticconstexpr

◆ semIEEEsingle

◆ semPPCDoubleDouble

◆ semPPCDoubleDoubleLegacy

◆ semX87DoubleExtended

fltSemantics llvm::semX87DoubleExtended = {16383, -16382, 64, 80}
staticconstexpr

◆ SetLicmMssaNoAccForPromotionCap

◆ SetLicmMssaOptCap

◆ ShadowStackGCLoweringID

char & llvm::ShadowStackGCLoweringID = ShadowStackGCLowering::ID
extern

ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.

Definition at line 133 of file ShadowStackGCLowering.cpp.

Referenced by llvm::TargetPassConfig::addIRPasses(), llvm::AMDGPUPassConfig::AMDGPUPassConfig(), and createGCLoweringPass().

◆ ShrinkWrapID

char & llvm::ShrinkWrapID = ShrinkWrapLegacy::ID
extern

ShrinkWrap pass. Look for the best place to insert save and restore.

Definition at line 292 of file ShrinkWrap.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createResetMachineFunctionPass().

◆ SIAnnotateControlFlowLegacyPassID

char& llvm::SIAnnotateControlFlowLegacyPassID
extern

◆ SIFixSGPRCopiesLegacyID

char & llvm::SIFixSGPRCopiesLegacyID = SIFixSGPRCopiesLegacy::ID
extern

Definition at line 197 of file SIFixSGPRCopies.cpp.

Referenced by initializeSIFixSGPRCopiesLegacyPass().

◆ SIFixVGPRCopiesID

char& llvm::SIFixVGPRCopiesID
extern

◆ SIFoldOperandsLegacyID

char& llvm::SIFoldOperandsLegacyID
extern

◆ SIFormMemoryClausesID

char & llvm::SIFormMemoryClausesID = SIFormMemoryClausesLegacy::ID
extern

Definition at line 95 of file SIFormMemoryClauses.cpp.

Referenced by initializeSIFormMemoryClausesLegacyPass().

◆ SIInsertHardClausesID

char & llvm::SIInsertHardClausesID = SIInsertHardClausesLegacy::ID
extern

Definition at line 307 of file SIInsertHardClauses.cpp.

Referenced by initializeSIInsertHardClausesLegacyPass().

◆ SIInsertWaitcntsID

char & llvm::SIInsertWaitcntsID = SIInsertWaitcntsLegacy::ID
extern

Definition at line 1292 of file SIInsertWaitcnts.cpp.

Referenced by initializeSIInsertWaitcntsLegacyPass().

◆ SILateBranchLoweringPassID

SI insert s_cbranch_execz false char & llvm::SILateBranchLoweringPassID = SILateBranchLoweringLegacy::ID
extern

Definition at line 81 of file SILateBranchLowering.cpp.

Referenced by initializeSILateBranchLoweringLegacyPass().

◆ SILoadStoreOptimizerLegacyID

char & llvm::SILoadStoreOptimizerLegacyID = SILoadStoreOptimizerLegacy::ID
extern

Definition at line 943 of file SILoadStoreOptimizer.cpp.

Referenced by initializeSILoadStoreOptimizerLegacyPass().

◆ SILowerControlFlowLegacyID

char & llvm::SILowerControlFlowLegacyID = SILowerControlFlowLegacy::ID
extern

Definition at line 181 of file SILowerControlFlow.cpp.

Referenced by initializeSILowerControlFlowLegacyPass().

◆ SILowerI1CopiesLegacyID

char & llvm::SILowerI1CopiesLegacyID = SILowerI1CopiesLegacy::ID
extern

Definition at line 926 of file SILowerI1Copies.cpp.

Referenced by initializeSILowerI1CopiesLegacyPass().

◆ SILowerSGPRSpillsLegacyID

SI lower SGPR spill false char & llvm::SILowerSGPRSpillsLegacyID = SILowerSGPRSpillsLegacy::ID
extern

Definition at line 101 of file SILowerSGPRSpills.cpp.

Referenced by initializeSILowerSGPRSpillsLegacyPass().

◆ SILowerWWMCopiesLegacyID

char & llvm::SILowerWWMCopiesLegacyID = SILowerWWMCopiesLegacy::ID
extern

Definition at line 84 of file SILowerWWMCopies.cpp.

Referenced by initializeSILowerWWMCopiesLegacyPass().

◆ SIMemoryLegalizerID

char & llvm::SIMemoryLegalizerID = SIMemoryLegalizerLegacy::ID
extern

Definition at line 2963 of file SIMemoryLegalizer.cpp.

Referenced by initializeSIMemoryLegalizerLegacyPass().

◆ SIModeRegisterID

char& llvm::SIModeRegisterID
extern

◆ SIOptimizeExecMaskingLegacyID

char & llvm::SIOptimizeExecMaskingLegacyID = SIOptimizeExecMaskingLegacy::ID
extern

◆ SIOptimizeExecMaskingPreRAID

char & llvm::SIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRALegacy::ID
extern

◆ SIOptimizeVGPRLiveRangeLegacyID

SI Optimize VGPR false char & llvm::SIOptimizeVGPRLiveRangeLegacyID = SIOptimizeVGPRLiveRangeLegacy::ID
extern

◆ SIPeepholeSDWALegacyID

char& llvm::SIPeepholeSDWALegacyID
extern

◆ SIPostRABundlerLegacyID

char& llvm::SIPostRABundlerLegacyID
extern

◆ SIPreAllocateWWMRegsLegacyID

char & llvm::SIPreAllocateWWMRegsLegacyID = SIPreAllocateWWMRegsLegacy::ID
extern

Definition at line 91 of file SIPreAllocateWWMRegs.cpp.

Referenced by initializeSIPreAllocateWWMRegsLegacyPass().

◆ SIPreEmitPeepholeID

char& llvm::SIPreEmitPeepholeID
extern

◆ SIShrinkInstructionsLegacyID

char& llvm::SIShrinkInstructionsLegacyID
extern

◆ SIWholeQuadModeID

SI Whole Quad false char & llvm::SIWholeQuadModeID = SIWholeQuadModeLegacy::ID
extern

Definition at line 268 of file SIWholeQuadMode.cpp.

Referenced by initializeSIWholeQuadModeLegacyPass().

◆ SIZE_LONG

const int llvm::SIZE_LONG = 4

Definition at line 22 of file AVRMCELFStreamer.h.

Referenced by llvm::AVRMCELFStreamer::emitValueForModiferKind().

◆ SIZE_WORD

const int llvm::SIZE_WORD = 2

Definition at line 23 of file AVRMCELFStreamer.h.

Referenced by llvm::AVRMCELFStreamer::emitValueForModiferKind().

◆ SmallVector

◆ SortProfiledSCC

cl::opt< bool > llvm::SortProfiledSCC("sort-profiled-scc-member", cl::init(true), cl::Hidden, cl::desc("Sort profiled recursion by edge weights."))

◆ SpillPlacementID

char & llvm::SpillPlacementID = SpillPlacementWrapperLegacy::ID
extern

SpillPlacement analysis.

Suggest optimal placement of spill code between basic blocks.

Definition at line 49 of file SpillPlacement.cpp.

Referenced by createResetMachineFunctionPass().

◆ SrcMgr

◆ StackColoringLegacyID

char & llvm::StackColoringLegacyID = StackColoringLegacy::ID
extern

StackSlotColoring - This pass performs stack coloring and merging.

It merges disjoint allocas to reduce the stack size.

Definition at line 521 of file StackColoring.cpp.

Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and createResetMachineFunctionPass().

◆ StackFrameLayoutAnalysisPassID

char & llvm::StackFrameLayoutAnalysisPassID = StackFrameLayoutAnalysisLegacy::ID
extern

StackFramePrinter - This pass prints the stack frame layout and variable mappings.

Definition at line 305 of file StackFrameLayoutAnalysisPass.cpp.

Referenced by createResetMachineFunctionPass().

◆ StackMapLivenessID

char & llvm::StackMapLivenessID = StackMapLiveness::ID
extern

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 85 of file StackMapLivenessAnalysis.cpp.

Referenced by llvm::AMDGPUPassConfig::addIRPasses(), llvm::TargetPassConfig::addMachinePasses(), llvm::AMDGPUPassConfig::AMDGPUPassConfig(), and createSjLjEHPreparePass().

◆ StackSlotColoringID

char & llvm::StackSlotColoringID = StackSlotColoringLegacy::ID
extern

StackSlotColoring - This pass performs stack slot coloring.

Definition at line 194 of file StackSlotColoring.cpp.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), createGCLoweringPass(), and overridePass().

◆ StandardVectorWidth

const unsigned llvm::StandardVectorWidth = 256
static

Definition at line 379 of file VE.h.

Referenced by getLegalVectorType(), isPackedVectorType(), and splitVectorType().

◆ StaticLikelyProb

cl::opt< unsigned > llvm::StaticLikelyProb("static-likely-prob", cl::desc("branch probability threshold in percentage" " to be considered very likely"), cl::init(80), cl::Hidden)

◆ StopAt

cl::opt< unsigned long > llvm::StopAt("sbvec-stop-at", cl::init(StopAtDisabled), cl::Hidden, cl::desc("Vectorize if the invocation count is < than this. 0 " "disables vectorization.")) ( "sbvec-stop-at" ,
cl::init(StopAtDisabled) ,
cl::Hidden ,
cl::desc("Vectorize if the invocation count is < than this. 0 " "disables vectorization.")  )
static

◆ StopAtDisabled

const unsigned long llvm::StopAtDisabled
staticconstexpr
Initial value:
=
std::numeric_limits<unsigned long>::max()

Definition at line 28 of file BottomUpVec.cpp.

◆ StopBundle

cl::opt< unsigned long > llvm::StopBundle("sbvec-stop-bndl", cl::init(StopBundleDisabled), cl::Hidden, cl::desc("Vectorize up to this many bundles.")) ( "sbvec-stop-bndl" ,
cl::init(StopBundleDisabled) ,
cl::Hidden ,
cl::desc("Vectorize up to this many bundles.")  )
static

◆ StopBundleDisabled

const unsigned long llvm::StopBundleDisabled
staticconstexpr
Initial value:
=
std::numeric_limits<unsigned long>::max()

Definition at line 35 of file BottomUpVec.cpp.

◆ SupportsHotColdNew

cl::opt< bool > llvm::SupportsHotColdNew("supports-hot-cold-new", cl::init(false), cl::Hidden, cl::desc("Linking with hot/cold operator new interfaces"))

Indicate we are linking with an allocator that supports hot/cold operator new interfaces.

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

◆ SwpEnableCopyToPhi

cl::opt< bool > llvm::SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::desc("Enable CopyToPhi DAG Mutation"))

◆ SwpForceIssueWidth

cl::opt< int > llvm::SwpForceIssueWidth("pipeliner-force-issue-width", cl::desc("Force pipeliner to use specified issue width."), cl::Hidden, cl::init(-1))

A command line argument to force pipeliner to use specified issue width.

Referenced by llvm::ResourceManager::ResourceManager().

◆ SymbolTableListTraits< BasicBlock >

Definition at line 73 of file BasicBlock.h.

◆ SymbolTableListTraits< Function >

Definition at line 91 of file Function.h.

◆ SymbolTableListTraits< GlobalAlias >

Definition at line 1 of file GlobalAlias.h.

◆ SymbolTableListTraits< GlobalIFunc >

Definition at line 35 of file GlobalIFunc.h.

◆ SymbolTableListTraits< GlobalVariable >

Definition at line 1 of file GlobalVariable.h.

◆ TailDuplicateLegacyID

char & llvm::TailDuplicateLegacyID = TailDuplicateLegacy::ID
extern

TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.

Definition at line 78 of file TailDuplication.cpp.

Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), createResetMachineFunctionPass(), and overridePass().

◆ TargetPassConfigCallbacks

◆ TargetValue

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::TargetValue

Definition at line 187 of file InstrProf.h.

Referenced by llvm::MachO::Target::create().

◆ TensorTypeNames

std::array<std::string, static_cast<size_t>(TensorType::Total)> llvm::TensorTypeNames
static
Initial value:
{"INVALID",
#define TFUTILS_GETNAME_IMPL(T, _)
}

Definition at line 40 of file TensorSpec.cpp.

Referenced by toString().

◆ TheXtensaTarget

Target llvm::TheXtensaTarget
extern

Definition at line 23 of file XtensaTargetMachine.h.

Referenced by getTheXtensaTarget().

◆ 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 37 of file PassTimingInfo.cpp.

Referenced by parseIR(), and llvm::TimePassesHandler::TimePassesHandler().

◆ TimePassesPerRun

bool llvm::TimePassesPerRun = false

If TimePassesPerRun is true, there would be one line of report for each pass invocation.

If TimePassesPerRun is false, there would be only one line of report for each pass (even there are more than one pass objects). (For new pass manager only)

Definition at line 38 of file PassTimingInfo.cpp.

Referenced by llvm::TimePassesHandler::TimePassesHandler().

◆ 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 119 of file ConvertUTF.cpp.

Referenced by ConvertUTF8toUTF16(), ConvertUTF8toUTF32Impl(), getNumBytesForUTF8(), getUTF8SequenceSize(), isLegalUTF8Sequence(), and isLegalUTF8String().

◆ TwoAddressInstructionPassID

char & llvm::TwoAddressInstructionPassID = TwoAddressInstructionLegacyPass::ID
extern

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 258 of file TwoAddressInstructionPass.cpp.

Referenced by llvm::TargetPassConfig::addFastRegAlloc(), llvm::TargetPassConfig::addOptimizedRegAlloc(), and createResetMachineFunctionPass().

◆ UnpackMachineBundlesID

char & llvm::UnpackMachineBundlesID = UnpackMachineBundles::ID
extern

UnpackMachineBundles - This pass unpack machine instruction bundles.

Definition at line 43 of file MachineInstrBundle.cpp.

Referenced by createSjLjEHPreparePass().

◆ UnreachableMachineBlockElimID

LLVM_ABI char& llvm::UnreachableMachineBlockElimID
extern

UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.

Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), createResetMachineFunctionPass(), and llvm::LiveVariablesWrapperPass::getAnalysisUsage().

◆ UseContextLessSummary

cl::opt< bool > llvm::UseContextLessSummary("profile-summary-contextless", cl::Hidden, cl::desc("Merge context profiles before calculating thresholds."))

◆ UseIterativeBFIInference

cl::opt< bool > llvm::UseIterativeBFIInference("use-iterative-bfi-inference", cl::Hidden, cl::desc("Apply an iterative post-processing to infer correct BFI counts"))

◆ UseLEB128Directives

cl::opt< cl::boolOrDefault > llvm::UseLEB128Directives ( "use-leb128-directives" ,
cl::Hidden ,
cl::desc( "Disable the usage of LEB128 directives, and generate .byte instead.") ,
cl::init(cl::BOU_UNSET)  )

◆ 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."))

◆ Value

◆ ValueProfRecord

llvm::ValueProfRecord

Definition at line 418 of file InstrProf.h.

◆ VerifyDomInfo

bool llvm::VerifyDomInfo = false
extern

Enables verification of dominator trees.

This check is expensive and is disabled by default. -verify-dom-info allows selectively enabling the check without needing to recompile.

Definition at line 41 of file Dominators.cpp.

Referenced by llvm::FunctionToLoopPassAdaptor::run(), llvm::DominatorTreeWrapperPass::verifyAnalysis(), and llvm::PostDominatorTreeWrapperPass::verifyAnalysis().

◆ VerifyEachVPlan

cl::opt< bool > llvm::VerifyEachVPlan
extern

◆ VerifyHSAMetadata

cl::opt< bool > llvm::VerifyHSAMetadata("amdgpu-verify-hsa-metadata", cl::desc("Verify AMDGPU HSA Metadata")) ( "amdgpu-verify-hsa-metadata" ,
cl::desc("Verify AMDGPU HSA Metadata")  )
static

◆ VerifyLoopInfo

bool llvm::VerifyLoopInfo = false
extern

Enable verification of loop info.

The flag enables checks which are expensive and are disabled by default unless the EXPENSIVE_CHECKS macro is defined. The -verify-loop-info flag allows the checks to be enabled selectively without re-compilation.

Definition at line 51 of file LoopInfo.cpp.

Referenced by llvm::FunctionToLoopPassAdaptor::run(), turnGuardIntoBranch(), and llvm::LoopInfoWrapperPass::verifyAnalysis().

◆ VerifyMachineDomInfo

◆ VerifyMemorySSA

◆ VerifySCEV

◆ VerifyScheduling

◆ Version

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::Version

Definition at line 302 of file InstrProf.h.

Referenced by llvm::offloading::intel::containerizeOpenMPSPIRVImage(), llvm::remarks::createYAMLParserFromMeta(), decodeBBAddrMapImpl(), llvm::AMDGPU::decodeExpcnt(), llvm::AMDGPU::decodeLgkmcnt(), llvm::AMDGPU::decodeLoadcntDscnt(), llvm::AMDGPU::decodeStorecntDscnt(), llvm::AMDGPUDisassembler::decodeVersionImm(), llvm::AMDGPU::decodeVmcnt(), llvm::AMDGPU::decodeWaitcnt(), llvm::AMDGPU::decodeWaitcnt(), llvm::memprof::IndexedMemProfRecord::deserialize(), llvm::DwarfUnit::emitCommonHeader(), llvm::TargetLoweringObjectFileCOFF::emitModuleMetadata(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::WebAssemblyAsmPrinter::EmitProducerInfo(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitVersion(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV5::emitVersion(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV6::emitVersion(), llvm::MCStreamer::emitVersionForTarget(), llvm::MCStreamer::emitWinCFIUnwindVersion(), llvm::AMDGPU::encodeDscnt(), llvm::AMDGPU::encodeExpcnt(), llvm::AMDGPU::encodeLgkmcnt(), llvm::AMDGPU::encodeLoadcnt(), llvm::AMDGPU::encodeLoadcntDscnt(), llvm::AMDGPU::encodeLoadcntDscnt(), llvm::AMDGPU::encodeStorecnt(), llvm::AMDGPU::encodeStorecntDscnt(), llvm::AMDGPU::encodeStorecntDscnt(), llvm::AMDGPU::encodeVmcnt(), llvm::AMDGPU::encodeWaitcnt(), llvm::AMDGPU::encodeWaitcnt(), llvm::directive::FindName(), llvm::AMDGPU::IsaInfo::getAddressableNumSGPRs(), llvm::pdb::DIARawSymbol::getBackEndVersion(), llvm::pdb::IPDBRawSymbol::getBackEndVersion(), llvm::pdb::NativeRawSymbol::getBackEndVersion(), llvm::pdb::PDBSymbolCompilandDetails::getBackEndVersion(), llvm::AMDGPU::getBvhcntBitMask(), llvm::Triple::getCanonicalVersionForOS(), llvm::AMDGPU::getCombinedCountBitMask(), llvm::AMDGPU::MCKernelDescriptor::getDefaultAmdhsaKernelDescriptor(), llvm::Triple::getDriverKitVersion(), llvm::AMDGPU::getDscntBitMask(), llvm::AMDGPU::getExpcntBitMask(), llvm::FaultMapParser::getFaultMapVersion(), llvm::pdb::DIARawSymbol::getFrontEndVersion(), llvm::pdb::IPDBRawSymbol::getFrontEndVersion(), llvm::pdb::NativeRawSymbol::getFrontEndVersion(), llvm::pdb::PDBSymbolCompilandDetails::getFrontEndVersion(), llvm::MachO::getInterfaceFileFromJSON(), llvm::Triple::getiOSVersion(), llvm::AMDGPU::getKmcntBitMask(), llvm::AMDGPU::getLgkmcntBitMask(), llvm::AMDGPU::getLoadcntBitMask(), llvm::Triple::getMacOSXVersion(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::getNSAMaxSize(), llvm::AMDGPU::IsaInfo::getNumExtraSGPRs(), llvm::MachO::getOSAndEnvironmentName(), getPGOFuncName(), getPGOFuncName(), llvm::AMDGPU::getSamplecntBitMask(), llvm::AMDGPU::IsaInfo::getSGPRAllocGranule(), llvm::AMDGPU::getStorecntBitMask(), llvm::MachO::getTargetTripleName(), llvm::AMDGPU::IsaInfo::getTotalNumSGPRs(), llvm::object::XCOFFAuxiliaryHeader< T >::getVersion(), llvm::object::ELFFile< ELFT >::getVersionDefinitions(), llvm::object::ELFFile< ELFT >::getVersionDependencies(), llvm::object::MachOObjectFile::getVersionString(), llvm::AMDGPU::getVmcntBitMask(), llvm::AMDGPU::getWaitcntBitMask(), llvm::Triple::getWatchOSVersion(), llvm::AMDGPU::getXcntBitMask(), llvm::AMDGPU::initDefaultAMDKernelCodeT(), llvm::InstrProfReaderIndex< HashTableImpl >::InstrProfReaderIndex(), llvm::InstrProfReaderIndex< HashTableImpl >::InstrProfReaderItaniumRemapper< HashTableImpl >, llvm::Triple::isAndroidVersionLT(), llvm::omp::isPrivatizingConstruct(), llvm::dwarf::isValidFormForVersion(), llvm::Triple::isValidVersionForOS(), llvm::xray::loadTrace(), llvm::object::ELFFile< ELFT >::loadVersionMap(), llvm::yaml::MappingTraits< DXContainerYAML::PSVInfo >::mapping(), llvm::yaml::MappingTraits< DXContainerYAML::VersionTuple >::mapping(), llvm::MachO::Target::operator std::string(), llvm::MachO::operator<<(), llvm::pdb::operator<<(), llvm::coverage::RawCoverageFilenamesReader::operator=(), llvm::pdb::TpiStreamBuilder::operator=(), llvm::DWARFDebugFrame::parse(), llvm::vfs::RedirectingFileSystemParser::parse(), llvm::RISCVISAInfo::parseArchString(), llvm::TargetMachine::parseBinutilsVersion(), llvm::hlsl::rootsig::MetadataParser::ParseRootSignature(), llvm::RISCVISAInfo::printEnabledExtensions(), llvm::RISCVISAInfo::printSupportedExtensions(), llvm::ScopedPrinter::printVersion(), llvm::coverage::RawCoverageFilenamesReader::read(), llvm::object::DirectX::RootDescriptorView::read(), llvm::irsymtab::readBitcode(), llvm::sampleprof::SampleProfileReaderBinary::readMagicIdent(), llvm::AsmPrinter::recordSled(), llvm::memprof::IndexedMemProfRecord::serialize(), llvm::memprof::IndexedAllocationInfo::serializedSize(), llvm::memprof::IndexedMemProfRecord::serializedSize(), llvm::AMDGPUDisassembler::setABIVersion(), llvm::MCDisassembler::setABIVersion(), llvm::MachO::InterfaceFile::setCompatibilityVersion(), llvm::MachO::InterfaceFile::setCurrentVersion(), llvm::hlsl::rootsig::DescriptorTableClause::setDefaultFlags(), llvm::hlsl::rootsig::RootDescriptor::setDefaultFlags(), llvm::AsmPrinter::setDwarfVersion(), llvm::DWARFContext::setMaxVersionIfGreater(), llvm::InstrProfWriter::setMemProfVersionRequested(), llvm::MachO::InterfaceFile::setSwiftABIVersion(), llvm::pdb::TpiStreamBuilder::setVersionHeader(), llvm::StrOffsetsContributionDescriptor::StrOffsetsContributionDescriptor(), llvm::AMDGPU::IsaInfo::AMDGPUTargetID::toString(), UpgradeDebugInfo(), llvm::StackMapParser< Endianness >::validateHeader(), llvm::DWARFVerifier::verifyDebugStrOffsets(), llvm::hlsl::rootsig::verifyDescriptorRangeFlag(), llvm::hlsl::rootsig::verifyRangeType(), llvm::hlsl::rootsig::verifyRootDescriptorFlag(), llvm::hlsl::rootsig::verifyVersion(), llvm::coverage::TestingFormatWriter::write(), llvm::mcdxbc::PSVRuntimeInfo::write(), llvm::objcopy::wasm::Writer::write(), write(), writeMemProfRadixTreeBased(), writeMemProfRecords(), llvm::DXContainerObjectWriter::writeObject(), writeStringsAndOffsets(), and llvm::AMDGPUDisassembler::~AMDGPUDisassembler().

◆ ViewBlockFreqFuncName

cl::opt< std::string > llvm::ViewBlockFreqFuncName ( "view-bfi-func-name" ,
cl::Hidden ,
cl::desc("The option to specify " "the name of the function " "whose CFG will be displayed.")  )

◆ ViewBlockLayoutWithBFI

cl::opt< GVDAGType > llvm::ViewBlockLayoutWithBFI ( "view-block-layout-with-bfi" ,
cl::Hidden ,
cl::desc( "Pop up a window to show a dag displaying MBP layout and associated " "block frequencies of the CFG.") ,
cl::values(clEnumValN(GVDT_None, "none", "do not display graphs."), clEnumValN(GVDT_Fraction, "fraction", "display a graph using the " "fractional block frequency representation."), clEnumValN(GVDT_Integer, "integer", "display a graph using the raw " "integer fractional block frequency representation."), clEnumValN(GVDT_Count, "count", "display a graph using the real " "profile count if available."))  )

Definition at line 242 of file MachineBlockPlacement.cpp.

Referenced by getGVDT().

◆ ViewHotFreqPercent

cl::opt< unsigned > llvm::ViewHotFreqPercent ( "view-hot-freq-percent" ,
cl::init(10) ,
cl::Hidden ,
cl::desc("An integer in percent used to specify " "the hot blocks/edges to be displayed " "in red: a block or edge whose frequency " "is no less than the max frequency of the " "function multiplied by this percent.")  )

◆ ViewMachineBlockFreqPropagationDAG

cl::opt< GVDAGType > llvm::ViewMachineBlockFreqPropagationDAG("view-machine-block-freq-propagation-dags", cl::Hidden, cl::desc("Pop up a window to show a dag displaying how machine block " "frequencies propagate through the CFG."), cl::values(clEnumValN(GVDT_None, "none", "do not display graphs."), clEnumValN(GVDT_Fraction, "fraction", "display a graph using the " "fractional block frequency representation."), clEnumValN(GVDT_Integer, "integer", "display a graph using the raw " "integer fractional block frequency representation."), clEnumValN(GVDT_Count, "count", "display a graph using the real " "profile count if available."))) ( "view-machine-block-freq-propagation-dags" ,
cl::Hidden ,
cl::desc("Pop up a window to show a dag displaying how machine block " "frequencies propagate through the CFG.") ,
cl::values(clEnumValN(GVDT_None, "none", "do not display graphs."), clEnumValN(GVDT_Fraction, "fraction", "display a graph using the " "fractional block frequency representation."), clEnumValN(GVDT_Integer, "integer", "display a graph using the raw " "integer fractional block frequency representation."), clEnumValN(GVDT_Count, "count", "display a graph using the real " "profile count if available."))  )
static

◆ ViewMISchedDAGs

cl::opt< bool > llvm::ViewMISchedDAGs("view-misched-dags", cl::Hidden, cl::desc("Pop up a window to show MISched dags after they are processed"))

◆ VirtRegRewriterID

char & llvm::VirtRegRewriterID = VirtRegRewriterLegacy::ID
extern

VirtRegRewriter pass.

Rewrite virtual registers to physical registers as assigned in VirtRegMap.

Definition at line 258 of file VirtRegMap.cpp.

Referenced by llvm::TargetPassConfig::addRegAssignAndRewriteOptimized(), and createResetMachineFunctionPass().

◆ VTableNameHash

FunctionAddr llvm::VTableNameHash

Definition at line 110 of file InstrProf.h.

◆ VTablePointer

FunctionAddr llvm::VTablePointer

Definition at line 113 of file InstrProf.h.

◆ WebAssemblyFeatureKV

const SubtargetFeatureKV llvm::WebAssemblyFeatureKV[WebAssembly::NumSubtargetFeatures]
extern

◆ WindowSchedulingOption

cl::opt< WindowSchedulingFlag > llvm::WindowSchedulingOption("window-sched", cl::Hidden, cl::init(WindowSchedulingFlag::WS_On), cl::desc("Set how to use window scheduling algorithm."), cl::values(clEnumValN(WindowSchedulingFlag::WS_Off, "off", "Turn off window algorithm."), clEnumValN(WindowSchedulingFlag::WS_On, "on", "Use window algorithm after SMS algorithm fails."), clEnumValN(WindowSchedulingFlag::WS_Force, "force", "Use window algorithm instead of SMS algorithm."))) ( "window-sched" ,
cl::Hidden ,
cl::init(WindowSchedulingFlag::WS_On) ,
cl::desc("Set how to use window scheduling algorithm.") ,
cl::values(clEnumValN(WindowSchedulingFlag::WS_Off, "off", "Turn off window algorithm."), clEnumValN(WindowSchedulingFlag::WS_On, "on", "Use window algorithm after SMS algorithm fails."), clEnumValN(WindowSchedulingFlag::WS_Force, "force", "Use window algorithm instead of SMS algorithm."))  )
static

A command line argument to set the window scheduling option.

◆ WriteoutFunction

FunctionAddr VTableAddr uintptr_t uintptr_t llvm::WriteoutFunction

Definition at line 313 of file InstrProf.h.

◆ XRayInstrumentationID

char & llvm::XRayInstrumentationID = XRayInstrumentationLegacy::ID
extern

This pass inserts the XRay instrumentation sleds if they are supported by the target platform.

Definition at line 330 of file XRayInstrumentation.cpp.

Referenced by llvm::TargetPassConfig::addMachinePasses(), and createGCLoweringPass().