LLVM 20.0.0git
|
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 | AArch64ISD |
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 | amdhsa |
namespace | APIntOps |
namespace | ARCCC |
namespace | ArchYAML |
namespace | ARCISD |
namespace | ARM |
Define some predicates that are used for node matching. | |
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 | AttributeFuncs |
namespace | AVR |
Contains the AVR backend. | |
namespace | AVRCC |
namespace | AVRII |
namespace | AVRISD |
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 | 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 | CSKYISD |
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 | 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 | 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 | 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 | jitlink |
namespace | json |
namespace | JumpTable |
namespace | jumpthreading |
A private "module" namespace for types and utilities used by JumpThreading. | |
namespace | Lanai |
namespace | LanaiII |
namespace | LanaiISD |
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 | 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 | M68kISD |
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 | MSP430ISD |
namespace | MSSAHelpers |
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 | 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 | 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 | 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 | SPISD |
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 | XCoreISD |
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 | 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 | 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 | AArch64AuthMCExpr |
class | AArch64beTargetMachine |
class | AArch64CallLowering |
class | AArch64Disassembler |
class | AArch64ExternalSymbolizer |
class | AArch64FrameLowering |
class | AArch64FunctionInfo |
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction. More... | |
class | AArch64GenRegisterBankInfo |
class | AArch64InstPrinter |
class | AArch64InstrInfo |
class | AArch64LegalizerInfo |
class | AArch64leTargetMachine |
struct | AArch64MCAsmInfoDarwin |
struct | AArch64MCAsmInfoELF |
struct | AArch64MCAsmInfoGNUCOFF |
struct | AArch64MCAsmInfoMicrosoftCOFF |
class | AArch64MCExpr |
class | AArch64MCInstLower |
AArch64MCInstLower - This class is used to lower an MachineInstr into an MCInst. More... | |
class | AArch64PostRASchedStrategy |
A MachineSchedStrategy implementation for AArch64 post RA scheduling. 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 | ADCEPass |
A DCE pass that assumes instructions are dead until proven otherwise. More... | |
struct | add_const_past_pointer |
If T is a pointer to X, return a pointer to const X. More... | |
struct | add_const_past_pointer< T, std::enable_if_t< std::is_pointer_v< T > > > |
struct | add_lvalue_reference_if_not_pointer |
If T is a pointer, just return it. If it is not, return T&. More... | |
struct | add_lvalue_reference_if_not_pointer< T, std::enable_if_t< std::is_pointer_v< T > > > |
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 | AggressiveAntiDepBreaker |
class | AggressiveAntiDepState |
Contains all the state necessary for anti-dep breaking. More... | |
class | AggressiveInstCombinePass |
class | AIXCCState |
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 | AMDGPUCodeGenPassBuilder |
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 | 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 |
class | AMDGPUInstPrinter |
class | AMDGPUInstrInfo |
class | AMDGPUInstructionSelector |
class | AMDGPUISelDAGToDAGPass |
class | AMDGPULateCodeGenPreparePass |
class | AMDGPULegalizerInfo |
class | AMDGPULibCalls |
class | AMDGPULibFunc |
Wrapper class for AMDGPULIbFuncImpl. More... | |
class | AMDGPULibFuncBase |
class | AMDGPULibFuncImpl |
struct | AMDGPULowerBufferFatPointersPass |
class | AMDGPULowerKernelArgumentsPass |
struct | AMDGPULowerKernelAttributesPass |
struct | AMDGPULowerModuleLDSPass |
class | AMDGPUMachineFunction |
class | AMDGPUMachineModuleInfo |
class | AMDGPUMangledLibFunc |
class | AMDGPUMCAsmInfo |
class | AMDGPUMCExpr |
AMDGPU target specific MCExpr operations. More... | |
class | AMDGPUMIRFormatter |
class | AMDGPUOpenCLEnqueuedBlockLoweringPass |
class | AMDGPUPALMetadata |
class | AMDGPUPassConfig |
class | AMDGPUPerfHintAnalysis |
struct | AMDGPUPerfHintAnalysisPass |
class | AMDGPUPreloadKernArgPrologPass |
struct | AMDGPUPrintfRuntimeBindingPass |
struct | AMDGPUPromoteAllocaPass |
struct | AMDGPUPromoteAllocaToVectorPass |
struct | AMDGPUPromoteKernelArgumentsPass |
class | AMDGPUPseudoSourceValue |
class | AMDGPURegisterBankInfo |
class | AMDGPURemoveIncompatibleFunctionsPass |
struct | AMDGPUResourceUsageAnalysis |
class | AMDGPURewriteUndefForPHIPass |
class | AMDGPUSelectionDAGInfo |
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 |
struct | AMDGPUUnifyMetadataPass |
class | AMDGPUUnmangledLibFunc |
struct | AMDGPUUseNativeCallsPass |
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 | 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 | ARMMCExpr |
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 |
AsmLexer - Lexer class for assembly files. More... | |
class | AsmPrinter |
This class is intended to be used as a driving class for all asm writers. More... | |
class | AsmPrinterHandler |
Collects and handles AsmPrinter objects required to build debug or EH information. More... | |
struct | AsmRewrite |
class | AsmToken |
Target independent representation for an assembler token. More... | |
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 | AtomicMemCpyInst |
This class represents the atomic memcpy intrinsic i.e. More... | |
class | AtomicMemIntrinsic |
class | AtomicMemMoveInst |
This class represents the atomic memmove intrinsic i.e. More... | |
class | AtomicMemSetInst |
This class represents atomic memset intrinsic. More... | |
class | AtomicMemTransferInst |
class | AtomicRMWInst |
an instruction that atomically reads a memory location, combines it with another value, and then stores the result back. More... | |
class | AtomicSDNode |
This is an SDNode representing atomic operations. More... | |
class | AttrBuilder |
class | Attribute |
class | AttributeBitSet |
class | AttributeImpl |
struct | AttributeLinkedOffsetFixup |
class | AttributeList |
class | AttributeListImpl |
class | AttributeMask |
class | AttributeSet |
class | AttributeSetNode |
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 | AVRAsmPrinter |
An AVR assembly code printer. 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 | 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 |
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 | 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 | 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 | BranchInst |
Conditional or Unconditional Branch instruction. More... | |
class | BranchProbability |
class | BranchProbabilityAnalysis |
Analysis pass which computes BranchProbabilityInfo . More... | |
class | BranchProbabilityInfo |
Analysis providing branch probability information. More... | |
class | BranchProbabilityInfoWrapperPass |
Legacy analysis pass which computes BranchProbabilityInfo . More... | |
class | BranchProbabilityPrinterPass |
Printer pass for the BranchProbabilityAnalysis results. More... | |
struct | BreakCriticalEdgesPass |
class | BreakFalseDeps |
struct | BrokenLink |
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 |
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... | |
class | CanonicalLoopInfo |
Class to represented the control flow structure of an OpenMP canonical 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 | CastInfoPointerUnionImpl |
We can't (at least, at this moment with C++14) declare CastInfo as a friend of PointerUnion like this: 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 > > |
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 | 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 | ClauseVal |
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 | CompileUnitIdentifiers |
struct | ComplexDeinterleavingPass |
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 |
struct | const_pointer_or_const_ref< T, std::enable_if_t< std::is_pointer_v< T > > > |
class | const_set_bits_iterator_impl |
ForwardIterator for the bits that are set. More... | |
class | Constant |
This is an important base class in LLVM. More... | |
class | ConstantAggregate |
Base class for aggregate constants (with operands). More... | |
class | ConstantAggregateZero |
All zero aggregate value. More... | |
struct | ConstantAggrKeyType |
class | ConstantArray |
ConstantArray - Constant Array Declarations. More... | |
class | ConstantAsMetadata |
class | ConstantData |
Base class for constants with no operands. More... | |
class | ConstantDataArray |
An array constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. More... | |
struct | ConstantDataArraySlice |
Represents offset+length into a ConstantDataArray. More... | |
class | ConstantDataSequential |
ConstantDataSequential - A vector or array constant whose element type is a simple 1/2/4/8-byte integer or 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... | |
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 | CSKYMCCodeEmitter |
class | CSKYMCExpr |
class | CSKYMCInstLower |
class | CSKYRegisterInfo |
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... | |
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 | 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 | 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 | 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 | DecoderUInt128 |
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< AttributeList, void > |
struct | DenseMapInfo< AttributeSet, void > |
struct | DenseMapInfo< BasicBlock::iterator > |
struct | DenseMapInfo< BasicBlockEdge > |
struct | DenseMapInfo< BitVector > |
struct | DenseMapInfo< CachedHashString > |
struct | DenseMapInfo< CachedHashStringRef > |
struct | DenseMapInfo< CallValue > |
struct | DenseMapInfo< char > |
struct | DenseMapInfo< codeview::GloballyHashedType > |
struct | DenseMapInfo< codeview::LocallyHashedType > |
struct | DenseMapInfo< codeview::TypeIndex > |
struct | DenseMapInfo< CodeViewDebug::LocalVarDef > |
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< int > |
struct | DenseMapInfo< IRPosition > |
Helper that allows IRPosition as a key in a DenseMap. More... | |
struct | DenseMapInfo< LLT > |
struct | DenseMapInfo< llvm::sys::fs::UniqueID > |
struct | DenseMapInfo< LocationSize > |
struct | DenseMapInfo< LocIdx > |
struct | DenseMapInfo< long > |
struct | DenseMapInfo< long long > |
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< short > |
struct | DenseMapInfo< SimpleValue > |
struct | DenseMapInfo< SlotWithTag > |
struct | DenseMapInfo< SmallBitVector > |
struct | DenseMapInfo< SpecSig > |
struct | DenseMapInfo< std::pair< const MCSymbol *, MCSymbolRefExpr::VariantKind > > |
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< 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< unsigned > |
struct | DenseMapInfo< unsigned char > |
struct | DenseMapInfo< unsigned long > |
struct | DenseMapInfo< unsigned long long > |
struct | DenseMapInfo< unsigned short > |
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 | 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 |
class | DiagnosticInfoIgnoringInvalidDebugMetadata |
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 | 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 | 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. More... | |
class | DISubrange |
Array subrange. More... | |
class | DISubroutineType |
Type array for a subprogram. More... | |
class | DITemplateParameter |
Base class for template parameters. More... | |
class | DITemplateTypeParameter |
class | DITemplateValueParameter |
class | DIType |
Base class for types. More... | |
class | DITypeRefArray |
class | DIVariable |
Base class for variables. More... | |
class | 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 | 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 | DwarfCFIException |
class | DwarfCompileUnit |
class | DWARFCompileUnit |
class | DWARFContext |
DWARFContext This data structure is the top level entity that deals with dwarf debug information parsing. More... | |
class | DWARFDataExtractor |
A DataExtractor (typically for an in-memory copy of an object-file section) plus a relocation map for that section, if there is one. More... | |
class | DwarfDebug |
Collects and handles dwarf debug information. More... | |
class | DWARFDebugAbbrev |
class | DWARFDebugAddrTable |
A class representing an address table as specified in DWARF v5. More... | |
class | DWARFDebugAranges |
class | DWARFDebugArangeSet |
class | DWARFDebugFrame |
A parsed .debug_frame or .eh_frame section. More... | |
class | DWARFDebugInfoEntry |
DWARFDebugInfoEntry - A DIE with only the minimum required data. More... | |
class | DWARFDebugLine |
class | DWARFDebugLoc |
class | DWARFDebugLoclists |
class | DWARFDebugMacro |
class | DWARFDebugNames |
.debug_names section consists of one or more units. More... | |
class | DWARFDebugPubTable |
Represents structure for holding and parsing .debug_pub* tables. More... | |
class | DWARFDebugRangeList |
class | DWARFDebugRnglist |
A class representing a single rangelist. More... | |
class | DWARFDebugRnglistTable |
class | DWARFDie |
Utility class that carries the DWARF compile/type unit and the debug info entry in an object. More... | |
class | DwarfEHPreparePass |
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 | DWARFExpression |
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 | DXILBindingMap |
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 | DXILIntrinsicExpansion |
A pass that transforms DXIL Intrinsics that don't have DXIL opCodes. More... | |
class | DXILMetadataAnalysis |
class | DXILMetadataAnalysisPrinterPass |
Printer pass for the DXILMetadataAnalysis results. More... | |
class | DXILMetadataAnalysisWrapperPass |
Legacy pass. More... | |
class | DXILOpLowering |
class | DXILPrettyPrinterPass |
A pass that prints resources in a format suitable for textual DXIL. More... | |
class | DXILResourceAccess |
class | DXILResourceBindingAnalysis |
class | DXILResourceBindingPrinterPass |
Printer pass for the DXILResourceBindingAnalysis results. More... | |
class | DXILResourceBindingWrapperPass |
class | DXILResourceMDAnalysis |
Analysis pass that exposes the DXILResource for a module. More... | |
class | DXILResourceMDWrapper |
The legacy pass manager's analysis pass to compute DXIL resource information. More... | |
class | DXILResourceTypeAnalysis |
class | DXILResourceTypeMap |
class | DXILResourceTypeWrapperPass |
class | DXILTranslateMetadata |
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 | 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 > |
class | EnumAttributeImpl |
struct | EnumEntry |
class | EnumeratedArray |
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 | 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 | ExpandLargeDivRemPass |
class | ExpandLargeFpConvertPass |
class | ExpandMemCmpPass |
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... | |
struct | explicitly_convertible |
struct | explicitly_convertible< From, To, std::void_t< decltype(static_cast< To >(std::declval< std::add_rvalue_reference_t< From > >()))> > |
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 | 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 | 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 | 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 |
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< 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 | 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 | 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 | 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 | GCNPostScheduleDAGMILive |
struct | GCNRegPressure |
struct | GCNRegPressurePrinter |
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... | |
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... | |
struct | 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 | 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 | GISelKnownBits |
class | GISelKnownBitsAnalysis |
To use KnownBitsInfo analysis in a pass, KnownBitsInfo &Info = getAnalysis<GISelKnownBitsInfoAnalysis>().get(MF); Add to observer if the Info is caching. More... | |
class | GISelObserverWrapper |
Simple wrapper observer that takes several observers, and calls each one for each event. More... | |
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 | 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 | 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 | 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 | HexagonMask |
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 |
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... | |
class | ilist_select_iterator_type |
class | ilist_select_iterator_type< true, Opts, arg1, arg2 > |
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 | 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 |
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 | InstrOrderFilePass |
The instrumentation pass for recording function order. 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 | 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... | |
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 | 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... | |
struct | is_bitmask_enum< E, std::enable_if_t< sizeof(E::LLVM_BITMASK_LARGEST_ENUMERATOR) >=0 > |
struct | is_copy_assignable |
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_move_assignable |
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 |
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 | LanaiMCExpr |
class | LanaiMCInstLower |
struct | LanaiRegisterInfo |
class | LanaiSelectionDAGInfo |
class | LanaiSubtarget |
class | LanaiTargetLowering |
class | LanaiTargetMachine |
class | LanaiTargetObjectFile |
class | LanaiTTIImpl |
struct | LandingPadInfo |
This structure is used to retain landing pad info for the current function. More... | |
class | LandingPadInst |
The landingpad instruction holds all of the information necessary to generate correct exception handling. More... | |
struct | LaneBitmask |
struct | largest_bitmask_enum_bit |
Trait class to determine bitmask enumeration largest bit. More... | |
struct | largest_bitmask_enum_bit< E, std::enable_if_t< sizeof(E::LLVM_BITMASK_LARGEST_ENUMERATOR) >=0 > |
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 |
LexicalScope - This class is used to track scope information. More... | |
class | LexicalScopes |
LexicalScopes - This class provides interface to collect and use lexical scoping information from machine instruction. More... | |
class | LibCallSimplifier |
LibCallSimplifier - This class implements a collection of optimizations that replace well formed calls to library functions with a more optimal form. More... | |
class | LibCallsShrinkWrapPass |
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, which indicate the offet and size that are started/ended in the underlying FrameIndex. More... | |
class | line_iterator |
A forward iterator which reads text lines from a buffer. More... | |
class | LineEditor |
class | LinkDiagnosticInfo |
class | Linker |
This class provides the core functionality of linking in LLVM. More... | |
class | LinkingSymbolResolver |
class | 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 | 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_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 | LocalAsMetadata |
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 | 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... | |
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... | |
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 | 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 | 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 | MachineCSEPass |
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 | 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... | |
struct | MachineSchedContext |
MachineSchedContext provides enough context from the MachineScheduler pass for the target to instantiate a scheduler. More... | |
struct | MachineSchedPolicy |
Define a generic scheduling policy for targets that don't provide their own MachineSchedStrategy. More... | |
class | MachineSchedRegistry |
MachineSchedRegistry provides a selection of available machine instruction schedulers. More... | |
class | MachineSchedStrategy |
MachineSchedStrategy - Interface to the scheduling algorithm used by ScheduleDAGMI. More... | |
class | MachineSDNode |
An SDNode that represents everything that will be needed to construct a MachineInstr. More... | |
class | MachineSSAUpdater |
MachineSSAUpdater - This class updates SSA form for a set of virtual registers defined in multiple blocks. More... | |
class | MachineTraceMetrics |
class | MachineTraceMetricsAnalysis |
struct | MachineTraceMetricsVerifierPass |
Verifier pass for MachineTraceMetrics . More... | |
class | MachineTraceMetricsWrapperPass |
class | MachineUniformityAnalysisPass |
Legacy analysis pass which computes a MachineUniformityInfo. More... | |
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 | MCAlignFragment |
class | MCAsmBackend |
Generic interface to target specific assembler backends. More... | |
class | MCAsmInfo |
This class is intended to be used as a base class for asm properties and features specific to the target. More... | |
class | MCAsmInfoCOFF |
class | MCAsmInfoDarwin |
class | MCAsmInfoELF |
class | MCAsmInfoGNUCOFF |
class | MCAsmInfoGOFF |
class | MCAsmInfoMicrosoft |
class | MCAsmInfoWasm |
class | MCAsmInfoXCOFF |
class | MCAsmLexer |
Generic assembler lexer interface, for use by target specific assembly lexers. More... | |
struct | MCAsmMacro |
struct | MCAsmMacroParameter |
class | MCAsmParser |
Generic assembler parser interface, for use by target specific assembly parsers. More... | |
class | MCAsmParserExtension |
Generic interface for extending the MCAsmParser, which is implemented by target and object file assembly parser implementations. More... | |
class | MCAsmParserSemaCallback |
Generic Sema callback for assembly parser. More... | |
class | MCAssembler |
class | MCBinaryExpr |
Binary assembler expressions. More... | |
class | 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 | MCDataFragment |
Fragment for data and encoded instructions. More... | |
class | MCDecodedPseudoProbe |
class | MCDecodedPseudoProbeInlineTree |
class | MCDisassembler |
Superclass for all disassemblers. More... | |
class | MCDummyFragment |
class | MCDwarfCallFrameFragment |
class | MCDwarfDwoLineTable |
struct | MCDwarfFile |
Instances of this class represent the name of the dwarf .file directive and its associated dwarf file number in the MC file. More... | |
class | MCDwarfFrameEmitter |
struct | MCDwarfFrameInfo |
class | MCDwarfLineAddr |
class | MCDwarfLineAddrFragment |
class | MCDwarfLineEntry |
Instances of this class represent the line information for the dwarf line table entries. More... | |
class | MCDwarfLineStr |
Manage the .debug_line_str section contents, if we use it. More... | |
class | MCDwarfLineTable |
struct | MCDwarfLineTableHeader |
struct | MCDwarfLineTableParams |
class | MCDwarfLoc |
Instances of this class represent the information from a dwarf .loc directive. More... | |
class | MCDXContainerStreamer |
class | MCDXContainerTargetWriter |
class | MCELFObjectTargetWriter |
class | MCELFStreamer |
class | MCEncodedFragment |
Interface implemented by fragments that contain encoded instructions and/or data. More... | |
class | MCEncodedFragmentWithFixups |
Interface implemented by fragments that contain encoded instructions and/or data and also have fixups registered. More... | |
class | MCExpr |
Base class for the full range of assembler expressions which are needed for parsing. More... | |
class | MCExternalSymbolizer |
Symbolize using user-provided, C API, callbacks. More... | |
struct | MCExtraProcessorInfo |
Provide extra details about the machine processor. More... | |
class | MCFillFragment |
class | MCFixup |
Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction) which requires assemble- or run- time patching. More... | |
struct | MCFixupKindInfo |
Target independent information on a fixup kind. More... | |
class | MCFragment |
class | MCGenDwarfInfo |
class | MCGenDwarfLabelEntry |
class | 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 | MCLEBFragment |
class | MCLineSection |
Instances of this class represent the line information for a compile unit where machine instructions have been assembled after seeing .loc directives. More... | |
class | MCLOHContainer |
class | MCLOHDirective |
Store Linker Optimization Hint information (LOH). More... | |
class | MCMachObjectTargetWriter |
class | 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 | MCPseudoProbeAddrFragment |
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 | MCRelaxableFragment |
A relaxable fragment holds on to its MCInst, since it may need to be relaxed during the assembler layout and relaxation stage. More... | |
class | MCRelocationInfo |
Create MCExprs from relocations found in an object file. More... | |
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 | 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 |
This is an extension point for target-specific MCExpr subclasses to implement. More... | |
class | MCTargetOptions |
class | MCTargetStreamer |
Target specific streamer interface. More... | |
class | MCUnaryExpr |
Unary assembler expressions. More... | |
class | MCValue |
This represents an "assembler immediate". More... | |
class | MCWasmObjectTargetWriter |
class | MCWasmStreamer |
class | MCWinCOFFObjectTargetWriter |
class | MCWinCOFFStreamer |
struct | MCWriteLatencyEntry |
Specify the latency in cpu cycles for a particular scheduling class and def index. More... | |
struct | MCWriteProcResEntry |
Identify one of the processor resource kinds consumed by a particular scheduling class for the specified number of cycles. More... | |
class | 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< 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< DISubroutineType > |
struct | MDNodeKeyImpl< DITemplateTypeParameter > |
struct | MDNodeKeyImpl< DITemplateValueParameter > |
struct | MDNodeKeyImpl< GenericDINode > |
DenseMapInfo for GenericDINode. More... | |
struct | MDNodeKeyImpl< MDTuple > |
DenseMapInfo for MDTuple. More... | |
class | MDNodeOpsKey |
Structure for hashing arbitrary MDNode operands. More... | |
class | MDNodeSDNode |
struct | MDNodeSubsetEqualImpl |
Configuration point for MDNodeInfo::isEqual(). More... | |
struct | MDNodeSubsetEqualImpl< DIDerivedType > |
struct | MDNodeSubsetEqualImpl< DISubprogram > |
class | MDOperand |
Tracking metadata reference owned by Metadata. More... | |
class | MDString |
A single uniqued string. More... | |
class | MDTuple |
Tuple of metadata. More... | |
class | MDTupleTypedArrayWrapper |
Typed, array-like tuple of metadata. More... | |
class | MemCpyInlineInst |
This class wraps the llvm.memcpy.inline intrinsic. 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 | MemSetInlineInst |
This class wraps the llvm.memset.inline intrinsic. 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 | MemSetPatternIntrinsic |
This is the base class for llvm.experimental.memset.pattern. 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 |
class | Metadata |
Root of the metadata hierarchy. More... | |
class | MetadataAsValue |
Metadata wrapper in the Value hierarchy. More... | |
class | MetadataLoader |
Helper class that handles loading Metadatas and keeping them available. More... | |
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... | |
class | MIMetadata |
Set of metadata that should be preserved when using BuildMI(). More... | |
struct | MinMax |
class | MinMaxIntrinsic |
This class represents min/max intrinsics. More... | |
class | MIPrinter |
This class prints out the machine instructions using the MIR serialization format. 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 | MipsMCExpr |
class | MipsMCInstLower |
MipsMCInstLower - This class is used to lower an MachineInstr into an MCInst. More... | |
class | MipsOptionRecord |
class | MipsRegInfoRecord |
class | MipsRegisterBankInfo |
This class provides the information for the target register banks. More... | |
class | MipsRegisterInfo |
class | MipsSEDAGToDAGISel |
class | 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 | MIRPrinter |
This class prints out the machine functions using the MIR serialization format. 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 |
class | MMRAMetadata |
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 | 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... | |
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 | 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 |
class | NVPTXMachineFunctionInfo |
class | NVPTXMCAsmInfo |
class | NVPTXRegisterInfo |
struct | NVPTXScopes |
class | NVPTXSelectionDAGInfo |
class | NVPTXSubtarget |
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 | ObjCARCAPElimPass |
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 | 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 |
class | OffloadEntriesInfoManager |
Class that manages information about offload code regions and data. More... | |
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 | OpenMPIRBuilder |
An interface to create LLVM-IR for OpenMP directives. More... | |
class | OpenMPIRBuilderConfig |
Captures attributes that affect generating LLVM-IR using the OpenMPIRBuilder and related classes. 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< 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 | 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 | 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... | |
struct | 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 | PassManagerPrettyStackEntry |
PassManagerPrettyStackEntry - This is used to print informative information about what pass is running when/if a stack trace is generated. More... | |
class | PassNameParser |
class | PassPlugin |
A loaded pass plugin. More... | |
struct | PassPluginLibraryInfo |
Information about the plugin required to load its passes. More... | |
struct | PassRegistrationListener |
PassRegistrationListener class - This class is meant to be derived from by clients that are interested in which passes get registered and unregistered at runtime (which can be because of the RegisterPass constructors being run as the program starts up, or may be because a shared object just got loaded). More... | |
class | PassRegistry |
PassRegistry - This class manages the registration and intitialization of the pass subsystem as application startup, and assists the PassManager in resolving pass dependencies. More... | |
class | PatchPointOpers |
MI-level patchpoint operands. More... | |
class | 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 |
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... | |
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 or sdiv 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... | |
struct | PostOrderFunctionAttrsPass |
Computes function attributes in post-order over the call graph. More... | |
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 | PPCCCState |
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 | PPCMCExpr |
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 ssa.copy 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 |
class | PreservedAnalyses |
A set of analyses that are preserved following a run of a transformation pass. More... | |
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 | 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... | |
struct | ProfiParams |
Various thresholds and options controlling the behavior of the profile inference algorithm. More... | |
class | ProfOStream |
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 | 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 | R600CodeGenPassBuilder |
class | R600FrameLowering |
class | R600InstPrinter |
class | R600InstrInfo |
class | R600MachineFunctionInfo |
struct | R600RegisterInfo |
class | R600SchedStrategy |
class | R600Subtarget |
class | R600TargetLowering |
class | R600TargetMachine |
class | R600TTIImpl |
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_pwrite_stream |
An abstract base class for streams implementations that also support a pwrite operation. More... | |
class | raw_sha1_ostream |
A raw_ostream that hash the content using the sha1 algorithm. More... | |
class | raw_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 |
ImmutableAnalysis abstraction for fetching the Eviction Advisor. More... | |
class | RegAllocFastPass |
struct | RegAllocFastPassOptions |
class | RegAllocPriorityAdvisor |
Interface to the priority advisor, which is responsible for prioritizing live ranges. More... | |
class | RegAllocPriorityAdvisorAnalysis |
class | RegAllocScore |
Regalloc score. More... | |
class | RegAllocScoring |
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 |
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 | 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 | ReleaseModePriorityAdvisorAnalysis |
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 | 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. More... | |
class | ReservoirSampler |
Randomly selects an item by sampling into a set with an unknown number of elements, which may each be weighted to be more likely choices. More... | |
class | Resolver |
Interface for looking up the initializer for a variable name, used by Init::resolveReferences. More... | |
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 | RISCVMCExpr |
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. More... | |
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 | 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 | 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... | |
class | ScopedDbgInfoFormatSetter |
Used to temporarily set the debug info format of a function, module, or basic block for the duration of this object's lifetime, after which the prior state will be restored. 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 | SDNodeFlags |
These are IR-level optimization flags that may be propagated to SDNodes. More... | |
class | SDNodeIterator |
class | SDUse |
Represents a use of a SDNode. More... | |
class | SDValue |
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation. More... | |
struct | SDVTList |
This represents a list of ValueType's that has been intern'd by a SelectionDAG. More... | |
class | SDVTListNode |
class | SectionEntry |
SectionEntry - represents a section emitted into memory by the dynamic linker. More... | |
class | SectionKind |
SectionKind - This is a simple POD value that classifies the properties of a section. More... | |
class | SectionMemoryManager |
This is a simple memory manager which implements the methods called by the RuntimeDyld class to allocate memory for section-based loading of objects, usually those generated by the MCJIT execution engine. More... | |
struct | SectionName |
struct | SEHHandler |
struct | SEHUnwindMapEntry |
Similar to CxxUnwindMapEntry, but supports SEH filters. More... | |
class | SelectInst |
This class represents the LLVM 'select' instruction. More... | |
class | SelectionDAG |
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representation suitable for instruction selection. More... | |
class | SelectionDAGBuilder |
SelectionDAGBuilder - This is the common target-independent lowering implementation that is parameterized by a TargetLowering object. More... | |
class | SelectionDAGISel |
SelectionDAGISel - This is the common base class used for SelectionDAG-based pattern-matching instruction selectors. More... | |
class | 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 | 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 | 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 | SIInstrInfo |
struct | SIInstrWorklist |
Utility to store machine instructions worklist. More... | |
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... | |
struct | SIModeRegisterDefaults |
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 | 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 | SIOptimizeVGPRLiveRangePass |
class | SIPeepholeSDWAPass |
class | SIPreAllocateWWMRegsPass |
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... | |
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 | 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 |
class | SparcMCExpr |
struct | SparcRegisterInfo |
class | SparcSubtarget |
class | SparcTargetAsmStreamer |
class | SparcTargetELFStreamer |
class | SparcTargetLowering |
class | SparcTargetMachine |
class | SparcTargetStreamer |
class | SparcV8TargetMachine |
Sparc 32-bit target machine. More... | |
class | SparcV9TargetMachine |
Sparc 64-bit target machine. More... | |
class | SparseBitVector |
struct | SparseBitVectorElement |
SparseBitVector is an implementation of a bitvector that is sparse by only storing the elements that have non-zero bits set. More... | |
class | SparseMultiSet |
Fast multiset implementation for objects that can be identified by small unsigned keys. More... | |
class | SparseSet |
SparseSet - Fast set 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 | Spiller |
Spiller interface. More... | |
class | SpillPlacement |
class | SpillPlacementAnalysis |
class | SpillPlacementWrapperLegacy |
class | SPIRVCallLowering |
class | SPIRVConvergenceRegionAnalysis |
class | SPIRVConvergenceRegionAnalysisWrapperPass |
class | SPIRVDuplicatesTracker |
class | SPIRVDuplicatesTracker< SPIRV::SpecialTypeDescriptor > |
class | SPIRVDuplicatesTrackerBase |
struct | SPIRVEmitNonSemanticDI |
struct | SPIRVExtensionsParser |
Command line parser for toggling SPIR-V extensions. More... | |
class | SPIRVFrameLowering |
class | SPIRVGeneralDuplicatesTracker |
class | SPIRVGenRegisterBankInfo |
class | SPIRVGlobalRegistry |
class | SPIRVInlineAsmLowering |
class | SPIRVInstPrinter |
class | SPIRVInstrInfo |
class | SPIRVLegalizerInfo |
class | SPIRVMCAsmInfo |
class | SPIRVMCInstLower |
class | SPIRVMergeRegionExitTargets |
struct | SPIRVModuleAnalysis |
class | SPIRVObjectWriter |
class | SPIRVRegisterBankInfo |
struct | SPIRVRegisterInfo |
class | SPIRVStructurizer |
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 | 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< 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 | 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 |
class | StackColoringPass |
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 | 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 | 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 | StringMapConstIterator |
class | StringMapEntry |
StringMapEntry - This is used to represent one value that is inserted into a StringMap. More... | |
class | StringMapEntryBase |
StringMapEntryBase - Shared base class of StringMapEntry instances. More... | |
class | 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 | StringMapIterator |
class | StringMapIterBase |
class | StringMapKeyIterator |
class | StringMatcher |
Given a list of strings and code to execute when they match, output a simple switch tree to classify the input string. More... | |
class | 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 | 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 |
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 |
Represents dependencies between instructions. 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 | SystemZCCState |
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 | SystemZHLASMInstPrinter |
class | SystemZInstPrinterCommon |
class | SystemZInstrInfo |
class | SystemZMachineFunctionInfo |
class | SystemZMCAsmInfoELF |
class | SystemZMCAsmInfoGOFF |
class | SystemZMCExpr |
class | SystemZMCInstLower |
class | SystemZPostRASchedStrategy |
A MachineSchedStrategy implementation for SystemZ post RA scheduling. More... | |
struct | SystemZRegisterInfo |
class | SystemZSelectionDAGInfo |
class | SystemZSubtarget |
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 |
struct | 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 | TargetIntrinsicInfo |
TargetIntrinsicInfo - Interface to description of machine instruction set. More... | |
class | TargetIRAnalysis |
Analysis pass providing the TargetTransformInfo . More... | |
class | TargetLibraryAnalysis |
Analysis pass providing the TargetLibraryInfo . More... | |
class | TargetLibraryInfo |
Provides information about what library functions are available for the current target. More... | |
class | TargetLibraryInfoImpl |
Implementation of the target library information. More... | |
class | TargetLibraryInfoWrapperPass |
class | TargetLowering |
This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively. More... | |
class | TargetLoweringBase |
This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from the rest of CodeGen. More... | |
class | TargetLoweringObjectFile |
class | TargetLoweringObjectFileCOFF |
class | TargetLoweringObjectFileELF |
class | 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... | |
struct | TargetRegionEntryInfo |
Data structure to contain the information needed to uniquely identify a target entry. 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 | 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 ThunkInserter s 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 | TimeTraceMetadata |
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 |
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... | |
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<> |
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 | 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 | 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... | |
class | ValueAsMetadata |
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... | |
class | ValueProfileCollector |
Utility analysis that determines what values are worth profiling. More... | |
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 | VectorBuilder |
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 |
class | VEMCExpr |
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 | 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 | 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 | 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... | |
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 | VPInterleavedAccessInfo |
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 | VPIRInstruction |
A recipe to wrap on original IR instruction not to be modified during execution, execept for PHIs. 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 | VPlanHCFGBuilder |
Main class to build the VPlan H-CFG for an incoming IR. More... | |
struct | VPlanIngredient |
class | VPlanPrinter |
VPlanPrinter prints a given VPlan to a given output stream. More... | |
class | VPlanSlp |
Class that maps (parts of) an existing VPlan to trees of combined VPInstructions. More... | |
struct | VPlanTransforms |
class | VPLoadSDNode |
This class is used to represent a VP_LOAD node. More... | |
class | VPMatchContext |
class | VPPartialReductionRecipe |
A recipe for forming partial reductions. More... | |
class | VPPredInstPHIRecipe |
VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask. More... | |
class | VPRecipeBase |
VPRecipeBase is a base class modeling a sequence of one or more output IR instructions. More... | |
class | VPRecipeBuilder |
Helper class to create VPRecipies from IR instructions. More... | |
class | VPRecipeWithIRFlags |
Class to record LLVM IR flag for a recipe along with it. 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... | |
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 | VPReverseVectorPointerRecipe |
A recipe to compute the pointers for widened memory accesses of IndexTy in reverse order. More... | |
class | VPScalarCastRecipe |
VPScalarCastRecipe is a recipe to create scalar cast instructions. More... | |
class | VPScalarIVStepsRecipe |
A recipe for handling phi nodes of integer and floating-point inductions, producing their scalar values. More... | |
class | VPScalarPHIRecipe |
Recipe to generate a scalar PHI. 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 | 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 | VPWidenEVLRecipe |
A recipe for widening operations with vector-predication intrinsics with explicit vector length (EVL). 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 handling phis that are widened in the vector loop. 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 | 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 | XtensaMCAsmBackend |
class | XtensaMCAsmInfo |
class | XtensaMCExpr |
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 = std::bool_constant< std::is_fundamental< T >::value||std::is_pointer< T >::value > |
template<typename WrappedIteratorT , typename T1 = std::remove_reference_t<decltype( **std::declval<WrappedIteratorT>())>, typename T2 = std::add_pointer_t<T1>> | |
using | raw_pointer_iterator = pointer_iterator< pointee_iterator< WrappedIteratorT, T1 >, T2 > |
template<class Iterator > | |
using | EnableIfConvertibleToInputIterator = std::enable_if_t< std::is_convertible< typename std::iterator_traits< Iterator >::iterator_category, std::input_iterator_tag >::value > |
template<class T > | |
using | SmallVectorSizeType = std::conditional_t< sizeof(T)< 4 &&sizeof(void *) >=8, uint64_t, uint32_t > |
template<typename RangeType > | |
using | ValueTypeFromRangeType = std::remove_const_t< std::remove_reference_t< decltype(*std::begin(std::declval< RangeType & >()))> > |
using | stable_hash = uint64_t |
An opaque object representing a stable hash code. | |
using | Statistic = NoopStatistic |
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'. | |
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<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 = filter_iterator_impl< WrappedIteratorT, PredicateT, typename detail::fwd_or_bidi_tag< WrappedIteratorT >::type > |
Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category. | |
template<typename T > | |
using | remove_cvref_t = typename llvm::remove_cvref< T >::type |
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 = DenseMap< RetainedKnowledgeKey, Assume2KnowledgeMap > |
using | CGSCCAnalysisManager = AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & > |
The CGSCC analysis manager. | |
using | CGSCCPassManager = PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & > |
The CGSCC pass manager. | |
using | CGSCCAnalysisManagerModuleProxy = InnerAnalysisManagerProxy< CGSCCAnalysisManager, Module > |
A proxy from a CGSCCAnalysisManager to a Module . | |
using | ModuleAnalysisManagerCGSCCProxy = OuterAnalysisManagerProxy< ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph & > |
A proxy from a ModuleAnalysisManager to an SCC . | |
using | CGSCCAnalysisManagerFunctionProxy = OuterAnalysisManagerProxy< CGSCCAnalysisManager, Function > |
A proxy from a CGSCCAnalysisManager to a Function . | |
using | CtxProfFlatProfile = std::map< GlobalValue::GUID, SmallVector< uint64_t, 1 > > |
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 | InlineCostFeatures = std::array< int, static_cast< size_t >(InlineCostFeatureIndex::NumberOfFeatures)> |
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, Function > | LoopAnalysisManagerFunctionProxy |
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 = memoryaccess_def_iterator_base< const MemoryAccess > |
using | MemoryAccessPair = std::pair< MemoryAccess *, MemoryLocation > |
using | ConstMemoryAccessPair = std::pair< const MemoryAccess *, MemoryLocation > |
using | ValueToValueMapTy = ValueMap< const Value *, WeakTrackingVH > |
using | PhiToDefMap = SmallDenseMap< MemoryPhi *, MemoryAccess * > |
using | CFGUpdate = cfg::Update< BasicBlock * > |
using | 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 MCSymbol * | ExceptionSymbolProvider(AsmPrinter *Asm, const MachineBasicBlock *MBB) |
using | CreateCmpXchgInstFun = function_ref< void(IRBuilderBase &, Value *, Value *, Value *, Align, AtomicOrdering, SyncScope::ID, Value *&, Value *&, Instruction *)> |
Parameters (see the expansion example below): (the builder, addr, loaded, new_val, ordering, /* OUT / success, / OUT */ new_loaded, MetadataSrc) | |
using | MachineBasicBlockComparator = function_ref< bool(const MachineBasicBlock &, const MachineBasicBlock &)> |
typedef bool | CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
CCAssignFn - This function assigns a location for Val, updating State to reflect the change. | |
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 = SmallVector< std::function< void(MachineInstrBuilder &)>, 4 > |
using | LegalityPredicate = std::function< bool(const LegalityQuery &)> |
using | LegalizeMutation = std::function< std::pair< unsigned, LLT >(const LegalityQuery &)> |
using | SmallInstListTy = GISelWorkList< 4 > |
using | ParamLocs = SmallVector< IndexPair, 4 > |
using | ParamLocsVecTy = SmallVector< ParamLocs, 8 > |
using | InsnRange = std::pair< const MachineInstr *, const MachineInstr * > |
InsnRange - This is used to track range of instructions with identical lexical scope. | |
using | MachineDomTreeNode = DomTreeNodeBase< MachineBasicBlock > |
using | LiveVirtRegBitSet = SparseBitVector< 128 > |
using | MachineFunctionAnalysisManager = AnalysisManager< MachineFunction > |
using | MachineConvergenceVerifier = GenericConvergenceVerifier< MachineSSAContext > |
using | MachineCycleInfo = GenericCycleInfo< MachineSSAContext > |
using | MachineCycle = MachineCycleInfo::CycleT |
using | MachineFunctionAnalysisManagerModuleProxy = InnerAnalysisManagerProxy< MachineFunctionAnalysisManager, Module > |
using | MachineFunctionAnalysisManagerFunctionProxy = InnerAnalysisManagerProxy< MachineFunctionAnalysisManager, Function > |
using | ModuleAnalysisManagerMachineFunctionProxy = OuterAnalysisManagerProxy< ModuleAnalysisManager, MachineFunction > |
Provide the ModuleAnalysisManager to Function proxy. | |
using | MachineFunctionPassManager = PassManager< MachineFunction > |
Convenience typedef for a pass manager over functions. | |
using | RegClassOrRegBank = PointerUnion< const TargetRegisterClass *, const RegisterBank * > |
Convenient type to represent either a register class or a register bank. | |
using | MachineSSAContext = GenericSSAContext< MachineFunction > |
using | MachineUniformityInfo = GenericUniformityInfo< MachineSSAContext > |
using | MacroFusionPredTy = bool(*)(const TargetInstrInfo &TII, const TargetSubtargetInfo &STI, const MachineInstr *FirstMI, const MachineInstr &SecondMI) |
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 | RegUnit2SUnitsMap = SparseMultiSet< PhysRegSUOper, identity< unsigned >, uint16_t > |
Use a SparseMultiSet to track physical registers. | |
using | VReg2SUnitMultiMap = SparseMultiSet< VReg2SUnit, VirtReg2IndexFunctor > |
Track local uses of virtual registers. | |
using | VReg2SUnitOperIdxMultiMap = SparseMultiSet< VReg2SUnitOperIdx, VirtReg2IndexFunctor > |
using | ValueType = PointerUnion< const Value *, const PseudoSourceValue * > |
using | UnderlyingObjectsVector = SmallVector< UnderlyingObject, 4 > |
using | LargestSDNode = AlignedCharArrayUnion< AtomicSDNode, TargetIndexSDNode, BlockAddressSDNode, GlobalAddressSDNode, PseudoProbeSDNode > |
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 | 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 = PredIterator< const BasicBlock, Value::const_user_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 | DiagnosticHandlerFunction = std::function< void(const DiagnosticInfo &)> |
using | DbgInstPtr = PointerUnion< Instruction *, DbgRecord * > |
using | DomTreeNode = DomTreeNodeBase< BasicBlock > |
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 = InstIterator< SymbolTableList< BasicBlock >, Function::iterator, BasicBlock::iterator, Instruction > |
using | const_inst_iterator = InstIterator< const SymbolTableList< BasicBlock >, Function::const_iterator, BasicBlock::const_iterator, const Instruction > |
using | inst_range = iterator_range< inst_iterator > |
using | const_inst_range = iterator_range< const_inst_iterator > |
using | ConstOperandBundleDef = OperandBundleDefT< const Value * > |
using | GlobalValueSummaryList = std::vector< std::unique_ptr< GlobalValueSummary > > |
using | GlobalValueSummaryMapTy = std::map< GlobalValue::GUID, GlobalValueSummaryInfo > |
Map from global value GUID to corresponding summary structures. | |
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 = std::map< std::string, GVSummaryMapTy, std::less<> > |
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 = 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). | |
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 = InnerAnalysisManagerProxy< FunctionAnalysisManager, Module > |
Provide the FunctionAnalysisManager to Module proxy. | |
using | ModuleAnalysisManagerFunctionProxy = OuterAnalysisManagerProxy< ModuleAnalysisManager, Function > |
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< MCAsmMacroParameter > | MCAsmMacroParameters |
using | SectionSymbolsTy = std::vector< SymbolInfoTy > |
using | SectionAddrMap = DenseMap< const MCSection *, uint64_t > |
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 * |
using | VarID = std::tuple< const DIScope *, const DIScope *, const DILocalVariable * > |
A unique key that represents a debug variable. | |
using | RawInstrProfReader32 = RawInstrProfReader< uint32_t > |
using | RawInstrProfReader64 = RawInstrProfReader< uint64_t > |
using | OnDiskHashTableImplV3 = OnDiskIterableChainedHashTable< InstrProfLookupTrait > |
using | MemProfRecordHashTable = OnDiskIterableChainedHashTable< memprof::RecordLookupTrait > |
using | MemProfFrameHashTable = OnDiskIterableChainedHashTable< memprof::FrameLookupTrait > |
using | MemProfCallStackHashTable = OnDiskIterableChainedHashTable< memprof::CallStackLookupTrait > |
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 = 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. | |
using | FileCacheFunction = std::function< Expected< AddStreamFn >(unsigned Task, StringRef Key, const Twine &ModuleName)> |
This is a callable that manages file caching operations. | |
using | AddBufferFn = std::function< void(unsigned Task, const Twine &ModuleName, std::unique_ptr< MemoryBuffer > MB)> |
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 = 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. | |
template<typename T , typename U , typename = enableif_int<T, U>> | |
using | common_uint = std::common_type_t< std::make_unsigned_t< T >, std::make_unsigned_t< U > > |
template<typename T , typename U , typename = enableif_int<T, U>> | |
using | common_sint = std::common_type_t< std::make_signed_t< T >, std::make_signed_t< U > > |
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< CommonHandleTraits > | ScopedCommonHandle |
typedef ScopedHandle< FileHandleTraits > | ScopedFileHandle |
typedef ScopedHandle< CryptContextTraits > | ScopedCryptContext |
typedef ScopedHandle< RegTraits > | ScopedRegHandle |
typedef ScopedHandle< FindHandleTraits > | ScopedFindHandle |
typedef ScopedHandle< JobHandleTraits > | ScopedJobHandle |
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 | AAAlignmentStateType = IncIntegerState< uint64_t, Value::MaximumAlignment, 1 > |
using | PotentialConstantIntValuesState = PotentialValuesState< APInt > |
using | PotentialLLVMValuesState = PotentialValuesState< std::pair< AA::ValueAndContext, AA::ValueScope > > |
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 = std::unordered_map< std::pair< uint64_t, uint64_t >, float, pair_hash< uint64_t, uint64_t > > |
using | FuncProbeFactorMap = StringMap< ProbeFactorMap > |
typedef PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > | LoopPassManager |
The Loop pass manager. | |
template<typename AnalysisT > | |
using | RequireAnalysisLoopPass = RequireAnalysisPass< AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & > |
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 | BFIDOTGTraitsBase = BFIDOTGraphTraitsBase< BlockFrequencyInfo, BranchProbabilityInfo > |
using | ParamSet = SmallVector< DbgCallSiteParam, 4 > |
Collection used for storing debug call site parameters. | |
using | MBFIDOTGraphTraitsBase = BFIDOTGraphTraitsBase< MachineBlockFrequencyInfo, MachineBranchProbabilityInfo > |
using | SmallVirtRegSet = SmallSet< Register, 16 > |
typedef DWARFExpression::Operation | Op |
typedef Op::Description | Desc |
typedef std::vector< GenericValue > | ValuePlaneTy |
typedef StringMap< SymbolTableEntry > | RTDyldSymbolTable |
using | binop_eval_t = Expected< APInt >(*)(const APInt &, const APInt &, bool &) |
Type of functions evaluating a given binary operation. | |
using | BBInfoVector = SmallVectorImpl< BasicBlockInfo > |
typedef bool | RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, 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 | SPIRVType = const MachineInstr |
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 = DenseMap< BasicBlock *, SmallVector< std::pair< VNType, Instruction * >, 2 > > |
using | InstructionVFPair = std::pair< Instruction *, ElementCount > |
using | VPlanPtr = std::unique_ptr< VPlan > |
using | VPDomTreeNode = DomTreeNodeBase< VPBlockBase > |
typedef DenseMap< Value *, VPValue * > | Value2VPValueTy |
typedef DenseMap< VPValue *, Value * > | VPValue2ValueTy |
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 T * | any_cast (const Any *Value) |
template<class T > | |
T * | any_cast (Any *Value) |
hash_code | hash_value (const FixedPointSemantics &Val) |
raw_ostream & | operator<< (raw_ostream &OS, const APFixedPoint &FX) |
hash_code | hash_value (const APFixedPoint &Val) |
hash_code | hash_value (const APFloat &Arg) |
See friend declarations above. | |
APFloat | scalbn (APFloat X, int Exp, APFloat::roundingMode RM) |
APFloat | frexp (const APFloat &X, int &Exp, APFloat::roundingMode RM) |
Equivalent of C standard library function. | |
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 2019 minimumNumber semantics. | |
LLVM_READONLY APFloat | maxnum (const APFloat &A, const APFloat &B) |
Implements IEEE-754 2019 maximumNumber 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_ostream & | operator<< (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_ostream & | operator<< (raw_ostream &OS, const APInt &I) |
APInt | operator+ (APInt a, const APInt &b) |
APInt | operator+ (const APInt &a, APInt &&b) |
APInt | operator+ (APInt a, uint64_t RHS) |
APInt | operator+ (uint64_t LHS, APInt b) |
APInt | operator- (APInt a, const APInt &b) |
APInt | operator- (const APInt &a, APInt &&b) |
APInt | operator- (APInt a, uint64_t RHS) |
APInt | operator- (uint64_t LHS, APInt b) |
APInt | operator* (APInt a, uint64_t RHS) |
APInt | operator* (uint64_t LHS, APInt b) |
hash_code | hash_value (const APInt &Arg) |
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. | |
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_ostream & | operator<< (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 | 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>>> | |
int | popcount (T Value) noexcept |
Count the number of set bits in a value. | |
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< T > | bf_begin (const T &G) |
template<class T > | |
bf_iterator< T > | bf_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< T > | df_begin (const T &G) |
template<class T > | |
df_iterator< T > | df_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< T > | idf_begin (const T &G) |
template<class T > | |
idf_iterator< T > | idf_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_ostream & | operator<< (raw_ostream &OS, const DynamicAPInt &X) |
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 DynamicAPInt & | operator+= (DynamicAPInt &A, int64_t B) |
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & | operator-= (DynamicAPInt &A, int64_t B) |
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & | operator*= (DynamicAPInt &A, int64_t B) |
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & | operator/= (DynamicAPInt &A, int64_t B) |
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & | operator%= (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_ostream & | operator<< (raw_ostream &OS, RoundingMode RM) |
raw_ostream & | operator<< (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) | |
FPClassTest | fneg (FPClassTest Mask) |
Return the test mask which returns true if the value's sign bit is flipped. | |
FPClassTest | inverse_fabs (FPClassTest Mask) |
Return the test mask which returns true after fabs is applied to the value. | |
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. | |
raw_ostream & | operator<< (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_code > | hash_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 ... 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< T > | makeIntrusiveRefCnt (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< T > | make_range (T x, T y) |
Convenience function for iterating over sub-ranges. | |
template<typename T > | |
iterator_range< T > | make_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< T > | po_begin (const T &G) |
template<class T > | |
po_iterator< T > | po_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< T > | ipo_begin (const T &G) |
template<class T > | |
ipo_iterator< T > | ipo_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< T > | scc_begin (const T &G) |
Construct the begin iterator for a deduced graph type T. | |
template<class T > | |
scc_iterator< T > | scc_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 | |
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 >, Size > | to_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, Size > | to_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) |
void | EnableStatistics (bool DoPrintOnExit=true) |
Enable the collection and printing of statistics. | |
bool | AreStatisticsEnabled () |
Check if statistics are enabled. | |
std::unique_ptr< raw_ostream > | CreateInfoOutputFile () |
Return a stream to print our output on. | |
void | PrintStatistics () |
Print statistics to the file returned by CreateInfoOutputFile(). | |
void | PrintStatistics (raw_ostream &OS) |
Print statistics to the given output stream. | |
void | PrintStatisticsJSON (raw_ostream &OS) |
Print statistics in JSON format. | |
std::vector< std::pair< StringRef, uint64_t > > | GetStatistics () |
Get the statistics. | |
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 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 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 > | |
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 > | |
T * | 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. | |
template<typename T , typename R , typename Predicate > | |
std::pair< T *, bool > | 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. | |
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 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 > | |
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 T * | to_address (T *P) |
template<typename T , typename Function > | |
auto | transformOptional (const std::optional< T > &O, const Function &F) -> std::optional< decltype(F(*O))> |
template<typename T , typename Function > | |
auto | transformOptional (std::optional< T > &&O, const Function &F) -> std::optional< decltype(F(*std::move(O)))> |
template<typename Enum > | |
constexpr std::underlying_type_t< Enum > | to_underlying (Enum E) |
Returns underlying integer value of an enum. | |
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) |
bool | getAsUnsignedInteger (StringRef Str, unsigned Radix, unsigned long long &Result) |
Helper functions for StringRef::getAsInteger. | |
bool | getAsSignedInteger (StringRef Str, unsigned Radix, long long &Result) |
bool | consumeUnsignedInteger (StringRef &Str, unsigned Radix, unsigned long long &Result) |
bool | consumeSignedInteger (StringRef &Str, unsigned Radix, long long &Result) |
hash_code | hash_value (StringRef S) |
Compute a hash_code for a StringRef. | |
raw_ostream & | operator<< (raw_ostream &OS, AliasResult AR) |
<< operator for AliasResult. | |
bool | isNoAliasCall (const Value *V) |
Return true if this pointer is returned by a noalias function. | |
bool | isIdentifiedObject (const Value *V) |
Return true if this pointer refers to a distinct and identifiable object. | |
bool | isIdentifiedFunctionLocal (const Value *V) |
Return true if V is umabigously identified at the function-level. | |
bool | isBaseOfObject (const Value *V) |
Return true if we know V to the base address of the corresponding memory object. | |
bool | isEscapeSource (const Value *V) |
Returns true if the pointer is one which would have been considered an escape by isNonEscapingLocalObject. | |
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. | |
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. | |
ImmutablePass * | 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. | |
raw_ostream & | operator<< (raw_ostream &OS, const AliasSet &AS) |
raw_ostream & | operator<< (raw_ostream &OS, const AliasSetTracker &AST) |
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) |
void | fillMapFromAssume (AssumeInst &Assume, RetainedKnowledgeMap &Result) |
Insert into the map all the informations contained in the operand bundles of the llvm.assume. | |
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. | |
bool | isAssumeWithEmptyBundle (const AssumeInst &Assume) |
Return true iff the operand bundles of the provided llvm.assume doesn't contain any valuable information. | |
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. | |
RetainedKnowledge | getKnowledgeForValue (const Value *V, ArrayRef< Attribute::AttrKind > AttrKinds, AssumptionCache *AC=nullptr, 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. | |
RetainedKnowledge | getKnowledgeValidInContext (const Value *V, ArrayRef< Attribute::AttrKind > AttrKinds, const Instruction *CtxI, const DominatorTree *DT=nullptr, AssumptionCache *AC=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. | |
RetainedKnowledge | getKnowledgeFromBundle (AssumeInst &Assume, const CallBase::BundleOpInfo &BOI) |
This extracts the Knowledge from an element of an operand bundle. | |
FunctionPass * | createBasicAAWrapperPass () |
Printable | printBlockFreq (const BlockFrequencyInfo &BFI, BlockFrequency Freq) |
Print the block frequency Freq relative to the current functions entry frequency. | |
Printable | printBlockFreq (const BlockFrequencyInfo &BFI, const BasicBlock &BB) |
Convenience function equivalent to calling printBlockFreq(BFI, BFI.getBlocakFreq(&BB)) . | |
uint32_t | getWeightFromBranchProb (const BranchProbability Prob) |
void | initializeDummyCGSCCPassPass (PassRegistry &) |
ModulePass * | createCallGraphViewerPass () |
ModulePass * | createCallGraphDOTPrinterPass () |
unsigned | getDefaultMaxUsesToExploreForCaptureTracking () |
getDefaultMaxUsesToExploreForCaptureTracking - Return default value of the maximal number of uses to explore before giving up. | |
bool | PointerMayBeCaptured (const Value *V, bool ReturnCaptures, bool StoreCaptures, unsigned MaxUsesToExplore=0) |
PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist). | |
bool | PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, bool StoreCaptures, 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). | |
Instruction * | FindEarliestCapture (const Value *V, Function &F, bool ReturnCaptures, bool StoreCaptures, const DominatorTree &DT, unsigned MaxUsesToExplore=0) |
UseCaptureKind | DetermineUseCaptureKind (const Use &U, llvm::function_ref< bool(Value *, const DataLayout &)> IsDereferenceableOrNull) |
Determine what kind of capture behaviour U may exhibit. | |
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. | |
bool | isNonEscapingLocalObject (const Value *V, SmallDenseMap< const Value *, bool, 8 > *IsCapturedCache=nullptr) |
Returns true if the pointer is to a function-local object that never escapes from the function. | |
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. | |
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. | |
bool | isCriticalEdge (const Instruction *TI, unsigned SuccNum, bool AllowIdenticalEdges=false) |
Return true if the specified edge is a critical edge. | |
bool | isCriticalEdge (const Instruction *TI, const BasicBlock *Succ, bool AllowIdenticalEdges=false) |
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. | |
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. | |
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. | |
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. | |
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. | |
LazyCallGraph::SCC & | 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. | |
LazyCallGraph::SCC & | 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. | |
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. | |
Constant * | getPredForICmpCode (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. | |
Constant * | getPredForFCmpCode (unsigned Code, Type *OpTy, CmpInst::Predicate &Pred) |
This is the complement of getFCmpCode. | |
std::optional< DecomposedBitTest > | decomposeBitTestICmp (Value *LHS, Value *RHS, CmpInst::Predicate Pred, bool LookThroughTrunc=true, bool AllowNonZeroC=false) |
Decompose an icmp into the form ((X & Mask) pred C) if possible. | |
std::optional< DecomposedBitTest > | decomposeBitTest (Value *Cond, bool LookThroughTrunc=true, bool AllowNonZeroC=false) |
Decompose an icmp into the form ((X & Mask) pred C) if possible. | |
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. | |
Constant * | ConstantFoldInstruction (Instruction *I, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr) |
ConstantFoldInstruction - Try to constant fold the specified instruction. | |
Constant * | ConstantFoldConstant (const Constant *C, const DataLayout &DL, const TargetLibraryInfo *TLI=nullptr) |
ConstantFoldConstant - Fold the constant using the specified DataLayout. | |
Constant * | ConstantFoldInstOperands (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. | |
Constant * | 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. | |
Constant * | ConstantFoldUnaryOpOperand (unsigned Opcode, Constant *Op, const DataLayout &DL) |
Attempt to constant fold a unary operation with the specified operand. | |
Constant * | ConstantFoldBinaryOpOperands (unsigned Opcode, Constant *LHS, Constant *RHS, const DataLayout &DL) |
Attempt to constant fold a binary operation with the specified operands. | |
Constant * | 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. | |
Constant * | 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. | |
Constant * | ConstantFoldSelectInstruction (Constant *Cond, Constant *V1, Constant *V2) |
Attempt to constant fold a select instruction with the specified operands. | |
Constant * | ConstantFoldCastOperand (unsigned Opcode, Constant *C, Type *DestTy, const DataLayout &DL) |
Attempt to constant fold a cast with the specified operand. | |
Constant * | 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. | |
Constant * | ConstantFoldInsertValueInstruction (Constant *Agg, Constant *Val, ArrayRef< unsigned > Idxs) |
ConstantFoldInsertValueInstruction - Attempt to constant fold an insertvalue instruction with the specified operands and indices. | |
Constant * | ConstantFoldExtractValueInstruction (Constant *Agg, ArrayRef< unsigned > Idxs) |
Attempt to constant fold an extractvalue instruction with the specified operands and indices. | |
Constant * | ConstantFoldInsertElementInstruction (Constant *Val, Constant *Elt, Constant *Idx) |
Attempt to constant fold an insertelement instruction with the specified operands and indices. | |
Constant * | ConstantFoldExtractElementInstruction (Constant *Val, Constant *Idx) |
Attempt to constant fold an extractelement instruction with the specified operands and indices. | |
Constant * | ConstantFoldShuffleVectorInstruction (Constant *V1, Constant *V2, ArrayRef< int > Mask) |
Attempt to constant fold a shufflevector instruction with the specified operands and mask. | |
Constant * | ConstantFoldLoadFromConst (Constant *C, Type *Ty, const APInt &Offset, const DataLayout &DL) |
Extract value of C at the given Offset reinterpreted as Ty. | |
Constant * | ConstantFoldLoadFromConst (Constant *C, Type *Ty, const DataLayout &DL) |
Extract value of C reinterpreted as Ty. | |
Constant * | ConstantFoldLoadFromConstPtr (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. | |
Constant * | ConstantFoldLoadFromConstPtr (Constant *C, Type *Ty, const DataLayout &DL) |
Return the value that a load from C would produce if it is constant and determinable. | |
Constant * | 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. | |
bool | canConstantFoldCallTo (const CallBase *Call, const Function *F) |
canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function. | |
Constant * | 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. | |
Constant * | ConstantFoldBinaryIntrinsic (Intrinsic::ID ID, Constant *LHS, Constant *RHS, Type *Ty, Instruction *FMFSource) |
Constant * | ConstantFoldLoadThroughBitcast (Constant *C, Type *DestTy, const DataLayout &DL) |
ConstantFoldLoadThroughBitcast - try to cast constant to destination type returning null if unsuccessful. | |
bool | isMathLibCallNoop (const CallBase *Call, const TargetLibraryInfo *TLI) |
Check whether the given call has no side-effects. | |
Constant * | ReadByteArrayFromGlobal (const GlobalVariable *GV, uint64_t Offset) |
raw_ostream & | operator<< (raw_ostream &OS, const DDGNode &N) |
raw_ostream & | operator<< (raw_ostream &OS, const DDGNode::NodeKind K) |
raw_ostream & | operator<< (raw_ostream &OS, const DDGEdge &E) |
raw_ostream & | operator<< (raw_ostream &OS, const DDGEdge::EdgeKind K) |
raw_ostream & | operator<< (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 | 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. | |
FunctionPass * | createDependenceAnalysisWrapperPass () |
createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass. | |
FunctionPass * | createDomPrinterWrapperPassPass () |
FunctionPass * | createDomOnlyPrinterWrapperPassPass () |
FunctionPass * | createDomViewerWrapperPassPass () |
FunctionPass * | createDomOnlyViewerWrapperPassPass () |
FunctionPass * | createPostDomPrinterWrapperPassPass () |
FunctionPass * | createPostDomOnlyPrinterWrapperPassPass () |
FunctionPass * | createPostDomViewerWrapperPassPass () |
FunctionPass * | createPostDomOnlyViewerWrapperPassPass () |
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) |
ModulePass * | createDXILResourceTypeWrapperPassPass () |
ModulePass * | createDXILResourceBindingWrapperPassPass () |
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. | |
ModulePass * | createGlobalsAAWrapperPass () |
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) |
Value * | extractWidenableCondition (const User *U) |
uint64_t | getNumOfCalls (Function &callerFunction, Function &calledFunction) |
uint64_t | getMaxFreq (const Function &F, const BlockFrequencyInfo *BFI) |
std::string | getHeatColor (uint64_t freq, uint64_t maxFreq) |
std::string | getHeatColor (double percent) |
std::vector< CallBase * > | findIndirectCalls (Function &F) |
std::vector< Instruction * > | findVTableAddrs (Function &F) |
std::string | AnnotateInlinePassName (InlineContext IC) |
std::unique_ptr< InlineAdvisor > | getReleaseModeAdvisor (Module &M, ModuleAnalysisManager &MAM, std::function< bool(CallBase &)> GetDefaultAdvice) |
std::unique_ptr< InlineAdvisor > | getDevelopmentModeAdvisor (Module &M, ModuleAnalysisManager &MAM, std::function< bool(CallBase &)> GetDefaultAdvice) |
std::optional< InlineCost > | 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. | |
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. | |
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). | |
void | addLocationToRemarks (OptimizationRemark &Remark, DebugLoc DLoc) |
Add location info to ORE message. | |
void | setInlineRemark (CallBase &CB, StringRef Message) |
Set the inline-remark attribute. | |
std::string | inlineCostStr (const InlineCost &IC) |
Utility for extracting the inline cost message to a string. | |
std::optional< int > | getStringFnAttrAsInt (CallBase &CB, StringRef AttrKind) |
InlineParams | getInlineParams () |
Generate the parameters to tune the inline cost analysis based only on the commandline options. | |
InlineParams | getInlineParams (int Threshold) |
Generate the parameters to tune the inline cost analysis based on command line options. | |
InlineParams | getInlineParams (unsigned OptLevel, unsigned SizeOptLevel) |
Generate the parameters to tune the inline cost analysis based on command line options. | |
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. | |
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) |
Get an InlineCost object representing the cost of inlining this callsite. | |
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) |
Get an InlineCost with the callee explicitly specified. | |
std::optional< InlineResult > | 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. | |
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. | |
std::optional< InlineCostFeatures > | 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. | |
InlineResult | isInlineViable (Function &Callee) |
Minimal filter to detect invalid constructs for inlining. | |
constexpr bool | isHeuristicInlineCostFeature (InlineCostFeatureIndex Feature) |
constexpr FeatureIndex | inlineCostFeatureToMlFeature (InlineCostFeatureIndex Feature) |
std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > | getDefaultInlineOrder (FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M) |
std::unique_ptr< InlineOrder< std::pair< CallBase *, int > > > | getInlineOrder (FunctionAnalysisManager &FAM, const InlineParams &Params, ModuleAnalysisManager &MAM, Module &M) |
Value * | simplifyAddInst (Value *LHS, Value *RHS, bool IsNSW, bool IsNUW, const SimplifyQuery &Q) |
Given operands for an Add, fold the result or return null. | |
Value * | simplifySubInst (Value *LHS, Value *RHS, bool IsNSW, bool IsNUW, const SimplifyQuery &Q) |
Given operands for a Sub, fold the result or return null. | |
Value * | simplifyMulInst (Value *LHS, Value *RHS, bool IsNSW, bool IsNUW, const SimplifyQuery &Q) |
Given operands for a Mul, fold the result or return null. | |
Value * | simplifySDivInst (Value *LHS, Value *RHS, bool IsExact, const SimplifyQuery &Q) |
Given operands for an SDiv, fold the result or return null. | |
Value * | simplifyUDivInst (Value *LHS, Value *RHS, bool IsExact, const SimplifyQuery &Q) |
Given operands for a UDiv, fold the result or return null. | |
Value * | simplifySRemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for an SRem, fold the result or return null. | |
Value * | simplifyURemInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for a URem, fold the result or return null. | |
Value * | simplifyFNegInst (Value *Op, FastMathFlags FMF, const SimplifyQuery &Q) |
Given operand for an FNeg, fold the result or return null. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | simplifyShlInst (Value *Op0, Value *Op1, bool IsNSW, bool IsNUW, const SimplifyQuery &Q) |
Given operands for a Shl, fold the result or return null. | |
Value * | simplifyLShrInst (Value *Op0, Value *Op1, bool IsExact, const SimplifyQuery &Q) |
Given operands for a LShr, fold the result or return null. | |
Value * | simplifyAShrInst (Value *Op0, Value *Op1, bool IsExact, const SimplifyQuery &Q) |
Given operands for a AShr, fold the result or return nulll. | |
Value * | simplifyAndInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for an And, fold the result or return null. | |
Value * | simplifyOrInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for an Or, fold the result or return null. | |
Value * | simplifyXorInst (Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for an Xor, fold the result or return null. | |
Value * | simplifyICmpInst (CmpPredicate Pred, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for an ICmpInst, fold the result or return null. | |
Value * | simplifyFCmpInst (CmpPredicate Predicate, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
Given operands for an FCmpInst, fold the result or return null. | |
Value * | simplifySelectInst (Value *Cond, Value *TrueVal, Value *FalseVal, const SimplifyQuery &Q) |
Given operands for a SelectInst, fold the result or return null. | |
Value * | simplifyGEPInst (Type *SrcTy, Value *Ptr, ArrayRef< Value * > Indices, GEPNoWrapFlags NW, const SimplifyQuery &Q) |
Given operands for a GetElementPtrInst, fold the result or return null. | |
Value * | simplifyInsertValueInst (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q) |
Given operands for an InsertValueInst, fold the result or return null. | |
Value * | simplifyInsertElementInst (Value *Vec, Value *Elt, Value *Idx, const SimplifyQuery &Q) |
Given operands for an InsertElement, fold the result or return null. | |
Value * | simplifyExtractValueInst (Value *Agg, ArrayRef< unsigned > Idxs, const SimplifyQuery &Q) |
Given operands for an ExtractValueInst, fold the result or return null. | |
Value * | simplifyExtractElementInst (Value *Vec, Value *Idx, const SimplifyQuery &Q) |
Given operands for an ExtractElementInst, fold the result or return null. | |
Value * | simplifyCastInst (unsigned CastOpc, Value *Op, Type *Ty, const SimplifyQuery &Q) |
Given operands for a CastInst, fold the result or return null. | |
Value * | 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. | |
Value * | simplifyShuffleVectorInst (Value *Op0, Value *Op1, ArrayRef< int > Mask, Type *RetTy, const SimplifyQuery &Q) |
Given operands for a ShuffleVectorInst, fold the result or return null. | |
Value * | simplifyCmpInst (CmpPredicate Predicate, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for a CmpInst, fold the result or return null. | |
Value * | simplifyUnOp (unsigned Opcode, Value *Op, const SimplifyQuery &Q) |
Given operand for a UnaryOperator, fold the result or return null. | |
Value * | simplifyUnOp (unsigned Opcode, Value *Op, FastMathFlags FMF, const SimplifyQuery &Q) |
Given operand for a UnaryOperator, fold the result or return null. | |
Value * | simplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, const SimplifyQuery &Q) |
Given operands for a BinaryOperator, fold the result or return null. | |
Value * | simplifyBinOp (unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q) |
Given operands for a BinaryOperator, fold the result or return null. | |
Value * | simplifyCall (CallBase *Call, Value *Callee, ArrayRef< Value * > Args, const SimplifyQuery &Q) |
Given a callsite, callee, and arguments, fold the result or return null. | |
Value * | simplifyConstrainedFPCall (CallBase *Call, const SimplifyQuery &Q) |
Given a constrained FP intrinsic call, tries to compute its simplified version. | |
Value * | simplifyFreezeInst (Value *Op, const SimplifyQuery &Q) |
Given an operand for a Freeze, see if we can fold the result. | |
Value * | simplifyLoadInst (LoadInst *LI, Value *PtrOp, const SimplifyQuery &Q) |
Given a load instruction and its pointer operand, fold the result or return null. | |
Value * | simplifyInstruction (Instruction *I, const SimplifyQuery &Q) |
See if we can compute a simplified version of this instruction. | |
Value * | simplifyInstructionWithOperands (Instruction *I, ArrayRef< Value * > NewOps, const SimplifyQuery &Q) |
Like simplifyInstruction but the operands of I are replaced with NewOps . | |
Value * | 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. | |
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. | |
const SimplifyQuery | getBestSimplifyQuery (Pass &, Function &) |
template<class T , class... TArgs> | |
const SimplifyQuery | getBestSimplifyQuery (AnalysisManager< T, TArgs... > &, Function &) |
const SimplifyQuery | getBestSimplifyQuery (LoopStandardAnalysisResults &, const DataLayout &) |
Pass * | createIVUsersPass () |
void | initializeLazyBFIPassPass (PassRegistry &Registry) |
Helper for client passes to initialize dependent passes for LBFI. | |
void | initializeLazyBPIPassPass (PassRegistry &Registry) |
Helper for client passes to initialize dependent passes for LBPI. | |
void | lintModule (const Module &M) |
Lint a module. | |
void | lintFunction (const Function &F) |
lintFunction - Check a function for errors, printing messages on stderr. | |
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. | |
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. | |
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. | |
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. | |
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. | |
bool | isDereferenceableReadOnlyLoop (Loop *L, ScalarEvolution *SE, DominatorTree *DT, AssumptionCache *AC, SmallVectorImpl< const SCEVPredicate * > *Predicates=nullptr) |
Return true if the loop L cannot fault on any iteration and only contains read-only memory accesses. | |
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. | |
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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
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. | |
bool | canReplacePointersInUseIfEqual (const Use &U, const Value *To, const DataLayout &DL) |
const SCEV * | 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. | |
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. | |
std::optional< int > | 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. | |
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. | |
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. | |
PreservedAnalyses | getLoopPassPreservedAnalyses () |
Returns the minimum set of Analyses that all loop passes must preserve. | |
raw_ostream & | operator<< (raw_ostream &OS, const IndexedReference &R) |
raw_ostream & | operator<< (raw_ostream &OS, const CacheCost &CC) |
void | printLoop (Loop &L, raw_ostream &OS, const std::string &Banner="") |
Function to print a loop's contents as LLVM's text IR assembly. | |
MDNode * | findOptionMDForLoopID (MDNode *LoopID, StringRef Name) |
Find and return the loop attribute node for the attribute Name in LoopID . | |
MDNode * | findOptionMDForLoop (const Loop *TheLoop, StringRef Name) |
Find string metadata for a loop. | |
std::optional< bool > | getOptionalBoolLoopAttribute (const Loop *TheLoop, StringRef Name) |
bool | getBooleanLoopAttribute (const Loop *TheLoop, StringRef Name) |
Returns true if Name is applied to TheLoop and enabled. | |
std::optional< int > | getOptionalIntLoopAttribute (const Loop *TheLoop, StringRef Name) |
Find named metadata for a loop with an integer value. | |
int | getIntLoopAttribute (const Loop *TheLoop, StringRef Name, int Default=0) |
Find named metadata for a loop with an integer value. | |
std::optional< const MDOperand * > | findStringMetadataForLoop (const Loop *TheLoop, StringRef Name) |
Find string metadata for loop. | |
CallBase * | getLoopConvergenceHeart (const Loop *TheLoop) |
Find the convergence heart of the loop. | |
bool | hasMustProgress (const Loop *L) |
Look for the loop attribute that requires progress within the loop. | |
bool | isMustProgress (const Loop *L) |
Return true if this loop can be assumed to make progress. | |
bool | isFinite (const Loop *L) |
Return true if this loop can be assumed to run for a finite number of iterations. | |
bool | isValidAsAccessGroup (MDNode *AccGroup) |
Return whether an MDNode might represent an access group. | |
llvm::MDNode * | 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. | |
raw_ostream & | operator<< (raw_ostream &, const LoopNest &) |
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). | |
bool | isAllocationFn (const Value *V, function_ref< const TargetLibraryInfo &(Function &)> GetTLI) |
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. | |
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. | |
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). | |
bool | isReallocLikeFn (const Function *F) |
Tests if a function is a call or invoke to a library function that reallocates memory (e.g., realloc). | |
Value * | getReallocatedOperand (const CallBase *CB) |
If this is a call to a realloc function, return the reallocated operand. | |
bool | isLibFreeFunction (const Function *F, const LibFunc TLIFn) |
isLibFreeFunction - Returns true if the function is a builtin free() | |
Value * | getFreedOperand (const CallBase *CB, const TargetLibraryInfo *TLI) |
If this if a call to a free function, return the freed operand. | |
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. | |
Value * | 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. | |
std::optional< APInt > | 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. | |
Constant * | 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. | |
std::optional< StringRef > | getAllocationFamily (const Value *I, const TargetLibraryInfo *TLI) |
If a function is part of an allocation family (e.g. | |
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. | |
Value * | 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. | |
Value * | lowerObjectSizeCall (IntrinsicInst *ObjectSize, const DataLayout &DL, const TargetLibraryInfo *TLI, AAResults *AA, bool MustSucceed, SmallVectorImpl< Instruction * > *InsertedInstructions=nullptr) |
raw_ostream & | operator<< (raw_ostream &OS, LocationSize Size) |
raw_ostream & | operator<< (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_iterator > | upward_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) |
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. | |
ModulePass * | createModuleSummaryIndexWrapperPass () |
ImmutablePass * | createImmutableModuleSummaryIndexWrapperPass (const ModuleSummaryIndex *Index) |
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. | |
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) |
FunctionPass * | createLazyValueInfoPass () |
createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass. | |
FunctionPass * | createRegionInfoPass () |
FunctionPass * | createPostDomTree () |
template<class Tr > | |
raw_ostream & | operator<< (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) | |
FunctionPass * | createRegionViewerPass () |
FunctionPass * | createRegionOnlyViewerPass () |
FunctionPass * | createRegionPrinterPass () |
FunctionPass * | createRegionOnlyPrinterPass () |
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< InlineAdvisor > | getReplayInlineAdvisor (Module &M, FunctionAnalysisManager &FAM, LLVMContext &Context, std::unique_ptr< InlineAdvisor > OriginalAdvisor, const ReplayInlinerSettings &ReplaySettings, bool EmitRemarks, InlineContext IC) |
raw_ostream & | operator<< (raw_ostream &OS, const SCEV &S) |
raw_ostream & | operator<< (raw_ostream &OS, const SCEVPredicate &P) |
FunctionPass * | createSCEVAAWrapperPass () |
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 . | |
const SCEV * | normalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE, bool CheckInvertible=true) |
Normalize S to be post-increment for all loops present in Loops . | |
const SCEV * | normalizeForPostIncUseIf (const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE) |
Normalize S for all add recurrence sub-expressions for which Pred returns true. | |
const SCEV * | denormalizeForPostIncUse (const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE) |
Denormalize S to be post-increment for all loops present in Loops . | |
ImmutablePass * | createScopedNoAliasAAWrapperPass () |
static raw_ostream & | operator<< (raw_ostream &OS, const BitVector &V) |
raw_ostream & | operator<< (raw_ostream &OS, const StackLifetime::LiveRange &R) |
bool | needsParamAccessSummary (const Module &M) |
void | generateParamAccessSummary (ModuleSummaryIndex &Index) |
ImmutablePass * | createTargetTransformInfoWrapperPass (TargetIRAnalysis TIRA) |
Create an analysis pass wrapper around a TTI object. | |
std::string | tensorValueToString (const char *Buffer, const TensorSpec &Spec) |
For debugging. | |
std::optional< TensorSpec > | getTensorSpecFromJSON (LLVMContext &Ctx, const json::Value &Value) |
Construct a TensorSpec from a JSON dictionary of the form: { "name": <string>, "port": <int>, "type": <string. | |
ImmutablePass * | createTypeBasedAAWrapperPass () |
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. | |
Constant * | 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). | |
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. | |
Value * | 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). | |
raw_ostream & | operator<< (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. | |
void | computeKnownBits (const Value *V, KnownBits &Known, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets. | |
KnownBits | computeKnownBits (const Value *V, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
Returns the known bits rather than passing by reference. | |
KnownBits | computeKnownBits (const Value *V, const APInt &DemandedElts, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
Returns the known bits rather than passing by reference. | |
KnownBits | computeKnownBits (const Value *V, const APInt &DemandedElts, unsigned Depth, const SimplifyQuery &Q) |
Determine which bits of V are known to be either zero or one and return them. | |
KnownBits | computeKnownBits (const Value *V, unsigned Depth, const SimplifyQuery &Q) |
Determine which bits of V are known to be either zero or one and return them. | |
void | computeKnownBits (const Value *V, KnownBits &Known, unsigned Depth, const SimplifyQuery &Q) |
void | computeKnownBitsFromRangeMetadata (const MDNode &Ranges, KnownBits &Known) |
Compute known bits from the range metadata. | |
void | computeKnownBitsFromContext (const Value *V, KnownBits &Known, unsigned Depth, const SimplifyQuery &Q) |
Merge bits known from context-dependent facts into Known. | |
KnownBits | analyzeKnownBitsFromAndXorOr (const Operator *I, const KnownBits &KnownLHS, const KnownBits &KnownRHS, unsigned Depth, const SimplifyQuery &SQ) |
Using KnownBits LHS/RHS produce the known bits for logic op (and/xor/or). | |
void | adjustKnownBitsForSelectArm (KnownBits &Known, Value *Cond, Value *Arm, bool Invert, unsigned Depth, const SimplifyQuery &Q) |
Adjust Known for the given select Arm to include information from the select Cond . | |
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. | |
bool | isKnownToBeAPowerOfTwo (const Value *V, const DataLayout &DL, bool OrZero=false, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
Return true if the given value is known to have exactly one bit set when defined. | |
bool | isKnownToBeAPowerOfTwo (const Value *V, bool OrZero, unsigned Depth, const SimplifyQuery &Q) |
Return true if the given value is known to have exactly one bit set when defined. | |
bool | isOnlyUsedInZeroComparison (const Instruction *CxtI) |
bool | isOnlyUsedInZeroEqualityComparison (const Instruction *CxtI) |
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. | |
bool | isKnownNegation (const Value *X, const Value *Y, bool NeedNSW=false, bool AllowPoison=true) |
Return true if the two given values are negation. | |
bool | isKnownInversion (const Value *X, const Value *Y) |
Return true iff: | |
bool | isKnownNonNegative (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0) |
Returns true if the give value is known to be non-negative. | |
bool | isKnownPositive (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0) |
Returns true if the given value is known be positive (i.e. | |
bool | isKnownNegative (const Value *V, const SimplifyQuery &SQ, unsigned Depth=0) |
Returns true if the given value is known be negative (i.e. | |
bool | isKnownNonEqual (const Value *V1, const Value *V2, const DataLayout &DL, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
Return true if the given values are known to be non-equal when defined. | |
bool | MaskedValueIsZero (const Value *V, const APInt &Mask, const SimplifyQuery &SQ, unsigned Depth=0) |
Return true if 'V & Mask' is known to be zero. | |
unsigned | ComputeNumSignBits (const Value *Op, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
Return the number of times the sign bit of the register is replicated into the other bits. | |
unsigned | ComputeMaxSignificantBits (const Value *Op, const DataLayout &DL, unsigned Depth=0, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr) |
Get the upper bound on bit size for this Value Op as a signed integer. | |
Intrinsic::ID | getIntrinsicForCallSite (const CallBase &CB, const TargetLibraryInfo *TLI) |
Map a call instruction to an intrinsic ID. | |
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. | |
std::pair< Value *, FPClassTest > | fcmpToClassTest (CmpInst::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 *, FPClassTest > | fcmpToClassTest (CmpInst::Predicate Pred, const Function &F, Value *LHS, const APFloat *ConstRHS, bool LookThroughSrc=true) |
std::tuple< Value *, FPClassTest, FPClassTest > | fcmpImpliesClass (CmpInst::Predicate Pred, const Function &F, Value *LHS, Value *RHS, bool LookThroughSrc=true) |
Compute the possible floating-point classes that LHS could be based on fcmp \Pred LHS , RHS . | |
std::tuple< Value *, FPClassTest, FPClassTest > | fcmpImpliesClass (CmpInst::Predicate Pred, const Function &F, Value *LHS, FPClassTest RHS, bool LookThroughSrc=true) |
std::tuple< Value *, FPClassTest, FPClassTest > | fcmpImpliesClass (CmpInst::Predicate Pred, const Function &F, Value *LHS, const APFloat &RHS, bool LookThroughSrc=true) |
KnownFPClass | operator| (KnownFPClass LHS, const KnownFPClass &RHS) |
KnownFPClass | operator| (const KnownFPClass &LHS, KnownFPClass &&RHS) |
KnownFPClass | computeKnownFPClass (const Value *V, const APInt &DemandedElts, FPClassTest InterestedClasses, unsigned Depth, const SimplifyQuery &SQ) |
Determine which floating-point classes are valid for V , and return them in KnownFPClass bit sets. | |
KnownFPClass | computeKnownFPClass (const Value *V, FPClassTest InterestedClasses, unsigned Depth, const SimplifyQuery &SQ) |
KnownFPClass | computeKnownFPClass (const Value *V, const DataLayout &DL, FPClassTest InterestedClasses=fcAllFlags, unsigned Depth=0, const TargetLibraryInfo *TLI=nullptr, AssumptionCache *AC=nullptr, const Instruction *CxtI=nullptr, const DominatorTree *DT=nullptr, bool UseInstrInfo=true) |
KnownFPClass | computeKnownFPClass (const Value *V, const APInt &DemandedElts, FastMathFlags FMF, FPClassTest InterestedClasses, unsigned Depth, const SimplifyQuery &SQ) |
Wrapper to account for known fast math flags at the use instruction. | |
KnownFPClass | computeKnownFPClass (const Value *V, FastMathFlags FMF, FPClassTest InterestedClasses, unsigned Depth, const SimplifyQuery &SQ) |
bool | cannotBeNegativeZero (const Value *V, unsigned Depth, const SimplifyQuery &SQ) |
Return true if we can prove that the specified FP value is never equal to -0.0. | |
bool | cannotBeOrderedLessThanZero (const Value *V, unsigned Depth, const SimplifyQuery &SQ) |
Return true if we can prove that the specified FP value is either NaN or never less than -0.0. | |
bool | isKnownNeverInfinity (const Value *V, unsigned Depth, const SimplifyQuery &SQ) |
Return true if the floating-point scalar value is not an infinity or if the floating-point vector value has no infinities. | |
bool | isKnownNeverInfOrNaN (const Value *V, unsigned Depth, const SimplifyQuery &SQ) |
Return true if the floating-point value can never contain a NaN or infinity. | |
bool | isKnownNeverNaN (const Value *V, unsigned Depth, const SimplifyQuery &SQ) |
Return true if the floating-point scalar value is not a NaN or if the floating-point vector value has no NaN elements. | |
std::optional< bool > | computeKnownFPSignBit (const Value *V, unsigned Depth, const SimplifyQuery &SQ) |
Return false if we can prove that the specified FP value's sign bit is 0. | |
Value * | 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. | |
Value * | 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. | |
Value * | GetPointerBaseWithConstantOffset (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 Value * | GetPointerBaseWithConstantOffset (const Value *Ptr, int64_t &Offset, const DataLayout &DL, bool AllowNonInbounds=true) |
bool | isGEPBasedOnPointerToString (const GEPOperator *GEP, unsigned CharSize=8) |
Returns true if the GEP is based on a pointer to a string (array of. | |
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. | |
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. | |
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'. | |
const Value * | getArgumentAliasingToReturnedPointer (const CallBase *Call, bool MustPreserveNullness) |
This function returns call pointer argument that is considered the same by aliasing rules. | |
Value * | getArgumentAliasingToReturnedPointer (CallBase *Call, bool MustPreserveNullness) |
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. | |
const Value * | getUnderlyingObject (const Value *V, unsigned MaxLookup=6) |
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. | |
Value * | getUnderlyingObject (Value *V, unsigned MaxLookup=6) |
const Value * | getUnderlyingObjectAggressive (const Value *V) |
Like getUnderlyingObject(), but will try harder to find a single underlying object. | |
void | getUnderlyingObjects (const Value *V, SmallVectorImpl< const Value * > &Objects, const LoopInfo *LI=nullptr, unsigned MaxLookup=6) |
This method is similar to getUnderlyingObject except that it can look through phi and select instructions and return multiple objects. | |
bool | getUnderlyingObjectsForCodeGen (const Value *V, SmallVectorImpl< Value * > &Objects) |
This is a wrapper around getUnderlyingObjects and adds support for basic ptrtoint+arithmetic+inttoptr sequences. | |
AllocaInst * | findAllocaForValue (Value *V, bool OffsetZero=false) |
Returns unique alloca where the value comes from, or nullptr. | |
const AllocaInst * | findAllocaForValue (const Value *V, bool OffsetZero=false) |
bool | onlyUsedByLifetimeMarkers (const Value *V) |
Return true if the only users of this pointer are lifetime markers. | |
bool | onlyUsedByLifetimeMarkersOrDroppableInsts (const Value *V) |
Return true if the only users of this pointer are lifetime markers or droppable instructions. | |
bool | isNotCrossLaneOperation (const Instruction *I) |
Return true if the instruction doesn't potentially cross vector lanes. | |
bool | isSafeToSpeculativelyExecute (const Instruction *I, const Instruction *CtxI=nullptr, AssumptionCache *AC=nullptr, const DominatorTree *DT=nullptr, const TargetLibraryInfo *TLI=nullptr, bool UseVariableInfo=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 | isSafeToSpeculativelyExecuteWithVariableReplaced (const Instruction *I) |
Don't use information from its non-constant operands. | |
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) |
This returns the same result as isSafeToSpeculativelyExecute if Opcode is the actual opcode of Inst. | |
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. | |
bool | isAssumeLikeIntrinsic (const Instruction *I) |
Return true if it is an intrinsic that cannot be speculated but also cannot trap. | |
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. | |
OverflowResult | computeOverflowForUnsignedMul (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ, bool IsNSW=false) |
OverflowResult | computeOverflowForSignedMul (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ) |
OverflowResult | computeOverflowForUnsignedAdd (const WithCache< const Value * > &LHS, const WithCache< const Value * > &RHS, const SimplifyQuery &SQ) |
OverflowResult | computeOverflowForSignedAdd (const WithCache< const Value * > &LHS, const WithCache< const Value * > &RHS, const SimplifyQuery &SQ) |
OverflowResult | computeOverflowForSignedAdd (const AddOperator *Add, const SimplifyQuery &SQ) |
This version also leverages the sign bit of Add if known. | |
OverflowResult | computeOverflowForUnsignedSub (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ) |
OverflowResult | computeOverflowForSignedSub (const Value *LHS, const Value *RHS, const SimplifyQuery &SQ) |
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. | |
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. | |
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. | |
ConstantRange | computeConstantRangeIncludingKnownBits (const WithCache< const Value * > &V, bool ForSigned, const SimplifyQuery &SQ) |
Combine constant ranges from computeConstantRange() and computeKnownBits(). | |
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). | |
bool | isGuaranteedToTransferExecutionToSuccessor (const BasicBlock *BB) |
Returns true if this block does not contain a potential implicit exit. | |
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. | |
bool | isGuaranteedToTransferExecutionToSuccessor (iterator_range< BasicBlock::const_iterator > Range, unsigned ScanLimit=32) |
Same as previous, but with range expressed via iterator_range. | |
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. | |
bool | propagatesPoison (const Use &PoisonOp) |
Return true if PoisonOp's user yields poison or raises UB if its operand PoisonOp is poison. | |
void | getGuaranteedNonPoisonOps (const Instruction *I, SmallVectorImpl< const Value * > &Ops) |
Insert operands of I into Ops such that I will trigger undefined behavior if I is executed and that operand has a poison value. | |
void | getGuaranteedWellDefinedOps (const Instruction *I, SmallVectorImpl< const Value * > &Ops) |
Insert operands of I into Ops such that I will trigger undefined behavior if I is executed and that operand is not a well-defined value (i.e. | |
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. | |
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. | |
bool | programUndefinedIfPoison (const Instruction *Inst) |
bool | canCreateUndefOrPoison (const Operator *Op, bool ConsiderFlagsAndMetadata=true) |
canCreateUndefOrPoison returns true if Op can create undef or poison from non-undef & non-poison operands. | |
bool | canCreatePoison (const Operator *Op, bool ConsiderFlagsAndMetadata=true) |
bool | impliesPoison (const Value *ValAssumedPoison, const Value *V) |
Return true if V is poison given that ValAssumedPoison is already poison. | |
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. | |
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) |
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. | |
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. | |
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. | |
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) |
SelectPatternResult | matchDecomposedSelectPattern (CmpInst *CmpI, Value *TrueVal, Value *FalseVal, Value *&LHS, Value *&RHS, 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. | |
SelectPatternResult | getSelectPattern (CmpInst::Predicate Pred, SelectPatternNaNBehavior NaNBehavior=SPNB_NA, bool Ordered=false) |
Determine the pattern for predicate X Pred Y ? X : Y . | |
CmpInst::Predicate | getMinMaxPred (SelectPatternFlavor SPF, bool Ordered=false) |
Return the canonical comparison predicate for the specified minimum/maximum flavor. | |
Intrinsic::ID | getMinMaxIntrinsic (SelectPatternFlavor SPF) |
Convert given SPF to equivalent min/max intrinsic. | |
SelectPatternFlavor | getInverseMinMaxFlavor (SelectPatternFlavor SPF) |
Return the inverse minimum/maximum flavor of the specified flavor. | |
Intrinsic::ID | getInverseMinMaxIntrinsic (Intrinsic::ID MinMaxID) |
APInt | getMinMaxLimit (SelectPatternFlavor SPF, unsigned BitWidth) |
Return the minimum or maximum constant value for the specified integer min/max flavor and type. | |
std::pair< Intrinsic::ID, bool > | canConvertToMinOrMaxIntrinsic (ArrayRef< Value * > VL) |
Check if the values in VL are select instructions that can be converted to a min or max (vector) intrinsic. | |
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. | |
bool | matchSimpleRecurrence (const BinaryOperator *I, PHINode *&P, Value *&Start, Value *&Step) |
Analogous to the above, but starting from the binary operator. | |
std::optional< bool > | 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. | |
std::optional< bool > | isImpliedCondition (const Value *LHS, CmpPredicate RHSPred, const Value *RHSOp0, const Value *RHSOp1, const DataLayout &DL, bool LHSIsTrue=true, unsigned Depth=0) |
std::optional< bool > | 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. | |
std::optional< bool > | isImpliedByDomCondition (CmpPredicate Pred, const Value *LHS, const Value *RHS, const Instruction *ContextI, const DataLayout &DL) |
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 . | |
bool | isTriviallyVectorizable (Intrinsic::ID ID) |
Identify if the intrinsic is trivially vectorizable. | |
bool | isTriviallyScalarizable (Intrinsic::ID ID, const TargetTransformInfo *TTI) |
Identify if the intrinsic is trivially scalarizable. | |
bool | isVectorIntrinsicWithScalarOpAtArg (Intrinsic::ID ID, unsigned ScalarOpdIdx, const TargetTransformInfo *TTI) |
Identifies if the vector form of the intrinsic has a scalar operand. | |
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. | |
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 . | |
Intrinsic::ID | getVectorIntrinsicIDForCall (const CallInst *CI, const TargetLibraryInfo *TLI) |
Returns intrinsic ID for call. | |
Value * | findScalarElement (Value *V, unsigned EltNo) |
Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector. | |
int | getSplatIndex (ArrayRef< int > Mask) |
If all non-negative Mask elements are the same value, return that value. | |
Value * | getSplatValue (const Value *V) |
Get splat value if the input is a splat vector or return nullptr. | |
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. | |
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. | |
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. | |
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. | |
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. | |
bool | scaleShuffleMaskElts (unsigned NumDstElts, ArrayRef< int > Mask, SmallVectorImpl< int > &ScaledMask) |
Attempt to narrow/widen the Mask shuffle mask to the NumDstElts target width. | |
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. | |
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. | |
void | getHorizDemandedEltsForFirstOperand (unsigned VectorBitWidth, const APInt &DemandedElts, APInt &DemandedLHS, APInt &DemandedRHS) |
Compute the demanded elements mask of horizontal binary operations. | |
MapVector< Instruction *, uint64_t > | computeMinimumValueSizes (ArrayRef< BasicBlock * > Blocks, DemandedBits &DB, const TargetTransformInfo *TTI=nullptr) |
Compute a map of integer instructions to their minimum legal type size. | |
MDNode * | uniteAccessGroups (MDNode *AccGroups1, MDNode *AccGroups2) |
Compute the union of two access-group lists. | |
MDNode * | intersectAccessGroups (const Instruction *Inst1, const Instruction *Inst2) |
Compute the access-group list of access groups that Inst1 and Inst2 are both in. | |
Instruction * | propagateMetadata (Instruction *I, ArrayRef< Value * > VL) |
Specifically, let Kinds = [MD_tbaa, MD_alias_scope, MD_noalias, MD_fpmath, MD_nontemporal, MD_access_group, MD_mmra]. | |
Constant * | createBitMaskForGaps (IRBuilderBase &Builder, unsigned VF, const InterleaveGroup< Instruction > &Group) |
Create a mask that filters the members of an interleave group where there are gaps. | |
llvm::SmallVector< int, 16 > | createReplicatedMask (unsigned ReplicationFactor, unsigned VF) |
Create a mask with replicated elements. | |
llvm::SmallVector< int, 16 > | createInterleaveMask (unsigned VF, unsigned NumVecs) |
Create an interleave shuffle mask. | |
llvm::SmallVector< int, 16 > | createStrideMask (unsigned Start, unsigned Stride, unsigned VF) |
Create a stride shuffle mask. | |
llvm::SmallVector< int, 16 > | createSequentialMask (unsigned Start, unsigned NumInts, unsigned NumUndefs) |
Create a sequential shuffle mask. | |
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. | |
Value * | concatenateVectors (IRBuilderBase &Builder, ArrayRef< Value * > Vecs) |
Concatenate a list of vectors. | |
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. | |
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. | |
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. | |
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. | |
std::unique_ptr< Module > | parseAssemblyFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr) |
This function is a main interface to the LLVM Assembly Parser. | |
std::unique_ptr< Module > | parseAssemblyString (StringRef AsmString, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr) |
The function is a secondary interface to the LLVM Assembly Parser. | |
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. | |
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. | |
std::unique_ptr< ModuleSummaryIndex > | parseSummaryIndexAssemblyFile (StringRef Filename, SMDiagnostic &Err) |
This function is a main interface to the LLVM Assembly Parser. | |
std::unique_ptr< ModuleSummaryIndex > | parseSummaryIndexAssemblyString (StringRef AsmString, SMDiagnostic &Err) |
The function is a secondary interface to the LLVM Assembly Parser. | |
std::unique_ptr< Module > | parseAssembly (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr, DataLayoutCallbackTy DataLayoutCallback=[](StringRef, StringRef) { return std::nullopt;}) |
parseAssemblyFile and parseAssemblyString are wrappers around this function. | |
ParsedModuleAndIndex | parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic &Err, LLVMContext &Context, SlotMapping *Slots=nullptr) |
Parse LLVM Assembly including the summary index from a MemoryBuffer. | |
std::unique_ptr< ModuleSummaryIndex > | parseSummaryIndexAssembly (MemoryBufferRef F, SMDiagnostic &Err) |
Parse LLVM Assembly for summary index from a MemoryBuffer. | |
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. | |
Constant * | parseConstantValue (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr) |
Parse a type and a constant value in the given string. | |
Type * | parseType (StringRef Asm, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr) |
Parse a type in the given string. | |
Type * | parseTypeAtBeginning (StringRef Asm, unsigned &Read, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots=nullptr) |
Parse a string Asm that starts with a type. | |
DIExpression * | parseDIExpressionBodyAtBeginning (StringRef Asm, unsigned &Read, SMDiagnostic &Err, const Module &M, const SlotMapping *Slots) |
file_magic | identify_magic (StringRef magic) |
Identify the type of a binary file based on how magical it is. | |
std::error_code | identify_magic (const Twine &path, file_magic &result) |
Get and identify path's type based on its content. | |
std::error_code | errorToErrorCodeAndEmitErrors (LLVMContext &Ctx, Error Err) |
template<typename T > | |
ErrorOr< T > | expectedToErrorOrAndEmitErrors (LLVMContext &Ctx, Expected< T > Val) |
Expected< BitcodeFileContents > | getBitcodeFileContents (MemoryBufferRef Buffer) |
Returns the contents of a bitcode file. | |
Expected< std::vector< BitcodeModule > > | getBitcodeModuleList (MemoryBufferRef Buffer) |
Returns a list of modules in the specified bitcode buffer. | |
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. | |
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. | |
Expected< std::string > | getBitcodeTargetTriple (MemoryBufferRef Buffer) |
Read the header of the specified bitcode buffer and extract just the triple information. | |
Expected< bool > | isBitcodeContainingObjCCategory (MemoryBufferRef Buffer) |
Return true if Buffer contains a bitcode file with ObjC code (category or class) in it. | |
Expected< std::string > | getBitcodeProducerString (MemoryBufferRef Buffer) |
Read the header of the specified bitcode buffer and extract just the producer string information. | |
Expected< std::unique_ptr< Module > > | parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext &Context, ParserCallbacks Callbacks={}) |
Read the specified bitcode file, returning the module. | |
Expected< BitcodeLTOInfo > | getBitcodeLTOInfo (MemoryBufferRef Buffer) |
Returns LTO information for the specified bitcode file. | |
Expected< std::unique_ptr< ModuleSummaryIndex > > | getModuleSummaryIndex (MemoryBufferRef Buffer) |
Parse the specified bitcode buffer, returning the module summary index. | |
Error | readModuleSummaryIndex (MemoryBufferRef Buffer, ModuleSummaryIndex &CombinedIndex) |
Parse the specified bitcode buffer and merge the index into CombinedIndex. | |
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. | |
APInt | readWideAPInt (ArrayRef< uint64_t > Vals, unsigned TypeBits) |
const std::error_category & | BitcodeErrorCategory () |
std::error_code | make_error_code (BitcodeError E) |
void | WriteBitcodeToFile (const Module &M, raw_ostream &Out, bool ShouldPreserveUseListOrder=false, const ModuleSummaryIndex *Index=nullptr, bool GenerateHash=false, ModuleHash *ModHash=nullptr) |
Write the specified module to the specified raw output stream. | |
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. | |
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. | |
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). | |
ModulePass * | createBitcodeWriterPass (raw_ostream &Str, bool ShouldPreserveUseListOrder=false) |
Create and return a pass that writes the module to the specified ostream. | |
bool | isBitcodeWriterPass (Pass *P) |
Check whether a pass is a BitcodeWriterPass. | |
std::string | getCodeGenDataSectionName (CGDataSectKind CGSK, Triple::ObjectFormatType OF, bool AddSegmentInfo=true) |
const std::error_category & | cgdata_category () |
std::error_code | make_error_code (cgdata_error E) |
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. | |
void | emitDWARF5AccelTable (AsmPrinter *Asm, DWARF5AccelTable &Contents, const DwarfDebug &DD, ArrayRef< std::unique_ptr< DwarfCompileUnit > > CUs) |
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 | 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. | |
GlobalValue * | ExtractTypeInfo (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) |
AntiDepBreaker * | createAggressiveAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI, TargetSubtargetInfo::RegClassVector &CriticalPathRCs) |
AntiDepBreaker * | createCriticalAntiDepBreaker (MachineFunction &MFi, const RegisterClassInfo &RCI) |
bool | expandAtomicRMWToCmpXchg (AtomicRMWInst *AI, CreateCmpXchgInstFun CreateCmpXchg) |
Expand an atomic RMW instruction into a loop utilizing cmpxchg. | |
ImmutablePass * | createBasicBlockSectionsProfileReaderWrapperPass (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. | |
std::unique_ptr< CSEConfigBase > | getStandardCSEConfigForOpt (CodeGenOptLevel Level) |
raw_ostream & | operator<< (raw_ostream &OS, LegacyLegalizeActions::LegacyLegalizeAction Action) |
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 . | |
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. | |
LegalizerHelper::LegalizeResult | createMemLibcall (MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, MachineInstr &MI, LostDebugLocObserver &LocObserver) |
Create a libcall to memcpy et al. | |
raw_ostream & | operator<< (raw_ostream &OS, LegalizeActions::LegalizeAction Action) |
const MachineInstr * | machineFunctionIsIllegal (const MachineFunction &MF) |
Checks that MIR is fully legal, returns an illegal instruction if it's not, nullptr otherwise. | |
Register | constrainRegToClass (MachineRegisterInfo &MRI, const TargetInstrInfo &TII, const RegisterBankInfo &RBI, Register Reg, const TargetRegisterClass &RegClass) |
Try to constrain Reg to the specified register class. | |
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). | |
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 . | |
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. | |
bool | canReplaceReg (Register DstReg, Register SrcReg, MachineRegisterInfo &MRI) |
Check if DstReg can be replaced with SrcReg depending on the register constraints. | |
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. | |
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. | |
void | reportGISelFailure (MachineFunction &MF, const TargetPassConfig &TPC, MachineOptimizationRemarkEmitter &MORE, const char *PassName, StringRef Msg, const MachineInstr &MI) |
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. | |
unsigned | getInverseGMinMaxOpcode (unsigned MinMaxOpc) |
Returns the inverse opcode of MinMaxOpc , which is a generic min/max opcode like G_SMIN. | |
std::optional< APInt > | getIConstantVRegVal (Register VReg, const MachineRegisterInfo &MRI) |
If VReg is defined by a G_CONSTANT, return the corresponding value. | |
std::optional< int64_t > | getIConstantVRegSExtVal (Register VReg, const MachineRegisterInfo &MRI) |
If VReg is defined by a G_CONSTANT fits in int64_t returns it. | |
const APInt & | getIConstantFromReg (Register VReg, const MachineRegisterInfo &MRI) |
VReg is defined by a G_CONSTANT, return the corresponding value. | |
std::optional< ValueAndVReg > | 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. | |
std::optional< ValueAndVReg > | 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. | |
std::optional< FPValueAndVReg > | 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. | |
const ConstantFP * | getConstantFPVRegVal (Register VReg, const MachineRegisterInfo &MRI) |
MachineInstr * | getOpcodeDef (unsigned Opcode, Register Reg, const MachineRegisterInfo &MRI) |
See if Reg is defined by an single def instruction that is Opcode. | |
std::optional< DefinitionAndSourceRegister > | getDefSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI) |
Find the def instruction for Reg , and underlying value Register folding away any copies. | |
MachineInstr * | getDefIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI) |
Find the def instruction for Reg , folding away any trivial copies. | |
Register | getSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo &MRI) |
Find the source register for Reg , folding away any trivial copies. | |
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). | |
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. | |
void | extractVectorParts (Register Reg, unsigned NumElts, SmallVectorImpl< Register > &VRegs, MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI) |
Version which handles irregular sub-vector splits. | |
template<class T > | |
T * | 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. | |
APFloat | getAPFloatFromSize (double Val, unsigned Size) |
Returns an APFloat from Val converted to the appropriate size. | |
void | getSelectionDAGFallbackAnalysisUsage (AnalysisUsage &AU) |
Modify analysis usage so it preserves passes required for the SelectionDAG fallback. | |
std::optional< APInt > | ConstantFoldBinOp (unsigned Opcode, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI) |
std::optional< APFloat > | ConstantFoldFPBinOp (unsigned Opcode, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI) |
SmallVector< APInt > | ConstantFoldVectorBinop (unsigned Opcode, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI) |
Tries to constant fold a vector binop with sources Op1 and Op2 . | |
std::optional< APInt > | ConstantFoldCastOp (unsigned Opcode, LLT DstTy, const Register Op0, const MachineRegisterInfo &MRI) |
std::optional< APInt > | ConstantFoldExtOp (unsigned Opcode, const Register Op1, uint64_t Imm, const MachineRegisterInfo &MRI) |
std::optional< APFloat > | ConstantFoldIntToFloat (unsigned Opcode, LLT DstTy, Register Src, const MachineRegisterInfo &MRI) |
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 . | |
std::optional< SmallVector< APInt > > | ConstantFoldICmp (unsigned Pred, const Register Op1, const Register Op2, const MachineRegisterInfo &MRI) |
bool | isKnownToBeAPowerOfTwo (Register Val, const MachineRegisterInfo &MRI, GISelKnownBits *KnownBits=nullptr) |
Test if the given value is known to have exactly one bit set. | |
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. | |
Align | inferAlignFromPtrInfo (MachineFunction &MF, const MachinePointerInfo &MPO) |
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_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_READNONE LLT | getCoverTy (LLT OrigTy, LLT TargetTy) |
Return smallest type that covers both OrigTy and TargetTy and is multiple of TargetTy. | |
LLVM_READNONE LLT | getGCDType (LLT OrigTy, LLT TargetTy) |
Return a type where the total size is the greatest common divisor of OrigTy and TargetTy . | |
std::optional< int > | getSplatIndex (MachineInstr &MI) |
std::optional< APInt > | getIConstantSplatVal (const Register Reg, const MachineRegisterInfo &MRI) |
std::optional< APInt > | getIConstantSplatVal (const MachineInstr &MI, const MachineRegisterInfo &MRI) |
std::optional< int64_t > | getIConstantSplatSExtVal (const Register Reg, const MachineRegisterInfo &MRI) |
std::optional< int64_t > | getIConstantSplatSExtVal (const MachineInstr &MI, const MachineRegisterInfo &MRI) |
std::optional< FPValueAndVReg > | getFConstantSplat (Register VReg, const MachineRegisterInfo &MRI, bool AllowUndef=true) |
Returns a floating point scalar constant of a build vector splat if it exists. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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). | |
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). | |
std::optional< RegOrConstant > | getVectorSplat (const MachineInstr &MI, const MachineRegisterInfo &MRI) |
bool | isConstantOrConstantVector (MachineInstr &MI, const MachineRegisterInfo &MRI) |
Determines if MI defines a constant integer or a build vector of constant integers. | |
std::optional< APInt > | isConstantOrConstantSplatVector (MachineInstr &MI, const MachineRegisterInfo &MRI) |
Determines if MI defines a constant integer or a splat vector of constant integers. | |
std::optional< APFloat > | isConstantOrConstantSplatVectorFP (MachineInstr &MI, const MachineRegisterInfo &MRI) |
Determines if MI defines a float constant integer or a splat vector of float constant integers. | |
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. | |
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. | |
bool | isConstFalseVal (const TargetLowering &TLI, int64_t Val, bool IsVector, bool IsFP) |
int64_t | getICmpTrueVal (const TargetLowering &TLI, bool IsVector, bool IsFP) |
Returns an integer representing true, as defined by the TargetBooleanContents. | |
void | saveUsesAndErase (MachineInstr &MI, MachineRegisterInfo &MRI, LostDebugLocObserver *LocObserver, SmallInstListTy &DeadInstChain) |
void | eraseInstrs (ArrayRef< MachineInstr * > DeadInstrs, MachineRegisterInfo &MRI, LostDebugLocObserver *LocObserver=nullptr) |
void | eraseInstr (MachineInstr &MI, MachineRegisterInfo &MRI, LostDebugLocObserver *LocObserver=nullptr) |
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. | |
bool | isPreISelGenericFloatingPointOpcode (unsigned Opc) |
Returns whether opcode Opc is a pre-isel generic floating-point opcode, having only floating-point operands. | |
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. | |
bool | canCreatePoison (Register Reg, const MachineRegisterInfo &MRI, bool ConsiderFlagsAndMetadata=true) |
Returns true if Reg can create poison from non-poison operands. | |
bool | isGuaranteedNotToBeUndefOrPoison (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth=0) |
Returns true if Reg cannot be poison and undef. | |
bool | isGuaranteedNotToBePoison (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth=0) |
Returns true if Reg cannot be poison, but may be undef. | |
bool | isGuaranteedNotToBeUndef (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth=0) |
Returns true if Reg cannot be undef, but may be poison. | |
Type * | getTypeForLLT (LLT Ty, LLVMContext &C) |
Get the type back from LLT. | |
raw_ostream & | operator<< (raw_ostream &OS, const LiveRange &LR) |
raw_ostream & | operator<< (raw_ostream &OS, const LiveInterval::SubRange &SR) |
raw_ostream & | operator<< (raw_ostream &OS, const LiveInterval &LI) |
raw_ostream & | operator<< (raw_ostream &OS, const LiveRange::Segment &S) |
bool | operator< (SlotIndex V, const LiveRange::Segment &S) |
bool | operator< (const LiveRange::Segment &S, SlotIndex V) |
raw_ostream & | operator<< (raw_ostream &OS, const LiveRangeUpdater &X) |
raw_ostream & | operator<< (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(). | |
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. | |
LLT | getLLTForType (Type &Ty, const DataLayout &DL) |
Construct a low-level type based on an LLVM type. | |
MVT | getMVTForLLT (LLT Ty) |
Get a rough equivalent of an MVT for a given LLT. | |
EVT | getApproximateEVTForLLT (LLT Ty, LLVMContext &Ctx) |
LLT | getLLTForMVT (MVT Ty) |
Get a rough equivalent of an LLT for a given MVT. | |
const llvm::fltSemantics & | getFltSemanticForLLT (LLT Ty) |
Get the appropriate floating point arithmetic semantic based on the bit size of the given scalar LLT. | |
raw_ostream & | operator<< (raw_ostream &OS, const MachineBasicBlock &MBB) |
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. | |
Printable | printBlockFreq (const MachineBlockFrequencyInfo &MBFI, BlockFrequency Freq) |
Print the block frequency Freq relative to the current functions entry frequency. | |
Printable | printBlockFreq (const MachineBlockFrequencyInfo &MBFI, const MachineBasicBlock &MBB) |
Convenience function equivalent to calling printBlockFreq(MBFI, MBFI.getBlockFreq(&MBB)) . | |
raw_ostream & | operator<< (raw_ostream &OS, const MachineConstantPoolValue &V) |
bool | isCycleInvariant (const MachineCycle *Cycle, MachineInstr &I) |
void | verifyMachineFunction (const std::string &Banner, const MachineFunction &MF) |
raw_ostream & | operator<< (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. | |
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. | |
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. | |
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. | |
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. | |
MachineInstr * | buildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex, Register SpillReg) |
Clone a DBG_VALUE whose value has been spilled to FrameIndex. | |
MachineInstr * | buildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex, const SmallVectorImpl< const MachineOperand * > &SpilledOperands) |
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 . | |
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). | |
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. | |
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< ConstMIBundleOperands > | const_mi_bundle_ops (const MachineInstr &MI) |
iterator_range< MIBundleOperands > | mi_bundle_ops (MachineInstr &MI) |
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. | |
std::pair< LaneBitmask, LaneBitmask > | 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. | |
PhysRegInfo | AnalyzePhysRegInBundle (const MachineInstr &MI, Register Reg, const TargetRegisterInfo *TRI) |
AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses a physical register. | |
Printable | printJumpTableEntryReference (unsigned Idx) |
Prints a jump table entry reference. | |
MachineBasicBlock * | PeelSingleBlockLoop (LoopPeelDirection Direction, MachineBasicBlock *Loop, MachineRegisterInfo &MRI, const TargetInstrInfo *TII) |
Peels a single block loop. | |
raw_ostream & | operator<< (raw_ostream &OS, const MachineOperand &MO) |
hash_code | hash_value (const MachineOperand &MO) |
template<typename PassT > | |
MFPropsModifier (PassT &P, MachineFunction &MF) -> MFPropsModifier< PassT > | |
template<typename MachineFunctionPassT > | |
FunctionToMachineFunctionPassAdaptor | createFunctionToMachineFunctionPassAdaptor (MachineFunctionPassT &&Pass) |
PreservedAnalyses | getMachineFunctionPassPreservedAnalyses () |
Returns the minimum set of Analyses that all machine function passes must preserve. | |
RegionNodeGraphTraits (MachineRegionNode, MachineBasicBlock, MachineRegion) | |
RegionGraphTraits (MachineRegion, MachineRegionNode) | |
bool | tryLess (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason) |
Return true if this heuristic determines order. | |
bool | tryGreater (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason) |
bool | tryLatency (GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, SchedBoundary &Zone) |
bool | tryPressure (const PressureChange &TryP, const PressureChange &CandP, GenericSchedulerBase::SchedCandidate &TryCand, GenericSchedulerBase::SchedCandidate &Cand, GenericSchedulerBase::CandReason Reason, const TargetRegisterInfo *TRI, const MachineFunction &MF) |
unsigned | getWeakLeft (const SUnit *SU, bool isTop) |
int | biasPhysReg (const SUnit *SU, bool isTop) |
Minimize physical register live ranges. | |
ScheduleDAGMILive * | createGenericSchedLive (MachineSchedContext *C) |
Create the standard converging machine scheduler. | |
ScheduleDAGMI * | createGenericSchedPostRA (MachineSchedContext *C) |
Create a generic scheduler with no vreg liveness or DAG mutation passes. | |
std::unique_ptr< ScheduleDAGMutation > | createLoadClusterDAGMutation (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. | |
std::unique_ptr< ScheduleDAGMutation > | createStoreClusterDAGMutation (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. | |
std::unique_ptr< ScheduleDAGMutation > | createCopyConstrainDAGMutation (const TargetInstrInfo *TII, const TargetRegisterInfo *TRI) |
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. | |
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. | |
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) |
stable_hash | stableHashValue (const MachineOperand &MO) |
stable_hash | stableHashValue (const MachineInstr &MI, bool HashVRegs=false, bool HashConstantPoolIndices=false, bool HashMemOperands=false) |
A stable hash value for machine instructions. | |
stable_hash | stableHashValue (const MachineBasicBlock &MBB) |
stable_hash | stableHashValue (const MachineFunction &MF) |
raw_ostream & | operator<< (raw_ostream &OS, const MachineTraceMetrics::Trace &Tr) |
raw_ostream & | operator<< (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. | |
bool | hasLessThanNumFused (const SUnit &SU, unsigned FuseLimit) |
Checks if the number of cluster edges between SU and its predecessors is less than FuseLimit. | |
bool | fuseInstructionPair (ScheduleDAGInstrs &DAG, SUnit &FirstSU, SUnit &SecondSU) |
Create an artificial edge between FirstSU and SecondSU. | |
std::unique_ptr< ScheduleDAGMutation > | 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. | |
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) |
std::unique_ptr< MIRParser > | 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. | |
std::unique_ptr< MIRParser > | 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. | |
void | printMIR (raw_ostream &OS, const Module &M) |
Print LLVM IR using the MIR serialization format to the given output stream. | |
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. | |
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. | |
FunctionPass * | 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. | |
FunctionPass * | 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?). | |
MachineFunctionPass * | createGCEmptyBasicBlocksPass () |
createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without real code) appear as the result of optimization passes removing instructions. | |
MachineFunctionPass * | createBasicBlockSectionsPass () |
createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections. | |
MachineFunctionPass * | createBasicBlockPathCloningPass () |
MachineFunctionPass * | createMachineFunctionSplitterPass () |
createMachineFunctionSplitterPass - This pass splits machine functions using profile information. | |
MachineFunctionPass * | createStaticDataSplitterPass () |
createStaticDataSplitterPass - This pass partitions a static data section into a hot and cold section using profile information. | |
MachineFunctionPass * | 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. | |
MachineFunctionPass * | createStackFrameLayoutAnalysisPass () |
StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool. | |
MachineFunctionPass * | createPrintMIRPass (raw_ostream &OS) |
MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format. | |
MachineFunctionPass * | createResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel) |
This pass resets a MachineFunction when it has the FailedISel property as if it was just created. | |
FunctionPass * | createCodeGenPrepareLegacyPass () |
createCodeGenPrepareLegacyPass - Transform the code to expose more pattern matching during instruction selection. | |
FunctionPass * | createComplexDeinterleavingPass (const TargetMachine *TM) |
This pass implements generation of target-specific intrinsics to support handling of complex number arithmetic. | |
FunctionPass * | createVirtRegRewriter (bool ClearVirtRegs=true) |
FunctionPass * | createFastRegisterAllocator () |
FastRegisterAllocation Pass - This pass register allocates as fast as possible. | |
FunctionPass * | createFastRegisterAllocator (RegAllocFilterFunc F, bool ClearVirtRegs) |
FunctionPass * | createBasicRegisterAllocator () |
BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework. | |
FunctionPass * | createBasicRegisterAllocator (RegAllocFilterFunc F) |
FunctionPass * | createGreedyRegisterAllocator () |
Greedy register allocation pass - This pass implements a global register allocator for optimized builds. | |
FunctionPass * | createGreedyRegisterAllocator (RegAllocFilterFunc F) |
FunctionPass * | createDefaultPBQPRegisterAllocator () |
PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator. | |
MachineFunctionPass * | createPrologEpilogInserterPass () |
FunctionPass * | createIfConverter (std::function< bool(const MachineFunction &)> Ftor) |
FunctionPass * | createGCLoweringPass () |
GCLowering Pass - Used by gc.root to perform its default lowering operations. | |
FunctionPass * | createShadowStackGCLoweringPass () |
ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC. | |
MachineFunctionPass * | createMachineCopyPropagationPass (bool UseCopyInstr) |
FunctionPass * | createStackProtectorPass () |
createStackProtectorPass - This pass adds stack protectors to functions. | |
FunctionPass * | createMachineVerifierPass (const std::string &Banner) |
createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness. | |
FunctionPass * | createDwarfEHPass (CodeGenOptLevel OptLevel) |
createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation. | |
FunctionPass * | createWinEHPass (bool DemoteCatchSwitchPHIOnly=false) |
createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities. | |
FunctionPass * | 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. | |
FunctionPass * | createWasmEHPass () |
createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme. | |
FunctionPass * | createUnpackMachineBundles (std::function< bool(const MachineFunction &)> Ftor) |
FunctionPass * | createInterleavedAccessPass () |
InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics. | |
FunctionPass * | createInterleavedLoadCombinePass () |
InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass. | |
ModulePass * | createLowerEmuTLSPass () |
LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model. | |
ModulePass * | createPreISelIntrinsicLoweringPass () |
This pass lowers the @llvm.load.relative and @llvm.objc. | |
Pass * | 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. | |
FunctionPass * | createSafeStackPass () |
This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities. | |
FunctionPass * | createRegUsageInfoCollector () |
This pass is executed POST-RA to collect which physical registers are preserved by given machine function. | |
FunctionPass * | createRegUsageInfoPropPass () |
Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass. | |
FunctionPass * | createFreeMachineFunctionPass () |
This pass frees the memory occupied by the MachineFunction. | |
ModulePass * | createGlobalMergeFuncPass () |
This pass performs merging similar functions globally. | |
ModulePass * | createMachineOutlinerPass (bool RunOnAllFunctions=true) |
This pass performs outlining on machine instructions directly before printing assembly. | |
FunctionPass * | createExpandReductionsPass () |
This pass expands the reduction intrinsics into sequences of shuffles. | |
FunctionPass * | createReplaceWithVeclibLegacyPass () |
FunctionPass * | createExpandLargeDivRemPass () |
FunctionPass * | createExpandLargeFpConvertPass () |
FunctionPass * | createExpandMemCmpLegacyPass () |
FunctionPass * | createBreakFalseDeps () |
Creates Break False Dependencies pass. | |
FunctionPass * | createIndirectBrExpandPass () |
FunctionPass * | createCFIFixup () |
Creates CFI Fixup pass. | |
FunctionPass * | createCFIInstrInserter () |
Creates CFI Instruction Inserter pass. | |
FunctionPass * | createCFGuardLongjmpPass () |
Creates CFGuard longjmp target identification pass. | |
FunctionPass * | createEHContGuardCatchretPass () |
Creates EHContGuard catchret target identification pass. | |
FunctionPass * | createHardwareLoopsLegacyPass () |
Create Hardware Loop pass. | |
FunctionPass * | createPseudoProbeInserter () |
This pass inserts pseudo probe annotation for callsite profiling. | |
FunctionPass * | createTypePromotionLegacyPass () |
Create IR Type Promotion pass. | |
FunctionPass * | createMIRAddFSDiscriminatorsPass (sampleprof::FSDiscriminatorPass P) |
Add Flow Sensitive Discriminators. | |
FunctionPass * | createMIRProfileLoaderPass (std::string File, std::string RemappingFile, sampleprof::FSDiscriminatorPass P, IntrusiveRefCntPtr< vfs::FileSystem > FS) |
Read Flow Sensitive Profile. | |
ModulePass * | createDebugifyMachineModulePass () |
Creates MIR Debugify pass. | |
ModulePass * | createStripDebugMachineModulePass (bool OnlyDebugified) |
Creates MIR Strip Debug pass. | |
ModulePass * | createCheckDebugMachineModulePass () |
Creates MIR Check Debug pass. | |
FunctionPass * | createX86LowerAMXTypePass () |
The pass transforms load/store <256 x i32> to AMX load/store intrinsics or split the data to two <128 x i32>. | |
FunctionPass * | createX86LowerAMXIntrinsicsPass () |
The pass transforms amx intrinsics to scalar operation if the function has optnone attribute or it is O0. | |
FunctionPass * | createRegAllocScoringPass () |
When learning an eviction policy, extract score(reward) information, otherwise this does nothing. | |
ModulePass * | createJMCInstrumenterPass () |
JMC instrument pass. | |
FunctionPass * | createSelectOptimizePass () |
This pass converts conditional moves to conditional jumps when profitable. | |
FunctionPass * | createCallBrPass () |
FunctionPass * | createKCFIPass () |
Lowers KCFI operand bundles for indirect calls. | |
raw_ostream & | operator<< (raw_ostream &OS, const PseudoSourceValue *PSV) |
FunctionPass * | createPBQPRegisterAllocator (char *customPassID=nullptr) |
Create a PBQP register allocator instance. | |
raw_ostream & | operator<< (raw_ostream &OS, const RegisterBank &RegBank) |
raw_ostream & | operator<< (raw_ostream &OS, const RegisterBankInfo::PartialMapping &PartMapping) |
raw_ostream & | operator<< (raw_ostream &OS, const RegisterBankInfo::ValueMapping &ValMapping) |
raw_ostream & | operator<< (raw_ostream &OS, const RegisterBankInfo::InstructionMapping &InstrMapping) |
raw_ostream & | operator<< (raw_ostream &OS, const RegisterBankInfo::OperandsMapper &OpdMapper) |
hash_code | hash_value (const RegisterBankInfo::PartialMapping &PartMapping) |
Hashing function for PartialMapping. | |
void | dumpRegSetPressure (ArrayRef< unsigned > SetPressure, const TargetRegisterInfo *TRI) |
void | scavengeFrameVirtualRegs (MachineFunction &MF, RegScavenger &RS) |
Replaces all frame index virtual registers with physical registers. | |
raw_ostream & | operator<< (raw_ostream &OS, const ILPValue &Val) |
ScheduleDAGSDNodes * | createBURRListDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel) |
createBURRListDAGScheduler - This creates a bottom up register usage reduction list scheduler. | |
ScheduleDAGSDNodes * | createSourceListDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel) |
createSourceListDAGScheduler - This creates a bottom up list scheduler that schedules nodes in source code order when possible. | |
ScheduleDAGSDNodes * | createHybridListDAGScheduler (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. | |
ScheduleDAGSDNodes * | createILPListDAGScheduler (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. | |
ScheduleDAGSDNodes * | createFastDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel) |
createFastDAGScheduler - This creates a "fast" scheduler. | |
ScheduleDAGSDNodes * | createVLIWDAGScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel) |
createVLIWDAGScheduler - Scheduler for VLIW targets. | |
ScheduleDAGSDNodes * | createDefaultScheduler (SelectionDAGISel *IS, CodeGenOptLevel OptLevel) |
createDefaultScheduler - This creates an instruction scheduler appropriate for the target. | |
ScheduleDAGSDNodes * | createDAGLinearizer (SelectionDAGISel *IS, CodeGenOptLevel OptLevel) |
createDAGLinearizer - This creates a "no-scheduling" scheduler which linearize the DAG using topological order. | |
void | checkForCycles (const SelectionDAG *DAG, bool force=false) |
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) |
bool | isNullConstant (SDValue V) |
Returns true if V is a constant integer zero. | |
bool | isNullConstantOrUndef (SDValue V) |
Returns true if V is a constant integer zero or an UNDEF node. | |
bool | isNullFPConstant (SDValue V) |
Returns true if V is an FP constant with a value of positive zero. | |
bool | isAllOnesConstant (SDValue V) |
Returns true if V is an integer constant with all bits set. | |
bool | isOneConstant (SDValue V) |
Returns true if V is a constant integer one. | |
bool | isMinSignedConstant (SDValue V) |
Returns true if V is a constant min signed integer value. | |
bool | isNeutralConstant (unsigned Opc, SDNodeFlags Flags, SDValue V, unsigned OperandNo) |
Returns true if V is a neutral element of Opc with Flags. | |
SDValue | peekThroughBitcasts (SDValue V) |
Return the non-bitcasted source operand of V if it exists. | |
SDValue | peekThroughOneUseBitcasts (SDValue V) |
Return the non-bitcasted and one-use source operand of V if it exists. | |
SDValue | peekThroughExtractSubvectors (SDValue V) |
Return the non-extracted vector source operand of V if it exists. | |
SDValue | peekThroughTruncates (SDValue V) |
Return the non-truncated source operand of V if it exists. | |
bool | isBitwiseNot (SDValue V, bool AllowUndefs=false) |
Returns true if V is a bitwise not operation. | |
SDValue | getBitwiseNotOperand (SDValue V, SDValue Mask, bool AllowUndefs) |
If V is a bitwise not, returns the inverted operand. | |
ConstantSDNode * | isConstOrConstSplat (SDValue N, bool AllowUndefs=false, bool AllowTruncation=false) |
Returns the SDNode if it is a constant splat BuildVector or constant int. | |
ConstantSDNode * | 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. | |
ConstantFPSDNode * | isConstOrConstSplatFP (SDValue N, bool AllowUndefs=false) |
Returns the SDNode if it is a constant splat BuildVector or constant float. | |
ConstantFPSDNode * | isConstOrConstSplatFP (SDValue N, const APInt &DemandedElts, bool AllowUndefs=false) |
Returns the SDNode if it is a demanded constant splat BuildVector or constant float. | |
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). | |
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). | |
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). | |
bool | isIntOrFPConstant (SDValue V) |
Return true if V is either a integer or FP constant. | |
raw_ostream & | operator<< (raw_ostream &os, SlotIndex li) |
Spiller * | createInlineSpiller (const Spiller::RequiredAnalyses &Analyses, MachineFunction &MF, VirtRegMap &VRM, VirtRegAuxInfo &VRAI) |
Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap. | |
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) |
void | registerCodeGenCallback (PassInstrumentationCallbacks &PIC, TargetMachine &) |
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. | |
Printable | printRegUnit (unsigned Unit, const TargetRegisterInfo *TRI) |
Create Printable object to print register units on a raw_ostream. | |
Printable | printVRegOrUnit (unsigned VRegOrUnit, const TargetRegisterInfo *TRI) |
Create Printable object to print virtual registers and physical registers on a raw_ostream. | |
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_ostream & | operator<< (raw_ostream &OS, const EVT &V) |
raw_ostream & | operator<< (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_ostream & | operator<< (raw_ostream &OS, const LLT &Ty) |
raw_ostream & | operator<< (raw_ostream &OS, const MVT &VT) |
std::optional< StringRef > | 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. | |
std::optional< ObjCSelectorNames > | getObjCNamesIfSelector (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) |
raw_ostream & | operator<< (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) |
void | dumpTypeQualifiedName (const DWARFDie &DIE, raw_ostream &OS) |
void | dumpTypeUnqualifiedName (const DWARFDie &DIE, raw_ostream &OS, std::string *OriginalFullName=nullptr) |
bool | operator== (const DWARFExpression::iterator &LHS, const DWARFExpression::iterator &RHS) |
bool | operator== (const DWARFLocationExpression &L, const DWARFLocationExpression &R) |
bool | operator!= (const DWARFLocationExpression &L, const DWARFLocationExpression &R) |
raw_ostream & | operator<< (raw_ostream &OS, const DWARFLocationExpression &Loc) |
const DWARFUnitIndex & | getDWARFUnitIndex (DWARFContext &Context, DWARFSectionKind Kind) |
bool | isCompileUnit (const std::unique_ptr< DWARFUnit > &U) |
const char * | toString (DWARFSectionKind Kind) |
uint32_t | serializeSectionKind (DWARFSectionKind Kind, unsigned IndexVersion) |
Convert the internal value for a section kind to an on-disk value. | |
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) |
raw_ostream & | operator<< (raw_ostream &OS, const AddressRange &R) |
raw_ostream & | operator<< (raw_ostream &OS, const AddressRanges &AR) |
bool | canUseDebuginfod () |
Returns false if a debuginfod lookup can be determined to have no chance of succeeding. | |
SmallVector< StringRef > | getDefaultDebuginfodUrls () |
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. | |
char * | 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. | |
char * | 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. | |
std::optional< size_t > | getArm64ECInsertionPointInMangledName (std::string_view MangledName) |
char * | rustDemangle (std::string_view MangledName) |
char * | dlangDemangle (std::string_view MangledName) |
std::string | demangle (std::string_view MangledName) |
Attempt to demangle a string using different demangling schemes. | |
bool | nonMicrosoftDemangle (std::string_view MangledName, std::string &Result, bool CanHaveLeadingDot=true, bool ParseParams=true) |
Error | write (MCStreamer &Out, ArrayRef< std::string > Inputs, OnCuIndexOverflow OverflowOptValue) |
unsigned | getContributionIndex (DWARFSectionKind Kind, uint32_t IndexVersion) |
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) |
Expected< InfoSectionUnitHeader > | parseInfoSectionUnitHeader (StringRef Info) |
void | writeStringsAndOffsets (MCStreamer &Out, DWPStringPool &Strings, MCSection *StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version) |
Error | buildDuplicateError (const std::pair< uint64_t, UnitIndexEntry > &PrevE, const CompileUnitIdentifiers &ID, StringRef DWPName) |
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) |
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) |
void | spliceBB (IRBuilderBase::InsertPoint IP, BasicBlock *New, bool CreateBranch) |
Move the instruction after an InsertPoint to the beginning of another BasicBlock. | |
void | spliceBB (IRBuilder<> &Builder, BasicBlock *New, bool CreateBranch) |
Splice a BasicBlock at an IRBuilder's current insertion point. | |
BasicBlock * | splitBB (IRBuilderBase::InsertPoint IP, bool CreateBranch, llvm::Twine Name={}) |
Split a BasicBlock at an InsertPoint, even if the block is degenerate (missing the terminator). | |
BasicBlock * | splitBB (IRBuilderBase &Builder, bool CreateBranch, llvm::Twine Name={}) |
Split a BasicBlock at Builder's insertion point, even if the block is degenerate (missing the terminator). | |
BasicBlock * | splitBB (IRBuilder<> &Builder, bool CreateBranch, llvm::Twine Name) |
Split a BasicBlock at Builder's insertion point, even if the block is degenerate (missing the terminator). | |
BasicBlock * | splitBBWithSuffix (IRBuilderBase &Builder, bool CreateBranch, llvm::Twine Suffix=".split") |
Like splitBB, but reuses the current block's name for the new name. | |
void | parseFuzzerCLOpts (int ArgC, char *ArgV[]) |
Parse cl::opts from a fuzz target commandline. | |
void | handleExecNameEncodedBEOpts (StringRef ExecName) |
Handle backend options that are encoded in the executable name. | |
void | handleExecNameEncodedOptimizerOpts (StringRef ExecName) |
Handle optimizer options which are encoded in the executable name. | |
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. | |
std::unique_ptr< Module > | parseModule (const uint8_t *Data, size_t Size, LLVMContext &Context) |
Fuzzer friendly interface for the llvm bitcode parser. | |
size_t | writeModule (const Module &M, uint8_t *Dest, size_t MaxSize) |
Fuzzer friendly interface for the llvm bitcode printer. | |
std::unique_ptr< Module > | parseAndVerify (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) |
void | initializeCore (PassRegistry &) |
Initialize all passes linked into the Core library. | |
void | initializeTransformUtils (PassRegistry &) |
Initialize all passes linked into the TransformUtils library. | |
void | initializeScalarOpts (PassRegistry &) |
Initialize all passes linked into the ScalarOpts library. | |
void | initializeVectorization (PassRegistry &) |
Initialize all passes linked into the Vectorize library. | |
void | initializeInstCombine (PassRegistry &) |
Initialize all passes linked into the InstCombine library. | |
void | initializeIPO (PassRegistry &) |
Initialize all passes linked into the IPO library. | |
void | initializeAnalysis (PassRegistry &) |
Initialize all passes linked into the Analysis library. | |
void | initializeCodeGen (PassRegistry &) |
Initialize all passes linked into the CodeGen library. | |
void | initializeGlobalISel (PassRegistry &) |
Initialize all passes linked into the GlobalISel library. | |
void | initializeTarget (PassRegistry &) |
Initialize all passes linked into the CodeGen library. | |
void | initializeAAResultsWrapperPassPass (PassRegistry &) |
void | initializeAlwaysInlinerLegacyPassPass (PassRegistry &) |
void | initializeAssignmentTrackingAnalysisPass (PassRegistry &) |
void | initializeAssumptionCacheTrackerPass (PassRegistry &) |
void | initializeAtomicExpandLegacyPass (PassRegistry &) |
void | initializeBasicBlockPathCloningPass (PassRegistry &) |
void | initializeBasicBlockSectionsProfileReaderWrapperPassPass (PassRegistry &) |
void | initializeBasicBlockSectionsPass (PassRegistry &) |
void | initializeBarrierNoopPass (PassRegistry &) |
void | initializeBasicAAWrapperPassPass (PassRegistry &) |
void | initializeBlockFrequencyInfoWrapperPassPass (PassRegistry &) |
void | initializeBranchFolderPassPass (PassRegistry &) |
void | initializeBranchProbabilityInfoWrapperPassPass (PassRegistry &) |
void | initializeBranchRelaxationPass (PassRegistry &) |
void | initializeBreakCriticalEdgesPass (PassRegistry &) |
void | initializeBreakFalseDepsPass (PassRegistry &) |
void | initializeCanonicalizeFreezeInLoopsPass (PassRegistry &) |
void | initializeCFGSimplifyPassPass (PassRegistry &) |
void | initializeCFGuardPass (PassRegistry &) |
void | initializeCFGuardLongjmpPass (PassRegistry &) |
void | initializeCFIFixupPass (PassRegistry &) |
void | initializeCFIInstrInserterPass (PassRegistry &) |
void | initializeCallBrPreparePass (PassRegistry &) |
void | initializeCallGraphDOTPrinterPass (PassRegistry &) |
void | initializeCallGraphViewerPass (PassRegistry &) |
void | initializeCallGraphWrapperPassPass (PassRegistry &) |
void | initializeCheckDebugMachineModulePass (PassRegistry &) |
void | initializeCodeGenPrepareLegacyPassPass (PassRegistry &) |
void | initializeComplexDeinterleavingLegacyPassPass (PassRegistry &) |
void | initializeConstantHoistingLegacyPassPass (PassRegistry &) |
void | initializeCycleInfoWrapperPassPass (PassRegistry &) |
void | initializeDAEPass (PassRegistry &) |
void | initializeDAHPass (PassRegistry &) |
void | initializeDCELegacyPassPass (PassRegistry &) |
void | initializeDXILMetadataAnalysisWrapperPassPass (PassRegistry &) |
void | initializeDXILMetadataAnalysisWrapperPrinterPass (PassRegistry &) |
void | initializeDXILResourceBindingWrapperPassPass (PassRegistry &) |
void | initializeDXILResourceTypeWrapperPassPass (PassRegistry &) |
void | initializeDeadMachineInstructionElimPass (PassRegistry &) |
void | initializeDebugifyMachineModulePass (PassRegistry &) |
void | initializeDependenceAnalysisWrapperPassPass (PassRegistry &) |
void | initializeDetectDeadLanesPass (PassRegistry &) |
void | initializeDomOnlyPrinterWrapperPassPass (PassRegistry &) |
void | initializeDomOnlyViewerWrapperPassPass (PassRegistry &) |
void | initializeDomPrinterWrapperPassPass (PassRegistry &) |
void | initializeDomViewerWrapperPassPass (PassRegistry &) |
void | initializeDominanceFrontierWrapperPassPass (PassRegistry &) |
void | initializeDominatorTreeWrapperPassPass (PassRegistry &) |
void | initializeDwarfEHPrepareLegacyPassPass (PassRegistry &) |
void | initializeEarlyCSELegacyPassPass (PassRegistry &) |
void | initializeEarlyCSEMemSSALegacyPassPass (PassRegistry &) |
void | initializeEarlyIfConverterLegacyPass (PassRegistry &) |
void | initializeEarlyIfPredicatorPass (PassRegistry &) |
void | initializeEarlyMachineLICMPass (PassRegistry &) |
void | initializeEarlyTailDuplicateLegacyPass (PassRegistry &) |
void | initializeEdgeBundlesWrapperLegacyPass (PassRegistry &) |
void | initializeEHContGuardCatchretPass (PassRegistry &) |
void | initializeExpandLargeFpConvertLegacyPassPass (PassRegistry &) |
void | initializeExpandLargeDivRemLegacyPassPass (PassRegistry &) |
void | initializeExpandMemCmpLegacyPassPass (PassRegistry &) |
void | initializeExpandPostRAPass (PassRegistry &) |
void | initializeExpandReductionsPass (PassRegistry &) |
void | initializeExpandVariadicsPass (PassRegistry &) |
void | initializeExpandVectorPredicationPass (PassRegistry &) |
void | initializeExternalAAWrapperPassPass (PassRegistry &) |
void | initializeFEntryInserterPass (PassRegistry &) |
void | initializeFinalizeISelPass (PassRegistry &) |
void | initializeFinalizeMachineBundlesPass (PassRegistry &) |
void | initializeFixIrreduciblePass (PassRegistry &) |
void | initializeFixupStatepointCallerSavedPass (PassRegistry &) |
void | initializeFlattenCFGLegacyPassPass (PassRegistry &) |
void | initializeFuncletLayoutPass (PassRegistry &) |
void | initializeGCEmptyBasicBlocksPass (PassRegistry &) |
void | initializeGCMachineCodeAnalysisPass (PassRegistry &) |
void | initializeGCModuleInfoPass (PassRegistry &) |
void | initializeGVNLegacyPassPass (PassRegistry &) |
void | initializeGlobalMergeFuncPassWrapperPass (PassRegistry &) |
void | initializeGlobalMergePass (PassRegistry &) |
void | initializeGlobalsAAWrapperPassPass (PassRegistry &) |
void | initializeHardwareLoopsLegacyPass (PassRegistry &) |
void | initializeMIRProfileLoaderPassPass (PassRegistry &) |
void | initializeIRSimilarityIdentifierWrapperPassPass (PassRegistry &) |
void | initializeIRTranslatorPass (PassRegistry &) |
void | initializeIVUsersWrapperPassPass (PassRegistry &) |
void | initializeIfConverterPass (PassRegistry &) |
void | initializeImmutableModuleSummaryIndexWrapperPassPass (PassRegistry &) |
void | initializeImplicitNullChecksPass (PassRegistry &) |
void | initializeIndirectBrExpandLegacyPassPass (PassRegistry &) |
void | initializeInferAddressSpacesPass (PassRegistry &) |
void | initializeInstSimplifyLegacyPassPass (PassRegistry &) |
void | initializeInstructionCombiningPassPass (PassRegistry &) |
void | initializeInstructionSelectPass (PassRegistry &) |
void | initializeInterleavedAccessPass (PassRegistry &) |
void | initializeInterleavedLoadCombinePass (PassRegistry &) |
void | initializeJMCInstrumenterPass (PassRegistry &) |
void | initializeKCFIPass (PassRegistry &) |
void | initializeLCSSAVerificationPassPass (PassRegistry &) |
void | initializeLCSSAWrapperPassPass (PassRegistry &) |
void | initializeLazyBlockFrequencyInfoPassPass (PassRegistry &) |
void | initializeLazyBranchProbabilityInfoPassPass (PassRegistry &) |
void | initializeLazyMachineBlockFrequencyInfoPassPass (PassRegistry &) |
void | initializeLazyValueInfoWrapperPassPass (PassRegistry &) |
void | initializeLegacyLICMPassPass (PassRegistry &) |
void | initializeLegalizerPass (PassRegistry &) |
void | initializeGISelCSEAnalysisWrapperPassPass (PassRegistry &) |
void | initializeGISelKnownBitsAnalysisPass (PassRegistry &) |
void | initializeLiveDebugValuesPass (PassRegistry &) |
void | initializeLiveDebugVariablesWrapperLegacyPass (PassRegistry &) |
void | initializeLiveIntervalsWrapperPassPass (PassRegistry &) |
void | initializeLiveRangeShrinkPass (PassRegistry &) |
void | initializeLiveRegMatrixWrapperLegacyPass (PassRegistry &) |
void | initializeLiveStacksWrapperLegacyPass (PassRegistry &) |
void | initializeLiveVariablesWrapperPassPass (PassRegistry &) |
void | initializeLoadStoreOptPass (PassRegistry &) |
void | initializeLoadStoreVectorizerLegacyPassPass (PassRegistry &) |
void | initializeLocalStackSlotPassPass (PassRegistry &) |
void | initializeLocalizerPass (PassRegistry &) |
void | initializeLoopDataPrefetchLegacyPassPass (PassRegistry &) |
void | initializeLoopExtractorLegacyPassPass (PassRegistry &) |
void | initializeLoopInfoWrapperPassPass (PassRegistry &) |
void | initializeLoopPassPass (PassRegistry &) |
Manually defined generic "LoopPass" dependency initialization. | |
void | initializeLoopSimplifyPass (PassRegistry &) |
void | initializeLoopStrengthReducePass (PassRegistry &) |
void | initializeLoopTermFoldPass (PassRegistry &) |
void | initializeLoopUnrollPass (PassRegistry &) |
void | initializeLowerAtomicLegacyPassPass (PassRegistry &) |
void | initializeLowerConstantIntrinsicsPass (PassRegistry &) |
void | initializeLowerEmuTLSPass (PassRegistry &) |
void | initializeLowerGlobalDtorsLegacyPassPass (PassRegistry &) |
void | initializeLowerIntrinsicsPass (PassRegistry &) |
void | initializeLowerInvokeLegacyPassPass (PassRegistry &) |
void | initializeLowerSwitchLegacyPassPass (PassRegistry &) |
void | initializeMIRAddFSDiscriminatorsPass (PassRegistry &) |
void | initializeMIRCanonicalizerPass (PassRegistry &) |
void | initializeMIRNamerPass (PassRegistry &) |
void | initializeMIRPrintingPassPass (PassRegistry &) |
void | initializeMachineBlockFrequencyInfoWrapperPassPass (PassRegistry &) |
void | initializeMachineBlockPlacementPass (PassRegistry &) |
void | initializeMachineBlockPlacementStatsPass (PassRegistry &) |
void | initializeMachineBranchProbabilityInfoWrapperPassPass (PassRegistry &) |
void | initializeMachineCFGPrinterPass (PassRegistry &) |
void | initializeMachineCSELegacyPass (PassRegistry &) |
void | initializeMachineCombinerPass (PassRegistry &) |
void | initializeMachineCopyPropagationPass (PassRegistry &) |
void | initializeMachineCycleInfoPrinterPassPass (PassRegistry &) |
void | initializeMachineCycleInfoWrapperPassPass (PassRegistry &) |
void | initializeMachineDominanceFrontierPass (PassRegistry &) |
void | initializeMachineDominatorTreeWrapperPassPass (PassRegistry &) |
void | initializeMachineFunctionPrinterPassPass (PassRegistry &) |
void | initializeMachineFunctionSplitterPass (PassRegistry &) |
void | initializeMachineLateInstrsCleanupPass (PassRegistry &) |
void | initializeMachineLICMPass (PassRegistry &) |
void | initializeMachineLoopInfoWrapperPassPass (PassRegistry &) |
void | initializeMachineModuleInfoWrapperPassPass (PassRegistry &) |
void | initializeMachineOptimizationRemarkEmitterPassPass (PassRegistry &) |
void | initializeMachineOutlinerPass (PassRegistry &) |
void | initializeMachinePipelinerPass (PassRegistry &) |
void | initializeMachinePostDominatorTreeWrapperPassPass (PassRegistry &) |
void | initializeMachineRegionInfoPassPass (PassRegistry &) |
void | initializeMachineSanitizerBinaryMetadataPass (PassRegistry &) |
void | initializeMachineSchedulerPass (PassRegistry &) |
void | initializeMachineSinkingPass (PassRegistry &) |
void | initializeMachineTraceMetricsWrapperPassPass (PassRegistry &) |
void | initializeMachineUniformityInfoPrinterPassPass (PassRegistry &) |
void | initializeMachineUniformityAnalysisPassPass (PassRegistry &) |
void | initializeMachineVerifierLegacyPassPass (PassRegistry &) |
void | initializeMemoryDependenceWrapperPassPass (PassRegistry &) |
void | initializeMemorySSAWrapperPassPass (PassRegistry &) |
void | initializeMergeICmpsLegacyPassPass (PassRegistry &) |
void | initializeModuleSummaryIndexWrapperPassPass (PassRegistry &) |
void | initializeModuloScheduleTestPass (PassRegistry &) |
void | initializeNaryReassociateLegacyPassPass (PassRegistry &) |
void | initializeObjCARCContractLegacyPassPass (PassRegistry &) |
void | initializeOptimizationRemarkEmitterWrapperPassPass (PassRegistry &) |
void | initializeOptimizePHIsLegacyPass (PassRegistry &) |
void | initializePEIPass (PassRegistry &) |
void | initializePHIEliminationPass (PassRegistry &) |
void | initializePartiallyInlineLibCallsLegacyPassPass (PassRegistry &) |
void | initializePatchableFunctionPass (PassRegistry &) |
void | initializePeepholeOptimizerLegacyPass (PassRegistry &) |
void | initializePhiValuesWrapperPassPass (PassRegistry &) |
void | initializePhysicalRegisterUsageInfoWrapperLegacyPass (PassRegistry &) |
void | initializePlaceBackedgeSafepointsLegacyPassPass (PassRegistry &) |
void | initializePostDomOnlyPrinterWrapperPassPass (PassRegistry &) |
void | initializePostDomOnlyViewerWrapperPassPass (PassRegistry &) |
void | initializePostDomPrinterWrapperPassPass (PassRegistry &) |
void | initializePostDomViewerWrapperPassPass (PassRegistry &) |
void | initializePostDominatorTreeWrapperPassPass (PassRegistry &) |
void | initializePostInlineEntryExitInstrumenterPass (PassRegistry &) |
void | initializePostMachineSchedulerPass (PassRegistry &) |
void | initializePostRAHazardRecognizerPass (PassRegistry &) |
void | initializePostRAMachineSinkingPass (PassRegistry &) |
void | initializePostRASchedulerPass (PassRegistry &) |
void | initializePreISelIntrinsicLoweringLegacyPassPass (PassRegistry &) |
void | initializePrintFunctionPassWrapperPass (PassRegistry &) |
void | initializePrintModulePassWrapperPass (PassRegistry &) |
void | initializeProcessImplicitDefsPass (PassRegistry &) |
void | initializeProfileSummaryInfoWrapperPassPass (PassRegistry &) |
void | initializePromoteLegacyPassPass (PassRegistry &) |
void | initializeRABasicPass (PassRegistry &) |
void | initializePseudoProbeInserterPass (PassRegistry &) |
void | initializeRAGreedyPass (PassRegistry &) |
void | initializeReachingDefAnalysisPass (PassRegistry &) |
void | initializeReassociateLegacyPassPass (PassRegistry &) |
void | initializeRegAllocEvictionAdvisorAnalysisPass (PassRegistry &) |
void | initializeRegAllocFastPass (PassRegistry &) |
void | initializeRegAllocPriorityAdvisorAnalysisPass (PassRegistry &) |
void | initializeRegAllocScoringPass (PassRegistry &) |
void | initializeRegBankSelectPass (PassRegistry &) |
void | initializeRegToMemWrapperPassPass (PassRegistry &) |
void | initializeRegUsageInfoCollectorLegacyPass (PassRegistry &) |
void | initializeRegUsageInfoPropagationLegacyPass (PassRegistry &) |
void | initializeRegionInfoPassPass (PassRegistry &) |
void | initializeRegionOnlyPrinterPass (PassRegistry &) |
void | initializeRegionOnlyViewerPass (PassRegistry &) |
void | initializeRegionPrinterPass (PassRegistry &) |
void | initializeRegionViewerPass (PassRegistry &) |
void | initializeRegisterCoalescerPass (PassRegistry &) |
void | initializeRemoveLoadsIntoFakeUsesPass (PassRegistry &) |
void | initializeRemoveRedundantDebugValuesPass (PassRegistry &) |
void | initializeRenameIndependentSubregsPass (PassRegistry &) |
void | initializeReplaceWithVeclibLegacyPass (PassRegistry &) |
void | initializeResetMachineFunctionPass (PassRegistry &) |
void | initializeSCEVAAWrapperPassPass (PassRegistry &) |
void | initializeSROALegacyPassPass (PassRegistry &) |
void | initializeSafeStackLegacyPassPass (PassRegistry &) |
void | initializeSafepointIRVerifierPass (PassRegistry &) |
void | initializeSelectOptimizePass (PassRegistry &) |
void | initializeScalarEvolutionWrapperPassPass (PassRegistry &) |
void | initializeScalarizeMaskedMemIntrinLegacyPassPass (PassRegistry &) |
void | initializeScalarizerLegacyPassPass (PassRegistry &) |
void | initializeScavengerTestPass (PassRegistry &) |
void | initializeScopedNoAliasAAWrapperPassPass (PassRegistry &) |
void | initializeSeparateConstOffsetFromGEPLegacyPassPass (PassRegistry &) |
void | initializeShadowStackGCLoweringPass (PassRegistry &) |
void | initializeShrinkWrapPass (PassRegistry &) |
void | initializeSingleLoopExtractorPass (PassRegistry &) |
void | initializeSinkingLegacyPassPass (PassRegistry &) |
void | initializeSjLjEHPreparePass (PassRegistry &) |
void | initializeSlotIndexesWrapperPassPass (PassRegistry &) |
void | initializeSpeculativeExecutionLegacyPassPass (PassRegistry &) |
void | initializeSpillPlacementWrapperLegacyPass (PassRegistry &) |
void | initializeStackColoringLegacyPass (PassRegistry &) |
void | initializeStackFrameLayoutAnalysisPassPass (PassRegistry &) |
void | initializeStaticDataSplitterPass (PassRegistry &) |
void | initializeStackMapLivenessPass (PassRegistry &) |
void | initializeStackProtectorPass (PassRegistry &) |
void | initializeStackSafetyGlobalInfoWrapperPassPass (PassRegistry &) |
void | initializeStackSafetyInfoWrapperPassPass (PassRegistry &) |
void | initializeStackSlotColoringPass (PassRegistry &) |
void | initializeStraightLineStrengthReduceLegacyPassPass (PassRegistry &) |
void | initializeStripDebugMachineModulePass (PassRegistry &) |
void | initializeStructurizeCFGLegacyPassPass (PassRegistry &) |
void | initializeTailCallElimPass (PassRegistry &) |
void | initializeTailDuplicateLegacyPass (PassRegistry &) |
void | initializeTargetLibraryInfoWrapperPassPass (PassRegistry &) |
void | initializeTargetPassConfigPass (PassRegistry &) |
void | initializeTargetTransformInfoWrapperPassPass (PassRegistry &) |
void | initializeTwoAddressInstructionLegacyPassPass (PassRegistry &) |
void | initializeTypeBasedAAWrapperPassPass (PassRegistry &) |
void | initializeTypePromotionLegacyPass (PassRegistry &) |
void | initializeInitUndefPass (PassRegistry &) |
void | initializeUniformityInfoWrapperPassPass (PassRegistry &) |
void | initializeUnifyLoopExitsLegacyPassPass (PassRegistry &) |
void | initializeUnpackMachineBundlesPass (PassRegistry &) |
void | initializeUnreachableBlockElimLegacyPassPass (PassRegistry &) |
void | initializeUnreachableMachineBlockElimPass (PassRegistry &) |
void | initializeVerifierLegacyPassPass (PassRegistry &) |
void | initializeVirtRegMapWrapperLegacyPass (PassRegistry &) |
void | initializeVirtRegRewriterPass (PassRegistry &) |
void | initializeWasmEHPreparePass (PassRegistry &) |
void | initializeWinEHPreparePass (PassRegistry &) |
void | initializeWriteBitcodePassPass (PassRegistry &) |
void | initializeXRayInstrumentationPass (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. | |
bool | hasAssumption (const Function &F, const KnownAssumptionString &AssumptionStr) |
Return true if F has the assumption AssumptionStr attached. | |
bool | hasAssumption (const CallBase &CB, const KnownAssumptionString &AssumptionStr) |
Return true if CB or the callee has the assumption AssumptionStr attached. | |
DenseSet< StringRef > | getAssumptions (const Function &F) |
Return the set of all assumptions for the function F . | |
DenseSet< StringRef > | getAssumptions (const CallBase &CB) |
Return the set of all assumptions for the call CB . | |
bool | addAssumptions (Function &F, const DenseSet< StringRef > &Assumptions) |
Appends the set of assumptions Assumptions to \F. | |
bool | addAssumptions (CallBase &CB, const DenseSet< StringRef > &Assumptions) |
Appends the set of assumptions Assumptions to \CB. | |
LLVMAttributeRef | wrap (Attribute Attr) |
Attribute | unwrap (LLVMAttributeRef Attr) |
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. | |
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. | |
void | UpgradeInlineAsmString (std::string *AsmStr) |
Upgrade comment in call to inline asm that represents an objc retain release marker. | |
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. | |
GlobalVariable * | UpgradeGlobalVariable (GlobalVariable *GV) |
This checks for global variables which should be upgraded. | |
bool | UpgradeModuleFlags (Module &M) |
This checks for module flags which should be upgraded. | |
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. | |
void | UpgradeSectionAttributes (Module &M) |
void | UpgradeFunctionAttributes (Function &F) |
Correct any IR that is relying on old function attribute behavior. | |
MDNode * | 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. | |
Instruction * | 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. | |
Constant * | 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. | |
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. | |
MDNode * | upgradeInstructionLoopAttachment (MDNode &N) |
Upgrade the loop attachment metadata node. | |
std::string | UpgradeDataLayoutString (StringRef DL, StringRef Triple) |
Upgrade the datalayout string by adding a section for address space pointers. | |
void | UpgradeAttributes (AttrBuilder &B) |
Upgrade attributes that changed format or kind. | |
void | UpgradeOperandBundles (std::vector< OperandBundleDef > &OperandBundles) |
Upgrade operand bundles (without knowing about their user instruction). | |
BasicBlock::iterator | skipDebugIntrinsics (BasicBlock::iterator It) |
Advance It while it points to a debug instruction and return the result. | |
void | linkAllBuiltinGCs () |
FIXME: Collector instances are not useful on their own. | |
void | linkOcamlGCPrinter () |
Creates an ocaml-compatible metadata printer. | |
void | linkErlangGCPrinter () |
Creates an erlang-compatible metadata printer. | |
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_ostream & | operator<< (raw_ostream &OS, const Comdat &C) |
Constant * | ConstantFoldCastInstruction (unsigned opcode, Constant *V, Type *DestTy) |
Constant * | ConstantFoldUnaryInstruction (unsigned Opcode, Constant *V) |
Constant * | ConstantFoldBinaryInstruction (unsigned Opcode, Constant *V1, Constant *V2) |
Constant * | ConstantFoldCompareInstruction (CmpInst::Predicate Predicate, Constant *C1, Constant *C2) |
Constant * | ConstantFoldGetElementPtr (Type *Ty, Constant *C, std::optional< ConstantRange > InRange, ArrayRef< Value * > Idxs) |
raw_ostream & | operator<< (raw_ostream &OS, const ConstantFPRange &CR) |
raw_ostream & | operator<< (raw_ostream &OS, const ConstantRange &CR) |
ConstantRange | getConstantRangeFromMetadata (const MDNode &RangeMD) |
Parse out a conservative ConstantRange from !range metadata. | |
DataLayout * | unwrap (LLVMTargetDataRef P) |
LLVMTargetDataRef | wrap (const DataLayout *P) |
TinyPtrVector< DbgDeclareInst * > | findDbgDeclares (Value *V) |
Finds dbg.declare intrinsics declaring local variables as living in the memory that 'V' points to. | |
TinyPtrVector< DbgVariableRecord * > | findDVRDeclares (Value *V) |
As above, for DVRDeclares. | |
TinyPtrVector< DbgVariableRecord * > | findDVRValues (Value *V) |
As above, for DVRValues. | |
void | findDbgValues (SmallVectorImpl< DbgValueInst * > &DbgValues, Value *V, SmallVectorImpl< DbgVariableRecord * > *DbgVariableRecords=nullptr) |
Finds the llvm.dbg.value intrinsics describing a value. | |
void | findDbgUsers (SmallVectorImpl< DbgVariableIntrinsic * > &DbgInsts, Value *V, SmallVectorImpl< DbgVariableRecord * > *DbgVariableRecords=nullptr) |
Finds the debug info intrinsics describing a value. | |
DISubprogram * | getDISubprogram (const MDNode *Scope) |
Find subprogram that is enclosing this scope. | |
DebugLoc | getDebugValueLoc (DbgVariableIntrinsic *DII) |
Produce a DebugLoc to use for each dbg.declare that is promoted to a dbg.value. | |
DebugLoc | getDebugValueLoc (DbgVariableRecord *DVR) |
bool | StripDebugInfo (Module &M) |
Strip debug info in the module if it exists. | |
bool | stripDebugInfo (Function &F) |
bool | stripNonLineTableDebugInfo (Module &M) |
Downgrade the debug info in a module to contain only line table information. | |
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. | |
unsigned | getDebugMetadataVersionFromModule (const Module &M) |
Return Debug Info Metadata Version by checking module flags. | |
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_ostream & | operator<< (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_ostream & | operator<< (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. | |
template<typename T > | |
ScopedDbgInfoFormatSetter (T &Obj, bool NewState) -> ScopedDbgInfoFormatSetter< T > | |
int | getNextAvailablePluginDiagnosticKind () |
Get the next available kind ID for a plugin diagnostic. | |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef > S) |
Allow the insertion operator to return the actual remark type rather than a common base class. | |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef > S) |
Also allow r-value for the remark to allow insertion into a temporarily-constructed remark. | |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument > A) |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument > A) |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose > V) |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose > V) |
template<class RemarkT > | |
RemarkT & | operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs > EA) |
static DiagnosticSeverity | getDiagnosticSeverity (SourceMgr::DiagKind DK) |
void | diagnoseDontCall (const CallInst &CI) |
EHPersonality | classifyEHPersonality (const Value *Pers) |
See if the given exception handling personality function is one that we understand. | |
StringRef | getEHPersonalityName (EHPersonality Pers) |
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. | |
bool | canSimplifyInvokeNoUnwind (const Function *F) |
DenseMap< BasicBlock *, ColorVector > | colorEHFunclets (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_ostream & | operator<< (raw_ostream &O, FastMathFlags FMF) |
std::optional< RoundingMode > | convertStrToRoundingMode (StringRef) |
Returns a valid RoundingMode enumerator when given a string that is valid as input in constrained intrinsic rounding mode metadata. | |
std::optional< StringRef > | convertRoundingModeToStr (RoundingMode) |
For any RoundingMode enumerator, returns a string valid as input in constrained intrinsic rounding mode metadata. | |
std::optional< fp::ExceptionBehavior > | convertStrToExceptionBehavior (StringRef) |
Returns a valid ExceptionBehavior enumerator when given a string valid as input in constrained intrinsic exception behavior metadata. | |
std::optional< StringRef > | convertExceptionBehaviorToStr (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. | |
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. | |
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. | |
std::unique_ptr< GCStrategy > | getGCStrategy (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) |
raw_ostream & | operator<< (raw_ostream &OS, CmpInst::Predicate Pred) |
Type * | checkGEPType (Type *Ty) |
const Value * | getLoadStorePointerOperand (const Value *V) |
A helper function that returns the pointer operand of a load or store instruction. | |
Value * | getLoadStorePointerOperand (Value *V) |
const Value * | getPointerOperand (const Value *V) |
A helper function that returns the pointer operand of a load, store or GEP instruction. | |
Value * | getPointerOperand (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. | |
Type * | getLoadStoreType (const Value *I) |
A helper function that returns the type of a load or store instruction. | |
std::optional< SyncScope::ID > | getAtomicSyncScopeID (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<> | |
ModulePass * | 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 . | |
FunctionPass * | createPrintFunctionPass (raw_ostream &OS, const std::string &Banner="") |
Create and return a pass that prints functions to the specified raw_ostream as they are processed. | |
void | printLLVMNameWithoutPrefix (raw_ostream &OS, StringRef Name) |
Print out a name of an LLVM value without any prefixes. | |
bool | isIRPrintingPass (Pass *P) |
Return true if a pass is for IR printing. | |
LLVMContext ** | unwrap (LLVMContextRef *Tys) |
LLVMContextRef * | wrap (const LLVMContext **Tys) |
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. | |
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. | |
void | emitLinkerFlagsForGlobalCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &TT, Mangler &Mangler) |
void | emitLinkerFlagsForUsedCOFF (raw_ostream &OS, const GlobalValue *GV, const Triple &T, Mangler &M) |
std::optional< std::string > | getArm64ECMangledFunctionName (StringRef Name) |
Returns the ARM64EC mangled function name unless the input is already mangled. | |
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. | |
bool | canInstructionHaveMMRAs (const Instruction &I) |
Metadata ** | unwrap (LLVMMetadataRef *MDs) |
raw_ostream & | operator<< (raw_ostream &OS, const Metadata &MD) |
GlobalVariable * | collectUsedGlobalVariables (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_ostream & | operator<< (raw_ostream &O, const Module &M) |
An raw_ostream inserter for modules. | |
Module * | unwrap (LLVMModuleProviderRef MP) |
const char * | getHotnessName (CalleeInfo::HotnessType HT) |
raw_ostream & | operator<< (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_ostream & | operator<< (raw_ostream &OS, const CallsiteInfo &SNI) |
raw_ostream & | operator<< (raw_ostream &OS, const MIBInfo &MIB) |
raw_ostream & | operator<< (raw_ostream &OS, const AllocInfo &AE) |
OptPassGate & | getGlobalPassGate () |
Singleton instance of the OptBisect class, so multiple pass managers don't need to coordinate their uses of OptBisect. | |
bool | isSpecialPass (StringRef PassID, const std::vector< StringRef > &Specials) |
template<typename IRUnitT > | |
void | printIRUnitNameForStackTrace (raw_ostream &OS, const IRUnitT &IR) |
template<> | |
void | printIRUnitNameForStackTrace< Module > (raw_ostream &OS, const Module &IR) |
template<> | |
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. | |
void | reportAndResetTimings (raw_ostream *OutStream=nullptr) |
If -time-passes has been specified, report the timings immediately and then reset the timers to zero. | |
Timer * | getPassTimer (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) |
bool | hasProfMD (const Instruction &I) |
Checks if an Instruction has MD_prof Metadata. | |
bool | isBranchWeightMD (const MDNode *ProfileData) |
Checks if an MDNode contains Branch Weight Metadata. | |
bool | hasBranchWeightMD (const Instruction &I) |
Checks if an instructions has Branch Weight Metadata. | |
bool | hasValidBranchWeightMD (const Instruction &I) |
Checks if an instructions has valid Branch Weight Metadata. | |
MDNode * | getBranchWeightMDNode (const Instruction &I) |
Get the branch weights metadata node. | |
MDNode * | getValidBranchWeightMDNode (const Instruction &I) |
Get the valid branch weights metadata node. | |
bool | hasBranchWeightOrigin (const Instruction &I) |
Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic. | |
bool | hasBranchWeightOrigin (const MDNode *ProfileData) |
Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic. | |
unsigned | getBranchWeightOffset (const MDNode *ProfileData) |
Return the offset to the first branch weight data. | |
unsigned | getNumBranchWeights (const MDNode &ProfileData) |
bool | extractBranchWeights (const MDNode *ProfileData, SmallVectorImpl< uint32_t > &Weights) |
Extract branch weights from MD_prof metadata. | |
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. | |
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. | |
bool | extractBranchWeights (const Instruction &I, SmallVectorImpl< uint32_t > &Weights) |
Extract branch weights attatched to an Instruction. | |
bool | extractBranchWeights (const Instruction &I, uint64_t &TrueVal, uint64_t &FalseVal) |
Extract branch weights from a conditional branch or select Instruction. | |
bool | extractProfTotalWeight (const MDNode *ProfileData, uint64_t &TotalWeights) |
Retrieve the total of all weights from MD_prof data. | |
bool | extractProfTotalWeight (const Instruction &I, uint64_t &TotalWeights) |
Retrieve the total of all weights from an instruction. | |
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 . | |
void | scaleProfData (Instruction &I, uint64_t S, uint64_t T) |
Scaling the profile data attached to 'I' using the ratio of S/T. | |
static bool | isSentinelProbe (uint32_t Flags) |
static bool | hasDiscriminator (uint32_t Flags) |
std::optional< PseudoProbe > | extractProbe (const Instruction &Inst) |
void | setProbeDistributionFactor (Instruction &Inst, float Factor) |
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. | |
FunctionPass * | createSafepointIRVerifierPass () |
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. | |
stable_hash | StructuralHash (const Function &F, bool DetailedHash=false) |
Returns a hash of the function F . | |
stable_hash | StructuralHash (const GlobalVariable &G) |
Returns a hash of the global variable G . | |
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. | |
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_ostream & | operator<< (raw_ostream &OS, const Type &T) |
Type ** | unwrap (LLVMTypeRef *Tys) |
LLVMTypeRef * | wrap (Type **Tys) |
raw_ostream & | operator<< (raw_ostream &OS, const Value &V) |
Value ** | unwrap (LLVMValueRef *Vals) |
template<typename T > | |
T ** | unwrap (LLVMValueRef *Vals, unsigned Length) |
LLVMValueRef * | wrap (const Value **Vals) |
Type * | toVectorTy (Type *Scalar, ElementCount EC) |
A helper function for converting Scalar types to vector types. | |
Type * | toVectorTy (Type *Scalar, unsigned VF) |
Type * | toVectorizedStructTy (StructType *StructTy, ElementCount EC) |
A helper for converting structs of scalar types to structs of vector types. | |
Type * | toScalarizedStructTy (StructType *StructTy) |
A helper for converting structs of vector types to structs of scalar types. | |
bool | isVectorizedStructTy (StructType *StructTy) |
Returns true if StructTy is an unpacked literal struct where all elements are vectors of matching element count. | |
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. | |
Type * | toVectorizedTy (Type *Ty, ElementCount EC) |
A helper for converting to vectorized types. | |
Type * | toScalarizedTy (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) |
bool | verifyFunction (const Function &F, raw_ostream *OS=nullptr) |
Check a function for errors, useful for use when debugging a pass. | |
bool | verifyModule (const Module &M, raw_ostream *OS=nullptr, bool *BrokenDebugInfo=nullptr) |
Check a module for errors. | |
FunctionPass * | createVerifierPass (bool FatalErrors=true) |
std::unique_ptr< Module > | 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. | |
std::unique_ptr< Module > | 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. | |
std::unique_ptr< Module > | parseIR (MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context, ParserCallbacks Callbacks={}) |
If the given MemoryBuffer holds a bitcode image, return a Module for it. | |
std::unique_ptr< Module > | parseIRFile (StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, ParserCallbacks Callbacks={}) |
If the given file holds a bitcode image, return a Module for it. | |
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 . | |
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 . | |
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. | |
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. | |
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) |
MCELFStreamer * | createARMELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter, bool IsThumb, bool IsAndroid) |
raw_ostream & | operator<< (raw_ostream &OS, const MCExpr &E) |
std::unique_ptr< MCObjectWriter > | createGOFFObjectWriter (std::unique_ptr< MCGOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
Construct a new GOFF writer instance. | |
raw_ostream & | operator<< (raw_ostream &OS, const MCOperand &MO) |
raw_ostream & | operator<< (raw_ostream &OS, const MCInst &MI) |
void | dumpBytes (ArrayRef< uint8_t > Bytes, raw_ostream &OS) |
Convert ‘Bytes’ to a hex string and output to ‘OS’. | |
raw_ostream & | operator<< (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) |
MCAsmParser * | createMCAsmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &, unsigned CB=0) |
Create an MCAsmParser instance for parsing assembly similar to gas syntax. | |
MCAsmParser * | createMCMasmParser (SourceMgr &, MCContext &, MCStreamer &, const MCAsmInfo &, struct tm, unsigned CB=0) |
Create an MCAsmParser instance for parsing Microsoft MASM-style assembly. | |
raw_ostream & | operator<< (raw_ostream &OS, const MCParsedAsmOperand &MO) |
hash_code | hash_value (const MCRegister &Reg) |
std::unique_ptr< MCObjectWriter > | createSPIRVObjectWriter (std::unique_ptr< MCSPIRVObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
Construct a new SPIR-V writer instance. | |
MCStreamer * | createNullStreamer (MCContext &Ctx) |
Create a dummy machine code streamer, which does nothing. | |
raw_ostream & | operator<< (raw_ostream &OS, const MCSymbol &Sym) |
std::unique_ptr< MCObjectWriter > | createWasmObjectWriter (std::unique_ptr< MCWasmObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
Construct a new Wasm writer instance. | |
std::unique_ptr< MCObjectWriter > | createWasmDwoObjectWriter (std::unique_ptr< MCWasmObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS) |
std::unique_ptr< MCObjectWriter > | createWinCOFFObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
Construct a new Win COFF writer instance. | |
std::unique_ptr< MCObjectWriter > | createWinCOFFDwoObjectWriter (std::unique_ptr< MCWinCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS, raw_pwrite_stream &DwoOS) |
std::unique_ptr< MCObjectWriter > | createXCOFFObjectWriter (std::unique_ptr< MCXCOFFObjectTargetWriter > MOTW, raw_pwrite_stream &OS) |
MCStreamer * | createAsmStreamer (MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, 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. | |
MCStreamer * | createELFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE) |
MCStreamer * | createGOFFStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE) |
MCStreamer * | createMachOStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool DWARFMustBeAtTheEnd, bool LabelSections=false) |
MCStreamer * | createWasmStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE) |
MCStreamer * | createSPIRVStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE) |
MCStreamer * | createDXContainerStreamer (MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE) |
MCRelocationInfo * | createMCRelocationInfo (const Triple &TT, MCContext &Ctx) |
MCSymbolizer * | createMCSymbolizer (const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo) |
mca::CustomBehaviour * | createCustomBehaviour (const MCSubtargetInfo &STI, const mca::SourceMgr &SrcMgr, const MCInstrInfo &MCII) |
mca::InstrPostProcess * | createInstrPostProcess (const MCSubtargetInfo &STI, const MCInstrInfo &MCII) |
mca::InstrumentManager * | createInstrumentManager (const MCSubtargetInfo &STI, const MCInstrInfo &MCII) |
Expected< std::string > | computeArchiveRelativePath (StringRef From, StringRef To) |
void | warnToStderr (Error Err) |
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) |
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) |
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) |
raw_ostream & | operator<< (raw_ostream &OS, const FaultMapParser::FunctionFaultInfoAccessor &) |
raw_ostream & | operator<< (raw_ostream &OS, const FaultMapParser::FunctionInfoAccessor &) |
raw_ostream & | operator<< (raw_ostream &OS, const FaultMapParser &) |
raw_ostream & | operator<< (raw_ostream &OS, const object::WasmSymbol &Sym) |
StringRef | machineToStr (COFF::MachineTypes MT) |
COFF::MachineTypes | getMachineType (StringRef S) |
template<typename T > | |
Triple::ArchType | getMachineArchType (T machine) |
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 , std::enable_if_t< std::is_default_constructible< PassName >{}, bool > = true> | |
Pass * | callDefaultCtor () |
void | gcovOneInput (const GCOV::Options &options, StringRef filename, StringRef gcno, StringRef gcda, GCOVFile &file) |
uint64_t | getInstrMaxCountValue () |
Return the max count value. We reserver a few large values for special use. | |
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. | |
bool | isGPUProfTarget (const Module &M) |
Determines whether module targets a GPU eligable for PGO instrumentation. | |
std::string | getPGOFuncName (const Function &F, bool InLTO=false, uint64_t Version=INSTR_PROF_INDEX_VERSION) |
Please use getIRPGOFuncName for LLVM IR instrumentation. | |
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. | |
std::string | getIRPGOFuncName (const Function &F, bool InLTO=false) |
std::pair< StringRef, StringRef > | getParsedIRPGOName (StringRef IRPGOName) |
std::string | getPGOFuncNameVarName (StringRef FuncName, GlobalValue::LinkageTypes Linkage) |
Return the name of the global variable used to store a function name in PGO instrumentation. | |
GlobalVariable * | createPGOFuncNameVar (Function &F, StringRef PGOFuncName) |
Create and return the global variable for function name used in PGO instrumentation. | |
GlobalVariable * | createPGOFuncNameVar (Module &M, GlobalValue::LinkageTypes Linkage, StringRef PGOFuncName) |
Create and return the global variable for function name used in PGO instrumentation. | |
StringRef | getPGOFuncNameVarInitializer (GlobalVariable *NameVar) |
Return the initializer in string of the PGO name var NameVar . | |
StringRef | getFuncNameWithoutPrefix (StringRef PGOFuncName, StringRef FileName="<unknown>") |
Given a PGO function name, remove the filename prefix and return the original (static) function name. | |
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. | |
Error | collectPGOFuncNameStrings (ArrayRef< GlobalVariable * > NameVars, std::string &Result, bool doCompression=true) |
Produce Result string with the same format described above. | |
Error | collectVTableStrings (ArrayRef< GlobalVariable * > VTables, std::string &Result, bool doCompression) |
bool | isIRPGOFlagSet (const Module *M) |
Check if INSTR_PROF_RAW_VERSION_VAR is defined. | |
bool | canRenameComdatFunc (const Function &F, bool CheckAddressTaken=false) |
Check if we can safely rename this Comdat function. | |
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. | |
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 . | |
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 () |
MDNode * | getPGOFuncNameMetadata (const Function &F) |
Return the PGOFuncName meta data associated with a function. | |
std::string | getPGOName (const GlobalVariable &V, bool InLTO=false) |
void | createPGOFuncNameMetadata (Function &F, StringRef PGOFuncName) |
Create the PGOFuncName meta data if PGOFuncName is different from function's raw name. | |
void | createPGONameMetadata (GlobalObject &GO, StringRef PGOName) |
Create the PGOName metadata if a global object's PGO name is different from its mangled name. | |
bool | needsComdatForCounter (const GlobalObject &GV, const Module &M) |
Check if we can use Comdat for profile variables. | |
const std::error_category & | instrprof_category () |
std::error_code | make_error_code (instrprof_error E) |
void | createProfileFileNameVar (Module &M, StringRef InstrProfileOutput) |
void | convertCtxProfToYaml (raw_ostream &OS, const PGOCtxProfContext::CallTargetMapTy &) |
Error | createCtxProfFromYAML (StringRef Profile, raw_ostream &Out) |
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) |
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 | 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 char * | toIRString (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::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) |
void | printRelativeBlockFreq (raw_ostream &OS, BlockFrequency EntryFreq, BlockFrequency Freq) |
raw_ostream & | operator<< (raw_ostream &OS, BranchProbability Prob) |
void | BuryPointer (const void *Ptr) |
template<typename T > | |
void | BuryPointer (std::unique_ptr< T > Ptr) |
Expected< CachePruningPolicy > | parseCachePruningPolicy (StringRef PolicyStr) |
Parse the given string as a cache pruning policy. | |
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. | |
Expected< FileCache > | localCache (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. | |
raw_ostream & | operator<< (raw_ostream &OS, sys::TimePoint<> TP) |
raw_ostream & | operator<< (raw_ostream &OS, sys::UtcTime<> TP) |
ConversionResult | ConvertUTF8toUTF16 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags) |
ConversionResult | ConvertUTF8toUTF32Partial (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags) |
Convert a partial UTF8 sequence to UTF32. | |
ConversionResult | ConvertUTF8toUTF32 (const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags) |
Convert a partial UTF8 sequence to UTF32. | |
ConversionResult | ConvertUTF16toUTF8 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags) |
ConversionResult | ConvertUTF32toUTF8 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags) |
ConversionResult | ConvertUTF16toUTF32 (const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags) |
ConversionResult | ConvertUTF32toUTF16 (const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags) |
Boolean | isLegalUTF8Sequence (const UTF8 *source, const UTF8 *sourceEnd) |
Boolean | isLegalUTF8String (const UTF8 **source, const UTF8 *sourceEnd) |
unsigned | getUTF8SequenceSize (const UTF8 *source, const UTF8 *sourceEnd) |
unsigned | getNumBytesForUTF8 (UTF8 firstByte) |
bool | ConvertUTF8toWide (unsigned WideCharWidth, llvm::StringRef Source, char *&ResultPtr, const UTF8 *&ErrorPtr) |
Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on WideCharWidth. | |
bool | ConvertUTF8toWide (llvm::StringRef Source, std::wstring &Result) |
Converts a UTF-8 StringRef to a std::wstring. | |
bool | ConvertUTF8toWide (const char *Source, std::wstring &Result) |
Converts a UTF-8 C-string to a std::wstring. | |
bool | convertWideToUTF8 (const std::wstring &Source, std::string &Result) |
Converts a std::wstring to a UTF-8 encoded std::string. | |
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. | |
bool | hasUTF16ByteOrderMark (ArrayRef< char > SrcBytes) |
Returns true if a blob of text starts with a UTF-16 big or little endian byte order mark. | |
bool | convertUTF16ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out) |
Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string. | |
bool | convertUTF16ToUTF8String (ArrayRef< UTF16 > Src, std::string &Out) |
Converts a UTF16 string into a UTF8 std::string. | |
bool | convertUTF32ToUTF8String (ArrayRef< char > SrcBytes, std::string &Out) |
Converts a stream of raw bytes assumed to be UTF32 into a UTF8 std::string. | |
bool | convertUTF32ToUTF8String (ArrayRef< UTF32 > Src, std::string &Out) |
Converts a UTF32 string into a UTF8 std::string. | |
bool | convertUTF8ToUTF16String (StringRef SrcUTF8, SmallVectorImpl< UTF16 > &DstUTF16) |
Converts a UTF-8 string into a UTF-16 string with native endianness. | |
uint32_t | crc32 (ArrayRef< uint8_t > Data) |
uint32_t | crc32 (uint32_t CRC, ArrayRef< uint8_t > Data) |
uint24_t | getSwappedBytes (uint24_t C) |
Needed by swapByteOrder(). | |
bool | isCurrentDebugType (const char *Type) |
isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option. | |
void | setCurrentDebugType (const char *Type) |
setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified. | |
void | setCurrentDebugTypes (const char **Types, unsigned Count) |
setCurrentDebugTypes - Set the current debug type, as if the -debug-only=X,Y,Z option were specified. | |
raw_ostream & | dbgs () |
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. | |
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. | |
void | report_fatal_error (Error Err, bool gen_crash_diag=true) |
Report a serious error, calling any installed error handler. | |
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 > | |
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 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< T > | handleExpected (Expected< T > ValOrErr, RecoveryFtor &&RecoveryPath, HandlerTs &&... Handlers) |
Handle any errors (if present) in an Expected<T>, then try a recovery path. | |
void | logAllUnhandledErrors (Error E, raw_ostream &OS, Twine ErrorBanner={}) |
Log all errors (if any) in E to OS. | |
std::string | toString (Error E) |
Write all error messages (if any) in E to a string. | |
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< T > | expectedToOptional (Expected< T > &&E) |
Convert an Expected to an Optional without doing anything. | |
template<typename T > | |
std::optional< T > | expectedToStdOptional (Expected< T > &&E) |
bool | errorToBool (Error Err) |
Helper for converting an Error to a bool. | |
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. | |
Error | errorCodeToError (std::error_code EC) |
Helper for converting an std::error_code to a Error. | |
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< T > | errorOrToExpected (ErrorOr< T > &&EO) |
Convert an ErrorOr<T> to an Expected<T>. | |
template<typename T > | |
ErrorOr< T > | expectedToErrorOr (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. | |
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, 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. | |
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. | |
void | remove_fatal_error_handler () |
Restores default error handling behaviour. | |
void | report_fatal_error (const char *reason, bool gen_crash_diag=true) |
Reports a serious error, calling any installed error handler. | |
void | report_fatal_error (StringRef reason, bool gen_crash_diag=true) |
void | report_fatal_error (const Twine &reason, bool gen_crash_diag=true) |
void | install_bad_alloc_error_handler (fatal_error_handler_t handler, void *user_data=nullptr) |
Installs a new bad alloc error handler that should be used whenever a bad alloc error, e.g. | |
void | remove_bad_alloc_error_handler () |
Restores default bad alloc error handling behavior. | |
void | install_out_of_memory_new_handler () |
void | report_bad_alloc_error (const char *Reason, bool GenCrashDiag=true) |
Reports a bad alloc error, calling any user defined bad alloc error handler. | |
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, bool > | operator== (const ErrorOr< T > &Err, E Code) |
int | DiffFilesWithTolerance (StringRef FileA, StringRef FileB, double AbsTol, double RelTol, std::string *Error=nullptr) |
DiffFilesWithTolerance - Compare the two files specified, returning 0 if the files match, 1 if they are different, and 2 if there is a file error. | |
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< T > | fmt_align (T &&Item, AlignStyle Where, size_t Amount, char Fill=' ') |
template<typename T > | |
support::detail::PadAdapter< T > | fmt_pad (T &&Item, size_t Left, size_t Right) |
template<typename T > | |
support::detail::RepeatAdapter< T > | fmt_repeat (T &&Item, size_t Count) |
support::detail::ErrorAdapter | fmt_consume (Error &&Item) |
formatted_raw_ostream & | fouts () |
fouts() - This returns a reference to a formatted_raw_ostream for standard output. | |
formatted_raw_ostream & | ferrs () |
ferrs() - This returns a reference to a formatted_raw_ostream for standard error. | |
formatted_raw_ostream & | fdbgs () |
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_ostream & | operator<< (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_ostream & | operator<< (raw_ostream &OS, const LoopBase< BlockT, LoopT > &Loop) |
template<class BlockT , class LoopT > | |
std::pair< BlockT *, bool > | getExitBlockHelper (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) |
bool | DisplayGraph (StringRef Filename, bool wait=true, GraphProgram::Name program=GraphProgram::DOT) |
template<typename GraphType > | |
raw_ostream & | WriteGraph (raw_ostream &O, const GraphType &G, bool ShortNames=false, const Twine &Title="") |
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_code > | hash_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_ostream & | operator<< (raw_ostream &OS, const InstructionCost &V) |
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_ostream & | operator<< (raw_ostream &OS, const KnownBits &Known) |
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) |
unsigned | getULEB128Size (uint64_t Value) |
Utility function to get the size of the ULEB128-encoded value. | |
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. | |
void | llvm_shutdown () |
llvm_shutdown - Deallocate and destroy all ManagedStatic variables. | |
template<typename T > | |
T | maskTrailingOnes (unsigned N) |
Create a bitmask with the N right-most bits set to 1, and all other bits set to 0. | |
template<typename T > | |
T | maskLeadingOnes (unsigned N) |
Create a bitmask with the N left-most bits set to 1, and all other bits set to 0. | |
template<typename T > | |
T | maskTrailingZeros (unsigned N) |
Create a bitmask with the N right-most bits set to 0, and all other bits set to 1. | |
template<typename T > | |
T | maskLeadingZeros (unsigned N) |
Create a bitmask with the N left-most bits set to 0, and all other bits set to 1. | |
template<typename T > | |
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. | |
uint64_t | maxUIntN (uint64_t N) |
Gets the maximum value for a N-bit unsigned integer. | |
int64_t | minIntN (int64_t N) |
Gets the minimum value for a N-bit signed integer. | |
int64_t | maxIntN (int64_t N) |
Gets the maximum value for a N-bit signed integer. | |
bool | isUIntN (unsigned N, uint64_t x) |
Checks if an unsigned integer fits into the given (dynamic) bit width. | |
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 | CTLog2 () |
Compile time Log2. | |
template<> | |
constexpr size_t | CTLog2< 1 > () |
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 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 >, T > | SaturatingAdd (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 >, T > | SaturatingAdd (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 >, T > | SaturatingMultiply (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 >, T > | 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. | |
template<typename T > | |
std::enable_if_t< std::is_signed_v< T >, T > | AddOverflow (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 >, T > | SubOverflow (T X, T Y, T &Result) |
Subtract two signed integers, computing the two's complement truncated result, returning true if an overflow ocurred. | |
template<typename T > | |
std::enable_if_t< std::is_signed_v< T >, T > | MulOverflow (T X, T Y, T &Result) |
Multiply two signed integers, computing the two's complement truncated result, returning true if an overflow ocurred. | |
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_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. | |
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) |
raw_ostream & | operator<< (raw_ostream &OS, ModRefInfo MR) |
Debug print ModRefInfo. | |
raw_ostream & | operator<< (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) |
raw_ostream & | operator<< (raw_ostream &OS, CaptureComponents CC) |
raw_ostream & | operator<< (raw_ostream &OS, CaptureInfo Info) |
size_t | getDefaultPrecision (FloatStyle Style) |
bool | isPrefixedHexStyle (HexPrintStyle S) |
void | write_integer (raw_ostream &S, unsigned int N, size_t MinDigits, IntegerStyle Style) |
void | write_integer (raw_ostream &S, int N, size_t MinDigits, IntegerStyle Style) |
void | write_integer (raw_ostream &S, unsigned long N, size_t MinDigits, IntegerStyle Style) |
void | write_integer (raw_ostream &S, long N, size_t MinDigits, IntegerStyle Style) |
void | write_integer (raw_ostream &S, unsigned long long N, size_t MinDigits, IntegerStyle Style) |
void | write_integer (raw_ostream &S, long long N, size_t MinDigits, IntegerStyle Style) |
void | write_hex (raw_ostream &S, uint64_t N, HexPrintStyle Style, std::optional< size_t > Width=std::nullopt) |
void | write_double (raw_ostream &S, double D, FloatStyle Style, std::optional< size_t > Precision=std::nullopt) |
std::pair< uint64_t, Align > | 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. | |
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()) |
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")) |
void | EnablePrettyStackTrace () |
Enables dumping a "pretty" stack trace when the program crashes. | |
void | EnablePrettyStackTraceOnSigInfoForThisThread (bool ShouldEnable=true) |
Enables (or disables) dumping a "pretty" stack trace when the user sends SIGINFO or SIGUSR1 to the current process. | |
void | setBugReportMsg (const char *Msg) |
Replaces the generic bug report message that is output upon a crash. | |
const char * | getBugReportMsg () |
Get the bug report message that will be output upon a crash. | |
const void * | SavePrettyStackState () |
Returns the topmost element of the "pretty" stack state. | |
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_ostream & | operator<< (raw_ostream &OS, const Printable &P) |
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. | |
raw_fd_ostream & | outs () |
This returns a reference to a raw_fd_ostream for standard output. | |
raw_fd_ostream & | errs () |
This returns a reference to a raw_ostream for standard error. | |
raw_ostream & | nulls () |
This returns a reference to a raw_ostream which simply discards output. | |
raw_ostream & | operator<< (raw_ostream &OS, const indent &Indent) |
Error | writeToOutput (StringRef OutputFileName, std::function< Error(raw_ostream &)> Write) |
This helper creates an output stream and then passes it to Write . | |
raw_ostream & | operator<< (raw_ostream &OS, std::nullopt_t) |
template<typename T , typename = decltype(std::declval<raw_ostream &>() << std::declval<const T &>())> | |
raw_ostream & | operator<< (raw_ostream &OS, const std::optional< T > &O) |
void | PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize) |
PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for printing statistics. | |
template<class T = void *> | |
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_ostream & | operator<< (raw_ostream &OS, const ScaledNumber< DigitsT > &X) |
raw_ostream & | operator<< (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<> | |
void | ScopedPrinter::printHex< support::ulittle16_t > (StringRef Label, support::ulittle16_t Value) |
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. | |
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. | |
uint16_t | getPointerAuthStableSipHash (StringRef S) |
Compute a stable non-zero 16-bit hash of the given string. | |
SMTSolverRef | CreateZ3Solver () |
Convenience method to create and Z3Solver object. | |
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. | |
std::optional< ThreadPoolStrategy > | get_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. | |
uint64_t | get_threadid () |
Return the current thread id, as used in various OS system calls. | |
uint32_t | get_max_thread_name_length () |
Get the maximum length of a thread name on this platform. | |
void | set_thread_name (const Twine &Name) |
Set the name of the current thread. | |
void | get_thread_name (SmallVectorImpl< char > &Name) |
Get the name of the current thread. | |
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. | |
unsigned | get_cpus () |
Returns how many physical CPUs or NUMA groups the system has. | |
int | get_physical_cores () |
Returns how many physical cores (as opposed to logical cores returned from thread::hardware_concurrency(), which includes hyperthreads). | |
SetThreadPriorityResult | set_thread_priority (ThreadPriority Priority) |
TimeTraceProfiler * | getTimeTraceProfilerInstance () |
bool | isTimeTraceVerbose () |
void | timeTraceProfilerInitialize (unsigned TimeTraceGranularity, StringRef ProcName, bool TimeTraceVerbose=false) |
Initialize the time trace profiler. | |
void | timeTraceProfilerCleanup () |
Cleanup the time trace profiler, if it was initialized. | |
void | timeTraceProfilerFinishThread () |
Finish a time trace profiler running on a worker thread. | |
bool | timeTraceProfilerEnabled () |
Is the time trace profiler enabled, i.e. initialized? | |
void | timeTraceProfilerWrite (raw_pwrite_stream &OS) |
Write profiling data to output stream. | |
Error | timeTraceProfilerWrite (StringRef PreferredFileName, StringRef FallbackFileName) |
Write profiling data to a file. | |
TimeTraceProfilerEntry * | timeTraceProfilerBegin (StringRef Name, StringRef Detail) |
Manually begin a time section, with the given Name and Detail . | |
TimeTraceProfilerEntry * | timeTraceProfilerBegin (StringRef Name, llvm::function_ref< std::string()> Detail) |
TimeTraceProfilerEntry * | timeTraceProfilerBegin (StringRef Name, llvm::function_ref< TimeTraceMetadata()> MetaData) |
TimeTraceProfilerEntry * | timeTraceAsyncProfilerBegin (StringRef Name, StringRef Detail) |
Manually begin a time section, with the given Name and Detail . | |
void | timeTraceAddInstantEvent (StringRef Name, llvm::function_ref< std::string()> Detail) |
void | timeTraceProfilerEnd () |
Manually end the last time section. | |
void | timeTraceProfilerEnd (TimeTraceProfilerEntry *E) |
template<typename DesiredTypeName > | |
StringRef | getTypeName () |
We provide a function which tries to compute the (demangled) name of a type statically. | |
void | reportInvalidSizeRequest (const char *Msg) |
Reports a diagnostic message to indicate an invalid size request has been done on a scalable vector. | |
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_ostream & | operator<< (raw_ostream &OS, const details::FixedOrScalableQuantity< LeafTy, ScalarTy > &PS) |
Stream operator function for FixedOrScalableQuantity . | |
raw_ostream & | operator<< (raw_ostream &Out, const VersionTuple &V) |
Print a version number. | |
bool | RunningWindows8OrGreater () |
Determines if the program is running on Windows 8 or newer. | |
bool | RunningWindows11OrGreater () |
Determines if the program is running on Windows 11 or Windows Server 2022. | |
llvm::VersionTuple | GetWindowsOSVersion () |
Returns the Windows version as Major.Minor.0.BuildNumber. | |
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) |
std::error_code | mapLastWindowsError () |
std::error_code | mapWindowsError (unsigned EV) |
cl::OptionCategory & | getColorCategory () |
uint64_t | xxHash64 (llvm::StringRef Data) |
uint64_t | xxHash64 (llvm::ArrayRef< uint8_t > Data) |
uint64_t | xxh3_64bits (ArrayRef< uint8_t > data) |
uint64_t | xxh3_64bits (StringRef data) |
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_ostream & | operator<< (raw_ostream &OS, const RecTy &Ty) |
const RecTy * | resolveTypes (const RecTy *T1, const RecTy *T2) |
Find a common type that T1 and T2 convert to. | |
raw_ostream & | operator<< (raw_ostream &OS, const Init &I) |
raw_ostream & | operator<< (raw_ostream &OS, const RecordVal &RV) |
raw_ostream & | operator<< (raw_ostream &OS, const Record &R) |
raw_ostream & | operator<< (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. | |
CGPassBuilderOption | getCGPassBuilderOption () |
std::optional< CodeModel::Model > | unwrap (LLVMCodeModel Model, bool &JIT) |
LLVMCodeModel | wrap (CodeModel::Model Model) |
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_ostream & | operator<< (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) |
int | dlltoolDriverMain (ArrayRef< const char * > ArgsArr) |
int | libDriverMain (ArrayRef< const char * > ARgs) |
FunctionPass * | createCFGuardCheckPass () |
Insert Control FLow Guard checks on indirect function calls. | |
FunctionPass * | createCFGuardDispatchPass () |
Insert Control FLow Guard dispatches on indirect function calls. | |
FunctionPass * | createInstructionCombiningPass () |
void | getAddressSanitizerParams (const Triple &TargetTriple, int LongSize, bool IsKasan, uint64_t *ShadowBase, int *MappingScale, bool *OrShadowOffset) |
void | setProfMetadata (Module *M, Instruction *TI, ArrayRef< uint64_t > EdgeCounts, uint64_t MaxCount) |
void | setIrrLoopHeaderMetadata (Module *M, Instruction *TI, uint64_t Count) |
ModulePass * | createDeadArgEliminationPass () |
createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function. | |
ModulePass * | createDeadArgHackingPass () |
DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well. | |
Pass * | createLoopExtractorPass () |
createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can. | |
Pass * | createSingleLoopExtractorPass () |
createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function if it can. | |
ModulePass * | createBarrierNoopPass () |
createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager. | |
Pass * | createAlwaysInlinerLegacyPass (bool InsertLifetime=true) |
Create a legacy pass manager instance of a pass to inline and remove functions marked as "always_inline". | |
ChangeStatus | operator| (ChangeStatus l, ChangeStatus r) |
Logic operators for the change status enum class. | |
ChangeStatus & | operator|= (ChangeStatus &l, ChangeStatus r) |
ChangeStatus | operator& (ChangeStatus l, ChangeStatus r) |
ChangeStatus & | operator&= (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. | |
raw_ostream & | operator<< (raw_ostream &OS, const AbstractAttribute &AA) |
Forward declarations of output streams for debug purposes. | |
raw_ostream & | operator<< (raw_ostream &OS, ChangeStatus S) |
Helpers to ease debugging through output streams and print calls. | |
raw_ostream & | operator<< (raw_ostream &OS, IRPosition::Kind) |
raw_ostream & | operator<< (raw_ostream &OS, const IRPosition &) |
raw_ostream & | operator<< (raw_ostream &OS, const AbstractState &State) |
template<typename base_ty , base_ty BestState, base_ty WorstState> | |
raw_ostream & | operator<< (raw_ostream &OS, const IntegerStateBase< base_ty, BestState, WorstState > &S) |
raw_ostream & | operator<< (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). | |
raw_ostream & | operator<< (raw_ostream &OS, const PotentialConstantIntValuesState &R) |
raw_ostream & | operator<< (raw_ostream &OS, const PotentialLLVMValuesState &R) |
raw_ostream & | operator<< (raw_ostream &, const AAPointerInfo::Access &) |
ModulePass * | createExpandVariadicsPass (ExpandVariadicsMode) |
MemoryEffects | computeFunctionBodyMemoryAccess (Function &F, AAResults &AAR) |
Returns the memory access properties of this copy of the function. | |
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. | |
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. | |
void | updateIndirectCalls (ModuleSummaryIndex &Index) |
Update call edges for indirect calls to local functions added from SamplePGO when needed. | |
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 . | |
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. | |
bool | convertToDeclaration (GlobalValue &GV) |
Converts value GV to declaration, or replaces with a declaration if it is an alias. | |
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 . | |
Error | EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const ModuleToSummariesForIndexTy &ModuleToSummariesForIndex) |
Emit into OutputFilename the files module ModulePath will import from. | |
void | thinLTOFinalizeInModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals, bool PropagateAttrs) |
Based on the information recorded in the summaries during global summary-based analysis: | |
void | thinLTOInternalizeModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals) |
Internalize TheModule based on the information recorded in the summaries during global summary-based analysis. | |
bool | internalizeModule (Module &TheModule, std::function< bool(const GlobalValue &)> MustPreserveGV) |
Helper function to internalize functions and variables in a Module. | |
bool | hasWholeProgramVisibility (bool WholeProgramVisibilityEnabledInLTO) |
void | updatePublicTypeTestCalls (Module &M, bool WholeProgramVisibilityEnabledInLTO) |
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). | |
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). | |
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. | |
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. | |
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. | |
Pass * | createObjCARCContractPass () |
FunctionPass * | createDeadCodeEliminationPass () |
FunctionPass * | createSROAPass (bool PreserveCFG=true) |
Pass * | createLICMPass () |
Pass * | createLoopStrengthReducePass () |
Pass * | createLoopTermFoldPass () |
Pass * | 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) |
FunctionPass * | createReassociatePass () |
FunctionPass * | createCFGSimplificationPass (SimplifyCFGOptions Options=SimplifyCFGOptions(), std::function< bool(const Function &)> Ftor=nullptr) |
FunctionPass * | createFlattenCFGPass () |
Pass * | createStructurizeCFGPass (bool SkipUniformRegions=false) |
When SkipUniformRegions is true the structizer will not structurize regions that only contain uniform branches. | |
FunctionPass * | createTailCallEliminationPass () |
FunctionPass * | createEarlyCSEPass (bool UseMemorySSA=false) |
FunctionPass * | createConstantHoistingPass () |
FunctionPass * | createSinkingPass () |
Pass * | createLowerAtomicPass () |
Pass * | createMergeICmpsLegacyPass () |
FunctionPass * | createInferAddressSpacesPass (unsigned AddressSpace=~0u) |
FunctionPass * | createPartiallyInlineLibCallsPass () |
FunctionPass * | createSeparateConstOffsetFromGEPPass (bool LowerGEP=false) |
FunctionPass * | createSpeculativeExecutionPass () |
FunctionPass * | createSpeculativeExecutionIfHasBranchDivergencePass () |
FunctionPass * | createStraightLineStrengthReducePass () |
FunctionPass * | createNaryReassociatePass () |
FunctionPass * | createLoopDataPrefetchPass () |
FunctionPass * | createInstSimplifyLegacyPass () |
FunctionPass * | createScalarizeMaskedMemIntrinLegacyPass () |
FunctionPass * | createGVNPass () |
Create a legacy GVN pass. | |
template<typename LoopPassT > | |
std::enable_if_t< is_detected< HasRunOnLoopT, LoopPassT >::value, 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<typename LoopNestPassT > | |
std::enable_if_t<!is_detected< HasRunOnLoopT, LoopNestPassT >::value, FunctionToLoopPassAdaptor > | createFunctionToLoopPassAdaptor (LoopNestPassT &&Pass, bool UseMemorySSA=false, bool UseBlockFrequencyInfo=false, bool UseBranchProbabilityInfo=false) |
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. | |
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) |
FunctionPass * | createScalarizerPass (const ScalarizerPassOptions &Options=ScalarizerPassOptions()) |
Create a legacy pass manager instance of the Scalarizer pass. | |
FunctionPass * | createLowerInvokePass () |
FunctionPass * | createLowerSwitchPass () |
FunctionPass * | createPostInlineEntryExitInstrumenterPass () |
FunctionPass * | createBreakCriticalEdgesPass () |
Pass * | createLCSSAPass () |
FunctionPass * | createPromoteMemoryToRegisterPass () |
FunctionPass * | createRegToMemWrapperPass () |
Pass * | createLoopSimplifyPass () |
FunctionPass * | createUnifyLoopExitsPass () |
FunctionPass * | createFixIrreduciblePass () |
Pass * | createCanonicalizeFreezeInLoopsPass () |
ModulePass * | createLowerGlobalDtorsLegacyPass () |
Value * | emitAMDGPUPrintfCall (IRBuilder<> &Builder, ArrayRef< Value * > Args, bool isBuffered) |
ASanStackFrameLayout | ComputeASanStackFrameLayout (SmallVectorImpl< ASanStackVariableDescription > &Vars, uint64_t Granularity, uint64_t MinHeaderSize) |
SmallString< 64 > | ComputeASanStackFrameDescription (const SmallVectorImpl< ASanStackVariableDescription > &Vars) |
SmallVector< uint8_t, 64 > | GetShadowBytes (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout) |
SmallVector< uint8_t, 64 > | GetShadowBytesAfterScope (const SmallVectorImpl< ASanStackVariableDescription > &Vars, const ASanStackFrameLayout &Layout) |
AssumeInst * | buildAssumeFromInst (Instruction *I) |
Build a call to llvm.assume to preserve informations that can be derived from the given instruction. | |
bool | salvageKnowledge (Instruction *I, AssumptionCache *AC=nullptr, DominatorTree *DT=nullptr) |
Calls BuildAssumeFromInst and if the resulting llvm.assume is valid insert if before I. | |
AssumeInst * | 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. | |
RetainedKnowledge | simplifyRetainedKnowledge (AssumeInst *Assume, RetainedKnowledge RK, AssumptionCache *AC, DominatorTree *DT) |
canonicalize the RetainedKnowledge RK. | |
void | detachDeadBlocks (ArrayRef< BasicBlock * > BBs, SmallVectorImpl< DominatorTree::UpdateType > *Updates, bool KeepOneInputPHIs=false) |
Replace contents of every block in BBs with single unreachable instruction. | |
void | DeleteDeadBlock (BasicBlock *BB, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false) |
Delete the specified block, which must have no predecessors. | |
void | DeleteDeadBlocks (ArrayRef< BasicBlock * > BBs, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false) |
Delete the specified blocks from BB . | |
bool | EliminateUnreachableBlocks (Function &F, DomTreeUpdater *DTU=nullptr, bool KeepOneInputPHIs=false) |
Delete all basic blocks from F that are not reachable from its entry node. | |
bool | FoldSingleEntryPHINodes (BasicBlock *BB, MemoryDependenceResults *MemDep=nullptr) |
We know that BB has one predecessor. | |
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. | |
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. | |
bool | MergeBlockSuccessorsIntoGivenBlocks (SmallPtrSetImpl< BasicBlock * > &MergeBlocks, Loop *L=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr) |
Merge block(s) sucessors, if possible. | |
bool | RemoveRedundantDbgInstrs (BasicBlock *BB) |
Try to remove redundant dbg.value instructions from given basic block. | |
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. | |
void | ReplaceInstWithInst (BasicBlock *BB, BasicBlock::iterator &BI, Instruction *I) |
Replace the instruction specified by BI with the instruction specified by I. | |
void | ReplaceInstWithInst (Instruction *From, Instruction *To) |
Replace the instruction specified by From with the instruction specified by To. | |
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. | |
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. | |
BasicBlock * | 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. | |
BasicBlock * | SplitKnownCriticalEdge (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. | |
BasicBlock * | SplitCriticalEdge (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. | |
unsigned | SplitAllCriticalEdges (Function &F, const CriticalEdgeSplittingOptions &Options=CriticalEdgeSplittingOptions()) |
Loop over all of the edges in the CFG, breaking critical edges as they are found. | |
BasicBlock * | SplitEdge (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 . | |
void | setUnwindEdgeTo (Instruction *TI, BasicBlock *Succ) |
Sets the unwind edge of an instruction to a particular successor. | |
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. | |
BasicBlock * | ehAwareSplitEdge (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. | |
BasicBlock * | 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. | |
BasicBlock * | SplitBlock (BasicBlock *Old, Instruction *SplitPt, DominatorTree *DT, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="", bool Before=false) |
BasicBlock * | 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. | |
BasicBlock * | SplitBlock (BasicBlock *Old, Instruction *SplitPt, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, const Twine &BBName="", bool Before=false) |
BasicBlock * | splitBlockBefore (BasicBlock *Old, BasicBlock::iterator SplitPt, DomTreeUpdater *DTU, LoopInfo *LI, MemorySSAUpdater *MSSAU, const Twine &BBName="") |
Split the specified block at the specified instruction SplitPt . | |
BasicBlock * | splitBlockBefore (BasicBlock *Old, Instruction *SplitPt, DomTreeUpdater *DTU, LoopInfo *LI, MemorySSAUpdater *MSSAU, const Twine &BBName="") |
BasicBlock * | 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. | |
BasicBlock * | 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. | |
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. | |
ReturnInst * | 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. | |
Instruction * | 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. | |
Instruction * | SplitBlockAndInsertIfThen (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, BasicBlock *ThenBlock=nullptr) |
Instruction * | 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. | |
Instruction * | SplitBlockAndInsertIfElse (Value *Cond, Instruction *SplitBefore, bool Unreachable, MDNode *BranchWeights=nullptr, DomTreeUpdater *DTU=nullptr, LoopInfo *LI=nullptr, BasicBlock *ElseBlock=nullptr) |
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) |
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) |
std::pair< Instruction *, Value * > | SplitBlockAndInsertSimpleForLoop (Value *End, Instruction *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 . | |
void | SplitBlockAndInsertForEachLane (ElementCount EC, Type *IndexTy, Instruction *InsertBefore, std::function< void(IRBuilderBase &, Value *)> Func) |
Utility function for performing a given action on each lane of a vector with EC elements. | |
void | SplitBlockAndInsertForEachLane (Value *End, Instruction *InsertBefore, std::function< void(IRBuilderBase &, Value *)> Func) |
Utility function for performing a given action on each lane of a vector with EVL effective length. | |
BranchInst * | GetIfCondition (BasicBlock *BB, BasicBlock *&IfTrue, BasicBlock *&IfFalse) |
Check whether BB is the merge point of a if-region. | |
bool | SplitIndirectBrCriticalEdges (Function &F, bool IgnoreBlocksWithoutPHI, BranchProbabilityInfo *BPI=nullptr, BlockFrequencyInfo *BFI=nullptr) |
void | InvertBranch (BranchInst *PBI, IRBuilderBase &Builder) |
bool | hasOnlySimpleTerminator (const Function &F) |
bool | isPresplitCoroSuspendExitEdge (const BasicBlock &Src, const BasicBlock &Dest) |
bool | inferNonMandatoryLibFuncAttrs (Module *M, StringRef Name, const TargetLibraryInfo &TLI) |
Analyze the name and prototype of the given function and set any applicable attributes. | |
bool | inferNonMandatoryLibFuncAttrs (Function &F, const TargetLibraryInfo &TLI) |
FunctionCallee | getOrInsertLibFunc (Module *M, const TargetLibraryInfo &TLI, LibFunc TheLibFunc, FunctionType *T, AttributeList AttributeList) |
Calls getOrInsertFunction() and then makes sure to add mandatory argument attributes. | |
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 |
void | markRegisterParameterAttributes (Function *F) |
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. | |
bool | isLibFuncEmittable (const Module *M, const TargetLibraryInfo *TLI, StringRef Name) |
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. | |
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. | |
Value * | 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. | |
Value * | emitStrDup (Value *Ptr, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the strdup function to the builder, for the specified pointer. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | emitMemPCpy (Value *Dst, Value *Src, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
Emit a call to the mempcpy function. | |
Value * | emitMemChr (Value *Ptr, Value *Val, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
Emit a call to the memchr function. | |
Value * | 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. | |
Value * | emitMemCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
Emit a call to the memcmp function. | |
Value * | emitBCmp (Value *Ptr1, Value *Ptr2, Value *Len, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
Emit a call to the bcmp function. | |
Value * | emitMemCCpy (Value *Ptr1, Value *Ptr2, Value *Val, Value *Len, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the memccpy function. | |
Value * | emitSNPrintf (Value *Dest, Value *Size, Value *Fmt, ArrayRef< Value * > Args, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the snprintf function. | |
Value * | emitSPrintf (Value *Dest, Value *Fmt, ArrayRef< Value * > VariadicArgs, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the sprintf function. | |
Value * | emitStrCat (Value *Dest, Value *Src, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the strcat function. | |
Value * | emitStrLCpy (Value *Dest, Value *Src, Value *Size, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the strlcpy function. | |
Value * | emitStrLCat (Value *Dest, Value *Src, Value *Size, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the strlcat function. | |
Value * | emitStrNCat (Value *Dest, Value *Src, Value *Size, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the strncat function. | |
Value * | emitVSNPrintf (Value *Dest, Value *Size, Value *Fmt, Value *VAList, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the vsnprintf function. | |
Value * | emitVSPrintf (Value *Dest, Value *Fmt, Value *VAList, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the vsprintf function. | |
Value * | emitUnaryFloatFnCall (Value *Op, const TargetLibraryInfo *TLI, StringRef Name, IRBuilderBase &B, const AttributeList &Attrs) |
Emit a call to the unary function named 'Name' (e.g. | |
Value * | 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. | |
Value * | 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. | |
Value * | 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. | |
Value * | emitPutChar (Value *Char, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the putchar function. This assumes that Char is an 'int'. | |
Value * | emitPutS (Value *Str, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the puts function. This assumes that Str is some pointer. | |
Value * | emitFPutC (Value *Char, Value *File, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the fputc function. | |
Value * | emitFPutS (Value *Str, Value *File, IRBuilderBase &B, const TargetLibraryInfo *TLI) |
Emit a call to the fputs function. | |
Value * | emitFWrite (Value *Ptr, Value *Size, Value *File, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
Emit a call to the fwrite function. | |
Value * | emitMalloc (Value *Num, IRBuilderBase &B, const DataLayout &DL, const TargetLibraryInfo *TLI) |
Emit a call to the malloc function. | |
Value * | emitCalloc (Value *Num, Value *Size, IRBuilderBase &B, const TargetLibraryInfo &TLI, unsigned AddrSpace) |
Emit a call to the calloc function. | |
Value * | emitHotColdNew (Value *Num, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold) |
Emit a call to the hot/cold operator new function. | |
Value * | emitHotColdNewNoThrow (Value *Num, Value *NoThrow, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold) |
Value * | emitHotColdNewAligned (Value *Num, Value *Align, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold) |
Value * | emitHotColdNewAlignedNoThrow (Value *Num, Value *Align, Value *NoThrow, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold) |
Value * | emitHotColdSizeReturningNew (Value *Num, IRBuilderBase &B, const TargetLibraryInfo *TLI, LibFunc NewFunc, uint8_t HotCold) |
Value * | emitHotColdSizeReturningNewAligned (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. | |
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 . | |
CallBase & | promoteCall (CallBase &CB, Function *Callee, CastInst **RetBitCast=nullptr) |
Promote the given indirect call site to unconditionally call Callee . | |
CallBase & | promoteCallWithIfThenElse (CallBase &CB, Function *Callee, MDNode *BranchWeights=nullptr) |
Promote the given indirect call site to conditionally call Callee . | |
CallBase * | promoteCallWithIfThenElse (CallBase &CB, Function &Callee, PGOContextualProfile &CtxProf) |
CallBase & | 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 . | |
bool | tryPromoteCall (CallBase &CB) |
Try to promote (devirtualize) a virtual call on an Alloca. | |
CallBase & | versionCallSite (CallBase &CB, Value *Callee, MDNode *BranchWeights) |
Predicate and clone the given call site. | |
std::unique_ptr< Module > | CloneModule (const Module &M) |
Return an exact copy of the specified module. | |
std::unique_ptr< Module > | CloneModule (const Module &M, ValueToValueMapTy &VMap) |
std::unique_ptr< Module > | CloneModule (const Module &M, ValueToValueMapTy &VMap, function_ref< bool(const GlobalValue *)> ShouldCloneDefinition) |
Return a copy of the specified module. | |
BasicBlock * | CloneBasicBlock (const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=nullptr, ClonedCodeInfo *CodeInfo=nullptr) |
Return a copy of the specified basic block, but without embedding the block into a particular function. | |
Function * | CloneFunction (Function *F, ValueToValueMapTy &VMap, ClonedCodeInfo *CodeInfo=nullptr) |
Return a copy of the specified function and add it to that function's module. | |
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. | |
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. | |
void | CloneFunctionMetadataInto (Function &NewFunc, const Function &OldFunc, ValueToValueMapTy &VMap, RemapFlags RemapFlag, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
Clone OldFunc's metadata into NewFunc. | |
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) |
Clone OldFunc's body into NewFunc. | |
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. | |
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. | |
DISubprogram * | CollectDebugInfoForCloning (const Function &F, CloneFunctionChangeType Changes, DebugInfoFinder &DIFinder) |
Collect debug information such as types, compile units, and other subprograms that are reachable from F and can be considered global for the purposes of cloning (and hence not needing to be cloned). | |
bool | BuildDebugInfoMDMap (DenseMap< const Metadata *, TrackingMDRef > &MD, CloneFunctionChangeType Changes, DebugInfoFinder &DIFinder, DISubprogram *SPClonedWithinModule) |
Build a map of debug info to use during Metadata cloning. | |
InlineResult | InlineFunction (CallBase &CB, InlineFunctionInfo &IFI, bool MergeAttributes=false, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr) |
This function inlines the called function into the basic block of the caller. | |
InlineResult | InlineFunction (CallBase &CB, InlineFunctionInfo &IFI, PGOContextualProfile &CtxProf, bool MergeAttributes=false, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr) |
Same as above, but it will update the contextual profile. | |
Loop * | cloneLoopWithPreheader (BasicBlock *Before, BasicBlock *LoopDomBB, Loop *OrigLoop, ValueToValueMapTy &VMap, const Twine &NameSuffix, LoopInfo *LI, DominatorTree *DT, SmallVectorImpl< BasicBlock * > &Blocks) |
Clones a loop OrigLoop . | |
void | remapInstructionsInBlocks (ArrayRef< BasicBlock * > Blocks, ValueToValueMapTy &VMap) |
Remaps instructions in Blocks using the mapping in VMap . | |
BasicBlock * | 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. | |
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. | |
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. | |
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. | |
void | cloneNoAliasScopes (ArrayRef< MDNode * > NoAliasDeclScopes, DenseMap< MDNode *, MDNode * > &ClonedScopes, StringRef Ext, LLVMContext &Context) |
Duplicate the specified list of noalias decl scopes. | |
void | adaptNoAliasScopes (llvm::Instruction *I, const DenseMap< MDNode *, MDNode * > &ClonedScopes, LLVMContext &Context) |
Adapt the metadata for the specified instruction according to the provided mapping. | |
void | cloneAndAdaptNoAliasScopes (ArrayRef< MDNode * > NoAliasDeclScopes, ArrayRef< BasicBlock * > NewBlocks, LLVMContext &Context, StringRef Ext) |
Clone the specified noalias decl scopes. | |
void | cloneAndAdaptNoAliasScopes (ArrayRef< MDNode * > NoAliasDeclScopes, Instruction *IStart, Instruction *IEnd, LLVMContext &Context, StringRef Ext) |
Clone the specified noalias decl scopes. | |
bool | isControlFlowEquivalent (const Instruction &I0, const Instruction &I1, const DominatorTree &DT, const PostDominatorTree &PDT) |
Return true if I0 and I1 are control flow equivalent. | |
bool | isControlFlowEquivalent (const BasicBlock &BB0, const BasicBlock &BB1, const DominatorTree &DT, const PostDominatorTree &PDT) |
Return true if BB0 and BB1 are control flow equivalent. | |
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 . | |
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 . | |
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. | |
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. | |
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. | |
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. | |
bool | applyDebugifyMetadata (Module &M, iterator_range< Module::iterator > Functions, StringRef Banner, std::function< bool(DIBuilder &, Function &)> ApplyToMF) |
Add synthesized debug information to a module. | |
bool | stripDebugifyMetadata (Module &M) |
Strip out all of the metadata and debug info inserted by debugify. | |
bool | collectDebugInfoMetadata (Module &M, iterator_range< Module::iterator > Functions, DebugInfoPerPass &DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass) |
Collect original debug information before a pass. | |
bool | checkDebugInfoMetadata (Module &M, iterator_range< Module::iterator > Functions, DebugInfoPerPass &DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass, StringRef OrigDIVerifyBugsReportFilePath) |
Check original debug information after a pass. | |
void | exportDebugifyStats (StringRef Path, const DebugifyStatsMap &Map) |
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. | |
bool | checkIfAlreadyInstrumented (Module &M, StringRef Flag) |
Check if module has flag attached, if not add the flag. | |
BasicBlock::iterator | PrepareToSplitEntryBlock (BasicBlock &BB, BasicBlock::iterator IP) |
Instrumentation passes often insert conditional checks into entry blocks. | |
GlobalVariable * | createPrivateGlobalForString (Module &M, StringRef Str, bool AllowMerging, Twine NamePrefix="") |
Comdat * | getOrCreateFunctionComdat (Function &F, Triple &T) |
void | setGlobalVariableLargeSection (const Triple &TargetTriple, GlobalVariable &GV) |
void | createProfileSamplingVar (Module &M) |
static uint64_t | calculateCountScale (uint64_t MaxCount) |
Calculate what to divide by to scale counts. | |
static uint32_t | scaleBranchCount (uint64_t Count, uint64_t Scale) |
Scale an individual branch count. | |
bool | expandRemainder (BinaryOperator *Rem) |
Generate code to calculate the remainder of two integers, replacing Rem with the generated code. | |
bool | expandDivision (BinaryOperator *Div) |
Generate code to divide two integers, replacing Div with the generated code. | |
bool | expandRemainderUpTo32Bits (BinaryOperator *Rem) |
Generate code to calculate the remainder of two integers, replacing Rem with the generated code. | |
bool | expandRemainderUpTo64Bits (BinaryOperator *Rem) |
Generate code to calculate the remainder of two integers, replacing Rem with the generated code. | |
bool | expandDivisionUpTo32Bits (BinaryOperator *Div) |
Generate code to divide two integers, replacing Div with the generated code. | |
bool | expandDivisionUpTo64Bits (BinaryOperator *Div) |
Generate code to divide two integers, replacing Div with the generated code. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
bool | replaceDbgUsesWithUndef (Instruction *I) |
Replace all the uses of an SSA value in @llvm.dbg intrinsics with undef. | |
void | MergeBasicBlockIntoOnlyPred (BasicBlock *BB, DomTreeUpdater *DTU=nullptr) |
BB is a block with one predecessor and its predecessor is known to have one successor (BB!). | |
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. | |
bool | EliminateDuplicatePHINodes (BasicBlock *BB) |
Check for and eliminate duplicate PHI nodes in this block. | |
bool | EliminateDuplicatePHINodes (BasicBlock *BB, SmallPtrSetImpl< PHINode * > &ToRemove) |
Check for and eliminate duplicate PHI nodes in this block. | |
bool | simplifyCFG (BasicBlock *BB, const TargetTransformInfo &TTI, DomTreeUpdater *DTU=nullptr, const SimplifyCFGOptions &Options={}, ArrayRef< WeakVH > LoopHeaders={}) |
bool | FlattenCFG (BasicBlock *BB, AAResults *AA=nullptr) |
This function is used to flatten a CFG. | |
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. | |
AllocaInst * | DemoteRegToStack (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. | |
AllocaInst * | 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. | |
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. | |
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. | |
CallInst * | createCallMatchingInvoke (InvokeInst *II) |
Create a call that matches the invoke II in terms of arguments, attributes, debug information, etc. | |
CallInst * | changeToCall (InvokeInst *II, DomTreeUpdater *DTU=nullptr) |
This function converts the specified invoke into a normal call. | |
void | InsertDebugValueAtStoreLoc (DbgVariableRecord *DVR, StoreInst *SI, DIBuilder &Builder) |
===------------------------------------------------------------------—===// Dbg Intrinsic utilities | |
void | InsertDebugValueAtStoreLoc (DbgVariableIntrinsic *DII, StoreInst *SI, DIBuilder &Builder) |
Creates and inserts an llvm.dbg.value intrinsic before a store that has an associated llvm.dbg.value intrinsic. | |
void | ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, StoreInst *SI, DIBuilder &Builder) |
Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value that has an associated llvm.dbg.declare intrinsic. | |
void | ConvertDebugDeclareToDebugValue (DbgVariableRecord *DVR, StoreInst *SI, DIBuilder &Builder) |
void | ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, LoadInst *LI, DIBuilder &Builder) |
Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.declare intrinsic. | |
void | ConvertDebugDeclareToDebugValue (DbgVariableRecord *DVR, LoadInst *LI, DIBuilder &Builder) |
void | ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII, PHINode *LI, DIBuilder &Builder) |
Inserts a llvm.dbg.value intrinsic after a phi that has an associated llvm.dbg.declare intrinsic. | |
void | ConvertDebugDeclareToDebugValue (DbgVariableRecord *DVR, PHINode *LI, DIBuilder &Builder) |
bool | LowerDbgDeclare (Function &F) |
Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics. | |
void | insertDebugValuesForPHIs (BasicBlock *BB, SmallVectorImpl< PHINode * > &InsertedPHIs) |
Propagate dbg.value intrinsics through the newly inserted PHIs. | |
bool | replaceDbgDeclare (Value *Address, Value *NewAddress, DIBuilder &Builder, uint8_t DIExprFlags, int Offset) |
Replaces llvm.dbg.declare instruction when the address it describes is replaced with a new value. | |
void | replaceDbgValueForAlloca (AllocaInst *AI, Value *NewAllocaAddress, DIBuilder &Builder, int Offset=0) |
Replaces multiple llvm.dbg.value instructions when the alloca it describes is replaced with a new value. | |
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. | |
void | salvageDebugInfoForDbgValues (Instruction &I, ArrayRef< DbgVariableIntrinsic * > Insns, ArrayRef< DbgVariableRecord * > DPInsns) |
Implementation of salvageDebugInfo, applying only to instructions in Insns , rather than all debug users from findDbgUsers( I ). | |
Value * | salvageDebugInfoImpl (Instruction &I, uint64_t CurrentLocOps, SmallVectorImpl< uint64_t > &Ops, SmallVectorImpl< Value * > &AdditionalValues) |
bool | replaceAllDbgUsesWith (Instruction &From, Value &To, Instruction &DomPoint, DominatorTree &DT) |
Point debug users of From to To or salvage them. | |
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. | |
std::pair< unsigned, unsigned > | removeAllNonTerminatorAndEHPadInstructions (BasicBlock *BB) |
Remove all instructions from a basic block other than its terminator and any present EH pad instructions. | |
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. | |
BasicBlock * | changeToInvokeAndSplitBasicBlock (CallInst *CI, BasicBlock *UnwindEdge, DomTreeUpdater *DTU=nullptr) |
Convert the CallInst to InvokeInst with the specified unwind edge basic block. | |
Instruction * | removeUnwindEdge (BasicBlock *BB, DomTreeUpdater *DTU=nullptr) |
Replace 'BB's terminator with one that does not have an unwind successor block. | |
bool | removeUnreachableBlocks (Function &F, DomTreeUpdater *DTU=nullptr, MemorySSAUpdater *MSSAU=nullptr) |
Remove all blocks that can not be reached from the function's entry. | |
void | combineMetadataForCSE (Instruction *K, const Instruction *J, bool DoesKMove) |
Combine the metadata of two instructions so that K can replace J. | |
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. | |
void | copyMetadataForLoad (LoadInst &Dest, const LoadInst &Source) |
Copy the metadata from the source instruction to the destination (the replacement for the source instruction). | |
void | patchReplacementInstruction (Instruction *I, Value *Repl) |
Patch the replacement so that it is not more restrictive than the value being replaced. | |
unsigned | replaceNonLocalUsesWith (Instruction *From, Value *To) |
unsigned | replaceDominatedUsesWith (Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Edge) |
Replace each use of 'From' with 'To' if that use is dominated by the given edge. | |
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. | |
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. | |
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. | |
bool | callsGCLeafFunction (const CallBase *Call, const TargetLibraryInfo &TLI) |
Return true if this call calls a gc leaf function. | |
void | copyNonnullMetadata (const LoadInst &OldLI, MDNode *N, LoadInst &NewLI) |
Copy a nonnull metadata node to a new load instruction. | |
void | copyRangeMetadata (const DataLayout &DL, const LoadInst &OldLI, MDNode *N, LoadInst &NewLI) |
Copy a range metadata node to a new load instruction. | |
void | dropDebugUsers (Instruction &I) |
Remove the debug intrinsic instructions for the given instruction. | |
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 . | |
DIExpression * | getExpressionForConstant (DIBuilder &DIB, const Constant &C, Type &Ty) |
Given a constant, create a debug information expression. | |
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. | |
bool | recognizeBSwapOrBitReverseIdiom (Instruction *I, bool MatchBSwaps, bool MatchBitReversals, SmallVectorImpl< Instruction * > &InsertedInsts) |
Try to match a bswap or bitreverse idiom. | |
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. | |
bool | canReplaceOperandWithVariable (const Instruction *I, unsigned OpIdx) |
Given an instruction, is it legal to set operand OpIdx to a non-constant value? | |
Value * | invertCondition (Value *Condition) |
Invert the given true/false value, possibly reusing an existing copy. | |
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 | peelLoop (Loop *L, unsigned PeelCount, 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, AssumptionCache *AC=nullptr, unsigned Threshold=UINT_MAX) |
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. | |
bool | simplifyLoop (Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE, AssumptionCache *AC, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) |
Simplify each loop in a loop nest recursively. | |
BasicBlock * | 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. | |
bool | formDedicatedExitBlocks (Loop *L, DominatorTree *DT, LoopInfo *LI, MemorySSAUpdater *MSSAU, bool PreserveLCSSA) |
Ensure that all exit blocks of the loop are dedicated exits. | |
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. | |
bool | formLCSSA (Loop &L, const DominatorTree &DT, const LoopInfo *LI, ScalarEvolution *SE) |
Put loop into LCSSA form. | |
bool | formLCSSARecursively (Loop &L, const DominatorTree &DT, const LoopInfo *LI, ScalarEvolution *SE) |
Put a loop nest into LCSSA form. | |
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. | |
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. | |
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. | |
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. | |
void | deleteDeadLoop (Loop *L, DominatorTree *DT, ScalarEvolution *SE, LoopInfo *LI, MemorySSA *MSSA=nullptr) |
This function deletes dead loops. | |
void | breakLoopBackedge (Loop *L, DominatorTree &DT, ScalarEvolution &SE, LoopInfo &LI, MemorySSA *MSSA) |
Remove the backedge of the specified loop. | |
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. | |
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. | |
SmallVector< Instruction *, 8 > | findDefsUsedOutsideOfLoop (Loop *L) |
Returns the instructions that use values defined in the loop. | |
std::optional< ElementCount > | 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. | |
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. | |
bool | hasDisableAllTransformsHint (const Loop *L) |
Look for the loop attribute that disables all transformation heuristic. | |
bool | hasDisableLICMTransformsHint (const Loop *L) |
Look for the loop attribute that disables the LICM transformation heuristics. | |
void | addStringMetadataToLoop (Loop *TheLoop, const char *MDString, unsigned V=0) |
Set input string into loop metadata by keeping other values intact. | |
std::optional< unsigned > | getLoopEstimatedTripCount (Loop *L, unsigned *EstimatedLoopInvocationWeight=nullptr) |
Returns a loop's estimated trip count based on branch weight metadata. | |
bool | setLoopEstimatedTripCount (Loop *L, unsigned EstimatedTripCount, unsigned EstimatedLoopInvocationWeight) |
Set a loop's branch weight metadata to reflect that loop has EstimatedTripCount iterations and EstimatedLoopInvocationWeight exits through latch. | |
bool | hasIterationCountInvariantInParent (Loop *L, ScalarEvolution &SE) |
Check inner loop (L) backedge count is known to be invariant on all iterations of its outer loop. | |
void | getLoopAnalysisUsage (AnalysisUsage &AU) |
Helper to consistently add the set of standard passes to a loop pass's AnalysisUsage . | |
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. | |
constexpr Intrinsic::ID | getReductionIntrinsicID (RecurKind RK) |
Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence kind. | |
unsigned | getArithmeticReductionInstruction (Intrinsic::ID RdxID) |
Returns the arithmetic instruction opcode used when expanding a reduction. | |
Intrinsic::ID | getMinMaxReductionIntrinsicOp (Intrinsic::ID RdxID) |
Returns the min/max intrinsic used when expanding a min/max reduction. | |
Intrinsic::ID | getMinMaxReductionIntrinsicOp (RecurKind RK) |
Returns the min/max intrinsic used when expanding a min/max reduction. | |
RecurKind | getMinMaxReductionRecurKind (Intrinsic::ID RdxID) |
Returns the recurence kind used when expanding a min/max reduction. | |
CmpInst::Predicate | getMinMaxReductionPredicate (RecurKind RK) |
Returns the comparison predicate used when expanding a min/max reduction. | |
Value * | getReductionIdentity (Intrinsic::ID RdxID, Type *Ty, FastMathFlags FMF) |
Given information about an @llvm.vector.reduce. | |
Value * | getRecurrenceIdentity (RecurKind K, Type *Tp, FastMathFlags FMF) |
Given information about an recurrence kind, return the identity for the @llvm.vector.reduce. | |
Value * | createMinMaxOp (IRBuilderBase &Builder, RecurKind RK, Value *Left, Value *Right) |
Returns a Min/Max operation corresponding to MinMaxRecurrenceKind. | |
Value * | getOrderedReduction (IRBuilderBase &Builder, Value *Acc, Value *Src, unsigned Op, RecurKind MinMaxKind=RecurKind::None) |
Generates an ordered vector reduction using extracts to reduce the value. | |
Value * | getShuffleReduction (IRBuilderBase &Builder, Value *Src, unsigned Op, TargetTransformInfo::ReductionShuffle RS, RecurKind MinMaxKind=RecurKind::None) |
Generates a vector reduction using shufflevectors to reduce the value. | |
Value * | createSimpleReduction (IRBuilderBase &B, Value *Src, RecurKind RdxKind) |
Create a reduction of the given vector. | |
Value * | createSimpleReduction (VectorBuilder &VB, Value *Src, const RecurrenceDescriptor &Desc) |
Overloaded function to generate vector-predication intrinsics for reduction. | |
Value * | createAnyOfReduction (IRBuilderBase &B, Value *Src, const RecurrenceDescriptor &Desc, PHINode *OrigPhi) |
Create a reduction of the given vector Src for a reduction of the kind RecurKind::IAnyOf or RecurKind::FAnyOf. | |
Value * | createFindLastIVReduction (IRBuilderBase &B, Value *Src, const RecurrenceDescriptor &Desc) |
Create a reduction of the given vector Src for a reduction of the kind RecurKind::IFindLastIV or RecurKind::FFindLastIV. | |
Value * | createReduction (IRBuilderBase &B, const RecurrenceDescriptor &Desc, Value *Src, PHINode *OrigPhi=nullptr) |
Create a generic reduction using a recurrence descriptor Desc Fast-math-flags are propagated using the RecurrenceDescriptor. | |
Value * | createOrderedReduction (IRBuilderBase &B, const RecurrenceDescriptor &Desc, Value *Src, Value *Start) |
Create an ordered reduction intrinsic using the given recurrence descriptor Desc . | |
Value * | createOrderedReduction (VectorBuilder &VB, const RecurrenceDescriptor &Desc, Value *Src, Value *Start) |
Overloaded function to generate vector-predication intrinsics for ordered reduction. | |
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). | |
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 . | |
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 . | |
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 . | |
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 . | |
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. | |
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. | |
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. | |
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 > | |
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. | |
void | appendLoopsToWorklist (LoopInfo &, SmallPriorityWorklist< Loop *, 4 > &) |
Utility that implements appending of loops onto a worklist given LoopInfo. | |
Loop * | 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. | |
Value * | 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. | |
Value * | addDiffRuntimeChecks (Instruction *Loc, ArrayRef< PointerDiffInfo > Checks, SCEVExpander &Expander, function_ref< Value *(IRBuilderBase &, unsigned)> GetVF, unsigned IC) |
std::optional< IVConditionInfo > | 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. | |
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. | |
Value * | buildAtomicRMWValue (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. | |
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. | |
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. | |
void | expandMemCpyAsLoop (MemCpyInst *MemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE=nullptr) |
Expand MemCpy as a loop. MemCpy is not deleted. | |
bool | expandMemMoveAsLoop (MemMoveInst *MemMove, const TargetTransformInfo &TTI) |
Expand MemMove as a loop. | |
void | expandMemSetAsLoop (MemSetInst *MemSet) |
Expand MemSet as a loop. MemSet is not deleted. | |
void | expandMemSetPatternAsLoop (MemSetPatternInst *MemSet) |
Expand MemSetPattern as a loop. MemSet is not deleted. | |
void | expandAtomicMemCpyAsLoop (AtomicMemCpyInst *AtomicMemCpy, const TargetTransformInfo &TTI, ScalarEvolution *SE) |
Expand AtomicMemCpy as a loop. AtomicMemCpy is not deleted. | |
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. | |
void | appendToGlobalDtors (Module &M, Function *F, int Priority, Constant *Data=nullptr) |
Same as appendToGlobalCtors(), but for global dtors. | |
void | transformGlobalCtors (Module &M, const GlobalCtorTransformFn &Fn) |
void | transformGlobalDtors (Module &M, const GlobalCtorTransformFn &Fn) |
void | setKCFIType (Module &M, Function &F, StringRef MangledType) |
Sets the KCFI type for the function. | |
FunctionCallee | declareSanitizerInitFunction (Module &M, StringRef InitName, ArrayRef< Type * > InitArgTypes, bool Weak=false) |
Function * | createSanitizerCtor (Module &M, StringRef CtorName) |
Creates sanitizer constructor function. | |
std::pair< Function *, FunctionCallee > | createSanitizerCtorAndInitFunctions (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. | |
std::pair< Function *, FunctionCallee > | 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. | |
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. | |
void | appendToUsed (Module &M, ArrayRef< GlobalValue * > Values) |
Adds global values to the llvm.used list. | |
void | appendToCompilerUsed (Module &M, ArrayRef< GlobalValue * > Values) |
Adds global values to the llvm.compiler.used list. | |
void | removeFromUsedLists (Module &M, function_ref< bool(Constant *)> ShouldRemove) |
Removes global values from the llvm.used and llvm.compiler.used arrays. | |
void | filterDeadComdatFunctions (SmallVectorImpl< Function * > &DeadComdatFunctions) |
Filter out potentially dead comdat functions where other entries keep the entire comdat group alive. | |
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. | |
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. | |
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. | |
bool | isAllocaPromotable (const AllocaInst *AI) |
Return true if this alloca is legal for promotion. | |
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, bool > | 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. | |
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. | |
PHINode * | 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. | |
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) |
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. | |
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. | |
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. | |
const Loop * | 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. | |
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. | |
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, Loop **ResultLoop=nullptr) |
Insert code in the prolog/epilog code when unrolling a loop with a run-time trip-count. | |
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) |
bool | isSafeToUnrollAndJam (Loop *L, ScalarEvolution &SE, DominatorTree &DT, DependenceInfo &DI, LoopInfo &LI) |
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. | |
MDNode * | 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"). | |
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. | |
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) |
RemapFlags | operator| (RemapFlags LHS, RemapFlags RHS) |
Value * | MapValue (const Value *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
Look up or compute a value in the value map. | |
Metadata * | MapMetadata (const Metadata *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
Lookup or compute a mapping for a piece of metadata. | |
MDNode * | MapMetadata (const MDNode *MD, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=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) |
Convert the instruction operands from referencing the current values into those specified by VM. | |
void | RemapDbgRecord (Module *M, DbgRecord *DR, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=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) |
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) |
Remap the operands, metadata, arguments, and instructions of a function. | |
Constant * | MapValue (const Constant *V, ValueToValueMapTy &VM, RemapFlags Flags=RF_None, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
Version of MapValue with type safety for Constant. | |
Pass * | createLoadStoreVectorizerPass () |
Create a legacy pass manager instance of the LoadStoreVectorizer pass. | |
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. | |
const char * | archToWindowsSDKArch (llvm::Triple::ArchType Arch) |
const char * | archToLegacyVCArch (llvm::Triple::ArchType Arch) |
const char * | archToDevDivInternalArch (llvm::Triple::ArchType Arch) |
bool | appendArchToWindowsSDKLibPath (int SDKMajor, llvm::SmallString< 128 > LibPath, llvm::Triple::ArchType Arch, std::string &path) |
std::string | getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::StringRef SubdirParent="") |
bool | useUniversalCRT (ToolsetLayout VSLayout, const std::string &VCToolChainPath, llvm::Triple::ArchType TargetArch, llvm::vfs::FileSystem &VFS) |
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. | |
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) |
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) |
bool | findVCToolChainViaEnvironment (vfs::FileSystem &VFS, std::string &Path, ToolsetLayout &VSLayout) |
bool | findVCToolChainViaSetupConfig (vfs::FileSystem &VFS, std::optional< llvm::StringRef > VCToolsVersion, std::string &Path, ToolsetLayout &VSLayout) |
bool | findVCToolChainViaRegistry (std::string &Path, ToolsetLayout &VSLayout) |
static GVDAGType | getGVDT () |
cl::opt< bool > | 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")) |
cl::opt< bool > | UseIterativeBFIInference ("use-iterative-bfi-inference", cl::Hidden, cl::desc("Apply an iterative post-processing to infer correct BFI counts")) |
cl::opt< unsigned > | IterativeBFIMaxIterationsPerBlock ("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")) |
static raw_ostream & | operator<< (raw_ostream &R, const ore::NV &Arg) |
template<class RemarkT > | |
RemarkT & | 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_ostream & | operator<< (raw_ostream &OS, ScalarEvolution::LoopDisposition LD) |
raw_ostream & | operator<< (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_ostream & | WriteGraph (raw_ostream &O, const EdgeBundles &G, bool ShortNames, const Twine &Title) |
Specialize WriteGraph, the standard implementation won't work. | |
LDVImpl * | makeVarLocBasedLiveDebugValues () |
LDVImpl * | makeInstrRefBasedLiveDebugValues () |
bool | debuginfoShouldUseDebugInstrRef (const Triple &T) |
cl::opt< bool > | 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.")) |
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< unsigned > | StaticLikelyProb ("static-likely-prob", cl::desc("branch probability threshold in percentage" " to be considered very likely"), cl::init(80), cl::Hidden) |
cl::opt< unsigned > | 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) |
cl::opt< bool > | SwpEnableCopyToPhi ("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. | |
FunctionPass * | createMachineRegionInfoPass () |
cl::opt< MISched::Direction > | 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"))) |
cl::opt< bool > | VerifyScheduling ("verify-misched", cl::Hidden, cl::desc("Verify machine instrs before and after machine scheduling")) |
cl::opt< bool > | ViewMISchedDAGs ("view-misched-dags", cl::Hidden, cl::desc("Pop up a window to show MISched dags after they are processed")) |
cl::opt< bool > | PrintDAGs ("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< PseudoProbe > | extractProbe (const MachineInstr &MI) |
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) |
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, unsigned SrcReg) |
findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB. | |
cl::opt< unsigned > | 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)) |
template<> | |
Pass * | callDefaultCtor< RegAllocEvictionAdvisorAnalysis > () |
Specialization for the API used by the analysis infrastructure to create an instance of the eviction advisor. | |
RegAllocEvictionAdvisorAnalysis * | createReleaseModeAdvisor () |
RegAllocEvictionAdvisorAnalysis * | createDevelopmentModeAdvisor () |
template<> | |
Pass * | callDefaultCtor< RegAllocPriorityAdvisorAnalysis > () |
Specialization for the API used by the analysis infrastructure to create an instance of the priority advisor. | |
RegAllocPriorityAdvisorAnalysis * | createReleaseModePriorityAdvisor () |
RegAllocPriorityAdvisorAnalysis * | createDevelopmentModePriorityAdvisor () |
RegAllocScore | calculateRegAllocScore (const MachineFunction &MF, const MachineBlockFrequencyInfo &MBFI) |
Calculate a score. | |
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 std::vector< Desc > | getOpDescriptions () |
static Desc | getDescImpl (ArrayRef< Desc > Descriptions, unsigned Opcode) |
static Desc | getOpDesc (unsigned Opcode) |
static std::vector< Desc > | getSubOpDescriptions () |
static Desc | getSubOpDesc (unsigned Opcode, unsigned SubOpcode) |
static void | prettyPrintBaseTypeRef (DWARFUnit *U, raw_ostream &OS, DIDumpOptions DumpOpts, ArrayRef< uint64_t > Operands, unsigned Operand) |
static bool | printCompactDWARFExpr (raw_ostream &OS, DWARFExpression::iterator I, const DWARFExpression::iterator E, std::function< StringRef(uint64_t RegNum, bool IsEH)> GetNameForDWARFReg=nullptr) |
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const GUID &G) |
static std::string | buildIDToString (BuildIDRef ID) |
std::string | getDebuginfodSourceUrlPath (BuildIDRef ID, StringRef SourceFilePath) |
The following functions fetch a debuginfod artifact to a file in a local cache and return the cached file path. | |
Expected< std::string > | getCachedOrDownloadSource (BuildIDRef ID, StringRef SourceFilePath) |
std::string | getDebuginfodExecutableUrlPath (BuildIDRef ID) |
Expected< std::string > | getCachedOrDownloadExecutable (BuildIDRef ID) |
std::string | getDebuginfodDebuginfoUrlPath (BuildIDRef ID) |
Expected< std::string > | getCachedOrDownloadDebuginfo (BuildIDRef ID) |
static bool | isHeader (StringRef S) |
static SmallVector< std::string, 0 > | getHeaders () |
static bool | hasELFMagic (StringRef FilePath) |
static uint64_t | getDebugInfoSize (DWARFContext &Dwarf) |
Compute the total size of the debug info. | |
static CompileUnit * | getUnitForOffset (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 | 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< DWARFDebugLine::Row > &Seq, std::vector< DWARFDebugLine::Row > &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< RuntimeDyldCOFF > | createRuntimeDyldCOFF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted) |
static std::unique_ptr< RuntimeDyldELF > | createRuntimeDyldELF (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MM, JITSymbolResolver &Resolver, bool ProcessAllSections, RuntimeDyld::NotifyStubEmittedFunction NotifyStubEmitted) |
static std::unique_ptr< RuntimeDyldMachO > | createRuntimeDyldMachO (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 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) |
Expected< APInt > | exprAdd (const APInt &Lhs, const APInt &Rhs, bool &Overflow) |
Performs operation and. | |
Expected< APInt > | exprSub (const APInt &Lhs, const APInt &Rhs, bool &Overflow) |
Expected< APInt > | exprMul (const APInt &Lhs, const APInt &Rhs, bool &Overflow) |
Expected< APInt > | exprDiv (const APInt &Lhs, const APInt &Rhs, bool &Overflow) |
Expected< APInt > | exprMax (const APInt &Lhs, const APInt &Rhs, bool &Overflow) |
Expected< APInt > | exprMin (const APInt &Lhs, const APInt &Rhs, bool &Overflow) |
void | deleteConstant (Constant *C) |
cl::opt< bool > | EnableFSDiscriminator ("enable-fs-discriminator", cl::Hidden, cl::desc("Enable adding flow sensitive discriminators")) |
static ValueAsMetadata * | getAsMetadata (Value *V) |
static const Metadata * | get_hashable_data (const MDOperand &X) |
Make MDOperand transparent for hashing. | |
template<class T , class InfoT > | |
static T * | getUniqued (DenseSet< T *, InfoT > &Store, const typename InfoT::KeyTy &Key) |
static bool | shouldIgnorePass (StringRef PassID) |
bool | isValueProfileMD (const MDNode *ProfileData) |
bool | hasCountTypeMD (const Instruction &I) |
std::optional< PseudoProbe > | extractProbeFromDiscriminator (const DILocation *DIL) |
std::optional< PseudoProbe > | extractProbeFromDiscriminator (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< bool > | EnableLTOInternalization ("enable-lto-internalization", cl::init(true), cl::Hidden, cl::desc("Enable global value internalization in LTO")) |
Enable global value internalization in LTO. | |
raw_ostream & | operator<< (raw_ostream &OS, const MCFixup &AF) |
MCAsmParserExtension * | createDarwinAsmParser () |
MCAsmParserExtension * | createELFAsmParser () |
MCAsmParserExtension * | createCOFFAsmParser () |
MCAsmParserExtension * | createGOFFAsmParser () |
MCAsmParserExtension * | createXCOFFAsmParser () |
MCAsmParserExtension * | createWasmAsmParser () |
MCAsmParserExtension * | createCOFFMasmParser () |
cl::opt< unsigned > | AsmMacroMaxNestingDepth ("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) |
cl::opt< bool > | PrintPipelinePasses ("print-pipeline-passes", cl::desc("Print a '-passes' compatible string describing the pipeline " "(best-effort only).")) |
cl::opt< bool > | DoInstrProfNameCompression ("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) |
static Error | readAndDecodeStrings (StringRef NameStrings, std::function< Error(StringRef)> NameCallback) |
NameStrings is a string composed of one of more possibly encoded sub-strings. | |
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) |
ValueProfData * | allocValueProfDataInstrProf (size_t TotalSizeInBytes) |
static std::unique_ptr< ValueProfData > | allocValueProfData (uint32_t TotalSize) |
MDNode * | mayHaveValueProfileOfKind (const Instruction &Inst, InstrProfValueKind ValueKind) |
static void | createPGONameMetadata (GlobalObject &GO, StringRef MetadataName, StringRef PGOName) |
cl::opt< bool > | UseContextLessSummary ("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< unsigned > | 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.")) |
cl::opt< unsigned > | 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.")) |
cl::opt< uint64_t > | ProfileSummaryHotCount ("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_t > | ProfileSummaryColdCount ("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::iterator > | skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator *dot) |
static Error | interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo *D) |
static Expected< lostFraction > | trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue) |
static lostFraction | lostFractionThroughTruncation (const APFloatBase::integerPart *parts, unsigned int partCount, unsigned int bits) |
static lostFraction | shiftRight (APFloatBase::integerPart *dst, unsigned int parts, unsigned int bits) |
static lostFraction | combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant) |
static unsigned int | HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2) |
static APFloatBase::integerPart | ulpsFromBoundary (const APFloatBase::integerPart *parts, unsigned int bits, bool isNearest) |
static unsigned int | powerOf5 (APFloatBase::integerPart *dst, unsigned int power) |
static unsigned int | partAsHex (char *dst, APFloatBase::integerPart part, unsigned int count, const char *hexDigitChars) |
static char * | writeUnsignedDecimal (char *dst, unsigned int n) |
static char * | writeSignedDecimal (char *dst, int value) |
static struct tm | getStructTM (TimePoint<> TP) |
static struct tm | getStructTMUtc (UtcTime<> TP) |
template<class T > | |
static void | format (const T &Fractional, struct tm <, 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 | initTypeSizeOptions () |
void | initWithColorOptions () |
void | initDebugOptions () |
void | initRandomSeedOptions () |
void * | SearchForAddressOfSpecialSymbol (const char *SymbolName) |
static void | PrintMessage (ArrayRef< SMLoc > Loc, SourceMgr::DiagKind Kind, const Twine &Msg) |
static void | fatal_exit () |
FunctionPass * | createAArch64DeadRegisterDefinitions () |
FunctionPass * | createAArch64RedundantCopyEliminationPass () |
FunctionPass * | createAArch64CondBrTuning () |
FunctionPass * | createAArch64CompressJumpTablesPass () |
FunctionPass * | createAArch64ConditionalCompares () |
FunctionPass * | createAArch64AdvSIMDScalar () |
FunctionPass * | createAArch64ISelDag (AArch64TargetMachine &TM, CodeGenOptLevel OptLevel) |
createAArch64ISelDag - This pass converts a legalized DAG into a AArch64-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createAArch64StorePairSuppressPass () |
FunctionPass * | createAArch64ExpandPseudoPass () |
Returns an instance of the pseudo instruction expansion pass. | |
FunctionPass * | createAArch64SLSHardeningPass () |
FunctionPass * | createAArch64SpeculationHardeningPass () |
Returns an instance of the pseudo instruction expansion pass. | |
FunctionPass * | createAArch64LoadStoreOptimizationPass () |
createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass. | |
ModulePass * | createAArch64LowerHomogeneousPrologEpilogPass () |
FunctionPass * | createAArch64SIMDInstrOptPass () |
Returns an instance of the high cost ASIMD instruction replacement optimization pass. | |
ModulePass * | createAArch64PromoteConstantPass () |
FunctionPass * | createAArch64ConditionOptimizerPass () |
FunctionPass * | createAArch64A57FPLoadBalancing () |
FunctionPass * | createAArch64A53Fix835769 () |
FunctionPass * | createFalkorHWPFFixPass () |
FunctionPass * | createFalkorMarkStridedAccessesPass () |
FunctionPass * | createAArch64PointerAuthPass () |
FunctionPass * | createAArch64BranchTargetsPass () |
FunctionPass * | createAArch64MIPeepholeOptPass () |
FunctionPass * | createAArch64PostCoalescerPass () |
FunctionPass * | createAArch64CleanupLocalDynamicTLSPass () |
FunctionPass * | createAArch64CollectLOHPass () |
FunctionPass * | createSMEABIPass () |
FunctionPass * | createSMEPeepholeOptPass () |
ModulePass * | createSVEIntrinsicOptsPass () |
InstructionSelector * | createAArch64InstructionSelector (const AArch64TargetMachine &, const AArch64Subtarget &, const AArch64RegisterBankInfo &) |
FunctionPass * | createAArch64O0PreLegalizerCombiner () |
FunctionPass * | createAArch64PreLegalizerCombiner () |
FunctionPass * | createAArch64PostLegalizerCombiner (bool IsOptNone) |
FunctionPass * | createAArch64PostLegalizerLowering () |
FunctionPass * | createAArch64PostSelectOptimize () |
FunctionPass * | createAArch64StackTaggingPass (bool IsOptNone) |
FunctionPass * | createAArch64StackTaggingPreRAPass () |
ModulePass * | createAArch64Arm64ECCallLoweringPass () |
void | initializeAArch64A53Fix835769Pass (PassRegistry &) |
void | initializeAArch64A57FPLoadBalancingPass (PassRegistry &) |
void | initializeAArch64AdvSIMDScalarPass (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 | initializeSVEIntrinsicOptsPass (PassRegistry &) |
void | initializeAArch64Arm64ECCallLoweringPass (PassRegistry &) |
bool | CC_AArch64_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Arm64EC_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Arm64EC_Thunk (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Arm64EC_Thunk_Native (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_DarwinPCS_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_DarwinPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_DarwinPCS_ILP32_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Win64PCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Win64_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Win64_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Arm64EC_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_AArch64_Preserve_None (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_AArch64_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_AArch64_Arm64EC_Thunk (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_AArch64_Arm64EC_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
std::optional< UsedNZCV > | examineCFlagsUse (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) |
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 | 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< ScheduleDAGMutation > | createAArch64MacroFusionDAGMutation () |
Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64PassConfig::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. | |
MCELFStreamer * | createAArch64ELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
MCCodeEmitter * | createAArch64MCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createAArch64leAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCAsmBackend * | createAArch64beAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createAArch64ELFObjectWriter (uint8_t OSABI, bool IsILP32) |
std::unique_ptr< MCObjectTargetWriter > | createAArch64MachObjectWriter (uint32_t CPUType, uint32_t CPUSubtype, bool IsILP32) |
std::unique_ptr< MCObjectTargetWriter > | createAArch64WinCOFFObjectWriter (const Triple &TheTriple) |
MCTargetStreamer * | createAArch64AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint) |
MCTargetStreamer * | createAArch64ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
MCTargetStreamer * | createAArch64NullTargetStreamer (MCStreamer &S) |
MCWinCOFFStreamer * | createAArch64WinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
Target & | getTheAArch64leTarget () |
Target & | getTheAArch64beTarget () |
Target & | getTheAArch64_32Target () |
Target & | getTheARM64Target () |
Target & | getTheARM64_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< unsigned > | getSVEPredPatternFromNumElements (unsigned MinNumElts) |
Return specific VL predicate pattern based on the number of elements. | |
LLVM_DECLARE_ENUM_AS_BITMASK (TailFoldingOpts,(long) TailFoldingOpts::Reverse) | |
static const char * | AArch64VectorLayoutToString (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::ID > | AArch64StringToPACKeyID (StringRef Name) |
Return numeric key ID for 2-letter identifier string. | |
void | initializeAMDGPUPreLegalizerCombinerPass (PassRegistry &) |
FunctionPass * | createAMDGPUPreLegalizeCombiner (bool IsOptNone) |
void | initializeAMDGPUPostLegalizerCombinerPass (PassRegistry &) |
FunctionPass * | createAMDGPUPostLegalizeCombiner (bool IsOptNone) |
FunctionPass * | createAMDGPURegBankCombiner (bool IsOptNone) |
void | initializeAMDGPURegBankCombinerPass (PassRegistry &) |
FunctionPass * | createAMDGPUGlobalISelDivergenceLoweringPass () |
FunctionPass * | createAMDGPURegBankSelectPass () |
FunctionPass * | createAMDGPURegBankLegalizePass () |
FunctionPass * | createGCNDPPCombinePass () |
FunctionPass * | createSIAnnotateControlFlowLegacyPass () |
Create the annotation pass. | |
FunctionPass * | createSIFoldOperandsLegacyPass () |
FunctionPass * | createSIPeepholeSDWALegacyPass () |
FunctionPass * | createSILowerI1CopiesLegacyPass () |
FunctionPass * | createSIShrinkInstructionsLegacyPass () |
FunctionPass * | createSILoadStoreOptimizerLegacyPass () |
FunctionPass * | createSIWholeQuadModePass () |
FunctionPass * | createSIFixControlFlowLiveIntervalsPass () |
FunctionPass * | createSIOptimizeExecMaskingPreRAPass () |
FunctionPass * | createSIOptimizeVGPRLiveRangeLegacyPass () |
FunctionPass * | createSIFixSGPRCopiesLegacyPass () |
FunctionPass * | createLowerWWMCopiesPass () |
FunctionPass * | createSIMemoryLegalizerPass () |
FunctionPass * | createSIInsertWaitcntsPass () |
FunctionPass * | createSIPreAllocateWWMRegsLegacyPass () |
FunctionPass * | createSIFormMemoryClausesPass () |
FunctionPass * | createSIPostRABundlerPass () |
FunctionPass * | createAMDGPUImageIntrinsicOptimizerPass (const TargetMachine *) |
ModulePass * | createAMDGPURemoveIncompatibleFunctionsPass (const TargetMachine *) |
FunctionPass * | createAMDGPUCodeGenPreparePass () |
FunctionPass * | createAMDGPULateCodeGenPrepareLegacyPass () |
FunctionPass * | createAMDGPUReserveWWMRegsPass () |
FunctionPass * | createAMDGPURewriteOutArgumentsPass () |
ModulePass * | createAMDGPULowerModuleLDSLegacyPass (const AMDGPUTargetMachine *TM=nullptr) |
ModulePass * | createAMDGPULowerBufferFatPointersPass () |
FunctionPass * | createSIModeRegisterPass () |
FunctionPass * | createGCNPreRAOptimizationsPass () |
FunctionPass * | createAMDGPUPreloadKernArgPrologLegacyPass () |
void | initializeAMDGPUDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeAMDGPUAlwaysInlinePass (PassRegistry &) |
Pass * | createAMDGPUAnnotateKernelFeaturesPass () |
Pass * | createAMDGPUAttributorLegacyPass () |
void | initializeAMDGPUAttributorLegacyPass (PassRegistry &) |
void | initializeAMDGPUAnnotateKernelFeaturesPass (PassRegistry &) |
FunctionPass * | createAMDGPUAtomicOptimizerPass (ScanOptions ScanStrategy) |
void | initializeAMDGPUAtomicOptimizerPass (PassRegistry &) |
ModulePass * | createAMDGPUCtorDtorLoweringLegacyPass () |
void | initializeAMDGPUCtorDtorLoweringLegacyPass (PassRegistry &) |
FunctionPass * | createAMDGPULowerKernelArgumentsPass () |
void | initializeAMDGPULowerKernelArgumentsPass (PassRegistry &) |
FunctionPass * | createAMDGPUPromoteKernelArgumentsPass () |
void | initializeAMDGPUPromoteKernelArgumentsPass (PassRegistry &) |
ModulePass * | createAMDGPULowerKernelAttributesPass () |
void | initializeAMDGPULowerKernelAttributesPass (PassRegistry &) |
void | initializeAMDGPULowerModuleLDSLegacyPass (PassRegistry &) |
void | initializeAMDGPULowerBufferFatPointersPass (PassRegistry &) |
void | initializeAMDGPUReserveWWMRegsPass (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 | initializeAMDGPUMarkLastScratchLoadPass (PassRegistry &) |
void | initializeSILowerSGPRSpillsLegacyPass (PassRegistry &) |
void | initializeSILoadStoreOptimizerLegacyPass (PassRegistry &) |
void | initializeSIWholeQuadModePass (PassRegistry &) |
void | initializeSILowerControlFlowLegacyPass (PassRegistry &) |
void | initializeSIPreEmitPeepholePass (PassRegistry &) |
void | initializeSILateBranchLoweringPass (PassRegistry &) |
void | initializeSIOptimizeExecMaskingLegacyPass (PassRegistry &) |
void | initializeSIPreAllocateWWMRegsLegacyPass (PassRegistry &) |
void | initializeAMDGPUImageIntrinsicOptimizerPass (PassRegistry &) |
void | initializeAMDGPUPerfHintAnalysisLegacyPass (PassRegistry &) |
void | initializeGCNRegPressurePrinterPass (PassRegistry &) |
void | initializeAMDGPUPreloadKernArgPrologLegacyPass (PassRegistry &) |
FunctionPass * | createAMDGPUPromoteAlloca () |
void | initializeAMDGPUPromoteAllocaPass (PassRegistry &) |
FunctionPass * | createAMDGPUPromoteAllocaToVector () |
void | initializeAMDGPUPromoteAllocaToVectorPass (PassRegistry &) |
Pass * | createAMDGPUStructurizeCFGPass () |
FunctionPass * | createAMDGPUISelDag (TargetMachine &TM, CodeGenOptLevel OptLevel) |
This pass converts a legalized DAG into a AMDGPU-specific. | |
ModulePass * | createAMDGPUAlwaysInlinePass (bool GlobalOpt=true) |
void | initializeAMDGPUSwLowerLDSLegacyPass (PassRegistry &) |
ModulePass * | createAMDGPUSwLowerLDSLegacyPass (const AMDGPUTargetMachine *TM=nullptr) |
FunctionPass * | createAMDGPUAnnotateUniformValuesLegacy () |
ModulePass * | createAMDGPUPrintfRuntimeBinding () |
void | initializeAMDGPUPrintfRuntimeBindingPass (PassRegistry &) |
void | initializeAMDGPUResourceUsageAnalysisPass (PassRegistry &) |
ModulePass * | createAMDGPUUnifyMetadataPass () |
void | initializeAMDGPUUnifyMetadataPass (PassRegistry &) |
void | initializeSIOptimizeExecMaskingPreRAPass (PassRegistry &) |
void | initializeSIOptimizeVGPRLiveRangeLegacyPass (PassRegistry &) |
void | initializeAMDGPUAnnotateUniformValuesLegacyPass (PassRegistry &) |
void | initializeAMDGPUCodeGenPreparePass (PassRegistry &) |
void | initializeAMDGPURemoveIncompatibleFunctionsLegacyPass (PassRegistry &) |
void | initializeAMDGPULateCodeGenPrepareLegacyPass (PassRegistry &) |
FunctionPass * | createAMDGPURewriteUndefForPHILegacyPass () |
void | initializeAMDGPURewriteUndefForPHILegacyPass (PassRegistry &) |
void | initializeSIAnnotateControlFlowLegacyPass (PassRegistry &) |
void | initializeSIMemoryLegalizerPass (PassRegistry &) |
void | initializeSIModeRegisterPass (PassRegistry &) |
void | initializeAMDGPUInsertDelayAluPass (PassRegistry &) |
void | initializeSIInsertHardClausesPass (PassRegistry &) |
void | initializeSIInsertWaitcntsPass (PassRegistry &) |
void | initializeSIFormMemoryClausesPass (PassRegistry &) |
void | initializeSIPostRABundlerPass (PassRegistry &) |
void | initializeGCNCreateVOPDPass (PassRegistry &) |
void | initializeAMDGPUUnifyDivergentExitNodesPass (PassRegistry &) |
ImmutablePass * | createAMDGPUAAWrapperPass () |
void | initializeAMDGPUAAWrapperPassPass (PassRegistry &) |
ImmutablePass * | createAMDGPUExternalAAWrapperPass () |
void | initializeAMDGPUExternalAAWrapperPass (PassRegistry &) |
void | initializeAMDGPUArgumentUsageInfoPass (PassRegistry &) |
ModulePass * | createAMDGPUOpenCLEnqueuedBlockLoweringLegacyPass () |
void | initializeAMDGPUOpenCLEnqueuedBlockLoweringLegacyPass (PassRegistry &) |
void | initializeGCNNSAReassignPass (PassRegistry &) |
void | initializeGCNPreRALongBranchRegPass (PassRegistry &) |
void | initializeGCNPreRAOptimizationsPass (PassRegistry &) |
FunctionPass * | createAMDGPUSetWavePriorityPass () |
void | initializeAMDGPUSetWavePriorityPass (PassRegistry &) |
void | initializeGCNRewritePartialRegUsesPass (llvm::PassRegistry &) |
raw_ostream & | operator<< (raw_ostream &OS, const ArgDescriptor &Arg) |
std::unique_ptr< ScheduleDAGMutation > | createAMDGPUExportClusteringDAGMutation () |
std::unique_ptr< ScheduleDAGMutation > | createIGroupLPDAGMutation (AMDGPU::SchedulingPhase Phase) |
Phase specifes whether or not this is a reentry into the IGroupLPDAGMutation. | |
static bool | getConstantValue (SDValue N, uint32_t &Out) |
static SDNode * | packConstantV2I16 (const SDNode *N, SelectionDAG &DAG) |
static double | log2 (double V) |
std::unique_ptr< ScheduleDAGMutation > | createAMDGPUMacroFusionDAGMutation () |
Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUPassConfig::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::LiveRegSet > | 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)) | |
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) |
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_ostream & | operator<< (raw_ostream &OS, const GCNSchedStageID &StageID) |
raw_ostream & | operator<< (raw_ostream &OS, const ScheduleMetrics &Sm) |
bool | checkVOPDRegConstraints (const SIInstrInfo &TII, const MachineInstr &FirstMI, const MachineInstr &SecondMI) |
std::unique_ptr< ScheduleDAGMutation > | createVOPDPairingMutation () |
MCELFStreamer * | createAMDGPUELFStreamer (const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
MCRegisterInfo * | createGCNMCRegisterInfo (AMDGPUDwarfFlavour DwarfFlavour) |
MCCodeEmitter * | createAMDGPUMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createAMDGPUAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createAMDGPUELFObjectWriter (bool Is64Bit, uint8_t OSABI, bool HasRelocationAddend) |
MCCodeEmitter * | createR600MCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCInstrInfo * | createR600MCInstrInfo () |
FunctionPass * | createR600VectorRegMerger () |
FunctionPass * | createR600ExpandSpecialInstrsPass () |
FunctionPass * | createR600EmitClauseMarkers () |
FunctionPass * | createR600ClauseMergePass () |
FunctionPass * | createR600Packetizer () |
FunctionPass * | createR600ControlFlowFinalizer () |
FunctionPass * | createR600MachineCFGStructurizerPass () |
FunctionPass * | createR600ISelDag (TargetMachine &TM, CodeGenOptLevel OptLevel) |
This pass converts a legalized DAG into a R600-specific. | |
ModulePass * | createR600OpenCLImageTypeLoweringPass () |
void | initializeR600ClauseMergePassPass (PassRegistry &) |
void | initializeR600ControlFlowFinalizerPass (PassRegistry &) |
void | initializeR600ExpandSpecialInstrsPassPass (PassRegistry &) |
void | initializeR600VectorRegMergerPass (PassRegistry &) |
void | initializeR600PacketizerPass (PassRegistry &) |
AsmPrinter * | createR600AsmPrinterPass (TargetMachine &TM, std::unique_ptr< MCStreamer > &&Streamer) |
void | initializeR600EmitClauseMarkersPass (PassRegistry &) |
void | initializeR600MachineCFGStructurizerPass (PassRegistry &) |
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. | |
MachineInstr * | 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. | |
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) |
Target & | getTheR600Target () |
The target for R600 GPUs. | |
Target & | getTheGCNTarget () |
The target for GCN GPUs. | |
raw_ostream & | operator<< (raw_ostream &OS, const AMDGPU::IsaInfo::TargetIDSetting S) |
FunctionPass * | createARCISelDag (ARCTargetMachine &TM, CodeGenOptLevel OptLevel) |
This pass converts a legalized DAG into a ARC-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createARCExpandPseudosPass () |
FunctionPass * | createARCOptAddrMode () |
FunctionPass * | createARCBranchFinalizePass () |
void | initializeARCDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeARCBranchFinalizePass (PassRegistry &Registry) |
void | initializeARCOptAddrModePass (PassRegistry &) |
Target & | getTheARCTarget () |
Pass * | createMVETailPredicationPass () |
FunctionPass * | createARMLowOverheadLoopsPass () |
FunctionPass * | createARMBlockPlacementPass () |
Pass * | createARMParallelDSPPass () |
FunctionPass * | createARMISelDag (ARMBaseTargetMachine &TM, CodeGenOptLevel OptLevel) |
createARMISelDag - This pass converts a legalized DAG into a ARM-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createA15SDOptimizerPass () |
FunctionPass * | createARMLoadStoreOptimizationPass (bool PreAlloc=false) |
Returns an instance of the load / store optimization pass. | |
FunctionPass * | createARMExpandPseudoPass () |
createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass. | |
FunctionPass * | createARMBranchTargetsPass () |
FunctionPass * | createARMConstantIslandPass () |
createARMConstantIslandPass - returns an instance of the constpool island pass. | |
FunctionPass * | createMLxExpansionPass () |
FunctionPass * | createThumb2ITBlockPass () |
createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass. | |
FunctionPass * | createMVEVPTBlockPass () |
createMVEVPTBlock - Returns an instance of the MVE VPT block insertion pass. | |
FunctionPass * | createMVETPAndVPTOptimisationsPass () |
createMVETPAndVPTOptimisationsPass | |
FunctionPass * | createARMOptimizeBarriersPass () |
createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass. | |
FunctionPass * | createThumb2SizeReductionPass (std::function< bool(const Function &)> Ftor=nullptr) |
createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass. | |
InstructionSelector * | createARMInstructionSelector (const ARMBaseTargetMachine &TM, const ARMSubtarget &STI, const ARMRegisterBankInfo &RBI) |
Pass * | createMVEGatherScatterLoweringPass () |
FunctionPass * | createARMSLSHardeningPass () |
FunctionPass * | createARMIndirectThunks () |
Pass * | createMVELaneInterleavingPass () |
FunctionPass * | createARMFixCortexA57AES1742098Pass () |
void | LowerARMMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, ARMAsmPrinter &AP) |
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. | |
MachineInstr * | 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. | |
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, CCState &State) |
bool | CC_ARM_AAPCS_VFP (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_ARM_APCS_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | FastCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_ARM_Win32_CFGuard_Check (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_ARM_AAPCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_ARM_AAPCS_VFP (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetFastCC_ARM_APCS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
raw_ostream & | operator<< (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< ScheduleDAGMutation > | createARMLatencyMutations (const ARMSubtarget &ST, AAResults *AA) |
std::unique_ptr< ScheduleDAGMutation > | createARMLatencyMutations (const class ARMSubtarget &, AAResults *AA) |
Note that you have to add: DAG.addMutation(createARMLatencyMutation(ST, AA)); to ARMPassConfig::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< ScheduleDAGMutation > | createARMMacroFusionDAGMutation () |
Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::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). | |
MCTargetStreamer * | createARMTargetAsmStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint) |
MCTargetStreamer * | createARMNullTargetStreamer (MCStreamer &S) |
MCTargetStreamer * | createARMObjectTargetELFStreamer (MCStreamer &S) |
MCTargetStreamer * | createARMObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
MCTargetStreamer * | createARMObjectTargetWinCOFFStreamer (MCStreamer &S) |
MCCodeEmitter * | createARMLEMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCCodeEmitter * | createARMBEMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createARMLEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCAsmBackend * | createARMBEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCStreamer * | createARMWinCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter) |
std::unique_ptr< MCObjectTargetWriter > | createARMELFObjectWriter (uint8_t OSABI) |
Construct an ELF Mach-O object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createARMMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) |
Construct an ARM Mach-O object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createARMWinCOFFObjectWriter () |
Construct an ARM PE/COFF object writer. | |
MCRelocationInfo * | createARMMachORelocationInfo (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) |
MachineBasicBlock * | getWhileLoopStartTargetBB (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) |
Target & | getTheARMLETarget () |
Target & | getTheARMBETarget () |
Target & | getTheThumbLETarget () |
Target & | getTheThumbBETarget () |
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 char * | ARMVPTPredToString (ARMVCC::VPTCodes CC) |
static unsigned | ARMVectorCondCodeFromString (StringRef CC) |
static const char * | ARMCondCodeToString (ARMCC::CondCodes CC) |
static unsigned | ARMCondCodeFromString (StringRef CC) |
Pass * | createAVRShiftExpandPass () |
FunctionPass * | createAVRISelDag (AVRTargetMachine &TM, CodeGenOptLevel OptLevel) |
FunctionPass * | createAVRExpandPseudoPass () |
FunctionPass * | createAVRFrameAnalyzerPass () |
Creates instance of the frame analyzer pass. | |
FunctionPass * | createAVRBranchSelectionPass () |
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_EXTERNAL_VISIBILITY void | LLVMInitializeAVRTarget () |
MCAsmBackend * | createAVRAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const llvm::MCTargetOptions &TO) |
Creates an assembly backend for AVR. | |
std::unique_ptr< MCObjectTargetWriter > | createAVRELFObjectWriter (uint8_t OSABI) |
Creates an ELF object writer for AVR. | |
static unsigned | getEFlagsForFeatureSet (const FeatureBitset &Features) |
MCStreamer * | createAVRELFStreamer (Triple const &TT, MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > CE) |
MCInstrInfo * | createAVRMCInstrInfo () |
MCCodeEmitter * | createAVRMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
Creates a machine code emitter for AVR. | |
Target & | getTheAVRTarget () |
ModulePass * | createBPFCheckAndAdjustIR () |
FunctionPass * | createBPFISelDag (BPFTargetMachine &TM) |
FunctionPass * | createBPFMISimplifyPatchablePass () |
FunctionPass * | createBPFMIPeepholePass () |
FunctionPass * | createBPFMIPreEmitPeepholePass () |
FunctionPass * | createBPFMIPreEmitCheckingPass () |
InstructionSelector * | createBPFInstructionSelector (const BPFTargetMachine &, const BPFSubtarget &, const BPFRegisterBankInfo &) |
void | initializeBPFCheckAndAdjustIRPass (PassRegistry &) |
void | initializeBPFDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeBPFMIPeepholePass (PassRegistry &) |
void | initializeBPFMIPreEmitCheckingPass (PassRegistry &) |
void | initializeBPFMIPreEmitPeepholePass (PassRegistry &) |
void | initializeBPFMISimplifyPatchablePass (PassRegistry &) |
MCCodeEmitter * | createBPFMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCCodeEmitter * | createBPFbeMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createBPFAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCAsmBackend * | createBPFbeAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createBPFELFObjectWriter (uint8_t OSABI) |
Target & | getTheBPFleTarget () |
Target & | getTheBPFbeTarget () |
Target & | getTheBPFTarget () |
FunctionPass * | createCSKYISelDag (CSKYTargetMachine &TM, CodeGenOptLevel OptLevel) |
FunctionPass * | createCSKYConstantIslandPass () |
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< MCObjectTargetWriter > | createCSKYELFObjectWriter () |
MCAsmBackend * | createCSKYAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCCodeEmitter * | createCSKYMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
Target & | getTheCSKYTarget () |
void | initializeWriteDXILPassPass (PassRegistry &) |
Initializer for dxil writer pass. | |
void | initializeEmbedDXILPassPass (PassRegistry &) |
Initializer for dxil embedder pass. | |
void | initializeDXILPrepareModulePass (PassRegistry &) |
Initializer for DXIL-prepare. | |
ModulePass * | createDXILPrepareModulePass () |
Pass to convert modules into DXIL-compatable modules. | |
void | initializeDXILIntrinsicExpansionLegacyPass (PassRegistry &) |
Initializer for DXIL Intrinsic Expansion. | |
ModulePass * | createDXILIntrinsicExpansionLegacyPass () |
Pass to expand intrinsic operations that lack DXIL opCodes. | |
void | initializeDXILDataScalarizationLegacyPass (PassRegistry &) |
Initializer for DXIL Data Scalarization Pass. | |
ModulePass * | createDXILDataScalarizationLegacyPass () |
Pass to scalarize llvm global data into a DXIL legal form. | |
void | initializeDXILFlattenArraysLegacyPass (PassRegistry &) |
Initializer for DXIL Array Flatten Pass. | |
ModulePass * | createDXILFlattenArraysLegacyPass () |
Pass to flatten arrays into a one dimensional DXIL legal form. | |
void | initializeDXILOpLoweringLegacyPass (PassRegistry &) |
Initializer for DXILOpLowering. | |
ModulePass * | createDXILOpLoweringLegacyPass () |
Pass to lowering LLVM intrinsic call to DXIL op function call. | |
void | initializeDXILResourceAccessLegacyPass (PassRegistry &) |
Initializer for DXILResourceAccess. | |
FunctionPass * | createDXILResourceAccessLegacyPass () |
Pass to update resource accesses to use load/store directly. | |
void | initializeDXILTranslateMetadataLegacyPass (PassRegistry &) |
Initializer for DXILTranslateMetadata. | |
ModulePass * | createDXILTranslateMetadataLegacyPass () |
Pass to emit metadata for DXIL. | |
void | initializeDXILResourceMDWrapperPass (PassRegistry &) |
Initializer for DXILTranslateMetadata. | |
ModulePass * | createDXILPrettyPrinterLegacyPass (raw_ostream &OS) |
Pass to pretty print DXIL metadata. | |
void | initializeDXILPrettyPrinterLegacyPass (PassRegistry &) |
Initializer for DXILPrettyPrinter. | |
void | initializeShaderFlagsAnalysisWrapperPass (PassRegistry &) |
Initializer for dxil::ShaderFlagsAnalysisWrapper pass. | |
void | initializeDXContainerGlobalsPass (PassRegistry &) |
Initializer for DXContainerGlobals pass. | |
ModulePass * | createDXContainerGlobalsPass () |
Pass for generating DXContainer part globals. | |
void | initializeDXILFinalizeLinkageLegacyPass (PassRegistry &) |
Initializer for DXILFinalizeLinkage pass. | |
ModulePass * | createDXILFinalizeLinkageLegacyPass () |
Pass to finalize linkage of functions. | |
ModulePass * | createDXILWriterPass (raw_ostream &Str) |
Create and return a pass that writes the module to the specified ostream. | |
ModulePass * | createDXILEmbedderPass () |
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< MCObjectTargetWriter > | createDXContainerTargetObjectWriter () |
Target & | getTheDirectXTarget () |
raw_ostream & | operator<< (raw_ostream &OS, const BT::BitValue &BV) |
raw_ostream & | operator<< (raw_ostream &OS, const BT::RegisterCell &RC) |
ImmutablePass * | createHexagonTargetTransformInfoPass (const HexagonTargetMachine *TM) |
Creates a Hexagon-specific Target Transformation Info pass. | |
void | initializeHexagonDAGToDAGISelLegacyPass (PassRegistry &) |
void | HexagonLowerToMC (const MCInstrInfo &MCII, const MachineInstr *MI, MCInst &MCB, HexagonAsmPrinter &AP) |
void | initializeHexagonBitSimplifyPass (PassRegistry &Registry) |
FunctionPass * | createHexagonBitSimplify () |
FunctionPass * | createHexagonLoopRescheduling () |
void | initializeHexagonLoopReschedulingPass (PassRegistry &) |
raw_ostream & | operator<< (raw_ostream &OS, HexagonBlockRanges::IndexType Idx) |
raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::IndexRange &IR) |
raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::RangeList &RL) |
raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::InstrIndexMap &M) |
raw_ostream & | operator<< (raw_ostream &OS, const HexagonBlockRanges::PrintRangeMap &P) |
FunctionPass * | createHexagonBranchRelaxation () |
void | initializeHexagonBranchRelaxationPass (PassRegistry &) |
FunctionPass * | createHexagonCFGOptimizer () |
void | initializeHexagonCFGOptimizerPass (PassRegistry &) |
void | initializeHexagonCommonGEPPass (PassRegistry &) |
FunctionPass * | createHexagonCommonGEP () |
void | initializeHexagonConstExtendersPass (PassRegistry &) |
FunctionPass * | createHexagonConstExtenders () |
FunctionPass * | createHexagonConstPropagationPass () |
void | initializeHexagonConstPropagationPass (PassRegistry &Registry) |
void | initializeHexagonCopyHoistingPass (PassRegistry &Registry) |
FunctionPass * | createHexagonCopyHoisting () |
FunctionPass * | createHexagonCopyToCombine () |
void | initializeHexagonCopyToCombinePass (PassRegistry &) |
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) |
FunctionPass * | createHexagonEarlyIfConversion () |
void | initializeHexagonEarlyIfConversionPass (PassRegistry &Registry) |
void | initializeHexagonExpandCondsetsPass (PassRegistry &) |
FunctionPass * | createHexagonExpandCondsets () |
FunctionPass * | createHexagonFixupHwLoops () |
void | initializeHexagonFixupHwLoopsPass (PassRegistry &) |
void | initializeHexagonCallFrameInformationPass (PassRegistry &) |
FunctionPass * | createHexagonCallFrameInformation () |
void | initializeHexagonGenExtractPass (PassRegistry &) |
FunctionPass * | createHexagonGenExtract () |
void | initializeHexagonGenInsertPass (PassRegistry &) |
FunctionPass * | createHexagonGenInsert () |
FunctionPass * | createHexagonGenMemAbsolute () |
void | initializeHexagonGenMemAbsolutePass (PassRegistry &Registry) |
FunctionPass * | createHexagonGenMux () |
void | initializeHexagonGenMuxPass (PassRegistry &Registry) |
void | initializeHexagonGenPredicatePass (PassRegistry &Registry) |
FunctionPass * | createHexagonGenPredicate () |
FunctionPass * | createHexagonHardwareLoops () |
void | initializeHexagonHardwareLoopsPass (PassRegistry &) |
FunctionPass * | createHexagonISelDag (HexagonTargetMachine &TM, CodeGenOptLevel OptLevel) |
createHexagonISelDag - This pass converts a legalized DAG into a Hexagon-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createHexagonStoreWidening () |
FunctionPass * | createHexagonLoadWidening () |
void | initializeHexagonStoreWideningPass (PassRegistry &) |
void | initializeHexagonLoadWideningPass (PassRegistry &) |
FunctionPass * | createHexagonLoopAlign () |
void | initializeHexagonLoopAlignPass (PassRegistry &) |
void | initializeHexagonLoopIdiomRecognizeLegacyPassPass (PassRegistry &) |
Pass * | createHexagonLoopIdiomPass () |
FunctionPass * | createHexagonMask () |
void | initializeHexagonMaskPass (PassRegistry &) |
FunctionPass * | createHexagonNewValueJump () |
void | initializeHexagonNewValueJumpPass (PassRegistry &) |
FunctionPass * | createHexagonOptAddrMode () |
void | initializeHexagonOptAddrModePass (PassRegistry &) |
FunctionPass * | createHexagonOptimizeSZextends () |
void | initializeHexagonOptimizeSZextendsPass (PassRegistry &) |
FunctionPass * | createHexagonPeephole () |
void | initializeHexagonPeepholePass (PassRegistry &) |
void | initializeHexagonRDFOptPass (PassRegistry &) |
FunctionPass * | createHexagonRDFOpt () |
FunctionPass * | createHexagonSplitConst32AndConst64 () |
void | initializeHexagonSplitConst32AndConst64Pass (PassRegistry &) |
FunctionPass * | createHexagonSplitDoubleRegs () |
void | initializeHexagonSplitDoubleRegsPass (PassRegistry &) |
void | initializeHexagonMergeActivateWeightPass (PassRegistry &) |
void | initializeHexagonPacketizerPass (PassRegistry &) |
void | initializeHexagonTfrCleanupPass (PassRegistry &) |
void | initializeHexagonVExtractPass (PassRegistry &) |
void | initializeHexagonVectorCombineLegacyPass (PassRegistry &) |
void | initializeHexagonVectorLoopCarriedReuseLegacyPassPass (PassRegistry &) |
Pass * | createHexagonVectorLoopCarriedReuseLegacyPass () |
FunctionPass * | createHexagonMergeActivateWeight () |
FunctionPass * | createHexagonPacketizer (bool Minimal) |
FunctionPass * | createHexagonTfrCleanup () |
FunctionPass * | createHexagonVectorCombineLegacyPass () |
FunctionPass * | createHexagonVectorPrint () |
FunctionPass * | createHexagonVExtract () |
void | initializeHexagonVectorPrintPass (PassRegistry &) |
MCStreamer * | createHexagonELFStreamer (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) |
MCInstrInfo * | createHexagonMCInstrInfo () |
MCRegisterInfo * | createHexagonMCRegisterInfo (StringRef TT) |
MCCodeEmitter * | createHexagonMCCodeEmitter (const MCInstrInfo &MCII, MCContext &MCT) |
MCAsmBackend * | createHexagonAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createHexagonELFObjectWriter (uint8_t OSABI, StringRef CPU) |
unsigned | HexagonGetLastSlot () |
unsigned | HexagonConvertUnits (unsigned ItinUnits, unsigned *Lanes) |
Target & | getTheHexagonTarget () |
FunctionPass * | createLanaiISelDag (LanaiTargetMachine &TM) |
FunctionPass * | createLanaiDelaySlotFillerPass (const LanaiTargetMachine &TM) |
FunctionPass * | createLanaiMemAluCombinerPass () |
FunctionPass * | createLanaiSetflagAluCombinerPass () |
void | initializeLanaiDAGToDAGISelLegacyPass (PassRegistry &) |
static bool | isSPLSOpcode (unsigned Opcode) |
static bool | isRMOpcode (unsigned Opcode) |
static bool | isRRMOpcode (unsigned Opcode) |
void | initializeLanaiMemAluCombinerPass (PassRegistry &) |
static unsigned | getLanaiRegisterNumbering (MCRegister Reg) |
static Lanai::Fixups | FixupKind (const MCExpr *Expr) |
static unsigned | adjustPqBits (const MCInst &Inst, unsigned Value, unsigned PBitShift, unsigned QBitShift) |
MCCodeEmitter * | createLanaiMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createLanaiAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createLanaiELFObjectWriter (uint8_t OSABI) |
Target & | getTheLanaiTarget () |
bool | lowerLoongArchMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP) |
bool | lowerLoongArchMachineOperandToMCOperand (const MachineOperand &MO, MCOperand &MCOp, const AsmPrinter &AP) |
FunctionPass * | createLoongArchDeadRegisterDefinitionsPass () |
FunctionPass * | createLoongArchExpandAtomicPseudoPass () |
FunctionPass * | createLoongArchISelDag (LoongArchTargetMachine &TM) |
FunctionPass * | createLoongArchMergeBaseOffsetOptPass () |
Returns an instance of the Merge Base Offset Optimization pass. | |
FunctionPass * | createLoongArchOptWInstrsPass () |
FunctionPass * | createLoongArchPreRAExpandPseudoPass () |
FunctionPass * | createLoongArchExpandPseudoPass () |
void | initializeLoongArchDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeLoongArchDeadRegisterDefinitionsPass (PassRegistry &) |
void | initializeLoongArchExpandAtomicPseudoPass (PassRegistry &) |
void | initializeLoongArchMergeBaseOffsetOptPass (PassRegistry &) |
void | initializeLoongArchOptWInstrsPass (PassRegistry &) |
void | initializeLoongArchPreRAExpandPseudoPass (PassRegistry &) |
void | initializeLoongArchExpandPseudoPass (PassRegistry &) |
MCELFStreamer * | createLoongArchELFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > MOW, std::unique_ptr< MCCodeEmitter > MCE) |
MCCodeEmitter * | createLoongArchMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createLoongArchAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createLoongArchELFObjectWriter (uint8_t OSABI, bool Is64Bit, bool Relax) |
Target & | getTheLoongArch32Target () |
Target & | getTheLoongArch64Target () |
InstructionSelector * | createM68kInstructionSelector (const M68kTargetMachine &TM, const M68kSubtarget &Subtarget, const M68kRegisterBankInfo &RBI) |
FunctionPass * | createM68kISelDag (M68kTargetMachine &TM) |
This pass converts a legalized DAG into a M68k-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createM68kExpandPseudoPass () |
Return a Machine IR pass that expands M68k-specific pseudo instructions into a sequence of actual instructions. | |
FunctionPass * | createM68kGlobalBaseRegPass () |
This pass initializes a global base register for PIC on M68k. | |
FunctionPass * | createM68kCollapseMOVEMPass () |
Finds sequential MOVEM instruction and collapse them into a single one. | |
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) |
static MCFixupKind | getFixupForSize (unsigned Size, bool isPCRel) |
MCAsmBackend * | createM68kAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCCodeEmitter * | createM68kMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
std::unique_ptr< MCObjectTargetWriter > | createM68kELFObjectWriter (uint8_t OSABI) |
Construct an M68k ELF object writer. | |
Target & | getTheM68kTarget () |
MCStreamer & | operator<< (MCStreamer &OS, MipsABIFlagsSection &ABIFlagsSection) |
static MCRegister | getMSARegFromFReg (MCRegister Reg) |
MCELFStreamer * | createMipsELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
MCCodeEmitter * | createMipsMCCodeEmitterEB (const MCInstrInfo &MCII, MCContext &Ctx) |
MCCodeEmitter * | createMipsMCCodeEmitterEL (const MCInstrInfo &MCII, MCContext &Ctx) |
bool | isBasePlusOffsetMemoryAccess (unsigned Opcode, unsigned *AddrIdx, bool *IsStore=nullptr) |
bool | baseRegNeedsLoadStoreMask (unsigned Reg) |
MCELFStreamer * | createMipsNaClELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > TAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
MCAsmBackend * | createMipsAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCStreamer * | 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. | |
std::unique_ptr< MCObjectTargetWriter > | createMipsELFObjectWriter (const Triple &TT, bool IsN32) |
Construct a Mips ELF object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createMipsWinCOFFObjectWriter () |
Construct a Mips Win COFF object writer. | |
ModulePass * | createMipsOs16Pass () |
ModulePass * | createMips16HardFloatPass () |
FunctionPass * | createMipsModuleISelDagPass () |
FunctionPass * | createMipsOptimizePICCallPass () |
Return an OptimizeCall object. | |
FunctionPass * | createMipsDelaySlotFillerPass () |
createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions | |
FunctionPass * | createMipsBranchExpansion () |
FunctionPass * | createMipsConstantIslandPass () |
Returns a pass that converts branches to long branches. | |
FunctionPass * | createMicroMipsSizeReducePass () |
Returns an instance of the MicroMips size reduction pass. | |
FunctionPass * | createMipsExpandPseudoPass () |
createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass. | |
FunctionPass * | createMipsPreLegalizeCombiner () |
FunctionPass * | createMipsPostLegalizeCombiner (bool IsOptNone) |
FunctionPass * | createMipsMulMulBugPass () |
InstructionSelector * | createMipsInstructionSelector (const MipsTargetMachine &, const MipsSubtarget &, const MipsRegisterBankInfo &) |
void | initializeMicroMipsSizeReducePass (PassRegistry &) |
void | initializeMipsBranchExpansionPass (PassRegistry &) |
void | initializeMipsDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeMipsDelaySlotFillerPass (PassRegistry &) |
void | initializeMipsMulMulBugFixPass (PassRegistry &) |
void | initializeMipsPostLegalizerCombinerPass (PassRegistry &) |
void | initializeMipsPreLegalizerCombinerPass (PassRegistry &) |
FunctionPass * | createMips16ISelDag (MipsTargetMachine &TM, CodeGenOptLevel OptLevel) |
const MipsFrameLowering * | createMips16FrameLowering (const MipsSubtarget &ST) |
Create MipsFrameLowering objects. | |
const MipsFrameLowering * | createMipsSEFrameLowering (const MipsSubtarget &ST) |
const MipsInstrInfo * | createMips16InstrInfo (const MipsSubtarget &STI) |
Create MipsInstrInfo objects. | |
const MipsInstrInfo * | createMipsSEInstrInfo (const MipsSubtarget &STI) |
const MipsTargetLowering * | createMips16TargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI) |
Create MipsTargetLowering objects. | |
const MipsTargetLowering * | createMipsSETargetLowering (const MipsTargetMachine &TM, const MipsSubtarget &STI) |
FunctionPass * | createMipsSEISelDag (MipsTargetMachine &TM, CodeGenOptLevel OptLevel) |
Target & | getTheMipsTarget () |
Target & | getTheMipselTarget () |
Target & | getTheMips64Target () |
Target & | getTheMips64elTarget () |
MCTargetStreamer * | createMSP430ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
MCCodeEmitter * | createMSP430MCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
Creates a machine code emitter for MSP430. | |
MCAsmBackend * | createMSP430MCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createMSP430ELFObjectWriter (uint8_t OSABI) |
FunctionPass * | createMSP430ISelDag (MSP430TargetMachine &TM, CodeGenOptLevel OptLevel) |
createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createMSP430BranchSelectionPass () |
Returns an instance of the Branch Selection Pass. | |
void | initializeMSP430DAGToDAGISelLegacyPass (PassRegistry &) |
Target & | getTheMSP430Target () |
FunctionPass * | createNVPTXISelDag (NVPTXTargetMachine &TM, llvm::CodeGenOptLevel OptLevel) |
createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling. | |
ModulePass * | createNVPTXAssignValidGlobalNamesPass () |
ModulePass * | createGenericToNVVMLegacyPass () |
ModulePass * | createNVPTXCtorDtorLoweringLegacyPass () |
FunctionPass * | createNVVMIntrRangePass () |
FunctionPass * | createNVVMReflectPass (unsigned int SmVersion) |
MachineFunctionPass * | createNVPTXPrologEpilogPass () |
MachineFunctionPass * | createNVPTXReplaceImageHandlesPass () |
FunctionPass * | createNVPTXImageOptimizerPass () |
FunctionPass * | createNVPTXLowerArgsPass () |
FunctionPass * | createNVPTXLowerAllocaPass () |
FunctionPass * | createNVPTXLowerUnreachablePass (bool TrapUnreachable, bool NoTrapAfterNoreturn) |
MachineFunctionPass * | createNVPTXPeephole () |
MachineFunctionPass * | createNVPTXProxyRegErasurePass () |
void | initializeNVPTXDAGToDAGISelLegacyPass (PassRegistry &) |
ImmutablePass * | createNVPTXAAWrapperPass () |
void | initializeNVPTXAAWrapperPassPass (PassRegistry &) |
ImmutablePass * | createNVPTXExternalAAWrapperPass () |
void | initializeNVPTXExternalAAWrapperPass (PassRegistry &) |
void | initializeNVPTXAllocaHoistingPass (PassRegistry &) |
FunctionPass * | createAllocaHoisting () |
void | initializeNVPTXAssignValidGlobalNamesPass (PassRegistry &) |
void | initializeNVPTXAtomicLowerPass (PassRegistry &) |
FunctionPass * | createNVPTXAtomicLowerPass () |
void | initializeNVPTXCtorDtorLoweringLegacyPass (PassRegistry &) |
void | initializeGenericToNVVMLegacyPassPass (PassRegistry &) |
void | initializeNVPTXLowerAggrCopiesPass (PassRegistry &) |
FunctionPass * | createLowerAggrCopies () |
void | initializeNVPTXLowerAllocaPass (PassRegistry &) |
void | initializeNVPTXLowerArgsPass (PassRegistry &) |
void | initializeNVPTXLowerUnreachablePass (PassRegistry &) |
void | initializeNVPTXPeepholePass (PassRegistry &) |
void | initializeNVPTXProxyRegErasurePass (PassRegistry &) |
std::string | getNVPTXRegClassName (TargetRegisterClass const *RC) |
std::string | getNVPTXRegClassStr (TargetRegisterClass const *RC) |
void | initializeNVVMIntrRangePass (PassRegistry &) |
void | initializeNVVMReflectPass (PassRegistry &) |
void | clearAnnotationCache (const Module *Mod) |
static void | readIntVecFromMDNode (const MDNode *MetadataNode, std::vector< unsigned > &Vec) |
static void | cacheAnnotationFromMD (const MDNode *MetadataNode, key_val_pair_t &retval) |
static void | cacheAnnotationFromMD (const Module *m, const GlobalValue *gv) |
static std::optional< unsigned > | findOneNVVMAnnotation (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, const bool StartArgIndexAtOne=false) |
bool | isParamGridConstant (const Value &V) |
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) |
std::optional< unsigned > | getMaxNTIDx (const Function &F) |
std::optional< unsigned > | getMaxNTIDy (const Function &F) |
std::optional< unsigned > | getMaxNTIDz (const Function &F) |
std::optional< unsigned > | getMaxNTID (const Function &F) |
std::optional< unsigned > | getClusterDimx (const Function &F) |
std::optional< unsigned > | getClusterDimy (const Function &F) |
std::optional< unsigned > | getClusterDimz (const Function &F) |
std::optional< unsigned > | getMaxClusterRank (const Function &F) |
std::optional< unsigned > | getReqNTIDx (const Function &F) |
std::optional< unsigned > | getReqNTIDy (const Function &F) |
std::optional< unsigned > | getReqNTIDz (const Function &F) |
std::optional< unsigned > | getReqNTID (const Function &F) |
std::optional< unsigned > | getMinCTASm (const Function &F) |
std::optional< unsigned > | getMaxNReg (const Function &F) |
bool | isKernelFunction (const Function &F) |
MaybeAlign | getAlign (const Function &F, unsigned Index) |
MaybeAlign | getAlign (const CallInst &I, unsigned Index) |
Function * | getMaybeBitcastedCallee (const CallBase *CB) |
bool | shouldEmitPTXNoReturn (const Value *V, const TargetMachine &TM) |
bool | Isv2x16VT (EVT VT) |
unsigned | promoteScalarArgumentSize (unsigned size) |
Target & | getTheNVPTXTarget32 () |
Target & | getTheNVPTXTarget64 () |
InstructionSelector * | createPPCInstructionSelector (const PPCTargetMachine &TM, const PPCSubtarget &Subtarget, const PPCRegisterBankInfo &RBI) |
std::optional< bool > | isPartOfGOTToPCRelPair (const MCInst &Inst, const MCSubtargetInfo &STI) |
MCELFStreamer * | createPPCELFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
MCCodeEmitter * | createPPCMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createPPCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createPPCELFObjectWriter (bool Is64Bit, uint8_t OSABI) |
Construct an PPC ELF object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createPPCMachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) |
Construct a PPC Mach-O object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createPPCXCOFFObjectWriter (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) |
MCXCOFFStreamer * | createPPCXCOFFStreamer (MCContext &Context, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > OW, std::unique_ptr< MCCodeEmitter > Emitter) |
FunctionPass * | createPPCCTRLoopsVerify () |
FunctionPass * | createPPCLoopInstrFormPrepPass (PPCTargetMachine &TM) |
FunctionPass * | createPPCTOCRegDepsPass () |
FunctionPass * | createPPCEarlyReturnPass () |
FunctionPass * | createPPCVSXCopyPass () |
FunctionPass * | createPPCVSXFMAMutatePass () |
FunctionPass * | createPPCVSXSwapRemovalPass () |
FunctionPass * | createPPCReduceCRLogicalsPass () |
FunctionPass * | createPPCMIPeepholePass () |
FunctionPass * | createPPCBranchSelectionPass () |
FunctionPass * | createPPCBranchCoalescingPass () |
createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass | |
FunctionPass * | createPPCISelDag (PPCTargetMachine &TM, CodeGenOptLevel OL) |
createPPCISelDag - This pass converts a legalized DAG into a PowerPC-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createPPCTLSDynamicCallPass () |
FunctionPass * | createPPCBoolRetToIntPass () |
FunctionPass * | createPPCExpandISELPass () |
FunctionPass * | createPPCPreEmitPeepholePass () |
FunctionPass * | createPPCExpandAtomicPseudoPass () |
FunctionPass * | createPPCCTRLoopsPass () |
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 | initializePPCVSXCopyPass (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 &) |
ModulePass * | createPPCLowerMASSVEntriesPass () |
void | initializePPCLowerMASSVEntriesPass (PassRegistry &) |
ModulePass * | createPPCGenScalarMASSEntriesPass () |
void | initializePPCGenScalarMASSEntriesPass (PassRegistry &) |
bool | RetCC_PPC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_PPC64_ELF_FIS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | RetCC_PPC_Cold (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_PPC32_SVR4 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_PPC64_ELF (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_PPC64_ELF_FIS (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_PPC32_SVR4_ByVal (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_PPC32_SVR4_VarArg (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
static const MachineInstrBuilder & | addFrameReference (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< ScheduleDAGMutation > | createPowerPCMacroFusionDAGMutation () |
Note that you have to add: DAG.addMutation(createPowerPCMacroFusionDAGMutation()); to PPCPassConfig::createMachineScheduler() to have an effect. | |
static unsigned | getCRFromCRBit (unsigned SrcReg) |
Target & | getThePPC32Target () |
Target & | getThePPC32LETarget () |
Target & | getThePPC64Target () |
Target & | getThePPC64LETarget () |
InstructionSelector * | createRISCVInstructionSelector (const RISCVTargetMachine &TM, const RISCVSubtarget &Subtarget, const RISCVRegisterBankInfo &RBI) |
FunctionPass * | createRISCVO0PreLegalizerCombiner () |
FunctionPass * | createRISCVPostLegalizerCombiner () |
FunctionPass * | createRISCVPreLegalizerCombiner () |
MCELFStreamer * | createRISCVELFStreamer (MCContext &C, std::unique_ptr< MCAsmBackend > MAB, std::unique_ptr< MCObjectWriter > MOW, std::unique_ptr< MCCodeEmitter > MCE) |
MCCodeEmitter * | createRISCVMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createRISCVAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createRISCVELFObjectWriter (uint8_t OSABI, bool Is64Bit) |
FunctionPass * | createRISCVCodeGenPreparePass () |
void | initializeRISCVCodeGenPreparePass (PassRegistry &) |
FunctionPass * | createRISCVDeadRegisterDefinitionsPass () |
void | initializeRISCVDeadRegisterDefinitionsPass (PassRegistry &) |
FunctionPass * | createRISCVIndirectBranchTrackingPass () |
void | initializeRISCVIndirectBranchTrackingPass (PassRegistry &) |
FunctionPass * | createRISCVLandingPadSetupPass () |
void | initializeRISCVLandingPadSetupPass (PassRegistry &) |
FunctionPass * | createRISCVISelDag (RISCVTargetMachine &TM, CodeGenOptLevel OptLevel) |
FunctionPass * | createRISCVMakeCompressibleOptPass () |
Returns an instance of the Make Compressible Optimization pass. | |
void | initializeRISCVMakeCompressibleOptPass (PassRegistry &) |
FunctionPass * | createRISCVGatherScatterLoweringPass () |
void | initializeRISCVGatherScatterLoweringPass (PassRegistry &) |
FunctionPass * | createRISCVVectorPeepholePass () |
void | initializeRISCVVectorPeepholePass (PassRegistry &) |
FunctionPass * | createRISCVOptWInstrsPass () |
void | initializeRISCVOptWInstrsPass (PassRegistry &) |
FunctionPass * | createRISCVMergeBaseOffsetOptPass () |
Returns an instance of the Merge Base Offset Optimization pass. | |
void | initializeRISCVMergeBaseOffsetOptPass (PassRegistry &) |
FunctionPass * | createRISCVExpandPseudoPass () |
void | initializeRISCVExpandPseudoPass (PassRegistry &) |
FunctionPass * | createRISCVPreRAExpandPseudoPass () |
void | initializeRISCVPreRAExpandPseudoPass (PassRegistry &) |
FunctionPass * | createRISCVExpandAtomicPseudoPass () |
void | initializeRISCVExpandAtomicPseudoPass (PassRegistry &) |
FunctionPass * | createRISCVInsertVSETVLIPass () |
Returns an instance of the Insert VSETVLI pass. | |
void | initializeRISCVInsertVSETVLIPass (PassRegistry &) |
FunctionPass * | createRISCVPostRAExpandPseudoPass () |
void | initializeRISCVPostRAExpandPseudoPass (PassRegistry &) |
FunctionPass * | createRISCVInsertReadWriteCSRPass () |
void | initializeRISCVInsertReadWriteCSRPass (PassRegistry &) |
FunctionPass * | createRISCVInsertWriteVXRMPass () |
void | initializeRISCVInsertWriteVXRMPass (PassRegistry &) |
FunctionPass * | createRISCVRedundantCopyEliminationPass () |
void | initializeRISCVRedundantCopyEliminationPass (PassRegistry &) |
FunctionPass * | createRISCVMoveMergePass () |
createRISCVMoveMergePass - returns an instance of the move merge pass. | |
void | initializeRISCVMoveMergePass (PassRegistry &) |
FunctionPass * | createRISCVPushPopOptimizationPass () |
createRISCVPushPopOptimizationPass - returns an instance of the Push/Pop optimization pass. | |
void | initializeRISCVPushPopOptPass (PassRegistry &) |
FunctionPass * | createRISCVZacasABIFixPass () |
void | initializeRISCVZacasABIFixPass (PassRegistry &) |
void | initializeRISCVDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeRISCVPostLegalizerCombinerPass (PassRegistry &) |
void | initializeRISCVO0PreLegalizerCombinerPass (PassRegistry &) |
void | initializeRISCVPreLegalizerCombinerPass (PassRegistry &) |
FunctionPass * | createRISCVVLOptimizerPass () |
void | initializeRISCVVLOptimizerPass (PassRegistry &) |
bool | CC_RISCV (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, bool IsRet, Type *OrigTy) |
bool | CC_RISCV_FastCC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, bool IsRet, Type *OrigTy) |
bool | CC_RISCV_GHC (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
std::unique_ptr< ScheduleDAGMutation > | createRISCVVectorMaskDAGMutation (const TargetRegisterInfo *TRI) |
static bool | isVectorMaskProducer (const MachineInstr *MI) |
Target & | getTheRISCV32Target () |
Target & | getTheRISCV64Target () |
MCCodeEmitter * | createSparcMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createSparcAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createSparcELFObjectWriter (bool Is64Bit, bool IsV8Plus, uint8_t OSABI) |
FunctionPass * | createSparcISelDag (SparcTargetMachine &TM) |
createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createSparcDelaySlotFillerPass () |
createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions | |
void | LowerSparcMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP) |
void | initializeSparcDAGToDAGISelLegacyPass (PassRegistry &) |
void | initializeErrataWorkaroundPass (PassRegistry &) |
static const char * | SPARCCondCodeToString (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) |
Target & | getTheSparcTarget () |
Target & | getTheSparcV9Target () |
Target & | getTheSparcelTarget () |
void | initializeSPIRVConvergenceRegionAnalysisWrapperPassPass (PassRegistry &) |
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) |
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) |
MCCodeEmitter * | createSPIRVMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createSPIRVAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createSPIRVObjectTargetWriter () |
ModulePass * | createSPIRVPrepareFunctionsPass (const SPIRVTargetMachine &TM) |
FunctionPass * | createSPIRVStructurizerPass () |
FunctionPass * | createSPIRVMergeRegionExitTargetsPass () |
FunctionPass * | createSPIRVStripConvergenceIntrinsicsPass () |
FunctionPass * | createSPIRVRegularizerPass () |
FunctionPass * | createSPIRVPreLegalizerCombiner () |
FunctionPass * | createSPIRVPreLegalizerPass () |
FunctionPass * | createSPIRVPostLegalizerPass () |
ModulePass * | createSPIRVEmitIntrinsicsPass (SPIRVTargetMachine *TM) |
MachineFunctionPass * | createSPIRVEmitNonSemanticDIPass (SPIRVTargetMachine *TM) |
InstructionSelector * | createSPIRVInstructionSelector (const SPIRVTargetMachine &TM, const SPIRVSubtarget &Subtarget, const RegisterBankInfo &RBI) |
void | initializeSPIRVModuleAnalysisPass (PassRegistry &) |
void | initializeSPIRVPreLegalizerPass (PassRegistry &) |
void | initializeSPIRVPreLegalizerCombinerPass (PassRegistry &) |
void | initializeSPIRVPostLegalizerPass (PassRegistry &) |
void | initializeSPIRVStructurizerPass (PassRegistry &) |
void | initializeSPIRVEmitIntrinsicsPass (PassRegistry &) |
void | initializeSPIRVEmitNonSemanticDIPass (PassRegistry &) |
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::IncomingCall > | lookupBuiltin (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 MachineInstr * | getBlockStructInstr (Register ParamReg, MachineRegisterInfo *MRI) |
static unsigned | getConstFromIntrinsic (Register Reg, MachineRegisterInfo *MRI) |
static const Type * | getMachineInstrType (MachineInstr *MI) |
static const Type * | getBlockStructType (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. | |
Register | 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 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) |
static bool | generateDotOrFMulInst (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 | buildNDRange (const SPIRV::IncomingCall *Call, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
static SPIRVType * | getOrCreateSPIRVDeviceEventPointer (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 Type * | parseTypeString (const StringRef Name, LLVMContext &Context) |
static SPIRVType * | getNonParameterizedType (const TargetExtType *ExtensionType, const SPIRV::BuiltinType *TypeRecord, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
static SPIRVType * | getSamplerType (MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
static SPIRVType * | getPipeType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
static SPIRVType * | getCoopMatrType (const TargetExtType *ExtensionType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
static SPIRVType * | getImageType (const TargetExtType *ExtensionType, const SPIRV::AccessQualifier::AccessQualifier Qualifier, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
static SPIRVType * | getSampledImageType (const TargetExtType *OpaqueType, MachineIRBuilder &MIRBuilder, SPIRVGlobalRegistry *GR) |
void | initializeSPIRVMergeRegionExitTargetsPass (PassRegistry &) |
MDString * | getOCLKernelArgAccessQual (const Function &F, unsigned ArgIdx) |
MDString * | getOCLKernelArgTypeQual (const Function &F, unsigned ArgIdx) |
void | processInstr (MachineInstr &MI, MachineIRBuilder &MIB, MachineRegisterInfo &MRI, SPIRVGlobalRegistry *GR) |
void | initializeSPIRVPrepareFunctionsPass (PassRegistry &) |
void | initializeSPIRVRegularizerPass (PassRegistry &) |
void | initializeSPIRVStripConvergentIntrinsicsPass (PassRegistry &) |
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) |
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 | 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) |
MachineInstr * | getDefInstrMaybeConstant (Register &ConstReg, const MachineRegisterInfo *MRI) |
uint64_t | getIConstVal (Register ConstReg, const MachineRegisterInfo *MRI) |
bool | isSpvIntrinsic (const MachineInstr &MI, Intrinsic::ID IntrinsicID) |
Type * | getMDOperandAsType (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) |
Type * | parseBasicTypeName (StringRef &TypeName, LLVMContext &Ctx) |
bool | sortBlocks (Function &F) |
MachineInstr * | getVRegDef (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, 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) |
bool | isNestedPointer (const Type *Ty) |
bool | isSpvIntrinsic (const Value *Arg) |
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) |
Type * | getPointeeTypeByAttr (Argument *Arg) |
Type * | reconstructFunctionType (Function *F) |
Type * | getTypedPointerWrapper (Type *ElemTy, unsigned AS) |
bool | isTypedPointerWrapper (const TargetExtType *ExtTy) |
bool | isPointerTyOrWrapper (const Type *Ty) |
Type * | applyWrappers (Type *Ty) |
Type * | getPointeeType (const Type *Ty) |
bool | isUntypedEquivalentToTyExt (Type *Ty1, Type *Ty2) |
bool | isEquivalentTypes (Type *Ty1, Type *Ty2) |
Type * | toTypedPointer (Type *Ty) |
Type * | toTypedFunPointer (FunctionType *FTy) |
const Type * | unifyPtrType (const Type *Ty) |
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) |
Target & | getTheSPIRV32Target () |
Target & | getTheSPIRV64Target () |
Target & | getTheSPIRVLogicalTarget () |
MCCodeEmitter * | createSystemZMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createSystemZMCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createSystemZELFObjectWriter (uint8_t OSABI) |
std::unique_ptr< MCObjectTargetWriter > | createSystemZGOFFObjectWriter () |
FunctionPass * | createSystemZISelDag (SystemZTargetMachine &TM, CodeGenOptLevel OptLevel) |
FunctionPass * | createSystemZElimComparePass (SystemZTargetMachine &TM) |
FunctionPass * | createSystemZShortenInstPass (SystemZTargetMachine &TM) |
FunctionPass * | createSystemZLongBranchPass (SystemZTargetMachine &TM) |
FunctionPass * | createSystemZLDCleanupPass (SystemZTargetMachine &TM) |
FunctionPass * | createSystemZCopyPhysRegsPass (SystemZTargetMachine &TM) |
FunctionPass * | createSystemZPostRewritePass (SystemZTargetMachine &TM) |
FunctionPass * | createSystemZTDCPass () |
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 MachineInstrBuilder & | addFrameReference (const MachineInstrBuilder &MIB, int FI) |
Add a BDX memory reference for frame object FI to MIB. | |
Target & | getTheSystemZTarget () |
MCCodeEmitter * | createVEMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createVEAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createVEELFObjectWriter (uint8_t OSABI) |
Target & | getTheVETarget () |
FunctionPass * | createVEISelDag (VETargetMachine &TM) |
createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createLVLGenPass () |
void | initializeVEDAGToDAGISelLegacyPass (PassRegistry &) |
void | LowerVEMachineInstrToMCInst (const MachineInstr *MI, MCInst &OutMI, AsmPrinter &AP) |
static const char * | VECondCodeToString (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 char * | VERDToString (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< unsigned > | getVVPOpcode (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< EVT > | getIdiomaticVectorType (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, bool > | getAnnotatedNodeAVL (SDValue Op) |
static const MachineInstrBuilder & | addFrameReference (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) |
MCCodeEmitter * | createWebAssemblyMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createWebAssemblyAsmBackend (const Triple &TT) |
std::unique_ptr< MCObjectTargetWriter > | createWebAssemblyWasmObjectWriter (bool Is64Bit, bool IsEmscripten) |
Target & | getTheWebAssemblyTarget32 () |
Target & | getTheWebAssemblyTarget64 () |
ModulePass * | createWebAssemblyLowerEmscriptenEHSjLj () |
ModulePass * | createWebAssemblyAddMissingPrototypes () |
ModulePass * | createWebAssemblyFixFunctionBitcasts () |
FunctionPass * | createWebAssemblyOptimizeReturned () |
FunctionPass * | createWebAssemblyLowerRefTypesIntPtrConv () |
FunctionPass * | createWebAssemblyRefTypeMem2Local () |
FunctionPass * | createWebAssemblyISelDag (WebAssemblyTargetMachine &TM, CodeGenOptLevel OptLevel) |
This pass converts a legalized DAG into a WebAssembly-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createWebAssemblyArgumentMove () |
FunctionPass * | createWebAssemblySetP2AlignOperands () |
FunctionPass * | createWebAssemblyCleanCodeAfterTrap () |
FunctionPass * | createWebAssemblyReplacePhysRegs () |
FunctionPass * | createWebAssemblyNullifyDebugValueLists () |
FunctionPass * | createWebAssemblyOptimizeLiveIntervals () |
FunctionPass * | createWebAssemblyMemIntrinsicResults () |
FunctionPass * | createWebAssemblyRegStackify () |
FunctionPass * | createWebAssemblyRegColoring () |
FunctionPass * | createWebAssemblyFixBrTableDefaults () |
FunctionPass * | createWebAssemblyFixIrreducibleControlFlow () |
FunctionPass * | createWebAssemblyLateEHPrepare () |
FunctionPass * | createWebAssemblyCFGSort () |
FunctionPass * | createWebAssemblyCFGStackify () |
FunctionPass * | createWebAssemblyExplicitLocals () |
FunctionPass * | createWebAssemblyLowerBrUnless () |
FunctionPass * | createWebAssemblyRegNumbering () |
FunctionPass * | createWebAssemblyDebugFixup () |
FunctionPass * | createWebAssemblyPeephole () |
ModulePass * | createWebAssemblyMCLowerPrePass () |
void | initializeFixFunctionBitcastsPass (PassRegistry &) |
void | initializeOptimizeReturnedPass (PassRegistry &) |
void | initializeWebAssemblyRefTypeMem2LocalPass (PassRegistry &) |
void | initializeWebAssemblyAddMissingPrototypesPass (PassRegistry &) |
void | initializeWebAssemblyArgumentMovePass (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_ostream & | operator<< (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::WasmSignature * | signatureFromMVTs (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. | |
MCCodeEmitter * | createX86MCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createX86_32AsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCAsmBackend * | createX86_64AsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
MCTargetStreamer * | createX86AsmTargetStreamer (MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrinter) |
Implements X86-only directives for assembly emission. | |
MCTargetStreamer * | createX86ObjectTargetStreamer (MCStreamer &S, const MCSubtargetInfo &STI) |
Implements X86-only directives for object files. | |
MCStreamer * | 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. | |
MCStreamer * | createX86ELFStreamer (const Triple &T, MCContext &Context, std::unique_ptr< MCAsmBackend > &&MAB, std::unique_ptr< MCObjectWriter > &&MOW, std::unique_ptr< MCCodeEmitter > &&MCE) |
std::unique_ptr< MCObjectTargetWriter > | createX86MachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) |
Construct an X86 Mach-O object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createX86ELFObjectWriter (bool IsELF64, uint8_t OSABI, uint16_t EMachine) |
Construct an X86 ELF object writer. | |
std::unique_ptr< MCObjectTargetWriter > | createX86WinCOFFObjectWriter (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. | |
MCTargetStreamer * | createX86NullTargetStreamer (MCStreamer &S) |
Implements X86-only null emission. | |
Target & | getTheX86_32Target () |
Target & | getTheX86_64Target () |
FunctionPass * | createX86ISelDag (X86TargetMachine &TM, CodeGenOptLevel OptLevel) |
This pass converts a legalized DAG into a X86-specific DAG, ready for instruction scheduling. | |
FunctionPass * | createX86GlobalBaseRegPass () |
This pass initializes a global base register for PIC on x86-32. | |
FunctionPass * | 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. | |
FunctionPass * | createX86FloatingPointStackifierPass () |
This function returns a pass which converts floating-point register references and pseudo instructions into floating-point stack references and physical instructions. | |
FunctionPass * | createX86IssueVZeroUpperPass () |
This pass inserts AVX vzeroupper instructions before each call to avoid transition penalty between functions encoded with AVX and SSE. | |
FunctionPass * | createX86IndirectBranchTrackingPass () |
This pass inserts ENDBR instructions before indirect jump/call destinations as part of CET IBT mechanism. | |
FunctionPass * | createX86PadShortFunctions () |
Return a pass that pads short functions with NOOPs. | |
FunctionPass * | 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. | |
FunctionPass * | createX86FixupInstTuning () |
Return a pass that replaces equivalent slower instructions with faster ones. | |
FunctionPass * | createX86FixupVectorConstants () |
Return a pass that reduces the size of vector constant pool loads. | |
FunctionPass * | createX86OptimizeLEAs () |
Return a pass that removes redundant LEA instructions and redundant address recalculations. | |
FunctionPass * | createX86FixupSetCC () |
Return a pass that transforms setcc + movzx pairs into xor + setcc. | |
FunctionPass * | createX86WinFixupBufferSecurityCheckPass () |
Return a pass that transform inline buffer security check into seperate bb. | |
FunctionPass * | createX86AvoidStoreForwardingBlocks () |
Return a pass that avoids creating store forward block issues in the hardware. | |
FunctionPass * | createX86FlagsCopyLoweringPass () |
Return a pass that lowers EFLAGS copy pseudo instructions. | |
FunctionPass * | createX86DynAllocaExpander () |
Return a pass that expands DynAlloca pseudo-instructions. | |
FunctionPass * | createX86TileConfigPass () |
Return a pass that config the tile registers. | |
FunctionPass * | createX86FastPreTileConfigPass () |
Return a pass that preconfig the tile registers before fast reg allocation. | |
FunctionPass * | createX86FastTileConfigPass () |
Return a pass that config the tile registers after fast reg allocation. | |
FunctionPass * | createX86PreTileConfigPass () |
Return a pass that insert pseudo tile config instruction. | |
FunctionPass * | createX86LowerTileCopyPass () |
Return a pass that lower the tile copy instruction. | |
FunctionPass * | createX86AvoidTrailingCallPass () |
Return a pass that inserts int3 at the end of the function if it ends with a CALL instruction. | |
FunctionPass * | createX86CallFrameOptimization () |
Return a pass that optimizes the code-size of x86 call sequences. | |
FunctionPass * | createX86WinEHStatePass () |
Return an IR pass that inserts EH registration stack objects and explicit EH state updates. | |
FunctionPass * | createX86ExpandPseudoPass () |
Return a Machine IR pass that expands X86-specific pseudo instructions into a sequence of actual instructions. | |
FunctionPass * | createX86CmovConverterPass () |
This pass converts X86 cmov instructions into branch when profitable. | |
FunctionPass * | 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. | |
FunctionPass * | createX86DomainReassignmentPass () |
Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable. | |
FunctionPass * | 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. | |
FunctionPass * | createX86IndirectThunksPass () |
This pass creates the thunks for the retpoline feature. | |
FunctionPass * | createX86ReturnThunksPass () |
This pass replaces ret instructions with jmp's to __x86_return thunk. | |
FunctionPass * | createX86DiscriminateMemOpsPass () |
This pass ensures instructions featuring a memory operand have distinctive <LineNumber, Discriminator> (with respect to each other) | |
FunctionPass * | createX86InsertPrefetchPass () |
This pass applies profiling information to insert cache prefetches. | |
FunctionPass * | createX86InsertX87waitPass () |
This pass insert wait instruction after X87 instructions which could raise fp exceptions when strict-fp enabled. | |
FunctionPass * | 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. | |
InstructionSelector * | createX86InstructionSelector (const X86TargetMachine &TM, const X86Subtarget &, const X86RegisterBankInfo &) |
FunctionPass * | createX86LoadValueInjectionLoadHardeningPass () |
FunctionPass * | createX86LoadValueInjectionRetHardeningPass () |
FunctionPass * | createX86SpeculativeLoadHardeningPass () |
FunctionPass * | createX86SpeculativeExecutionSideEffectSuppression () |
FunctionPass * | createX86ArgumentStackSlotPass () |
void | initializeCompressEVEXPassPass (PassRegistry &) |
void | initializeFPSPass (PassRegistry &) |
void | initializeFixupBWInstPassPass (PassRegistry &) |
void | initializeFixupLEAPassPass (PassRegistry &) |
void | initializeX86ArgumentStackSlotPassPass (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 | initializeX86WinFixupBufferSecurityCheckPassPass (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 &) |
bool | RetCC_X86 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
bool | CC_X86 (unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
static X86AddressMode | getAddressFromInstr (const MachineInstr *MI, unsigned Operand) |
Compute the addressing mode from an machine instruction starting with the given operand. | |
static const MachineInstrBuilder & | addDirectMem (const MachineInstrBuilder &MIB, unsigned Reg) |
addDirectMem - This function is used to add a direct memory reference to the current instruction – that is, a dereference of an address in a register, with no scale, index or displacement. | |
static void | setDirectAddressInInstr (MachineInstr *MI, unsigned Operand, unsigned Reg) |
Replace the address used in the instruction with the direct memory reference. | |
static const MachineInstrBuilder & | addOffset (const MachineInstrBuilder &MIB, int Offset) |
static const MachineInstrBuilder & | addOffset (const MachineInstrBuilder &MIB, const MachineOperand &Offset) |
static const MachineInstrBuilder & | addRegOffset (const MachineInstrBuilder &MIB, unsigned Reg, bool isKill, int Offset) |
addRegOffset - This function is used to add a memory reference of the form [Reg + Offset], i.e., one with no scale or index, but with a displacement. | |
static const MachineInstrBuilder & | addRegReg (const MachineInstrBuilder &MIB, unsigned Reg1, bool isKill1, unsigned Reg2, bool isKill2) |
addRegReg - This function is used to add a memory reference of the form: [Reg + Reg]. | |
static const MachineInstrBuilder & | addFullAddress (const MachineInstrBuilder &MIB, const X86AddressMode &AM) |
static const MachineInstrBuilder & | addFrameReference (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 MachineInstrBuilder & | addConstantPoolReference (const MachineInstrBuilder &MIB, unsigned CPI, unsigned GlobalBaseReg, unsigned char OpFlags) |
addConstantPoolReference - This function is used to add a reference to the base of a constant value spilled to the per-function constant pool. | |
const X86InstrFMA3Group * | getFMA3Group (unsigned Opcode, uint64_t TSFlags) |
Returns a reference to a group of FMA3 opcodes to where the given Opcode is included. | |
const X86FoldTableEntry * | lookupTwoAddrFoldTable (unsigned RegOp) |
const X86FoldTableEntry * | lookupFoldTable (unsigned RegOp, unsigned OpNum) |
const X86FoldTableEntry * | lookupBroadcastFoldTable (unsigned RegOp, unsigned OpNum) |
const X86FoldTableEntry * | lookupUnfoldTable (unsigned MemOp) |
const X86FoldTableEntry * | lookupBroadcastFoldTableBySize (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 const IntrinsicData * | getIntrinsicWithChain (unsigned IntNo) |
static const IntrinsicData * | getIntrinsicWithoutChain (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< ScheduleDAGMutation > | createX86MacroFusionDAGMutation () |
Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86PassConfig::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. | |
Target & | getTheXCoreTarget () |
void | initializeXCoreLowerThreadLocalPass (PassRegistry &p) |
FunctionPass * | createXCoreFrameToArgsOffsetEliminationPass () |
createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass | |
FunctionPass * | createXCoreISelDag (XCoreTargetMachine &TM, CodeGenOptLevel OptLevel) |
createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG, ready for instruction scheduling. | |
ModulePass * | createXCoreLowerThreadLocalPass () |
void | initializeXCoreDAGToDAGISelLegacyPass (PassRegistry &) |
MCCodeEmitter * | createXtensaMCCodeEmitter (const MCInstrInfo &MCII, MCContext &Ctx) |
MCAsmBackend * | createXtensaMCAsmBackend (const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) |
std::unique_ptr< MCObjectTargetWriter > | createXtensaObjectWriter (uint8_t OSABI, bool IsLittleEndian) |
Target & | getTheXtensaTarget () |
FunctionPass * | createXtensaISelDag (XtensaTargetMachine &TM, CodeGenOptLevel OptLevel) |
raw_ostream & | operator<< (raw_ostream &O, const XtensaConstantPoolValue &V) |
bool | isValidAddrOffset (int Scale, int64_t OffsetVal) |
bool | isValidAddrOffset (MachineInstr &MI, int64_t Offset) |
static void | dumpBasicBlockLabel (const BasicBlock *BB, ModuleSlotTracker &MST) |
cl::opt< bool > | DebugInfoCorrelate ("debug-info-correlate", cl::desc("Use debug info to correlate profiles. (Deprecated, use " "-profile-correlate=debug-info)"), cl::init(false)) |
cl::opt< bool > | 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.")) |
cl::opt< bool > | NoPGOWarnMismatch ("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< bool > | 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.")) |
template<> | |
ChangeStatus | clampStateAndIndicateChange< DerefState > (DerefState &S, const DerefState &R) |
cl::opt< bool > | EnableMemProfContextDisambiguation ("enable-memprof-context-disambiguation", cl::init(false), cl::Hidden, cl::ZeroOrMore, cl::desc("Enable MemProf context disambiguation")) |
cl::opt< bool > | SupportsHotColdNew ("supports-hot-cold-new", cl::init(false), cl::Hidden, cl::desc("Linking with hot/cold operator new interfaces")) |
cl::opt< bool > | SortProfiledSCC ("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_ostream & | operator<< (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 BranchInst * | findSplitCandidate (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) |
cl::opt< bool > | EnableKnowledgeRetention ("enable-knowledge-retention", cl::init(false), cl::Hidden, cl::desc("enable preservation of attributes throughout code transformation")) |
cl::opt< bool > | 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.")) |
cl::opt< bool > | ApplyExtTspWithoutProfile ("ext-tsp-apply-without-profile", cl::desc("Whether to apply ext-tsp placement for instances w/o profile"), cl::init(true), cl::Hidden) |
static bool | valueComesBefore (const Value *A, const Value *B) |
bool | shouldRename (Value *V) |
void | collectCmpOps (CmpInst *Comparison, SmallVectorImpl< Value * > &CmpOperands) |
static void | replaceCreatedSSACopys (PredicateInfo &PredInfo, Function &F) |
cl::opt< unsigned > | 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.")) |
cl::opt< unsigned > | 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.")) |
cl::opt< unsigned > | 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.")) |
cl::opt< bool > | 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. ")) |
cl::opt< bool > | SampleProfileUseProfi ("sample-profile-use-profi", cl::Hidden, cl::desc("Use profi to infer block and edge counts.")) |
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 void | inferAttribute (Function *F, unsigned AttrIndex, const ValueLatticeElement &Val) |
static bool | isUniformLoop (Loop *Lp, Loop *OuterLp) |
static bool | isUniformLoopNest (Loop *Lp, Loop *OuterLp) |
static Type * | convertPointerToIntegerType (const DataLayout &DL, Type *Ty) |
static Type * | getWiderType (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: | |
Value * | createStepForVF (IRBuilderBase &B, Type *Ty, ElementCount VF, int64_t Step) |
Return a value for Step multiplied by VF. | |
Value * | getRuntimeVF (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 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 | 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 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. | |
unsigned | getReciprocalPredBlockProb () |
A helper function that returns the reciprocal of the block probability of predicated blocks. | |
raw_ostream & | operator<< (raw_ostream &OS, const VPlanIngredient &I) |
raw_ostream & | operator<< (raw_ostream &OS, const VPlan &Plan) |
void | collectEphemeralRecipesForVPlan (VPlan &Plan, DenseSet< VPRecipeBase * > &EphRecipes) |
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< 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) |
raw_ostream & | operator<< (raw_ostream &OS, const VPValue &V) |
bool | verifyVPlanIsValid (const VPlan &Plan) |
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 | |
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) |
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_ostream & | operator<< (raw_ostream &OS, const Twine &RHS) |
void | describeFuzzerIntOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
Getters for the default sets of operations, per general category. | |
void | describeFuzzerFloatOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
void | describeFuzzerControlFlowOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
void | describeFuzzerPointerOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
void | describeFuzzerAggregateOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
void | describeFuzzerVectorOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
void | describeFuzzerUnaryOperations (std::vector< fuzzerop::OpDescriptor > &Ops) |
void | describeFuzzerOtherOps (std::vector< fuzzerop::OpDescriptor > &Ops) |
TransformationMode | hasUnrollTransformation (const Loop *L) |
TransformationMode | hasUnrollAndJamTransformation (const Loop *L) |
TransformationMode | hasVectorizeTransformation (const Loop *L) |
TransformationMode | hasDistributeTransformation (const Loop *L) |
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 > | |
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 StringRef | IgnoreBundleTag = "ignore" |
Tag in operand bundle indicating that this bundle should be ignored. | |
llvm::cl::opt< bool > | CheckBFIUnknownBlockQueries |
llvm::cl::opt< bool > | UseIterativeBFIInference |
llvm::cl::opt< unsigned > | IterativeBFIMaxIterationsPerBlock |
llvm::cl::opt< double > | IterativeBFIPrecision |
constexpr size_t | NumberOfFeatures |
const std::vector< TensorSpec > | FeatureMap |
const char *const | DecisionName = "inlining_decision" |
const TensorSpec | InlineDecisionSpec |
const char *const | DefaultDecisionName = "inlining_default" |
const TensorSpec | DefaultDecisionSpec |
const char *const | RewardName = "delta_size" |
cl::opt< unsigned > | DefMaxInstsToScan |
The default number of maximum instructions to scan in the block, used by FindAvailableLoadedValue(). | |
bool | VerifyLoopInfo = false |
Enable verification of loop info. | |
bool | VerifyMemorySSA = false |
Enables verification of MemorySSA. | |
bool | VerifySCEV = false |
constexpr unsigned | MaxAnalysisRecursionDepth = 6 |
cl::opt< std::string > | BBSectionsColdTextPrefix |
cl::opt< unsigned > | PartialUnrollingThreshold |
template class LLVM_TEMPLATE_ABI | Registry< GCMetadataPrinter > |
cl::opt< bool > | DisableGISelLegalityCheck |
cl::opt< bool > | UseSegmentSetForPhysRegs |
cl::opt< bool > | SwpEnableCopyToPhi |
cl::opt< int > | SwpForceIssueWidth |
A command line argument to force pipeliner to use specified issue width. | |
static const int | DefaultProcResSize = 16 |
cl::opt< MISched::Direction > | PreRADirection |
cl::opt< bool > | VerifyScheduling |
cl::opt< bool > | ViewMISchedDAGs |
cl::opt< bool > | PrintDAGs |
char & | AtomicExpandID = AtomicExpandLegacy::ID |
AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops. | |
char & | MachineLoopInfoID = MachineLoopInfoWrapperPass::ID |
MachineLoopInfo - This pass is a loop analysis pass. | |
char & | MachineDominatorsID = MachineDominatorTreeWrapperPass::ID |
MachineDominators - This pass is a machine dominators analysis pass. | |
char & | MachineDominanceFrontierID = MachineDominanceFrontier::ID |
MachineDominanaceFrontier - This pass is a machine dominators analysis. | |
char & | MachineRegionInfoPassID |
MachineRegionInfo - This pass computes SESE regions for machine functions. | |
char & | EdgeBundlesWrapperLegacyID |
EdgeBundles analysis - Bundle machine CFG edges. | |
char & | LiveVariablesID = LiveVariablesWrapperPass::ID |
LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags. | |
char & | PHIEliminationID = PHIElimination::ID |
PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions. | |
char & | LiveIntervalsID = LiveIntervalsWrapperPass::ID |
LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers. | |
char & | LiveStacksID = LiveStacksWrapperLegacy::ID |
LiveStacks pass. An analysis keeping track of the liveness of stack slots. | |
char & | TwoAddressInstructionPassID = TwoAddressInstructionLegacyPass::ID |
TwoAddressInstruction - This pass reduces two-address instructions to use two operands. | |
char & | ProcessImplicitDefsID = ProcessImplicitDefs::ID |
ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs. | |
char & | RegisterCoalescerID = RegisterCoalescer::ID |
RegisterCoalescer - This pass merges live ranges to eliminate copies. | |
char & | MachineSchedulerID = MachineScheduler::ID |
MachineScheduler - This pass schedules machine instructions. | |
char & | PostMachineSchedulerID = PostMachineScheduler::ID |
PostMachineScheduler - This pass schedules machine instructions postRA. | |
char & | SpillPlacementID = SpillPlacementWrapperLegacy::ID |
SpillPlacement analysis. | |
char & | ShrinkWrapID = ShrinkWrap::ID |
ShrinkWrap pass. Look for the best place to insert save and restore. | |
char & | LiveRangeShrinkID = LiveRangeShrink::ID |
LiveRangeShrink pass. | |
char & | RAGreedyID = RAGreedy::ID |
Greedy register allocator. | |
char & | RABasicID = RABasic::ID |
Basic register allocator. | |
char & | VirtRegRewriterID = VirtRegRewriter::ID |
VirtRegRewriter pass. | |
char & | UnreachableMachineBlockElimID |
UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks. | |
char & | DeadMachineInstructionElimID = DeadMachineInstructionElim::ID |
DeadMachineInstructionElim - This pass removes dead machine instructions. | |
char & | DetectDeadLanesID = DetectDeadLanes::ID |
This pass adds dead/undef flags after analyzing subregister lanes. | |
char & | PostRAMachineSinkingID = PostRAMachineSinking::ID |
This pass perform post-ra machine sink for COPY instructions. | |
char & | MIRAddFSDiscriminatorsID |
This pass adds flow sensitive discriminators. | |
char & | MIRProfileLoaderPassID = MIRProfileLoaderPass::ID |
This pass reads flow sensitive profile. | |
char & | InitUndefID = InitUndef::ID |
char & | PrologEpilogCodeInserterID = PEI::ID |
PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references. | |
char & | ExpandPostRAPseudosID = ExpandPostRA::ID |
ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation. | |
char & | PostRAHazardRecognizerID = PostRAHazardRecognizer::ID |
PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer. | |
char & | PostRASchedulerID = PostRAScheduler::ID |
PostRAScheduler - This pass performs post register allocation scheduling. | |
char & | BranchFolderPassID = BranchFolderPass::ID |
BranchFolding - This pass performs machine code CFG based optimizations to delete branches to branches, eliminate branches to successor blocks (creating fall throughs), and eliminating branches over branches. | |
char & | BranchRelaxationPassID = BranchRelaxation::ID |
BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction. | |
char & | MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID |
MachineFunctionPrinterPass - This pass prints out MachineInstr's. | |
char & | MIRPrintingPassID = MIRPrintingPass::ID |
MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format. | |
char & | TailDuplicateLegacyID = TailDuplicateLegacy::ID |
TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors. | |
char & | EarlyTailDuplicateLegacyID = EarlyTailDuplicateLegacy::ID |
Duplicate blocks with unconditional branches into tails of their predecessors. | |
char & | MachineTraceMetricsID = MachineTraceMetricsWrapperPass::ID |
MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces. | |
char & | EarlyIfConverterLegacyID = EarlyIfConverterLegacy::ID |
EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions. | |
char & | EarlyIfPredicatorID = EarlyIfPredicator::ID |
EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point. | |
char & | MachineCombinerID = MachineCombiner::ID |
This pass performs instruction combining using trace metrics to estimate critical-path and resource depth. | |
char & | StackColoringLegacyID = StackColoringLegacy::ID |
StackSlotColoring - This pass performs stack coloring and merging. | |
char & | StackFrameLayoutAnalysisPassID = StackFrameLayoutAnalysisPass::ID |
StackFramePrinter - This pass prints the stack frame layout and variable mappings. | |
char & | IfConverterID = IfConverter::ID |
IfConverter - This pass performs machine code if conversion. | |
char & | MachineBlockPlacementID = MachineBlockPlacement::ID |
MachineBlockPlacement - This pass places basic blocks based on branch probabilities. | |
char & | MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID |
MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information. | |
char & | GCLoweringID = LowerIntrinsics::ID |
GCLowering Pass - Used by gc.root to perform its default lowering operations. | |
char & | ShadowStackGCLoweringID = ShadowStackGCLowering::ID |
ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC. | |
char & | GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID |
GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code. | |
char & | MachineCSELegacyID = MachineCSELegacy::ID |
MachineCSE - This pass performs global CSE on machine instructions. | |
char & | MIRCanonicalizerID = MIRCanonicalizer::ID |
MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code. | |
char & | ImplicitNullChecksID = ImplicitNullChecks::ID |
ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations. | |
char & | MachineLICMID = MachineLICM::ID |
This pass performs loop invariant code motion on machine instructions. | |
char & | EarlyMachineLICMID = EarlyMachineLICM::ID |
This pass performs loop invariant code motion on machine instructions. | |
char & | MachineSinkingID = MachineSinking::ID |
MachineSinking - This pass performs sinking on machine instructions. | |
char & | MachineCopyPropagationID = MachineCopyPropagation::ID |
MachineCopyPropagation - This pass performs copy propagation on machine instructions. | |
char & | MachineLateInstrsCleanupID = MachineLateInstrsCleanup::ID |
MachineLateInstrsCleanup - This pass removes redundant identical instructions after register allocation and rematerialization. | |
char & | PeepholeOptimizerLegacyID = PeepholeOptimizerLegacy::ID |
PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations. | |
char & | OptimizePHIsLegacyID = OptimizePHIsLegacy::ID |
OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization. | |
char & | StackSlotColoringID = StackSlotColoring::ID |
StackSlotColoring - This pass performs stack slot coloring. | |
char & | FuncletLayoutID = FuncletLayout::ID |
This pass lays out funclets contiguously. | |
char & | XRayInstrumentationID = XRayInstrumentation::ID |
This pass inserts the XRay instrumentation sleds if they are supported by the target platform. | |
char & | FEntryInserterID = FEntryInserter::ID |
This pass inserts FEntry calls. | |
char & | PatchableFunctionID = PatchableFunction::ID |
This pass implements the "patchable-function" attribute. | |
char & | LocalStackSlotAllocationID = LocalStackSlotPass::ID |
LocalStackSlotAllocation - This pass assigns local frame indices to stack slots relative to one another and allocates base registers to access them when it is estimated by the target to be out of range of normal frame pointer or stack pointer index addressing. | |
char & | FinalizeISelID = FinalizeISel::ID |
This pass expands pseudo-instructions, reserves registers and adjusts machine frame information. | |
char & | UnpackMachineBundlesID = UnpackMachineBundles::ID |
UnpackMachineBundles - This pass unpack machine instruction bundles. | |
char & | FinalizeMachineBundlesID = FinalizeMachineBundles::ID |
FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g. | |
char & | StackMapLivenessID = StackMapLiveness::ID |
StackMapLiveness - This pass analyses the register live-out set of stackmap/patchpoint intrinsics and attaches the calculated information to the intrinsic for later emission to the StackMap. | |
char & | MachineSanitizerBinaryMetadataID |
char & | RemoveLoadsIntoFakeUsesID = RemoveLoadsIntoFakeUses::ID |
RemoveLoadsIntoFakeUses pass. | |
char & | RemoveRedundantDebugValuesID = RemoveRedundantDebugValues::ID |
RemoveRedundantDebugValues pass. | |
char & | MachineCFGPrinterID = MachineCFGPrinter::ID |
MachineCFGPrinter pass. | |
char & | LiveDebugValuesID = LiveDebugValues::ID |
LiveDebugValues pass. | |
char & | RenameIndependentSubregsID = RenameIndependentSubregs::ID |
This pass detects subregister lanes in a virtual register that are used independently of other lanes and splits them into separate virtual registers. | |
char & | MachinePipelinerID = MachinePipeliner::ID |
This pass performs software pipelining on machine instructions. | |
char & | FixupStatepointCallerSavedID = FixupStatepointCallerSaved::ID |
The pass fixups statepoint machine instruction to replace usage of caller saved registers with stack slots. | |
constexpr StringRef | AssumptionAttrKey = "llvm.assume" |
The key we use for assumption attributes. | |
StringSet | KnownAssumptionStrings |
A set of known assumption strings that are accepted without warning and which can be recommended as typo correction. | |
cl::opt< bool > | EnableFSDiscriminator |
bool | VerifyDomInfo = false |
Enables verification of dominator trees. | |
template class LLVM_TEMPLATE_ABI | Registry< GCStrategy > |
constexpr char | GlobalIdentifierDelimiter = ';' |
constexpr int | PoisonMaskElem = -1 |
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. | |
cl::opt< ChangePrinter > | PrintChanged |
constexpr const char * | PseudoProbeDescMetadataName = "llvm.pseudo_probe_desc" |
static constexpr uint64_t | PseudoProbeFullDistributionFactor |
cl::opt< bool > | EnableLTOInternalization |
Enable global value internalization in LTO. | |
const char | AsmRewritePrecedence [] |
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. | |
bool | TimePassesPerRun = false |
If TimePassesPerRun is true, there would be one line of report for each pass invocation. | |
cl::opt< bool > | PrintPipelinePasses |
Common option used by multiple tools to print pipeline passes. | |
cl::opt< bool > | DoInstrProfNameCompression |
cl::opt< bool > | UseContextLessSummary |
cl::opt< int > | ProfileSummaryCutoffHot |
cl::opt< int > | ProfileSummaryCutoffCold |
cl::opt< unsigned > | ProfileSummaryHugeWorkingSetSizeThreshold |
cl::opt< unsigned > | ProfileSummaryLargeWorkingSetSizeThreshold |
cl::opt< uint64_t > | ProfileSummaryHotCount |
cl::opt< uint64_t > | ProfileSummaryColdCount |
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. | |
bool | DebugFlag = false |
This boolean is set to true if the '-debug' command line option is specified. | |
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. | |
const float | huge_valf = HUGE_VALF |
Use this rather than HUGE_VALF; the latter causes warnings on MSVC. | |
SourceMgr | SrcMgr |
unsigned | ErrorsPrinted = 0 |
const unsigned | MAX_SUBTARGET_WORDS = 5 |
const unsigned | MAX_SUBTARGET_FEATURES = MAX_SUBTARGET_WORDS * 64 |
static constexpr unsigned | InstCombineDefaultMaxIterations = 1 |
cl::opt< bool > | DebugInfoCorrelate |
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 [] |
unsigned | MaxInitializationChainLength |
The value passed to the line option that defines the maximal initialization chain length. | |
cl::opt< int > | SampleHotCallSiteThreshold |
cl::opt< int > | SampleColdCallSiteThreshold |
cl::opt< int > | ProfileInlineGrowthLimit |
cl::opt< int > | ProfileInlineLimitMin |
cl::opt< int > | ProfileInlineLimitMax |
cl::opt< bool > | SortProfiledSCC |
char & | InferAddressSpacesID |
cl::opt< unsigned > | SetLicmMssaOptCap |
cl::opt< unsigned > | SetLicmMssaNoAccForPromotionCap |
cl::opt< bool > | ForgetSCEVInLoopUnroll |
char & | LowerInvokePassID = LowerInvokeLegacyPass::ID |
char & | LowerSwitchID = LowerSwitchLegacyPass::ID |
char & | BreakCriticalEdgesID |
char & | LCSSAID = LCSSAWrapperPass::ID |
char & | LoopSimplifyID = 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 |
cl::opt< bool > | EnableKnowledgeRetention |
cl::opt< bool > | RequireAndPreserveDomTree |
This function is used to do simplification of a CFG. | |
cl::opt< bool > | SampleProfileUseProfi |
cl::opt< unsigned > | SampleProfileMaxPropagateIterations |
cl::opt< unsigned > | SampleProfileRecordCoverage |
cl::opt< unsigned > | SampleProfileSampleCoverage |
cl::opt< bool > | NoWarnSampleUnused |
cl::opt< unsigned > | SCEVCheapExpansionBudget |
cl::opt< bool > | EnablePGSO |
cl::opt< bool > | PGSOLargeWorkingSetSizeOnly |
cl::opt< bool > | PGSOColdCodeOnly |
cl::opt< bool > | PGSOColdCodeOnlyForInstrPGO |
cl::opt< bool > | PGSOColdCodeOnlyForSamplePGO |
cl::opt< bool > | PGSOColdCodeOnlyForPartialSamplePGO |
cl::opt< bool > | ForcePGSO |
cl::opt< int > | PgsoCutoffInstrProf |
cl::opt< int > | PgsoCutoffSampleProf |
cl::opt< bool > | EnableLoopInterleaving |
cl::opt< bool > | EnableLoopVectorization |
cl::opt< bool > | DisableBasicAA ("disable-basic-aa", cl::Hidden, cl::init(false)) |
Allow disabling BasicAA from the AA results. | |
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< unsigned > | 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.")) |
cl::opt< PGOViewCountsType > | 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."))) |
static cl::opt< bool > | PrintBFI ("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< unsigned > | MaxDevirtIterations ("max-devirt-iterations", cl::ReallyHidden, cl::init(4)) |
static cl::opt< bool > | AbortOnMaxDevirtIterationsReached ("abort-on-max-devirt-iterations-reached", cl::desc("Abort when the max iterations for devirtualization CGSCC repeat " "pass is reached")) |
cl::opt< bool > | EnableDetailedFunctionProperties ("enable-detailed-function-properties", cl::Hidden, cl::init(false), cl::desc("Whether or not to compute detailed function properties.")) |
cl::opt< unsigned > | 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.")) |
cl::opt< unsigned > | 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.")) |
static const unsigned | heatSize = 100 |
static const char | heatPalette [heatSize][8] |
cl::opt< InlinerFunctionImportStatsOpts > | 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")) |
cl::opt< bool > | DisableBranches ("no-ir-sim-branch-matching", cl::init(false), cl::ReallyHidden, cl::desc("disable similarity matching, and outlining, " "across branches for debugging purposes.")) |
cl::opt< bool > | DisableIndirectCalls ("no-ir-sim-indirect-calls", cl::init(false), cl::ReallyHidden, cl::desc("disable outlining indirect calls.")) |
cl::opt< bool > | 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.")) |
cl::opt< bool > | DisableIntrinsics ("no-ir-sim-intrinsics", cl::init(false), cl::ReallyHidden, cl::desc("Don't match or outline intrinsics")) |
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< GVDAGType > | 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."))) |
cl::opt< GVDAGType > | 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."))) |
static cl::opt< bool > | PrintMachineBlockFreq ("print-machine-bfi", cl::init(false), cl::Hidden, cl::desc("Print the machine block frequency info.")) |
cl::opt< bool > | EnableExtTspBlockPlacement |
cl::opt< bool > | ApplyExtTspWithoutProfile |
cl::opt< unsigned > | StaticLikelyProb |
cl::opt< unsigned > | ProfileLikelyProb |
bool | VerifyMachineDomInfo = false |
cl::opt< WindowSchedulingFlag > | 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."))) |
A command line argument to set the window scheduling option. | |
cl::opt< MISched::Direction > | 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"))) |
cl::opt< bool > | DumpCriticalPathLength ("misched-dcpl", cl::Hidden, cl::desc("Print critical path length to stdout")) |
cl::opt< bool > | MISchedDumpReservedCycles ("misched-dump-reserved-cycles", cl::Hidden, cl::init(false), cl::desc("Dump resource usage at schedule boundary.")) |
cl::opt< bool > | MischedDetailResourceBooking ("misched-detail-resource-booking", cl::Hidden, cl::init(false), cl::desc("Show details of invoking getNextResoufceCycle.")) |
cl::opt< bool > | ImprovedFSDiscriminator ("improved-fs-discriminator", cl::Hidden, cl::init(false), cl::desc("New FS discriminators encoding (incompatible with the original " "encoding)")) |
char & | MIRNamerID = MIRNamer::ID |
cl::opt< unsigned > | EvictInterferenceCutoff |
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< TensorSpec > | InputFeatures |
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< bool > | LTOKeepSymbolCopies ("lto-keep-symbol-copies", cl::init(false), cl::Hidden, cl::desc("Keep copies of symbols in LTO indexing")) |
cl::opt< bool > | SupportsHotColdNew |
Indicate we are linking with an allocator that supports hot/cold operator new interfaces. | |
cl::opt< bool > | EnableMemProfContextDisambiguation |
Enable MemProf context disambiguation for thin link. | |
cl::opt< bool > | NoPGOWarnMismatch |
cl::opt< bool > | LTODiscardValueNames ("lto-discard-value-names", cl::desc("Strip names from Value during LTO (other than GlobalValue)."), cl::init(false), cl::Hidden) |
cl::opt< bool > | RemarksWithHotness ("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::HotnessThresholdParser > | 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) |
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")) |
cl::opt< std::string > | LTOStatsFile ("lto-stats-file", cl::desc("Save statistics to the specified file"), cl::Hidden) |
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")) |
cl::opt< bool > | LTORunCSIRInstr ("cs-profile-generate", cl::desc("Perform context sensitive PGO instrumentation")) |
cl::opt< std::string > | LTOCSIRProfile ("cs-profile-path", cl::desc("Context sensitive profile file path")) |
cl::opt< cl::boolOrDefault > | UseLEB128Directives ("use-leb128-directives", cl::Hidden, cl::desc("Disable the usage of LEB128 directives, and generate .byte instead."), cl::init(cl::BOU_UNSET)) |
cl::opt< unsigned > | AsmMacroMaxNestingDepth |
cl::opt< bool > | 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.")) |
cl::opt< bool > | 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.")) |
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::string > > | CurrentDebugType |
static const MachineMemOperand::Flags | MOSuppressPair |
static const MachineMemOperand::Flags | MOStridedAccess |
static const unsigned | PerfectShuffleTable [6561+1] |
char & | AMDGPUAnnotateKernelFeaturesID = AMDGPUAnnotateKernelFeatures::ID |
char & | AMDGPUAtomicOptimizerID = AMDGPUAtomicOptimizer::ID |
char & | AMDGPUCtorDtorLoweringLegacyPassID |
char & | AMDGPULowerKernelArgumentsID |
char & | AMDGPUPromoteKernelArgumentsID |
char & | AMDGPULowerKernelAttributesID |
char & | AMDGPULowerModuleLDSLegacyPassID = AMDGPULowerModuleLDSLegacy::ID |
char & | AMDGPULowerBufferFatPointersID = AMDGPULowerBufferFatPointers::ID |
char & | AMDGPUReserveWWMRegsID |
char & | AMDGPURewriteOutArgumentsID |
char & | GCNDPPCombineLegacyID |
char & | SIFoldOperandsLegacyID |
char & | SIPeepholeSDWALegacyID |
char & | SIShrinkInstructionsLegacyID |
char & | SIFixSGPRCopiesLegacyID = SIFixSGPRCopiesLegacy::ID |
char & | SIFixVGPRCopiesID |
char & | SILowerWWMCopiesLegacyID = SILowerWWMCopiesLegacy::ID |
char & | SILowerI1CopiesLegacyID = SILowerI1CopiesLegacy::ID |
char & | AMDGPUGlobalISelDivergenceLoweringID |
char & | AMDGPURegBankSelectID = AMDGPURegBankSelect::ID |
char & | AMDGPURegBankLegalizeID = AMDGPURegBankLegalize::ID |
char & | AMDGPUMarkLastScratchLoadID = AMDGPUMarkLastScratchLoad::ID |
char & | SILowerSGPRSpillsLegacyID = SILowerSGPRSpillsLegacy::ID |
char & | SILoadStoreOptimizerLegacyID = SILoadStoreOptimizerLegacy::ID |
char & | SIWholeQuadModeID = SIWholeQuadMode::ID |
char & | SILowerControlFlowLegacyID = SILowerControlFlowLegacy::ID |
char & | SIPreEmitPeepholeID |
char & | SILateBranchLoweringPassID = SILateBranchLowering::ID |
char & | SIOptimizeExecMaskingLegacyID = SIOptimizeExecMaskingLegacy::ID |
char & | SIPreAllocateWWMRegsLegacyID = SIPreAllocateWWMRegsLegacy::ID |
char & | AMDGPUImageIntrinsicOptimizerID |
char & | AMDGPUPerfHintAnalysisLegacyID = AMDGPUPerfHintAnalysisLegacy::ID |
char & | GCNRegPressurePrinterID = GCNRegPressurePrinter::ID |
char & | AMDGPUPreloadKernArgPrologLegacyID |
char & | AMDGPUPromoteAllocaID = AMDGPUPromoteAlloca::ID |
char & | AMDGPUPromoteAllocaToVectorID = AMDGPUPromoteAllocaToVector::ID |
char & | AMDGPUSwLowerLDSLegacyPassID = AMDGPUSwLowerLDSLegacy::ID |
char & | AMDGPUPrintfRuntimeBindingID = AMDGPUPrintfRuntimeBinding::ID |
char & | AMDGPUResourceUsageAnalysisID = AMDGPUResourceUsageAnalysis::ID |
char & | AMDGPUUnifyMetadataID = AMDGPUUnifyMetadata::ID |
char & | SIOptimizeExecMaskingPreRAID = SIOptimizeExecMaskingPreRA::ID |
char & | SIOptimizeVGPRLiveRangeLegacyID = SIOptimizeVGPRLiveRangeLegacy::ID |
char & | AMDGPUAnnotateUniformValuesLegacyPassID |
char & | AMDGPUCodeGenPrepareID |
char & | AMDGPURemoveIncompatibleFunctionsID |
char & | AMDGPULateCodeGenPrepareLegacyID |
char & | AMDGPURewriteUndefForPHILegacyPassID |
char & | SIAnnotateControlFlowLegacyPassID |
char & | SIMemoryLegalizerID = SIMemoryLegalizer::ID |
char & | SIModeRegisterID |
char & | AMDGPUInsertDelayAluID = AMDGPUInsertDelayAlu::ID |
char & | SIInsertHardClausesID = SIInsertHardClauses::ID |
char & | SIInsertWaitcntsID = SIInsertWaitcnts::ID |
char & | SIFormMemoryClausesID = SIFormMemoryClauses::ID |
char & | SIPostRABundlerID = SIPostRABundler::ID |
char & | GCNCreateVOPDID = GCNCreateVOPD::ID |
char & | AMDGPUUnifyDivergentExitNodesID = AMDGPUUnifyDivergentExitNodes::ID |
char & | AMDGPUOpenCLEnqueuedBlockLoweringLegacyID |
char & | GCNNSAReassignID = GCNNSAReassign::ID |
char & | GCNPreRALongBranchRegID |
char & | GCNPreRAOptimizationsID = GCNPreRAOptimizations::ID |
char & | GCNRewritePartialRegUsesID = GCNRewritePartialRegUses::ID |
static cl::opt< bool > | DumpHSAMetadata ("amdgpu-dump-hsa-metadata", cl::desc("Dump AMDGPU HSA Metadata")) |
static cl::opt< bool > | VerifyHSAMetadata ("amdgpu-verify-hsa-metadata", cl::desc("Verify AMDGPU HSA Metadata")) |
const SubtargetFeatureKV | AMDGPUFeatureKV [AMDGPU::NumSubtargetFeatures - 1] |
char & | R600ClauseMergePassID = R600ClauseMergePass::ID |
char & | R600ControlFlowFinalizerID = R600ControlFlowFinalizer::ID |
char & | R600ExpandSpecialInstrsPassID = R600ExpandSpecialInstrsPass::ID |
char & | R600VectorRegMergerID = R600VectorRegMerger::ID |
char & | R600PacketizerID = 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 cl::opt< unsigned > | ArcKillAddrMode ("arc-kill-addr-mode", cl::init(0), cl::ReallyHidden) |
cl::opt< bool > | ReuseFrameIndexVals |
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 [] |
static const char * | AVRDataLayout |
const int | SIZE_LONG = 4 |
const int | SIZE_WORD = 2 |
char & | HexagonCopyHoistingID = HexagonCopyHoisting::ID |
char & | HexagonExpandCondsetsID = HexagonExpandCondsets::ID |
char & | HexagonTfrCleanupID = HexagonTfrCleanup::ID |
cl::opt< bool > | HexagonDisableCompound |
cl::opt< bool > | HexagonDisableDuplex |
const InstrStage | HexagonStages [] |
static const Align | MIPS_NACL_BUNDLE_ALIGN = Align(16) |
char & | NVPTXCtorDtorLoweringLegacyPassID = NVPTXCtorDtorLoweringLegacy::ID |
char & | PPCVSXFMAMutateID = PPCVSXFMAMutate::ID |
char & | PPCLowerMASSVEntriesID = PPCLowerMASSVEntries::ID |
char & | PPCGenScalarMASSEntriesID = PPCGenScalarMASSEntries::ID |
const SubtargetFeatureKV | RISCVFeatureKV [RISCV::NumSubtargetFeatures] |
static constexpr std::pair< uint8_t, uint8_t > | LoadFP32ImmArr [] |
char & | RISCVInsertVSETVLIID = 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< InstrProfCorrelator::ProfCorrelatorKind > | ProfileCorrelate ("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< bool > | PGOWarnMissing |
cl::opt< bool > | NoPGOWarnMismatchComdatWeak |
cl::opt< bool > | MemProfRequireDefinitionForPromotion ("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 |
cl::opt< bool > | ShouldPreserveAllAttributes ("assume-preserve-all", cl::init(false), cl::Hidden, cl::desc("enable preservation of all attributes. even those that are " "unlikely to be useful")) |
static cl::opt< bool > | 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.")) |
static cl::opt< uint32_t > | MisExpectTolerance ("misexpect-tolerance", cl::init(0), cl::desc("Prevents emitting diagnostics when profile counts are " "within N% of the threshold..")) |
cl::opt< bool > | HintsAllowReordering ("hints-allow-reordering", cl::init(true), cl::Hidden, cl::desc("Allow enabling loop hints to reorder " "FP operations during vectorization.")) |
cl::opt< bool > | EnableVPlanNativePath ("enable-vplan-native-path", cl::Hidden, cl::desc("Enable VPlan-native vectorization path with " "support for outer loop vectorization.")) |
static cl::opt< unsigned > | 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.")) |
static cl::opt< bool > | AllowNonPow2 ("sbvec-allow-non-pow2", cl::init(false), cl::Hidden, cl::desc("Allow non-power-of-2 vectorization.")) |
const char *const | LLVMLoopUnrollFollowupAll = "llvm.loop.unroll.followup_all" |
const char *const | LLVMLoopUnrollFollowupUnrolled |
const char *const | LLVMLoopUnrollFollowupRemainder |
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 defines the TargetMachine class.
This file implements support for optimizing divisions by a constant.
The contextual profile is a directed tree where each node has one parent.
\file This is a MessagePack reader. See https://github.com/msgpack/msgpack/blob/master/spec.md for the full standard. Typical usage: \code StringRef input = GetInput(); msgpack::Reader MPReader(input); msgpack::Object Obj; while (true) { Expected<bool> ReadObj = MPReader.read(&Obj); if (!ReadObj) // Handle error... if (!ReadObj.get()) break; // Reached end of input switch (Obj.Kind) { case msgpack::Type::Int:
// // Use Obj.Int break; // ... } }
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) {
parrallel_for_each(Compile Unit) {
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) {
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.
using llvm::AAAlignmentStateType = typedef IncIntegerState<uint64_t, Value::MaximumAlignment, 1> |
Definition at line 4275 of file Attributor.h.
using llvm::AddBufferFn = typedef std::function<void(unsigned Task, const Twine &ModuleName, std::unique_ptr<MemoryBuffer> MB)> |
using llvm::AddStreamFn = typedef std::function<Expected<std::unique_ptr<CachedFileStream> >( unsigned Task, const Twine &ModuleName)> |
using llvm::AliasAnalysis = typedef AAResults |
Temporary typedef for legacy code that uses a generic AliasAnalysis
pointer or reference.
Definition at line 694 of file AliasAnalysis.h.
using llvm::AnalysisID = typedef const void * |
using llvm::AnchorList = typedef std::vector<std::pair<LineLocation, FunctionId> > |
Definition at line 22 of file SampleProfileMatcher.h.
using llvm::AnchorMap = typedef std::map<LineLocation, FunctionId> |
Definition at line 23 of file SampleProfileMatcher.h.
using llvm::are_base_of = typedef 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 134 of file STLExtras.h.
using llvm::ArgAuxType = typedef std::variant<unsigned, const Init *> |
using llvm::Assume2KnowledgeMap = typedef DenseMap<AssumeInst *, MinMax> |
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 79 of file AssumeBundleQueries.h.
using llvm::BBInfoVector = typedef SmallVectorImpl<BasicBlockInfo> |
Definition at line 25 of file ARMBasicBlockInfo.h.
using llvm::BBOrMBB = typedef PointerUnion<const BasicBlock *, MachineBasicBlock *> |
Definition at line 30 of file WasmEHFuncInfo.h.
using llvm::BBSideEffectsSet = typedef DenseMap<const BasicBlock *, bool> |
Definition at line 112 of file GVNHoist.cpp.
using llvm::bf_iterator_default_set = typedef SmallPtrSet<NodeRef, SmallSize> |
Definition at line 40 of file BreadthFirstIterator.h.
using llvm::BFIDOTGTraitsBase = typedef BFIDOTGraphTraitsBase<BlockFrequencyInfo, BranchProbabilityInfo> |
Definition at line 123 of file BlockFrequencyInfo.cpp.
Type of functions evaluating a given binary operation.
Definition at line 299 of file FileCheckImpl.h.
using llvm::BLAKE3Result = typedef 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.
using llvm::BlockIdMap = typedef std::unordered_map<BasicBlock *, uint32_t> |
Definition at line 35 of file SampleProfileProbe.h.
using llvm::BlockSequence = typedef SmallVector<BasicBlock *, 0> |
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.
typedef unsigned char llvm::Boolean |
Definition at line 131 of file ConvertUTF.h.
using llvm::BuildFnTy = typedef std::function<void(MachineIRBuilder &)> |
Definition at line 83 of file CombinerHelper.h.
The standard BumpPtrAllocator which just uses the default template parameters.
Definition at line 382 of file Allocator.h.
using llvm::BumpPtrList = typedef AllocatorList<T, BumpPtrAllocator> |
Definition at line 228 of file AllocatorList.h.
using llvm::CacheCostTy = typedef InstructionCost |
Definition at line 35 of file LoopCacheAnalysis.h.
using llvm::CapabilityList = typedef SmallVector<SPIRV::Capability::Capability, 8> |
Definition at line 227 of file SPIRVBaseInfo.h.
typedef bool llvm::CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State) |
CCAssignFn - This function assigns a location for Val, updating State to reflect the change.
It returns 'true' if it failed to handle Val.
Definition at line 156 of file CallingConvLower.h.
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 163 of file CallingConvLower.h.
using llvm::CFGUpdate = typedef cfg::Update<BasicBlock *> |
Definition at line 52 of file MemorySSAUpdater.h.
using llvm::CGSCCAnalysisManager = typedef AnalysisManager<LazyCallGraph::SCC, LazyCallGraph &> |
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 121 of file CGSCCPassManager.h.
using llvm::CGSCCAnalysisManagerFunctionProxy = typedef OuterAnalysisManagerProxy<CGSCCAnalysisManager, Function> |
A proxy from a CGSCCAnalysisManager
to a Function
.
Definition at line 410 of file CGSCCPassManager.h.
using llvm::CGSCCAnalysisManagerModuleProxy = typedef InnerAnalysisManagerProxy<CGSCCAnalysisManager, Module> |
A proxy from a CGSCCAnalysisManager
to a Module
.
Definition at line 166 of file CGSCCPassManager.h.
using llvm::CGSCCPassManager = typedef PassManager<LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult &> |
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 141 of file CGSCCPassManager.h.
using llvm::CHIArgs = typedef iterator_range<CHIIt> |
Definition at line 151 of file GVNHoist.cpp.
using llvm::CHIIt = typedef SmallVectorImpl<CHIArg>::iterator |
Definition at line 150 of file GVNHoist.cpp.
typedef TinyPtrVector<BasicBlock *> llvm::ColorVector |
Definition at line 109 of file EHPersonalities.h.
using llvm::common_sint = typedef std::common_type_t<std::make_signed_t<T>, std::make_signed_t<U> > |
Definition at line 40 of file MathExtras.h.
using llvm::common_uint = typedef std::common_type_t<std::make_unsigned_t<T>, std::make_unsigned_t<U> > |
Definition at line 37 of file MathExtras.h.
using llvm::const_gvsummary_iterator = typedef GlobalValueSummaryMapTy::const_iterator |
Type used for iterating through the global value summary map.
Definition at line 1296 of file ModuleSummaryIndex.h.
using llvm::const_inst_iterator = typedef InstIterator<const SymbolTableList<BasicBlock>, Function::const_iterator, BasicBlock::const_iterator, const Instruction> |
Definition at line 122 of file InstIterator.h.
using llvm::const_inst_range = typedef iterator_range<const_inst_iterator> |
Definition at line 127 of file InstIterator.h.
using llvm::const_memoryaccess_def_iterator = typedef memoryaccess_def_iterator_base<const MemoryAccess> |
Definition at line 134 of file MemorySSA.h.
using llvm::const_pred_iterator = typedef PredIterator<const BasicBlock, Value::const_user_iterator> |
using llvm::const_pred_range = typedef iterator_range<const_pred_iterator> |
using llvm::const_succ_iterator = typedef SuccIterator<const Instruction, const BasicBlock> |
using llvm::const_succ_range = typedef iterator_range<const_succ_iterator> |
using llvm::ConstMap = typedef DenseMap<Value *, Constant *> |
Definition at line 105 of file FunctionSpecialization.h.
using llvm::ConstMemoryAccessPair = typedef std::pair<const MemoryAccess *, MemoryLocation> |
Definition at line 1117 of file MemorySSA.h.
using llvm::ConstOperandBundleDef = typedef OperandBundleDefT<const Value *> |
Definition at line 1092 of file InstrTypes.h.
using llvm::ConvergenceVerifier = typedef GenericConvergenceVerifier<SSAContext> |
Definition at line 23 of file ConvergenceVerifier.h.
using llvm::Cost = typedef InstructionCost |
Definition at line 102 of file FunctionSpecialization.h.
using llvm::CostTblEntry = typedef CostTblEntryT<unsigned> |
Definition at line 30 of file CostTable.h.
using llvm::CreateCmpXchgInstFun = typedef function_ref<void( IRBuilderBase &, Value *, Value *, Value *, Align, AtomicOrdering, SyncScope::ID, Value *&, Value *&, Instruction *)> |
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.
using llvm::CtxProfFlatProfile = typedef std::map<GlobalValue::GUID, SmallVector<uint64_t, 1> > |
Definition at line 27 of file CtxProfAnalysis.h.
using llvm::Cycle = typedef CycleInfo::CycleT |
Definition at line 24 of file CycleInfo.h.
using llvm::CycleInfo = typedef GenericCycleInfo<SSAContext> |
Definition at line 23 of file CycleInfo.h.
typedef std::function<std::optional<std::string>(StringRef, StringRef)> llvm::DataLayoutCallbackFuncTy |
Definition at line 45 of file BitcodeReader.h.
typedef llvm::function_ref< std::optional< std::string >(StringRef, StringRef)> llvm::DataLayoutCallbackTy |
using llvm::DbgInstPtr = typedef PointerUnion<Instruction *, DbgRecord *> |
Definition at line 43 of file DIBuilder.h.
using llvm::DbgRecordIterator = typedef simple_ilist<DbgRecord>::iterator |
Definition at line 37 of file ValueMapper.h.
using llvm::DDGBase = typedef DirectedGraph<DDGNode, DDGEdge> |
using llvm::DDGDotGraphTraits = typedef DOTGraphTraits<const DataDependenceGraph *> |
Definition at line 89 of file DDGPrinter.h.
using llvm::DDGInfo = typedef DependenceGraphInfo<DDGNode> |
using llvm::DefaultThreadPool = typedef SingleThreadExecutor |
Definition at line 257 of file ThreadPool.h.
typedef Op::Description llvm::Desc |
Definition at line 23 of file DWARFExpression.cpp.
using llvm::DiagnosticHandlerFunction = typedef std::function<void(const DiagnosticInfo &)> |
Definition at line 138 of file DiagnosticInfo.h.
using llvm::DILineInfoTable = typedef SmallVector<std::pair<uint64_t, DILineInfo>, 16> |
Definition at line 91 of file DIContext.h.
using llvm::DomTreeBase = typedef DominatorTreeBase<T, false> |
Definition at line 1020 of file GenericDomTree.h.
typedef DomTreeNodeBase< BasicBlock > llvm::DomTreeNode |
Definition at line 92 of file Dominators.h.
using llvm::DWARFAddressRangesVector = typedef std::vector<DWARFAddressRange> |
DWARFAddressRangesVector - represents a set of absolute address ranges.
Definition at line 88 of file DWARFAddressRange.h.
using llvm::DWARFLocationExpressionsVector = typedef std::vector<DWARFLocationExpression> |
Represents a set of absolute location expressions.
Definition at line 44 of file DWARFLocationExpression.h.
using llvm::enableif_int = typedef 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.
using llvm::EnableIfConvertibleToInputIterator = typedef std::enable_if_t<std::is_convertible< typename std::iterator_traits<Iterator>::iterator_category, std::input_iterator_tag>::value> |
Definition at line 40 of file SmallVector.h.
typedef MCSymbol * llvm::ExceptionSymbolProvider(AsmPrinter *Asm, const MachineBasicBlock *MBB) |
Definition at line 28 of file AsmPrinterHandler.h.
using llvm::ExtensionList = typedef SmallVector<SPIRV::Extension::Extension, 8> |
Definition at line 228 of file SPIRVBaseInfo.h.
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.
using llvm::FileCacheFunction = typedef std::function<Expected<AddStreamFn>( unsigned Task, StringRef Key, const Twine &ModuleName)> |
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.
using llvm::filter_iterator = typedef filter_iterator_impl< WrappedIteratorT, PredicateT, typename detail::fwd_or_bidi_tag<WrappedIteratorT>::type> |
Defines filter_iterator to a suitable specialization of filter_iterator_impl, based on the underlying iterator's category.
Definition at line 560 of file STLExtras.h.
using llvm::FoldingSetNode = typedef FoldingSetBase::Node |
Definition at line 409 of file FoldingSet.h.
using llvm::ForwardIDFCalculator = typedef IDFCalculator<false> |
Definition at line 55 of file IteratedDominanceFrontier.h.
using llvm::FuncProbeFactorMap = typedef StringMap<ProbeFactorMap> |
Definition at line 41 of file SampleProfileProbe.h.
using llvm::FunctionAnalysisManager = typedef AnalysisManager<Function> |
Convenience typedef for the Function analysis manager.
Definition at line 546 of file PassManager.h.
typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop, LoopStandardAnalysisResults &> llvm::FunctionAnalysisManagerLoopProxy |
A proxy from a FunctionAnalysisManager
to a Loop
.
Definition at line 158 of file LoopAnalysisManager.h.
using llvm::FunctionAnalysisManagerModuleProxy = typedef InnerAnalysisManagerProxy<FunctionAnalysisManager, Module> |
Provide the FunctionAnalysisManager
to Module
proxy.
Definition at line 647 of file PassManager.h.
using llvm::FunctionCreator = typedef std::function<void *(const std::string &)> |
Definition at line 94 of file ExecutionEngine.h.
using llvm::FunctionModRefBehavior = typedef MemoryEffects |
using llvm::FunctionPassManager = typedef PassManager<Function> |
Convenience typedef for a pass manager over functions.
Definition at line 246 of file PassManager.h.
using llvm::FuzzerInitFun = typedef int (*)(int *argc, char ***argv) |
Definition at line 45 of file FuzzerCLI.h.
using llvm::FuzzerTestFun = typedef int (*)(const uint8_t *Data, size_t Size) |
Definition at line 44 of file FuzzerCLI.h.
using llvm::GCMetadataPrinterRegistry = typedef Registry<GCMetadataPrinter> |
GCMetadataPrinterRegistry - The GC assembly printer registry uses all the defaults from Registry.
Definition at line 35 of file GCMetadataPrinter.h.
using llvm::GCRegistry = typedef Registry<GCStrategy> |
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 142 of file GCStrategy.h.
Definition at line 171 of file GetElementPtrTypeIterator.h.
typedef std::function< unsigned(unsigned, unsigned)> llvm::GetContainedTypeIDTy |
Definition at line 49 of file BitcodeReader.h.
typedef std::function< Type *(unsigned)> llvm::GetTypeByIDTy |
Definition at line 47 of file BitcodeReader.h.
using llvm::GlobalCtorTransformFn = typedef 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
.
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 52 of file ModuleUtils.h.
using llvm::GlobalValueSummaryList = typedef std::vector<std::unique_ptr<GlobalValueSummary> > |
Definition at line 136 of file ModuleSummaryIndex.h.
using llvm::GlobalValueSummaryMapTy = typedef 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 175 of file ModuleSummaryIndex.h.
using llvm::gvsummary_iterator = typedef GlobalValueSummaryMapTy::iterator |
Definition at line 1297 of file ModuleSummaryIndex.h.
using llvm::GVSummaryMapTy = typedef 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.
Definition at line 1305 of file ModuleSummaryIndex.h.
using llvm::GVSummaryPtrSet = typedef std::unordered_set<GlobalValueSummary *> |
A set of global value summary pointers.
Definition at line 1313 of file ModuleSummaryIndex.h.
using llvm::HashNodeIdMapTy = typedef DenseMap<const HashNode *, unsigned> |
Definition at line 33 of file OutlinedHashTreeRecord.h.
using llvm::HoistingPointInfo = typedef std::pair<BasicBlock *, SmallVecInsn> |
Definition at line 118 of file GVNHoist.cpp.
using llvm::HoistingPointList = typedef SmallVector<HoistingPointInfo, 4> |
Definition at line 120 of file GVNHoist.cpp.
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.
typedef std::function<void(HTTPServerRequest &)> llvm::HTTPRequestHandler |
Definition at line 74 of file HTTPServer.h.
using llvm::IdHashNodeMapTy = typedef DenseMap<unsigned, HashNode *> |
Definition at line 32 of file OutlinedHashTreeRecord.h.
using llvm::IdHashNodeStableMapTy = typedef std::map<unsigned, HashNodeStable> |
Definition at line 31 of file OutlinedHashTreeRecord.h.
using llvm::IdxMBBPair = typedef std::pair<SlotIndex, MachineBasicBlock *> |
Definition at line 292 of file SlotIndexes.h.
using llvm::IgnoreOperandFunc = typedef 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.
Definition at line 54 of file StructuralHash.h.
using llvm::ilist = typedef iplist<T, Options...> |
using llvm::IndexInstrMap = typedef MapVector<unsigned, Instruction *> |
A map from an instruction index to an instruction pointer.
Definition at line 47 of file StructuralHash.h.
using llvm::IndexOperandHashMapType = typedef DenseMap<IndexPair, stable_hash> |
A map from an IndexPair to a stable hash.
Definition at line 50 of file StructuralHash.h.
using llvm::IndexOperandHashVecType = typedef SmallVector<IndexPairHash> |
Definition at line 26 of file StableFunctionMap.h.
using llvm::IndexPair = typedef std::pair<unsigned, unsigned> |
The pair of an instruction index and a operand index.
Definition at line 44 of file StructuralHash.h.
using llvm::IndexPairHash = typedef std::pair<IndexPair, stable_hash> |
Definition at line 25 of file StableFunctionMap.h.
using llvm::InlineCostFeatures = typedef std::array<int, static_cast<size_t>(InlineCostFeatureIndex::NumberOfFeatures)> |
Definition at line 78 of file InlineModelFeatureMaps.h.
using llvm::InlineFeatures = typedef std::vector<int64_t> |
Definition at line 164 of file InlineModelFeatureMaps.h.
using llvm::InlineSite = typedef std::tuple<uint64_t, uint32_t> |
Definition at line 101 of file MCPseudoProbe.h.
using llvm::InsnRange = typedef std::pair<const MachineInstr *, const MachineInstr *> |
InsnRange - This is used to track range of instructions with identical lexical scope.
Definition at line 39 of file LexicalScopes.h.
using llvm::inst_iterator = typedef InstIterator<SymbolTableList<BasicBlock>, Function::iterator, BasicBlock::iterator, Instruction> |
Definition at line 119 of file InstIterator.h.
using llvm::inst_range = typedef iterator_range<inst_iterator> |
Definition at line 126 of file InstIterator.h.
using llvm::InstrGRegsMap = typedef std::map<SmallVector<size_t>, unsigned> |
Definition at line 209 of file SPIRVModuleAnalysis.h.
using llvm::InstrSignature = typedef SmallVector<size_t> |
Definition at line 207 of file SPIRVModuleAnalysis.h.
using llvm::InstrTraces = typedef std::set<InstrSignature> |
Definition at line 208 of file SPIRVModuleAnalysis.h.
using llvm::InstructionIdMap = typedef std::unordered_map<Instruction *, uint32_t> |
Definition at line 36 of file SampleProfileProbe.h.
using llvm::InstructionVFPair = typedef std::pair<Instruction *, ElementCount> |
Definition at line 957 of file LoopVectorize.cpp.
using llvm::InValuesType = typedef DenseMap<BasicBlock *, SmallVector<std::pair<VNType, Instruction *>, 2> > |
Definition at line 153 of file GVNHoist.cpp.
using llvm::is_detected = typedef 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 79 of file STLExtras.h.
using llvm::is_one_of = typedef 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 129 of file STLExtras.h.
using llvm::JITTargetAddress = typedef uint64_t |
Represents an address in the target process's address space.
Definition at line 42 of file JITSymbol.h.
using llvm::LargestSDNode = typedef AlignedCharArrayUnion<AtomicSDNode, TargetIndexSDNode, BlockAddressSDNode, GlobalAddressSDNode, PseudoProbeSDNode> |
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 3197 of file SelectionDAGNodes.h.
using llvm::LegalityPredicate = typedef std::function<bool (const LegalityQuery &)> |
Definition at line 200 of file LegalizerInfo.h.
using llvm::LegalizeMutation = typedef std::function<std::pair<unsigned, LLT>(const LegalityQuery &)> |
Definition at line 201 of file LegalizerInfo.h.
using llvm::LiveVirtRegBitSet = typedef SparseBitVector<128> |
Definition at line 35 of file LiveIntervalUnion.h.
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 77 of file LoopAnalysisManager.h.
typedef InnerAnalysisManagerProxy<LoopAnalysisManager, Function> llvm::LoopAnalysisManagerFunctionProxy |
A proxy from a LoopAnalysisManager
to a Function
.
Definition at line 81 of file LoopAnalysisManager.h.
typedef PassManager<Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &> llvm::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 184 of file LoopPassManager.h.
Definition at line 925 of file ScalarEvolutionExpressions.h.
typedef SmallVector< Loop *, 8 > llvm::LoopVectorTy |
Definition at line 36 of file LoopCacheAnalysis.h.
using llvm::MachineBasicBlockComparator = typedef function_ref<bool(const MachineBasicBlock &, const MachineBasicBlock &)> |
Definition at line 22 of file BasicBlockSectionUtils.h.
using llvm::MachineConvergenceVerifier = typedef GenericConvergenceVerifier<MachineSSAContext> |
Definition at line 23 of file MachineConvergenceVerifier.h.
using llvm::MachineCycle = typedef MachineCycleInfo::CycleT |
Definition at line 24 of file MachineCycleAnalysis.h.
using llvm::MachineCycleInfo = typedef GenericCycleInfo<MachineSSAContext> |
Definition at line 23 of file MachineCycleAnalysis.h.
Definition at line 26 of file LiveIntervalCalc.h.
Definition at line 48 of file MachineBasicBlock.h.
using llvm::MachineFunctionAnalysisManagerFunctionProxy = typedef InnerAnalysisManagerProxy<MachineFunctionAnalysisManager, Function> |
Definition at line 115 of file MachinePassManager.h.
using llvm::MachineFunctionAnalysisManagerModuleProxy = typedef InnerAnalysisManagerProxy<MachineFunctionAnalysisManager, Module> |
Definition at line 106 of file MachinePassManager.h.
using llvm::MachineFunctionPassManager = typedef PassManager<MachineFunction> |
Convenience typedef for a pass manager over functions.
Definition at line 233 of file MachinePassManager.h.
using llvm::MachineSSAContext = typedef GenericSSAContext<MachineFunction> |
Definition at line 38 of file MachineSSAContext.h.
using llvm::MachineUniformityInfo = typedef GenericUniformityInfo<MachineSSAContext> |
Definition at line 25 of file MachineUniformityAnalysis.h.
using llvm::MacroFusionPredTy = typedef bool (*)(const TargetInstrInfo &TII, const TargetSubtargetInfo &STI, const MachineInstr *FirstMI, const MachineInstr &SecondMI) |
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 32 of file MacroFusion.h.
using llvm::MBBOrBasicBlock = typedef PointerUnion<const BasicBlock *, MachineBasicBlock *> |
Definition at line 38 of file WinEHFuncInfo.h.
using llvm::MBFIDOTGraphTraitsBase = typedef BFIDOTGraphTraitsBase<MachineBlockFrequencyInfo, MachineBranchProbabilityInfo> |
Definition at line 114 of file MachineBlockFrequencyInfo.cpp.
typedef std::vector<MCAsmMacroParameter> llvm::MCAsmMacroParameters |
Definition at line 141 of file MCAsmMacro.h.
using llvm::MCLOHArgs = typedef MCLOHDirective::LOHArgs |
Definition at line 183 of file MCLinkerOptimizationHint.h.
using llvm::MCLOHDirectives = typedef MCLOHContainer::LOHDirectives |
Definition at line 184 of file MCLinkerOptimizationHint.h.
using llvm::MCPhysReg = typedef uint16_t |
An unsigned integer type large enough to represent all physical registers, but not necessarily virtual registers.
Definition at line 21 of file MCRegister.h.
using llvm::MCPseudoProbeFrameLocation = typedef std::pair<StringRef, uint32_t> |
Definition at line 185 of file MCPseudoProbe.h.
using llvm::MCPseudoProbeInlineStack = typedef SmallVector<InlineSite, 8> |
Definition at line 102 of file MCPseudoProbe.h.
using llvm::MCRegUnit = typedef unsigned |
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.
using llvm::MCSectionSubPair = typedef std::pair<MCSection *, uint32_t> |
Definition at line 67 of file MCStreamer.h.
using llvm::MCSymbolTableEntry = typedef StringMapEntry<MCSymbolTableValue> |
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.
typedef std::function< void(Metadata **, unsigned, GetTypeByIDTy, GetContainedTypeIDTy)> llvm::MDTypeCallbackTy |
Definition at line 57 of file BitcodeReader.h.
using llvm::memoryaccess_def_iterator = typedef memoryaccess_def_iterator_base<MemoryAccess> |
Definition at line 133 of file MemorySSA.h.
using llvm::MemoryAccessPair = typedef std::pair<MemoryAccess *, MemoryLocation> |
Definition at line 1116 of file MemorySSA.h.
using llvm::MemoryEffects = typedef MemoryEffectsBase<IRMemLocation> |
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.
using llvm::MemProfCallStackHashTable = typedef OnDiskIterableChainedHashTable<memprof::CallStackLookupTrait> |
Definition at line 596 of file InstrProfReader.h.
using llvm::MemProfFrameHashTable = typedef OnDiskIterableChainedHashTable<memprof::FrameLookupTrait> |
Definition at line 594 of file InstrProfReader.h.
using llvm::MemProfRecordHashTable = typedef OnDiskIterableChainedHashTable<memprof::RecordLookupTrait> |
Definition at line 592 of file InstrProfReader.h.
typedef AnalysisManager< Module > llvm::ModuleAnalysisManager |
Convenience typedef for the Module analysis manager.
Definition at line 38 of file MIRParser.h.
using llvm::ModuleAnalysisManagerCGSCCProxy = typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, LazyCallGraph::SCC, LazyCallGraph &> |
A proxy from a ModuleAnalysisManager
to an SCC
.
Definition at line 212 of file CGSCCPassManager.h.
using llvm::ModuleAnalysisManagerFunctionProxy = typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, Function> |
Provide the ModuleAnalysisManager
to Function
proxy.
Definition at line 801 of file PassManager.h.
using llvm::ModuleAnalysisManagerMachineFunctionProxy = typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, MachineFunction> |
Provide the ModuleAnalysisManager
to Function
proxy.
Definition at line 128 of file MachinePassManager.h.
using llvm::ModuleHash = typedef std::array<uint32_t, 5> |
160 bits SHA1
Definition at line 1293 of file ModuleSummaryIndex.h.
typedef PassManager< Module > llvm::ModulePassManager |
Convenience typedef for a pass manager over modules.
Definition at line 237 of file PassManager.h.
using llvm::ModulePathStringTableTy = typedef StringMap<ModuleHash> |
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 1301 of file ModuleSummaryIndex.h.
using llvm::ModuleToSummariesForIndexTy = typedef 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 1309 of file ModuleSummaryIndex.h.
using llvm::MostAlignedSDNode = typedef GlobalAddressSDNode |
The SDNode class with the greatest alignment requirement.
Definition at line 3203 of file SelectionDAGNodes.h.
using llvm::Name2RegBankMap = typedef StringMap<const RegisterBank *> |
Definition at line 52 of file MIParser.h.
using llvm::Name2RegClassMap = typedef StringMap<const TargetRegisterClass *> |
Definition at line 51 of file MIParser.h.
using llvm::NewLoopsMap = typedef SmallDenseMap<const Loop *, Loop *, 4> |
Definition at line 40 of file UnrollLoop.h.
using llvm::NfaPath = typedef SmallVector<uint64_t, 4> |
Definition at line 39 of file Automaton.h.
typedef function_ref<bool(const SCEVAddRecExpr *)> llvm::NormalizePredTy |
Definition at line 50 of file ScalarEvolutionNormalization.h.
using llvm::OffsetsStringPool = typedef StrongType<NonRelocatableStringpool, OffsetsTag> |
Definition at line 74 of file NonRelocatableStringpool.h.
Definition at line 589 of file InstrProfReader.h.
typedef DWARFExpression::Operation llvm::Op |
Definition at line 22 of file DWARFExpression.cpp.
using llvm::OperandBuildSteps = typedef SmallVector<std::function<void(MachineInstrBuilder &)>, 4> |
Definition at line 85 of file CombinerHelper.h.
typedef OperandBundleDefT< Value * > llvm::OperandBundleDef |
Definition at line 33 of file AutoUpgrade.h.
using llvm::OperandVector = typedef SmallVectorImpl<std::unique_ptr<MCParsedAsmOperand> > |
Definition at line 33 of file MCTargetAsmParser.h.
using llvm::OutValuesType = typedef DenseMap<BasicBlock *, SmallVector<CHIArg, 2> > |
Definition at line 152 of file GVNHoist.cpp.
using llvm::ParamLoadedValue = typedef std::pair<MachineOperand, DIExpression*> |
Definition at line 71 of file TargetInstrInfo.h.
using llvm::ParamLocs = typedef SmallVector<IndexPair, 4> |
Definition at line 43 of file GlobalMergeFunctions.h.
using llvm::ParamLocsVecTy = typedef SmallVector<ParamLocs, 8> |
Definition at line 45 of file GlobalMergeFunctions.h.
using llvm::ParamSet = typedef SmallVector<DbgCallSiteParam, 4> |
Collection used for storing debug call site parameters.
Definition at line 332 of file DwarfDebug.h.
using llvm::PBQPRAGraph = typedef PBQP::RegAlloc::PBQPRAGraph |
Definition at line 33 of file PBQPRAConstraint.h.
using llvm::PhiToDefMap = typedef SmallDenseMap<MemoryPhi *, MemoryAccess *> |
Definition at line 51 of file MemorySSAUpdater.h.
using llvm::PointerTy = typedef void * |
Definition at line 21 of file GenericValue.h.
using llvm::PointTypeIsValid = typedef std::bool_constant<std::is_fundamental<T>::value> |
Definition at line 240 of file IntervalTree.h.
using llvm::PostDomTreeBase = typedef DominatorTreeBase<T, true> |
Definition at line 1023 of file GenericDomTree.h.
typedef SmallPtrSet<const Loop *, 2> llvm::PostIncLoopSet |
Definition at line 48 of file ScalarEvolutionNormalization.h.
using llvm::PotentialConstantIntValuesState = typedef PotentialValuesState<APInt> |
Definition at line 5229 of file Attributor.h.
using llvm::PotentialLLVMValuesState = typedef PotentialValuesState<std::pair<AA::ValueAndContext, AA::ValueScope> > |
Definition at line 5230 of file Attributor.h.
using llvm::pred_iterator = typedef PredIterator<BasicBlock, Value::user_iterator> |
using llvm::pred_range = typedef iterator_range<pred_iterator> |
using llvm::ProbeFactorMap = typedef std::unordered_map<std::pair<uint64_t, uint64_t>, float, pair_hash<uint64_t, uint64_t> > |
Definition at line 39 of file SampleProfileProbe.h.
using llvm::ProfileCount = typedef Function::ProfileCount |
Definition at line 50 of file SampleProfileLoaderBaseImpl.h.
using llvm::RandomEngine = typedef std::mt19937 |
Definition at line 35 of file RandomIRBuilder.h.
using llvm::raw_pointer_iterator = typedef pointer_iterator<pointee_iterator<WrappedIteratorT, T1>, T2> |
Definition at line 373 of file iterator.h.
using llvm::RawInstrProfReader32 = typedef RawInstrProfReader<uint32_t> |
Definition at line 501 of file InstrProfReader.h.
using llvm::RawInstrProfReader64 = typedef RawInstrProfReader<uint64_t> |
Definition at line 502 of file InstrProfReader.h.
using llvm::ReferenceGroupsTy = typedef SmallVector<ReferenceGroupTy, 8> |
Definition at line 173 of file LoopCacheAnalysis.h.
using llvm::ReferenceGroupTy = typedef 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:
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.
typedef std::function<bool(const TargetRegisterInfo &TRI, const MachineRegisterInfo &MRI, const Register Reg)> llvm::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.
using llvm::RegClassOrRegBank = typedef PointerUnion<const TargetRegisterClass *, const RegisterBank *> |
Convenient type to represent either a register class or a register bank.
Definition at line 45 of file MachineRegisterInfo.h.
using llvm::RegUnit2SUnitsMap = typedef SparseMultiSet<PhysRegSUOper, identity<unsigned>, uint16_t> |
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 91 of file ScheduleDAGInstrs.h.
using llvm::RelocAddrMap = typedef DenseMap<uint64_t, RelocAddrEntry> |
In place of applying the relocations to the data we've read from disk we use a separate mapping table to the side and checking that at locations in the dwarf where we expect relocated values.
This adds a bit of complexity to the dwarf parsing/extraction at the benefit of not allocating memory for the entire size of the debug info sections.
Definition at line 35 of file DWARFRelocMap.h.
using llvm::remove_cvref_t = typedef typename llvm::remove_cvref<T>::type |
Definition at line 36 of file STLForwardCompat.h.
using llvm::RequireAnalysisLoopPass = typedef RequireAnalysisPass<AnalysisT, Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &> |
An alias template to easily name a require analysis loop pass.
Definition at line 210 of file LoopPassManager.h.
using llvm::RetainedKnowledgeKey = typedef std::pair<Value *, Attribute::AttrKind> |
using llvm::RetainedKnowledgeMap = typedef DenseMap<RetainedKnowledgeKey, Assume2KnowledgeMap> |
Definition at line 81 of file AssumeBundleQueries.h.
using llvm::ReverseIDFCalculator = typedef IDFCalculator<true> |
Definition at line 56 of file IteratedDominanceFrontier.h.
typedef bool llvm::RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, 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.
Definition at line 237 of file RuntimeDyldImpl.h.
typedef std::pair< const RuntimeCheckingPtrGroup *, const RuntimeCheckingPtrGroup * > llvm::RuntimePointerCheck |
A memcheck which made up of a pair of grouped pointers.
Definition at line 441 of file LoopAccessAnalysis.h.
Definition at line 182 of file WindowsSupport.h.
Definition at line 184 of file WindowsSupport.h.
Definition at line 183 of file WindowsSupport.h.
Definition at line 186 of file WindowsSupport.h.
Definition at line 187 of file WindowsSupport.h.
typedef ScopedHandle<RegTraits> llvm::ScopedRegHandle |
Definition at line 185 of file WindowsSupport.h.
using llvm::SectionAddrMap = typedef DenseMap<const MCSection *, uint64_t> |
using llvm::SectionSymbolsTy = typedef std::vector<SymbolInfoTy> |
Definition at line 74 of file MCDisassembler.h.
using llvm::SmallInstListTy = typedef GISelWorkList<4> |
using llvm::SmallVecImplInsn = typedef SmallVectorImpl<Instruction *> |
Definition at line 114 of file GVNHoist.cpp.
using llvm::SmallVecInsn = typedef SmallVector<Instruction *, 4> |
Definition at line 113 of file GVNHoist.cpp.
using llvm::SmallVectorSizeType = typedef std::conditional_t<sizeof(T) < 4 && sizeof(void *) >= 8, uint64_t, uint32_t> |
Definition at line 105 of file SmallVector.h.
using llvm::SmallVirtRegSet = typedef SmallSet<Register, 16> |
Definition at line 31 of file RegAllocEvictionAdvisor.h.
using llvm::SMTExprRef = typedef const SMTExpr * |
using llvm::SMTSolverRef = typedef std::shared_ptr<SMTSolver> |
using llvm::SMTSortRef = typedef const SMTSort * |
using llvm::SpecMap = typedef DenseMap<Function *, std::pair<unsigned, unsigned> > |
Definition at line 99 of file FunctionSpecialization.h.
using llvm::SPIRVType = typedef const MachineInstr |
Definition at line 28 of file SPIRVGlobalRegistry.h.
typedef GenericSSAContext< Function > llvm::SSAContext |
Definition at line 49 of file FunctionLoweringInfo.h.
using llvm::stable_hash = typedef uint64_t |
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.
using llvm::stack_float_t = typedef 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 788 of file MathExtras.h.
using llvm::Statistic = typedef NoopStatistic |
Definition at line 161 of file Statistic.h.
using llvm::succ_iterator = typedef SuccIterator<Instruction, BasicBlock> |
using llvm::succ_range = typedef iterator_range<succ_iterator> |
using llvm::SummaryEntryVector = typedef std::vector<ProfileSummaryEntry> |
Definition at line 43 of file ProfileSummary.h.
using llvm::TableGenMainFn = typedef bool(raw_ostream &OS, const RecordKeeper &Records) |
using llvm::TagNameMap = typedef ArrayRef<TagNameItem> |
Definition at line 23 of file ELFAttributes.h.
typedef uint8_t llvm::TargetFlagsType |
Holds target-specific properties for a symbol.
Definition at line 35 of file RuntimeDyldChecker.h.
using llvm::TrackingMDNodeRef = typedef TypedTrackingMDRef<MDNode> |
Definition at line 141 of file TrackingMDRef.h.
using llvm::TrackingValueAsMetadataRef = typedef TypedTrackingMDRef<ValueAsMetadata> |
Definition at line 142 of file TrackingMDRef.h.
typedef TargetTransformInfo llvm::TTI |
Definition at line 208 of file TargetTransformInfo.h.
using llvm::TUVectorTy = typedef SmallVector<TypeUnitMetaInfo, 1> |
Definition at line 399 of file AccelTable.h.
using llvm::TypeAtIndex = typedef 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 179 of file STLExtras.h.
using llvm::TypeConversionCostTblEntry = typedef TypeConversionCostTblEntryT<unsigned> |
Definition at line 61 of file CostTable.h.
using llvm::TypeGetter = typedef std::function<Type *(LLVMContext &)> |
Definition at line 60 of file IRMutator.h.
using llvm::TypeIdCompatibleVtableInfo = typedef std::vector<TypeIdOffsetVtableInfo> |
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 1341 of file ModuleSummaryIndex.h.
using llvm::TypeIdSummaryMapTy = typedef 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 1317 of file ModuleSummaryIndex.h.
using llvm::uint24_t = typedef Uint24 |
Definition at line 33 of file DataExtractor.h.
using llvm::UnderlyingObjectsVector = typedef SmallVector<UnderlyingObject, 4> |
Definition at line 112 of file ScheduleDAGInstrs.h.
typedef GenericUniformityInfo< SSAContext > llvm::UniformityInfo |
Definition at line 25 of file UniformityAnalysis.h.
using llvm::unique_value = typedef std::unique_ptr<Value, ValueDeleter> |
Use this instead of std::unique_ptr<Value> or std::unique_ptr<Instruction>.
Those don't work because Value and Instruction's destructors are protected, aren't virtual, and won't destroy the complete object.
using llvm::UniquingStringPool = typedef StrongType<NonRelocatableStringpool, UniqueTag> |
Definition at line 73 of file NonRelocatableStringpool.h.
using llvm::UseListOrderStack = typedef std::vector<UseListOrder> |
Definition at line 39 of file UseListOrder.h.
typedef unsigned short llvm::UTF16 |
Definition at line 129 of file ConvertUTF.h.
typedef unsigned int llvm::UTF32 |
Definition at line 128 of file ConvertUTF.h.
typedef unsigned char llvm::UTF8 |
Definition at line 130 of file ConvertUTF.h.
typedef DenseMap<Value *, VPValue *> llvm::Value2VPValueTy |
Definition at line 199 of file VPlanValue.h.
using llvm::ValueName = typedef StringMapEntry<Value *> |
typedef std::vector<GenericValue> llvm::ValuePlaneTy |
Definition at line 54 of file Interpreter.h.
Definition at line 899 of file ScalarEvolutionExpressions.h.
using llvm::ValueToValueMap = typedef DenseMap<const Value *, Value *> |
Definition at line 898 of file ScalarEvolutionExpressions.h.
typedef ValueMap< const Value *, WeakTrackingVH > llvm::ValueToValueMapTy |
Definition at line 50 of file MemorySSAUpdater.h.
using llvm::ValueType = typedef PointerUnion<const Value *, const PseudoSourceValue *> |
Definition at line 102 of file ScheduleDAGInstrs.h.
typedef std::function<void(Value *, unsigned, GetTypeByIDTy, GetContainedTypeIDTy)> llvm::ValueTypeCallbackTy |
Definition at line 53 of file BitcodeReader.h.
using llvm::ValueTypeFromRangeType = typedef std::remove_const_t<std::remove_reference_t<decltype(*std::begin( std::declval<RangeType &>()))> > |
Definition at line 1291 of file SmallVector.h.
using llvm::ValueTypeIsValid = typedef std::bool_constant<std::is_fundamental<T>::value || std::is_pointer<T>::value> |
Definition at line 243 of file IntervalTree.h.
using llvm::VarID = typedef 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 29 of file DroppedVariableStats.h.
using llvm::VNtoInsns = typedef DenseMap<VNType, SmallVector<Instruction *, 4> > |
Definition at line 125 of file GVNHoist.cpp.
using llvm::VNType = typedef std::pair<unsigned, uintptr_t> |
Definition at line 123 of file GVNHoist.cpp.
using llvm::VPDomTreeNode = typedef DomTreeNodeBase<VPBlockBase> |
Definition at line 47 of file VPlanDominatorTree.h.
using llvm::VPlanPtr = typedef std::unique_ptr<VPlan> |
typedef DenseMap<VPValue *, Value *> llvm::VPValue2ValueTy |
Definition at line 200 of file VPlanValue.h.
using llvm::VReg2SUnitMultiMap = typedef SparseMultiSet<VReg2SUnit, VirtReg2IndexFunctor> |
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 97 of file ScheduleDAGInstrs.h.
using llvm::VReg2SUnitOperIdxMultiMap = typedef SparseMultiSet<VReg2SUnitOperIdx, VirtReg2IndexFunctor> |
Definition at line 99 of file ScheduleDAGInstrs.h.
using llvm::VTableFuncList = typedef std::vector<VirtFuncOffset> |
List of functions referenced by a particular vtable definition.
Definition at line 1133 of file ModuleSummaryIndex.h.
anonymous enum |
Enumerator | |
---|---|
GICXXPred_Invalid | |
GICXXCustomAction_Invalid |
Definition at line 55 of file GIMatchTableExecutor.h.
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:
Design notes:
Enumerator | |
---|---|
GIM_Try | Begin a try-block to attempt a match and jump to OnFail if it is unsuccessful.
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.
|
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 | |
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.
|
GIM_CheckAPIntImmPredicate | Check an immediate predicate on the specified instruction via an APInt.
|
GIM_CheckAPFloatImmPredicate | Check a floating point immediate predicate on the specified instruction.
|
GIM_CheckImmOperandPredicate | Check an immediate 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.
|
GIM_CheckMemoryAddressSpace | Check the address space of the memory access for the given machine memory operand.
|
GIM_CheckMemoryAlignment | Check the minimum alignment of the memory access for the given machine memory operand.
|
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.
|
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).
|
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.
|
GIM_CheckIsSameOperandIgnoreCopies | |
GIM_CheckAllSameOperand | |
GIM_CheckAllSameOperandIgnoreCopies | |
GIM_CheckCanReplaceReg | Check we can replace all uses of a register with another.
|
GIM_MIFlags | Check that a matched instruction has, or doesn't have a MIFlag.
|
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.
|
GIR_BuildMI | Build a new instruction.
|
GIR_BuildRootMI | GIR_BuildMI but InsnID is omitted and defaults to zero. |
GIR_BuildConstant | Builds a constant and stores its result in a TempReg.
|
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.
|
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.
|
GIR_UnsetMIFlags | |
GIR_CopyMIFlags | Copy the MIFlags of a matched instruction into an output instruction. The flags are OR'd together.
|
GIR_AddTempRegister | Add a temporary register to the specified instruction.
|
GIR_AddSimpleTempRegister | Add a temporary register to the specified instruction without setting any flags.
|
GIR_AddTempSubRegister | Add a temporary register to the specified instruction.
|
GIR_AddImm | Add an immediate to the specified instruction.
|
GIR_AddImm8 | Add signed 8 bit immediate to the specified instruction.
|
GIR_AddCImm | Add an CImm to the specified instruction.
|
GIR_ComplexRenderer | Render complex operands to the specified instruction.
|
GIR_ComplexSubOperandRenderer | Render sub-operands of complex operands to the specified instruction.
|
GIR_ComplexSubOperandSubRegRenderer | Render subregisters of suboperands of complex operands to the specified instruction.
|
GIR_CustomRenderer | Render operands to the specified instruction using a custom function.
|
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).
|
GIR_CustomOperandRenderer | Render operands to the specified instruction using a custom function, reading from a specific operand.
|
GIR_CopyConstantAsSImm | Render a G_CONSTANT operator as a sign-extended immediate.
|
GIR_CopyFConstantAsFPImm | Render a G_FCONSTANT operator as a sign-extended immediate.
|
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.
|
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.
|
GIR_ReplaceReg | Replaces all references to a register from an instruction with another register from another instruction.
|
GIR_ReplaceRegWithTempReg | Replaces all references to a register with a temporary register.
|
GIR_Done | A successful emission. |
GIR_Coverage | Increment the rule coverage counter.
|
GIU_NumOpcodes | Keeping track of the number of the GI opcodes. Must be the last entry. |
Definition at line 80 of file GIMatchTableExecutor.h.
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 25 of file Demangle.h.
anonymous enum : unsigned |
Enumerator | |
---|---|
INVALID_MEMORYACCESS_ID |
Definition at line 126 of file MemorySSA.h.
anonymous enum |
Definition at line 13 of file X86FoldTablesUtils.h.
anonymous enum |
Enumerator | |
---|---|
kSanitizerStatKindBits |
Definition at line 22 of file SanitizerStats.h.
anonymous enum |
Enumerator | |
---|---|
SM_SentinelUndef | |
SM_SentinelZero |
Definition at line 28 of file X86ShuffleDecode.h.
anonymous enum : uintptr_t |
Enumerator | |
---|---|
InvalidVN |
Definition at line 158 of file GVNHoist.cpp.
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 657 of file AArch64InstrInfo.h.
Definition at line 37 of file AArch64InstrInfo.h.
|
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.
enum llvm::AccessField |
|
strong |
Enumerator | |
---|---|
Left | |
Center | |
Right |
Definition at line 17 of file FormatCommon.h.
|
strong |
Enumerator | |
---|---|
None | |
NotCold | |
Cold | |
Hot | |
All |
Definition at line 368 of file ModuleSummaryIndex.h.
|
strong |
Enumerator | |
---|---|
Unknown | |
Alloc | |
Realloc | |
Free | |
Uninitialized | |
Zeroed | |
Aligned |
Definition at line 49 of file Attributes.h.
enum llvm::AMDGPUDwarfFlavour : unsigned |
Enumerator | |
---|---|
Wave64 | |
Wave32 |
Definition at line 32 of file AMDGPUMCTargetDesc.h.
Enumerator | |
---|---|
None | |
DirectReg | |
ManagedRA |
Definition at line 26 of file X86MachineFunctionInfo.h.
|
strong |
Types of ASan module constructors supported.
Enumerator | |
---|---|
None | |
Global |
Definition at line 23 of file AddressSanitizerOptions.h.
|
strong |
Mode of ASan detect stack use after return.
Definition at line 29 of file AddressSanitizerOptions.h.
|
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.
enum llvm::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 35 of file MCTargetAsmParser.h.
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 28 of file AssumeBundleQueries.h.
|
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.
|
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.
Run options, used by the pass manager.
Enumerator | |
---|---|
NONE | |
MODULE | |
CGSCC | |
ALL |
Definition at line 6483 of file Attributor.h.
|
strong |
Enumerator | |
---|---|
All | |
List | |
Preset | |
None |
Definition at line 61 of file TargetOptions.h.
Enumerator | |
---|---|
BSF_None | |
BSF_Write | |
BSF_Append |
Definition at line 20 of file BinaryStream.h.
|
strong |
Enumerator | |
---|---|
CorruptedBitcode |
Definition at line 309 of file BitcodeReader.h.
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.
|
strong |
The type of CFI jumptable needed for a function.
Enumerator | |
---|---|
CFL_Definition | |
CFL_Declaration | |
CFL_WeakDeclaration |
Definition at line 33 of file TypeMetadataUtils.h.
|
strong |
Enumerator | |
---|---|
success | |
eof | |
bad_magic | |
bad_header | |
empty_cgdata | |
malformed | |
unsupported_version |
Definition at line 52 of file CodeGenData.h.
|
strong |
Enumerator | |
---|---|
Unknown | |
FunctionOutlinedHashTree | |
StableFunctionMergingMap |
Definition at line 41 of file CodeGenData.h.
enum llvm::CGDataMode |
Enumerator | |
---|---|
None | |
Read | |
Write |
Definition at line 105 of file CodeGenData.h.
enum llvm::CGDataSectKind |
Definition at line 32 of file CodeGenData.h.
|
strong |
Enumerator | |
---|---|
None | |
Verbose | |
Quiet | |
DiffVerbose | |
DiffQuiet | |
ColourDiffVerbose | |
ColourDiffQuiet | |
DotCfgVerbose | |
DotCfgQuiet |
Definition at line 18 of file PrintPasses.h.
|
strong |
|
strong |
|
strong |
Enumerator | |
---|---|
Catch | |
Finally | |
Fault | |
Filter |
Definition at line 79 of file WinEHFuncInfo.h.
|
strong |
|
strong |
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 123 of file TargetOptions.h.
|
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.
enum llvm::CombineLevel |
Enumerator | |
---|---|
BeforeLegalizeTypes | |
AfterLegalizeTypes | |
AfterLegalizeVectorOps | |
AfterLegalizeDAG |
Definition at line 15 of file DAGCombine.h.
|
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.
|
strong |
Enumerator | |
---|---|
CAdd | |
CMulPartial | |
CDot | |
Deinterleave | |
Splat | |
Symmetric | |
ReductionPHI | |
ReductionOperation | |
ReductionSelect | |
ReductionSingle |
Definition at line 35 of file ComplexDeinterleavingPass.h.
|
strong |
Enumerator | |
---|---|
Rotation_0 | |
Rotation_90 | |
Rotation_180 | |
Rotation_270 |
Definition at line 50 of file ComplexDeinterleavingPass.h.
|
strong |
The distinct types of work performed by the work loop in analyzeContextInfo.
Enumerator | |
---|---|
AnalyzeContextInfo | |
UpdateChildPruning | |
UpdatePruning |
Definition at line 237 of file DWARFLinker.cpp.
|
strong |
Enumerator | |
---|---|
None | |
Controlled | |
ExtendedLoop | |
Uncontrolled |
Definition at line 29 of file CodeMetrics.h.
Enumerator | |
---|---|
strictConversion | |
lenientConversion |
Definition at line 155 of file ConvertUTF.h.
Enumerator | |
---|---|
conversionOK | |
sourceExhausted | |
targetExhausted | |
sourceIllegal |
Definition at line 148 of file ConvertUTF.h.
CurStreamTypeType - A type for CurStreamType.
Enumerator | |
---|---|
UnknownBitstream | |
LLVMIRBitstream | |
ClangSerializedASTBitstream | |
ClangSerializedDiagnosticsBitstream | |
LLVMBitstreamRemarks |
Definition at line 29 of file BitcodeAnalyzer.h.
|
strong |
Enumerator | |
---|---|
None | No compression. |
Zlib | zlib |
Zstd | Zstandard. |
Definition at line 27 of file Compression.h.
|
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 94 of file TargetOptions.h.
|
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 499 of file Attributor.h.
enum llvm::DiagnosticKind |
Defines the different supported kind of a diagnostic.
This enum should be extended with a new ID for each added concrete subclass.
Definition at line 60 of file DiagnosticInfo.h.
|
strong |
Enumerator | |
---|---|
Match | |
NearMatch | |
NoMatch |
Definition at line 170 of file MCTargetAsmParser.h.
enum llvm::DiagnosticSeverity : char |
Defines the different supported severity of a diagnostic.
Enumerator | |
---|---|
DS_Error | |
DS_Warning | |
DS_Remark | |
DS_Note |
Definition at line 49 of file DiagnosticInfo.h.
enum llvm::DIDumpType : unsigned |
Selects which debug sections get dumped.
Enumerator | |
---|---|
DIDT_Null | |
DIDT_All | |
DIDT_UUID |
Definition at line 184 of file DIContext.h.
This is just a helper to programmatically construct DIDumpType.
Enumerator | |
---|---|
DIDT_ID_UUID | |
DIDT_ID_Count |
Definition at line 173 of file DIContext.h.
|
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.
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:
The following identifiers are defined only in DWARFv5:
The following identifiers are defined only in the GNU proposal:
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 56 of file DWARFUnitIndex.h.
|
strong |
Enumerator | |
---|---|
Unknown | |
Default | |
EABI4 | |
EABI5 | |
GNU |
Definition at line 73 of file TargetOptions.h.
|
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 21 of file EHPersonalities.h.
|
strong |
Enumerator | |
---|---|
Always | |
NoCompactUnwind | |
Default |
Definition at line 31 of file MCTargetOptions.h.
|
strong |
|
strong |
|
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 19 of file MCTargetOptions.h.
|
strong |
Enumerator | |
---|---|
Unspecified | |
Disable | |
Optimize | |
Lowering |
Definition at line 19 of file ExpandVariadics.h.
|
strong |
Enum that allows us to spell out the direction.
Enumerator | |
---|---|
BACKWARD | |
FORWARD |
Definition at line 176 of file MustExecute.h.
enum llvm::FeatureIDs |
Enumerator | |
---|---|
FeatureCount |
Definition at line 85 of file MLRegAllocPriorityAdvisor.cpp.
|
strong |
Enumerator | |
---|---|
POPULATE_INDICES | |
NumberOfFeatures |
Definition at line 135 of file InlineModelFeatureMaps.h.
|
strong |
Enumerator | |
---|---|
Exponent | |
ExponentUpper | |
Fixed | |
Percent |
Definition at line 17 of file NativeFormatting.h.
|
strong |
Enumerator | |
---|---|
IEEE | |
AllOnes | |
NegativeZero |
Definition at line 81 of file APFloat.cpp.
|
strong |
Enumerator | |
---|---|
IEEE754 | |
NanOnly | |
FiniteOnly |
Definition at line 57 of file APFloat.cpp.
enum llvm::FPClassTest : unsigned |
Floating-point class tests, supported by 'is_fpclass' intrinsic.
Actual test may be an OR combination of basic tests.
Definition at line 239 of file FloatingPointMode.h.
enum llvm::FPDecorationId |
Enumerator | |
---|---|
NONE | |
RTE | |
RTZ | |
RTP | |
RTN | |
SAT |
Definition at line 409 of file SPIRVUtils.h.
|
strong |
|
strong |
|
strong |
Enumerator | |
---|---|
OccInitialSchedule | |
UnclusteredHighRPReschedule | |
ClusteredLowOccupancyReschedule | |
PreRARematerialize | |
ILPInitialSchedule | |
MemoryClauseInitialSchedule |
Definition at line 27 of file GCNSchedStrategy.h.
|
strong |
Enable abort calls when global instruction selection fails to lower/select an instruction.
Enumerator | |
---|---|
Disable | |
Enable | |
DisableWithDiag |
Definition at line 104 of file TargetOptions.h.
enum llvm::GVDAGType |
Enumerator | |
---|---|
GVDT_None | |
GVDT_Fraction | |
GVDT_Integer | |
GVDT_Count |
Definition at line 1796 of file BlockFrequencyInfoImpl.h.
|
strong |
Enumerator | |
---|---|
Upper | |
Lower | |
PrefixUpper | |
PrefixLower |
Definition at line 22 of file NativeFormatting.h.
|
strong |
Enumerator | |
---|---|
Address | |
String | |
Tag | |
Attribute | |
Enumerator | |
Macro | |
Error | |
Warning | |
Note | |
Remark |
Definition at line 27 of file WithColor.h.
|
strong |
Enumerator | |
---|---|
GET |
Definition at line 27 of file HTTPClient.h.
enum llvm::InitStatus |
Enumerator | |
---|---|
Uninitialized | |
Wait | |
Done |
Definition at line 60 of file Threading.h.
|
strong |
Enumerator | |
---|---|
POPULATE_INDICES | |
NumberOfFeatures |
Definition at line 69 of file InlineModelFeatureMaps.h.
|
strong |
Enumerator | |
---|---|
AlwaysInliner | |
CGSCCInliner | |
EarlyInliner | |
ModuleInliner | |
MLInliner | |
ReplayCGSCCInliner | |
ReplaySampleProfileInliner | |
SampleProfileInliner |
Definition at line 45 of file InlineAdvisor.h.
|
strong |
Enumerator | |
---|---|
No | |
Basic | |
Verbose |
Definition at line 104 of file ImportedFunctionsInliningStatistics.h.
|
strong |
There are 4 scenarios we can use the InlineAdvisor:
Enumerator | |
---|---|
Default | |
Release | |
Development |
Definition at line 42 of file InlineAdvisor.h.
|
strong |
Definition at line 354 of file InstrProf.h.
|
strong |
An enum describing the attributes of an instrumented profile.
Enumerator | |
---|---|
Unknown | |
FrontendInstrumentation | |
IRInstrumentation | |
FunctionEntryInstrumentation | |
ContextSensitive | |
SingleByteCoverage | |
FunctionEntryOnly | |
MemProf | |
TemporalProfile | |
LoopEntriesInstrumentation |
Definition at line 329 of file InstrProf.h.
Definition at line 60 of file InstrProf.h.
enum llvm::InstrProfValueKind : uint32_t |
Definition at line 275 of file InstrProf.h.
|
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?
Definition at line 18 of file Uniformity.h.
|
strong |
Enumerator | |
---|---|
Integer | |
Number |
Definition at line 18 of file NativeFormatting.h.
Enumerator | |
---|---|
INTERNAL_REL_ARM64_LONG_BRANCH26 |
Definition at line 28 of file RuntimeDyldCOFFAArch64.h.
enum llvm::IntrinsicType : uint16_t |
Definition at line 22 of file X86IntrinsicsInfo.h.
|
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. |
Other | Any other memory. |
First | Helpers to iterate all locations in the MemoryEffectsBase class. |
Last |
enum llvm::IttEventType |
Enumerator | |
---|---|
LoadBinaryModule | |
LoadBinarySection | |
UnloadBinaryModule | |
UnloadBinarySection |
Definition at line 24 of file IntelJITEventsWrapper.h.
enum llvm::LibFunc : unsigned |
Enumerator | |
---|---|
NumLibFuncs | |
NotLibFunc |
Definition at line 68 of file TargetLibraryInfo.h.
enum llvm::LiveRangeStage |
Definition at line 46 of file RegAllocEvictionAdvisor.h.
enum llvm::LLVMConstants : uint32_t |
Enumerator | |
---|---|
DEBUG_METADATA_VERSION |
Definition at line 51 of file Metadata.h.
enum llvm::LocalNum |
Enumerator | |
---|---|
LN_First | |
LN_Middle | |
LN_Last |
Definition at line 73 of file PredicateInfo.cpp.
|
strong |
Enumerator | |
---|---|
Masked | |
Predicated |
Definition at line 16 of file LoopIdiomVectorize.h.
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.
|
strong |
Represents the result of a UnrollLoop
invocation.
Definition at line 56 of file UnrollLoop.h.
enum llvm::lostFraction |
These are instruction patterns matched by the machine combiner pass.
Enumerator | |
---|---|
REASSOC_AX_BY | |
REASSOC_AX_YB | |
REASSOC_XA_BY | |
REASSOC_XA_YB | |
TARGET_PATTERN_START |
Definition at line 28 of file MachineCombinerPattern.h.
|
strong |
Enumerator | |
---|---|
Unknown | |
Cold | |
Hot |
Definition at line 94 of file MachineFunction.h.
|
strong |
Strategies for selecting traces.
Definition at line 87 of file MachineTraceMetrics.h.
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 61 of file MCDirectives.h.
enum llvm::MCFixupKind |
Extensible enumeration to represent the type of a fixup.
enum llvm::MCLOHType |
Linker Optimization Hint Type.
Definition at line 33 of file MCLinkerOptimizationHint.h.
|
strong |
Enumerator | |
---|---|
AddressDelta |
Definition at line 80 of file MCPseudoProbe.h.
enum llvm::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.
Enumerator | |
---|---|
MCVM_IOSVersionMin | .ios_version_min |
MCVM_OSXVersionMin | .macosx_version_min |
MCVM_TvOSVersionMin | .tvos_version_min |
MCVM_WatchOSVersionMin | .watchos_version_min |
Definition at line 69 of file MCDirectives.h.
|
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 | |
---|---|
MSDF_None | |
MSDF_DumpBackrefs | |
MSDF_NoAccessSpecifier | |
MSDF_NoCallingConvention | |
MSDF_NoReturnType | |
MSDF_NoMemberType | |
MSDF_NoVariableType |
Definition at line 38 of file Demangle.h.
Enumerator | |
---|---|
MatchOperand_Success | |
MatchOperand_NoMatch | |
MatchOperand_ParseFail |
Definition at line 125 of file MCTargetAsmParser.h.
|
strong |
Definition at line 899 of file ValueTracking.h.
|
strong |
Enumerator | |
---|---|
Lo | |
Hi |
Definition at line 130 of file VECustomDAG.h.
|
strong |
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 96 of file LegacyPassManagers.h.
enum llvm::PassKind |
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 | |
PMT_LoopPassManager | |
PMT_RegionPassManager | |
PMT_Last |
|
strong |
Enumerator | |
---|---|
ProfileMetadataBlockID | |
ContextNodeBlockID |
Definition at line 24 of file PGOCtxProfWriter.h.
Enumerator | |
---|---|
Invalid | |
Version | |
Guid | |
CalleeIndex | |
Counters |
Definition at line 22 of file PGOCtxProfWriter.h.
|
strong |
Enumerator | |
---|---|
Invalid | |
FDO | |
CSFDO | |
CTXPROF |
Definition at line 56 of file PGOInstrumentation.h.
Enumerator | |
---|---|
PGOVCT_None | |
PGOVCT_Graph | |
PGOVCT_Text |
Definition at line 33 of file BlockFrequencyInfo.h.
|
strong |
Enumerator | |
---|---|
IRPass | |
Test | |
Other |
Definition at line 34 of file SizeOpts.h.
Enumerator | |
---|---|
REASSOC_XY_AMM_BMM | |
REASSOC_XMM_AMM_BMM | |
REASSOC_XY_BCA | |
REASSOC_XY_BAC |
Definition at line 90 of file PPCInstrInfo.h.
enum llvm::PredicateType |
Enumerator | |
---|---|
PT_Branch | |
PT_Assume | |
PT_Switch |
Definition at line 70 of file PredicateInfo.h.
|
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 367 of file FunctionImport.h.
|
strong |
Enumerator | |
---|---|
Reserved | |
Sentinel | |
HasDiscriminator |
Definition at line 31 of file PseudoProbe.h.
|
strong |
Enumerator | |
---|---|
Invalid | |
Last |
Definition at line 27 of file PseudoProbe.h.
|
strong |
Enumerator | |
---|---|
Block | |
IndirectCall | |
DirectCall |
Definition at line 29 of file PseudoProbe.h.
|
strong |
These are the kinds of recurrences that we support.
Enumerator | |
---|---|
None | Not a recurrence. |
Add | Sum of integers. |
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()). |
FMinimum | FP min with llvm.minimum semantics. |
FMaximum | FP max with llvm.maximum semantics. |
FMulAdd | Sum of float products with llvm.fmuladd(a * b + sum). |
IAnyOf | Any_of reduction with select(icmp(),x,y) where one of (x,y) is loop invariant, and both x and y are integer type. |
FAnyOf | Any_of reduction with select(fcmp(),x,y) where one of (x,y) is loop invariant, and both x and y are integer type. |
IFindLastIV | FindLast reduction with select(icmp(),x,y) where one of (x,y) is increasing loop induction, and both x and y are integer type. |
FFindLastIV | FindLast reduction with select(fcmp(),x,y) where one of (x,y) is increasing loop induction, and both x and y are integer type. |
Definition at line 33 of file IVDescriptors.h.
|
strong |
Enumerator | |
---|---|
Default | |
Basic | |
Fast | |
Greedy | |
PBQP |
Definition at line 23 of file CGPassBuilderOption.h.
enum llvm::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. |
Definition at line 70 of file ValueMapper.h.
enum llvm::ReplaceExitVal |
Enumerator | |
---|---|
NeverRepl | |
OnlyCheapRepl | |
NoHardUse | |
UnusedIndVarInLoop | |
AlwaysRepl |
Definition at line 478 of file LoopUtils.h.
|
strong |
Enumerator | |
---|---|
Format | |
Literal |
Definition at line 46 of file FormatVariadic.h.
Enumerator | |
---|---|
FMADD_AX | |
FMADD_XA | |
FMSUB | |
FNMSUB | |
SHXADD_ADD_SLLI_OP1 | |
SHXADD_ADD_SLLI_OP2 |
Definition at line 53 of file RISCVInstrInfo.h.
|
strong |
Enumerator | |
---|---|
Full | |
Plus | |
Minus |
Definition at line 20 of file RISCVTargetStreamer.h.
|
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.
Definition at line 37 of file FloatingPointMode.h.
|
strong |
Enumerator | |
---|---|
TargetDefault | |
AlwaysOutline | |
NeverOutline |
Definition at line 22 of file CGPassBuilderOption.h.
|
strong |
Definition at line 47 of file SampleProf.h.
Enumerator | |
---|---|
SanStat_CFI_VCall | |
SanStat_CFI_NVCall | |
SanStat_CFI_DerivedCast | |
SanStat_CFI_UnrelatedCast | |
SanStat_CFI_ICall |
Definition at line 24 of file SanitizerStats.h.
Enumerator | |
---|---|
CM_ScalarEpilogueAllowed | |
CM_ScalarEpilogueNotAllowedOptSize | |
CM_ScalarEpilogueNotAllowedLowTripLoop | |
CM_ScalarEpilogueNotNeededUsePredicate | |
CM_ScalarEpilogueNotAllowedUsePredicate |
Definition at line 936 of file LoopVectorize.cpp.
|
strong |
enum llvm::SCEVTypes : unsigned short |
Definition at line 37 of file ScalarEvolutionExpressions.h.
Specific patterns of select instructions we can match.
Definition at line 1113 of file ValueTracking.h.
Behavior when a floating point min/max is given one NaN and one non-NaN as input.
Definition at line 1127 of file ValueTracking.h.
|
strong |
Enumerator | |
---|---|
FAILURE | |
SUCCESS |
Definition at line 266 of file Threading.h.
|
strong |
Enumerator | |
---|---|
COPY_TO_SCRATCH_SGPR | |
SPILL_TO_VGPR_LANE | |
SPILL_TO_MEM |
Definition at line 365 of file SIMachineFunctionInfo.h.
enum llvm::SIRCFlags : uint8_t |
Enumerator | |
---|---|
RegTupleAlignUnitsWidth | |
HasVGPRBit | |
HasAGPRBit | |
HasSGPRbit | |
HasVGPR | |
HasAGPR | |
HasSGPR | |
RegTupleAlignUnitsMask | |
RegKindMask |
Definition at line 18 of file SIDefines.h.
Enumerator | |
---|---|
NoData | |
Data |
Definition at line 53 of file SIMachineScheduler.h.
Enumerator | |
---|---|
NoCand | |
RegUsage | |
Latency | |
Successor | |
Depth | |
NodeOrder |
Definition at line 31 of file SIMachineScheduler.h.
Enumerator | |
---|---|
LatenciesAlone | |
LatenciesGrouped | |
LatenciesAlonePlusConsecutive |
Definition at line 216 of file SIMachineScheduler.h.
Enumerator | |
---|---|
BlockLatencyRegUsage | |
BlockRegUsageLatency | |
BlockRegUsage |
Definition at line 312 of file SIMachineScheduler.h.
enum llvm::SpillOpcodeKey |
Definition at line 68 of file PPCInstrInfo.h.
|
strong |
|
strong |
The statepoint intrinsic accepts a set of flags as its third argument.
Valid values come out of this set.
Definition at line 39 of file Statepoint.h.
|
strong |
Enumerator | |
---|---|
unspecified | |
stream_too_short | |
invalid_array_size | |
invalid_offset | |
filesystem_error |
Definition at line 18 of file BinaryStreamError.h.
|
strong |
Enumerator | |
---|---|
None | |
Detailed | Hash with opcode only. |
CallTargetIgnored | Hash with opcode and operands. |
Definition at line 16 of file StructuralHash.h.
|
strong |
Enumerator | |
---|---|
Bin | |
Include | |
Lib |
Definition at line 24 of file MSVCPaths.h.
|
strong |
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 111 of file TargetOptions.h.
|
strong |
Enumerator | |
---|---|
NoSymtab | |
NormalSymtab | |
BigArchive32 | |
BigArchive64 |
Definition at line 43 of file ArchiveWriter.h.
Enumerator | |
---|---|
AD_GNU | |
AD_HLASM |
Definition at line 18 of file SystemZMCAsmInfo.h.
|
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 584 of file AArch64BaseInfo.h.
|
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 165 of file TargetTransformInfo.h.
|
strong |
Enumerator | |
---|---|
Invalid | |
_TENSOR_TYPE_ENUM_MEMBERS | |
Total |
Definition at line 54 of file TensorSpec.h.
|
strong |
This enumerates the LLVM full LTO or ThinLTO optimization phases.
|
strong |
Definition at line 251 of file Threading.h.
|
strong |
Enumerator | |
---|---|
CompleteEvent | |
InstantEvent | |
AsyncEvent |
Definition at line 87 of file TimeProfiler.h.
|
strong |
Enumerator | |
---|---|
OlderVS | |
VS2017OrNewer | |
DevDivInternal |
Definition at line 30 of file MSVCPaths.h.
The mode sets how eager a transformation should be applied.
Definition at line 277 of file LoopUtils.h.
|
strong |
Enumerator | |
---|---|
Skeleton | |
Full |
Definition at line 43 of file DwarfCompileUnit.h.
|
strong |
Types of use capture kinds, see DetermineUseCaptureKind
.
Enumerator | |
---|---|
NO_CAPTURE | |
MAY_CAPTURE | |
PASSTHROUGH |
Definition at line 109 of file CaptureTracking.h.
|
strong |
|
strong |
Type wrapper for integer ID for Variables. 0 is reserved.
Enumerator | |
---|---|
Reserved |
Definition at line 26 of file AssignmentTrackingAnalysis.h.
|
strong |
Describes the type of Instruction Set Architecture.
Enumerator | |
---|---|
AdvancedSIMD | |
SVE | |
RVV | |
SSE | |
AVX | |
AVX2 | |
AVX512 | |
LLVM | |
Unknown |
Definition at line 44 of file VFABIDemangler.h.
|
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 25 of file VFABIDemangler.h.
enum llvm::VMOVModImmType |
Enumerator | |
---|---|
VMOVModImm | |
VMVNModImm | |
MVEVMVNModImm | |
OtherModImm |
Definition at line 1009 of file ARMISelLowering.h.
|
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.
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.
Enumerator | |
---|---|
DPWSSD |
Definition at line 30 of file X86InstrInfo.h.
void llvm::__deregister_frame | ( | void * | ) |
Referenced by llvm::RTDyldMemoryManager::deregisterEHFramesInProcess().
void llvm::__register_frame | ( | void * | ) |
Referenced by llvm::RTDyldMemoryManager::registerEHFramesInProcess().
|
inlinestatic |
Return 2-letter identifier string for numeric key ID.
Definition at line 884 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::printImpl().
|
inlinestatic |
Return numeric key ID for 2-letter identifier string.
Definition at line 900 of file AArch64BaseInfo.h.
References llvm::AArch64PACKey::DA, llvm::AArch64PACKey::DB, llvm::AArch64PACKey::IA, llvm::AArch64PACKey::IB, and Name.
|
inlinestatic |
Definition at line 731 of file AArch64BaseInfo.h.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::AArch64Layout::Invalid, llvm::AArch64Layout::VL_16B, llvm::AArch64Layout::VL_1D, llvm::AArch64Layout::VL_2D, llvm::AArch64Layout::VL_2S, llvm::AArch64Layout::VL_4H, llvm::AArch64Layout::VL_4S, llvm::AArch64Layout::VL_8B, llvm::AArch64Layout::VL_8H, llvm::AArch64Layout::VL_B, llvm::AArch64Layout::VL_D, llvm::AArch64Layout::VL_H, and llvm::AArch64Layout::VL_S.
|
inlinestatic |
Definition at line 712 of file AArch64BaseInfo.h.
References llvm_unreachable, llvm::AArch64Layout::VL_16B, llvm::AArch64Layout::VL_1D, llvm::AArch64Layout::VL_2D, llvm::AArch64Layout::VL_2S, llvm::AArch64Layout::VL_4H, llvm::AArch64Layout::VL_4S, llvm::AArch64Layout::VL_8B, llvm::AArch64Layout::VL_8H, llvm::AArch64Layout::VL_B, llvm::AArch64Layout::VL_D, llvm::AArch64Layout::VL_H, and llvm::AArch64Layout::VL_S.
Returns the absolute value of the argument.
Definition at line 1534 of file APFloat.h.
References X.
Referenced by isValidLSDoubleOffset().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::abs | ( | const DynamicAPInt & | X | ) |
Definition at line 354 of file DynamicAPInt.h.
|
constexpr |
Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result.
Definition at line 602 of file MathExtras.h.
Referenced by llvm::xray::profileFromTrace(), and llvm::msf::MappedBlockStream::readBytes().
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 1195 of file CloneFunction.cpp.
References llvm::MDNode::get(), I, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by cloneAndAdaptNoAliasScopes(), and llvm::JumpThreadingPass::cloneInstructions().
|
static |
Definition at line 32 of file RuntimeDyldCOFFAArch64.h.
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
Appends the set of assumptions Assumptions
to \CB.
Definition at line 100 of file Assumptions.cpp.
Appends the set of assumptions Assumptions
to \F.
Definition at line 96 of file Assumptions.cpp.
References F.
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 148 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().
|
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 223 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addConstantPoolIndex(), llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addReg().
Value * llvm::addDiffRuntimeChecks | ( | Instruction * | Loc, |
ArrayRef< PointerDiffInfo > | Checks, | ||
SCEVExpander & | Expander, | ||
function_ref< Value *(IRBuilderBase &, unsigned)> | GetVF, | ||
unsigned | IC | ||
) |
Definition at line 2012 of file LoopUtils.cpp.
References llvm::IRBuilderBase::CreateFreeze(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateMul(), llvm::IRBuilderBase::CreateOr(), llvm::SCEVExpander::expandCodeFor(), llvm::Value::getContext(), llvm::Instruction::getDataLayout(), llvm::Value::getName(), llvm::Type::getScalarSizeInBits(), llvm::SCEVExpander::getSE(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), and llvm::IRBuilderBase::SetInsertPoint().
|
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 124 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and Reg.
|
constexpr |
Helper which adds two underlying types of enumeration type.
Implicit conversion to a common type is accepted.
Definition at line 188 of file STLExtras.h.
|
inlinestatic |
Add a BDX memory reference for frame object FI to MIB.
Definition at line 25 of file SystemZInstrBuilder.h.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MI, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, llvm::MachineMemOperand::MOStore, and Offset.
|
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 198 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(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MI, llvm::MachineMemOperand::MOLoad, llvm::MachineMemOperand::MONone, llvm::MachineMemOperand::MOStore, and Offset.
|
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::XtensaInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadStoreTileReg(), llvm::PPCRegisterInfo::lowerACCRestore(), llvm::PPCRegisterInfo::lowerACCSpilling(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerQuadwordRestore(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::PPCRegisterInfo::lowerWACCRestore(), llvm::PPCRegisterInfo::lowerWACCSpilling(), restoreCRs(), llvm::VETargetLowering::setupEntryBlockForSjLj(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), spillRegPairs(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::storeRegToStackSlot().
|
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.
|
inlinestatic |
Definition at line 172 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addGlobalAddress(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::X86AddressMode::Base, llvm::X86AddressMode::BaseType, llvm::X86AddressMode::Disp, llvm::X86AddressMode::FrameIndex, llvm::X86AddressMode::FrameIndexBase, llvm::X86AddressMode::GV, llvm::X86AddressMode::GVOpFlags, llvm::X86AddressMode::IndexReg, llvm::X86AddressMode::Reg, llvm::X86AddressMode::RegBase, and llvm::X86AddressMode::Scale.
Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().
void llvm::addInnerLoopsToHeadersMap | ( | DenseMap< BlockT *, const LoopT * > & | LoopHeaders, |
const LoopInfoBase< BlockT, LoopT > & | LI, | ||
const LoopT & | L | ||
) |
Definition at line 668 of file GenericLoopInfoImpl.h.
References addInnerLoopsToHeadersMap().
Referenced by addInnerLoopsToHeadersMap(), and llvm::LoopInfoBase< BlockT, LoopT >::verify().
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 259 of file LivePhysRegs.cpp.
References llvm::MachineBasicBlock::addLiveIn(), any_of(), assert(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineBasicBlock::livein_empty(), MBB, MRI, and TRI.
Referenced by computeAndAddLiveIns(), and llvm::MachineBasicBlock::splitAt().
void llvm::addLocationToRemarks | ( | OptimizationRemark & | Remark, |
DebugLoc | DLoc | ||
) |
Add location info to ORE message.
Definition at line 465 of file InlineAdvisor.cpp.
References First, llvm::DebugLoc::get(), Name, Offset, and Remark.
Referenced by emitInlinedInto().
void llvm::addNumImm | ( | const APInt & | Imm, |
MachineInstrBuilder & | MIB | ||
) |
Definition at line 83 of file SPIRVUtils.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::SPIRV::ASM_PRINTER_WIDTH16, llvm::MachineInstrBuilder::getInstr(), report_fatal_error(), and llvm::MachineInstr::setAsmPrinterFlag().
Referenced by llvm::SPIRVGlobalRegistry::buildConstantFP(), llvm::SPIRVGlobalRegistry::buildConstantInt(), generateGroupUniformInst(), generateSpecConstantInst(), and llvm::SPIRVGlobalRegistry::getOrCreateConstInt().
|
inlinestatic |
Definition at line 148 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and Offset.
|
inlinestatic |
Definition at line 143 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and Offset.
Referenced by addFrameReference(), addOperands(), addRegOffset(), and llvm::X86InstrInfo::convertToThreeAddress().
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 703 of file MathExtras.h.
Referenced by addWithOverflow(), llvm::ConstraintSystem::negate(), llvm::DynamicAPInt::operator+(), llvm::detail::CheckedInt::operator+(), llvm::DynamicAPInt::operator+=(), and llvm::InstructionCost::operator+=().
void llvm::addPredicatedMveVpredNOp | ( | MachineInstrBuilder & | MIB, |
unsigned | Cond | ||
) |
Definition at line 878 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), Cond, and llvm::RegState::Implicit.
Referenced by addPredicatedMveVpredROp().
void llvm::addPredicatedMveVpredROp | ( | MachineInstrBuilder & | MIB, |
unsigned | Cond, | ||
unsigned | Inactive | ||
) |
Definition at line 884 of file ARMBaseInstrInfo.cpp.
References addPredicatedMveVpredNOp(), llvm::MachineInstrBuilder::addReg(), and Cond.
|
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 157 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().
|
inlinestatic |
addRegReg - This function is used to add a memory reference of the form: [Reg + Reg].
Definition at line 164 of file X86InstrBuilder.h.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and getKillRegState().
Referenced by llvm::X86InstrInfo::convertToThreeAddress().
SPIRV::StorageClass::StorageClass llvm::addressSpaceToStorageClass | ( | unsigned | AddrSpace, |
const SPIRVSubtarget & | STI | ||
) |
Definition at line 211 of file SPIRVUtils.cpp.
References llvm::SPIRVSubtarget::canUseExtension(), and report_fatal_error().
Referenced by generateAssignInstrs(), getArgSPIRVType(), insertBitcasts(), and propagateSPIRVType().
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 1954 of file LoopUtils.cpp.
References A, assert(), B, llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateICmpSLT(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateOr(), expandBounds(), llvm::Value::getContext(), llvm::Instruction::getDataLayout(), HoistRuntimeChecks, and llvm::IRBuilderBase::SetInsertPoint().
Referenced by llvm::LoopVersioning::versionLoop().
Definition at line 70 of file SPIRVUtils.cpp.
References B, convertCharsToWord(), and getPaddedLen().
void llvm::addStringImm | ( | const StringRef & | Str, |
MachineInstrBuilder & | MIB | ||
) |
Definition at line 62 of file SPIRVUtils.cpp.
References llvm::MachineInstrBuilder::addImm(), convertCharsToWord(), and getPaddedLen().
Definition at line 54 of file SPIRVUtils.cpp.
References llvm::MCInst::addOperand(), convertCharsToWord(), llvm::MCOperand::createImm(), and getPaddedLen().
Referenced by buildOpName(), buildOpSpirvDecorations(), emitAssignName(), finishBuildOpDecorate(), insertInlineAsmProcess(), and llvm::SPIRVCallLowering::lowerFormalArguments().
Set input string into loop metadata by keeping other values intact.
If the string is already in loop metadata update value if it is different.
Definition at line 214 of file LoopUtils.cpp.
References createStringMetadata(), llvm::MDNode::get(), llvm::BasicBlock::getContext(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Loop::getLoopID(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::ConstantInt::getSExtValue(), llvm::MDString::getString(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MDNode::replaceOperandWith(), and llvm::Loop::setLoopID().
Referenced by peelLoop().
void llvm::addUnpredicatedMveVpredNOp | ( | MachineInstrBuilder & | MIB | ) |
Definition at line 866 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), and llvm::ARMVCC::None.
Referenced by addUnpredicatedMveVpredROp(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), and llvm::ARMBaseInstrInfo::storeRegToStackSlot().
void llvm::addUnpredicatedMveVpredROp | ( | MachineInstrBuilder & | MIB, |
Register | DestReg | ||
) |
Definition at line 872 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), addUnpredicatedMveVpredNOp(), and llvm::RegState::Undef.
Referenced by llvm::ARMBaseInstrInfo::copyPhysReg().
void llvm::adjustKnownBitsForSelectArm | ( | KnownBits & | Known, |
Value * | Cond, | ||
Value * | Arm, | ||
bool | Invert, | ||
unsigned | Depth, | ||
const SimplifyQuery & | Q | ||
) |
Adjust Known
for the given select Arm
to include information from the select Cond
.
Definition at line 1077 of file ValueTracking.cpp.
References llvm::SimplifyQuery::AC, computeKnownBitsFromCond(), Cond, llvm::SimplifyQuery::CxtI, Depth, llvm::SimplifyQuery::DT, llvm::KnownBits::getBitWidth(), llvm::KnownBits::hasConflict(), llvm::KnownBits::isConstant(), isGuaranteedNotToBeUndef(), llvm::KnownBits::isUnknown(), and llvm::KnownBits::unionWith().
Referenced by computeKnownBitsFromOperator(), and llvm::InstCombinerImpl::SimplifyDemandedUseBits().
|
static |
Definition at line 134 of file LanaiMCCodeEmitter.cpp.
References assert(), llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCOperand::isExpr(), llvm::MCOperand::isImm(), llvm::LPAC::isPostOp(), llvm::MCOperand::isReg(), and llvm::LPAC::modifiesOp().
|
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 llvm::HashBuilder< HasherT, Endianness >::addRange(), llvm::HashBuilder< HasherT, Endianness >::addRangeElements(), all_equal(), all_of(), any_of(), append_range(), binary_search(), copy(), copy_if(), count(), count_if(), drop_begin(), drop_end(), equal(), find(), find_if(), find_if_not(), for_each(), llvm::MachineInstr::getDebugOperandIndex(), interleave(), is_contained(), is_sorted(), llvm::MachineInstr::isDebugOperand(), lower_bound(), max_element(), min_element(), mismatch(), move(), none_of(), partition(), partition_point(), range_size(), remove_if(), replace(), replace_copy(), replace_copy_if(), reverse(), sort(), stable_sort(), transform(), unique(), and upper_bound().
|
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 llvm::HashBuilder< HasherT, Endianness >::addRange(), llvm::HashBuilder< HasherT, Endianness >::addRangeElements(), all_equal(), all_of(), any_of(), append_range(), binary_search(), copy(), copy_if(), count(), count_if(), drop_begin(), drop_end(), equal(), find(), find_if(), find_if_not(), for_each(), interleave(), is_contained(), is_sorted(), llvm::MachineInstr::isDebugOperand(), lower_bound(), max_element(), min_element(), mismatch(), move(), none_of(), partition(), partition_point(), range_size(), remove_if(), replace(), replace_copy(), replace_copy_if(), reverse(), sort(), stable_sort(), transform(), unique(), and upper_bound().
|
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().
|
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().
|
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().
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().
Aligns Addr
to Alignment
bytes, rounding up.
Definition at line 187 of file Alignment.h.
References Addr, alignTo(), assert(), and llvm::Align::value().
Referenced by llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold, GrowthDelay >::Allocate(), llvm::orc::EPCGenericRTDyldMemoryManager::allocateCodeSection(), llvm::orc::EPCGenericRTDyldMemoryManager::allocateDataSection(), llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold, GrowthDelay >::AllocateSlow(), llvm::StableFunctionMapRecord::deserialize(), llvm::SpecificBumpPtrAllocator< T >::DestroyAll(), llvm::orc::EPCGenericRTDyldMemoryManager::finalizeMemory(), llvm::WritableMemoryBuffer::getNewUninitMemBuffer(), llvm::trailing_objects_internal::TrailingObjectsImpl< Align, BaseTy, TopTrailingObj, PrevTy, NextTy, MoreTys... >::getTrailingObjectsImpl(), and loadBinaryFormat().
|
constexpr |
Returns the largest unsigned integer less than or equal to Value
and is Skew
mod Align
.
Align
must be non-zero. Guaranteed to never overflow.
Definition at line 557 of file MathExtras.h.
References assert().
Referenced by llvm::RISCVFrameLowering::allocateStack(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::SIRegisterInfo::getAlignedHighSGPRForRC(), llvm::AMDGPU::IsaInfo::getMaxNumSGPRs(), llvm::AMDGPU::IsaInfo::getMaxNumVGPRs(), llvm::AMDGPU::IsaInfo::getMinNumSGPRs(), llvm::AMDGPU::IsaInfo::getMinNumVGPRs(), llvm::X86TTIImpl::getShuffleCost(), llvm::RISCVTargetLowering::getStackProbeSize(), llvm::X86FrameLowering::getWin64EHFrameIndexRef(), llvm::GCNSchedStrategy::initialize(), llvm::SITargetLowering::LowerFormalArguments(), lowerKernelArguments(), llvm::RISCVMachineFunctionInfo::RISCVMachineFunctionInfo(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::SIInstrInfo::splitMUBUFOffset(), and llvm::InstCombinerImpl::visitCallInst().
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 413 of file TypeSize.h.
|
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:
Will overflow only if result is not representable in T.
Definition at line 489 of file MathExtras.h.
References assert(), and divideCeil().
|
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:
May overflow.
Definition at line 535 of file MathExtras.h.
Returns a multiple of A needed to store Size
bytes.
Definition at line 155 of file Alignment.h.
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(), alignAddr(), llvm::memtag::alignAndPadAlloca(), llvm::LegalizeRuleSet::alignNumElementsTo(), llvm::TargetFrameLowering::alignSPAdjust(), alignTo(), llvm::orc::MapperJITLinkMemoryManager::allocate(), llvm::jitlink::InProcessMemoryManager::allocate(), llvm::AMDGPUMachineFunction::allocateLDSGlobal(), llvm::SITargetLowering::allocatePreloadKernArgSGPRs(), llvm::CCState::AllocateStack(), analyzeArguments(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), analyzeReturnValues(), llvm::CSKYAsmBackend::applyFixup(), llvm::LoongArchAsmBackend::applyFixup(), llvm::RISCVAsmBackend::applyFixup(), llvm::jitlink::aarch32::applyFixupThumb(), areRuntimeChecksProfitable(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), buildCopyToRegs(), buildFatArchList(), buildFrameType(), buildRPathLoadCommand(), calculateDiSymbolStreamSize(), llvm::codeview::DebugSubsectionRecordBuilder::calculateSerializedLength(), llvm::pdb::DbiModuleDescriptorBuilder::calculateSerializedLength(), llvm::pdb::HashTable< ValueT >::calculateSerializedLength(), CalculateStackSlotUsed(), callBufferedPrintfStart(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), CC_AArch64_Custom_Block(), CC_AIX(), CC_ARM_AAPCS_Custom_Aggregate(), llvm::codeview::DebugSubsectionRecordBuilder::commit(), computeAllocationSizeForSections(), 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::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::Thumb1FrameLowering::eliminateCallFramePseudoInstr(), llvm::M68kFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::AsmPrinter::emitConstantPool(), llvm::DWARFYAML::emitDebugAranges(), 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::SparcSubtarget::getAdjustedFrameSize(), llvm::VESubtarget::getAdjustedFrameSize(), llvm::CCState::getAlignedCallFrameSize(), llvm::AArch64FunctionInfo::getCalleeSavedStackSize(), llvm::jitlink::BasicLayout::getContiguousPageBasedLayoutSizes(), getCoverTy(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), getFixedObjectSize(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), llvm::orc::getIndirectStubsBlockSizes(), getInputSegmentList(), M68kDisassembler::getInstruction(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::X86TTIImpl::getIntImmCost(), llvm::AMDGPUSubtarget::getKernArgSegmentSize(), getMaxBitmapSize(), 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::RISCVFrameLowering::getStackSizeWithRVVPadding(), llvm::AMDGPU::getTotalNumVGPRs(), llvm::DataLayout::getTypeAllocSize(), getUUID(), llvm::GCNRegPressure::getVGPRNum(), llvm::AArch64FrameLowering::getWinEHFuncletFrameSize(), llvm::MipsTargetLowering::HandleByVal(), llvm::CCState::HandleByVal(), INITIALIZE_PASS(), initializeOptionalHeader(), llvm::orc::MachOBuilder< MachOTraits >::layout(), layoutCOFF(), layoutSections(), layoutSectionsForOnlyKeepDebug(), layoutSegments(), loadBinaryFormat(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::NVPTXTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), llvm::VETargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_64(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), lowerKernelArguments(), llvm::AMDGPUCallLowering::lowerTailCall(), offsetToAlignment(), llvm::MDNode::operator new(), llvm::VarStreamArrayExtractor< T >::operator()(), llvm::VarStreamArrayExtractor< codeview::DebugSubsectionRecord >::operator()(), llvm::raw_ostream::operator<<(), pad(), llvm::BinaryStreamReader::padToAlignment(), llvm::BinaryStreamWriter::padToAlignment(), 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(), 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::OrcRiscv64::writeTrampolines(), and llvm::orc::OrcLoongArch64::writeTrampolines().
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:
Definition at line 180 of file Alignment.h.
Fallback when arguments aren't integral.
Definition at line 496 of file MathExtras.h.
References assert(), and divideCeil().
|
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().
|
constexpr |
Will overflow only if result is not representable in T.
Definition at line 504 of file MathExtras.h.
References assert().
Referenced by computeMemberData(), llvm::object::Elf_Note_Impl< ELFT >::getDesc(), llvm::object::Elf_Nhdr_Impl< ELFT >::getSize(), llvm::DataLayout::getTypeStoreSizeInBits(), and readBinaryIdsInternal().
Fallback when arguments aren't integral.
Definition at line 512 of file MathExtras.h.
References assert().
bool llvm::all_equal | ( | R && | Range | ) |
Returns true if all elements in Range are equal or when the Range is empty.
Definition at line 2079 of file STLExtras.h.
References adl_begin(), adl_end(), End, and Range.
Returns true if all Values in the initializer lists are equal or the list.
Definition at line 2087 of file STLExtras.h.
Referenced by combineConcatVectorOps(), llvm::ShuffleVectorInst::convertShuffleMaskForBitcode(), enumerate(), llvm::InstCombinerImpl::foldICmpBitCast(), llvm::AArch64TargetLowering::functionArgumentNeedsConsecutiveRegisters(), isSplatShuffle(), isSplatValue(), llvm::AArch64_AM::isSVEMaskOfIdenticalElements(), llvm::ShuffleVectorInst::isValidOperands(), shrinkSplatShuffle(), simplifyShuffleVectorInst(), widenShuffleMaskElts(), and zip_equal().
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 1739 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::ResourceSegments::add(), llvm::Loc::MMI::addFrameIndexExpr(), addFullyUnrolledInstructionsToIgnore(), addNoUndefAttrs(), llvm::DebugLocEntry::addValues(), llvm::ConstraintSystem::addVariableRow(), llvm::ConstraintSystem::addVariableRowFill(), allCallersPassValidPointerForArgument(), allConstant(), llvm::ISD::allOperandsUndef(), allSameBlock(), allSameType(), allZeroIndices(), llvm::BitVector::apply(), llvm::LoopNest::areAllLoopsRotatedForm(), llvm::LoopNest::areAllLoopsSimplifyForm(), areAllOperandsNonInsts(), llvm::X86TTIImpl::areInlineCompatible(), areLoadedOffsetButOtherwiseSame(), areTypesABICompatible(), blockEndIsUnreachable(), llvm::MachineIRBuilder::buildInstr(), buildModuleSummaryIndex(), llvm::SwitchInstProfUpdateWrapper::buildProfBranchWeightsMD(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), llvm::ValueInfo::canAutoHide(), canConvertToMinOrMaxIntrinsic(), canLowerToLDG(), canonicalizeShuffleMaskWithHorizOp(), canPeel(), canRemat(), canSinkInstructions(), canTrackGlobalVariableInterprocedurally(), canTRE(), llvm::LoopVectorizationLegality::canVectorizeFPMath(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::LoopVectorizationCostModel::canVectorizeReductions(), canVectorizeStructTy(), llvm::Attributor::checkForAllReturnedValues(), checkLoopsStructure(), llvm::SCEVExpanderCleaner::cleanup(), clusterSortPtrAccesses(), llvm::VPRecipeBuilder::collectScaledReductions(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), combineAnd(), combineBitcastvxi1(), combineConcatVectorOfShuffleAndItsOperands(), combineConcatVectorOps(), combineExtractVectorElt(), combineHorizOpWithShuffle(), combineINSERT_SUBVECTOR(), combineShuffleToZeroExtendVectorInReg(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), completeEphemeralValues(), llvm::VPWidenSelectRecipe::computeCost(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computePointerICmp(), ConstantFoldGetElementPtr(), ConstantFoldInstruction(), ConstantFoldShuffleVectorInstruction(), containsOnlyConstantData(), llvm::AllocationOrder::create(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createReductions(), llvm::VPRecipeBuilder::createSwitchEdgeMasks(), doesNotNeedToSchedule(), doesStoreDominatesAllLatches(), dropTypeTests(), llvm::BitstreamWriter::emitBlob(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::DwarfDebug::emitInitialLocDirective(), LiveDebugValues::MLocTracker::emitLoc(), llvm::HexagonInstrInfo::expandPostRAPseudo(), 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::AttributeList::get(), llvm::ScalarEvolution::getAddRecExpr(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::RISCVTTIImpl::getCmpSelInstrCost(), getGEPCosts(), getHeaders(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::TargetLowering::getNegatedExpression(), getPerfectShuffleCost(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getSameOpcode(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::RISCVTTIImpl::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(), incomingValuesAreCompatible(), llvm::yaml::ScalarTraits< FixedSizeHex< N > >::input(), llvm::yaml::ScalarTraits< memprof::GUIDHex64 >::input(), insert1BitVector(), llvm::SCEVUnionPredicate::isAlwaysTrue(), isAsciiString(), llvm::IRSimilarity::isClose(), isCommutative(), llvm::PHINode::isComplete(), llvm::ConstraintSystem::isConditionImplied(), isDeadRecipe(), llvm::ValueInfo::isDSOLocal(), isEphemeralValueOf(), isFSqrtDivToFMulLegal(), isFullDominator(), isFullPostDominator(), isGuaranteedNotToBeUndefOrPoison(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), llvm::TargetLowering::isGuaranteedNotToBeUndefOrPoisonForTargetNode(), isHeader(), isHorizontalBinOp(), llvm::slpvectorizer::BoUpSLP::isIdentityOrder(), isKnownNonZeroFromOperator(), llvm::ScalarEvolution::isKnownToBeAPowerOfTwo(), isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), llvm::Loop::isLCSSAForm(), isLoopDead(), isLowHalfOnly(), llvm::ShuffleVectorInst::isOneUseSingleSourceMask(), isOnlyUsedInZeroComparison(), isOnlyUsedInZeroEqualityComparison(), llvm::Loop::isRecursivelyLCSSAForm(), isReplicationMaskWithParams(), llvm::MachineRegisterInfo::isReservedRegUnit(), isReverseOrder(), isSafeToMoveBefore(), llvm::IRSimilarity::IRSimilarityCandidate::isSimilar(), llvm::orc::SpeculateQuery::isStraightLine(), isTargetShuffleEquivalent(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), isUndefInRange(), isUndefOrEqual(), isUndefOrEqualInRange(), isUndefOrInRange(), isUndefOrZeroInRange(), isUndefOrZeroOrInRange(), llvm::LoopVectorizationLegality::isUniform(), llvm::vputils::isUniformAcrossVFsAndUFs(), llvm::vputils::isUniformAfterVectorization(), isUsedOutsideBlock(), isVariantApplicableInContextHelper(), isVectorizedStructTy(), llvm::jitlink::JITLinkerBase::linkPhase1(), LowerBUILD_VECTOR_i1(), lowerBuildVectorAsBroadcast(), llvm::AMDGPUCallLowering::lowerChainCall(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), lowerShuffleAsLanePermuteAndShuffle(), lowerV4F64Shuffle(), lowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE(), llvm::PatternMatch::m_ZeroMask::match(), llvm::PatternMatch::m_SplatOrPoisonMask::match(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::CombinerHelper::matchAllExplicitUsesAreUndef(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchUndefShuffleVectorMask(), MatchVectorAllEqualTest(), llvm::sandboxir::MemSeedBundle< LoadOrStoreT >::MemSeedBundle(), llvm::TargetInstrInfo::mergeOutliningCandidateAttributes(), moveLCSSAPhis(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::needToDelay(), llvm::vputils::onlyFirstLaneUsed(), llvm::VPBlendRecipe::onlyFirstLaneUsed(), llvm::vputils::onlyFirstPartUsed(), operator==(), optimizeDivRem(), llvm::VPlanTransforms::optimizeForVFAndUF(), OptimizeNonTrivialIFuncs(), llvm::RISCVISAInfo::parseArchString(), llvm::RISCVISAInfo::parseNormalizedArchString(), partitionShuffleOfConcats(), performConcatVectorsCombine(), llvm::AMDGPUTargetLowering::performMulCombine(), llvm::ARMTargetLowering::PerformMVETruncCombine(), PerformStoreCombineHelper(), preparePlanForEpilogueVectorLoop(), llvm::InstCombinerImpl::prepareWorklist(), llvm::X86InstrInfo::preservesZeroValueInReg(), PrintShuffleMask(), promoteLoopAccessesToScalars(), pushAddIntoCmovOfConsts(), llvm::SDValue::reachesChainWithoutSideEffects(), recognizeBSwapOrBitReverseIdiom(), TransferTracker::redefVar(), refineInstruction(), remapIndices(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), reorderOrder(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), llvm::LoopVectorizationCostModel::requiresScalarEpilogue(), rewritePHIs(), runAttributorLightOnFunctions(), runAttributorOnFunctions(), runIPSCCP(), llvm::InnerLoopVectorizer::scalarizeInstruction(), llvm::RISCVDAGToDAGISel::selectInvLogicImm(), shiftAmountKnownInRange(), llvm::LoopVectorizationCostModel::shouldConsiderInvariant(), shouldSplitOnPredicatedArgument(), shouldUseSwitchConditionAsTableIndex(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyGEPInst(), simplifyInstructionWithOperands(), llvm::X86TargetLowering::SimplifyMultipleUseDemandedBitsForTargetNode(), simplifyShuffleVectorInst(), simplifyUsingControlFlow(), simplifyX86varShift(), sinkCommonCodeFromPredecessors(), sinkLoopInvariantInstructions(), llvm::InnerLoopVectorizer::sinkScalarOperands(), sinkScalarOperands(), sortPtrAccesses(), StrengthenNoWrapFlags(), stripDebugLocFromLoopID(), switchToLookupTable(), toVectorizedStructTy(), llvm::slpvectorizer::BoUpSLP::transformNodes(), llvm::HexagonShuffler::tryAuction(), tryInterleave(), llvm::sandboxir::Scheduler::trySchedule(), tryToFindRegisterToRename(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), turnVectorIntoSplatVector(), llvm::RecordRecTy::typeIsConvertibleTo(), unswitchNontrivialInvariants(), unswitchTrivialSwitch(), llvm::mca::Instruction::updateDispatched(), llvm::ARMFrameLowering::updateLRRestored(), llvm::mca::Instruction::updatePending(), validThroughout(), llvm::SIInstrInfo::verifyInstruction(), verifySubExpr(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitPHINode(), llvm::InstCombinerImpl::visitSwitchInst(), widenSubVector(), wouldInstructionBeTriviallyDead(), llvm::coverage::CoverageMappingWriter::write(), and llvm::TimeTraceProfiler::write().
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 2496 of file STLExtras.h.
References llvm::detail::all_of_zip_predicate_last().
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 Size.
Referenced by llvm::MallocAllocator::Allocate(), and llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::UniqueFunctionBase().
|
static |
Definition at line 1214 of file InstrProf.cpp.
ValueProfData * llvm::allocValueProfDataInstrProf | ( | size_t | TotalSizeInBytes | ) |
Definition at line 1128 of file InstrProf.cpp.
|
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 1217 of file AVRISelLowering.cpp.
References llvm::CCState::addLoc(), alignTo(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), assert(), 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().
|
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.
Definition at line 304 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(), Idx, 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().
|
static |
Definition at line 51 of file LoopBoundSplit.cpp.
References Cond, llvm::PHINode::getIncomingValueForBlock(), llvm::ScalarEvolution::getSCEV(), llvm::CmpInst::getSwappedPredicate(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and std::swap().
Referenced by hasProcessableCondition().
|
static |
Collect references to parseable Swift interfaces in imported DW_TAG_module blocks.
Definition at line 191 of file DWARFLinker.cpp.
References llvm::sys::path::append(), llvm::StringRef::empty(), llvm::dwarf_linker::guessDeveloperDir(), llvm::sys::path::is_relative(), llvm::dwarf_linker::isInToolchainDir(), Name, resolveRelativeObjectPath(), llvm::dwarf::toString(), and llvm::dwarf::toStringRef().
Referenced by analyzeContextInfo().
KnownBits llvm::analyzeKnownBitsFromAndXorOr | ( | const Operator * | I, |
const KnownBits & | KnownLHS, | ||
const KnownBits & | KnownRHS, | ||
unsigned | Depth, | ||
const SimplifyQuery & | SQ | ||
) |
Using KnownBits LHS/RHS produce the known bits for logic op (and/xor/or).
Definition at line 1045 of file ValueTracking.cpp.
References Depth, llvm::APInt::getAllOnes(), getKnownBitsFromAndXorOr(), and I.
Referenced by llvm::InstCombinerImpl::SimplifyDemandedUseBits(), and llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits().
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.
Reg | The physical register to analyze. |
Definition at line 334 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().
|
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 1310 of file AVRISelLowering.cpp.
References llvm::CCState::addLoc(), alignTo(), llvm::CCState::AllocateReg(), assert(), llvm::CCValAssign::Full, llvm::CCValAssign::getReg(), llvm::MVT::getStoreSize(), getTotalArgumentsSizeInBytes(), llvm_unreachable, Reg, RegList16AVR, RegList16Tiny, RegList8AVR, and RegList8Tiny.
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.
Reg | The virtual register to analyze. |
Ops | When set, this vector will receive an (MI, OpNum) entry for each operand referring to Reg. |
Definition at line 277 of file MachineInstrBundle.cpp.
References 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().
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 308 of file MachineInstrBundle.cpp.
References const_mi_bundle_ops(), MI, MRI, SubReg, and TRI.
std::string llvm::AnnotateInlinePassName | ( | InlineContext | IC | ) |
Definition at line 587 of file InlineAdvisor.cpp.
References getInlineAdvisorContext(), getLTOPhase(), llvm::InlineContext::LTOPhase, and llvm::InlineContext::Pass.
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 1314 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(), and llvm::Instruction::setMetadata().
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 1301 of file InstrProf.cpp.
References annotateValueSite(), llvm::InstrProfRecord::getValueArrayForSite(), and SaturatingAdd().
Referenced by annotateValueSite(), and updateIDTMetaData().
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 1746 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), llvm::Instruction::addAnnotationMetadata(), addIntrinsicToSummary(), addLiveIns(), llvm::DwarfExpression::addMachineRegExpression(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::adjustExtracts(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), allPathsGoThroughCold(), llvm::Bitset< NumBits >::any(), llvm::BitVector::any(), llvm::FeatureBitset::any(), llvm::DIExpression::appendOpsToArg(), applyFirstDebugLoc(), areInnerLoopExitPHIsSupported(), llvm::AArch64TTIImpl::areTypesABICompatible(), llvm::MultiHazardRecognizer::atIssueLimit(), llvm::DebugHandlerBase::beginFunction(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), buildVRegToDbgValueMap(), callHasFloatingPointArgument(), callHasFP128Argument(), llvm::AutoInitRemark::canHandle(), canHoistIVInc(), canLoopBeDeleted(), canonicalizeShuffleMaskWithHorizOp(), CanRedirectPredsOfEmptyBBToSucc(), canRenameUpToDef(), canRotateDeoptimizingLatchExit(), canSinkInstructions(), llvm::sandboxir::LegalityAnalysis::canVectorize(), llvm::LoopVectorizationLegality::canVectorizeFPMath(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), checkDenormalAttributeConsistency(), checkForMustTailInVarArgFn(), checkFunctionsAttributeConsistency(), checkLoopsStructure(), clusterSortPtrAccesses(), collectEphemeralRecipesForVPlan(), collectUnswitchCandidates(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), combineExtractFromVectorLoad(), combineExtractWithShuffle(), combineShiftToMULH(), combineX86ShufflesRecursively(), llvm::IRSimilarity::IRSimilarityCandidate::compareStructure(), computeDeadSymbolsAndUpdateIndirectCalls(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computeMinimumValueSizes(), containsEpilogue(), containsGCPtrType(), llvm::DIExpression::convertToVariadicExpression(), LiveDebugValues::DbgValue::DbgValue(), llvm::DbgValueLoc::DbgValueLoc(), directlyImpliesPoison(), doesInTreeUserNeedToExtract(), dontUseFastISelFor(), llvm::sandboxir::BasicBlock::dumpOS(), ehAwareSplitEdge(), llvm::InstrEmitter::EmitDbgInstrRef(), llvm::DwarfDebug::emitDebugLocValue(), llvm::CodeViewContext::emitLineTableForFunction(), emitSelectPseudo(), emitThumbRegPlusImmInReg(), llvm::logicalview::LVCompare::execute(), llvm::AArch64CallLowering::fallBackToDAGISel(), llvm::objcopy::elf::ELFWriter< ELFT >::finalize(), findDefsUsedOutsideOfLoop(), findForkedSCEVs(), llvm::sys::Process::FindInEnvPath(), findNextInsertLocation(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), fixupDebugInfoPostExtraction(), foldCondBranchOnValueKnownInPredecessorImpl(), foldExtractSubvectorFromShuffleVector(), llvm::TargetFolder::FoldGEP(), llvm::ConstantFolder::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::TargetLowering::getNegatedExpression(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeLabel(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), getOpcode(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), llvm::ARMBaseInstrInfo::getOutliningCandidateInfo(), llvm::AArch64RegisterInfo::getRegAllocationHints(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::X86TTIImpl::getShuffleCost(), getSplatIndex(), getTargetConstantBitsFromNode(), llvm::BasicTTIImplBase< T >::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(), hasSameValue(), llvm::VPlan::hasScalableVF(), hasSideeffectFreeStaticResolution(), hasTiedUseOf(), hasUsersIn(), llvm::sandboxir::CollectDescr::hasVectorInputs(), llvm::SIInstrInfo::hasVGPRUses(), hoistAndMergeSGPRInits(), llvm::SCEVUnionPredicate::implies(), insertIfNotContained(), insertSpills(), llvm::X86TTIImpl::instCombineIntrinsic(), isAddressBase(), llvm::AArch64RegisterInfo::isAnyArgRegReserved(), isAnyArgRegReserved(), llvm::slpvectorizer::BoUpSLP::isAnyGathered(), isAnyInRange(), llvm::outliner::Candidate::isAnyUnavailableAcrossOrOutOfSeq(), isAnyZero(), llvm::X86RegisterInfo::isArgumentRegister(), isBufferFatPtrConst(), isCycleInvariant(), isEarlyClobberMI(), llvm::CodeExtractor::isEligible(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), isFixedVectorShuffle(), llvm::AArch64InstrInfo::isFpOrNEON(), llvm::AArch64_MC::isFpOrNEON(), isFSqrtDivToFMulLegal(), isGuaranteedNotToBeUndefOrPoison(), llvm::AArch64InstrInfo::isHForm(), llvm::AArch64_MC::isHForm(), isHorizontalBinOp(), llvm::LoopVectorizationLegality::isInvariantAddressOfReduction(), llvm::LoopVectorizationLegality::isInvariantStoreOfReduction(), llvm::DbgVariableRecord::isKillLocation(), llvm::RawLocationWrapper::isKillLocation(), llvm::AArch64InstrInfo::isLdStPairSuppressed(), isLoopDead(), isLRSpilled(), llvm::ARMBaseInstrInfo::isMBBSafeToOutlineFrom(), llvm::AArch64InstrInfo::isMBBSafeToSplitToCold(), isNZCVTouchedInInstructionRange(), llvm::SDNode::isOperandOf(), isOverflowIntrinsicNoWrap(), llvm::PreservedCFGCheckerInstrumentation::CFG::isPoisoned(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::GCNTTIImpl::isProfitableToSinkOperands(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::X86TTIImpl::isProfitableToSinkOperands(), llvm::AArch64InstrInfo::isQForm(), llvm::AArch64_MC::isQForm(), isReachableImpl(), isRegLiveIn(), isSafeToMoveBefore(), isSafeToUnrollAndJam(), isSpecialPass(), llvm::AArch64InstrInfo::isStridedAccess(), llvm::RecordRecTy::isSubClassOf(), isSVERegOp(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), llvm::SelectionDAG::isUndef(), llvm::LiveRange::isUndefIn(), isUpperSubvectorUndef(), isUseMIInFoldList(), llvm::AA::isValidAtPosition(), isVariableIndexable(), isVectorOp(), licm(), llvm::coverage::LineCoverageStats::LineCoverageStats(), lowerBuildVectorToBitOp(), LowerDbgDeclare(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerReturn(), lowerV8I16Shuffle(), lowerVECTOR_SHUFFLE(), makePostTransformationMetadata(), llvm::CombinerHelper::matchAnyExplicitUseIsUndef(), llvm::CombinerHelper::matchEqualDefs(), mayBeVisibleThroughUnwinding(), llvm::AliasSet::mergeSetIn(), mustExecuteUBIfPoisonOnPathTo(), llvm::InsertFunctionStrategy::mutate(), llvm::sys::unicode::nameToGeneratedCodePoint(), llvm::PHITransAddr::needsPHITranslationFromBlock(), optimizeCallInst(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeNonTrivialIFuncs(), outputHasNonPHI(), llvm::AttrBuilder::overlaps(), passingValueIsAlwaysUndefined(), peelToTurnInvariantLoadsDerefencebale(), PerformVECREDUCE_ADDCombine(), planContainsAdditionalSimplifications(), preparePlanForMainVectorLoop(), llvm::SMDiagnostic::print(), llvm::JumpThreadingPass::processBranchOnXOR(), llvm::LoopVectorizePass::processLoop(), profitableToRotateLoopExitingLatch(), llvm::SwiftErrorValueTracking::propagateVRegs(), rematerializeLiveValuesAtUses(), removeRedundantCanonicalIVs(), removeUndefDbgLocsFromEntryBlock(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::HexagonShuffler::restrictPreferSlot3(), rewriteLoopExitValues(), llvm::DevirtSCCRepeatedPass::run(), GCEmptyBasicBlocks::runOnMachineFunction(), llvm::MipsInstrInfo::SafeInLoadDelaySlot(), llvm::SelectionDAG::salvageDebugInfo(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), setBranchWeights(), shouldCanonicalizeGEPToPtrAdd(), llvm::AArch64RegisterInfo::shouldCoalesce(), llvm::HexagonRegisterInfo::shouldCoalesce(), shouldConvertOrWithNoCommonBitsToAdd(), llvm::VPReplicateRecipe::shouldPack(), llvm::MultiHazardRecognizer::ShouldPreferAnother(), llvm::TailDuplicator::shouldTailDuplicate(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), simplifyFPOp(), simplifyGEPInst(), simplifyWithOpsReplaced(), sinkCommonCodeFromPredecessors(), sinkLastInstruction(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), SplitKnownCriticalEdge(), stashEntryDbgValues(), stripNonValidData(), tailMergeBlocksWithSimilarFunctionTerminators(), llvm::slpvectorizer::BoUpSLP::transformNodes(), llvm::VPlanTransforms::tryAddExplicitVectorLength(), tryToFindRegisterToRename(), tryToWidenSetCCOperands(), llvm::LegalityPredicates::typePairAndMemDescInSet(), UnrollLoop(), unswitchAllTrivialConditions(), UpdatePredRedefs(), updateValueInfoForIndirectCalls(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::GenericCycle< ContextT >::verifyCycle(), violatesLegacyMultiExitLoopCheck(), llvm::SelectionDAGBuilder::visitDbgInfo(), llvm::object::writeUniversalBinary(), and writtenBetween().
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 2115 of file STLExtras.h.
References adl_begin(), adl_end(), and llvm::CallingConv::C.
Referenced by addBasicBlockMetadata(), llvm::InstrProfWriter::addBinaryIds(), addBlockAndPredsToSet(), addData(), llvm::lowertypetests::GlobalLayoutBuilder::addFragment(), llvm::pdb::TpiStreamBuilder::addTypeRecords(), llvm::TargetLibraryInfoImpl::addVectorizableFunctions(), allUsersAreInFunction(), llvm::mca::Scheduler::analyzeResourcePressure(), llvm::pdb::NamedStreamMap::appendStringData(), llvm::DominatorTreeBase< NodeT, IsPostDom >::applyUpdates(), llvm::AttrBuilder::AttrBuilder(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), CloneAndPruneIntoFromInst(), collectEHScopeMembers(), llvm::DDGNode::collectInstructions(), collectLeaves(), collectUnswitchCandidates(), combineConcatVectorOfShuffleAndItsOperands(), llvm::rdf::Liveness::computePhiInfo(), ConcatListInits(), llvm::IRSimilarity::IRInstructionMapper::convertToUnsignedVec(), llvm::IRBuilderBase::CreateConstrainedFPCall(), llvm::DataDependenceGraph::DataDependenceGraph(), doPromotion(), emitSNPrintf(), emitSPrintf(), llvm::WinCFGuard::endFunction(), llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamWriter::EnterSubblock(), llvm::rdf::DeadCodeElimination::erase(), llvm::yaml::escape(), findArgParts(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), llvm::DirectedGraph< NodeType, EdgeType >::findIncomingEdgesToNode(), llvm::SSAUpdaterTraits< SSAUpdater >::FindPredecessorBlocks(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::FindPredecessorBlocks(), llvm::PGOContextualProfile::flatten(), llvm::BinOpInit::Fold(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), forEachUser(), llvm::msf::MSFBuilder::generateLayout(), generateReproducer(), llvm::AttributeList::get(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::rdf::Liveness::getAllReachingDefs(), getBaseType(), llvm::CacheCost::getCacheCost(), llvm::GraphDiff< NodePtr, InverseGraph >::getChildren(), llvm::SelectionDAG::getConstant(), llvm::DWARFContext::getDIEsForAddress(), llvm::GenericCycle< ContextT >::getExitBlocks(), llvm::MachineFunction::getFilterIDFor(), llvm::ReachingDefAnalysis::getGlobalUses(), llvm::RegisterBankInfo::getInstrPossibleMappings(), llvm::ScalarEvolution::getMinMaxExpr(), llvm::BasicAAResult::getModRefInfoMask(), llvm::ScalarEvolution::getMulExpr(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), getObjCNamesIfSelector(), llvm::object::ELFObjectFileBase::getPltEntries(), GetRPOList(), getStatepointArgs(), getStatepointBundles(), llvm::ScalarEvolution::getUDivExactExpr(), getUnderlyingObjectAggressive(), getUnderlyingObjects(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), inferInitializes(), INITIALIZE_PASS(), InlineFunction(), insertLineSequence(), insertParsePoints(), isEphemeralValueOf(), isObjectSizeLessThanOrEq(), lle_X_printf(), llvm::LoopNest::LoopNest(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::AliasSet::mergeSetIn(), llvm::symbolize::MarkupParser::nextNode(), nodes_for_root(), llvm::OperandBundleDefT< InputTy >::OperandBundleDefT(), parseScalarValue(), llvm::PGOCtxProfileWriter::PGOCtxProfileWriter(), push(), llvm::sampleprof::SampleProfileReaderGCC::readOneFunctionProfile(), recursivelyVisitUsers(), llvm::SMSchedule::reorderInstructions(), llvm::PlaceSafepointsPass::runImpl(), llvm::MachineRegisterInfo::setCalleeSavedRegs(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::orc::JITDylib::setLinkOrder(), llvm::msf::MSFBuilder::setStreamSize(), sinkInstruction(), llvm::AbstractDependenceGraphBuilder< GraphType >::sortNodesTopologically(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SelectionDAG::updateDivergence(), llvm::AddrLabelMap::UpdateForRAUWBlock(), usersDominator(), llvm::ScalarEvolution::verify(), verifyCTRBranch(), llvm::codeview::VFTableRecord::VFTableRecord(), llvm::InstCombinerImpl::visitGEPOfGEP(), writeFunctionTypeMetadataRecords(), and writeWholeProgramDevirtResolutionByArg().
void llvm::append_values | ( | Container & | C, |
Args &&... | Values | ||
) |
Appends all Values
to container C
.
Definition at line 2121 of file STLExtras.h.
References llvm::CallingConv::C, and range_size().
bool llvm::appendArchToWindowsSDKLibPath | ( | int | SDKMajor, |
llvm::SmallString< 128 > | LibPath, | ||
llvm::Triple::ArchType | Arch, | ||
std::string & | path | ||
) |
Definition at line 314 of file MSVCPaths.cpp.
References llvm::sys::path::append(), archToWindowsSDKArch(), llvm::Triple::arm, llvm::Triple::thumb, llvm::Triple::x86, and llvm::Triple::x86_64.
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 1826 of file LoopUtils.cpp.
References appendReversedLoopsToWorklist().
void llvm::appendLoopsToWorklist | ( | RangeT && | Loops, |
SmallPriorityWorklist< Loop *, 4 > & | Worklist | ||
) |
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.
Definition at line 1814 of file LoopUtils.cpp.
References appendReversedLoopsToWorklist(), Loops, and reverse().
Referenced by llvm::LPMUpdater::addChildLoops(), llvm::LPMUpdater::addSiblingLoops(), llvm::IRCEPass::run(), llvm::LoopAccessInfoPrinterPass::run(), llvm::FunctionToLoopPassAdaptor::run(), llvm::LoopUnrollPass::run(), sinkRegionForLoopNest(), and tryToUnrollAndJamLoop().
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 1789 of file LoopUtils.cpp.
References llvm::SmallVectorImpl< T >::append(), assert(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase< Size_T >::empty(), llvm::PriorityWorklist< T, VectorT, MapT >::insert(), Loops, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by appendLoopsToWorklist().
void llvm::appendToCompilerUsed | ( | Module & | M, |
ArrayRef< GlobalValue * > | Values | ||
) |
Adds global values to the llvm.compiler.used list.
Definition at line 161 of file ModuleUtils.cpp.
References appendToUsedList().
Referenced by addVariantDeclaration(), createMemprofHistogramFlagVar(), createProfileSamplingVar(), embedBufferInModule(), llvm::offloading::getOffloadEntryArray(), getTLIFunction(), llvm::PGOInstrumentationGenCreateVar::run(), and updateCompilerUsed().
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 73 of file ModuleUtils.cpp.
References appendToGlobalArray(), and F.
Referenced by llvm::SanitizerStatReport::finish(), lowerGlobalIFuncUsersAsGlobalCtor(), llvm::NumericalStabilitySanitizerPass::run(), llvm::RealtimeSanitizerPass::run(), llvm::TypeSanitizerPass::run(), and runImpl().
void llvm::appendToGlobalDtors | ( | Module & | M, |
Function * | F, | ||
int | Priority, | ||
Constant * | Data = nullptr |
||
) |
Same as appendToGlobalCtors(), but for global dtors.
Definition at line 77 of file ModuleUtils.cpp.
References appendToGlobalArray(), and F.
void llvm::appendToUsed | ( | Module & | M, |
ArrayRef< GlobalValue * > | Values | ||
) |
Adds global values to the llvm.used list.
Definition at line 157 of file ModuleUtils.cpp.
References appendToUsedList().
Referenced by llvm::sampleprofutil::createFSDiscriminatorVariable(), createSanitizerCtor(), and runImpl().
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.
M | The module to add debug information to. |
Functions | A range of functions to add debug information to. |
Banner | A prefix string to add to debug/error messages. |
ApplyToMF | A call back that will add debug information to the MachineFunction for a Function. If nullptr, then the MachineFunction (if any) will not be modified. |
Referenced by applyDebugify(), and NewPMDebugifyPass::run().
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 | |||
) |
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().
void llvm::applyFlowInference | ( | FlowFunction & | Func | ) |
Apply the profile inference algorithm for a given flow function.
Definition at line 1365 of file SampleProfileInference.cpp.
References applyFlowInference(), llvm::ProfiParams::CostBlockDec, llvm::ProfiParams::CostBlockEntryDec, llvm::ProfiParams::CostBlockEntryInc, llvm::ProfiParams::CostBlockInc, llvm::ProfiParams::CostBlockUnknownInc, llvm::ProfiParams::CostBlockZeroInc, llvm::ProfiParams::EvenFlowDistribution, llvm::ProfiParams::JoinIslands, and llvm::ProfiParams::RebalanceUnknown.
Definition at line 1219 of file RuntimeDyldELF.cpp.
Definition at line 994 of file RuntimeDyldELF.cpp.
References value.
Definition at line 990 of file RuntimeDyldELF.cpp.
References value.
Definition at line 998 of file RuntimeDyldELF.cpp.
References value.
Definition at line 1002 of file RuntimeDyldELF.cpp.
References value.
Definition at line 1006 of file RuntimeDyldELF.cpp.
References value.
Definition at line 1010 of file RuntimeDyldELF.cpp.
References value.
Definition at line 988 of file RuntimeDyldELF.cpp.
References value.
Definition at line 1213 of file RuntimeDyldELF.cpp.
Definition at line 311 of file SPIRVUtils.h.
References applyWrappers(), llvm::VectorType::get(), llvm::TypedPointerType::get(), llvm::Type::isTargetExtTy(), and isTypedPointerWrapper().
Referenced by applyWrappers(), and toTypedPointer().
const char * llvm::archToDevDivInternalArch | ( | llvm::Triple::ArchType | Arch | ) |
Definition at line 298 of file MSVCPaths.cpp.
References llvm::Triple::aarch64, llvm::Triple::arm, llvm::Triple::thumb, llvm::Triple::x86, and llvm::Triple::x86_64.
Referenced by getSubDirectoryPath().
const char * llvm::archToLegacyVCArch | ( | llvm::Triple::ArchType | Arch | ) |
Definition at line 280 of file MSVCPaths.cpp.
References llvm::Triple::aarch64, llvm::Triple::arm, llvm::Triple::thumb, llvm::Triple::x86, and llvm::Triple::x86_64.
Referenced by getSubDirectoryPath().
const char * llvm::archToWindowsSDKArch | ( | llvm::Triple::ArchType | Arch | ) |
Definition at line 264 of file MSVCPaths.cpp.
References llvm::Triple::aarch64, llvm::Triple::arm, llvm::Triple::thumb, llvm::Triple::x86, and llvm::Triple::x86_64.
Referenced by appendArchToWindowsSDKLibPath(), and getSubDirectoryPath().
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 1253 of file SLPVectorizer.cpp.
References all_of(), I, and mayHaveNonDefUseDependency().
Referenced by doesNotNeedToBeScheduled(), and doesNotNeedToSchedule().
bool llvm::AreStatisticsEnabled | ( | ) |
Check if statistics are enabled.
Definition at line 139 of file Statistic.cpp.
References Enabled, and EnableStats.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::LTOCodeGenerator::compileOptimized(), generateParamAccessSummary(), llvm::ModuleSummaryIndex::propagateAttributes(), llvm::ThinLTOCodeGenerator::run(), and llvm::DSEPass::run().
|
static |
Definition at line 166 of file NVPTXUtilities.cpp.
References findAllNVVMAnnotation(), and is_contained().
Referenced by isImageReadOnly(), isImageReadWrite(), isImageWriteOnly(), isParamGridConstant(), and isSampler().
Definition at line 167 of file ARMBaseInfo.h.
References llvm::ARMCC::AL, llvm::StringSwitch< T, R >::Case(), CC, llvm::StringSwitch< T, R >::Default(), llvm::ARMCC::EQ, llvm::ARMCC::GE, llvm::ARMCC::GT, llvm::ARMCC::HI, llvm::ARMCC::HS, llvm::ARMCC::LE, llvm::ARMCC::LO, llvm::ARMCC::LS, llvm::ARMCC::LT, llvm::ARMCC::MI, llvm::ARMCC::NE, llvm::ARMCC::PL, llvm::ARMCC::VC, and llvm::ARMCC::VS.
|
inlinestatic |
Definition at line 146 of file ARMBaseInfo.h.
References llvm::ARMCC::AL, CC, llvm::ARMCC::EQ, llvm::ARMCC::GE, llvm::ARMCC::GT, llvm::ARMCC::HI, llvm::ARMCC::HS, llvm::ARMCC::LE, llvm_unreachable, llvm::ARMCC::LO, llvm::ARMCC::LS, llvm::ARMCC::LT, llvm::ARMCC::MI, llvm::ARMCC::NE, llvm::ARMCC::PL, llvm::ARMCC::VC, and llvm::ARMCC::VS.
Referenced by llvm::ARMBaseInstrInfo::createMIROperandComment(), llvm::ARMInstPrinter::printMandatoryInvertedPredicateOperand(), llvm::ARMInstPrinter::printMandatoryPredicateOperand(), and llvm::ARMInstPrinter::printPredicateOperand().
Definition at line 139 of file ARMBaseInfo.h.
References llvm::StringSwitch< T, R >::Case(), CC, llvm::StringSwitch< T, R >::Default(), llvm::ARMVCC::Else, and llvm::ARMVCC::Then.
|
inlinestatic |
Definition at line 130 of file ARMBaseInfo.h.
References CC, llvm::ARMVCC::Else, llvm_unreachable, llvm::ARMVCC::None, and llvm::ARMVCC::Then.
Referenced by llvm::ARMInstPrinter::printVPTPredicateOperand().
|
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 1624 of file STLExtras.h.
References End, and get_array_pod_sort_comparator.
Referenced by casesAreContiguous(), llvm::object::computeSymbolSizes(), llvm::X86TargetLowering::ExpandInlineAsm(), 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().
|
inline |
Definition at line 1636 of file STLExtras.h.
References End.
|
inline |
Adapt std::less<T> for array_pod_sort.
Definition at line 1574 of file STLExtras.h.
llvm::ArrayRef | ( | const SmallVector< T, N > & | Vec | ) | -> ArrayRef< T > |
Deduction guide to construct an ArrayRef from a SmallVector.
llvm::ArrayRef | ( | const SmallVectorImpl< T > & | Vec | ) | -> ArrayRef< T > |
Deduction guide to construct an ArrayRef from a SmallVector.
llvm::ArrayRef | ( | const std::array< T, N > & | Vec | ) | -> ArrayRef< T > |
Deduction guide to construct an ArrayRef from a std::array.
Deduction guide to construct an ArrayRef from a std::vector.
Deduction guide to construct an ArrayRef from a range.
Deduction guide to construct an ArrayRef from a pointer and length.
Deduction guide to construct an ArrayRef from a C array.
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.") | |||
) |
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().
Definition at line 207 of file AArch64BaseInfo.h.
Referenced by llvm::AArch64InstPrinter::printInst().
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 584 of file Analysis.cpp.
References llvm::AttrBuilder::contains(), F, I, and llvm::AttrBuilder::removeAttribute().
Referenced by returnTypeIsEligibleForTailCall().
void llvm::avoidZeroOffsetLandingPad | ( | MachineFunction & | MF | ) |
Definition at line 267 of file BasicBlockSections.cpp.
References llvm::MachineBasicBlock::begin(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFunction::getSubtarget(), llvm::TargetInstrInfo::insertNoop(), llvm::MachineBasicBlock::isBeginSection(), llvm::MachineBasicBlock::isEHPad(), MBB, and MI.
Referenced by finishAdjustingBasicBlocksAndLandingPads().
Definition at line 256 of file MipsNaClELFStreamer.cpp.
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(), and G.
Referenced by breadth_first().
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(), and G.
Referenced by breadth_first().
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 3439 of file MachineScheduler.cpp.
References llvm::SUnit::getInstr(), MI, llvm::SUnit::NumPredsLeft, and llvm::SUnit::NumSuccsLeft.
Referenced by llvm::GenericScheduler::tryCandidate(), llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), and llvm::PPCPreRASchedStrategy::tryCandidate().
Provide wrappers to std::binary_search which take ranges instead of having to pass begin/end explicitly.
Definition at line 1965 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by isCoroutineIntrinsicName().
auto llvm::binary_search | ( | R && | Range, |
T && | Value, | ||
Compare | C | ||
) |
Definition at line 1971 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
|
inlinenoexcept |
Definition at line 89 of file bit.h.
Referenced by llvm::AArch64_AM::isSVEMaskOfIdenticalElements().
Returns the smallest integral power of two no smaller than Value if Value is nonzero.
Returns 1 otherwise.
Ex. bit_ceil(5) == 8.
The return value is undefined if the input is larger than the largest power of two representable in T.
Definition at line 342 of file bit.h.
References T.
Referenced by combineShiftToAVG(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), computeMinimumValueSizes(), computeRecurrenceType(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), gatherPossiblyVectorizableLoads(), llvm::TargetLoweringBase::getBitWidthForCttzElements(), getFloorFullVectorNumberOfElements(), getFullVectorNumberOfElements(), getPartNumElems(), llvm::EVT::getRoundIntegerType(), getVectorTypeBreakdownMVT(), llvm::TargetLowering::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >::SmallDenseMap(), and llvm::X86TargetLowering::targetShrinkDemandedConstant().
Returns the largest integral power of two no greater than Value if Value is nonzero.
Returns 0 otherwise.
Ex. bit_floor(5) == 4.
Definition at line 327 of file bit.h.
References bit_width(), and T.
Referenced by llvm::mca::ResourceManager::checkAvailability(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), findGISelOptimalMemOpLowering(), getCopyFromParts(), getCopyToParts(), getFloorFullVectorNumberOfElements(), llvm::RISCVSubtarget::getMaxLMULForFixedLengthVectors(), llvm::RISCVTTIImpl::getRegisterBitWidth(), llvm::RISCVTargetMachine::getSubtargetImpl(), getTestUnderMaskCond(), llvm::mca::initializeUsedResources(), llvm::LegalizerHelper::lowerLoad(), llvm::FoldingSetBase::reserve(), and llvm::LoopVectorizationCostModel::selectInterleaveCount().
Returns the number of bits needed to represent Value if Value is nonzero.
Returns 0 otherwise.
Ex. bit_width(5) == 3.
Definition at line 317 of file bit.h.
References countl_zero().
Referenced by bit_floor(), llvm::SelectionDAG::computeKnownBits(), llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeMinimumValueSizes(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), llvm::ScaledNumbers::getAdjusted(), getVScaleRange(), hasAllNBitUsers(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), isImmMskBitp(), llvm::AMDGPULegalizerInfo::legalizeWorkitemIDIntrinsic(), llvm::XCoreInstrInfo::loadImmediate(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::selectSHXADDOp(), translateSetCCForBranch(), and write_hex().
const std::error_category & llvm::BitcodeErrorCategory | ( | ) |
Definition at line 8316 of file BitcodeReader.cpp.
Referenced by make_error_code().
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, and make_range().
Referenced by llvm::CacheCost::getCacheCost(), and llvm::LoopNest::LoopNest().
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 725 of file LoopUtils.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), changeToUnreachable(), llvm::Instruction::copyMetadata(), llvm::IRBuilderBase::CreateBr(), llvm::LoopInfo::erase(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLoop(), formLCSSARecursively(), and SplitEdge().
Referenced by breakBackedgeIfNotTaken(), and UnrollRuntimeLoopRemainder().
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 285 of file AssumeBundleBuilder.cpp.
References EnableKnowledgeRetention, and I.
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 310 of file AssumeBundleBuilder.cpp.
References llvm::Instruction::getModule().
Referenced by llvm::InstCombinerImpl::visitCallInst().
|
static |
Helper function for building an atomic compare-exchange instruction.
Definition at line 710 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildICmp(), llvm::MachineIRBuilder::buildInstr(), buildLoadInst(), buildOpFromWrapper(), getIConstVal(), llvm::MachineOperand::getImm(), getMemSemanticsForStorageClass(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getRegClass(), getSPIRVMemSemantics(), getSPIRVScope(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::CmpInst::ICMP_EQ, llvm::MachineOperand::isReg(), llvm::SPIRVGlobalRegistry::isScalarOfType(), llvm::Register::isValid(), MRI, and llvm::LLT::scalar().
Referenced by generateAtomicInst().
|
static |
Helper function for building atomic flag instructions (e.g.
OpAtomicFlagTestAndSet).
Definition at line 890 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), buildMemSemanticsReg(), buildOpFromWrapper(), buildScopeReg(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), and MRI.
Referenced by generateAtomicInst().
|
static |
Helper function for building an atomic floating-type instruction.
Definition at line 868 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), and llvm::SPIRVGlobalRegistry::getSPIRVTypeID().
Referenced by generateAtomicFloatingInst().
|
static |
Helper function for translating atomic init to OpStore.
Definition at line 638 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), and buildOpFromWrapper().
Referenced by generateAtomicInst().
|
static |
Helper function for building an atomic load instruction.
Definition at line 652 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), getMemSemanticsForStorageClass(), llvm::SPIRVGlobalRegistry::getPointerStorageClass(), and llvm::SPIRVGlobalRegistry::getSPIRVTypeID().
Referenced by generateAtomicInst().
|
static |
Helper function for building atomic instructions.
Definition at line 812 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), buildMemSemanticsReg(), buildOpFromWrapper(), buildScopeReg(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), insertAssignInstr(), and MRI.
Referenced by generateAtomicInst().
Value * llvm::buildAtomicRMWValue | ( | 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.
Definition at line 52 of file LowerAtomic.cpp.
References llvm::AtomicRMWInst::Add, llvm::AtomicRMWInst::And, llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateFAdd(), llvm::IRBuilderBase::CreateFSub(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateICmpSGT(), llvm::IRBuilderBase::CreateICmpSLE(), llvm::IRBuilderBase::CreateICmpUGE(), llvm::IRBuilderBase::CreateICmpUGT(), llvm::IRBuilderBase::CreateICmpULE(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateMaxNum(), llvm::IRBuilderBase::CreateMinNum(), llvm::IRBuilderBase::CreateNot(), llvm::IRBuilderBase::CreateOr(), llvm::IRBuilderBase::CreateSelect(), llvm::IRBuilderBase::CreateSub(), llvm::IRBuilderBase::CreateXor(), llvm::AtomicRMWInst::FAdd, llvm::AtomicRMWInst::FMax, llvm::AtomicRMWInst::FMin, llvm::AtomicRMWInst::FSub, llvm::Value::getType(), llvm_unreachable, llvm::AtomicRMWInst::Max, llvm::AtomicRMWInst::Min, llvm::AtomicRMWInst::Nand, Or, llvm::AtomicRMWInst::Or, llvm::AtomicRMWInst::Sub, llvm::AtomicRMWInst::UDecWrap, llvm::AtomicRMWInst::UIncWrap, llvm::AtomicRMWInst::UMax, llvm::AtomicRMWInst::UMin, llvm::AtomicRMWInst::USubCond, llvm::AtomicRMWInst::USubSat, llvm::AtomicRMWInst::Xchg, and llvm::AtomicRMWInst::Xor.
Referenced by llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), lowerAtomicRMWInst(), and performMaskedAtomicOp().
|
static |
Helper function for building an atomic store instruction.
Definition at line 688 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addUse(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), getMemSemanticsForStorageClass(), and llvm::SPIRVGlobalRegistry::getPointerStorageClass().
Referenced by generateAtomicInst().
|
static |
Helper function for building barriers, i.e., memory/control ordering operations.
Definition at line 927 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addUse(), assert(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), getIConstVal(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), getSPIRVMemSemantics(), getSPIRVScope(), llvm::MachineFunction::getSubtarget(), llvm::Register::isValid(), MRI, llvm::SPIRV::DemangledBuiltin::Name, and report_fatal_error().
Referenced by generateAtomicInst(), and generateBarrierInst().
|
static |
Helper function building either a resulting scalar or vector bool register depending on the expected ResultType
.
Definition at line 434 of file SPIRVBuiltins.cpp.
References llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), llvm::MachineOperand::getImm(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVBoolType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getTypeForSPIRVType(), LLVMVectorType(), llvm::LLT::scalar(), llvm::MachineRegisterInfo::setRegClass(), and llvm::LLT::vector().
Referenced by generateGroupInst(), and generateRelationalInst().
|
static |
Helper function for building a load instruction for loading a builtin global variable of BuiltinValue
value.
Definition at line 496 of file SPIRVBuiltins.cpp.
References llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::SPIRVGlobalRegistry::buildGlobalVariable(), buildLoadInst(), llvm::MachineRegisterInfo::createVirtualRegister(), getLinkStringForBuiltIn(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVPointerType(), llvm::SPIRVGlobalRegistry::getPointerSize(), llvm::LLT::pointer(), Reg, llvm::MachineRegisterInfo::setType(), and storageClassToAddressSpace().
Referenced by generateBuiltinVar(), generateWaveInst(), and genWorkgroupQuery().
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::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateSelect(), llvm::Value::getType(), and Ptr.
Referenced by llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), and lowerAtomicCmpXchgInst().
|
static |
Definition at line 569 of file SPIRVBuiltins.cpp.
References llvm::SPIRVGlobalRegistry::buildConstantInt(), and llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType().
Referenced by buildAtomicCompareExchangeInst(), buildAtomicLoadInst(), buildAtomicStoreInst(), buildBarrierInst(), buildEnqueueKernel(), buildMemSemanticsReg(), buildScopeReg(), generateAsyncCopy(), generateGroupInst(), generateImageSizeQueryInst(), and generateKernelClockInst().
MachineInstr * llvm::buildDbgValueForSpill | ( | MachineBasicBlock & | BB, |
MachineBasicBlock::iterator | I, | ||
const MachineInstr & | Orig, | ||
int | FrameIndex, | ||
const SmallVectorImpl< const MachineOperand * > & | SpilledOperands | ||
) |
Definition at line 2432 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), BuildMI(), computeExprForSpill(), llvm::MachineInstr::debug_operands(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDebugVariable(), llvm::MachineInstr::getDesc(), I, is_contained(), llvm::MachineInstr::isDebugValueList(), and llvm::MachineInstr::isNonListDebugValue().
MachineInstr * llvm::buildDbgValueForSpill | ( | MachineBasicBlock & | BB, |
MachineBasicBlock::iterator | I, | ||
const MachineInstr & | Orig, | ||
int | FrameIndex, | ||
Register | SpillReg | ||
) |
Clone a DBG_VALUE whose value has been spilled to FrameIndex.
Definition at line 2409 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), assert(), BuildMI(), computeExprForSpill(), llvm::MachineInstr::debug_operands(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDebugVariable(), llvm::MachineInstr::getDesc(), I, llvm::MachineInstr::isDebugRef(), llvm::MachineInstr::isDebugValueList(), and llvm::MachineInstr::isNonListDebugValue().
bool llvm::BuildDebugInfoMDMap | ( | DenseMap< const Metadata *, TrackingMDRef > & | MD, |
CloneFunctionChangeType | Changes, | ||
DebugInfoFinder & | DIFinder, | ||
DISubprogram * | SPClonedWithinModule | ||
) |
Build a map of debug info to use during Metadata cloning.
Returns true if cloning would need module level changes and false if there would only be local changes.
Definition at line 155 of file CloneFunction.cpp.
References assert(), llvm::DebugInfoFinder::compile_units(), N, llvm::DebugInfoFinder::scopes(), llvm::DebugInfoFinder::subprogram_count(), llvm::DebugInfoFinder::subprograms(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace(), and llvm::DebugInfoFinder::types().
Referenced by CloneFunctionInto().
Error llvm::buildDuplicateError | ( | const std::pair< uint64_t, UnitIndexEntry > & | PrevE, |
const CompileUnitIdentifiers & | ID, | ||
StringRef | DWPName | ||
) |
|
static |
Definition at line 2190 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::buildIntrinsic(), DL, getBlockStructInstr(), getBlockStructType(), llvm::MachineIRBuilder::getDataLayout(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), getMachineInstrType(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateConstNullPtr(), getOrCreateSPIRVDeviceEventPointer(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVPointerType(), llvm::SPIRVGlobalRegistry::getPointerSize(), llvm::MachineOperand::getReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), I, llvm::MachineOperand::isReg(), isSpvIntrinsic(), MRI, llvm::LLT::pointer(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reg, llvm::SmallVectorBase< Size_T >::size(), and storageClassToAddressSpace().
Referenced by generateEnqueueInst().
|
static |
Definition at line 63 of file Debuginfod.cpp.
Referenced by getDebuginfodDebuginfoUrlPath(), getDebuginfodExecutableUrlPath(), and getDebuginfodSourceUrlPath().
|
static |
Helper function for building a load instruction loading into the DestinationReg
.
Definition at line 481 of file SPIRVBuiltins.cpp.
References llvm::MachineIRBuilder::buildLoad(), and createVirtualRegister().
Referenced by buildAtomicCompareExchangeInst(), and buildBuiltinVariableLoad().
|
static |
Definition at line 603 of file SPIRVBuiltins.cpp.
References buildConstantIntReg32(), getIConstVal(), getMemSemanticsForStorageClass(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getPointerStorageClass(), getSPIRVMemSemantics(), llvm::Register::isValid(), and MRI.
Referenced by buildAtomicFlagInst(), and buildAtomicRMWInst().
|
inline |
Definition at line 457 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr(), llvm::MIMetadata::getDL(), llvm::MIMetadata::getMMRAMetadata(), llvm::MachineBasicBlock::getParent(), llvm::MIMetadata::getPCSections(), I, llvm::MachineBasicBlock::insert(), MI, llvm::MachineInstrBuilder::setMMRAMetadata(), and llvm::MachineInstrBuilder::setPCSections().
|
inline |
This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
If I
is inside a bundle, then the newly inserted MachineInstr is added to the same bundle.
Definition at line 412 of file MachineInstrBuilder.h.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MIMetadata::getDL(), llvm::MIMetadata::getMMRAMetadata(), llvm::MachineBasicBlock::getParent(), llvm::MIMetadata::getPCSections(), I, llvm::MachineBasicBlock::insert(), MI, llvm::MachineInstrBuilder::setMMRAMetadata(), and llvm::MachineInstrBuilder::setPCSections().
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 2363 of file MachineInstr.cpp.
References BuildMI(), DL, llvm::MachineBasicBlock::getParent(), I, llvm::MachineBasicBlock::insert(), and MI.
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 2352 of file MachineInstr.cpp.
References BuildMI(), DL, llvm::MachineBasicBlock::getParent(), I, llvm::MachineBasicBlock::insert(), and MI.
|
inline |
This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register.
Definition at line 445 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr(), llvm::MIMetadata::getDL(), llvm::MIMetadata::getMMRAMetadata(), llvm::MachineBasicBlock::getParent(), llvm::MIMetadata::getPCSections(), I, llvm::MachineBasicBlock::insert(), MI, llvm::MachineInstrBuilder::setMMRAMetadata(), and llvm::MachineInstrBuilder::setPCSections().
|
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 393 of file MachineInstrBuilder.h.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MIMetadata::getDL(), llvm::MIMetadata::getMMRAMetadata(), llvm::MachineBasicBlock::getParent(), llvm::MIMetadata::getPCSections(), I, llvm::MachineBasicBlock::insert(), MI, llvm::MachineInstrBuilder::setMMRAMetadata(), and llvm::MachineInstrBuilder::setPCSections().
|
inline |
Definition at line 469 of file MachineInstrBuilder.h.
|
inline |
Definition at line 425 of file MachineInstrBuilder.h.
|
inline |
Definition at line 479 of file MachineInstrBuilder.h.
|
inline |
Definition at line 436 of file MachineInstrBuilder.h.
|
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 487 of file MachineInstrBuilder.h.
References BuildMI(), and llvm::MachineBasicBlock::end().
|
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 496 of file MachineInstrBuilder.h.
References BuildMI(), and llvm::MachineBasicBlock::end().
MachineInstrBuilder llvm::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.
Definition at line 2318 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), DL, llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), isValid(), llvm::MCInstrDesc::Opcode, and llvm::ArrayRef< T >::size().
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 2302 of file MachineInstr.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), DL, and isValid().
|
inline |
Builder interface. Specify how to create the initial instruction itself.
Definition at line 373 of file MachineInstrBuilder.h.
References llvm::MachineFunction::CreateMachineInstr(), llvm::MIMetadata::getDL(), llvm::MIMetadata::getMMRAMetadata(), llvm::MIMetadata::getPCSections(), llvm::MachineInstrBuilder::setMMRAMetadata(), and llvm::MachineInstrBuilder::setPCSections().
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::XtensaInstrInfo::adjustStackPtr(), llvm::MipsSEInstrInfo::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::AArch64InstrInfo::buildClearRegister(), llvm::X86InstrInfo::buildClearRegister(), buildDbgValueForSpill(), llvm::R600InstrInfo::buildDefaultInstruction(), buildDefCFAReg(), llvm::MachineIRBuilder::buildDirectDbgValue(), llvm::SIInstrInfo::buildExtractSubReg(), buildGitPtr(), llvm::MachineIRBuilder::buildIndirectDbgValue(), llvm::MachineIRBuilder::buildInstrNoInsert(), BuildMI(), buildMUBUFOffsetLoadStore(), buildOpDecorate(), buildOpName(), llvm::AArch64InstrInfo::buildOutlinedFrame(), 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(), constrainOperandRegClass(), llvm::FastISel::constrainOperandRegClass(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::SIInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::RISCVInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::ARCInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::BPFInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::LoongArchInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::RISCVInstrInfo::copyPhysRegVector(), copyPhysSubRegs(), llvm::ARMBaseInstrInfo::copyToCPSR(), createCallWithOps(), llvm::SwiftErrorValueTracking::createEntriesInEntryBlock(), llvm::PeelingModuloScheduleExpander::CreateLCSSAExitingBlock(), llvm::TargetInstrInfo::createPHIDestinationCopy(), llvm::SIInstrInfo::createPHIDestinationCopy(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::TargetInstrInfo::createPHISourceCopy(), llvm::SIInstrInfo::createPHISourceCopy(), createPostIncLoadStore(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::LoongArchRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::XtensaRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), llvm::AArch64TargetLowering::EmitAllocateSMESaveBuffer(), llvm::AArch64TargetLowering::EmitAllocateZABuffer(), emitARMRegPlusImmediate(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBuildPairF64Pseudo(), emitCalleeSavedRestores(), EmitCfiOffset(), 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(), emitDefineCFAWithFP(), 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::AArch64FrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::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::RISCVFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::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(), emitFrameOffsetAdj(), emitFROUND(), llvm::HexagonDAGToDAGISel::emitFunctionEntryCode(), llvm::AArch64TargetLowering::EmitGetSMESaveSize(), emitGPDisp(), llvm::SITargetLowering::emitGWSMemViolTestLoop(), emitIncrement(), emitIndirectDst(), emitIndirectSrc(), llvm::AArch64TargetLowering::EmitInitTPIDR2Object(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::XtensaTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::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(), emitPACCFI(), emitPACSymOffsetIntoX16(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::TargetLoweringBase::emitPatchPoint(), emitPostLd(), emitPostSt(), llvm::PPCTargetLowering::emitProbedAlloca(), llvm::XtensaFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::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::SparcFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::SystemZXPLINKFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), llvm::VEFrameLowering::emitPrologueInsns(), emitPseudoCTPOP(), emitPseudoXVINSGR2VR(), emitQuietFCMP(), emitReadCounterWidePseudo(), emitRegUpdate(), emitSCSEpilogue(), emitSCSPrologue(), emitSelectPseudo(), emitShadowCallStackEpilogue(), emitShadowCallStackPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), llvm::VETargetLowering::emitSjLjDispatchBlock(), emitSplitF64Pseudo(), llvm::X86FrameLowering::emitSPUpdate(), llvm::M68kFrameLowering::emitSPUpdate(), llvm::X86FrameLowering::emitStackProbe(), emitStackProbeInline(), emitStore(), emitT2RegPlusImmediate(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::AArch64TargetLowering::EmitTileLoad(), emitVecCondBranchPseudo(), emitVFROUND_NOEXCEPT_MASK(), emitVGSaveRestore(), emitXBegin(), llvm::AArch64TargetLowering::EmitZAInstr(), llvm::AArch64TargetLowering::EmitZero(), llvm::AArch64TargetLowering::EmitZTInstr(), llvm::SIInstrInfo::enforceOperandRCAlignment(), ensureEntrySetPrio(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::VEInstrInfo::expandExtendStackPseudo(), llvm::VEInstrInfo::expandGetStackTopPseudo(), expandLoadStackGuard(), llvm::ARMBaseInstrInfo::expandLoadStackGuardBase(), expandMOV32r1(), llvm::SIInstrInfo::expandMovDPP64(), llvm::M68kInstrInfo::ExpandMOVEM(), llvm::M68kInstrInfo::ExpandMOVI(), ExpandMOVImmSExti8(), llvm::M68kInstrInfo::ExpandMOVSZX_RR(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::VEInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::expandPostRAPseudo(), expandPseudoLogM(), expandPseudoVFMK(), llvm::M68kInstrInfo::ExpandPUSH_POP(), llvm::SparcTargetLowering::expandSelectCC(), expandSGPRCopy(), 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::ARMBaseInstrInfo::foldImmediate(), llvm::RISCVInstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldVGPRCopyIntoRegSequence(), forceReg(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), genAlternativeDpCodeSequence(), generateEndPgm(), generateStackAdjustment(), genFNegatedMAD(), genFusedMultiply(), genIndexedMultiply(), llvm::MipsInstrInfo::genInstrWithNewOpc(), genMaddR(), genNeg(), genShXAddAddShift(), genSubAdd2SubSub(), genTPEntry(), genTPLoopBody(), llvm::SIInstrInfo::getAddNoCarry(), getFunctionLiveInPhysReg(), llvm::CSKYInstrInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::VEInstrInfo::getGlobalBaseReg(), getIndirectSGPRIdx(), getOrCreateFrameHelper(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVArrayType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVBoolType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVPointerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getOrCreateUndef(), llvm::SITargetLowering::getPrefLoopAlignment(), llvm::FastISel::handleDbgInfo(), IfNeededExtSP(), IfNeededLDAWSP(), indirectCopyToAGPR(), llvm::MipsFunctionInfo::initGlobalBaseReg(), INITIALIZE_PASS(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::SystemZELFFrameLowering::inlineStackProbe(), llvm::SystemZXPLINKFrameLowering::inlineStackProbe(), llvm::ARCInstrInfo::insertBranch(), llvm::AArch64InstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::AVRInstrInfo::insertBranch(), llvm::BPFInstrInfo::insertBranch(), llvm::CSKYInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::LoongArchInstrInfo::insertBranch(), llvm::M68kInstrInfo::insertBranch(), llvm::MipsInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::NVPTXInstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::RISCVInstrInfo::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::LanaiInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), insertCFISameValue(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::SITargetLowering::insertCopiesSplitCSR(), insertCopy(), insertCSRRestores(), insertCSRSaves(), insertDivByZeroTrap(), llvm::SIInstrInfo::insertEQ(), InsertFPConstInst(), InsertFPImmInst(), llvm::XtensaInstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), llvm::AVRInstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::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::MipsInstrInfo::insertNop(), llvm::ErrataWorkaround::insertNop(), insertNopBeforeInstruction(), llvm::AArch64InstrInfo::insertOutlinedCall(), llvm::ARMBaseInstrInfo::insertOutlinedCall(), llvm::RISCVInstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), insertPHI(), insertRememberRestorePair(), llvm::SIInstrInfo::insertReturn(), llvm::SIInstrInfo::insertScratchExecCopy(), InsertSEH(), insertSEH(), llvm::SIInstrInfo::insertSelect(), llvm::AArch64InstrInfo::insertSelect(), llvm::PPCInstrInfo::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::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::AMDGPULegalizerInfo::legalizeTrapEndpgm(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::XtensaInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::ARCInstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), loadM0FromVGPR(), loadMBUFScalarOperandsFromVGPR(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::XtensaInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::LoongArchInstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::CSKYInstrInfo::loadRegFromStackSlot(), llvm::M68kInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::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::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), LowerFPToInt(), LowerMemcpy(), LowerMemset(), llvm::PPCRegisterInfo::lowerPrepareProbedAlloca(), llvm::PPCRegisterInfo::lowerQuadwordRestore(), llvm::PPCRegisterInfo::lowerQuadwordSpilling(), llvm::RISCVRegisterInfo::lowerVRELOAD(), llvm::RISCVRegisterInfo::lowerVSPILL(), llvm::PPCRegisterInfo::lowerWACCRestore(), llvm::PPCRegisterInfo::lowerWACCSpilling(), lowerWaveReduce(), llvm::Mips16InstrInfo::makeFrame(), makeM0Inst(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::RISCVRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::materializeImmediate(), llvm::PPCInstrInfo::materializeImmPostRA(), maybeRewriteToFallthrough(), moveAndTeeForMultiUse(), llvm::ARMBlockPlacement::moveBasicBlock(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::CSKYInstrInfo::movImm(), llvm::RISCVInstrInfo::mulImm(), llvm::SIInstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::RISCVInstrInfo::optimizeCondBranch(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), llvm::Thumb2InstrInfo::optimizeSelect(), llvm::RISCVInstrInfo::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::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::X86InstrInfo::replaceBranchWithTailCall(), replaceFI(), replaceFrameIndex(), reportIllegalCopy(), llvm::AArch64FrameLowering::resetCFIToInitialState(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::SGPRSpillBuilder::restore(), llvm::SystemZELFFrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZXPLINKFrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::AVRFrameLowering::restoreCalleeSavedRegisters(), llvm::M68kFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), llvm::RISCVFrameLowering::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::SelectionDAGISel::runOnMachineFunction(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::FastISel::selectCall(), selectCopy(), llvm::FastISel::selectFreeze(), llvm::FastISel::selectIntrinsicCall(), 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::SystemZELFFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZXPLINKFrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::M68kFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::RISCVFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillEmergencySGPR(), spillRegPairs(), llvm::SIRegisterInfo::spillSGPR(), spillVGPRtoAGPR(), splitEdge(), splitMBB(), storeRegPairToStackSlot(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::M68kInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::unfoldMemoryOperand(), unstackifyVRegsUsedInSplitBB(), and llvm::WebAssemblyFrameLowering::writeSPToGlobal().
|
inline |
This version of the builder sets up the first operand as a destination virtual register.
Definition at line 382 of file MachineInstrBuilder.h.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineFunction::CreateMachineInstr(), llvm::RegState::Define, llvm::MIMetadata::getDL(), llvm::MIMetadata::getMMRAMetadata(), llvm::MIMetadata::getPCSections(), llvm::MachineInstrBuilder::setMMRAMetadata(), and llvm::MachineInstrBuilder::setPCSections().
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; } |
||
) |
Direct function to compute a ModuleSummaryIndex
from a given module.
If operating within a pass manager which has defined ways to compute the BlockFrequencyInfo
for a given function, that can be provided via a std::function callback. Otherwise, this routine will manually construct that information.
Definition at line 914 of file ModuleSummaryAnalysis.cpp.
References A, all_of(), assert(), llvm::GlobalValue::canBeOmittedFromSymbolTable(), llvm::ModuleSymbolTable::CollectAsmSymbols(), collectUsedGlobalVariables(), computeAliasSummary(), computeFunctionSummary(), computeVariableSummary(), llvm::GlobalValue::DefaultVisibility, llvm::GlobalValueSummary::Definition, llvm::SmallPtrSetImplBase::empty(), F, G, llvm::GlobalValue::getGUID(), I, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GlobalValue::InternalLinkage, isConstant(), llvm::GlobalValue::isDeclaration(), llvm::GlobalValue::isDSOLocal(), ModuleSummaryDotFile, Name, report_fatal_error(), setLiveRoot(), llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_Weak, and llvm::GlobalObject::VCallVisibilityPublic.
Referenced by ProcessThinLTOModule(), llvm::ModuleSummaryIndexAnalysis::run(), and llvm::ModuleSummaryIndexWrapperPass::runOnModule().
|
static |
Definition at line 2110 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), BitWidth, llvm::SPIRVGlobalRegistry::buildConstantInt(), llvm::MachineIRBuilder::buildInstr(), llvm::IntegerType::get(), llvm::ArrayType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getInsertPt(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateConstIntArray(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::SPIRVGlobalRegistry::getPointerSize(), llvm::MachineOperand::getReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), llvm::MachineOperand::isReg(), isSpvIntrinsic(), llvm::Register::isValid(), MRI, and Size.
Referenced by generateEnqueueInst().
void llvm::buildOpDecorate | ( | Register | Reg, |
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII, | ||
SPIRV::Decoration::Decoration | Dec, | ||
const std::vector< uint32_t > & | DecArgs, | ||
StringRef | StrImm | ||
) |
Definition at line 139 of file SPIRVUtils.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), BuildMI(), finishBuildOpDecorate(), I, MBB, Reg, and TII.
void llvm::buildOpDecorate | ( | Register | Reg, |
MachineIRBuilder & | MIRBuilder, | ||
SPIRV::Decoration::Decoration | Dec, | ||
const std::vector< uint32_t > & | DecArgs, | ||
StringRef | StrImm | ||
) |
Definition at line 130 of file SPIRVUtils.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), finishBuildOpDecorate(), and Reg.
Referenced by llvm::SPIRVGlobalRegistry::buildGlobalVariable(), generateConvertInst(), generateSpecConstantInst(), llvm::SPIRVGlobalRegistry::getOrCreateGlobalVariableWithBinding(), and llvm::SPIRVCallLowering::lowerFormalArguments().
|
static |
Definition at line 622 of file SPIRVBuiltins.cpp.
Referenced by buildAtomicCompareExchangeInst(), buildAtomicFlagInst(), buildAtomicInitInst(), buildAtomicLoadInst(), buildAtomicRMWInst(), buildAtomicStoreInst(), buildBarrierInst(), generateAsyncCopy(), generateAtomicInst(), generateConstructInst(), generateConvertInst(), generateCoopMatrInst(), generateDotOrFMulInst(), generateGroupInst(), and generateIntelSubgroupsInst().
void llvm::buildOpName | ( | Register | Target, |
const StringRef & | Name, | ||
MachineInstr & | I, | ||
const SPIRVInstrInfo & | TII | ||
) |
Definition at line 111 of file SPIRVUtils.cpp.
References addStringImm(), llvm::MachineInstrBuilder::addUse(), BuildMI(), I, Name, and TII.
void llvm::buildOpName | ( | Register | Target, |
const StringRef & | Name, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 103 of file SPIRVUtils.cpp.
References addStringImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), and Name.
Referenced by llvm::SPIRVGlobalRegistry::buildGlobalVariable(), llvm::SPIRV::lowerBuiltinType(), and llvm::SPIRVCallLowering::lowerFormalArguments().
void llvm::buildOpSpirvDecorations | ( | Register | Reg, |
MachineIRBuilder & | MIRBuilder, | ||
const MDNode * | GVarMD | ||
) |
Definition at line 149 of file SPIRVUtils.cpp.
References llvm::MachineInstrBuilder::addImm(), addStringImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), E, llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::ConstantInt::getZExtValue(), I, Reg, and report_fatal_error().
Referenced by llvm::SPIRVGlobalRegistry::buildGlobalVariable(), and insertSpirvDecorations().
|
static |
Definition at line 576 of file SPIRVBuiltins.cpp.
References buildConstantIntReg32(), getIConstVal(), getSPIRVScope(), llvm::Register::isValid(), and MRI.
Referenced by buildAtomicFlagInst(), and buildAtomicRMWInst().
|
static |
Helper function for building either a vector or scalar select instruction depending on the expected ResultType
.
Definition at line 459 of file SPIRVBuiltins.cpp.
References AllOnes, llvm::SPIRVGlobalRegistry::buildConstantInt(), llvm::MachineIRBuilder::buildSelect(), llvm::APInt::getAllOnes(), llvm::SPIRVGlobalRegistry::getOrCreateConsIntVector(), llvm::SPIRVGlobalRegistry::getScalarOrVectorBitWidth(), and llvm::APInt::getZExtValue().
Referenced by generateGroupInst(), and generateRelationalInst().
|
inlinestatic |
Definition at line 160 of file SampleProfileLoaderBaseImpl.h.
References llvm::LazyCallGraph::buildRefSCCs(), llvm::CallingConv::C, F, N, llvm::LazyCallGraph::postorder_ref_sccs(), and skipProfileForFunction().
Referenced by llvm::SampleProfileMatcher::runOnModule().
void llvm::BuryPointer | ( | const void * | Ptr | ) |
Definition at line 15 of file BuryPointer.cpp.
References Idx, LLVM_ATTRIBUTE_USED, and Ptr.
Referenced by BuryPointer().
Definition at line 23 of file BuryPointer.h.
References BuryPointer(), and Ptr.
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.
|
constexprnoexcept |
Reverses the bytes in the given integer value V.
Definition at line 101 of file bit.h.
Referenced by llvm::sys::getSwappedBytes(), llvm::RawInstrProfReader< IntPtrT >::hasFormat(), llvm::InstrProfCorrelatorImpl< IntPtrT >::maybeSwap(), XXH3_len_1to3_128b(), XXH3_len_4to8_128b(), XXH3_len_4to8_64b(), XXH3_len_9to16_128b(), and XXH3_len_9to16_64b().
SmallVectorImpl< T >::const_pointer llvm::c_str | ( | SmallVectorImpl< T > & | str | ) |
Definition at line 194 of file WindowsSupport.h.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by createReservedKDBitsError(), llvm::logicalview::LVDWARFReader::createScopes(), llvm::DWARFYAML::emitDebugAddr(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::DWARFDebugNames::Header::extract(), llvm::DWARFDebugArangeSet::extract(), llvm::DWARFListTableHeader::extract(), llvm::DWARFDebugAddrTable::extractV5(), getIEEEProperties(), llvm::dwarf_linker::parallel::OutputSections::getSectionDescriptor(), LLVMGetDefaultTargetTriple(), LLVMNormalizeTargetTriple(), parseV5EntryFormat(), llvm::NVPTXInstPrinter::printLdStCode(), and writeListEntryAddress().
|
static |
Definition at line 62 of file NVPTXUtilities.cpp.
References assert(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm_unreachable, readIntVecFromMDNode(), and llvm::StringRef::str().
Referenced by cacheAnnotationFromMD(), findAllNVVMAnnotation(), and findOneNVVMAnnotation().
|
static |
Definition at line 98 of file NVPTXUtilities.cpp.
References cacheAnnotationFromMD(), llvm::Module::getNamedMetadata(), llvm::NamedMDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::NamedMDNode::getOperand().
void llvm::calculateClrEHStateNumbers | ( | const Function * | Fn, |
WinEHFuncInfo & | FuncInfo | ||
) |
Definition at line 649 of file WinEHPrepare.cpp.
References addClrEHHandler(), assert(), calculateStateNumbersForInvokes(), Catch, Cleanup, llvm::WinEHFuncInfo::ClrEHUnwindMap, llvm::WinEHFuncInfo::EHPadStateMap, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase< Size_T >::empty(), Fault, Finally, llvm::BasicBlock::getFirstNonPHI(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, llvm::SmallVectorImpl< T >::pop_back_val(), and reverse().
Referenced by llvm::FunctionLoweringInfo::set().
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 173 of file Instrumentation.h.
Referenced by createBranchWeights(), and setProfMetadata().
void llvm::calculateCXXStateForAsynchEH | ( | const BasicBlock * | BB, |
int | State, | ||
WinEHFuncInfo & | FuncInfo | ||
) |
Definition at line 243 of file WinEHPrepare.cpp.
References llvm::WinEHFuncInfo::BlockToStateMap, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::WinEHFuncInfo::CxxUnwindMap, llvm::WinEHFuncInfo::EHPadStateMap, llvm::SmallVectorBase< Size_T >::empty(), llvm::BasicBlock::getFirstNonPHI(), llvm::Function::getIntrinsicID(), llvm::BasicBlock::getTerminator(), I, llvm::WinEHFuncInfo::InvokeStateMap, llvm::Function::isIntrinsic(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and successors().
Referenced by calculateWinCXXEHStateNumbers().
void llvm::calculateDbgEntityHistory | ( | const MachineFunction * | MF, |
const TargetRegisterInfo * | TRI, | ||
DbgValueHistoryMap & | DbgValues, | ||
DbgLabelInstrMap & | DbgLabels | ||
) |
Definition at line 456 of file DbgEntityHistoryCalculator.cpp.
References llvm::DbgLabelInstrMap::addInstr(), assert(), llvm::MachineBasicBlock::back(), llvm::MachineFunction::back(), clobberRegisterUses(), llvm::MachineBasicBlock::empty(), llvm::DbgValueHistoryMap::Entry::endEntry(), llvm::MachineInstr::FrameDestroy, llvm::MachineInstr::FrameSetup, llvm::DbgValueHistoryMap::getEntry(), llvm::TargetLoweringBase::getStackPointerRegisterToSaveRestore(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), handleNewDebugValue(), Idx, llvm::DbgValueHistoryMap::Entry::isClosed(), llvm::DbgValueHistoryMap::Entry::isDbgValue(), llvm::Register::isPhysicalRegister(), llvm::MCRegAliasIterator::isValid(), llvm::DILocalVariable::isValidLocationForIntrinsic(), llvm::DILabel::isValidLocationForIntrinsic(), MBB, MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::DbgValueHistoryMap::startClobber(), and TRI.
Referenced by llvm::DebugHandlerBase::beginFunction().
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 71 of file RegAllocScore.cpp.
References calculateRegAllocScore(), llvm::MachineBlockFrequencyInfo::getBlockFreqRelativeToEntryBlock(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFunction::getSubtarget(), llvm::TargetInstrInfo::isTriviallyReMaterializable(), MBB, and MI.
Referenced by calculateRegAllocScore().
RegAllocScore llvm::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.
Definition at line 84 of file RegAllocScore.cpp.
References MBB, MI, llvm::RegAllocScore::onCheapRemat(), llvm::RegAllocScore::onCopy(), llvm::RegAllocScore::onExpensiveRemat(), llvm::RegAllocScore::onLoad(), llvm::RegAllocScore::onLoadStore(), llvm::RegAllocScore::onStore(), and Total.
void llvm::calculateSEHStateForAsynchEH | ( | const BasicBlock * | BB, |
int | State, | ||
WinEHFuncInfo & | FuncInfo | ||
) |
Definition at line 304 of file WinEHPrepare.cpp.
References llvm::WinEHFuncInfo::BlockToStateMap, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::WinEHFuncInfo::EHPadStateMap, llvm::SmallVectorBase< Size_T >::empty(), Filter, llvm::BasicBlock::getFirstNonPHI(), llvm::Function::getIntrinsicID(), llvm::BasicBlock::getTerminator(), I, llvm::WinEHFuncInfo::InvokeStateMap, llvm::Function::isIntrinsic(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::WinEHFuncInfo::SEHUnwindMap, and successors().
Referenced by calculateSEHStateNumbers().
void llvm::calculateSEHStateNumbers | ( | const Function * | ParentFn, |
WinEHFuncInfo & | FuncInfo | ||
) |
Definition at line 588 of file WinEHPrepare.cpp.
References calculateSEHStateForAsynchEH(), calculateSEHStateNumbers(), calculateStateNumbersForInvokes(), llvm::Function::getEntryBlock(), llvm::Module::getModuleFlag(), llvm::GlobalValue::getParent(), isTopLevelPadForMSVC(), and llvm::WinEHFuncInfo::SEHUnwindMap.
Referenced by calculateSEHStateNumbers(), calculateSEHStateNumbers(), and llvm::FunctionLoweringInfo::set().
|
static |
Definition at line 80 of file LoopBoundSplit.cpp.
References BitWidth, Cond, llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getConstant(), llvm::ScalarEvolution::getExitCount(), llvm::APInt::getMaxValue(), llvm::ScalarEvolution::getOne(), llvm::APInt::getSignedMaxValue(), llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::ScalarEvolution::isKnownPredicate(), and llvm::CmpInst::isSigned().
Referenced by hasProcessableCondition().
void llvm::calculateWasmEHInfo | ( | const Function * | F, |
WasmEHFuncInfo & | EHInfo | ||
) |
Definition at line 383 of file WasmEHPrepare.cpp.
References llvm::BasicBlock::begin(), F, llvm::BasicBlock::getFirstNonPHI(), llvm::BasicBlock::isEHPad(), and llvm::WasmEHFuncInfo::setUnwindDest().
Referenced by llvm::FunctionLoweringInfo::set().
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 612 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().
void llvm::call_once | ( | once_flag & | flag, |
Function && | F, | ||
Args &&... | ArgList | ||
) |
Execute the function specified as a parameter once.
Typical usage:
flag | Flag used for tracking whether or not this has run. |
F | Function 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().
Pass * llvm::callDefaultCtor | ( | ) |
Definition at line 82 of file PassSupport.h.
References PassName.
Pass * llvm::callDefaultCtor< RegAllocEvictionAdvisorAnalysis > | ( | ) |
Specialization for the API used by the analysis infrastructure to create an instance of the eviction advisor.
Definition at line 94 of file RegAllocEvictionAdvisor.cpp.
References createDevelopmentModeAdvisor(), createReleaseModeAdvisor(), and Mode.
Pass * llvm::callDefaultCtor< RegAllocPriorityAdvisorAnalysis > | ( | ) |
Specialization for the API used by the analysis infrastructure to create an instance of the priority advisor.
Definition at line 100 of file RegAllocPriorityAdvisor.cpp.
References createDevelopmentModePriorityAdvisor(), createReleaseModePriorityAdvisor(), and Mode.
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.
Definition at line 3618 of file Local.cpp.
References F, llvm::TargetLibraryInfo::getLibFunc(), and llvm::TargetLibraryInfo::has().
Referenced by needsStatepoint(), and llvm::RewriteStatepointsForGC::runOnFunction().
canConstantFoldCallTo - Return true if its even possible to fold a call to the specified function.
Definition at line 1565 of file ConstantFolding.cpp.
References F, Name, and llvm::Intrinsic::not_intrinsic.
Referenced by CanConstantFold(), and tryConstantFoldCall().
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 9167 of file ValueTracking.cpp.
References all_of(), llvm::SelectPatternResult::Flavor, I, llvm::SelectPatternResult::isMinOrMax(), LHS, llvm_unreachable, llvm::PatternMatch::m_OneUse(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), matchSelectPattern(), llvm::Intrinsic::not_intrinsic, RHS, SPF_FMAXNUM, SPF_FMINNUM, SPF_SMAX, SPF_SMIN, SPF_UMAX, SPF_UMIN, and SPF_UNKNOWN.
Referenced by llvm::slpvectorizer::BoUpSLP::transformNodes().
Definition at line 7636 of file ValueTracking.cpp.
Referenced by llvm::ScalarEvolution::canReuseInstruction(), impliesPoison(), and simplifyWithOpsReplaced().
bool llvm::canCreatePoison | ( | Register | Reg, |
const MachineRegisterInfo & | MRI, | ||
bool | ConsiderFlagsAndMetadata = true |
||
) |
Returns true if Reg
can create poison from non-poison operands.
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 7630 of file ValueTracking.cpp.
Referenced by llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), isGuaranteedNotToBeUndefOrPoison(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), and llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating().
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 1954 of file Utils.cpp.
References MRI, and UndefOrPoison.
|
inline |
Returns true if the possibility of a signaling NaN can be safely ignored.
Definition at line 83 of file FPEnv.h.
References llvm::fp::ebIgnore, and llvm::FastMathFlags::noNaNs().
Referenced by simplifyFAddInst(), and simplifyFSubInst().
bool llvm::canInstructionHaveMMRAs | ( | const Instruction & | I | ) |
I
can have !mmra metadata. Definition at line 166 of file MemoryModelRelaxationAnnotations.cpp.
References I, and isReadWriteMemCall().
Returns true if S
is defined and never is equal to signed/unsigned max.
Definition at line 1427 of file LoopUtils.cpp.
References BitWidth, llvm::ScalarEvolution::getConstant(), llvm::APInt::getMaxValue(), llvm::APInt::getSignedMaxValue(), llvm::SCEV::getType(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), and Signed.
Referenced by llvm::LoopStructure::parseLoopStructure().
Returns true if S
is defined and never is equal to signed/unsigned min.
Definition at line 1416 of file LoopUtils.cpp.
References BitWidth, llvm::ScalarEvolution::getConstant(), llvm::APInt::getMinValue(), llvm::APInt::getSignedMinValue(), llvm::SCEV::getType(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), and Signed.
Referenced by llvm::LoopStructure::parseLoopStructure(), and llvm::LoopConstrainer::run().
|
inline |
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 561 of file ValueTracking.h.
References computeKnownFPClass(), Depth, fcNegZero, and llvm::KnownFPClass::isKnownNeverNegZero().
Referenced by foldSelectBinOpIdentity(), simplifyFAddInst(), simplifyFSubInst(), and llvm::InstCombinerImpl::visitFSub().
|
inline |
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 575 of file ValueTracking.h.
References llvm::KnownFPClass::cannotBeOrderedLessThanZero(), computeKnownFPClass(), Depth, and llvm::KnownFPClass::OrderedLessThanZeroMask.
Referenced by llvm::AMDGPULibCalls::fold(), and foldSqrt().
|
static |
Definition at line 989 of file ArchiveWriter.cpp.
References llvm::sys::fs::make_absolute(), P, and llvm::sys::path::remove_dots().
Referenced by computeArchiveRelativePath().
Definition at line 83 of file LoopPeel.cpp.
References all_of(), DisableAdvancedPeeling, and IsBlockFollowedByDeoptOrUnreachable().
Referenced by computePeelCount(), llvm::HexagonTTIImpl::getPeelingPreferences(), and peelLoop().
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 1483 of file InstrProf.cpp.
References assert(), llvm::GlobalValue::AvailableExternallyLinkage, F, llvm::GlobalValue::isDiscardableIfUnused(), and needsComdatForCounter().
Referenced by canRenameComdat(), and getVarName().
bool llvm::canReplaceOperandWithVariable | ( | const Instruction * | I, |
unsigned | OpIdx | ||
) |
Given an instruction, is it legal to set operand OpIdx to a non-constant value?
Definition at line 4209 of file Local.cpp.
References gep_type_begin(), I, and llvm::generic_gep_type_iterator< ItTy >::isStruct().
Referenced by canSinkInstructions().
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 800 of file Loads.cpp.
References assert(), DL, From, llvm::Value::getType(), and isPointerAlwaysReplaceable().
bool llvm::canReplacePointersInUseIfEqual | ( | const Use & | U, |
const Value * | To, | ||
const DataLayout & | DL | ||
) |
Definition at line 788 of file Loads.cpp.
References assert(), DL, llvm::Value::getType(), isPointerAlwaysReplaceable(), llvm::Type::isPointerTy(), and isPointerUseReplacable().
bool llvm::canReplaceReg | ( | Register | DstReg, |
Register | SrcReg, | ||
MachineRegisterInfo & | MRI | ||
) |
Check if DstReg can be replaced with SrcReg depending on the register constraints.
Definition at line 201 of file Utils.cpp.
References llvm::Register::isPhysical(), and MRI.
Referenced by llvm::GIMatchTableExecutor::executeMatchTable(), llvm::CombinerHelper::matchBinOpSameVal(), llvm::CombinerHelper::matchCombineCopy(), llvm::CombinerHelper::matchOperandIsZero(), llvm::CombinerHelper::matchRedundantAnd(), llvm::CombinerHelper::matchRedundantOr(), llvm::CombinerHelper::matchSelectSameVal(), llvm::LegalizationArtifactCombiner::replaceRegOrBuildCopy(), llvm::CombinerHelper::replaceSingleDefInstWithOperand(), llvm::CombinerHelper::replaceSingleDefInstWithReg(), and llvm::InstructionSelect::selectInstr().
|
inline |
Returns true if the rounding mode RM may be QRM at compile time or at run time.
Definition at line 77 of file FPEnv.h.
References Dynamic.
Referenced by simplifyFAddInst(), and simplifyFSubInst().
Definition at line 93 of file EHPersonalities.cpp.
References classifyEHPersonality(), F, and isAsynchronousEHPersonality().
Referenced by markAliveBlocks(), and llvm::AAIsDead::mayCatchAsynchronousExceptions().
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 1161 of file LICM.cpp.
References assert(), llvm::LoopBase< BlockT, LoopT >::contains(), DEBUG_TYPE, llvm::MemoryEffectsBase< LocationEnum >::doesNotAccessMemory(), llvm::MemorySSA::dominates(), llvm::OptimizationRemarkEmitter::emit(), llvm::MemoryLocation::get(), llvm::MemorySSA::getBlockAccesses(), llvm::LoopBase< BlockT, LoopT >::getBlocks(), getClobberingMemoryAccess(), llvm::MemorySSA::getMemoryAccess(), llvm::AAResults::getMemoryEffects(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::BatchAAResults::getModRefInfo(), llvm::AAResults::getModRefInfoMask(), I, Invalidated, llvm::MemorySSA::isLiveOnEntryDef(), isLoadInvariantInLoop(), llvm::Loop::isLoopInvariant(), isModOrRefSet(), isModSet(), llvm::PatternMatch::match(), MRI, llvm::MemoryEffectsBase< LocationEnum >::onlyAccessesArgPointees(), llvm::MemoryEffectsBase< LocationEnum >::onlyReadsMemory(), and pointerInvalidatedByLoop().
Referenced by hoistRegion(), sinkLoopInvariantInstructions(), and sinkRegion().
|
static |
Definition at line 178 of file LoopBoundSplit.cpp.
References Cond, llvm::BranchInst::getCondition(), llvm::BasicBlock::getTerminator(), hasProcessableCondition(), and isProcessableCondBI().
Referenced by splitLoopBound().
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.
Definition at line 756 of file Error.h.
References llvm_unreachable, and OS.
Referenced by llvm::orc::EPCGenericJITLinkMemoryManager::InFlightAlloc::abandon(), addPadding(), llvm::orc::EPCGenericJITLinkMemoryManager::allocate(), llvm::codeview::ContinuationRecordBuilder::begin(), llvm::MCPseudoProbeDecoder::buildGUID2FuncDescMap(), llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), llvm::FileCheckString::CheckNot(), llvm::orc::cloneToNewContext(), commitFpm(), llvm::orc::COFFPlatform::Create(), llvm::msf::WritableMappedBlockStream::createFpmStream(), llvm::ARMAsmBackendDarwin::createObjectTargetWriter(), createRecord(), llvm::OpenMPIRBuilder::createTargetData(), llvm::orc::EPCGenericJITLinkMemoryManager::deallocate(), llvm::DebuginfodServer::DebuginfodServer(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), llvm::orc::SharedMemoryMapper::deinitialize(), llvm::object::describe(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::MCStreamer::emitDwarfFileDirective(), llvm::MCJIT::emitObject(), 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::MCDwarfLineTable::getFile(), llvm::MCDwarfDwoLineTable::getFile(), llvm::object::COFFObjectFile::getHybridObjectView(), llvm::DWARFDataExtractor::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(), llvm::pdb::PDBFile::hasPDBIpiStream(), importedSymbolBegin(), importedSymbolEnd(), llvm::orc::SharedMemoryMapper::initialize(), isCodeViewDebugSubsection(), isDebugSSection(), isDebugTSection(), llvm::object::XCOFFSymbolRef::isFunction(), 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::PerfSupportPlugin::modifyPassConfig(), llvm::orc::VTuneSupportPlugin::modifyPassConfig(), llvm::pdb::NativeEnumGlobals::NativeEnumGlobals(), llvm::orc::ConcurrentIRCompiler::operator()(), llvm::Pattern::parsePattern(), llvm::orc::PerfSupportPlugin::PerfSupportPlugin(), 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(), llvm::codeview::ContinuationRecordBuilder::writeMemberType(), llvm::orc::InProcessMemoryMapper::~InProcessMemoryMapper(), and llvm::orc::PerfSupportPlugin::~PerfSupportPlugin().
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.
Definition at line 815 of file Error.h.
References E, llvm_unreachable, and OS.
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.
Definition at line 784 of file Error.h.
References E, llvm_unreachable, and OS.
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().
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().
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().
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().
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(), and isUnpackedStructLiteral().
Referenced by canVectorizeTy().
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 84 of file VectorTypeUtils.h.
References canVectorizeStructTy(), llvm::VectorType::isValidElementType(), and llvm::Type::isVoidTy().
Referenced by canWidenCallReturnType().
Returns true if the call return type Ty
can be widened by the loop vectorizer.
Definition at line 783 of file LoopVectorizationLegality.cpp.
References canVectorizeTy().
|
inline |
Definition at line 1301 of file DenseMap.h.
References X.
|
inline |
Definition at line 1286 of file SmallVector.h.
References capacity_in_bytes(), and X.
Definition at line 22 of file Capacity.h.
|
inline |
|
inline |
Definition at line 295 of file ModRef.h.
References Address, AddressIsNull, and CC.
Referenced by operator<<().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 303 of file ModRef.h.
References CC, Provenance, and ReadProvenance.
Referenced by operator<<().
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<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(), and llvm::CastInfo< To, From, Enable >::doCast().
Referenced by LowerVECTOR_SHUFFLE_i1().
Definition at line 571 of file Casting.h.
References assert(), and llvm::CastInfo< To, From, Enable >::doCast().
Definition at line 577 of file Casting.h.
References assert(), and llvm::CastInfo< To, From, Enable >::doCast().
cast_if_present<X> - Functionally identical to cast, except that a null value is accepted.
Definition at line 689 of file Casting.h.
References assert(), llvm::CastInfo< To, From, Enable >::castFailed(), llvm::detail::isPresent(), and llvm::detail::unwrapValue().
Definition at line 711 of file Casting.h.
References llvm::UniquePtrCast< To, From, Derived >::castFailed(), llvm::UniquePtrCast< To, From, Derived >::doCast(), and llvm::detail::isPresent().
Definition at line 696 of file Casting.h.
References assert(), llvm::CastInfo< To, From, Enable >::castFailed(), llvm::detail::isPresent(), and llvm::detail::unwrapValue().
Definition at line 703 of file Casting.h.
References assert(), llvm::CastInfo< To, From, Enable >::castFailed(), llvm::detail::isPresent(), and llvm::detail::unwrapValue().
bool llvm::CC_AArch64_AAPCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Arm64EC_CFGuard_Check | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Arm64EC_Thunk | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Arm64EC_Thunk_Native | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Arm64EC_VarArg | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_DarwinPCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_DarwinPCS_ILP32_VarArg | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_DarwinPCS_VarArg | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_GHC | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Preserve_None | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Win64_CFGuard_Check | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Win64_VarArg | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_AArch64_Win64PCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForCall().
bool llvm::CC_ARM_AAPCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_ARM_AAPCS_VFP | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_ARM_APCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_ARM_APCS_GHC | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_ARM_Win32_CFGuard_Check | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
|
static |
Definition at line 25 of file CSKYCallingConv.h.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), ArgGPRs, llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), and Reg.
|
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::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::M68kCCState::ArgTypeList, End, llvm::CCValAssign::getReg(), I, No, and Reg.
bool llvm::CC_PPC32_SVR4 | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_PPC32_SVR4_ByVal | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_PPC32_SVR4_VarArg | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_PPC64_ELF | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::PPCTargetLowering::ccAssignFnForCall().
bool llvm::CC_PPC64_ELF_FIS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::CC_RISCV | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State, | ||
bool | IsFixed, | ||
bool | IsRet, | ||
Type * | OrigTy | ||
) |
Definition at line 324 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, llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), allocateRVVReg(), llvm::CCState::AllocateStack(), ArgFPR16s, ArgFPR32s, ArgFPR64s, ArgGPRs, assert(), llvm::CCValAssign::BCvt, CC_RISCVAssign2XLen(), llvm::SmallVectorImpl< T >::clear(), DL, llvm::SmallVectorBase< Size_T >::empty(), getArgGPR16s(), getArgGPR32s(), llvm::RISCV::getArgGPRs(), llvm::CCValAssign::getCustomMem(), llvm::CCValAssign::getCustomReg(), llvm::MachineFunction::getDataLayout(), llvm::CCState::getFirstUnallocated(), llvm::CCState::getMachineFunction(), llvm::CCValAssign::getMem(), llvm::ISD::ArgFlagsTy::getNonZeroOrigAlign(), llvm::CCValAssign::getPending(), llvm::CCState::getPendingArgFlags(), llvm::CCState::getPendingLocs(), 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::MVT::isVector(), llvm_unreachable, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::RISCVTargetLowering::CanLowerReturn(), llvm::RISCVCallLowering::canLowerReturn(), llvm::RISCVCallLowering::lowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::RISCVCallLowering::lowerFormalArguments(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::RISCVCallLowering::lowerReturn(), and llvm::RISCVTargetLowering::LowerReturn().
bool llvm::CC_RISCV_FastCC | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State, | ||
bool | IsFixed, | ||
bool | IsRet, | ||
Type * | OrigTy | ||
) |
Definition at line 606 of file RISCVCallingConv.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), allocateRVVReg(), llvm::CCState::AllocateStack(), ArgGPRs, llvm::CCValAssign::getCustomReg(), getFastCCArgGPRF16s(), getFastCCArgGPRF32s(), getFastCCArgGPRs(), llvm::CCState::getFirstUnallocated(), llvm::CCState::getMachineFunction(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getScalarSizeInBits(), llvm::MVT::getSizeInBits(), llvm::MVT::getStoreSize(), llvm::MachineFunction::getSubtarget(), llvm::RISCVSubtarget::getTargetABI(), llvm::RISCVSubtarget::getTargetLowering(), llvm::RISCVSubtarget::getXLen(), llvm::RISCVSubtarget::getXLenVT(), llvm::CCValAssign::Indirect, llvm::RISCVSubtarget::is64Bit(), llvm::MVT::isFixedLengthVector(), llvm::MVT::isScalableVector(), llvm::MVT::isVector(), Offset, and llvm::MaybeAlign::valueOrOne().
Referenced by llvm::RISCVCallLowering::lowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::RISCVCallLowering::lowerFormalArguments(), llvm::RISCVTargetLowering::LowerFormalArguments(), and llvm::RISCVCallLowering::lowerReturn().
bool llvm::CC_RISCV_GHC | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Definition at line 727 of file RISCVCallingConv.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::getMachineFunction(), llvm::CCValAssign::getReg(), llvm::MachineFunction::getSubtarget(), llvm::RISCVSubtarget::is64Bit(), llvm::ISD::ArgFlagsTy::isNest(), and report_fatal_error().
Referenced by llvm::RISCVTargetLowering::LowerCall(), and llvm::RISCVTargetLowering::LowerFormalArguments().
|
inline |
Definition at line 222 of file SystemZCallingConv.h.
References llvm_unreachable.
|
inline |
Definition at line 227 of file SystemZCallingConv.h.
References report_fatal_error().
|
inline |
Definition at line 94 of file SystemZCallingConv.h.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::SmallVectorImpl< T >::clear(), llvm::SystemZ::ELFArgGPRs, llvm::SmallVectorBase< Size_T >::empty(), llvm::CCState::getMachineFunction(), llvm::CCValAssign::getPending(), llvm::CCState::getPendingLocs(), llvm::MachineFunction::getSubtarget(), llvm::CCValAssign::Indirect, llvm::ISD::ArgFlagsTy::isSplit(), llvm::ISD::ArgFlagsTy::isSplitEnd(), llvm::SystemZSubtarget::isTargetELF(), llvm::SystemZSubtarget::isTargetXPLINK64(), llvm_unreachable, Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), Reg, and llvm::SystemZ::XPLINK64ArgGPRs.
bool llvm::CC_X86 | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::X86CallLowering::lowerCall(), and llvm::X86CallLowering::lowerFormalArguments().
|
inline |
Definition at line 178 of file SystemZCallingConv.h.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::CCValAssign::BCvt, llvm::CCValAssign::getCustomMem(), llvm::CCValAssign::getReg(), and Offset.
|
inline |
Definition at line 146 of file SystemZCallingConv.h.
References llvm::CCValAssign::ZExt.
|
inline |
Definition at line 156 of file SystemZCallingConv.h.
References llvm::CCState::AllocateReg(), I, llvm::MVT::is128BitVector(), llvm::CCState::isAllocated(), llvm::SystemZ::XPLINK64ArgFPRs, llvm::SystemZ::XPLINK64ArgGPRs, and llvm::SystemZ::XPLINK64NumArgFPRs.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::ceilDiv | ( | const DynamicAPInt & | LHS, |
const DynamicAPInt & | RHS | ||
) |
Definition at line 358 of file DynamicAPInt.h.
|
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 160 of file Format.h.
References llvm::FormattedString::JustifyCenter.
const std::error_category & llvm::cgdata_category | ( | ) |
Definition at line 93 of file CodeGenData.cpp.
Referenced by make_error_code().
CallInst * llvm::changeToCall | ( | InvokeInst * | II, |
DomTreeUpdater * | DTU = nullptr |
||
) |
This function converts the specified invoke into a normal call.
Definition at line 2975 of file Local.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), llvm::BranchInst::Create(), createCallMatchingInvoke(), II, llvm::Instruction::insertBefore(), llvm::BasicBlock::removePredecessor(), and llvm::Value::takeName().
Referenced by markAliveBlocks(), nullifySetjmp(), and removeUnwindEdge().
BasicBlock * llvm::changeToInvokeAndSplitBasicBlock | ( | CallInst * | CI, |
BasicBlock * | UnwindEdge, | ||
DomTreeUpdater * | DTU = nullptr |
||
) |
Convert the CallInst to InvokeInst with the specified unwind edge basic block.
This also splits the basic block where CI is located, because InvokeInst is a terminator instruction. Returns the newly split basic block.
Definition at line 2995 of file Local.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), llvm::CallBase::args(), llvm::BasicBlock::back(), llvm::InvokeInst::Create(), llvm::Instruction::eraseFromParent(), llvm::CallBase::getAttributes(), llvm::CallBase::getCalledOperand(), llvm::CallBase::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::CallBase::getFunctionType(), llvm::Instruction::getMetadata(), llvm::Value::getName(), llvm::CallBase::getOperandBundlesAsDefs(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), II, llvm::Value::replaceAllUsesWith(), and SplitBlock().
Referenced by HandleCallsInBlockInlinedThroughInvoke(), and llvm::EscapeEnumerator::Next().
unsigned llvm::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.
Definition at line 2909 of file Local.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), llvm::MemorySSAUpdater::changeToUnreachable(), llvm::BasicBlock::end(), llvm::BasicBlock::flushTerminatorDbgRecords(), llvm::PoisonValue::get(), I, llvm::SmallSet< T, N, C >::insert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallSet< T, N, C >::size(), Successor, and successors().
Referenced by breakLoopBackedge(), llvm::coro::BaseCloner::create(), InlineFunction(), llvm::coro::Shape::invalidateCoroutine(), markAliveBlocks(), runIPSCCP(), runSCCP(), simplifyOneLoop(), and UnrollLoop().
Definition at line 163 of file Error.cpp.
References llvm::Init::convertInitializerTo(), llvm::IntRecTy::get(), llvm::Init::getRecordKeeper(), and PrintError().
Referenced by llvm::Record::checkRecordAssertions().
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") | |||
) |
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
stream_to_check | The stream to be checked |
Definition at line 18 of file SystemUtils.cpp.
References errs(), and llvm::raw_ostream::is_displayed().
Definition at line 9562 of file PPCISelLowering.cpp.
References llvm::APFloat::convert(), llvm::APFloatBase::IEEEsingle(), llvm::APFloat::isDenormal(), and llvm::APFloatBase::rmNearestTiesToEven.
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.
M | The module to collect debug information from. |
Functions | A range of functions to collect debug information from. |
DebugInfoBeforePass | DI metadata before a pass. |
Banner | A prefix string to add to debug/error messages. |
NameOfWrappedPass | A name of a pass to add to debug/error messages. |
Definition at line 540 of file Debugify.cpp.
References checkFunctions(), checkInstructions(), checkVars(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::count(), dbgs(), DebugInfoPerPass::DIFunctions, DebugInfoPerPass::DILocations, DebugInfoPerPass::DIVariables, llvm::StringRef::empty(), llvm::json::Array::empty(), F, filterDbgVars(), getFilename(), I, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), DebugInfoPerPass::InstToDelete, LLVM_DEBUG, and writeJSON().
Referenced by llvm::DebugifyEachInstrumentation::registerCallbacks(), and NewPMCheckDebugifyPass::run().
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
.
std::nullopt
otherwise. Definition at line 46 of file CheckedArithmetic.h.
References LHS, RHS, and llvm::APInt::sadd_ov().
Referenced by checkedMulAdd(), and llvm::InterleaveGroup< InstTy >::insertMember().
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
.
std::nullopt
otherwise. Definition at line 85 of file CheckedArithmetic.h.
References LHS, RHS, and llvm::APInt::uadd_ov().
Referenced by checkedMulAddUnsigned().
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
.
std::nullopt
otherwise. Definition at line 64 of file CheckedArithmetic.h.
References LHS, RHS, and llvm::APInt::smul_ov().
Referenced by checkedMulAdd().
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.
std::nullopt
otherwise. Definition at line 73 of file CheckedArithmetic.h.
References A, B, llvm::CallingConv::C, checkedAdd(), and checkedMul().
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.
std::nullopt
otherwise. Definition at line 103 of file CheckedArithmetic.h.
References A, B, llvm::CallingConv::C, checkedAddUnsigned(), and checkedMulUnsigned().
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
.
std::nullopt
otherwise. Definition at line 94 of file CheckedArithmetic.h.
References LHS, RHS, and llvm::APInt::umul_ov().
Referenced by checkedMulAddUnsigned(), llvm::AllocaInst::getAllocationSize(), and llvm::AllocaInst::getAllocationSizeInBits().
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
.
std::nullopt
otherwise. Definition at line 55 of file CheckedArithmetic.h.
References LHS, RHS, and llvm::APInt::ssub_ov().
Referenced by llvm::InterleaveGroup< InstTy >::insertMember().
void llvm::checkForCycles | ( | const SDNode * | N, |
const SelectionDAG * | DAG = nullptr , |
||
bool | force = false |
||
) |
Definition at line 13749 of file SelectionDAG.cpp.
References assert(), checkForCyclesHelper(), and N.
void llvm::checkForCycles | ( | const SelectionDAG * | DAG, |
bool | force = false |
||
) |
Definition at line 13766 of file SelectionDAG.cpp.
References checkForCycles(), llvm::SDValue::getNode(), and llvm::SelectionDAG::getRoot().
Referenced by llvm::SelectionDAG::AssignTopologicalOrder(), checkForCycles(), and llvm::SelectionDAG::setRoot().
Definition at line 925 of file Instructions.h.
References assert().
Check if module has flag attached, if not add the flag.
Definition at line 28 of file Instrumentation.cpp.
References ClIgnoreRedundantInstrumentation.
Referenced by llvm::AddressSanitizerPass::run(), llvm::DataFlowSanitizerPass::run(), llvm::MemorySanitizerPass::run(), llvm::ModuleThreadSanitizerPass::run(), and llvm::HWAddressSanitizerPass::run().
bool llvm::checkVOPDRegConstraints | ( | const SIInstrInfo & | TII, |
const MachineInstr & | FirstMI, | ||
const MachineInstr & | SecondMI | ||
) |
Definition at line 37 of file GCNVOPDUtils.cpp.
References assert(), dbgs(), llvm::MachineInstr::getDesc(), llvm::MachineInstr::getMF(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::AMDGPU::getVOPDInstInfo(), llvm::AMDGPUSubtarget::GFX12, is_contained(), llvm::MachineOperand::isReg(), Literal, LLVM_DEBUG, MI, llvm::MachineInstr::modifiesRegister(), MRI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), TII, TRI, and llvm::MachineInstr::uses().
Referenced by shouldScheduleVOPDAdjacent().
iterator_range< typename GraphTraits< GraphType >::ChildIteratorType > llvm::children | ( | const typename GraphTraits< GraphType >::NodeRef & | G | ) |
Definition at line 149 of file GraphTraits.h.
References G, and make_range().
Referenced by llvm::RegionBase< Tr >::begin(), llvm::RegionBase< Tr >::end(), llvm::RegionBase< Tr >::removeSubRegion(), llvm::RegionBase< Tr >::transferChildrenTo(), and llvm::GenericCycle< ContextT >::verifyCycleNest().
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().
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 3473 of file Attributor.h.
References CHANGED, and UNCHANGED.
Referenced by clampStateAndIndicateChange< DerefState >().
ChangeStatus llvm::clampStateAndIndicateChange< DerefState > | ( | DerefState & | S, |
const DerefState & | R | ||
) |
Definition at line 204 of file AttributorAttributes.cpp.
References clampStateAndIndicateChange(), and llvm::DerefState::DerefBytesState.
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(), llvm::StringSwitch< T, R >::Default(), F, and llvm::Value::stripPointerCasts().
Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::CodeViewDebug::beginFunctionImpl(), canSimplifyInvokeNoUnwind(), llvm::LoopSafetyInfo::computeBlockColors(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::ARMException::endFunction(), llvm::WinException::endFunction(), findUnwindDestinations(), getEHScopeMembership(), llvm::X86TargetLowering::getExceptionPointerRegister(), llvm::X86TargetLowering::getExceptionSelectorRegister(), getSEHRegistrationNodeSize(), InlineFunction(), 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().
std::error_code llvm::cleanUpTempFiles | ( | ArrayRef< std::string > | FileName | ) |
Definition at line 211 of file PrintPasses.cpp.
References cleanUpTempFilesImpl(), and llvm::ArrayRef< T >::size().
Referenced by doSystemDiff(), and llvm::IRChangedTester::handleIR().
Definition at line 47 of file NVPTXUtilities.cpp.
References Mod.
Referenced by llvm::NVPTXAsmPrinter::doFinalization().
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 1229 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().
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 1246 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().
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 1009 of file CloneFunction.cpp.
References CloneAndPruneIntoFromInst(), llvm::BasicBlock::front(), and llvm::Function::front().
Referenced by InlineFunction().
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 707 of file CloneFunction.cpp.
References append_range(), llvm::Function::args(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), ConstantFoldTerminator(), llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::ValueMap< KeyT, ValueT, Config >::count(), DeleteDeadBlocks(), DL, llvm::SmallVectorBase< Size_T >::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(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), getParent(), llvm::Function::getReturnType(), llvm::BasicBlock::getSinglePredecessor(), llvm::BranchInst::getSuccessor(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), I, II, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::BranchInst::isConditional(), isInstructionTriviallyDead(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), make_range(), MapValue(), llvm::BasicBlock::moveBefore(), llvm::SmallVectorImpl< T >::pop_back_val(), pred, 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::SmallVectorBase< Size_T >::size(), successors(), and llvm::AttributeFuncs::typeIncompatible().
Referenced by CloneAndPruneFunctionInto().
BasicBlock * llvm::CloneBasicBlock | ( | const BasicBlock * | BB, |
ValueToValueMapTy & | VMap, | ||
const Twine & | NameSuffix = "" , |
||
Function * | F = nullptr , |
||
ClonedCodeInfo * | CodeInfo = nullptr |
||
) |
Return a copy of the specified basic block, but without embedding the block into a particular function.
See comments in Cloning.h.
The block returned is an exact copy of the specified basic block, without any remapping having been performed. Because of this, this is only suitable for applications where the basic block will be inserted into the same function that it was cloned from (loop unrolling would use this, for example).
Also, note that this function makes a direct copy of the basic block, and can thus produce illegal LLVM code. In particular, it will copy any PHI nodes from the original block, even though there are no predecessors for the newly cloned block (thus, phi nodes will have to be updated). Also, this block will branch to the old successors of the original block: these successors will have to have any PHI nodes updated to account for the new incoming edges.
The correlation between instructions in the source and result basic blocks is recorded in the VMap map.
If you have a particular suffix you'd like to use to add to any cloned names, specify it as the optional third parameter.
If you would like the basic block to be auto-inserted into the end of a function, you can specify it as the optional fourth parameter.
If you would like to collect additional information about the cloned function, you can specify a ClonedCodeInfo object with the optional fifth parameter.
Definition at line 44 of file CloneFunction.cpp.
References llvm::Instruction::cloneDebugInfoFrom(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::ClonedCodeInfo::ContainsMemProfMetadata, llvm::BasicBlock::Create(), llvm::BasicBlock::end(), F, llvm::BasicBlock::getContext(), llvm::Value::getName(), llvm::Value::hasName(), I, llvm::Instruction::insertBefore(), llvm::BasicBlock::IsNewDbgInfoFormat, and llvm::Value::setName().
Referenced by buildClonedLoopBlocks(), CloneFunctionBodyInto(), cloneLoopBlocks(), CloneLoopBlocks(), cloneLoopWithPreheader(), SplitIndirectBrCriticalEdges(), UnrollAndJamLoop(), and UnrollLoop().
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.
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, I, llvm::Function::setIsNewDbgInfoFormat(), and llvm::Value::setName().
Referenced by cloneCandidateFunction(), createFunctionClones(), and replaceAliasWithAliasee().
void llvm::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.
Definition at line 85 of file CloneFunction.cpp.
References llvm::Function::arg_size(), llvm::Function::args(), llvm::Function::copyAttributesFrom(), llvm::AttributeList::get(), llvm::Function::getAttributes(), llvm::Function::getContext(), llvm::AttributeList::getFnAttrs(), llvm::AttributeList::getParamAttrs(), llvm::Function::getPersonalityFn(), llvm::Function::getPrefixData(), llvm::Function::getPrologueData(), llvm::AttributeList::getRetAttrs(), llvm::Function::hasPersonalityFn(), llvm::Function::hasPrefixData(), llvm::Function::hasPrologueData(), MapValue(), RF_NoModuleLevelChanges, RF_None, llvm::Function::setAttributes(), llvm::Function::setPersonalityFn(), llvm::Function::setPrefixData(), and llvm::Function::setPrologueData().
Referenced by CloneFunctionInto().
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 |
||
) |
Clone OldFunc's body into NewFunc.
Definition at line 213 of file CloneFunction.cpp.
References CloneBasicBlock(), llvm::Function::end(), llvm::Function::front(), llvm::BlockAddress::get(), llvm::BasicBlock::getTerminator(), II, llvm::GlobalValue::isDeclaration(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RemapDbgRecordRange(), and RemapInstruction().
Referenced by 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 269 of file CloneFunction.cpp.
References llvm::Function::args(), assert(), BuildDebugInfoMDMap(), CloneFunctionAttributesInto(), CloneFunctionBodyInto(), CloneFunctionMetadataInto(), CollectDebugInfoForCloning(), llvm::DebugInfoFinder::compile_units(), llvm::ValueMap< KeyT, ValueT, Config >::count(), llvm::Module::getOrInsertNamedMetadata(), llvm::GlobalValue::getParent(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GlobalValue::isDeclaration(), llvm::Function::IsNewDbgInfoFormat, MapMetadata(), llvm::ValueMap< KeyT, ValueT, Config >::MD(), RF_NoModuleLevelChanges, RF_None, and llvm::Function::setIsNewDbgInfoFormat().
Referenced by CloneFunction(), CloneModule(), llvm::coro::BaseCloner::create(), and llvm::Attributor::internalizeFunctions().
void llvm::CloneFunctionMetadataInto | ( | Function & | NewFunc, |
const Function & | OldFunc, | ||
ValueToValueMapTy & | VMap, | ||
RemapFlags | RemapFlag, | ||
ValueMapTypeRemapper * | TypeMapper = nullptr , |
||
ValueMaterializer * | Materializer = 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 200 of file CloneFunction.cpp.
References llvm::GlobalObject::addMetadata(), llvm::GlobalObject::getAllMetadata(), and MapMetadata().
Referenced by CloneFunctionInto().
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 1831 of file LoopUtils.cpp.
References llvm::LPPassManager::addLoop(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), cloneLoop(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), and I.
Referenced by cloneLoop(), and cloneLoopBlocks().
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 1036 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(), Before, Blocks, 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(), and llvm::LoopBase< BlockT, LoopT >::getParentLoop().
Referenced by splitLoopBound(), and llvm::LoopVersioning::versionLoop().
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 39 of file CloneModule.cpp.
References CloneModule().
Referenced by CloneModule(), llvm::orc::cloneToNewContext(), LLVMCloneModule(), and SplitModule().
std::unique_ptr< Module > llvm::CloneModule | ( | const Module & | M, |
ValueToValueMapTy & | VMap | ||
) |
Definition at line 46 of file CloneModule.cpp.
References CloneModule().
std::unique_ptr< Module > llvm::CloneModule | ( | const Module & | M, |
ValueToValueMapTy & | VMap, | ||
function_ref< bool(const GlobalValue *)> | ShouldCloneDefinition | ||
) |
Return a copy of the specified module.
The ShouldCloneDefinition function controls whether a specific GlobalValue's definition is cloned. If the function returns false, the module copy will contain an external reference in place of the global definition.
Definition at line 51 of file CloneModule.cpp.
References llvm::GlobalObject::addMetadata(), llvm::NamedMDNode::addOperand(), assert(), llvm::CallingConv::C, ClonedModule, CloneFunctionInto(), llvm::Function::copyAttributesFrom(), llvm::GlobalVariable::copyAttributesFrom(), copyComdat(), llvm::Function::Create(), llvm::GlobalAlias::create(), llvm::GlobalIFunc::create(), llvm::GlobalValue::ExternalLinkage, F, G, I, MapMetadata(), MapValue(), N, llvm::GlobalAlias::setAliasee(), llvm::GlobalVariable::setInitializer(), llvm::GlobalValue::setLinkage(), llvm::Value::setName(), and llvm::GlobalIFunc::setResolver().
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 1170 of file CloneFunction.cpp.
References llvm::MDBuilder::createAnonymousAliasScope(), llvm::AliasScopeNode::getDomain(), llvm::AliasScopeNode::getName(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), and Name.
Referenced by cloneAndAdaptNoAliasScopes(), and llvm::JumpThreadingPass::cloneInstructions().
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 449 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::SmallVectorBase< Size_T >::size().
Referenced by sinkRegion().
void llvm::collectCmpOps | ( | CmpInst * | Comparison, |
SmallVectorImpl< Value * > & | CmpOperands | ||
) |
Definition at line 365 of file PredicateInfo.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
DISubprogram * llvm::CollectDebugInfoForCloning | ( | const Function & | F, |
CloneFunctionChangeType | Changes, | ||
DebugInfoFinder & | DIFinder | ||
) |
Collect debug information such as types, compile units, and other subprograms that are reachable from F
and can be considered global for the purposes of cloning (and hence not needing to be cloned).
What debug information should be processed depends on Changes:
when cloning into the same module we process F's
subprogram and instructions; when into a cloned module, neither of those.
Returns DISubprogram of the cloned function when cloning into the same module or nullptr otherwise.
Definition at line 135 of file CloneFunction.cpp.
References F, I, instructions, llvm::DebugInfoFinder::processInstruction(), and llvm::DebugInfoFinder::processSubprogram().
Referenced by CloneFunctionInto().
bool llvm::collectDebugInfoMetadata | ( | Module & | M, |
iterator_range< Module::iterator > | Functions, | ||
DebugInfoPerPass & | DebugInfoBeforePass, | ||
StringRef | Banner, | ||
StringRef | NameOfWrappedPass | ||
) |
Collect original debug information before a pass.
M | The module to collect debug information from. |
Functions | A range of functions to collect debug information from. |
DebugInfoBeforePass | DI metadata before a pass. |
Banner | A prefix string to add to debug/error messages. |
NameOfWrappedPass | A name of a pass to add to debug/error messages. |
Definition at line 294 of file Debugify.cpp.
References llvm::MapVector< KeyT, ValueT, MapType, VectorType >::count(), dbgs(), DebugInfoPerPass::DIFunctions, DebugInfoPerPass::DILocations, DebugInfoPerPass::DIVariables, F, filterDbgVars(), I, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), DebugInfoPerPass::InstToDelete, LLVM_DEBUG, and llvm::MapVector< KeyT, ValueT, MapType, VectorType >::size().
Referenced by applyDebugify(), and NewPMDebugifyPass::run().
void llvm::collectEphemeralRecipesForVPlan | ( | VPlan & | Plan, |
DenseSet< VPRecipeBase * > & | EphRecipes | ||
) |
Definition at line 274 of file VPlanAnalysis.cpp.
References any_of(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains(), llvm::SmallVectorBase< Size_T >::empty(), llvm::VPRegionBlock::getEntry(), llvm::VPlan::getVectorLoopRegion(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::PatternMatch::match(), llvm::VPUser::operands(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and vp_depth_first_deep().
Referenced by willGenerateVectors().
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 681 of file InstrProf.cpp.
References assert(), llvm::ArrayRef< T >::begin(), llvm::compression::zlib::BestSizeCompression, llvm::compression::zlib::compress(), count(), llvm::ArrayRef< T >::empty(), encodeULEB128(), llvm::ArrayRef< T >::end(), getInstrProfNameSeparator(), P, llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), and llvm::Error::success().
Referenced by collectPGOFuncNameStrings(), and collectVTableStrings().
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 170 of file Delinearization.cpp.
References dbgs(), LLVM_DEBUG, and visitAll().
Referenced by delinearize().
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 726 of file InstrProf.cpp.
References collectGlobalObjectNameStrings(), getPGOFuncNameVarInitializer(), and llvm::compression::zlib::isAvailable().
GlobalVariable * llvm::collectUsedGlobalVariables | ( | 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.
Definition at line 865 of file Module.cpp.
Referenced by buildModuleSummaryIndex(), embedBitcodeInModule(), llvm::FunctionImportGlobalProcessing::FunctionImportGlobalProcessing(), llvm::TargetLoweringObjectFileELF::getModuleMetadata(), llvm::TargetLoweringObjectFileWasm::getModuleMetadata(), llvm::InternalizePass::internalizeModule(), and llvm::MergeFunctionsPass::runOnModule().
Error llvm::collectVTableStrings | ( | ArrayRef< GlobalVariable * > | VTables, |
std::string & | Result, | ||
bool | doCompression | ||
) |
Definition at line 736 of file InstrProf.cpp.
References collectGlobalObjectNameStrings(), getPGOName(), and llvm::compression::zlib::isAvailable().
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 105 of file EHPersonalities.cpp.
References dbgs(), DEBUG_WITH_TYPE, llvm::SmallVectorBase< Size_T >::empty(), F, llvm::BasicBlock::getFirstNonPHI(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), is_contained(), llvm::Instruction::isEHPad(), 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().
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.
Definition at line 3444 of file Local.cpp.
References combineMetadata().
|
static |
Definition at line 691 of file APFloat.cpp.
References lfExactlyHalf, lfExactlyZero, lfLessThanHalf, and lfMoreThanHalf.
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.
Definition at line 3439 of file Local.cpp.
References combineMetadata().
Referenced by llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), patchReplacementInstruction(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), sinkLastInstruction(), and llvm::InstCombinerImpl::visitLoadInst().
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(), llvm::SelectionDAG::InferPtrAlign(), llvm::CallLowering::insertSRetLoads(), llvm::CallLowering::insertSRetStores(), llvm::AMDGPULegalizerInfo::legalizeTrapHsaQueuePtr(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), LowerF128Load(), LowerF128Store(), llvm::R600TargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), lowerKernelArguments(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::PPCTargetLowering::PerformDAGCombine(), performLOADCombine(), PerformVMOVRRDCombine(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedLoad(), scalarizeMaskedStore(), llvm::RISCVDAGToDAGISel::SelectAddrRegImm(), llvm::TargetLowering::SimplifySetCC(), splitMergedValStore(), splitStoreSplat(), llvm::AMDGPUTargetLowering::SplitVectorLoad(), llvm::AMDGPUTargetLowering::SplitVectorStore(), SRAGlobal(), unpackLoadToAggregate(), and unpackStoreToAggregate().
|
static |
Definition at line 678 of file GenericLoopInfoImpl.h.
Referenced by llvm::LoopInfoBase< BlockT, LoopT >::verify().
|
static |
Definition at line 333 of file WebAssemblyAsmTypeCheck.cpp.
References I, and llvm::ArrayRef< T >::size().
|
inlinestatic |
Definition at line 28 of file ASanStackFrameLayout.cpp.
References llvm::ASanStackVariableDescription::Alignment.
Referenced by ComputeASanStackFrameLayout().
Definition at line 661 of file GenericLoopInfoImpl.h.
References sort().
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 140 of file CFGPrinter.h.
Referenced by llvm::DOTGraphTraits< DOTFuncInfo * >::getCompleteNodeLabel().
void llvm::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).
Definition at line 340 of file Delinearization.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorImpl< T >::clear(), dbgs(), llvm::SCEVDivision::divide(), llvm::SmallVectorTemplateCommon< T, typename >::end(), Last, LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by delinearize().
|
static |
Definition at line 463 of file RuntimeDyld.cpp.
References alignTo().
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize().
void llvm::computeAndAddLiveIns | ( | LivePhysRegs & | LiveRegs, |
MachineBasicBlock & | MBB | ||
) |
Convenience function combining computeLiveIns() and addLiveIns().
Definition at line 336 of file LivePhysRegs.cpp.
References addLiveIns(), computeLiveIns(), and MBB.
Referenced by recomputeLiveIns(), and llvm::ARMBlockPlacement::revertWhileToDoLoop().
Definition at line 999 of file ArchiveWriter.cpp.
References llvm::sys::path::append(), llvm::sys::path::begin(), canonicalizePath(), llvm::sys::path::convert_to_slash(), llvm::sys::path::end(), errnoAsErrorCode(), errorCodeToError(), From, llvm::sys::path::parent_path(), llvm::sys::path::posix, and llvm::sys::path::root_name().
Referenced by libDriverMain().
SmallString< 64 > llvm::ComputeASanStackFrameDescription | ( | const SmallVectorImpl< ASanStackVariableDescription > & | Vars | ) |
Definition at line 96 of file ASanStackFrameLayout.cpp.
References Name, llvm::SmallVectorBase< Size_T >::size(), llvm::raw_svector_ostream::str(), and to_string().
ASanStackFrameLayout llvm::ComputeASanStackFrameLayout | ( | SmallVectorImpl< ASanStackVariableDescription > & | Vars, |
uint64_t | Granularity, | ||
uint64_t | MinHeaderSize | ||
) |
Definition at line 53 of file ASanStackFrameLayout.cpp.
References assert(), CompareVars(), llvm::ASanStackFrameLayout::FrameAlignment, llvm::ASanStackFrameLayout::FrameSize, llvm::ASanStackFrameLayout::Granularity, kMinAlignment, Offset, llvm::SmallVectorBase< Size_T >::Size, llvm::SmallVectorBase< Size_T >::size(), Size, stable_sort(), and VarAndRedzoneSize().
ConstantRange llvm::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.
This is intended as a cheap, non-recursive check.
Definition at line 10078 of file ValueTracking.cpp.
References A, assert(), llvm::AssumptionCache::assumptionsFor(), BitWidth, llvm::CallingConv::C, computeConstantRange(), Depth, getConstantRangeFromMetadata(), llvm::InstrInfoQuery::getMetadata(), llvm::ConstantRange::getNonEmpty(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), getRangeForIntrinsic(), getRangeForSelectPattern(), I, II, llvm::ConstantRange::intersectWith(), isValidAssumeForContext(), Lower, llvm::ConstantRange::makeAllowedICmpRegion(), MaxAnalysisRecursionDepth, Range, RHS, setLimitForFPToI(), setLimitsForBinOp(), llvm::ConstantRange::unionWith(), and Upper.
Referenced by canScalarizeAccess(), computeConstantRange(), computeConstantRangeIncludingKnownBits(), computeKnownFPClass(), llvm::InstCombinerImpl::foldICmpAddConstant(), isImpliedCondICmps(), simplifyICmpWithConstant(), and switchToLookupTable().
ConstantRange llvm::computeConstantRangeIncludingKnownBits | ( | const WithCache< const Value * > & | V, |
bool | ForSigned, | ||
const SimplifyQuery & | SQ | ||
) |
Combine constant ranges from computeConstantRange() and computeKnownBits().
Definition at line 7189 of file ValueTracking.cpp.
References computeConstantRange(), llvm::ConstantRange::fromKnownBits(), llvm::SimplifyQuery::IIQ, llvm::ConstantRange::intersectWith(), llvm::ConstantRange::Signed, llvm::ConstantRange::Unsigned, and llvm::InstrInfoQuery::UseInstrInfo.
Referenced by computeOverflowForSignedAdd(), computeOverflowForSignedSub(), computeOverflowForUnsignedAdd(), computeOverflowForUnsignedSub(), and llvm::InstCombinerImpl::visitCallInst().
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 1175 of file FunctionImport.cpp.
References assert(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::begin(), checkVariableImport(), collectImportStatistics(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), ModuleImportsManager::create(), dbgs(), 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(), LLVM_DEBUG, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), numGlobalVarSummaries(), Ref, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::StringRef::size(), llvm::FunctionImporter::ImportListsTy::size(), and Stats.
Referenced by llvm::ThinLTOCodeGenerator::crossModuleImport(), llvm::ThinLTOCodeGenerator::emitImports(), llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule(), llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::ThinLTOCodeGenerator::run().
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 1393 of file FunctionImport.cpp.
References any_of(), assert(), llvm::GlobalValue::AvailableExternallyLinkage, ComputeDead, dbgs(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::empty(), llvm::SmallVectorBase< Size_T >::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().
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 1509 of file FunctionImport.cpp.
References computeDeadSymbolsAndUpdateIndirectCalls().
Referenced by computeDeadSymbolsInIndex(), and llvm::lto::LTO::run().
|
static |
Definition at line 309 of file RuntimeDyldMachO.cpp.
Referenced by llvm::RuntimeDyldMachOCRTPBase< Impl >::registerEHFrames().
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(), and X.
Referenced by llvm::StringRef::edit_distance().
|
static |
Compute a list of blocks that are only reachable via EH paths.
Definition at line 18 of file EHUtils.h.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::begin(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase(), F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), predecessors(), successors(), and Unknown.
Referenced by setDescendantEHBlocksCold().
Definition at line 95 of file ScalarEvolutionExpressions.h.
References Size.
MemoryEffects llvm::computeFunctionBodyMemoryAccess | ( | Function & | F, |
AAResults & | AAR | ||
) |
Returns the memory access properties of this copy of the function.
Definition at line 255 of file FunctionAttrs.cpp.
References checkFunctionMemoryAccess(), and F.
KnownBits llvm::computeKnownBits | ( | const Value * | V, |
const APInt & | DemandedElts, | ||
const DataLayout & | DL, | ||
unsigned | Depth = 0 , |
||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
bool | UseInstrInfo = true |
||
) |
Returns the known bits rather than passing by reference.
Definition at line 181 of file ValueTracking.cpp.
References computeKnownBits(), Depth, DL, and safeCxtI().
KnownBits llvm::computeKnownBits | ( | const Value * | V, |
const APInt & | DemandedElts, | ||
unsigned | Depth, | ||
const SimplifyQuery & | Q | ||
) |
Determine which bits of V are known to be either zero or one and return them.
Definition at line 2122 of file ValueTracking.cpp.
References computeKnownBits(), Depth, llvm::SimplifyQuery::DL, and getBitWidth().
KnownBits llvm::computeKnownBits | ( | const Value * | V, |
const DataLayout & | DL, | ||
unsigned | Depth = 0 , |
||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
bool | UseInstrInfo = true |
||
) |
Returns the known bits rather than passing by reference.
Definition at line 173 of file ValueTracking.cpp.
References computeKnownBits(), Depth, DL, and safeCxtI().
void llvm::computeKnownBits | ( | const Value * | V, |
KnownBits & | Known, | ||
const DataLayout & | DL, | ||
unsigned | Depth = 0 , |
||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
bool | UseInstrInfo = true |
||
) |
Determine which bits of V are known to be either zero or one and return them in the KnownZero/KnownOne bit sets.
This function is defined on values with integer type, values with pointer type, and vectors of integers. In the case where V is a vector, the known zero and known one values are the same width as the vector element, and the bit is set only if it is true for all of the elements in the vector.
Definition at line 164 of file ValueTracking.cpp.
References computeKnownBits(), Depth, DL, and safeCxtI().
Referenced by canEvaluateTruncated(), llvm::InstCombiner::computeKnownBits(), computeKnownFPClass(), computeOverflowForSignedMul(), computeOverflowForUnsignedMul(), computeRecurrenceType(), eliminateDeadSwitchCases(), foldCtpopPow2Test(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), getKnownSign(), getOrEnforceKnownAlignment(), getSign32(), inferAlignment(), llvm::SelectionDAG::InferPtrAlign(), llvm::GCNTTIImpl::isAlwaysUniform(), isDivZero(), isPtrKnownNeverNull(), isZero(), 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(), and llvm::InstCombinerImpl::visitSub().
void llvm::computeKnownBits | ( | const Value * | V, |
KnownBits & | Known, | ||
unsigned | Depth, | ||
const SimplifyQuery & | Q | ||
) |
Definition at line 153 of file ValueTracking.cpp.
References computeKnownBits(), Depth, and llvm::APInt::getAllOnes().
Determine which bits of V are known to be either zero or one and return them.
Definition at line 2131 of file ValueTracking.cpp.
References computeKnownBits(), Depth, llvm::SimplifyQuery::DL, and getBitWidth().
void llvm::computeKnownBitsFromContext | ( | const Value * | V, |
KnownBits & | Known, | ||
unsigned | Depth, | ||
const SimplifyQuery & | Q | ||
) |
Merge bits known from context-dependent facts into Known.
Definition at line 825 of file ValueTracking.cpp.
References llvm::SimplifyQuery::AC, llvm::CondContext::AffectedValues, assert(), llvm::AssumptionCache::assumptionsFor(), BitWidth, llvm::SimplifyQuery::CC, computeKnownBitsFromCond(), computeKnownBitsFromICmpCond(), llvm::CondContext::Cond, llvm::DomConditionCache::conditionsFor(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DC, Depth, llvm::DominatorTree::dominates(), llvm::SimplifyQuery::DT, llvm::AssumptionCache::ExprResultIdx, llvm::KnownBits::getBitWidth(), getKnowledgeFromBundle(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::KnownBits::hasConflict(), I, llvm::CondContext::Invert, isPowerOf2_64(), isValidAssumeForContext(), Log2_64(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::match(), MaxAnalysisRecursionDepth, llvm::KnownBits::resetAll(), llvm::KnownBits::setAllOnes(), llvm::KnownBits::setAllZero(), llvm::APInt::setLowBits(), and llvm::KnownBits::Zero.
Referenced by computeKnownBits(), computeOverflowForSignedAdd(), and llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits().
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 439 of file ValueTracking.cpp.
References assert(), BitWidth, countl_zero(), llvm::KnownBits::getBitWidth(), llvm::APInt::getHighBitsSet(), llvm::ConstantRange::getUnsignedMax(), llvm::ConstantRange::getUnsignedMin(), Lower, llvm::KnownBits::One, Range, llvm::APInt::setAllBits(), Upper, llvm::KnownBits::Zero, and llvm::APInt::zextOrTrunc().
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), and llvm::GISelKnownBits::computeKnownBitsImpl().
|
inline |
Wrapper to account for known fast math flags at the use instruction.
Definition at line 529 of file ValueTracking.h.
References computeKnownFPClass(), Depth, llvm::FastMathFlags::noInfs(), and llvm::FastMathFlags::noNaNs().
KnownFPClass llvm::computeKnownFPClass | ( | const Value * | V, |
const APInt & | DemandedElts, | ||
FPClassTest | InterestedClasses, | ||
unsigned | Depth, | ||
const SimplifyQuery & | SQ | ||
) |
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 6169 of file ValueTracking.cpp.
References computeKnownFPClass(), and Depth.
Referenced by cannotBeNegativeZero(), cannotBeOrderedLessThanZero(), computeKnownFPClass(), computeKnownFPClass(), llvm::InstCombinerImpl::computeKnownFPClass(), computeKnownFPClassForFPTrunc(), computeKnownFPSignBit(), foldFPtoI(), isKnownNeverInfinity(), isKnownNeverInfOrNaN(), isKnownNeverNaN(), simplifyFCmpInst(), and simplifyFMAFMul().
|
inline |
Definition at line 516 of file ValueTracking.h.
References computeKnownFPClass(), Depth, and DL.
|
inline |
Definition at line 547 of file ValueTracking.h.
References computeKnownFPClass(), Depth, and llvm::APInt::getAllOnes().
KnownFPClass llvm::computeKnownFPClass | ( | const Value * | V, |
FPClassTest | InterestedClasses, | ||
unsigned | Depth, | ||
const SimplifyQuery & | SQ | ||
) |
Definition at line 6180 of file ValueTracking.cpp.
References computeKnownFPClass(), and Depth.
|
inline |
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 610 of file ValueTracking.h.
References computeKnownFPClass(), Depth, fcAllFlags, and llvm::KnownFPClass::SignBit.
Referenced by simplifyUnaryIntrinsic(), and llvm::InstCombinerImpl::visitCallInst().
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.
void llvm::computeLegalValueVTs | ( | const WebAssemblyTargetLowering & | TLI, |
LLVMContext & | Ctx, | ||
const DataLayout & | DL, | ||
Type * | Ty, | ||
SmallVectorImpl< MVT > & | ValueVTs | ||
) |
Definition at line 42 of file WebAssemblyMachineFunctionInfo.cpp.
References ComputeValueVTs(), DL, llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLoweringBase::getRegisterType(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by computeLegalValueVTs(), computeSignatureVTs(), llvm::WebAssemblyAsmPrinter::emitGlobalVariable(), and getFunctionReturns().
|
inline |
Definition at line 52 of file Analysis.h.
References llvm::ArrayRef< T >::begin(), ComputeLinearIndex(), and llvm::ArrayRef< T >::end().
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.
Ty | is the type indexed by Indices . |
Indices | is an optional pointer in the indices list to the current index. |
IndicesEnd | is the end of the indices list. |
CurIndex | is the current index in the recursion. |
CurIndex
plus the linear index in Ty
the indices list. Definition at line 33 of file Analysis.cpp.
References assert(), ComputeLinearIndex(), enumerate(), and I.
Referenced by ComputeLinearIndex(), and llvm::FastISel::selectExtractValue().
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 248 of file LivePhysRegs.cpp.
References llvm::LivePhysRegs::addLiveOutsNoPristines(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::LivePhysRegs::init(), MBB, MI, MRI, reverse(), llvm::LivePhysRegs::stepBackward(), and TRI.
Referenced by computeAndAddLiveIns().
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 = {} |
||
) |
Computes a unique hash for the Module considering the current list of export/import and other global analysis results.
Definition at line 99 of file LTO.cpp.
References A, llvm::lto::Config::AAPipeline, llvm::lto::Config::CGFileType, llvm::lto::Config::CGOptLevel, llvm::lto::Config::CodeModel, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::contains(), llvm::lto::Config::CPU, llvm::TargetOptions::DataSections, llvm::TargetOptions::DebuggerTuning, llvm::lto::Config::DefaultTriple, llvm::lto::Config::DwoDir, llvm::lto::Config::Freestanding, llvm::TargetOptions::FunctionSections, llvm::MemoryBuffer::getFile(), I, make_range(), llvm::lto::Config::MAttrs, llvm::TargetOptions::MCOptions, llvm::lto::Config::MllvmArgs, llvm::lto::Config::Options, llvm::lto::Config::OptLevel, llvm::lto::Config::OptPipeline, llvm::lto::Config::OverrideTriple, llvm::lto::Config::ProfileRemapping, llvm::lto::Config::RelocModel, llvm::SHA1::result(), llvm::lto::Config::SampleProfile, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::size(), sort(), llvm::SHA1::update(), llvm::support::endian::write32le(), llvm::support::endian::write64le(), and llvm::MCTargetOptions::X86RelaxRelocations.
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 156 of file MachineUniformityAnalysis.cpp.
References assert(), llvm::GenericUniformityInfo< ContextT >::compute(), and F.
Referenced by llvm::MachineUniformityAnalysisPass::runOnMachineFunction().
unsigned llvm::ComputeMappedEditDistance | ( | ArrayRef< T > | FromArray, |
ArrayRef< T > | ToArray, | ||
Functor | Map, | ||
bool | AllowReplacements = true , |
||
unsigned | MaxEditDistance = 0 |
||
) |
Determine the edit distance between two sequences.
FromArray | the first sequence to compare. |
ToArray | the second sequence to compare. |
Map | A Functor to apply to each item of the sequences before comparison. |
AllowReplacements | whether to allow element replacements (change one element into another) as a single operation, rather than as two operations (an insertion and a removal). |
MaxEditDistance | If non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returns MaxEditDistance+1 . |
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().
unsigned llvm::ComputeMaxSignificantBits | ( | const Value * | Op, |
const DataLayout & | DL, | ||
unsigned | Depth = 0 , |
||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr |
||
) |
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 359 of file ValueTracking.cpp.
References ComputeNumSignBits(), Depth, and DL.
Referenced by llvm::InstCombiner::ComputeMaxSignificantBits(), and eliminateDeadSwitchCases().
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 700 of file VectorUtils.cpp.
References any_of(), llvm::EquivalenceClasses< ElemTy, Compare >::begin(), bit_ceil(), bit_width(), Blocks, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase< Size_T >::empty(), llvm::EquivalenceClasses< ElemTy, Compare >::end(), llvm::EquivalenceClasses< ElemTy, Compare >::getOrInsertLeaderValue(), llvm::Type::getScalarSizeInBits(), getScalarSizeInBits(), getType(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::TargetTransformInfo::isTypeLegal(), make_range(), llvm::EquivalenceClasses< ElemTy, Compare >::member_begin(), llvm::EquivalenceClasses< ElemTy, Compare >::member_end(), MI, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::EquivalenceClasses< ElemTy, Compare >::unionSets().
unsigned llvm::ComputeNumSignBits | ( | const Value * | Op, |
const DataLayout & | DL, | ||
unsigned | Depth = 0 , |
||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
bool | UseInstrInfo = true |
||
) |
Return the number of times the sign bit of the register is replicated into the other bits.
We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "ashr X, 2", we know that the top 3 bits are all equal to each other, so we return 3. For vectors, return the number of sign bits for the vector element with the mininum number of known sign bits.
Definition at line 351 of file ValueTracking.cpp.
References Depth, DL, and safeCxtI().
Referenced by llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::InstCombiner::ComputeNumSignBits(), computeOverflowForSignedAdd(), computeOverflowForSignedMul(), computeOverflowForSignedSub(), computeRecurrenceType(), setShiftFlags(), and simplifyAShrInst().
OverflowResult llvm::computeOverflowForSignedAdd | ( | const AddOperator * | Add, |
const SimplifyQuery & | SQ | ||
) |
This version also leverages the sign bit of Add if known.
Definition at line 7907 of file ValueTracking.cpp.
References Add.
OverflowResult llvm::computeOverflowForSignedAdd | ( | const WithCache< const Value * > & | LHS, |
const WithCache< const Value * > & | RHS, | ||
const SimplifyQuery & | SQ | ||
) |
Definition at line 7914 of file ValueTracking.cpp.
Referenced by llvm::InstCombiner::computeOverflowForSignedAdd(), and hoistSub().
OverflowResult llvm::computeOverflowForSignedMul | ( | const Value * | LHS, |
const Value * | RHS, | ||
const SimplifyQuery & | SQ | ||
) |
Definition at line 7216 of file ValueTracking.cpp.
References BitWidth, computeKnownBits(), ComputeNumSignBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::KnownBits::isNonNegative(), LHS, MayOverflow, NeverOverflows, and RHS.
Referenced by llvm::InstCombiner::computeOverflowForSignedMul().
OverflowResult llvm::computeOverflowForSignedSub | ( | const Value * | LHS, |
const Value * | RHS, | ||
const SimplifyQuery & | SQ | ||
) |
Definition at line 7358 of file ValueTracking.cpp.
References llvm::SimplifyQuery::AC, computeConstantRangeIncludingKnownBits(), ComputeNumSignBits(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DT, isGuaranteedNotToBeUndef(), LHS, llvm::PatternMatch::m_NSWSub(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_SRem(), llvm::PatternMatch::m_Value(), mapOverflowResult(), llvm::PatternMatch::match(), NeverOverflows, RHS, and llvm::ConstantRange::signedSubMayOverflow().
Referenced by llvm::InstCombiner::computeOverflowForSignedSub(), hoistAdd(), and hoistSub().
OverflowResult llvm::computeOverflowForUnsignedAdd | ( | const WithCache< const Value * > & | LHS, |
const WithCache< const Value * > & | RHS, | ||
const SimplifyQuery & | SQ | ||
) |
Definition at line 7256 of file ValueTracking.cpp.
References computeConstantRangeIncludingKnownBits(), LHS, mapOverflowResult(), RHS, and llvm::ConstantRange::unsignedAddMayOverflow().
Referenced by llvm::InstCombiner::computeOverflowForUnsignedAdd(), and hoistSub().
OverflowResult llvm::computeOverflowForUnsignedMul | ( | const Value * | LHS, |
const Value * | RHS, | ||
const SimplifyQuery & | SQ, | ||
bool | IsNSW = false |
||
) |
Definition at line 7200 of file ValueTracking.cpp.
References computeKnownBits(), llvm::ConstantRange::fromKnownBits(), llvm::KnownBits::isNonNegative(), LHS, mapOverflowResult(), NeverOverflows, RHS, and llvm::ConstantRange::unsignedMulMayOverflow().
Referenced by checkOverflow(), and llvm::InstCombiner::computeOverflowForUnsignedMul().
OverflowResult llvm::computeOverflowForUnsignedSub | ( | const Value * | LHS, |
const Value * | RHS, | ||
const SimplifyQuery & | SQ | ||
) |
Definition at line 7325 of file ValueTracking.cpp.
References llvm::SimplifyQuery::AC, AlwaysOverflowsLow, llvm::CallingConv::C, computeConstantRangeIncludingKnownBits(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DL, llvm::SimplifyQuery::DT, llvm::CmpInst::ICMP_UGE, isGuaranteedNotToBeUndef(), isImpliedByDomCondition(), LHS, llvm::PatternMatch::m_NUWSub(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_URem(), llvm::PatternMatch::m_Value(), mapOverflowResult(), llvm::PatternMatch::match(), NeverOverflows, RHS, and llvm::ConstantRange::unsignedSubMayOverflow().
Referenced by llvm::InstCombiner::computeOverflowForUnsignedSub(), hoistAdd(), and hoistSub().
void llvm::computePeelCount | ( | Loop * | L, |
unsigned | LoopSize, | ||
TargetTransformInfo::PeelingPreferences & | PP, | ||
unsigned | TripCount, | ||
DominatorTree & | DT, | ||
ScalarEvolution & | SE, | ||
AssumptionCache * | AC = nullptr , |
||
unsigned | Threshold = UINT_MAX |
||
) |
Definition at line 536 of file LoopPeel.cpp.
References llvm::TargetTransformInfo::PeelingPreferences::AllowLoopNestsPeeling, llvm::TargetTransformInfo::PeelingPreferences::AllowPeeling, assert(), canPeel(), countToEliminateCompares(), dbgs(), getLoopEstimatedTripCount(), getOptionalIntLoopAttribute(), LLVM_DEBUG, llvm::TargetTransformInfo::PeelingPreferences::PeelCount, PeeledCountMetaData, llvm::TargetTransformInfo::PeelingPreferences::PeelProfiledIterations, peelToTurnInvariantLoadsDerefencebale(), UnrollForcePeelCount, UnrollPeelMaxCount, and violatesLegacyMultiExitLoopCheck().
Referenced by computeUnrollCount().
void llvm::computeSignatureVTs | ( | const FunctionType * | Ty, |
const Function * | TargetFunc, | ||
const Function & | ContextFunc, | ||
const TargetMachine & | TM, | ||
SmallVectorImpl< MVT > & | Params, | ||
SmallVectorImpl< MVT > & | Results | ||
) |
Definition at line 64 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::Function::args(), llvm::WebAssembly::canLowerReturn(), computeLegalValueVTs(), llvm::Function::getCallingConv(), llvm::MVT::getIntegerVT(), llvm::FunctionType::getReturnType(), llvm::FunctionType::isVarArg(), llvm::FunctionType::params(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Results, llvm::Function::size(), and llvm::CallingConv::Swift.
Referenced by llvm::WebAssemblyAsmPrinter::emitDecls(), and llvm::WebAssemblyAsmPrinter::emitFunctionBodyStart().
|
static |
Definition at line 214 of file SpeculativeExecution.cpp.
References llvm::TargetTransformInfo::getInstructionCost(), llvm::InstructionCost::getInvalid(), llvm::Operator::getOpcode(), I, and llvm::TargetTransformInfo::TCK_SizeAndLatency.
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 | ||
) |
Definition at line 923 of file LoopUnrollPass.cpp.
References llvm::TargetTransformInfo::UnrollingPreferences::AllowExpensiveTripCount, llvm::TargetTransformInfo::UnrollingPreferences::AllowRemainder, assert(), computePeelCount(), llvm::TargetTransformInfo::UnrollingPreferences::Count, dbgs(), DEBUG_TYPE, llvm::TargetTransformInfo::UnrollingPreferences::DefaultUnrollRuntimeCount, llvm::OptimizationRemarkEmitter::emit(), FlatLoopTripCountThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Force, getLoopEstimatedTripCount(), llvm::UnrollCostEstimator::getRolledLoopSize(), llvm::UnrollCostEstimator::getUnrolledLoopSize(), hasRuntimeUnrollDisablePragma(), hasUnrollEnablePragma(), hasUnrollFullPragma(), LLVM_DEBUG, llvm::TargetTransformInfo::UnrollingPreferences::MaxCount, llvm::TargetTransformInfo::UnrollingPreferences::MaxUpperBound, NoThreshold, llvm::TargetTransformInfo::UnrollingPreferences::Partial, llvm::TargetTransformInfo::UnrollingPreferences::PartialThreshold, llvm::TargetTransformInfo::PeelingPreferences::PeelCount, PragmaUnrollThreshold, report_fatal_error(), llvm::TargetTransformInfo::UnrollingPreferences::Runtime, shouldFullUnroll(), shouldPartialUnroll(), shouldPragmaUnroll(), llvm::TargetTransformInfo::UnrollingPreferences::Threshold, UnrollCount, unrollCountPragmaValue(), and llvm::TargetTransformInfo::UnrollingPreferences::UpperBound.
Referenced by computeHeuristicUnrollFactor(), computeUnrollAndJamCount(), and tryToUnrollLoop().
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 141 of file Analysis.cpp.
References computeValueLLTs(), DL, llvm::StructLayout::getElementOffset(), getLLTForType(), I, llvm::Type::isVoidTy(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by computeValueLLTs().
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 - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual underlying non-aggregate types that comprise it.
If Offsets is non-null, it points to a vector to be filled in with the in-memory offsets of each of the individual values.
Definition at line 79 of file Analysis.cpp.
References assert(), ComputeValueVTs(), DL, llvm::StructLayout::getElementOffset(), llvm::TargetLoweringBase::getMemValueType(), llvm::TargetLoweringBase::getValueType(), llvm::TypeSize::getZero(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::Type::isScalableTy(), llvm::Type::isVoidTy(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isZero(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by adjustInliningThresholdUsingCallee(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), computeLegalValueVTs(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), ComputePTXValueVTs(), ComputeValueVTs(), llvm::FunctionLoweringInfo::CreateRegs(), llvm::AArch64TargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::WebAssemblyFrameLowering::getLocalForStackObject(), llvm::NVPTXTargetLowering::getPrototype(), llvm::CallLowering::getReturnInfo(), GetReturnInfo(), llvm::FunctionLoweringInfo::getValueFromVirtualReg(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::CallLowering::insertSRetIncomingArgument(), llvm::CallLowering::insertSRetLoads(), llvm::CallLowering::insertSRetStores(), llvm::NVPTXTargetLowering::LowerCall(), llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::AArch64CallLowering::lowerReturn(), llvm::RegsForValue::RegsForValue(), llvm::FastISel::selectExtractValue(), llvm::FunctionLoweringInfo::set(), and llvm::CallLowering::splitToValueTypes().
void llvm::ComputeValueVTs | ( | const TargetLowering & | TLI, |
const DataLayout & | DL, | ||
Type * | Ty, | ||
SmallVectorImpl< EVT > & | ValueVTs, | ||
SmallVectorImpl< EVT > * | MemVTs, | ||
SmallVectorImpl< uint64_t > * | FixedOffsets, | ||
uint64_t | StartingOffset | ||
) |
Definition at line 125 of file Analysis.cpp.
References ComputeValueVTs(), DL, llvm::TypeSize::getFixed(), Offset, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Variant of ComputeValueVTs that don't produce memory VTs.
Definition at line 77 of file Analysis.h.
References ComputeValueVTs(), and DL.
|
inline |
Definition at line 83 of file Analysis.h.
References ComputeValueVTs(), and DL.
detail::concat_range< ValueT, RangeTs... > llvm::concat | ( | RangeTs &&... | Ranges | ) |
Returns a concatenated range across two or more ranges.
Does not modify the ranges.
The desired value type must be explicitly specified.
Definition at line 1192 of file STLExtras.h.
Referenced by LiveDebugValues::ValueIDNum::asString(), llvm::SystemZAsmPrinter::emitFunctionEntryLabel(), LiveDebugValues::MLocTracker::LocIdxToName(), reportNonStaticGEPChain(), and rewriteAccessChain().
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 1095 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::SmallVectorBase< Size_T >::size().
Referenced by interleaveVectors(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), and llvm::ARMTargetLowering::lowerInterleavedLoad().
|
inlinestatic |
Get the operand corresponding to the conditional code result.
By default, this is 0 (no register).
Definition at line 561 of file ARMBaseInstrInfo.h.
References llvm::MachineOperand::CreateReg().
Referenced by llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyPhysReg(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), emitARMRegPlusImmediate(), llvm::ARMFrameLowering::emitEpilogue(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMFrameLowering::emitPrologue(), emitT2RegPlusImmediate(), llvm::ARMBaseInstrInfo::foldImmediate(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), and llvm::ARMBaseInstrInfo::optimizeSelect().
|
inline |
Definition at line 205 of file MachineInstrBundle.h.
References llvm::ConstMIBundleOperands::end(), make_range(), and MI.
Referenced by llvm::AArch64Subtarget::adjustSchedDependency(), AnalyzePhysRegInBundle(), AnalyzeVirtRegLanesInBundle(), and phys_regs_and_masks().
Definition at line 604 of file ConstantFold.cpp.
References llvm::APFloat::add(), llvm::APInt::ashr(), assert(), ConstantFoldBinaryInstruction(), llvm::APFloat::divide(), DL, llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::ConstantExpr::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(), llvm::Instruction::isAssociative(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isCommutative(), llvm::ConstantExpr::isDesirableBinOp(), llvm::Instruction::isIntDivRem(), llvm::Type::isIntegerTy(), llvm::APInt::isMinSignedValue(), llvm::Type::isVectorTy(), LHS, 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(), RHS, llvm::APInt::sdiv(), llvm::APInt::shl(), llvm::APInt::srem(), llvm::APFloat::subtract(), llvm::APInt::udiv(), and llvm::APInt::urem().
Referenced by collectInsertionElements(), ConstantFoldBinaryInstruction(), ConstantFoldBinaryOpOperands(), ConvertShiftToMul(), llvm::ConstantFolder::FoldBinOp(), llvm::ConstantFolder::FoldExactBinOp(), llvm::ConstantFolder::FoldNoWrapBinOp(), llvm::ConstantExpr::get(), getBinOpsForFactorization(), and llvm::InstCombinerImpl::visitSub().
Constant * llvm::ConstantFoldBinaryIntrinsic | ( | Intrinsic::ID | ID, |
Constant * | LHS, | ||
Constant * | RHS, | ||
Type * | Ty, | ||
Instruction * | FMFSource | ||
) |
Definition at line 3863 of file ConstantFolding.cpp.
Referenced by llvm::TargetFolder::FoldBinaryIntrinsic().
Constant * llvm::ConstantFoldBinaryOpOperands | ( | unsigned | Opcode, |
Constant * | LHS, | ||
Constant * | RHS, | ||
const DataLayout & | DL | ||
) |
Attempt to constant fold a binary operation with the specified operands.
Returns null or a constant expression of the specified operands on failure.
Definition at line 1300 of file ConstantFolding.cpp.
References assert(), llvm::CallingConv::C, ConstantFoldBinaryInstruction(), DL, llvm::ConstantExpr::get(), llvm::Instruction::isBinaryOp(), llvm::ConstantExpr::isDesirableBinOp(), LHS, and RHS.
Referenced by computeUnlikelySuccessors(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), ConstantFoldFPInstOperands(), dropRedundantMaskingOfLeftShiftInput(), llvm::TargetFolder::FoldBinOp(), llvm::InstCombinerImpl::foldBinOpShiftWithShift(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::TargetFolder::FoldExactBinOp(), foldFDivConstantDividend(), llvm::InstCombinerImpl::foldFMulReassoc(), foldMinimumOverTrailingOrLeadingZeroCount(), llvm::TargetFolder::FoldNoWrapBinOp(), foldOrCommuteConstant(), foldSelectICmpAnd(), llvm::InstCombinerImpl::foldVectorBinop(), getAlternateBinop(), simplifyAssocCastAssoc(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), simplifyBinaryIntrinsic(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFAdd(), llvm::InstCombinerImpl::visitFSub(), and llvm::InstCombinerImpl::visitMul().
std::optional< APInt > llvm::ConstantFoldBinOp | ( | unsigned | Opcode, |
const Register | Op1, | ||
const Register | Op2, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 664 of file Utils.cpp.
References llvm::APInt::ashr(), getAnyConstantVRegValWithLookThrough(), llvm::APInt::getBitWidth(), llvm::APInt::lshr(), MRI, llvm::APInt::sdiv(), llvm::APInt::sextOrTrunc(), llvm::APIntOps::smax(), llvm::APIntOps::smin(), llvm::APInt::srem(), llvm::APInt::udiv(), llvm::APIntOps::umax(), llvm::APIntOps::umin(), and llvm::APInt::urem().
Referenced by llvm::CSEMIRBuilder::buildInstr(), ConstantFoldVectorBinop(), and llvm::CombinerHelper::matchConstantFoldBinOp().
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 3870 of file ConstantFolding.cpp.
References F, llvm::TargetLibraryInfo::getLibFunc(), llvm::Type::isFPOrFPVectorTy(), Name, llvm::Intrinsic::not_intrinsic, and Operands.
Referenced by tryConstantFoldCall().
opcode | The opcode of the cast |
V | The source constant |
DestTy | The destination type |
Definition at line 131 of file ConstantFold.cpp.
References BitWidth, llvm::CallingConv::C, llvm::APFloat::convert(), llvm::APFloat::convertFromAPInt(), FoldBitCast(), foldConstantCastPair(), foldMaybeUndesirableCast(), llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::VectorType::getElementType(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getFltSemantics(), llvm::Constant::getNullValue(), llvm::Type::getScalarSizeInBits(), llvm::Type::getScalarType(), llvm::ConstantVector::getSplat(), llvm::APInt::getZero(), ignored(), llvm::Type::isVectorTy(), llvm::Type::isX86_AMXTy(), llvm_unreachable, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Splat.
Referenced by ConstantFoldCastOperand(), llvm::ConstantFolder::FoldCast(), foldMaybeUndesirableCast(), getFoldedCast(), and llvm::AA::getWithType().
std::optional< APInt > llvm::ConstantFoldCastOp | ( | unsigned | Opcode, |
LLT | DstTy, | ||
const Register | Op0, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 960 of file Utils.cpp.
References getIConstantVRegVal(), llvm::LLT::getScalarSizeInBits(), llvm_unreachable, and MRI.
Referenced by llvm::CombinerHelper::matchConstantFoldCastOp().
Constant * llvm::ConstantFoldCastOperand | ( | unsigned | Opcode, |
Constant * | C, | ||
Type * | DestTy, | ||
const DataLayout & | DL | ||
) |
Attempt to constant fold a cast with the specified operand.
If it fails, it returns a constant expression of the specified operand.
Definition at line 1462 of file ConstantFolding.cpp.
References assert(), llvm::sampleprof::Base, BitWidth, llvm::CallingConv::C, ConstantFoldCastInstruction(), ConstantFoldIntegerCast(), DL, FoldBitCast(), GEP, llvm::ConstantExpr::getCast(), llvm::User::getOperand(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPtrToInt(), llvm::ConstantExpr::getSub(), llvm::Value::getType(), llvm::Instruction::isCast(), llvm::ConstantExpr::isDesirableCastOp(), llvm_unreachable, and Ptr.
Referenced by CanShareConstantPoolEntry(), llvm::InstCombinerImpl::commonCastTransforms(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), ConstantFoldIntegerCast(), ConstantFoldLoadThroughBitcast(), dropRedundantMaskingOfLeftShiftInput(), llvm::TargetFolder::FoldCast(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::InstCombinerImpl::getLosslessTrunc(), lookThroughCastConst(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), simplifyAndOrOfCmps(), simplifyAssocCastAssoc(), simplifyCastInst(), simplifyICmpInst(), llvm::InstCombinerImpl::visitSExt(), and llvm::InstCombinerImpl::visitTrunc().
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 1186 of file ConstantFolding.cpp.
References llvm::CallingConv::C, llvm::ICmpInst::compare(), ConstantFoldCompareInstOperands(), ConstantFoldCompareInstruction(), ConstantFoldIntegerCast(), DL, FlushFPConstant(), llvm::ConstantInt::getBool(), llvm::Value::getContext(), llvm::Constant::getNullValue(), llvm::ICmpInst::getSignedPredicate(), llvm::Value::getType(), I, llvm::CmpInst::isFPPredicate(), llvm::Constant::isNullValue(), llvm::Type::isPointerTy(), Null, and llvm::Value::stripAndAccumulateInBoundsConstantOffsets().
Referenced by computeUnlikelySuccessors(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), ConstantFoldCompareInstOperands(), llvm::JumpThreadingPass::evaluateOnPredecessorEdge(), 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().
Constant * llvm::ConstantFoldCompareInstruction | ( | CmpInst::Predicate | Predicate, |
Constant * | C1, | ||
Constant * | C2 | ||
) |
Definition at line 1101 of file ConstantFold.cpp.
References llvm::FCmpInst::compare(), llvm::ICmpInst::compare(), ConstantFoldCompareInstruction(), evaluateICmpRelation(), llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::UndefValue::get(), llvm::PoisonValue::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::ConstantInt::getTrue(), llvm::Value::getType(), llvm::ConstantExpr::getXor(), I, llvm::ICmpInst::isEquality(), llvm::Type::isFPOrFPVectorTy(), llvm::Type::isIntegerTy(), 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().
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 1171 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().
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 997 of file Utils.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), getIConstantVRegVal(), llvm::LLT::isVector(), and MRI.
Referenced by llvm::CSEMIRBuilder::buildInstr().
std::optional< APInt > llvm::ConstantFoldExtOp | ( | unsigned | Opcode, |
const Register | Op1, | ||
uint64_t | Imm, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 943 of file Utils.cpp.
References getIConstantVRegVal(), llvm::LLT::getScalarSizeInBits(), and MRI.
Referenced by llvm::CSEMIRBuilder::buildInstr().
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 339 of file ConstantFold.cpp.
References llvm::CallingConv::C, GEP, llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::Constant::getAggregateElement(), llvm::ConstantExpr::getExtractElement(), llvm::Constant::getSplatValue(), llvm::Value::getType(), Idx, llvm::APSInt::isSameValue(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by llvm::ConstantExpr::getExtractElement().
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 505 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::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::TargetFolder::FoldExtractValue(), llvm::ConstantFolder::FoldExtractValue(), and simplifyExtractValueInst().
std::optional< APFloat > llvm::ConstantFoldFPBinOp | ( | unsigned | Opcode, |
const Register | Op1, | ||
const Register | Op2, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 733 of file Utils.cpp.
References llvm::APFloat::add(), llvm::APFloat::copySign(), llvm::APFloat::divide(), getConstantFPVRegVal(), llvm::ConstantFP::getValueAPF(), maximum(), maxnum(), minimum(), minnum(), llvm::APFloat::mod(), MRI, llvm::APFloat::multiply(), and llvm::APFloat::subtract().
Referenced by llvm::CSEMIRBuilder::buildInstr(), and llvm::CombinerHelper::matchConstantFoldFPBinOp().
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 1419 of file ConstantFolding.cpp.
References llvm::CallingConv::C, ConstantFoldBinaryOpOperands(), DL, FlushFPConstant(), FP, I, llvm::Instruction::isBinaryOp(), LHS, and RHS.
Referenced by foldOrCommuteConstant().
Constant * llvm::ConstantFoldGetElementPtr | ( | Type * | Ty, |
Constant * | C, | ||
std::optional< ConstantRange > | InRange, | ||
ArrayRef< Value * > | Idxs | ||
) |
Definition at line 1315 of file ConstantFold.cpp.
References all_of(), llvm::CallingConv::C, llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::empty(), llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantVector::getSplat(), Idx, InRange(), llvm::Constant::isNullValue(), llvm::Type::isVectorTy(), and llvm::ArrayRef< T >::size().
Referenced by llvm::ConstantExpr::getGetElementPtr(), and simplifyGEPInst().
std::optional< SmallVector< APInt > > llvm::ConstantFoldICmp | ( | unsigned | Pred, |
const Register | Op1, | ||
const Register | Op2, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 1029 of file Utils.cpp.
References assert(), llvm::SmallVectorImpl< T >::emplace_back(), getIConstantVRegVal(), I, llvm::LLT::isVector(), LHS, MRI, and RHS.
Referenced by llvm::CSEMIRBuilder::buildInstr().
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 403 of file ConstantFold.cpp.
References llvm::CallingConv::C, llvm::ConstantVector::get(), llvm::PoisonValue::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::Type::getInt32Ty(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), Idx, llvm::Constant::isNullValue(), and llvm::ConstantInt::uge().
Referenced by llvm::ConstantExpr::getInsertElement().
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 517 of file ConstantFold.cpp.
References llvm::CallingConv::C, ConstantFoldInsertValueInstruction(), 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::OpenMPIRBuilder::createTargetDeinit(), llvm::TargetFolder::FoldInsertValue(), llvm::ConstantFolder::FoldInsertValue(), and simplifyInsertValueInst().
Constant * llvm::ConstantFoldInstOperands | ( | 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 1177 of file ConstantFolding.cpp.
Referenced by constantFold(), ConstantFoldInstruction(), EvaluateExpression(), simplifyInstructionWithOperands(), and simplifyWithOpsReplaced().
Constant * llvm::ConstantFoldInstruction | ( | Instruction * | I, |
const DataLayout & | DL, | ||
const TargetLibraryInfo * | TLI = nullptr |
||
) |
ConstantFoldInstruction - Try to constant fold the specified instruction.
If successful, the constant result is returned, if not, null is returned. Note that this fails if not all of the operands are constant. Otherwise, this function can only fail when attempting to fold instructions like loads and stores, which have no constant expression form.
Definition at line 1123 of file ConstantFolding.cpp.
References all_of(), llvm::CallingConv::C, ConstantFoldInstOperands(), DL, llvm::UndefValue::get(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by ConstantPropUsersOf(), llvm::InstCombinerImpl::prepareWorklist(), llvm::JumpThreadingPass::processBlock(), and while().
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 1549 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().
std::optional< APFloat > llvm::ConstantFoldIntToFloat | ( | unsigned | Opcode, |
LLT | DstTy, | ||
Register | Src, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 984 of file Utils.cpp.
References assert(), llvm::APFloat::convertFromAPInt(), getFltSemanticForLLT(), getIConstantVRegVal(), and MRI.
Referenced by llvm::CSEMIRBuilder::buildInstr().
Constant * llvm::ConstantFoldLoadFromConst | ( | Constant * | C, |
Type * | Ty, | ||
const APInt & | Offset, | ||
const DataLayout & | DL | ||
) |
Extract value of C at the given Offset reinterpreted as Ty.
If bits past the end of C are accessed, they are assumed to be poison.
Definition at line 704 of file ConstantFolding.cpp.
References llvm::CallingConv::C, ConstantFoldLoadFromUniformValue(), ConstantFoldLoadThroughBitcast(), DL, llvm::PoisonValue::get(), getConstantAtOffset(), Offset, and Size.
Referenced by CleanupConstantGlobalUsers(), collectSRATypes(), ConstantFoldLoadFromConst(), ConstantFoldLoadFromConstPtr(), foldPatternedLoads(), getAvailableLoadStore(), llvm::VNCoercion::getConstantMemInstValueForLoad(), llvm::VNCoercion::getConstantValueForLoad(), llvm::AA::getInitialValueForObj(), and parseJumpTable().
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 730 of file ConstantFolding.cpp.
References llvm::CallingConv::C, ConstantFoldLoadFromConst(), and DL.
Constant * llvm::ConstantFoldLoadFromConstPtr | ( | 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.
If this is not determinable, return null.
Definition at line 735 of file ConstantFolding.cpp.
References llvm::CallingConv::C, ConstantFoldLoadFromConst(), ConstantFoldLoadFromUniformValue(), DL, getUnderlyingObject(), and Offset.
Referenced by llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), ConstantFoldLoadFromConstPtr(), llvm::VNCoercion::getConstantMemInstValueForLoad(), getMemCmpLoad(), llvm::VNCoercion::getMemInstValueForLoad(), optimizeMemCmpConstantSize(), simplifyLoadInst(), and simplifyRelativeLoad().
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 757 of file ConstantFolding.cpp.
References llvm::CallingConv::C, ConstantFoldLoadFromConstPtr(), DL, and Offset.
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 763 of file ConstantFolding.cpp.
References llvm::CallingConv::C, DL, llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::Constant::getAllOnesValue(), llvm::Constant::getNullValue(), llvm::Type::isFPOrFPVectorTy(), llvm::Type::isIntOrIntVectorTy(), and llvm::Type::isX86_AMXTy().
Referenced by CleanupConstantGlobalUsers(), ConstantFoldLoadFromConst(), ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), llvm::AA::getInitialValueForObj(), and simplifyLoadInst().
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 352 of file ConstantFolding.cpp.
References llvm::CallingConv::C, llvm::CastInst::castIsValid(), ConstantFoldCastOperand(), ConstantFoldLoadFromUniformValue(), DL, llvm::Type::getScalarType(), llvm::Value::getType(), llvm::Type::isAggregateType(), llvm::Type::isIntegerTy(), llvm::Type::isPointerTy(), llvm::Type::isStructTy(), and llvm::Type::isVectorTy().
Referenced by ConstantFoldLoadFromConst().
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 261 of file ConstantFold.cpp.
References llvm::CallingConv::C, Cond, llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::PoisonValue::get(), llvm::ConstantExpr::getExtractElement(), and llvm::Value::getType().
Referenced by llvm::TargetFolder::FoldSelect(), llvm::ConstantFolder::FoldSelect(), simplifySelectInst(), and llvm::InstCombinerImpl::visitTrunc().
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 445 of file ConstantFold.cpp.
References all_of(), llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::ElementCount::get(), llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::ConstantAggregateZero::get(), llvm::Value::getContext(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantVector::getSplat(), llvm::Value::getType(), llvm::Constant::isNullValue(), and PoisonMaskElem.
Referenced by llvm::ConstantExpr::getShuffleVector().
bool llvm::ConstantFoldTerminator | ( | BasicBlock * | BB, |
bool | DeleteDeadConditions = false , |
||
const TargetLibraryInfo * | TLI = nullptr , |
||
DomTreeUpdater * | DTU = nullptr |
||
) |
If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination.
ConstantFoldTerminator - If a terminator instruction is predicated on a constant value, convert it into an unconditional branch to the constant destination.
This is a nontrivial operation because the successors of this basic block must have their PHI nodes updated. Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch conditions and indirectbr addresses this might make dead if DeleteDeadConditions is true.
Definition at line 136 of file Local.cpp.
References Address, llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), Cond, llvm::Instruction::copyMetadata(), llvm::IRBuilderBase::CreateBr(), llvm::MDBuilder::createBranchWeights(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpEQ(), End, llvm::Instruction::eraseFromParent(), extractBranchWeights(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getFirstNonPHIOrDbg(), llvm::BasicBlock::getTerminator(), getValidBranchWeightMDNode(), hasBranchWeightOrigin(), Idx, llvm::SmallSet< T, N, C >::insert(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::BasicBlock::removePredecessor(), setBranchWeights(), llvm::Instruction::setMetadata(), llvm::SmallSet< T, N, C >::size(), llvm::SmallVectorBase< Size_T >::size(), successors(), and std::swap().
Referenced by CloneAndPruneIntoFromInst(), markAliveBlocks(), llvm::JumpThreadingPass::processBlock(), processSwitch(), and while().
Definition at line 546 of file ConstantFold.cpp.
References assert(), llvm::CallingConv::C, ConstantFoldUnaryInstruction(), llvm::ConstantVector::get(), llvm::IntegerType::get(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantVector::getSplat(), llvm::Instruction::isUnaryOp(), llvm_unreachable, neg(), and Splat.
Referenced by ConstantFoldUnaryInstruction(), ConstantFoldUnaryOpOperand(), and llvm::ConstantFolder::FoldUnOpFMF().
Constant * llvm::ConstantFoldUnaryOpOperand | ( | unsigned | Opcode, |
Constant * | Op, | ||
const DataLayout & | DL | ||
) |
Attempt to constant fold a unary operation with the specified operand.
Returns null on failure.
Definition at line 1293 of file ConstantFolding.cpp.
References assert(), ConstantFoldUnaryInstruction(), and llvm::Instruction::isUnaryOp().
Referenced by foldConstant(), foldFDivConstantDividend(), foldFNegIntoConstant(), llvm::TargetFolder::FoldUnOpFMF(), NegateValue(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitFMul(), and llvm::InstCombinerImpl::visitFSub().
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 787 of file Utils.cpp.
References ConstantFoldBinOp(), Idx, MRI, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::CSEMIRBuilder::buildInstr().
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 5650 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().
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.
Definition at line 108 of file Utils.cpp.
References assert(), constrainOperandRegClass(), llvm::MachineOperand::getReg(), II, isTargetSpecificOpcode(), llvm::MachineOperand::isUse(), MRI, TII, and TRI.
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.
Definition at line 56 of file Utils.cpp.
References llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), constrainRegToClass(), llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getObserver(), llvm::MachineOperand::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isUse(), MBB, MRI, llvm::MachineOperand::setReg(), and TII.
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().
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.
Definition at line 46 of file Utils.cpp.
References llvm::RegisterBankInfo::constrainGenericRegister(), and MRI.
Referenced by constrainOperandRegClass().
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.
Definition at line 155 of file Utils.cpp.
References assert(), constrainOperandRegClass(), dbgs(), llvm::MachineBasicBlock::getParent(), 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::GIMatchTableExecutor::executeMatchTable(), llvm::SPIRVGlobalRegistry::getOrCreateConstFP(), llvm::SPIRVGlobalRegistry::getOrCreateConstInt(), and llvm::SPIRVGlobalRegistry::getOrCreateUndef().
|
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 1069 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::object::SectionRef::containsSymbol(), llvm::gsym::ObjectFileTransformer::convert(), llvm::object::OffloadFile::copy(), llvm::sys::fs::TempFile::create(), llvm::orc::UnwindInfoRegistrationPlugin::Create(), llvm::coverage::BinaryCoverageReader::create(), llvm::orc::StaticLibraryDefinitionGenerator::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::DWARFYAML::emitDebugInfo(), 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(), 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::DWARFUnit::getAbbreviations(), getAccelTable(), llvm::pdb::NativeExeSymbol::getAge(), llvm::object::XCOFFObjectFile::getCommonSymbolSizeImpl(), getDbiStreamPtr(), llvm::logicalview::LVLogicalVisitor::getElement(), llvm::pdb::NativeSourceFile::getFileName(), llvm::logicalview::LVSymbolVisitorDelegate::getFileNameForFileOffset(), llvm::codeview::LazyRandomTypeCollection::getFirst(), getFirstReloc(), llvm::pdb::NativeExeSymbol::getGuid(), llvm::DWARFDataExtractor::getInitialLength(), llvm::pdb::NativeSession::getInjectedSources(), llvm::pdb::NativeInlineSiteSymbol::getName(), llvm::object::Archive::Child::getNext(), llvm::codeview::LazyRandomTypeCollection::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::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::MSVCPExpected< T >::MSVCPExpected(), llvm::orc::ForceLoadMachOArchiveMembers::operator()(), llvm::VarStreamArrayIterator< ValueType, Extractor >::operator+=(), llvm::FixedStreamArray< T >::operator[](), llvm::ELFAttributeParser::parse(), llvm::DWARFDebugLine::LineTable::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(), readAndDecodeStrings(), llvm::MachO::DylibReader::readFile(), llvm::msgpack::Document::readFromBlob(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::registerModuleReference(), llvm::pdb::TpiStream::reload(), searchForExe(), llvm::pdb::NativeSession::searchForPdb(), llvm::object::XCOFFObjectFile::section_rel_end(), llvm::object::ELFObjectFileBase::setARMSubArch(), llvm::dwarf_linker::parallel::SectionDescriptor::setSizesForSectionCreatedByAsmPrinter(), streamFile(), llvm::dwarf::toString(), llvm::detail::toString(), llvm::codeview::LazyRandomTypeCollection::tryGetType(), llvm::DWARFUnit::updateAddressDieMap(), llvm::DWARFUnit::updateVariableDieMap(), llvm::VarStreamArrayIterator< ValueType, Extractor >::VarStreamArrayIterator(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), llvm::codeview::SymbolSerializer::writeOneSymbol(), llvm::BitcodeWriter::writeSymtab(), llvm::support::detail::ErrorAdapter::~ErrorAdapter(), llvm::codeview::FieldListDeserializer::~FieldListDeserializer(), llvm::GCOVBuffer::~GCOVBuffer(), and llvm::orc::UnwindInfoRegistrationPlugin::~UnwindInfoRegistrationPlugin().
Definition at line 458 of file StringRef.cpp.
References consumeUnsignedInteger().
Referenced by llvm::StringRef::consumeInteger(), and getAsSignedInteger().
Definition at line 410 of file StringRef.cpp.
References llvm::StringRef::empty(), GetAutoSenseRadix(), llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by llvm::StringRef::consumeInteger(), consumeSignedInteger(), getAsUnsignedInteger(), and llvm::BTFParser::symbolize().
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 148 of file CFG.h.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallPtrSetImpl< PtrType >::insert(), and make_range().
Referenced by mayContainIrreducibleControl().
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 2477 of file ARMBaseInstrInfo.cpp.
References AddSubFlagsOpcodeMap.
Referenced by llvm::ARMTargetLowering::AdjustInstrPostInstrSelection(), and llvm::ARMAsmPrinter::emitInstruction().
Definition at line 36 of file SPIRVUtils.cpp.
Referenced by addStringImm().
Convert an Unicode code point to UTF8 sequence.
Source | a Unicode code point. | |
[in,out] | ResultPtr | pointer 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. |
Definition at line 64 of file ConvertUTFWrapper.cpp.
References conversionOK, ConvertUTF32toUTF8(), and strictConversion.
|
inline |
Find in type conversion cost table.
Definition at line 66 of file CostTable.h.
Referenced by llvm::AArch64TTIImpl::getCastInstrCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::X86TTIImpl::getCastInstrCost(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), and llvm::ARMTTIImpl::getCmpSelInstrCost().
|
inline |
Definition at line 81 of file CostTable.h.
void llvm::convertCtxProfToYaml | ( | raw_ostream & | OS, |
const PGOCtxProfContext::CallTargetMapTy & | Profiles | ||
) |
Definition at line 261 of file PGOCtxProfReader.cpp.
References OS.
Referenced by llvm::CtxProfAnalysisPrinterPass::run().
void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableIntrinsic * | DII, |
LoadInst * | LI, | ||
DIBuilder & | Builder | ||
) |
Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value that has an associated llvm.dbg.declare intrinsic.
Definition at line 1796 of file Local.cpp.
References assert(), dbgs(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), insertDbgValueOrDbgVariableRecordAfter(), LLVM_DEBUG, and valueCoversEntireFragment().
void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableIntrinsic * | DII, |
PHINode * | LI, | ||
DIBuilder & | Builder | ||
) |
Inserts a llvm.dbg.value intrinsic after a phi that has an associated llvm.dbg.declare intrinsic.
Definition at line 1884 of file Local.cpp.
References assert(), dbgs(), llvm::BasicBlock::end(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::BasicBlock::getFirstInsertionPt(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), insertDbgValueOrDbgVariableRecord(), LLVM_DEBUG, PhiHasDebugValue(), and valueCoversEntireFragment().
void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableIntrinsic * | DII, |
StoreInst * | SI, | ||
DIBuilder & | Builder | ||
) |
Inserts a llvm.dbg.value intrinsic before a store to an alloca'd value that has an associated llvm.dbg.declare intrinsic.
Definition at line 1731 of file Local.cpp.
References assert(), dbgs(), llvm::PoisonValue::get(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), insertDbgValueOrDbgVariableRecord(), llvm::DbgVariableIntrinsic::isAddressOfVariable(), LLVM_DEBUG, and valueCoversEntireFragment().
Referenced by LowerDbgDeclare(), promoteSingleBlockAlloca(), rewriteSingleStoreAlloca(), and llvm::InstCombinerImpl::visitAllocSite().
void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableRecord * | DVR, |
LoadInst * | LI, | ||
DIBuilder & | Builder | ||
) |
Definition at line 1916 of file Local.cpp.
References assert(), dbgs(), llvm::DebugLoc::get(), llvm::ValueAsMetadata::get(), getDebugValueLoc(), llvm::DbgVariableRecord::getExpression(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Value::getType(), llvm::DbgVariableRecord::getVariable(), LLVM_DEBUG, UseNewDbgInfoFormat, and valueCoversEntireFragment().
void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableRecord * | DVR, |
PHINode * | LI, | ||
DIBuilder & | Builder | ||
) |
Definition at line 1956 of file Local.cpp.
References assert(), dbgs(), llvm::BasicBlock::end(), getDebugValueLoc(), llvm::DbgVariableRecord::getExpression(), llvm::BasicBlock::getFirstInsertionPt(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::Value::getType(), llvm::DbgVariableRecord::getVariable(), insertDbgValueOrDbgVariableRecord(), LLVM_DEBUG, PhiHasDebugValue(), and valueCoversEntireFragment().
void llvm::ConvertDebugDeclareToDebugValue | ( | DbgVariableRecord * | DVR, |
StoreInst * | SI, | ||
DIBuilder & | Builder | ||
) |
Definition at line 1821 of file Local.cpp.
References assert(), dbgs(), llvm::DebugLoc::get(), llvm::PoisonValue::get(), llvm::ValueAsMetadata::get(), getDebugValueLoc(), llvm::DbgVariableRecord::getExpression(), llvm::Value::getType(), llvm::DbgVariableRecord::getVariable(), insertDbgValueOrDbgVariableRecord(), llvm::DbgVariableRecord::isAddressOfVariable(), llvm::DbgVariableRecord::isDbgAssign(), LLVM_DEBUG, UseNewDbgInfoFormat, and valueCoversEntireFragment().
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().
|
static |
Definition at line 398 of file LoopVectorizationLegality.cpp.
References DL, llvm::Type::getContext(), llvm::Type::getInt32Ty(), llvm::Type::getScalarSizeInBits(), and llvm::Type::isPointerTy().
Referenced by getWiderType().
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().
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().
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().
bool llvm::convertToDeclaration | ( | GlobalValue & | GV | ) |
Converts value GV
to declaration, or replaces with a declaration if it is an alias.
Returns true if converted, false if replaced.
Definition at line 1580 of file FunctionImport.cpp.
References llvm::Function::Create(), dbgs(), llvm::GlobalValue::ExternalLinkage, F, llvm::PointerType::getAddressSpace(), llvm::GlobalValue::getAddressSpace(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::GlobalValue::getThreadLocalMode(), llvm::GlobalValue::getType(), llvm::GlobalValue::getValueType(), llvm::Type::isFunctionTy(), llvm::GlobalValue::isImplicitDSOLocal(), LLVM_DEBUG, llvm::Value::replaceAllUsesWith(), llvm::GlobalValue::setDSOLocal(), and llvm::Value::takeName().
Referenced by dropDeadSymbols(), and thinLTOFinalizeInModule().
Definition at line 9536 of file PPCISelLowering.cpp.
References llvm::APFloat::convert(), llvm::APFloatBase::IEEEsingle(), llvm::APFloat::isDenormal(), llvm::APFloatBase::rmNearestTiesToEven, and Success.
Definition at line 9552 of file PPCISelLowering.cpp.
References llvm::APFloat::bitcastToAPInt(), llvm::APInt::bitsToDouble(), convertToNonDenormSingle(), and Success.
Referenced by convertToNonDenormSingle().
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, llvm::SetVector< T, Vector, Set, N >::contains(), llvm::BasicBlock::end(), expandUser(), llvm::BasicBlock::getFirstInsertionPt(), I, llvm::SetVector< T, Vector, Set, N >::insert(), and isExpandableUser().
Referenced by createOutlinedFunction(), and llvm::AMDGPU::eliminateConstantExprUsesOfLDSFromAllInstructions().
ConversionResult llvm::ConvertUTF16toUTF32 | ( | const UTF16 ** | sourceStart, |
const UTF16 * | sourceEnd, | ||
UTF32 ** | targetStart, | ||
UTF32 * | targetEnd, | ||
ConversionFlags | flags | ||
) |
Definition at line 209 of file ConvertUTF.cpp.
References conversionOK, halfBase, halfShift, sourceExhausted, sourceIllegal, strictConversion, targetExhausted, UNI_SUR_HIGH_END, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
ConversionResult llvm::ConvertUTF16toUTF8 | ( | const UTF16 ** | sourceStart, |
const UTF16 * | sourceEnd, | ||
UTF8 ** | targetStart, | ||
UTF8 * | targetEnd, | ||
ConversionFlags | flags | ||
) |
Definition at line 263 of file ConvertUTF.cpp.
References conversionOK, firstByteMark, halfBase, halfShift, sourceExhausted, sourceIllegal, strictConversion, targetExhausted, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_END, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
Referenced by convertUTF16ToUTF8String().
Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.
[in] | SrcBytes | A buffer of what is assumed to be UTF-16 encoded text. |
[out] | Out | Converted UTF-8 is stored here on success. |
Definition at line 83 of file ConvertUTFWrapper.cpp.
References assert(), llvm::ArrayRef< T >::begin(), conversionOK, ConvertUTF16toUTF8(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), I, llvm::ArrayRef< T >::size(), strictConversion, targetExhausted, UNI_MAX_UTF8_BYTES_PER_CODE_POINT, UNI_UTF16_BYTE_ORDER_MARK_NATIVE, and UNI_UTF16_BYTE_ORDER_MARK_SWAPPED.
Referenced by llvm::object::convertUTF16LEToUTF8String(), convertUTF16ToUTF8String(), convertWideToUTF8(), llvm::object::MinidumpFile::getString(), llvm::pdb::DIARawSymbol::getUndecoratedNameEx(), and invokeBstrMethod().
Converts a UTF16 string into a UTF8 std::string.
[in] | Src | A buffer of UTF-16 encoded text. |
[out] | Out | Converted UTF-8 is stored here on success. |
Definition at line 134 of file ConvertUTFWrapper.cpp.
References convertUTF16ToUTF8String().
ConversionResult llvm::ConvertUTF32toUTF16 | ( | const UTF32 ** | sourceStart, |
const UTF32 * | sourceEnd, | ||
UTF16 ** | targetStart, | ||
UTF16 * | targetEnd, | ||
ConversionFlags | flags | ||
) |
Definition at line 160 of file ConvertUTF.cpp.
References conversionOK, halfBase, halfMask, halfShift, sourceIllegal, strictConversion, targetExhausted, UNI_MAX_BMP, UNI_MAX_LEGAL_UTF32, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
ConversionResult llvm::ConvertUTF32toUTF8 | ( | const UTF32 ** | sourceStart, |
const UTF32 * | sourceEnd, | ||
UTF8 ** | targetStart, | ||
UTF8 * | targetEnd, | ||
ConversionFlags | flags | ||
) |
Definition at line 333 of file ConvertUTF.cpp.
References conversionOK, firstByteMark, sourceIllegal, strictConversion, targetExhausted, UNI_MAX_LEGAL_UTF32, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, and UNI_SUR_LOW_END.
Referenced by ConvertCodePointToUTF8(), convertUTF32ToUTF8String(), convertWideToUTF8(), llvm::json::fixUTF8(), and toUTF8().
Converts a stream of raw bytes assumed to be UTF32 into a UTF8 std::string.
[in] | SrcBytes | A buffer of what is assumed to be UTF-32 encoded text. |
[out] | Out | Converted UTF-8 is stored here on success. |
Definition at line 141 of file ConvertUTFWrapper.cpp.
References assert(), llvm::ArrayRef< T >::begin(), 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().
Converts a UTF32 string into a UTF8 std::string.
[in] | Src | A buffer of UTF-32 encoded text. |
[out] | Out | Converted UTF-8 is stored here on success. |
Definition at line 192 of file ConvertUTFWrapper.cpp.
References convertUTF32ToUTF8String().
|
inline |
Convert the first UTF8 sequence in the given source buffer to a UTF32 code point.
[in,out] | source | A 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. |
sourceEnd | A pointer just past the end of the source buffer. | |
[out] | target | The converted code |
flags | Whether the conversion is strict or lenient. |
Definition at line 269 of file ConvertUTF.h.
References ConvertUTF8toUTF32(), getNumBytesForUTF8(), size(), and sourceExhausted.
ConversionResult llvm::ConvertUTF8toUTF16 | ( | const UTF8 ** | sourceStart, |
const UTF8 * | sourceEnd, | ||
UTF16 ** | targetStart, | ||
UTF16 * | targetEnd, | ||
ConversionFlags | flags | ||
) |
Definition at line 567 of file ConvertUTF.cpp.
References conversionOK, halfBase, halfMask, halfShift, isLegalUTF8(), offsetsFromUTF8, sourceExhausted, sourceIllegal, strictConversion, targetExhausted, trailingBytesForUTF8, UNI_MAX_BMP, UNI_MAX_UTF16, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, UNI_SUR_LOW_END, and UNI_SUR_LOW_START.
Referenced by convertUTF8ToUTF16String(), and ConvertUTF8toWide().
bool llvm::convertUTF8ToUTF16String | ( | StringRef | SrcUTF8, |
SmallVectorImpl< UTF16 > & | DstUTF16 | ||
) |
Converts a UTF-8 string into a UTF-16 string with native endianness.
Definition at line 199 of file ConvertUTFWrapper.cpp.
References assert(), llvm::StringRef::begin(), llvm::SmallVectorImpl< T >::clear(), conversionOK, ConvertUTF8toUTF16(), llvm::SmallVectorBase< Size_T >::empty(), llvm::StringRef::empty(), llvm::StringRef::end(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorBase< Size_T >::size(), llvm::StringRef::size(), strictConversion, and targetExhausted.
Referenced by llvm::pdb::DIASession::createFromExe(), llvm::pdb::DIASession::createFromPdb(), llvm::pdb::DIARawSymbol::findChildren(), llvm::pdb::DIARawSymbol::findChildrenByAddr(), llvm::pdb::DIARawSymbol::findChildrenByRVA(), and llvm::pdb::DIARawSymbol::findChildrenByVA().
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().
|
static |
Definition at line 640 of file ConvertUTF.cpp.
References conversionOK, findMaximalSubpartOfIllFormedUTF8Sequence(), isLegalUTF8(), offsetsFromUTF8, sourceExhausted, sourceIllegal, strictConversion, targetExhausted, trailingBytesForUTF8, UNI_MAX_LEGAL_UTF32, UNI_REPLACEMENT_CHAR, UNI_SUR_HIGH_START, and UNI_SUR_LOW_END.
Referenced by ConvertUTF8toUTF32(), and 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().
Converts a UTF-8 C-string to a std::wstring.
Definition at line 262 of file ConvertUTFWrapper.cpp.
References ConvertUTF8toWide().
bool llvm::ConvertUTF8toWide | ( | llvm::StringRef | Source, |
std::wstring & | Result | ||
) |
Converts a UTF-8 StringRef to a std::wstring.
Definition at line 258 of file ConvertUTFWrapper.cpp.
References ConvertUTF8toWideInternal().
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.
Definition at line 18 of file ConvertUTFWrapper.cpp.
References assert(), conversionOK, ConvertUTF8toUTF16(), ConvertUTF8toUTF32(), isLegalUTF8String(), sourceIllegal, strictConversion, and targetExhausted.
Referenced by ConvertUTF8toWide(), and ConvertUTF8toWideInternal().
|
inlinestatic |
Definition at line 242 of file ConvertUTFWrapper.cpp.
References ConvertUTF8toWide().
Referenced by ConvertUTF8toWide().
Converts a std::wstring to a UTF-8 encoded std::string.
Definition at line 270 of file ConvertUTFWrapper.cpp.
References conversionOK, convertUTF16ToUTF8String(), ConvertUTF32toUTF8(), End, isLegalUTF8String(), llvm_unreachable, strictConversion, and UNI_MAX_UTF8_BYTES_PER_CODE_POINT.
Referenced by findVCToolChainViaSetupConfig().
OutputIt llvm::copy | ( | R && | Range, |
OutputIt | Out | ||
) |
Definition at line 1841 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by llvm::jitlink::LinkGraph::allocateContent(), llvm::jitlink::LinkGraph::allocateCString(), llvm::MachineFunction::allocateShuffleMask(), llvm::AttributeListImpl::AttributeListImpl(), buildFixItLine(), llvm::ConstantAggregate::ConstantAggregate(), llvm::detail::IEEEFloat::convertFromSignExtendedInteger(), llvm::object::convertUTF16LEToUTF8String(), llvm::PHINode::copyIncomingBlocks(), llvm::GlobalObject::copyMetadata(), llvm::MachineFunction::createExternalSymbolName(), llvm::objcopy::coff::dumpSection(), dumpSectionToFile(), llvm::LegalizerHelper::equalizeVectorShuffleLengths(), 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(), llvm::PeelingModuloScheduleExpander::peelPrologAndEpilogs(), llvm::sys::path::replace_path_prefix(), llvm::orc::runAsMain(), llvm::SelectionDAG::setNodeMemRefs(), llvm::StringAttributeImpl::StringAttributeImpl(), llvm::objcopy::elf::SectionWriter::visit(), and llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit().
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 1785 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by foldTwoEntryPHINode(), llvm::MCSubtargetInfo::getEnabledProcessorFeatures(), llvm::lto::LTO::getRuntimeLibcallSymbols(), lowerV16I8Shuffle(), lowerV8I16GeneralSingleInputShuffle(), and removeUnreachableFunctions().
Copy the metadata from the source instruction to the destination (the replacement for the source instruction).
Definition at line 3448 of file Local.cpp.
References copyNonnullMetadata(), copyRangeMetadata(), DL, llvm::Value::getContext(), llvm::Value::getType(), llvm::Type::isPointerTy(), N, and llvm::Instruction::setMetadata().
Referenced by llvm::InstCombinerImpl::combineLoadToNewType().
Copy a nonnull metadata node to a new load instruction.
This handles mapping it to range metadata if the new load is an integer load instead of a pointer load.
Definition at line 3647 of file Local.cpp.
References llvm::MDBuilder::createRange(), llvm::ConstantPointerNull::get(), llvm::ConstantExpr::getAdd(), llvm::Value::getContext(), llvm::LoadInst::getPointerOperand(), llvm::ConstantExpr::getPtrToInt(), llvm::Value::getType(), N, Ptr, and llvm::Instruction::setMetadata().
Referenced by copyMetadataForLoad().
void llvm::copyRangeMetadata | ( | const DataLayout & | DL, |
const LoadInst & | OldLI, | ||
MDNode * | N, | ||
LoadInst & | NewLI | ||
) |
Copy a range metadata node to a new load instruction.
This handles mapping it to nonnull metadata if the new load is a pointer load instead of an integer load and the range doesn't cover null.
Definition at line 3672 of file Local.cpp.
References BitWidth, llvm::ConstantRange::contains(), DL, llvm::MDNode::get(), getConstantRangeFromMetadata(), llvm::Value::getContext(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), N, and llvm::Instruction::setMetadata().
Referenced by copyMetadataForLoad().
|
inline |
Find in cost table.
Definition at line 35 of file CostTable.h.
Referenced by llvm::AArch64TTIImpl::getArithmeticInstrCost(), llvm::ARMTTIImpl::getArithmeticInstrCost(), llvm::X86TTIImpl::getArithmeticInstrCost(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getCastInstrCost(), llvm::X86TTIImpl::getCmpSelInstrCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCostAVX512(), llvm::AArch64TTIImpl::getIntrinsicInstrCost(), llvm::RISCVTTIImpl::getIntrinsicInstrCost(), llvm::X86TTIImpl::getIntrinsicInstrCost(), llvm::ARMTTIImpl::getMinMaxReductionCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::ARMTTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::AArch64TTIImpl::getSpliceCost(), and llvm::X86TTIImpl::getVectorInstrCost().
|
inline |
Definition at line 48 of file CostTable.h.
Wrapper function around std::count to count the number of times an element Element
occurs in the given range Range
.
Definition at line 1938 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), checkThreadCommand(), collectGlobalObjectNameStrings(), llvm::DwarfCompileUnit::constructAbstractSubprogramScopeDIE(), llvm::DwarfCompileUnit::constructLexicalScopeDIE(), llvm::StringMap< ValueTy, AllocatorTy >::count(), countl_zero(), countr_zero(), llvm::pdb::DIARawSymbol::dump(), DuplicateInstructionsInSplitBetween(), llvm::TimeTraceProfiler::end(), llvm::OutputCategoryAggregator::EnumerateResults(), llvm::gsym::OutputAggregator::EnumerateResults(), llvm::format_provider< std::chrono::duration< Rep, Period > >::format(), format(), forwardSwitchConditionToPHI(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::DwarfCompileUnit::getLexicalBlockDIE(), llvm::DwarfCompileUnit::getOrCreateContextDIE(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU32(), llvm::DataExtractor::getU64(), llvm::DataExtractor::getU8(), llvm::TextInstrProfReader::hasFormat(), insertFoldCacheEntry(), llvm::VPBlockUtils::insertOnEdge(), llvm::ARM_AM::isNEONBytesplat(), lowerShuffleAsSplitOrBlend(), lowerV8I16GeneralSingleInputShuffle(), llvm::gsym::OutputAggregator::Merge(), nameUnamedGlobals(), llvm::MachO::ArchitectureSet::operator std::string(), llvm::BlockFrequency::operator>>=(), ParseLine(), partAsHex(), popcount(), ProcessThinLTOModule(), pruneCache(), llvm::ThinLTOCodeGenerator::run(), saveTempBitcode(), shouldPartialUnroll(), sizeOfSPAdjustment(), llvm::DWARFVerifier::summarize(), llvm::sys::toTimeSpec(), llvm::sys::toTimeVal(), llvm::slpvectorizer::BoUpSLP::transformNodes(), ulpsFromBoundary(), llvm::gsym::DwarfTransformer::verify(), llvm::ScheduleDAGSDNodes::VerifyScheduledSequence(), llvm::TimeTraceProfiler::write(), and llvm::ThinLTOCodeGenerator::writeGeneratedObject().
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 1945 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::jitlink::LinkGraph::addAbsoluteSymbol(), llvm::jitlink::LinkGraph::addDefinedSymbol(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), CalculateUnswitchCostMultiplier(), canRewriteGEPAsOffset(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), collectAllHeaderMasks(), llvm::GEPOperator::countNonConstantIndices(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), fixReductionScalarResumeWhenVectorizingEpilog(), llvm::ScalarEvolution::getAddExpr(), llvm::LoopBase< BlockT, LoopT >::getNumBackEdges(), llvm::LoopVectorizationPlanner::getPlanFor(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::GCNTTIImpl::getShuffleCost(), getSHUFPDImm(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), InlineFunction(), llvm::slpvectorizer::BoUpSLP::isTreeNotExtendable(), llvm::slpvectorizer::BoUpSLP::isTreeTinyAndNotFullyVectorizable(), lower1BitShuffle(), lower256BitShuffle(), lower512BitShuffle(), lowerBUILD_VECTOR(), lowerBuildVectorViaDominantValues(), lowerShuffleAsBroadcast(), lowerShuffleAsPermuteAndUnpack(), lowerShuffleWithSHUFPS(), LowerToHorizontalOp(), lowerV16I32Shuffle(), lowerV16I8Shuffle(), lowerV4F32Shuffle(), lowerV4I32Shuffle(), lowerV8F16Shuffle(), lowerV8I16GeneralSingleInputShuffle(), lowerV8I16Shuffle(), lowerV8I32Shuffle(), lowerVECTOR_SHUFFLE(), llvm::orc::shared::numDeallocActions(), rematerializeLiveValuesAtUses(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), replaceUndefValuesInPhi(), SRAGlobal(), stripDebugLocFromLoopID(), thinLTOInternalizeAndPromoteGUID(), llvm::slpvectorizer::BoUpSLP::transformNodes(), llvm::VFABI::tryDemangleForVFABI(), updateSuccessor(), and llvm::InstCombinerImpl::visitExtractElementInst().
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 294 of file bit.h.
Referenced by llvm::APInt::countl_one(), llvm::APInt::countLeadingOnes(), llvm::UnwindOpcodeAssembler::EmitVFPRegSave(), extractRotateInfo(), llvm::SmallBitVector::find_last_unset(), llvm::BitVector::find_last_unset_in(), llvm::APInt::getNumSignBits(), llvm::APInt::isNegatedPowerOf2(), llvm::KnownBits::makeGE(), llvm::AArch64_AM::processLogicalImmediate(), and val2MImm().
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 281 of file bit.h.
Referenced by bit_width(), CheckForMaskedLoad(), CombineANDShift(), combineBitcast(), llvm::SITargetLowering::computeKnownBitsForTargetInstr(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromRangeMetadata(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::ConcurrentHashTableByPtr(), llvm::APInt::countl_zero(), llvm::APInt::countLeadingZeros(), 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(), fitWeights(), llvm::InstCombinerImpl::foldICmpShrConstant(), foldOperationIfPossible(), generateInstSeqLeadingZeros(), llvm::APInt::getActiveBits(), llvm::GCNSubtarget::getKnownHighZeroBitsForFrameIndex(), llvm::APIntOps::GetMostSignificantDifferentBit(), llvm::APInt::getNumSignBits(), llvm::ARM_AM::getT2SOImmValRotateVal(), 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(), llvm::RISCVDAGToDAGISel::selectSHXADD_UWOp(), llvm::ConstantRange::shl(), and val2MImm().
Count the number of ones from the least significant bit to the first zero bit.
Ex. countr_one(0x00FF00FF) == 8. Only unsigned integral types are allowed.
Returns std::numeric_limits<T>::digits on an input of all ones.
Definition at line 307 of file bit.h.
Referenced by CheckForMaskedLoad(), llvm::APInt::countr_one(), llvm::APInt::countTrailingOnes(), decomposeIntoOrrOfLogicalImmediates(), llvm::UnwindOpcodeAssembler::EmitRegSave(), extractRotateInfo(), llvm::SmallBitVector::find_first_unset(), llvm::SmallBitVector::find_next_unset(), GetRunOfOnesStartingAt(), llvm::SelectionDAG::getSplatSourceVector(), isBitfieldPositioningOpFromAnd(), isBitfieldPositioningOpFromShl(), isSeveralBitsPositioningOpFromShl(), isWorthFoldingIntoOrrWithShift(), LowerSaturatingConditional(), llvm::KnownBits::mul(), llvm::AArch64_AM::processLogicalImmediate(), llvm::RISCVDAGToDAGISel::Select(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), tryBitfieldInsertOpFromOrAndImm(), tryEorOfLogicalImmediates(), and llvm::SelectionDAGBuilder::visitBitTestCase().
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 215 of file bit.h.
Referenced by BinomialCoefficient(), llvm::lowertypetests::BitSetBuilder::build(), llvm::PPCTargetLowering::BuildSDIVPow2(), calculateFileAlignment(), canUseShiftPair(), CheckForMaskedLoad(), CombineANDShift(), combineMulSpecial(), combineX86ShufflesRecursively(), llvm::X86InstrInfo::commuteInstructionImpl(), computeKnownBitsFromOperator(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::ConcurrentHashTableByPtr(), llvm::APInt::countr_zero(), llvm::APInt::countTrailingZeros(), llvm::object::ObjectFile::createELFObjectFile(), decodeCRBitMOperand(), 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::SparseBitVectorElement< ElementSize >::find_next(), llvm::SmallBitVector::find_next(), llvm::wholeprogramdevirt::findLowestOffset(), firstCommonClass(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), 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(), llvm::APInt::isNegatedPowerOf2(), isShiftedMask_32(), isShiftedMask_64(), isShiftedUIntAtAnyPosition(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), isWorthFoldingIntoOrrWithShift(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), maximalLogicalImmWithin(), llvm::SIInstrInfo::optimizeCompareInstr(), optimizeSection(), PerformBFICombine(), PerformORCombineToBFI(), performSRACombine(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::ARMInstPrinter::printThumbITMask(), llvm::ARMInstPrinter::printVPTMask(), llvm::AArch64_AM::processLogicalImmediate(), reduceSwitchRange(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::selectSHXADD_UWOp(), llvm::RISCVDAGToDAGISel::selectSHXADDOp(), llvm::jitlink::Block::setAlignment(), llvm::HexagonResource::setWeight(), simplifySwitchOfPowersOfTwo(), llvm::APInt::tcLSB(), tryBitfieldInsertOpFromOr(), tryEorOfLogicalImmediates(), TypeSizeToSizeIndex(), llvm::AMDGPU::TypeStoreSizeToSizeIndex(), TypeStoreSizeToSizeIndex(), llvm::SelectionDAGBuilder::visitBitTestCase(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
Definition at line 101 of file CRC.cpp.
References crc32().
Referenced by crc32(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), and llvm::JamCRC::update().
FunctionPass * llvm::createA15SDOptimizerPass | ( | ) |
Definition at line 682 of file A15SDOptimizer.cpp.
FunctionPass * llvm::createAArch64A53Fix835769 | ( | ) |
Definition at line 248 of file AArch64A53Fix835769.cpp.
FunctionPass * llvm::createAArch64A57FPLoadBalancing | ( | ) |
Definition at line 720 of file AArch64A57FPLoadBalancing.cpp.
FunctionPass * llvm::createAArch64AdvSIMDScalar | ( | ) |
Definition at line 409 of file AArch64AdvSIMDScalarPass.cpp.
ModulePass * llvm::createAArch64Arm64ECCallLoweringPass | ( | ) |
MCTargetStreamer * llvm::createAArch64AsmTargetStreamer | ( | MCStreamer & | S, |
formatted_raw_ostream & | OS, | ||
MCInstPrinter * | InstPrint | ||
) |
Definition at line 536 of file AArch64ELFStreamer.cpp.
References OS.
Referenced by LLVMInitializeAArch64TargetMC().
MCAsmBackend * llvm::createAArch64beAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 822 of file AArch64AsmBackend.cpp.
References assert(), llvm::Triple::getEnvironment(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::GNUILP32, and llvm::Triple::isOSBinFormatELF().
Referenced by LLVMInitializeAArch64TargetMC().
FunctionPass * llvm::createAArch64BranchTargetsPass | ( | ) |
FunctionPass * llvm::createAArch64CleanupLocalDynamicTLSPass | ( | ) |
FunctionPass * llvm::createAArch64CollectLOHPass | ( | ) |
Definition at line 589 of file AArch64CollectLOH.cpp.
FunctionPass * llvm::createAArch64CompressJumpTablesPass | ( | ) |
Definition at line 185 of file AArch64CompressJumpTables.cpp.
FunctionPass * llvm::createAArch64CondBrTuning | ( | ) |
Definition at line 323 of file AArch64CondBrTuning.cpp.
aarch64 AArch64 CCMP false FunctionPass * llvm::createAArch64ConditionalCompares | ( | ) |
Definition at line 802 of file AArch64ConditionalCompares.cpp.
aarch64 AArch64 CondOpt false FunctionPass * llvm::createAArch64ConditionOptimizerPass | ( | ) |
Definition at line 133 of file AArch64ConditionOptimizer.cpp.
FunctionPass * llvm::createAArch64DeadRegisterDefinitions | ( | ) |
Definition at line 204 of file AArch64DeadRegisterDefinitionsPass.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64ELFObjectWriter | ( | uint8_t | OSABI, |
bool | IsILP32 | ||
) |
Definition at line 537 of file AArch64ELFObjectWriter.cpp.
MCELFStreamer * llvm::createAArch64ELFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | TAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 542 of file AArch64ELFStreamer.cpp.
References Emitter.
Referenced by createELFStreamer().
FunctionPass * llvm::createAArch64ExpandPseudoPass | ( | ) |
Returns an instance of the pseudo instruction expansion pass.
Definition at line 1790 of file AArch64ExpandPseudoInsts.cpp.
InstructionSelector * llvm::createAArch64InstructionSelector | ( | const AArch64TargetMachine & | TM, |
const AArch64Subtarget & | Subtarget, | ||
const AArch64RegisterBankInfo & | RBI | ||
) |
Definition at line 8092 of file AArch64InstructionSelector.cpp.
Referenced by llvm::AArch64Subtarget::AArch64Subtarget().
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 7239 of file AArch64ISelDAGToDAG.cpp.
MCAsmBackend * llvm::createAArch64leAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 802 of file AArch64AsmBackend.cpp.
References assert(), llvm::Triple::getEnvironment(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::GNUILP32, llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatELF(), llvm::Triple::isOSBinFormatMachO(), and MRI.
Referenced by LLVMInitializeAArch64TargetMC().
FunctionPass * llvm::createAArch64LoadStoreOptimizationPass | ( | ) |
createAArch64LoadStoreOptimizationPass - returns an instance of the load / store optimization pass.
Definition at line 2918 of file AArch64LoadStoreOptimizer.cpp.
ModulePass * llvm::createAArch64LowerHomogeneousPrologEpilogPass | ( | ) |
Definition at line 665 of file AArch64LowerHomogeneousPrologEpilog.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64MachObjectWriter | ( | uint32_t | CPUType, |
uint32_t | CPUSubtype, | ||
bool | IsILP32 | ||
) |
Definition at line 450 of file AArch64MachObjectWriter.cpp.
std::unique_ptr< ScheduleDAGMutation > llvm::createAArch64MacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createAArch64MacroFusionDAGMutation()); to AArch64PassConfig::createMachineScheduler() to have an effect.
Definition at line 480 of file AArch64MacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
MCCodeEmitter * llvm::createAArch64MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 798 of file AArch64MCCodeEmitter.cpp.
Referenced by LLVMInitializeAArch64TargetMC().
FunctionPass * llvm::createAArch64MIPeepholeOptPass | ( | ) |
Definition at line 936 of file AArch64MIPeepholeOpt.cpp.
MCTargetStreamer * llvm::createAArch64NullTargetStreamer | ( | MCStreamer & | S | ) |
Definition at line 151 of file AArch64TargetStreamer.cpp.
Referenced by LLVMInitializeAArch64TargetMC().
FunctionPass * llvm::createAArch64O0PreLegalizerCombiner | ( | ) |
Definition at line 186 of file AArch64O0PreLegalizerCombiner.cpp.
MCTargetStreamer * llvm::createAArch64ObjectTargetStreamer | ( | MCStreamer & | S, |
const MCSubtargetInfo & | STI | ||
) |
Definition at line 141 of file AArch64TargetStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeAArch64TargetMC().
FunctionPass * llvm::createAArch64PointerAuthPass | ( | ) |
FunctionPass * llvm::createAArch64PostCoalescerPass | ( | ) |
Definition at line 98 of file AArch64PostCoalescerPass.cpp.
FunctionPass * llvm::createAArch64PostLegalizerCombiner | ( | bool | IsOptNone | ) |
Definition at line 778 of file AArch64PostLegalizerCombiner.cpp.
FunctionPass * llvm::createAArch64PostLegalizerLowering | ( | ) |
Definition at line 1365 of file AArch64PostLegalizerLowering.cpp.
FunctionPass * llvm::createAArch64PostSelectOptimize | ( | ) |
Definition at line 324 of file AArch64PostSelectOptimize.cpp.
FunctionPass * llvm::createAArch64PreLegalizerCombiner | ( | ) |
Definition at line 886 of file AArch64PreLegalizerCombiner.cpp.
aarch64 promote AArch64 Promote Constant false ModulePass * llvm::createAArch64PromoteConstantPass | ( | ) |
Definition at line 233 of file AArch64PromoteConstant.cpp.
FunctionPass * llvm::createAArch64RedundantCopyEliminationPass | ( | ) |
Definition at line 496 of file AArch64RedundantCopyElimination.cpp.
FunctionPass * llvm::createAArch64SIMDInstrOptPass | ( | ) |
Returns an instance of the high cost ASIMD instruction replacement optimization pass.
Definition at line 739 of file AArch64SIMDInstrOpt.cpp.
FunctionPass * llvm::createAArch64SLSHardeningPass | ( | ) |
FunctionPass * llvm::createAArch64SpeculationHardeningPass | ( | ) |
Returns an instance of the pseudo instruction expansion pass.
Definition at line 699 of file AArch64SpeculationHardening.cpp.
AArch64 Stack false FunctionPass * llvm::createAArch64StackTaggingPass | ( | bool | IsOptNone | ) |
Definition at line 360 of file AArch64StackTagging.cpp.
aarch64 stack tagging pre AArch64 Stack Tagging PreRA false FunctionPass * llvm::createAArch64StackTaggingPreRAPass | ( | ) |
Definition at line 94 of file AArch64StackTaggingPreRA.cpp.
FunctionPass * llvm::createAArch64StorePairSuppressPass | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createAArch64WinCOFFObjectWriter | ( | const Triple & | TheTriple | ) |
Definition at line 164 of file AArch64WinCOFFObjectWriter.cpp.
MCWinCOFFStreamer * llvm::createAArch64WinCOFFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | TAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 295 of file AArch64WinCOFFStreamer.cpp.
References Emitter.
Referenced by createWinCOFFStreamer().
AntiDepBreaker * llvm::createAggressiveAntiDepBreaker | ( | MachineFunction & | MFi, |
const RegisterClassInfo & | RCI, | ||
TargetSubtargetInfo::RegClassVector & | CriticalPathRCs | ||
) |
Definition at line 962 of file AggressiveAntiDepBreaker.cpp.
Referenced by INITIALIZE_PASS().
FunctionPass * llvm::createAllocaHoisting | ( | ) |
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.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
amdgpu aa AMDGPU Address space based Alias Analysis true ImmutablePass * llvm::createAMDGPUAAWrapperPass | ( | ) |
Definition at line 33 of file AMDGPUAliasAnalysis.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
ModulePass * llvm::createAMDGPUAlwaysInlinePass | ( | bool | GlobalOpt = true | ) |
Definition at line 165 of file AMDGPUAlwaysInlinePass.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
Pass * llvm::createAMDGPUAnnotateKernelFeaturesPass | ( | ) |
Definition at line 135 of file AMDGPUAnnotateKernelFeatures.cpp.
Referenced by llvm::AMDGPUPassConfig::addCodeGenPrepare().
FunctionPass * llvm::createAMDGPUAnnotateUniformValuesLegacy | ( | ) |
Definition at line 149 of file AMDGPUAnnotateUniformValues.cpp.
MCAsmBackend * llvm::createAMDGPUAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 266 of file AMDGPUAsmBackend.cpp.
References llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeAMDGPUTargetMC().
AMDGPU atomic false FunctionPass * llvm::createAMDGPUAtomicOptimizerPass | ( | ScanOptions | ScanStrategy | ) |
Definition at line 988 of file AMDGPUAtomicOptimizer.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
Pass * llvm::createAMDGPUAttributorLegacyPass | ( | ) |
Definition at line 1450 of file AMDGPUAttributor.cpp.
FunctionPass * llvm::createAMDGPUCodeGenPreparePass | ( | ) |
Definition at line 2328 of file AMDGPUCodeGenPrepare.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
ModulePass * llvm::createAMDGPUCtorDtorLoweringLegacyPass | ( | ) |
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
std::unique_ptr< MCObjectTargetWriter > llvm::createAMDGPUELFObjectWriter | ( | bool | Is64Bit, |
uint8_t | OSABI, | ||
bool | HasRelocationAddend | ||
) |
Definition at line 99 of file AMDGPUELFObjectWriter.cpp.
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.
Referenced by createMCStreamer().
std::unique_ptr< ScheduleDAGMutation > llvm::createAMDGPUExportClusteringDAGMutation | ( | ) |
Definition at line 144 of file AMDGPUExportClustering.cpp.
Referenced by createGCNMaxMemoryClauseMachineScheduler(), and createGCNMaxOccupancyMachineScheduler().
ImmutablePass * llvm::createAMDGPUExternalAAWrapperPass | ( | ) |
Definition at line 37 of file AMDGPUAliasAnalysis.cpp.
FunctionPass * llvm::createAMDGPUGlobalISelDivergenceLoweringPass | ( | ) |
Definition at line 206 of file AMDGPUGlobalISelDivergenceLowering.cpp.
FunctionPass * llvm::createAMDGPUImageIntrinsicOptimizerPass | ( | const TargetMachine * | TM | ) |
Definition at line 325 of file AMDGPUImageIntrinsicOptimizer.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
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 115 of file AMDGPUISelDAGToDAG.cpp.
Referenced by llvm::AMDGPUPassConfig::addInstSelector().
FunctionPass * llvm::createAMDGPULateCodeGenPrepareLegacyPass | ( | ) |
Definition at line 540 of file AMDGPULateCodeGenPrepare.cpp.
false ModulePass * llvm::createAMDGPULowerBufferFatPointersPass | ( | ) |
Definition at line 2407 of file AMDGPULowerBufferFatPointers.cpp.
Referenced by llvm::AMDGPUPassConfig::addCodeGenPrepare().
FunctionPass * llvm::createAMDGPULowerKernelArgumentsPass | ( | ) |
Definition at line 509 of file AMDGPULowerKernelArguments.cpp.
Referenced by llvm::AMDGPUPassConfig::addCodeGenPrepare().
ModulePass * llvm::createAMDGPULowerKernelAttributesPass | ( | ) |
Definition at line 374 of file AMDGPULowerKernelAttributes.cpp.
Lower uses of LDS variables from non kernel false ModulePass * llvm::createAMDGPULowerModuleLDSLegacyPass | ( | const AMDGPUTargetMachine * | TM = nullptr | ) |
Definition at line 1540 of file AMDGPULowerModuleLDSPass.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
std::unique_ptr< ScheduleDAGMutation > llvm::createAMDGPUMacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createAMDGPUMacroFusionDAGMutation()); to AMDGPUPassConfig::createMachineScheduler() to have an effect.
Definition at line 62 of file AMDGPUMacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by createGCNMaxOccupancyMachineScheduler(), and createIterativeILPMachineScheduler().
MCCodeEmitter * llvm::createAMDGPUMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 100 of file AMDGPUMCCodeEmitter.cpp.
References llvm::MCContext::getRegisterInfo().
Referenced by llvm::AMDGPUAsmPrinter::emitInstruction(), and LLVMInitializeAMDGPUTargetMC().
ModulePass * llvm::createAMDGPUOpenCLEnqueuedBlockLoweringLegacyPass | ( | ) |
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
FunctionPass * llvm::createAMDGPUPostLegalizeCombiner | ( | bool | IsOptNone | ) |
Definition at line 523 of file AMDGPUPostLegalizerCombiner.cpp.
FunctionPass * llvm::createAMDGPUPreLegalizeCombiner | ( | bool | IsOptNone | ) |
Definition at line 300 of file AMDGPUPreLegalizerCombiner.cpp.
FunctionPass * llvm::createAMDGPUPreloadKernArgPrologLegacyPass | ( | ) |
ModulePass * llvm::createAMDGPUPrintfRuntimeBinding | ( | ) |
Definition at line 80 of file AMDGPUPrintfRuntimeBinding.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
FunctionPass * llvm::createAMDGPUPromoteAlloca | ( | ) |
Definition at line 244 of file AMDGPUPromoteAlloca.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
FunctionPass * llvm::createAMDGPUPromoteAllocaToVector | ( | ) |
Definition at line 248 of file AMDGPUPromoteAlloca.cpp.
FunctionPass * llvm::createAMDGPUPromoteKernelArgumentsPass | ( | ) |
Definition at line 203 of file AMDGPUPromoteKernelArguments.cpp.
FunctionPass * llvm::createAMDGPURegBankCombiner | ( | bool | IsOptNone | ) |
Definition at line 477 of file AMDGPURegBankCombiner.cpp.
FunctionPass * llvm::createAMDGPURegBankLegalizePass | ( | ) |
Definition at line 68 of file AMDGPURegBankLegalize.cpp.
FunctionPass * llvm::createAMDGPURegBankSelectPass | ( | ) |
Definition at line 65 of file AMDGPURegBankSelect.cpp.
ModulePass * llvm::createAMDGPURemoveIncompatibleFunctionsPass | ( | const TargetMachine * | ) |
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
FunctionPass * llvm::createAMDGPUReserveWWMRegsPass | ( | ) |
FunctionPass * llvm::createAMDGPURewriteOutArgumentsPass | ( | ) |
Definition at line 403 of file AMDGPURewriteOutArguments.cpp.
FunctionPass * llvm::createAMDGPURewriteUndefForPHILegacyPass | ( | ) |
Definition at line 193 of file AMDGPURewriteUndefForPHI.cpp.
FunctionPass * llvm::createAMDGPUSetWavePriorityPass | ( | ) |
Pass * llvm::createAMDGPUStructurizeCFGPass | ( | ) |
ModulePass * llvm::createAMDGPUSwLowerLDSLegacyPass | ( | const AMDGPUTargetMachine * | TM = nullptr | ) |
Definition at line 1309 of file AMDGPUSwLowerLDS.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
ModulePass * llvm::createAMDGPUUnifyMetadataPass | ( | ) |
Value * llvm::createAnyOfReduction | ( | IRBuilderBase & | B, |
Value * | Src, | ||
const RecurrenceDescriptor & | Desc, | ||
PHINode * | OrigPhi | ||
) |
Create a reduction of the given vector Src
for a reduction of the kind RecurKind::IAnyOf or RecurKind::FAnyOf.
The reduction operation is described by Desc
.
Definition at line 1176 of file LoopUtils.cpp.
References assert(), llvm::IRBuilderBase::CreateFreeze(), llvm::IRBuilderBase::CreateOrReduce(), llvm::IRBuilderBase::CreateSelect(), llvm::RecurrenceDescriptor::isAnyOfRecurrenceKind(), and llvm::Value::users().
Referenced by createReduction().
FunctionPass * llvm::createARCBranchFinalizePass | ( | ) |
Definition at line 181 of file ARCBranchFinalize.cpp.
FunctionPass * llvm::createARCExpandPseudosPass | ( | ) |
Definition at line 163 of file ARCExpandPseudos.cpp.
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 77 of file ARCISelDAGToDAG.cpp.
FunctionPass * llvm::createARCOptAddrMode | ( | ) |
Definition at line 530 of file ARCOptAddrMode.cpp.
MCAsmBackend * llvm::createARMBEAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 1412 of file ARMAsmBackend.cpp.
References big, createARMAsmBackend(), MRI, and Options.
Referenced by LLVMInitializeARMTargetMC().
MCCodeEmitter * llvm::createARMBEMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 2051 of file ARMMCCodeEmitter.cpp.
Referenced by LLVMInitializeARMTargetMC().
FunctionPass * llvm::createARMBlockPlacementPass | ( | ) |
Definition at line 57 of file ARMBlockPlacement.cpp.
FunctionPass * llvm::createARMBranchTargetsPass | ( | ) |
FunctionPass * llvm::createARMConstantIslandPass | ( | ) |
createARMConstantIslandPass - returns an instance of the constpool island pass.
Definition at line 2535 of file ARMConstantIslandPass.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createARMELFObjectWriter | ( | uint8_t | OSABI | ) |
Construct an ELF Mach-O object writer.
Definition at line 320 of file ARMELFObjectWriter.cpp.
Referenced by llvm::ARMAsmBackendELF::createObjectTargetWriter().
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 1498 of file ARMELFStreamer.cpp.
References llvm::ELF::EF_ARM_EABI_VER5, and Emitter.
Referenced by createELFStreamer().
FunctionPass * llvm::createARMExpandPseudoPass | ( | ) |
createARMExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
Definition at line 3320 of file ARMExpandPseudoInsts.cpp.
FunctionPass * llvm::createARMFixCortexA57AES1742098Pass | ( | ) |
Definition at line 429 of file ARMFixCortexA57AES1742098Pass.cpp.
FunctionPass * llvm::createARMIndirectThunks | ( | ) |
Definition at line 400 of file ARMSLSHardening.cpp.
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().
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.
std::unique_ptr< ScheduleDAGMutation > llvm::createARMLatencyMutations | ( | const ARMSubtarget & | ST, |
AAResults * | AA | ||
) |
Definition at line 965 of file ARMLatencyMutations.cpp.
std::unique_ptr< ScheduleDAGMutation > llvm::createARMLatencyMutations | ( | const class ARMSubtarget & | , |
AAResults * | AA | ||
) |
Note that you have to add: DAG.addMutation(createARMLatencyMutation(ST, AA)); to ARMPassConfig::createMachineScheduler() to have an effect.
MCAsmBackend * llvm::createARMLEAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 1405 of file ARMAsmBackend.cpp.
References createARMAsmBackend(), little, MRI, and Options.
Referenced by LLVMInitializeARMTargetMC().
MCCodeEmitter * llvm::createARMLEMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 2046 of file ARMMCCodeEmitter.cpp.
Referenced by LLVMInitializeARMTargetMC().
FunctionPass * llvm::createARMLoadStoreOptimizationPass | ( | bool | PreAlloc = false | ) |
Returns an instance of the load / store optimization pass.
Definition at line 3303 of file ARMLoadStoreOptimizer.cpp.
FunctionPass * llvm::createARMLowOverheadLoopsPass | ( | ) |
Definition at line 1860 of file ARMLowOverheadLoops.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createARMMachObjectWriter | ( | bool | Is64Bit, |
uint32_t | CPUType, | ||
uint32_t | CPUSubtype | ||
) |
Construct an ARM Mach-O object writer.
Definition at line 488 of file ARMMachObjectWriter.cpp.
Referenced by llvm::ARMAsmBackendDarwin::createObjectTargetWriter().
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().
std::unique_ptr< ScheduleDAGMutation > llvm::createARMMacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createARMMacroFusionDAGMutation()); to ARMPassConfig::createMachineScheduler() to have an effect.
Definition at line 65 of file ARMMacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
MCTargetStreamer * llvm::createARMNullTargetStreamer | ( | MCStreamer & | S | ) |
Definition at line 1490 of file ARMELFStreamer.cpp.
Referenced by LLVMInitializeARMTargetMC().
MCTargetStreamer * llvm::createARMObjectTargetELFStreamer | ( | MCStreamer & | S | ) |
Definition at line 1494 of file ARMELFStreamer.cpp.
Referenced by createARMObjectTargetStreamer().
MCTargetStreamer * llvm::createARMObjectTargetStreamer | ( | MCStreamer & | S, |
const MCSubtargetInfo & | STI | ||
) |
Definition at line 326 of file ARMTargetStreamer.cpp.
References createARMObjectTargetELFStreamer(), createARMObjectTargetWinCOFFStreamer(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeARMTargetMC().
MCTargetStreamer * llvm::createARMObjectTargetWinCOFFStreamer | ( | MCStreamer & | S | ) |
Definition at line 273 of file ARMWinCOFFStreamer.cpp.
Referenced by createARMObjectTargetStreamer().
FunctionPass * llvm::createARMOptimizeBarriersPass | ( | ) |
createARMOptimizeBarriersPass - Returns an instance of the remove double barriers pass.
Definition at line 103 of file ARMOptimizeBarriersPass.cpp.
Pass * llvm::createARMParallelDSPPass | ( | ) |
Definition at line 803 of file ARMParallelDSP.cpp.
FunctionPass * llvm::createARMSLSHardeningPass | ( | ) |
Definition at line 383 of file ARMSLSHardening.cpp.
MCTargetStreamer * llvm::createARMTargetAsmStreamer | ( | MCStreamer & | S, |
formatted_raw_ostream & | OS, | ||
MCInstPrinter * | InstPrint | ||
) |
Definition at line 1484 of file ARMELFStreamer.cpp.
References OS.
Referenced by LLVMInitializeARMTargetMC().
std::unique_ptr< MCObjectTargetWriter > llvm::createARMWinCOFFObjectWriter | ( | ) |
Construct an ARM PE/COFF object writer.
Definition at line 100 of file ARMWinCOFFObjectWriter.cpp.
Referenced by llvm::ARMAsmBackendWinCOFF::createObjectTargetWriter().
MCStreamer * llvm::createARMWinCOFFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > && | MAB, | ||
std::unique_ptr< MCObjectWriter > && | OW, | ||
std::unique_ptr< MCCodeEmitter > && | Emitter | ||
) |
Definition at line 70 of file ARMWinCOFFStreamer.cpp.
References Emitter.
Referenced by LLVMInitializeARMTargetMC().
MCStreamer * llvm::createAsmStreamer | ( | MCContext & | Ctx, |
std::unique_ptr< formatted_raw_ostream > | OS, | ||
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.
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 2694 of file MCAsmStreamer.cpp.
References OS.
Referenced by llvm::Target::createAsmStreamer().
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 417 of file AtomicExpandPass.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
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 532 of file AVRAsmBackend.cpp.
References llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeAVRTargetMC().
FunctionPass * llvm::createAVRBranchSelectionPass | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createAVRELFObjectWriter | ( | uint8_t | OSABI | ) |
Creates an ELF object writer for AVR.
Definition at line 155 of file AVRELFObjectWriter.cpp.
Referenced by llvm::AVRAsmBackend::createObjectTargetWriter().
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.
FunctionPass * llvm::createAVRExpandPseudoPass | ( | ) |
Referenced by INITIALIZE_PASS().
FunctionPass * llvm::createAVRFrameAnalyzerPass | ( | ) |
Creates instance of the frame analyzer pass.
Definition at line 495 of file AVRFrameLowering.cpp.
FunctionPass * llvm::createAVRISelDag | ( | AVRTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 598 of file AVRISelDAGToDAG.cpp.
MCCodeEmitter * llvm::createAVRMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Creates a machine code emitter for AVR.
Referenced by LLVMInitializeAVRTargetMC().
MCInstrInfo * llvm::createAVRMCInstrInfo | ( | ) |
Definition at line 40 of file AVRMCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeAVRTargetMC().
Pass * llvm::createAVRShiftExpandPass | ( | ) |
ModulePass * llvm::createBarrierNoopPass | ( | ) |
createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.
Definition at line 43 of file BarrierNoopPass.cpp.
basic Basic Alias true FunctionPass * llvm::createBasicAAWrapperPass | ( | ) |
Definition at line 1983 of file BasicAliasAnalysis.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
MachineFunctionPass * llvm::createBasicBlockPathCloningPass | ( | ) |
Referenced by llvm::TargetPassConfig::addMachinePasses().
MachineFunctionPass * llvm::createBasicBlockSectionsPass | ( | ) |
createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections.
Definition at line 409 of file BasicBlockSections.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
ImmutablePass * llvm::createBasicBlockSectionsProfileReaderWrapperPass | ( | const MemoryBuffer * | Buf | ) |
Definition at line 447 of file BasicBlockSectionsProfileReader.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
FunctionPass * llvm::createBasicRegisterAllocator | ( | ) |
BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.
Definition at line 340 of file RegAllocBasic.cpp.
FunctionPass * llvm::createBasicRegisterAllocator | ( | RegAllocFilterFunc | F | ) |
Definition at line 344 of file RegAllocBasic.cpp.
References F.
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 80 of file BitcodeWriterPass.cpp.
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 992 of file VectorUtils.cpp.
References assert(), llvm::ConstantVector::get(), llvm::InterleaveGroup< InstTy >::getFactor(), llvm::IRBuilderBase::getInt1(), llvm::InterleaveGroup< InstTy >::getMember(), llvm::InterleaveGroup< InstTy >::getNumMembers(), and llvm::InterleaveGroup< InstTy >::isReverse().
Referenced by llvm::VPInterleaveRecipe::execute().
MCAsmBackend * llvm::createBPFAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 122 of file BPFAsmBackend.cpp.
References little.
Referenced by LLVMInitializeBPFTargetMC().
MCAsmBackend * llvm::createBPFbeAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 129 of file BPFAsmBackend.cpp.
References big.
Referenced by LLVMInitializeBPFTargetMC().
MCCodeEmitter * llvm::createBPFbeMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 73 of file BPFMCCodeEmitter.cpp.
References llvm::MCContext::getRegisterInfo().
Referenced by LLVMInitializeBPFTargetMC().
ModulePass * llvm::createBPFCheckAndAdjustIR | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createBPFELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 87 of file BPFELFObjectWriter.cpp.
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().
FunctionPass * llvm::createBPFISelDag | ( | BPFTargetMachine & | TM | ) |
Definition at line 492 of file BPFISelDAGToDAG.cpp.
MCCodeEmitter * llvm::createBPFMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 68 of file BPFMCCodeEmitter.cpp.
References llvm::MCContext::getRegisterInfo().
Referenced by LLVMInitializeBPFTargetMC().
FunctionPass * llvm::createBPFMIPeepholePass | ( | ) |
FunctionPass * llvm::createBPFMIPreEmitCheckingPass | ( | ) |
FunctionPass * llvm::createBPFMIPreEmitPeepholePass | ( | ) |
FunctionPass * llvm::createBPFMISimplifyPatchablePass | ( | ) |
FunctionPass * llvm::createBreakCriticalEdgesPass | ( | ) |
FunctionPass * llvm::createBreakFalseDeps | ( | ) |
Creates Break False Dependencies pass.
Definition at line 108 of file BreakFalseDeps.cpp.
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().
Prepare false FunctionPass * llvm::createCallBrPass | ( | ) |
Definition at line 103 of file CallBrPrepare.cpp.
Referenced by llvm::TargetPassConfig::addISelPrepare().
ModulePass * llvm::createCallGraphDOTPrinterPass | ( | ) |
Definition at line 356 of file CallPrinter.cpp.
ModulePass * llvm::createCallGraphViewerPass | ( | ) |
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.
Definition at line 2949 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().
canon Canonicalize Freeze Instructions in false Pass * llvm::createCanonicalizeFreezeInLoopsPass | ( | ) |
Definition at line 273 of file CanonicalizeFreezeInLoops.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
MCCFIInstruction llvm::createCFAOffset | ( | const TargetRegisterInfo & | MRI, |
unsigned | Reg, | ||
const StackOffset & | OffsetFromDefCFA | ||
) |
Definition at line 5728 of file AArch64InstrInfo.cpp.
References llvm::SmallString< InternalLen >::append(), appendVGScaledOffsetExpr(), llvm::MCCFIInstruction::createEscape(), llvm::MCCFIInstruction::createOffset(), llvm::AArch64InstrInfo::decomposeStackOffsetForDwarfOffsets(), encodeULEB128(), printReg(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), llvm::SmallString< InternalLen >::str(), and TRI.
Simplify the false FunctionPass * llvm::createCFGSimplificationPass | ( | SimplifyCFGOptions | Options = SimplifyCFGOptions() , |
std::function< bool(const Function &)> | Ftor = nullptr |
||
) |
Definition at line 440 of file SimplifyCFGPass.cpp.
References Options.
FunctionPass * llvm::createCFGuardCheckPass | ( | ) |
Insert Control FLow Guard checks on indirect function calls.
Definition at line 314 of file CFGuard.cpp.
References llvm::CFGuardPass::Check.
FunctionPass * llvm::createCFGuardDispatchPass | ( | ) |
Insert Control FLow Guard dispatches on indirect function calls.
Definition at line 318 of file CFGuard.cpp.
References llvm::CFGuardPass::Dispatch.
FunctionPass * llvm::createCFGuardLongjmpPass | ( | ) |
Creates CFGuard longjmp target identification pass.
FunctionPass * llvm::createCFIFixup | ( | ) |
Creates CFI Fixup pass.
Referenced by llvm::TargetPassConfig::addMachinePasses().
FunctionPass * llvm::createCFIInstrInserter | ( | ) |
Creates CFI Instruction Inserter pass.
CGSCCToFunctionPassAdaptor llvm::createCGSCCToFunctionPassAdaptor | ( | FunctionPassT && | Pass, |
bool | EagerlyInvalidate = false , |
||
bool | NoRerun = false |
||
) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 501 of file CGSCCPassManager.h.
Referenced by llvm::PassBuilder::buildInlinerPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), and llvm::AMDGPUTargetMachine::registerPassBuilderCallbacks().
Machine Check Debug false ModulePass * llvm::createCheckDebugMachineModulePass | ( | ) |
Creates MIR Check Debug pass.
Definition at line 126 of file MachineCheckDebugify.cpp.
Referenced by llvm::TargetPassConfig::addCheckDebugPass().
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 10500 of file X86InstrInfo.cpp.
Optimize for code false FunctionPass * llvm::createCodeGenPrepareLegacyPass | ( | ) |
createCodeGenPrepareLegacyPass - Transform the code to expose more pattern matching during instruction selection.
Definition at line 541 of file CodeGenPrepare.cpp.
Referenced by llvm::TargetPassConfig::addCodeGenPrepare().
MCAsmParserExtension * llvm::createCOFFAsmParser | ( | ) |
Definition at line 771 of file COFFAsmParser.cpp.
MCAsmParserExtension * llvm::createCOFFMasmParser | ( | ) |
Definition at line 538 of file COFFMasmParser.cpp.
FunctionPass * llvm::createComplexDeinterleavingPass | ( | const TargetMachine * | TM | ) |
This pass implements generation of target-specific intrinsics to support handling of complex number arithmetic.
Definition at line 477 of file ComplexDeinterleavingPass.cpp.
Constant false FunctionPass * llvm::createConstantHoistingPass | ( | ) |
Definition at line 136 of file ConstantHoisting.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
std::unique_ptr< ScheduleDAGMutation > llvm::createCopyConstrainDAGMutation | ( | const TargetInstrInfo * | TII, |
const TargetRegisterInfo * | TRI | ||
) |
Definition at line 2052 of file MachineScheduler.cpp.
Referenced by createGenericSchedLive(), createPPCMachineScheduler(), and createVLIWMachineSched().
AntiDepBreaker * llvm::createCriticalAntiDepBreaker | ( | MachineFunction & | MFi, |
const RegisterClassInfo & | RCI | ||
) |
Definition at line 695 of file CriticalAntiDepBreaker.cpp.
Referenced by INITIALIZE_PASS().
MCAsmBackend * llvm::createCSKYAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 353 of file CSKYAsmBackend.cpp.
References Options.
Referenced by LLVMInitializeCSKYTargetMC().
FunctionPass * llvm::createCSKYConstantIslandPass | ( | ) |
Returns a pass that converts branches to long branches.
Definition at line 1360 of file CSKYConstantIslandPass.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createCSKYELFObjectWriter | ( | ) |
Definition at line 153 of file CSKYELFObjectWriter.cpp.
Referenced by llvm::CSKYAsmBackend::createObjectTargetWriter().
FunctionPass * llvm::createCSKYISelDag | ( | CSKYTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 409 of file CSKYISelDAGToDAG.cpp.
MCCodeEmitter * llvm::createCSKYMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 322 of file CSKYMCCodeEmitter.cpp.
Referenced by LLVMInitializeCSKYTargetMC().
Error llvm::createCtxProfFromYAML | ( | StringRef | Profile, |
raw_ostream & | Out | ||
) |
Definition at line 145 of file PGOCtxProfWriter.cpp.
References createStringError(), Profile, llvm::Error::success(), and llvm::PGOCtxProfileWriter::write().
mca::CustomBehaviour * llvm::createCustomBehaviour | ( | const MCSubtargetInfo & | STI, |
const mca::SourceMgr & | SrcMgr, | ||
const MCInstrInfo & | MCII | ||
) |
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 810 of file ScheduleDAGFast.cpp.
References llvm::SelectionDAGISel::MF.
Referenced by createDefaultScheduler().
MCAsmParserExtension * llvm::createDarwinAsmParser | ( | ) |
Definition at line 1213 of file DarwinAsmParser.cpp.
ModulePass * llvm::createDeadArgEliminationPass | ( | ) |
createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the body of the function.
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 125 of file DeadArgumentElimination.cpp.
FunctionPass * llvm::createDeadCodeEliminationPass | ( | ) |
Machine Debugify false ModulePass * llvm::createDebugifyMachineModulePass | ( | ) |
Creates MIR Debugify pass.
Definition at line 221 of file MachineDebugify.cpp.
Referenced by llvm::TargetPassConfig::addDebugifyPass().
FunctionPass * llvm::createDefaultPBQPRegisterAllocator | ( | ) |
PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.
Definition at line 955 of file RegAllocPBQP.cpp.
References createPBQPRegisterAllocator().
ScheduleDAGSDNodes * llvm::createDefaultScheduler | ( | SelectionDAGISel * | IS, |
CodeGenOptLevel | OptLevel | ||
) |
createDefaultScheduler - This creates an instruction scheduler appropriate for the target.
Definition at line 284 of file SelectionDAGISel.cpp.
References assert(), createBURRListDAGScheduler(), createDAGLinearizer(), createFastDAGScheduler(), createHybridListDAGScheduler(), createILPListDAGScheduler(), createSourceListDAGScheduler(), createVLIWDAGScheduler(), llvm::Sched::Fast, llvm::TargetLoweringBase::getSchedulingPreference(), llvm::MachineFunction::getSubtarget(), llvm::Sched::Hybrid, llvm::Sched::ILP, llvm::Sched::Linearize, llvm::SelectionDAGISel::MF, None, llvm::Sched::RegPressure, llvm::Sched::Source, llvm::SelectionDAGISel::TLI, and llvm::Sched::VLIW.
MCCFIInstruction llvm::createDefCFA | ( | const TargetRegisterInfo & | TRI, |
unsigned | FrameReg, | ||
unsigned | Reg, | ||
const StackOffset & | Offset, | ||
bool | LastAdjustmentWasScalable = true |
||
) |
Definition at line 5714 of file AArch64InstrInfo.cpp.
References llvm::MCCFIInstruction::cfiDefCfa(), llvm::MCCFIInstruction::cfiDefCfaOffset(), createDefCFAExpression(), Offset, and TRI.
Referenced by emitFrameOffsetAdj(), and llvm::AArch64FrameLowering::emitPrologue().
FunctionPass * llvm::createDependenceAnalysisWrapperPass | ( | ) |
createDependenceAnalysisPass - This creates an instance of the DependenceAnalysis wrapper pass.
Definition at line 152 of file DependenceAnalysis.cpp.
RegAllocEvictionAdvisorAnalysis * llvm::createDevelopmentModeAdvisor | ( | ) |
Referenced by callDefaultCtor< RegAllocEvictionAdvisorAnalysis >().
RegAllocPriorityAdvisorAnalysis * llvm::createDevelopmentModePriorityAdvisor | ( | ) |
Referenced by callDefaultCtor< RegAllocPriorityAdvisorAnalysis >().
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 572 of file CGSCCPassManager.h.
FunctionPass * llvm::createDomOnlyPrinterWrapperPassPass | ( | ) |
Definition at line 218 of file DomPrinter.cpp.
FunctionPass * llvm::createDomOnlyViewerWrapperPassPass | ( | ) |
Definition at line 226 of file DomPrinter.cpp.
FunctionPass * llvm::createDomPrinterWrapperPassPass | ( | ) |
FunctionPass * llvm::createDomViewerWrapperPassPass | ( | ) |
Definition at line 222 of file DomPrinter.cpp.
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.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
dxil DXContainer Global true ModulePass * llvm::createDXContainerGlobalsPass | ( | ) |
Pass for generating DXContainer part globals.
Definition at line 253 of file DXContainerGlobals.cpp.
Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile().
MCStreamer * llvm::createDXContainerStreamer | ( | MCContext & | Ctx, |
std::unique_ptr< MCAsmBackend > && | TAB, | ||
std::unique_ptr< MCObjectWriter > && | OW, | ||
std::unique_ptr< MCCodeEmitter > && | CE | ||
) |
Definition at line 22 of file MCDXContainerStreamer.cpp.
Referenced by llvm::Target::createMCObjectStreamer().
std::unique_ptr< MCObjectTargetWriter > llvm::createDXContainerTargetObjectWriter | ( | ) |
Definition at line 26 of file DirectXContainerObjectWriter.cpp.
DXIL Data false ModulePass * llvm::createDXILDataScalarizationLegacyPass | ( | ) |
Pass to scalarize llvm global data into a DXIL legal form.
Definition at line 300 of file DXILDataScalarization.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
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 109 of file DXILWriterPass.cpp.
Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile().
DXIL Finalize false ModulePass * llvm::createDXILFinalizeLinkageLegacyPass | ( | ) |
Pass to finalize linkage of functions.
Definition at line 60 of file DXILFinalizeLinkage.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
DXIL Array false ModulePass * llvm::createDXILFlattenArraysLegacyPass | ( | ) |
Pass to flatten arrays into a one dimensional DXIL legal form.
Definition at line 454 of file DXILFlattenArrays.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
DXIL Intrinsic false ModulePass * llvm::createDXILIntrinsicExpansionLegacyPass | ( | ) |
Pass to expand intrinsic operations that lack DXIL opCodes.
Definition at line 632 of file DXILIntrinsicExpansion.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
DXIL Op false ModulePass * llvm::createDXILOpLoweringLegacyPass | ( | ) |
Pass to lowering LLVM intrinsic call to DXIL op function call.
Definition at line 889 of file DXILOpLowering.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
DXIL Prepare false ModulePass * llvm::createDXILPrepareModulePass | ( | ) |
Pass to convert modules into DXIL-compatable modules.
Definition at line 268 of file DXILPrepare.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
ModulePass * llvm::createDXILPrettyPrinterLegacyPass | ( | raw_ostream & | OS | ) |
Pass to pretty print DXIL metadata.
Definition at line 317 of file DXILPrettyPrinter.cpp.
References OS.
Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile().
DXIL Resource false FunctionPass * llvm::createDXILResourceAccessLegacyPass | ( | ) |
Pass to update resource accesses to use load/store directly.
Definition at line 197 of file DXILResourceAccess.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
ModulePass * llvm::createDXILResourceBindingWrapperPassPass | ( | ) |
ModulePass * llvm::createDXILResourceTypeWrapperPassPass | ( | ) |
ModulePass * llvm::createDXILTranslateMetadataLegacyPass | ( | ) |
Pass to emit metadata for DXIL.
Definition at line 456 of file DXILTranslateMetadata.cpp.
Referenced by DirectXPassConfig::addCodeGenPrepare().
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 102 of file DXILWriterPass.cpp.
Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile().
FunctionPass * llvm::createEarlyCSEPass | ( | bool | UseMemorySSA = false | ) |
Definition at line 1944 of file EarlyCSE.cpp.
Referenced by llvm::AMDGPUPassConfig::addEarlyCSEOrGVNPass(), and llvm::AMDGPUPassConfig::addStraightLineScalarOptimizationPasses().
FunctionPass * llvm::createEHContGuardCatchretPass | ( | ) |
Creates EHContGuard catchret target identification pass.
MCAsmParserExtension * llvm::createELFAsmParser | ( | ) |
Definition at line 933 of file ELFAsmParser.cpp.
MCStreamer * llvm::createELFStreamer | ( | MCContext & | Ctx, |
std::unique_ptr< MCAsmBackend > && | TAB, | ||
std::unique_ptr< MCObjectWriter > && | OW, | ||
std::unique_ptr< MCCodeEmitter > && | CE | ||
) |
Definition at line 847 of file MCELFStreamer.cpp.
Referenced by createBPFMCStreamer(), llvm::Target::createMCObjectStreamer(), and createMCStreamer().
Definition at line 397 of file APFloat.cpp.
References inconvertibleErrorCode().
Referenced by llvm::detail::IEEEFloat::convertFromString(), getSymbolInfo(), interpretDecimal(), llvm::ifs::populateDynamic(), readExponent(), skipLeadingZeroesAndAnyDot(), llvm::ifs::terminatedSubstr(), totalExponent(), and trailingHexadecimalFraction().
expand large div Expand large div false FunctionPass * llvm::createExpandLargeDivRemPass | ( | ) |
Definition at line 180 of file ExpandLargeDivRem.cpp.
Referenced by llvm::TargetPassConfig::addISelPasses().
expand large fp Expand large fp false FunctionPass * llvm::createExpandLargeFpConvertPass | ( | ) |
Definition at line 705 of file ExpandLargeFpConvert.cpp.
Referenced by llvm::TargetPassConfig::addISelPasses().
Expand false FunctionPass * llvm::createExpandMemCmpLegacyPass | ( | ) |
Definition at line 1022 of file ExpandMemCmp.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
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.
Referenced by llvm::TargetPassConfig::addIRPasses().
ModulePass * llvm::createExpandVariadicsPass | ( | ExpandVariadicsMode | ) |
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
ImmutablePass * llvm::createExternalAAWrapperPass | ( | std::function< void(Pass &, Function &, AAResults &)> | Callback | ) |
A wrapper pass around a callback which can be used to populate the AAResults in the AAResultsWrapperPass from an external AA.
The callback provided here will be used each time we prepare an AAResults object, and will receive a reference to the function wrapper pass, the function, and the AAResults object to populate. This should be used when setting up a custom pass pipeline to inject a hook into the AA results.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
FunctionPass * llvm::createFalkorHWPFFixPass | ( | ) |
Definition at line 837 of file AArch64FalkorHWPFFix.cpp.
Falkor HW Prefetch false FunctionPass * llvm::createFalkorMarkStridedAccessesPass | ( | ) |
Definition at line 113 of file AArch64FalkorHWPFFix.cpp.
llvm::ScheduleDAGSDNodes * llvm::createFastDAGScheduler | ( | SelectionDAGISel * | IS, |
CodeGenOptLevel | OptLevel | ||
) |
createFastDAGScheduler - This creates a "fast" scheduler.
Definition at line 805 of file ScheduleDAGFast.cpp.
References llvm::SelectionDAGISel::MF.
Referenced by createDefaultScheduler().
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 1874 of file RegAllocFast.cpp.
Referenced by llvm::TargetPassConfig::addRegAssignAndRewriteFast(), and llvm::TargetPassConfig::createTargetRegisterAllocator().
FunctionPass * llvm::createFastRegisterAllocator | ( | RegAllocFilterFunc | F, |
bool | ClearVirtRegs | ||
) |
Definition at line 1876 of file RegAllocFast.cpp.
Concatenate a source file path and/or name with an Error.
The resulting Error is unchecked.
Definition at line 1385 of file Error.h.
Referenced by llvm::FilePermissionsApplier::apply(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::cloneAndEmitDebugFrame(), computeMemberData(), llvm::object::Slice::create(), llvm::orc::COFFPlatform::Create(), llvm::FilePermissionsApplier::create(), createFileError(), llvm::objcopy::coff::createGnuDebugLinkSectionContents(), llvm::objcopy::createNewArchiveMembers(), llvm::remarks::createYAMLParserFromMeta(), llvm::objcopy::deepWriteArchive(), llvm::lto::ThinBackendProc::emitFiles(), EmitImportsFiles(), llvm::objcopy::coff::executeObjcopyOnBinary(), llvm::objcopy::elf::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnBinary(), llvm::objcopy::wasm::executeObjcopyOnBinary(), llvm::objcopy::xcoff::executeObjcopyOnBinary(), llvm::object::MachOObjectFile::findDsymObjectMembers(), llvm::object::Archive::Child::getMemoryBufferRef(), llvm::symbolize::LLVMSymbolizer::getOrCreateModuleInfo(), llvm::objcopy::wasm::handleArgs(), llvm::coverage::CoverageMapping::load(), llvm::orc::loadLinkableFile(), llvm::orc::loadMachORelocatableObject(), write(), and writeToOutput().
|
delete |
Concatenate a source file path and/or name with line number and std::error_code to form an Error object.
Definition at line 1403 of file Error.h.
References createFileError(), errorCodeToError(), and F.
Concatenate a source file path and/or name with a std::error_code to form an Error object.
Definition at line 1397 of file Error.h.
References createFileError(), errorCodeToError(), and F.
Value * llvm::createFindLastIVReduction | ( | IRBuilderBase & | B, |
Value * | Src, | ||
const RecurrenceDescriptor & | Desc | ||
) |
Create a reduction of the given vector Src
for a reduction of the kind RecurKind::IFindLastIV or RecurKind::FFindLastIV.
The reduction operation is described by Desc
.
Definition at line 1211 of file LoopUtils.cpp.
References assert(), llvm::IRBuilderBase::CreateCmp(), llvm::IRBuilderBase::CreateIntMaxReduce(), llvm::IRBuilderBase::CreateSelect(), llvm::CmpInst::ICMP_NE, llvm::RecurrenceDescriptor::isFindLastIVRecurrenceKind(), and Sentinel.
Referenced by createReduction().
FunctionPass * llvm::createFixIrreduciblePass | ( | ) |
Definition at line 119 of file FixIrreducible.cpp.
Flatten the false FunctionPass * llvm::createFlattenCFGPass | ( | ) |
Definition at line 81 of file FlattenCFGPass.cpp.
Referenced by llvm::AMDGPUPassConfig::addPreISel().
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().
|
inline |
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 467 of file LoopPassManager.h.
References llvm::PassManager< Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater & >::addPass().
|
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.
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().
|
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 486 of file LoopPassManager.h.
FunctionToMachineFunctionPassAdaptor llvm::createFunctionToMachineFunctionPassAdaptor | ( | MachineFunctionPassT && | Pass | ) |
Definition at line 216 of file MachinePassManager.h.
Referenced by llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::AddMachinePass::operator()(), and llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::AddMachinePass::~AddMachinePass().
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.
Referenced by llvm::TargetPassConfig::addMachinePasses().
FunctionPass * llvm::createGCLoweringPass | ( | ) |
GCLowering Pass - Used by gc.root to perform its default lowering operations.
FunctionPass * llvm::createGCNDPPCombinePass | ( | ) |
Definition at line 117 of file GCNDPPCombine.cpp.
MCRegisterInfo * llvm::createGCNMCRegisterInfo | ( | AMDGPUDwarfFlavour | DwarfFlavour | ) |
Definition at line 70 of file AMDGPUMCTargetDesc.cpp.
References X.
Referenced by llvm::AMDGPUTargetMachine::AMDGPUTargetMachine().
FunctionPass * llvm::createGCNPreRAOptimizationsPass | ( | ) |
Definition at line 81 of file GCNPreRAOptimizations.cpp.
ScheduleDAGMILive * llvm::createGenericSchedLive | ( | MachineSchedContext * | C | ) |
Create the standard converging machine scheduler.
This will be used as the default scheduler if the target does not set a default. Adds default DAG mutations.
This will be used as the default scheduler if the target does not set a default.
Definition at line 3845 of file MachineScheduler.cpp.
References llvm::ScheduleDAGMI::addMutation(), llvm::CallingConv::C, createCopyConstrainDAGMutation(), createMacroFusionDAGMutation(), llvm::TargetSubtargetInfo::getMacroFusions(), llvm::ScheduleDAG::TII, and llvm::ScheduleDAG::TRI.
Referenced by createConvergingSched(), and llvm::AMDGPUPassConfig::createMachineScheduler().
ScheduleDAGMI * llvm::createGenericSchedPostRA | ( | MachineSchedContext * | C | ) |
Create a generic scheduler with no vreg liveness or DAG mutation passes.
Definition at line 4153 of file MachineScheduler.cpp.
References llvm::ScheduleDAGMI::addMutation(), llvm::CallingConv::C, createMacroFusionDAGMutation(), and llvm::TargetSubtargetInfo::getMacroFusions().
ModulePass * llvm::createGenericToNVVMLegacyPass | ( | ) |
Definition at line 286 of file NVPTXGenericToNVVM.cpp.
ModulePass * llvm::createGlobalMergeFuncPass | ( | ) |
This pass performs merging similar functions globally.
Definition at line 626 of file GlobalMergeFunctions.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
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, llvm::cl::Option::getNumOccurrences(), GlobalMergeAllConst, and Offset.
globals Globals Alias true ModulePass * llvm::createGlobalsAAWrapperPass | ( | ) |
Definition at line 1032 of file GlobalsModRef.cpp.
MCAsmParserExtension * llvm::createGOFFAsmParser | ( | ) |
Definition at line 37 of file GOFFAsmParser.cpp.
std::unique_ptr< MCObjectWriter > llvm::createGOFFObjectWriter | ( | std::unique_ptr< MCGOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS | ||
) |
Construct a new GOFF writer instance.
MOTW | - The target-specific GOFF writer subclass. |
OS | - The stream to write to. |
Definition at line 289 of file GOFFObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createObjectWriter().
MCStreamer * llvm::createGOFFStreamer | ( | MCContext & | Ctx, |
std::unique_ptr< MCAsmBackend > && | TAB, | ||
std::unique_ptr< MCObjectWriter > && | OW, | ||
std::unique_ptr< MCCodeEmitter > && | CE | ||
) |
Definition at line 24 of file MCGOFFStreamer.cpp.
Referenced by llvm::Target::createMCObjectStreamer().
Definition at line 113 of file GraphWriter.cpp.
References llvm::sys::fs::createTemporaryFile(), errs(), N, Name, and replaceIllegalFilenameChars().
Referenced by WriteGraph().
FunctionPass * llvm::createGreedyRegisterAllocator | ( | ) |
Greedy register allocation pass - This pass implements a global register allocator for optimized builds.
Definition at line 188 of file RegAllocGreedy.cpp.
Referenced by llvm::TargetPassConfig::createTargetRegisterAllocator().
FunctionPass * llvm::createGreedyRegisterAllocator | ( | RegAllocFilterFunc | F | ) |
Definition at line 192 of file RegAllocGreedy.cpp.
FunctionPass * llvm::createGVNPass | ( | ) |
Create a legacy GVN pass.
Definition at line 3374 of file GVN.cpp.
References llvm::GVNPass::gvn::GVNLegacyPass.
Referenced by llvm::AMDGPUPassConfig::addEarlyCSEOrGVNPass().
FunctionPass * llvm::createHardwareLoopsLegacyPass | ( | ) |
Create Hardware Loop pass.
Definition at line 608 of file HardwareLoops.cpp.
MCAsmBackend * llvm::createHexagonAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 766 of file HexagonAsmBackend.cpp.
References llvm::MCSubtargetInfo::getCPU(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), and llvm::Hexagon_MC::selectHexagonCPU().
Referenced by LLVMInitializeHexagonTargetMC().
FunctionPass * llvm::createHexagonBitSimplify | ( | ) |
Definition at line 3401 of file HexagonBitSimplify.cpp.
FunctionPass * llvm::createHexagonBranchRelaxation | ( | ) |
FunctionPass * llvm::createHexagonCallFrameInformation | ( | ) |
FunctionPass * llvm::createHexagonCFGOptimizer | ( | ) |
FunctionPass * llvm::createHexagonCommonGEP | ( | ) |
Definition at line 1290 of file HexagonCommonGEP.cpp.
FunctionPass * llvm::createHexagonConstExtenders | ( | ) |
Definition at line 2026 of file HexagonConstExtenders.cpp.
FunctionPass * llvm::createHexagonConstPropagationPass | ( | ) |
Definition at line 3185 of file HexagonConstPropagation.cpp.
FunctionPass * llvm::createHexagonCopyHoisting | ( | ) |
FunctionPass * llvm::createHexagonCopyToCombine | ( | ) |
Definition at line 878 of file HexagonCopyToCombine.cpp.
FunctionPass * llvm::createHexagonEarlyIfConversion | ( | ) |
Definition at line 1076 of file HexagonEarlyIfConv.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createHexagonELFObjectWriter | ( | uint8_t | OSABI, |
StringRef | CPU | ||
) |
Definition at line 299 of file HexagonELFObjectWriter.cpp.
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 216 of file HexagonMCELFStreamer.cpp.
Referenced by createMCStreamer().
FunctionPass * llvm::createHexagonExpandCondsets | ( | ) |
Definition at line 1355 of file HexagonExpandCondsets.cpp.
FunctionPass * llvm::createHexagonFixupHwLoops | ( | ) |
FunctionPass * llvm::createHexagonGenExtract | ( | ) |
Definition at line 267 of file HexagonGenExtract.cpp.
FunctionPass * llvm::createHexagonGenInsert | ( | ) |
Definition at line 1600 of file HexagonGenInsert.cpp.
FunctionPass * llvm::createHexagonGenMemAbsolute | ( | ) |
Definition at line 270 of file HexagonGenMemAbsolute.cpp.
FunctionPass * llvm::createHexagonGenMux | ( | ) |
Definition at line 381 of file HexagonGenMux.cpp.
FunctionPass * llvm::createHexagonGenPredicate | ( | ) |
Definition at line 536 of file HexagonGenPredicate.cpp.
FunctionPass * llvm::createHexagonHardwareLoops | ( | ) |
Definition at line 375 of file HexagonHardwareLoops.cpp.
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.
FunctionPass * llvm::createHexagonLoadWidening | ( | ) |
Definition at line 913 of file HexagonLoadStoreWidening.cpp.
FunctionPass * llvm::createHexagonLoopAlign | ( | ) |
Pass * llvm::createHexagonLoopIdiomPass | ( | ) |
Definition at line 2449 of file HexagonLoopIdiomRecognition.cpp.
FunctionPass * llvm::createHexagonLoopRescheduling | ( | ) |
Definition at line 3397 of file HexagonBitSimplify.cpp.
FunctionPass * llvm::createHexagonMask | ( | ) |
Definition at line 105 of file HexagonMask.cpp.
MCCodeEmitter * llvm::createHexagonMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | MCT | ||
) |
Definition at line 788 of file HexagonMCCodeEmitter.cpp.
Referenced by LLVMInitializeHexagonTargetMC().
llvm::MCInstrInfo * llvm::createHexagonMCInstrInfo | ( | ) |
Definition at line 350 of file HexagonMCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeHexagonTargetMC().
MCRegisterInfo * llvm::createHexagonMCRegisterInfo | ( | StringRef | TT | ) |
FunctionPass * llvm::createHexagonMergeActivateWeight | ( | ) |
FunctionPass * llvm::createHexagonNewValueJump | ( | ) |
Definition at line 720 of file HexagonNewValueJump.cpp.
FunctionPass * llvm::createHexagonOptAddrMode | ( | ) |
Definition at line 1208 of file HexagonOptAddrMode.cpp.
FunctionPass * llvm::createHexagonOptimizeSZextends | ( | ) |
Definition at line 143 of file HexagonOptimizeSZextends.cpp.
FunctionPass * llvm::createHexagonPacketizer | ( | bool | Minimal | ) |
Definition at line 1954 of file HexagonVLIWPacketizer.cpp.
FunctionPass * llvm::createHexagonPeephole | ( | ) |
Definition at line 287 of file HexagonPeephole.cpp.
FunctionPass * llvm::createHexagonRDFOpt | ( | ) |
Definition at line 357 of file HexagonRDFOpt.cpp.
FunctionPass * llvm::createHexagonSplitConst32AndConst64 | ( | ) |
Definition at line 109 of file HexagonSplitConst32AndConst64.cpp.
FunctionPass * llvm::createHexagonSplitDoubleRegs | ( | ) |
Definition at line 1231 of file HexagonSplitDouble.cpp.
FunctionPass * llvm::createHexagonStoreWidening | ( | ) |
Definition at line 909 of file HexagonLoadStoreWidening.cpp.
ImmutablePass * llvm::createHexagonTargetTransformInfoPass | ( | const HexagonTargetMachine * | TM | ) |
Creates a Hexagon-specific Target Transformation Info pass.
FunctionPass * llvm::createHexagonTfrCleanup | ( | ) |
Hexagon Vector false FunctionPass * llvm::createHexagonVectorCombineLegacyPass | ( | ) |
Definition at line 2987 of file HexagonVectorCombine.cpp.
Pass * llvm::createHexagonVectorLoopCarriedReuseLegacyPass | ( | ) |
Definition at line 662 of file HexagonVectorLoopCarriedReuse.cpp.
FunctionPass * llvm::createHexagonVectorPrint | ( | ) |
FunctionPass * llvm::createHexagonVExtract | ( | ) |
Definition at line 193 of file HexagonVExtract.cpp.
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().
FunctionPass * llvm::createIfConverter | ( | std::function< bool(const MachineFunction &)> | Ftor | ) |
Definition at line 2357 of file IfConversion.cpp.
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 2707 of file AMDGPUIGroupLP.cpp.
References Phase.
Referenced by createGCNMaxILPMachineScheduler(), createGCNMaxOccupancyMachineScheduler(), llvm::GCNSchedStage::initGCNRegion(), llvm::UnclusteredHighRPStage::initGCNSchedStage(), and llvm::GCNPostScheduleDAGMILive::schedule().
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().
ImmutablePass * llvm::createImmutableModuleSummaryIndexWrapperPass | ( | const ModuleSummaryIndex * | Index | ) |
Definition at line 1211 of file ModuleSummaryAnalysis.cpp.
Referenced by codegen().
Expand indirectbr false FunctionPass * llvm::createIndirectBrExpandPass | ( | ) |
Definition at line 98 of file IndirectBrExpandPass.cpp.
FunctionPass * llvm::createInferAddressSpacesPass | ( | unsigned | AddressSpace = ~0u | ) |
Definition at line 1412 of file InferAddressSpaces.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
std::unique_ptr< raw_ostream > llvm::CreateInfoOutputFile | ( | ) |
Return a stream to print our output on.
Definition at line 66 of file Timer.cpp.
References errs(), libSupportInfoOutputFilename(), llvm::sys::fs::OF_Append, llvm::sys::fs::OF_TextWithCRLF, and OutputFilename.
Referenced by llvm::TimePassesHandler::print(), and PrintStatistics().
Spiller * llvm::createInlineSpiller | ( | const Spiller::RequiredAnalyses & | Analyses, |
MachineFunction & | MF, | ||
VirtRegMap & | VRM, | ||
VirtRegAuxInfo & | VRAI | ||
) |
Create and return a spiller that will insert spill code directly instead of deferring though VirtRegMap.
Referenced by llvm::RAGreedy::runOnMachineFunction().
mca::InstrPostProcess * llvm::createInstrPostProcess | ( | const MCSubtargetInfo & | STI, |
const MCInstrInfo & | MCII | ||
) |
FunctionPass * llvm::createInstructionCombiningPass | ( | ) |
Definition at line 5703 of file InstructionCombining.cpp.
mca::InstrumentManager * llvm::createInstrumentManager | ( | const MCSubtargetInfo & | STI, |
const MCInstrInfo & | MCII | ||
) |
Remove redundant false FunctionPass * llvm::createInstSimplifyLegacyPass | ( | ) |
Definition at line 119 of file InstSimplifyPass.cpp.
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 198 of file InterleavedAccessPass.cpp.
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 P.
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 1021 of file VectorUtils.cpp.
Referenced by llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), and interleaveVectors().
Definition at line 51 of file IVUsers.cpp.
ModulePass * llvm::createJMCInstrumenterPass | ( | ) |
JMC instrument pass.
FunctionPass * llvm::createKCFIPass | ( | ) |
MCAsmBackend * llvm::createLanaiAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 153 of file LanaiAsmBackend.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), and llvm_unreachable.
Referenced by LLVMInitializeLanaiTargetMC().
FunctionPass * llvm::createLanaiDelaySlotFillerPass | ( | const LanaiTargetMachine & | TM | ) |
Definition at line 84 of file LanaiDelaySlotFiller.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createLanaiELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 91 of file LanaiELFObjectWriter.cpp.
FunctionPass * llvm::createLanaiISelDag | ( | LanaiTargetMachine & | TM | ) |
Definition at line 360 of file LanaiISelDAGToDAG.cpp.
llvm::MCCodeEmitter * llvm::createLanaiMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 304 of file LanaiMCCodeEmitter.cpp.
Referenced by LLVMInitializeLanaiTargetMC().
FunctionPass * llvm::createLanaiMemAluCombinerPass | ( | ) |
Definition at line 420 of file LanaiMemAluCombiner.cpp.
FunctionPass * llvm::createLanaiSetflagAluCombinerPass | ( | ) |
Register llvm::createLaneMaskReg | ( | MachineRegisterInfo * | MRI, |
MachineRegisterInfo::VRegAttrs | LaneMaskRegAttrs | ||
) |
Definition at line 380 of file SILowerI1Copies.cpp.
References MRI.
Referenced by insertUndefLaneMask(), and llvm::PhiLoweringHelper::lowerPhis().
FunctionPass * llvm::createLazyValueInfoPass | ( | ) |
createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass.
Definition at line 65 of file LazyValueInfo.cpp.
LegalizerHelper::LegalizeResult llvm::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
.
Definition at line 573 of file LegalizerHelper.cpp.
References assert(), CC, llvm::LostDebugLocObserver::checkpoint(), llvm::MachineOperand::CreateES(), llvm::MachineInstr::eraseFromParent(), llvm::TargetSubtargetInfo::getCallLowering(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::Function::getReturnType(), llvm::MachineFunction::getSubtarget(), llvm::MachineIRBuilder::getTII(), Info, llvm::MachineInstr::isCopy(), llvm::MachineInstr::isDebugInstr(), isLibCallInTailPosition(), llvm::MachineInstr::isReturn(), llvm::LegalizerHelper::Legalized, MI, Name, and llvm::LegalizerHelper::UnableToLegalize.
Referenced by conversionLibcall(), createLibcall(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::LegalizerHelper::libcall(), and simpleLibcall().
LegalizerHelper::LegalizeResult llvm::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.
Definition at line 620 of file LegalizerHelper.cpp.
References CC, createLibcall(), llvm::MachineIRBuilder::getMF(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::LegalizeActions::Libcall, MI, Name, and llvm::LegalizerHelper::UnableToLegalize.
Definition at line 381 of file LICM.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
std::unique_ptr< ScheduleDAGMutation > llvm::createLoadClusterDAGMutation | ( | 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.
Definition at line 1820 of file MachineScheduler.cpp.
References EnableMemOpCluster, TII, and TRI.
Referenced by createGCNMaxMemoryClauseMachineScheduler(), createGCNMaxOccupancyMachineScheduler(), createIterativeGCNMaxOccupancyMachineScheduler(), createIterativeILPMachineScheduler(), and llvm::AMDGPUPassConfig::createMachineScheduler().
Pass * llvm::createLoadStoreVectorizerPass | ( | ) |
Create a legacy pass manager instance of the LoadStoreVectorizer pass.
Referenced by llvm::AMDGPUPassConfig::addCodeGenPrepare().
MCAsmBackend * llvm::createLoongArchAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 517 of file LoongArchAsmBackend.cpp.
References llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), and Options.
Referenced by LLVMInitializeLoongArchTargetMC().
FunctionPass * llvm::createLoongArchDeadRegisterDefinitionsPass | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createLoongArchELFObjectWriter | ( | uint8_t | OSABI, |
bool | Is64Bit, | ||
bool | Relax | ||
) |
Definition at line 100 of file LoongArchELFObjectWriter.cpp.
Referenced by llvm::LoongArchAsmBackend::createObjectTargetWriter().
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().
FunctionPass * llvm::createLoongArchExpandAtomicPseudoPass | ( | ) |
Referenced by INITIALIZE_PASS().
FunctionPass * llvm::createLoongArchExpandPseudoPass | ( | ) |
Definition at line 836 of file LoongArchExpandPseudoInsts.cpp.
FunctionPass * llvm::createLoongArchISelDag | ( | LoongArchTargetMachine & | TM | ) |
Definition at line 459 of file LoongArchISelDAGToDAG.cpp.
MCCodeEmitter * llvm::createLoongArchMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 450 of file LoongArchMCCodeEmitter.cpp.
Referenced by LLVMInitializeLoongArchTargetMC().
FunctionPass * llvm::createLoongArchMergeBaseOffsetOptPass | ( | ) |
Returns an instance of the Merge Base Offset Optimization pass.
Definition at line 707 of file LoongArchMergeBaseOffset.cpp.
FunctionPass * llvm::createLoongArchOptWInstrsPass | ( | ) |
FunctionPass * llvm::createLoongArchPreRAExpandPseudoPass | ( | ) |
Definition at line 833 of file LoongArchExpandPseudoInsts.cpp.
loop data Loop Data false FunctionPass * llvm::createLoopDataPrefetchPass | ( | ) |
Definition at line 151 of file LoopDataPrefetch.cpp.
Referenced by llvm::AMDGPUPassConfig::addStraightLineScalarOptimizationPasses().
Pass * llvm::createLoopExtractorPass | ( | ) |
createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it can.
Pass * llvm::createLoopSimplifyPass | ( | ) |
Definition at line 785 of file LoopSimplify.cpp.
Definition at line 7193 of file LoopStrengthReduce.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
Definition at line 377 of file LoopTermFold.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
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 1488 of file LoopUnrollPass.cpp.
References Runtime.
FunctionPass * llvm::createLowerAggrCopies | ( | ) |
Pass * llvm::createLowerAtomicPass | ( | ) |
ModulePass * llvm::createLowerEmuTLSPass | ( | ) |
LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.
Referenced by llvm::TargetPassConfig::addISelPasses().
ModulePass * llvm::createLowerGlobalDtorsLegacyPass | ( | ) |
Referenced by llvm::TargetPassConfig::addIRPasses().
FunctionPass * llvm::createLowerInvokePass | ( | ) |
Definition at line 85 of file LowerInvoke.cpp.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
Lower SwitchInst s to false FunctionPass * llvm::createLowerSwitchPass | ( | ) |
Definition at line 592 of file LowerSwitch.cpp.
Referenced by llvm::AMDGPUPassConfig::addCodeGenPrepare().
FunctionPass * llvm::createLowerWWMCopiesPass | ( | ) |
FunctionPass * llvm::createLVLGenPass | ( | ) |
Definition at line 36 of file LVLGen.cpp.
MCAsmBackend * llvm::createM68kAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 300 of file M68kAsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeM68kTargetMC().
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.
std::unique_ptr< MCObjectTargetWriter > llvm::createM68kELFObjectWriter | ( | uint8_t | OSABI | ) |
Construct an M68k ELF object writer.
Definition at line 169 of file M68kELFObjectWriter.cpp.
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 333 of file M68kExpandPseudo.cpp.
FunctionPass * llvm::createM68kGlobalBaseRegPass | ( | ) |
This pass initializes a global base register for PIC on M68k.
Definition at line 971 of file M68kInstrInfo.cpp.
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().
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.
MCCodeEmitter * llvm::createM68kMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 246 of file M68kMCCodeEmitter.cpp.
Referenced by LLVMInitializeM68kTargetMC().
MachineFunctionPass * llvm::createMachineCopyPropagationPass | ( | bool | UseCopyInstr = false | ) |
Definition at line 1601 of file MachineCopyPropagation.cpp.
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().
MachineFunctionPass * llvm::createMachineFunctionSplitterPass | ( | ) |
createMachineFunctionSplitterPass - This pass splits machine functions using profile information.
Referenced by llvm::TargetPassConfig::addMachinePasses().
ModulePass * llvm::createMachineOutlinerPass | ( | bool | RunOnAllFunctions = true | ) |
This pass performs outlining on machine instructions directly before printing assembly.
Definition at line 576 of file MachineOutliner.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
FunctionPass * llvm::createMachineRegionInfoPass | ( | ) |
Definition at line 146 of file MachineRegionInfo.cpp.
FunctionPass * llvm::createMachineVerifierPass | ( | const std::string & | Banner | ) |
createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.
Referenced by llvm::TargetPassConfig::addVerifyPass().
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 |
||
) |
Definition at line 529 of file MCMachOStreamer.cpp.
Referenced by createARMMachOStreamer(), and llvm::Target::createMCObjectStreamer().
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 215 of file MacroFusion.cpp.
References EnableMacroFusion.
Referenced by createAArch64MacroFusionDAGMutation(), createAMDGPUMacroFusionDAGMutation(), createARMMacroFusionDAGMutation(), createGenericSchedLive(), createGenericSchedPostRA(), createPowerPCMacroFusionDAGMutation(), and createX86MacroFusionDAGMutation().
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 6478 of file AsmParser.cpp.
References llvm::CallingConv::C.
Referenced by initializeRecordStreamer().
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 7686 of file MasmParser.cpp.
References llvm::CallingConv::C.
MCRelocationInfo * llvm::createMCRelocationInfo | ( | const Triple & | TT, |
MCContext & | Ctx | ||
) |
Definition at line 27 of file MCRelocationInfo.cpp.
Referenced by createARMMCRelocationInfo(), createLanaiElfRelocation(), createM68kMCRelocationInfo(), llvm::Target::createMCRelocationInfo(), and createX86MCRelocationInfo().
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().
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 |
||
) |
Emit a loop implementing the semantics of an llvm.memcpy whose size is a compile time constant.
Loop is inserted at InsertBefore
.
Definition at line 24 of file LowerMemIntrinsics.cpp.
References llvm::PHINode::addIncoming(), alignDown(), assert(), commonAlignment(), llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::MDBuilder::createAnonymousAliasScope(), llvm::MDBuilder::createAnonymousAliasScopeDomain(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateInBoundsGEP(), llvm::IRBuilderBase::CreatePHI(), DL, llvm::MDNode::get(), llvm::BasicBlock::getContext(), llvm::Function::getDataLayout(), llvm::BasicBlock::getFirstNonPHI(), llvm::Type::getInt8Ty(), llvm::TargetTransformInfo::getMemcpyLoopLoweringType(), llvm::TargetTransformInfo::getMemcpyLoopResidualLoweringType(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), llvm::Type::isVectorTy(), llvm::ConstantInt::isZero(), Name, llvm::Instruction::setSuccessor(), and llvm::BasicBlock::splitBasicBlock().
Referenced by expandAtomicMemCpyAsLoop(), expandMemCpyAsLoop(), and expandMemMoveAsLoop().
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 insterted at InsertBefore
.
Referenced by expandAtomicMemCpyAsLoop(), expandMemCpyAsLoop(), and expandMemMoveAsLoop().
LegalizerHelper::LegalizeResult llvm::createMemLibcall | ( | MachineIRBuilder & | MIRBuilder, |
MachineRegisterInfo & | MRI, | ||
MachineInstr & | MI, | ||
LostDebugLocObserver & | LocObserver | ||
) |
Create a libcall to memcpy et al.
Definition at line 648 of file LegalizerHelper.cpp.
References assert(), llvm::LostDebugLocObserver::checkpoint(), llvm::MachineOperand::CreateES(), dbgs(), llvm::MachineInstr::eraseFromParent(), llvm::IntegerType::get(), llvm::PointerType::get(), llvm::LLT::getAddressSpace(), llvm::TargetSubtargetInfo::getCallLowering(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), llvm::MCInstrInfo::getName(), llvm::LLT::getSizeInBits(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), llvm::MachineIRBuilder::getTII(), llvm::Type::getVoidTy(), Info, llvm::MachineInstr::isCopy(), llvm::MachineInstr::isDebugInstr(), isLibCallInTailPosition(), llvm::LLT::isPointer(), llvm::MachineInstr::isReturn(), llvm::LegalizerHelper::Legalized, LLVM_DEBUG, llvm_unreachable, MI, MRI, Name, and llvm::LegalizerHelper::UnableToLegalize.
Referenced by llvm::LegalizerHelper::libcall().
Definition at line 913 of file MergeICmps.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
FunctionPass * llvm::createMicroMipsSizeReducePass | ( | ) |
Returns an instance of the MicroMips size reduction pass.
Definition at line 795 of file MicroMipsSizeReduction.cpp.
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 1076 of file LoopUtils.cpp.
References llvm::IRBuilderBase::CreateCmp(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateSelect(), getMinMaxReductionIntrinsicOp(), getMinMaxReductionPredicate(), llvm::Type::isIntOrIntVectorTy(), Left, Right, and Select.
Referenced by llvm::VPReductionRecipe::execute(), llvm::VPReductionEVLRecipe::execute(), getOrderedReduction(), and getShuffleReduction().
const MipsFrameLowering * llvm::createMips16FrameLowering | ( | const MipsSubtarget & | ST | ) |
Create MipsFrameLowering objects.
Definition at line 170 of file Mips16FrameLowering.cpp.
Referenced by llvm::MipsFrameLowering::create().
ModulePass * llvm::createMips16HardFloatPass | ( | ) |
Definition at line 531 of file Mips16HardFloat.cpp.
const MipsInstrInfo * llvm::createMips16InstrInfo | ( | const MipsSubtarget & | STI | ) |
Create MipsInstrInfo objects.
Definition at line 463 of file Mips16InstrInfo.cpp.
Referenced by llvm::MipsInstrInfo::create().
FunctionPass * llvm::createMips16ISelDag | ( | MipsTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 217 of file Mips16ISelDAGToDAG.cpp.
const MipsTargetLowering * llvm::createMips16TargetLowering | ( | const MipsTargetMachine & | TM, |
const MipsSubtarget & | STI | ||
) |
Create MipsTargetLowering objects.
Definition at line 153 of file Mips16ISelLowering.cpp.
Referenced by llvm::MipsTargetLowering::create().
MCAsmBackend * llvm::createMipsAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 613 of file MipsAsmBackend.cpp.
References llvm::MipsABIInfo::computeTargetABI(), llvm::MCSubtargetInfo::getCPU(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSWindows(), MRI, and Options.
Referenced by LLVMInitializeMipsTargetMC().
FunctionPass * llvm::createMipsBranchExpansion | ( | ) |
FunctionPass * llvm::createMipsConstantIslandPass | ( | ) |
Returns a pass that converts branches to long branches.
Definition at line 1663 of file MipsConstantIslandPass.cpp.
FunctionPass * llvm::createMipsDelaySlotFillerPass | ( | ) |
createMipsDelaySlotFillerPass - Returns a pass that fills in delay slots in Mips MachineFunctions
Definition at line 973 of file MipsDelaySlotFiller.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createMipsELFObjectWriter | ( | const Triple & | TT, |
bool | IsN32 | ||
) |
Construct a Mips ELF object writer.
Definition at line 591 of file MipsELFObjectWriter.cpp.
References llvm::MCELFObjectTargetWriter::getOSABI().
Referenced by llvm::MipsAsmBackend::createObjectTargetWriter().
MCELFStreamer * llvm::createMipsELFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | MAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 115 of file MipsELFStreamer.cpp.
References Emitter.
Referenced by createMCStreamer().
FunctionPass * llvm::createMipsExpandPseudoPass | ( | ) |
createMipsExpandPseudoPass - returns an instance of the pseudo instruction expansion pass.
Definition at line 946 of file MipsExpandPseudo.cpp.
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().
MCCodeEmitter * llvm::createMipsMCCodeEmitterEB | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 45 of file MipsMCCodeEmitter.cpp.
Referenced by LLVMInitializeMipsTargetMC().
MCCodeEmitter * llvm::createMipsMCCodeEmitterEL | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 50 of file MipsMCCodeEmitter.cpp.
Referenced by LLVMInitializeMipsTargetMC().
llvm::FunctionPass * llvm::createMipsModuleISelDagPass | ( | ) |
Definition at line 55 of file MipsModuleISelDAGToDAG.cpp.
FunctionPass * llvm::createMipsMulMulBugPass | ( | ) |
Definition at line 135 of file MipsMulMulBugPass.cpp.
MCELFStreamer * llvm::createMipsNaClELFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | TAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 262 of file MipsNaClELFStreamer.cpp.
References Emitter, and MIPS_NACL_BUNDLE_ALIGN.
Referenced by createMCStreamer().
FunctionPass * llvm::createMipsOptimizePICCallPass | ( | ) |
Return an OptimizeCall object.
Definition at line 318 of file MipsOptimizePICCall.cpp.
ModulePass * llvm::createMipsOs16Pass | ( | ) |
Definition at line 160 of file MipsOs16.cpp.
FunctionPass * llvm::createMipsPostLegalizeCombiner | ( | bool | IsOptNone | ) |
Definition at line 161 of file MipsPostLegalizerCombiner.cpp.
FunctionPass * llvm::createMipsPreLegalizeCombiner | ( | ) |
Definition at line 144 of file MipsPreLegalizerCombiner.cpp.
const MipsFrameLowering * llvm::createMipsSEFrameLowering | ( | const MipsSubtarget & | ST | ) |
Definition at line 917 of file MipsSEFrameLowering.cpp.
Referenced by llvm::MipsFrameLowering::create().
const MipsInstrInfo * llvm::createMipsSEInstrInfo | ( | const MipsSubtarget & | STI | ) |
Definition at line 883 of file MipsSEInstrInfo.cpp.
Referenced by llvm::MipsInstrInfo::create().
FunctionPass * llvm::createMipsSEISelDag | ( | MipsTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 1403 of file MipsSEISelDAGToDAG.cpp.
const MipsTargetLowering * llvm::createMipsSETargetLowering | ( | const MipsTargetMachine & | TM, |
const MipsSubtarget & | STI | ||
) |
Definition at line 299 of file MipsSEISelLowering.cpp.
Referenced by llvm::MipsTargetLowering::create().
std::unique_ptr< MCObjectTargetWriter > llvm::createMipsWinCOFFObjectWriter | ( | ) |
Construct a Mips Win COFF object writer.
Definition at line 59 of file MipsWinCOFFObjectWriter.cpp.
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().
FunctionPass * llvm::createMIRAddFSDiscriminatorsPass | ( | sampleprof::FSDiscriminatorPass | P | ) |
Add Flow Sensitive Discriminators.
PassNum specifies the sequence number of this pass (starting from 1).
Referenced by llvm::TargetPassConfig::addBlockPlacement(), and llvm::TargetPassConfig::addMachinePasses().
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.
Contents | - The MemoryBuffer containing the machine level IR. |
Context | - Context which will be used for the parsed LLVM IR module. |
Definition at line 1244 of file MIRParser.cpp.
References llvm::LLVMContext::diagnose(), llvm::SourceMgr::DK_Error, DS_Error, and llvm::LLVMContext::shouldDiscardValueNames().
Referenced by 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.
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 1230 of file MIRParser.cpp.
References createMIRParser(), llvm::SourceMgr::DK_Error, and llvm::MemoryBuffer::getFileOrSTDIN().
FunctionPass * llvm::createMIRProfileLoaderPass | ( | std::string | File, |
std::string | RemappingFile, | ||
sampleprof::FSDiscriminatorPass | P, | ||
IntrusiveRefCntPtr< vfs::FileSystem > | FS | ||
) |
Read Flow Sensitive Profile.
Definition at line 84 of file MIRSampleProfile.cpp.
References P.
Referenced by llvm::TargetPassConfig::addBlockPlacement(), and llvm::TargetPassConfig::addMachinePasses().
FunctionPass * llvm::createMLxExpansionPass | ( | ) |
Definition at line 390 of file MLxExpansionPass.cpp.
module summary Module Summary true ModulePass * llvm::createModuleSummaryIndexWrapperPass | ( | ) |
Definition at line 1156 of file ModuleSummaryAnalysis.cpp.
ModuleToFunctionPassAdaptor llvm::createModuleToFunctionPassAdaptor | ( | FunctionPassT && | Pass, |
bool | EagerlyInvalidate = false |
||
) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 852 of file PassManager.h.
Referenced by addAnnotationRemarksPass(), llvm::PassBuilder::buildInlinerPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleInlinerPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), llvm::PassBuilder::buildThinLTOPreLinkDefaultPipeline(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::AddMachinePass::operator()(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::AddIRPass::operator()(), llvm::BPFTargetMachine::registerPassBuilderCallbacks(), llvm::NVPTXTargetMachine::registerPassBuilderCallbacks(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::AddIRPass::~AddIRPass(), and llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::AddMachinePass::~AddMachinePass().
ModuleToPostOrderCGSCCPassAdaptor llvm::createModuleToPostOrderCGSCCPassAdaptor | ( | CGSCCPassT && | Pass | ) |
A function to deduce a function pass type and wrap it in the templated adaptor.
Definition at line 357 of file CGSCCPassManager.h.
Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildModuleInlinerPipeline(), and llvm::PassBuilder::buildO0DefaultPipeline().
FunctionPass * llvm::createMSP430BranchSelectionPass | ( | ) |
Returns an instance of the Branch Selection Pass.
Definition at line 255 of file MSP430BranchSelector.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createMSP430ELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 55 of file MSP430ELFObjectWriter.cpp.
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 132 of file MSP430ISelDAGToDAG.cpp.
MCAsmBackend * llvm::createMSP430MCAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 159 of file MSP430AsmBackend.cpp.
References llvm::ELF::ELFOSABI_STANDALONE.
Referenced by LLVMInitializeMSP430TargetMC().
MCCodeEmitter * llvm::createMSP430MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Creates a machine code emitter for MSP430.
Definition at line 202 of file MSP430MCCodeEmitter.cpp.
Referenced by LLVMInitializeMSP430TargetMC().
MCTargetStreamer * llvm::createMSP430ObjectTargetStreamer | ( | MCStreamer & | S, |
const MCSubtargetInfo & | STI | ||
) |
Definition at line 71 of file MSP430ELFStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeMSP430TargetMC().
Pass * llvm::createMVEGatherScatterLoweringPass | ( | ) |
Pass * llvm::createMVELaneInterleavingPass | ( | ) |
Pass * llvm::createMVETailPredicationPass | ( | ) |
Definition at line 454 of file MVETailPredication.cpp.
FunctionPass * llvm::createMVETPAndVPTOptimisationsPass | ( | ) |
createMVETPAndVPTOptimisationsPass
Definition at line 1093 of file MVETPAndVPTOptimisationsPass.cpp.
FunctionPass * llvm::createMVEVPTBlockPass | ( | ) |
createMVEVPTBlock - Returns an instance of the MVE VPT block insertion pass.
Definition at line 333 of file MVEVPTBlockPass.cpp.
nary Nary false FunctionPass * llvm::createNaryReassociatePass | ( | ) |
Definition at line 165 of file NaryReassociate.cpp.
Referenced by llvm::AMDGPUPassConfig::addStraightLineScalarOptimizationPasses().
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 56 of file MCNullStreamer.cpp.
Referenced by llvm::CodeGenTargetMachineImpl::createMCStreamer(), and llvm::Target::createNullStreamer().
nvptx aa NVPTX Address space based Alias Analysis true ImmutablePass * llvm::createNVPTXAAWrapperPass | ( | ) |
Definition at line 39 of file NVPTXAliasAnalysis.cpp.
ModulePass * llvm::createNVPTXAssignValidGlobalNamesPass | ( | ) |
Definition at line 68 of file NVPTXAssignValidGlobalNames.cpp.
FunctionPass * llvm::createNVPTXAtomicLowerPass | ( | ) |
ModulePass * llvm::createNVPTXCtorDtorLoweringLegacyPass | ( | ) |
ImmutablePass * llvm::createNVPTXExternalAAWrapperPass | ( | ) |
Definition at line 43 of file NVPTXAliasAnalysis.cpp.
FunctionPass * llvm::createNVPTXImageOptimizerPass | ( | ) |
Definition at line 174 of file NVPTXImageOptimizer.cpp.
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 40 of file NVPTXISelDAGToDAG.cpp.
FunctionPass * llvm::createNVPTXLowerAllocaPass | ( | ) |
Definition at line 138 of file NVPTXLowerAlloca.cpp.
FunctionPass * llvm::createNVPTXLowerArgsPass | ( | ) |
Definition at line 740 of file NVPTXLowerArgs.cpp.
FunctionPass * llvm::createNVPTXLowerUnreachablePass | ( | bool | TrapUnreachable, |
bool | NoTrapAfterNoreturn | ||
) |
Definition at line 160 of file NVPTXLowerUnreachable.cpp.
MachineFunctionPass * llvm::createNVPTXPeephole | ( | ) |
Definition at line 167 of file NVPTXPeephole.cpp.
MachineFunctionPass * llvm::createNVPTXPrologEpilogPass | ( | ) |
Definition at line 46 of file NVPTXPrologEpilogPass.cpp.
MachineFunctionPass * llvm::createNVPTXProxyRegErasurePass | ( | ) |
Definition at line 114 of file NVPTXProxyRegErasure.cpp.
MachineFunctionPass * llvm::createNVPTXReplaceImageHandlesPass | ( | ) |
Definition at line 1858 of file NVPTXReplaceImageHandles.cpp.
FunctionPass * llvm::createNVVMIntrRangePass | ( | ) |
Definition at line 43 of file NVVMIntrRange.cpp.
FunctionPass * llvm::createNVVMReflectPass | ( | unsigned int | SmVersion | ) |
Definition at line 68 of file NVVMReflect.cpp.
References SmVersion.
Pass * llvm::createObjCARCContractPass | ( | ) |
Definition at line 740 of file ObjCARCContract.cpp.
Referenced by llvm::TargetPassConfig::addISelPrepare().
Value * llvm::createOrderedReduction | ( | IRBuilderBase & | B, |
const RecurrenceDescriptor & | Desc, | ||
Value * | Src, | ||
Value * | Start | ||
) |
Create an ordered reduction intrinsic using the given recurrence descriptor Desc
.
Definition at line 1341 of file LoopUtils.cpp.
Referenced by llvm::VPReductionRecipe::execute(), and llvm::VPReductionEVLRecipe::execute().
Value * llvm::createOrderedReduction | ( | VectorBuilder & | VB, |
const RecurrenceDescriptor & | Desc, | ||
Value * | Src, | ||
Value * | Start | ||
) |
Overloaded function to generate vector-predication intrinsics for ordered reduction.
Definition at line 1353 of file LoopUtils.cpp.
References assert(), llvm::VectorBuilder::createSimpleReduction(), and getReductionIntrinsicID().
partially inline Partially calls to library false FunctionPass * llvm::createPartiallyInlineLibCallsPass | ( | ) |
Definition at line 222 of file PartiallyInlineLibCalls.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
FunctionPass * llvm::createPBQPRegisterAllocator | ( | char * | customPassID = nullptr | ) |
Create a PBQP register allocator instance.
Definition at line 951 of file RegAllocPBQP.cpp.
Referenced by createDefaultPBQPRegisterAllocator().
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 1427 of file InstrProf.cpp.
References createPGONameMetadata(), F, and getPGOFuncNameMetadataName().
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 482 of file InstrProf.cpp.
References createPGOFuncNameVar(), and F.
Referenced by createPGOFuncNameVar().
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 455 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().
|
static |
Definition at line 1411 of file InstrProf.cpp.
References llvm::CallingConv::C, llvm::MDNode::get(), llvm::MDString::get(), llvm::Value::getContext(), llvm::GlobalObject::getMetadata(), llvm::Value::getName(), N, and llvm::GlobalObject::setMetadata().
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 1431 of file InstrProf.cpp.
References createPGONameMetadata(), and getPGONameMetadataName().
Referenced by annotateAllFunctions(), createPGOFuncNameMetadata(), and createPGONameMetadata().
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 981 of file BasicBlockUtils.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::BasicBlock::begin(), llvm::PHINode::Create(), llvm::BasicBlock::getFirstNonPHI(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), Idx, llvm::Instruction::insertBefore(), llvm::BasicBlock::isLandingPad(), llvm::BasicBlock::phis(), and llvm::ArrayRef< T >::size().
Referenced by ehAwareSplitEdge(), and SplitKnownCriticalEdge().
FunctionPass * llvm::createPostDomOnlyPrinterWrapperPassPass | ( | ) |
Definition at line 234 of file DomPrinter.cpp.
FunctionPass * llvm::createPostDomOnlyViewerWrapperPassPass | ( | ) |
Definition at line 242 of file DomPrinter.cpp.
FunctionPass * llvm::createPostDomPrinterWrapperPassPass | ( | ) |
Definition at line 230 of file DomPrinter.cpp.
FunctionPass * llvm::createPostDomTree | ( | ) |
Definition at line 92 of file PostDominators.cpp.
FunctionPass * llvm::createPostDomViewerWrapperPassPass | ( | ) |
Definition at line 238 of file DomPrinter.cpp.
post inline ee Instrument function entry exit with calls to e g false FunctionPass * llvm::createPostInlineEntryExitInstrumenterPass | ( | ) |
Definition at line 190 of file EntryExitInstrumenter.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
std::unique_ptr< ScheduleDAGMutation > llvm::createPowerPCMacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createPowerPCMacroFusionDAGMutation()); to PPCPassConfig::createMachineScheduler() to have an effect.
Definition at line 289 of file PPCMacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by createPPCMachineScheduler(), and createPPCPostMachineScheduler().
MCAsmBackend * llvm::createPPCAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 282 of file PPCAsmBackend.cpp.
References llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializePowerPCTargetMC().
FunctionPass * llvm::createPPCBoolRetToIntPass | ( | ) |
FunctionPass * llvm::createPPCBranchCoalescingPass | ( | ) |
createPPCBranchCoalescingPass - returns an instance of the Branch Coalescing Pass
Definition at line 192 of file PPCBranchCoalescing.cpp.
FunctionPass * llvm::createPPCBranchSelectionPass | ( | ) |
PowerPC CTR loops false FunctionPass * llvm::createPPCCTRLoopsPass | ( | ) |
Definition at line 91 of file PPCCTRLoops.cpp.
ppc ctr loops PowerPC CTR Loops false FunctionPass * llvm::createPPCCTRLoopsVerify | ( | ) |
Definition at line 75 of file PPCCTRLoopsVerify.cpp.
FunctionPass * llvm::createPPCEarlyReturnPass | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createPPCELFObjectWriter | ( | bool | Is64Bit, |
uint8_t | OSABI | ||
) |
Construct an PPC ELF object writer.
Definition at line 494 of file PPCELFObjectWriter.cpp.
MCELFStreamer * llvm::createPPCELFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | MAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 220 of file PPCELFStreamer.cpp.
References Emitter.
Referenced by createPPCELFStreamer(), and LLVMInitializePowerPCTargetMC().
FunctionPass * llvm::createPPCExpandAtomicPseudoPass | ( | ) |
FunctionPass * llvm::createPPCExpandISELPass | ( | ) |
ModulePass * llvm::createPPCGenScalarMASSEntriesPass | ( | ) |
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().
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 7934 of file PPCISelDAGToDAG.cpp.
FunctionPass * llvm::createPPCLoopInstrFormPrepPass | ( | PPCTargetMachine & | TM | ) |
Definition at line 350 of file PPCLoopInstrFormPrep.cpp.
ModulePass * llvm::createPPCLowerMASSVEntriesPass | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createPPCMachObjectWriter | ( | bool | Is64Bit, |
uint32_t | CPUType, | ||
uint32_t | CPUSubtype | ||
) |
Construct a PPC Mach-O object writer.
MCCodeEmitter * llvm::createPPCMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 36 of file PPCMCCodeEmitter.cpp.
Referenced by LLVMInitializePowerPCTargetMC().
FunctionPass * llvm::createPPCMIPeepholePass | ( | ) |
Definition at line 2054 of file PPCMIPeephole.cpp.
FunctionPass * llvm::createPPCPreEmitPeepholePass | ( | ) |
FunctionPass * llvm::createPPCReduceCRLogicalsPass | ( | ) |
Definition at line 739 of file PPCReduceCRLogicals.cpp.
FunctionPass * llvm::createPPCTLSDynamicCallPass | ( | ) |
Definition at line 343 of file PPCTLSDynamicCall.cpp.
FunctionPass * llvm::createPPCTOCRegDepsPass | ( | ) |
FunctionPass * llvm::createPPCVSXCopyPass | ( | ) |
FunctionPass * llvm::createPPCVSXFMAMutatePass | ( | ) |
Definition at line 375 of file PPCVSXFMAMutate.cpp.
FunctionPass * llvm::createPPCVSXSwapRemovalPass | ( | ) |
Definition at line 1073 of file PPCVSXSwapRemoval.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createPPCXCOFFObjectWriter | ( | bool | Is64Bit | ) |
Construct a PPC XCOFF object writer.
Definition at line 36 of file PPCXCOFFObjectWriter.cpp.
MCXCOFFStreamer * llvm::createPPCXCOFFStreamer | ( | MCContext & | Context, |
std::unique_ptr< MCAsmBackend > | MAB, | ||
std::unique_ptr< MCObjectWriter > | OW, | ||
std::unique_ptr< MCCodeEmitter > | Emitter | ||
) |
Definition at line 68 of file PPCXCOFFStreamer.cpp.
References Emitter.
Referenced by createPPCXCOFFStreamer(), and LLVMInitializePowerPCTargetMC().
pre isel intrinsic Pre ISel Intrinsic false ModulePass * llvm::createPreISelIntrinsicLoweringPass | ( | ) |
This pass lowers the @llvm.load.relative and @llvm.objc.
Definition at line 503 of file PreISelIntrinsicLowering.cpp.
Referenced by llvm::TargetPassConfig::addISelPasses().
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 133 of file IRPrintingPasses.cpp.
References OS.
Referenced by llvm::TargetPassConfig::addISelPrepare(), and llvm::legacy::FunctionPassManagerImpl::createPrinterPass().
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 86 of file MIRPrintingPass.cpp.
References OS.
Referenced by llvm::CodeGenTargetMachineImpl::addPassesToEmitFile().
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
.
Referenced by llvm::DirectXTargetMachine::addPassesToEmitFile(), and llvm::legacy::PassManagerImpl::createPrinterPass().
GlobalVariable * llvm::createPrivateGlobalForString | ( | Module & | M, |
StringRef | Str, | ||
bool | AllowMerging, | ||
Twine | NamePrefix = "" |
||
) |
Definition at line 80 of file Instrumentation.cpp.
References llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::PrivateLinkage, llvm::GlobalObject::setAlignment(), and llvm::GlobalValue::setUnnamedAddr().
Definition at line 1506 of file InstrProf.cpp.
References llvm::StringRef::empty(), llvm::GlobalValue::ExternalLinkage, llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::HiddenVisibility, llvm::GlobalObject::setComdat(), llvm::GlobalValue::setLinkage(), llvm::GlobalValue::setVisibility(), and llvm::GlobalValue::WeakAnyLinkage.
Referenced by llvm::PGOInstrumentationGenCreateVar::run().
void llvm::createProfileSamplingVar | ( | Module & | M | ) |
Definition at line 2153 of file InstrProfiling.cpp.
References appendToCompilerUsed(), llvm::GlobalValue::DefaultVisibility, llvm::GlobalValue::ExternalLinkage, llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Constant::getIntegerValue(), and llvm::GlobalValue::WeakAnyLinkage.
Referenced by llvm::PGOInstrumentationGenCreateVar::run().
Prologue Epilogue Insertion &Frame false MachineFunctionPass * llvm::createPrologEpilogInserterPass | ( | ) |
Definition at line 157 of file PrologEpilogInserter.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
Promote Memory to false FunctionPass * llvm::createPromoteMemoryToRegisterPass | ( | ) |
Definition at line 114 of file Mem2Reg.cpp.
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.
AsmPrinter * llvm::createR600AsmPrinterPass | ( | TargetMachine & | TM, |
std::unique_ptr< MCStreamer > && | Streamer | ||
) |
Definition at line 31 of file R600AsmPrinter.cpp.
Referenced by LLVMInitializeAMDGPUAsmPrinter().
llvm::FunctionPass * llvm::createR600ClauseMergePass | ( | ) |
Definition at line 208 of file R600ClauseMergePass.cpp.
FunctionPass * llvm::createR600ControlFlowFinalizer | ( | ) |
Definition at line 685 of file R600ControlFlowFinalizer.cpp.
R600 Emit Clause false FunctionPass * llvm::createR600EmitClauseMarkers | ( | ) |
Definition at line 330 of file R600EmitClauseMarkers.cpp.
FunctionPass * llvm::createR600ExpandSpecialInstrsPass | ( | ) |
Definition at line 59 of file R600ExpandSpecialInstrs.cpp.
FunctionPass * llvm::createR600ISelDag | ( | TargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
This pass converts a legalized DAG into a R600-specific.
Definition at line 199 of file R600ISelDAGToDAG.cpp.
AMDGPU CFG false FunctionPass * llvm::createR600MachineCFGStructurizerPass | ( | ) |
Definition at line 1638 of file R600MachineCFGStructurizer.cpp.
MCCodeEmitter * llvm::createR600MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 80 of file R600MCCodeEmitter.cpp.
References llvm::MCContext::getRegisterInfo().
Referenced by LLVMInitializeAMDGPUTargetMC().
MCInstrInfo * llvm::createR600MCInstrInfo | ( | ) |
Definition at line 24 of file R600MCTargetDesc.cpp.
References X.
Referenced by LLVMInitializeAMDGPUTargetMC().
ModulePass * llvm::createR600OpenCLImageTypeLoweringPass | ( | ) |
Definition at line 372 of file R600OpenCLImageTypeLoweringPass.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses().
llvm::FunctionPass * llvm::createR600Packetizer | ( | ) |
Definition at line 401 of file R600Packetizer.cpp.
llvm::FunctionPass * llvm::createR600VectorRegMerger | ( | ) |
Definition at line 373 of file R600OptimizeVectorRegisters.cpp.
FunctionPass * llvm::createReassociatePass | ( | ) |
Value * llvm::createReduction | ( | IRBuilderBase & | B, |
const RecurrenceDescriptor & | Desc, | ||
Value * | Src, | ||
PHINode * | OrigPhi = nullptr |
||
) |
Create a generic reduction using a recurrence descriptor Desc
Fast-math-flags are propagated using the RecurrenceDescriptor.
Definition at line 1323 of file LoopUtils.cpp.
References B, createAnyOfReduction(), createFindLastIVReduction(), createSimpleReduction(), llvm::RecurrenceDescriptor::isAnyOfRecurrenceKind(), and llvm::RecurrenceDescriptor::isFindLastIVRecurrenceKind().
Referenced by llvm::VPReductionRecipe::execute().
FunctionPass * llvm::createRegAllocScoringPass | ( | ) |
When learning an eviction policy, extract score(reward) information, otherwise this does nothing.
Definition at line 128 of file MLRegAllocEvictAdvisor.cpp.
Referenced by llvm::TargetPassConfig::addRegAssignAndRewriteOptimized().
FunctionPass * llvm::createRegionInfoPass | ( | ) |
Definition at line 177 of file RegionInfo.cpp.
FunctionPass * llvm::createRegionOnlyPrinterPass | ( | ) |
Definition at line 206 of file RegionPrinter.cpp.
FunctionPass * llvm::createRegionOnlyViewerPass | ( | ) |
Definition at line 214 of file RegionPrinter.cpp.
Referenced by viewRegionOnly().
dot regions Print regions of function to dot true view regions View regions of true FunctionPass * llvm::createRegionPrinterPass | ( | ) |
Definition at line 204 of file RegionPrinter.cpp.
FunctionPass * llvm::createRegionViewerPass | ( | ) |
Definition at line 210 of file RegionPrinter.cpp.
Referenced by viewRegion().
FunctionPass * llvm::createRegToMemWrapperPass | ( | ) |
Definition at line 148 of file Reg2Mem.cpp.
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.
Referenced by llvm::TargetPassConfig::addMachinePasses().
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().
RegAllocEvictionAdvisorAnalysis * llvm::createReleaseModeAdvisor | ( | ) |
Definition at line 1172 of file MLRegAllocEvictAdvisor.cpp.
References InteractiveChannelBaseName.
Referenced by callDefaultCtor< RegAllocEvictionAdvisorAnalysis >().
RegAllocPriorityAdvisorAnalysis * llvm::createReleaseModePriorityAdvisor | ( | ) |
Definition at line 280 of file MLRegAllocPriorityAdvisor.cpp.
References InteractiveChannelBaseName.
Referenced by callDefaultCtor< RegAllocPriorityAdvisorAnalysis >().
Replace intrinsics with calls to vector false FunctionPass * llvm::createReplaceWithVeclibLegacyPass | ( | ) |
Definition at line 283 of file ReplaceWithVeclib.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
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 1012 of file VectorUtils.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::VPInterleaveRecipe::execute().
MachineFunctionPass * llvm::createResetMachineFunctionPass | ( | bool | EmitFallbackDiag, |
bool | AbortOnFailedISel | ||
) |
This pass resets a MachineFunction when it has the FailedISel property as if it was just created.
If EmitFallbackDiag is true, the pass will emit a DiagnosticInfoISelFallback for every MachineFunction it resets. If AbortOnFailedISel is true, abort compilation instead of resetting.
Referenced by llvm::TargetPassConfig::addCoreISelPasses().
MCAsmBackend * llvm::createRISCVAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 718 of file RISCVAsmBackend.cpp.
References llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), and Options.
Referenced by LLVMInitializeRISCVTargetMC().
FunctionPass * llvm::createRISCVCodeGenPreparePass | ( | ) |
Definition at line 224 of file RISCVCodeGenPrepare.cpp.
FunctionPass * llvm::createRISCVDeadRegisterDefinitionsPass | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createRISCVELFObjectWriter | ( | uint8_t | OSABI, |
bool | Is64Bit | ||
) |
Definition at line 151 of file RISCVELFObjectWriter.cpp.
Referenced by llvm::RISCVAsmBackend::createObjectTargetWriter().
MCELFStreamer * llvm::createRISCVELFStreamer | ( | MCContext & | C, |
std::unique_ptr< MCAsmBackend > | MAB, | ||
std::unique_ptr< MCObjectWriter > | MOW, | ||
std::unique_ptr< MCCodeEmitter > | MCE | ||
) |
Definition at line 190 of file RISCVELFStreamer.cpp.
References llvm::CallingConv::C.
Referenced by LLVMInitializeRISCVTargetMC().
FunctionPass * llvm::createRISCVExpandAtomicPseudoPass | ( | ) |
Referenced by INITIALIZE_PASS().
FunctionPass * llvm::createRISCVExpandPseudoPass | ( | ) |
Definition at line 641 of file RISCVExpandPseudoInsts.cpp.
FunctionPass * llvm::createRISCVGatherScatterLoweringPass | ( | ) |
FunctionPass * llvm::createRISCVIndirectBranchTrackingPass | ( | ) |
Definition at line 49 of file RISCVIndirectBranchTracking.cpp.
FunctionPass * llvm::createRISCVInsertReadWriteCSRPass | ( | ) |
Definition at line 195 of file RISCVInsertReadWriteCSR.cpp.
FunctionPass * llvm::createRISCVInsertVSETVLIPass | ( | ) |
Returns an instance of the Insert VSETVLI pass.
Definition at line 1910 of file RISCVInsertVSETVLI.cpp.
FunctionPass * llvm::createRISCVInsertWriteVXRMPass | ( | ) |
Definition at line 502 of file RISCVInsertWriteVXRM.cpp.
InstructionSelector * llvm::createRISCVInstructionSelector | ( | const RISCVTargetMachine & | TM, |
const RISCVSubtarget & | Subtarget, | ||
const RISCVRegisterBankInfo & | RBI | ||
) |
Definition at line 1347 of file RISCVInstructionSelector.cpp.
Referenced by llvm::RISCVSubtarget::getInstructionSelector().
FunctionPass * llvm::createRISCVISelDag | ( | RISCVTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 4135 of file RISCVISelDAGToDAG.cpp.
FunctionPass * llvm::createRISCVLandingPadSetupPass | ( | ) |
Definition at line 86 of file RISCVLandingPadSetup.cpp.
FunctionPass * llvm::createRISCVMakeCompressibleOptPass | ( | ) |
Returns an instance of the Make Compressible Optimization pass.
Definition at line 468 of file RISCVMakeCompressible.cpp.
MCCodeEmitter * llvm::createRISCVMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 105 of file RISCVMCCodeEmitter.cpp.
Referenced by LLVMInitializeRISCVTargetMC().
FunctionPass * llvm::createRISCVMergeBaseOffsetOptPass | ( | ) |
Returns an instance of the Merge Base Offset Optimization pass.
Definition at line 563 of file RISCVMergeBaseOffset.cpp.
FunctionPass * llvm::createRISCVMoveMergePass | ( | ) |
createRISCVMoveMergePass - returns an instance of the move merge pass.
Definition at line 236 of file RISCVMoveMerger.cpp.
FunctionPass * llvm::createRISCVO0PreLegalizerCombiner | ( | ) |
Definition at line 154 of file RISCVO0PreLegalizerCombiner.cpp.
FunctionPass * llvm::createRISCVOptWInstrsPass | ( | ) |
FunctionPass * llvm::createRISCVPostLegalizerCombiner | ( | ) |
Definition at line 168 of file RISCVPostLegalizerCombiner.cpp.
FunctionPass * llvm::createRISCVPostRAExpandPseudoPass | ( | ) |
Referenced by INITIALIZE_PASS().
FunctionPass * llvm::createRISCVPreLegalizerCombiner | ( | ) |
Definition at line 171 of file RISCVPreLegalizerCombiner.cpp.
FunctionPass * llvm::createRISCVPreRAExpandPseudoPass | ( | ) |
Definition at line 642 of file RISCVExpandPseudoInsts.cpp.
FunctionPass * llvm::createRISCVPushPopOptimizationPass | ( | ) |
createRISCVPushPopOptimizationPass - returns an instance of the Push/Pop optimization pass.
Definition at line 151 of file RISCVPushPopOptimizer.cpp.
FunctionPass * llvm::createRISCVRedundantCopyEliminationPass | ( | ) |
Definition at line 181 of file RISCVRedundantCopyElimination.cpp.
std::unique_ptr< ScheduleDAGMutation > llvm::createRISCVVectorMaskDAGMutation | ( | const TargetRegisterInfo * | TRI | ) |
Definition at line 133 of file RISCVVectorMaskDAGMutation.cpp.
References TRI.
FunctionPass * llvm::createRISCVVectorPeepholePass | ( | ) |
Definition at line 705 of file RISCVVectorPeephole.cpp.
FunctionPass * llvm::createRISCVVLOptimizerPass | ( | ) |
Definition at line 68 of file RISCVVLOptimizer.cpp.
FunctionPass * llvm::createRISCVZacasABIFixPass | ( | ) |
Definition at line 92 of file RISCVZacasABIFix.cpp.
|
static |
Definition at line 1325 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldCOFF::create().
Referenced by llvm::RuntimeDyld::loadObject().
|
static |
Definition at line 1337 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldELF::create().
Referenced by llvm::RuntimeDyld::loadObject().
|
static |
Definition at line 1348 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldMachO::create().
Referenced by llvm::RuntimeDyld::loadObject().
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 243 of file SafepointIRVerifier.cpp.
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 974 of file SafeStack.cpp.
Referenced by llvm::TargetPassConfig::addISelPrepare().
Creates sanitizer constructor function.
Definition at line 236 of file ModuleUtils.cpp.
References llvm::Function::addFnAttr(), appendToUsed(), llvm::ReturnInst::Create(), llvm::BasicBlock::Create(), llvm::Function::createWithDefaultAttr(), llvm::Type::getVoidTy(), llvm::GlobalValue::InternalLinkage, and setKCFIType().
Referenced by createSanitizerCtorAndInitFunctions().
std::pair< Function *, FunctionCallee > llvm::createSanitizerCtorAndInitFunctions | ( | 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.
Definition at line 250 of file ModuleUtils.cpp.
References assert(), llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateBr(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpNE(), createSanitizerCtor(), declareSanitizerInitFunction(), llvm::StringRef::empty(), llvm::ConstantPointerNull::get(), llvm::FunctionCallee::getCallee(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getTerminator(), llvm::IRBuilderBase::getVoidTy(), llvm::IRBuilderBase::SetInsertPoint(), llvm::Value::setName(), and llvm::ArrayRef< T >::size().
Referenced by getOrCreateSanitizerCtorAndInitFunctions(), and llvm::TypeSanitizerPass::run().
Scalarize unsupported masked memory false FunctionPass * llvm::createScalarizeMaskedMemIntrinLegacyPass | ( | ) |
Definition at line 89 of file ScalarizeMaskedMemIntrin.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
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().
scev ScalarEvolution based Alias true FunctionPass * llvm::createSCEVAAWrapperPass | ( | ) |
Creates an instance of SCEVAAWrapperPass
.
Definition at line 165 of file ScalarEvolutionAliasAnalysis.cpp.
ImmutablePass * llvm::createScopedNoAliasAAWrapperPass | ( | ) |
Referenced by llvm::TargetPassConfig::addIRPasses().
Optimize false FunctionPass * llvm::createSelectOptimizePass | ( | ) |
This pass converts conditional moves to conditional jumps when profitable.
Definition at line 350 of file SelectOptimize.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses().
separate const offset from Split GEPs to a variadic base and a constant offset for better false FunctionPass * llvm::createSeparateConstOffsetFromGEPPass | ( | bool | LowerGEP = false | ) |
Definition at line 507 of file SeparateConstOffsetFromGEP.cpp.
Referenced by llvm::AMDGPUPassConfig::addStraightLineScalarOptimizationPasses().
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 1040 of file VectorUtils.cpp.
Referenced by concatenateTwoVectors(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), and llvm::RISCVTargetLowering::lowerInterleavedStore().
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.
FunctionPass * llvm::createSIAnnotateControlFlowLegacyPass | ( | ) |
Create the annotation pass.
Definition at line 451 of file SIAnnotateControlFlow.cpp.
FunctionPass * llvm::createSIFixControlFlowLiveIntervalsPass | ( | ) |
FunctionPass * llvm::createSIFixSGPRCopiesLegacyPass | ( | ) |
Definition at line 196 of file SIFixSGPRCopies.cpp.
FunctionPass * llvm::createSIFoldOperandsLegacyPass | ( | ) |
Definition at line 321 of file SIFoldOperands.cpp.
FunctionPass * llvm::createSIFormMemoryClausesPass | ( | ) |
Definition at line 93 of file SIFormMemoryClauses.cpp.
FunctionPass * llvm::createSIInsertWaitcntsPass | ( | ) |
Definition at line 1133 of file SIInsertWaitcnts.cpp.
FunctionPass * llvm::createSILoadStoreOptimizerLegacyPass | ( | ) |
Definition at line 900 of file SILoadStoreOptimizer.cpp.
FunctionPass * llvm::createSILowerI1CopiesLegacyPass | ( | ) |
Definition at line 936 of file SILowerI1Copies.cpp.
FunctionPass * llvm::createSIMemoryLegalizerPass | ( | ) |
Definition at line 2841 of file SIMemoryLegalizer.cpp.
FunctionPass * llvm::createSIModeRegisterPass | ( | ) |
Definition at line 158 of file SIModeRegister.cpp.
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 1278 of file LoopUtils.cpp.
References llvm::IRBuilderBase::CreateFAddReduce(), llvm::IRBuilderBase::CreateFMulReduce(), llvm::IRBuilderBase::CreateUnaryIntrinsic(), llvm::IRBuilderBase::getFastMathFlags(), getRecurrenceIdentity(), getReductionIntrinsicID(), and llvm_unreachable.
Referenced by createReduction(), and llvm::VPReductionEVLRecipe::execute().
Value * llvm::createSimpleReduction | ( | VectorBuilder & | VB, |
Value * | Src, | ||
const RecurrenceDescriptor & | Desc | ||
) |
Overloaded function to generate vector-predication intrinsics for reduction.
Definition at line 1310 of file LoopUtils.cpp.
References assert(), llvm::VectorBuilder::createSimpleReduction(), getRecurrenceIdentity(), getReductionIntrinsicID(), and llvm::RecurrenceDescriptor::isAnyOfRecurrenceKind().
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.
FunctionPass * llvm::createSinkingPass | ( | ) |
FunctionPass * llvm::createSIOptimizeExecMaskingPreRAPass | ( | ) |
Definition at line 77 of file SIOptimizeExecMaskingPreRA.cpp.
FunctionPass * llvm::createSIOptimizeVGPRLiveRangeLegacyPass | ( | ) |
Definition at line 636 of file SIOptimizeVGPRLiveRange.cpp.
FunctionPass * llvm::createSIPeepholeSDWALegacyPass | ( | ) |
Definition at line 207 of file SIPeepholeSDWA.cpp.
FunctionPass * llvm::createSIPostRABundlerPass | ( | ) |
Definition at line 71 of file SIPostRABundler.cpp.
FunctionPass * llvm::createSIPreAllocateWWMRegsLegacyPass | ( | ) |
Definition at line 92 of file SIPreAllocateWWMRegs.cpp.
FunctionPass * llvm::createSIShrinkInstructionsLegacyPass | ( | ) |
FunctionPass * llvm::createSIWholeQuadModePass | ( | ) |
Definition at line 270 of file SIWholeQuadMode.cpp.
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.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
FunctionPass * llvm::createSMEABIPass | ( | ) |
Definition at line 50 of file SMEABIPass.cpp.
FunctionPass * llvm::createSMEPeepholeOptPass | ( | ) |
Definition at line 259 of file SMEPeepholeOpt.cpp.
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().
MCAsmBackend * llvm::createSparcAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 368 of file SparcAsmBackend.cpp.
References llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeSparcTargetMC().
FunctionPass * llvm::createSparcDelaySlotFillerPass | ( | ) |
createSparcDelaySlotFillerPass - Returns a pass that fills in delay slots in Sparc MachineFunctions
Definition at line 96 of file DelaySlotFiller.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createSparcELFObjectWriter | ( | bool | Is64Bit, |
bool | IsV8Plus, | ||
uint8_t | OSABI | ||
) |
Definition at line 150 of file SparcELFObjectWriter.cpp.
FunctionPass * llvm::createSparcISelDag | ( | SparcTargetMachine & | TM | ) |
createSparcISelDag - This pass converts a legalized DAG into a SPARC-specific DAG, ready for instruction scheduling.
Definition at line 402 of file SparcISelDAGToDAG.cpp.
MCCodeEmitter * llvm::createSparcMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 244 of file SparcMCCodeEmitter.cpp.
Referenced by LLVMInitializeSparcTargetMC().
FunctionPass * llvm::createSpeculativeExecutionIfHasBranchDivergencePass | ( | ) |
Definition at line 342 of file SpeculativeExecution.cpp.
FunctionPass * llvm::createSpeculativeExecutionPass | ( | ) |
Definition at line 338 of file SpeculativeExecution.cpp.
MCAsmBackend * llvm::createSPIRVAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 51 of file SPIRVAsmBackend.cpp.
References little.
Referenced by LLVMInitializeSPIRVTargetMC().
ModulePass * llvm::createSPIRVEmitIntrinsicsPass | ( | SPIRVTargetMachine * | TM | ) |
Definition at line 2537 of file SPIRVEmitIntrinsics.cpp.
MachineFunctionPass * llvm::createSPIRVEmitNonSemanticDIPass | ( | SPIRVTargetMachine * | TM | ) |
InstructionSelector * llvm::createSPIRVInstructionSelector | ( | const SPIRVTargetMachine & | TM, |
const SPIRVSubtarget & | Subtarget, | ||
const RegisterBankInfo & | RBI | ||
) |
Definition at line 3982 of file SPIRVInstructionSelector.cpp.
Referenced by llvm::SPIRVSubtarget::SPIRVSubtarget().
MCCodeEmitter * llvm::createSPIRVMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 53 of file SPIRVMCCodeEmitter.cpp.
Referenced by LLVMInitializeSPIRVTargetMC().
split region exit SPIRV split region exit false FunctionPass * llvm::createSPIRVMergeRegionExitTargetsPass | ( | ) |
Definition at line 294 of file SPIRVMergeRegionExitTargets.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createSPIRVObjectTargetWriter | ( | ) |
Definition at line 23 of file SPIRVObjectTargetWriter.cpp.
std::unique_ptr< MCObjectWriter > llvm::createSPIRVObjectWriter | ( | std::unique_ptr< MCSPIRVObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS | ||
) |
Construct a new SPIR-V writer instance.
MOTW | - The target specific SPIR-V writer subclass. |
OS | - The stream to write to. |
Definition at line 47 of file SPIRVObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createObjectWriter().
FunctionPass * llvm::createSPIRVPostLegalizerPass | ( | ) |
FunctionPass * llvm::createSPIRVPreLegalizerCombiner | ( | ) |
Definition at line 241 of file SPIRVPreLegalizerCombiner.cpp.
FunctionPass * llvm::createSPIRVPreLegalizerPass | ( | ) |
ModulePass * llvm::createSPIRVPrepareFunctionsPass | ( | const SPIRVTargetMachine & | TM | ) |
Definition at line 530 of file SPIRVPrepareFunctions.cpp.
FunctionPass * llvm::createSPIRVRegularizerPass | ( | ) |
Definition at line 261 of file SPIRVRegularizer.cpp.
MCStreamer * llvm::createSPIRVStreamer | ( | MCContext & | Ctx, |
std::unique_ptr< MCAsmBackend > && | TAB, | ||
std::unique_ptr< MCObjectWriter > && | OW, | ||
std::unique_ptr< MCCodeEmitter > && | CE | ||
) |
Definition at line 34 of file MCSPIRVStreamer.cpp.
Referenced by llvm::Target::createMCObjectStreamer().
FunctionPass * llvm::createSPIRVStripConvergenceIntrinsicsPass | ( | ) |
spirv structurize false FunctionPass * llvm::createSPIRVStructurizerPass | ( | ) |
Definition at line 1245 of file SPIRVStructurizer.cpp.
Referenced by llvm::SPIRVStructurizerWrapper::run().
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 4730 of file X86ISelLowering.cpp.
References assert(), llvm::MVT::getVectorNumElements(), and Lo.
Referenced by lowerShuffleWithUNPCK256().
FunctionPass * llvm::createSROAPass | ( | bool | PreserveCFG = true | ) |
Definition at line 5838 of file SROA.cpp.
References ModifyCFG, and PreserveCFG.
MachineFunctionPass * llvm::createStackFrameLayoutAnalysisPass | ( | ) |
StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool.
Referenced by llvm::TargetPassConfig::addMachinePasses(), and INITIALIZE_PASS().
Insert stack true FunctionPass * llvm::createStackProtectorPass | ( | ) |
createStackProtectorPass - This pass adds stack protectors to functions.
Definition at line 164 of file StackProtector.cpp.
Referenced by llvm::TargetPassConfig::addISelPrepare().
static Split false MachineFunctionPass * llvm::createStaticDataSplitterPass | ( | ) |
createStaticDataSplitterPass - This pass partitions a static data section into a hot and cold section using profile information.
Definition at line 179 of file StaticDataSplitter.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
Value * llvm::createStepForVF | ( | IRBuilderBase & | B, |
Type * | Ty, | ||
ElementCount | VF, | ||
int64_t | Step | ||
) |
Return a value for Step multiplied by VF.
Definition at line 876 of file LoopVectorize.cpp.
References assert(), B, llvm::Type::isIntegerTy(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::multiplyCoefficientBy().
Referenced by llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::VPVectorPointerRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), and llvm::VPlan::prepareToExecute().
std::unique_ptr< ScheduleDAGMutation > llvm::createStoreClusterDAGMutation | ( | 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.
Definition at line 1829 of file MachineScheduler.cpp.
References EnableMemOpCluster, TII, and TRI.
Referenced by createGCNMaxMemoryClauseMachineScheduler(), createGCNMaxOccupancyMachineScheduler(), createIterativeGCNMaxOccupancyMachineScheduler(), createIterativeILPMachineScheduler(), llvm::AMDGPUPassConfig::createMachineScheduler(), createPPCMachineScheduler(), and createPPCPostMachineScheduler().
Straight line strength false FunctionPass * llvm::createStraightLineStrengthReducePass | ( | ) |
Definition at line 268 of file StraightLineStrengthReduce.cpp.
Referenced by llvm::AMDGPUPassConfig::addStraightLineScalarOptimizationPasses().
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 1032 of file VectorUtils.cpp.
Referenced by llvm::VPInterleaveRecipe::execute(), llvm::RISCVTTIImpl::getInterleavedMemoryOpCost(), and llvm::RISCVTTIImpl::getShuffleCost().
|
inline |
Definition at line 1314 of file Error.h.
References createStringError(), and inconvertibleErrorCode().
Create a StringError with an inconvertible error code.
Definition at line 1309 of file Error.h.
References createStringError(), and inconvertibleErrorCode().
|
inline |
Definition at line 1319 of file Error.h.
References createStringError().
|
inline |
Create formatted StringError object.
Definition at line 1291 of file Error.h.
References format().
Referenced by llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder::addReferencedODRDies(), llvm::SpecialCaseList::addSection(), advanceToMetaBlock(), 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::objcopy::elf::Object::compressOrDecompressSections(), llvm::xray::LogBuilderConsumer::consume(), llvm::xray::PipelineConsumer::consume(), llvm::objcopy::coff::COFFReader::create(), llvm::objcopy::xcoff::XCOFFReader::create(), llvm::objcopy::elf::ELFReader::create(), llvm::object::Slice::create(), llvm::dwarf::UnwindTable::create(), llvm::gsym::GsymReader::create(), llvm::objcopy::NameOrPattern::create(), createCtxProfFromYAML(), llvm::remarks::createRemarkParser(), llvm::remarks::createRemarkParserFromMeta(), llvm::remarks::createRemarkSerializer(), createReservedKDBitsError(), createReservedKDBytesError(), llvm::logicalview::LVDWARFReader::createScopes(), llvm::gsym::GsymCreator::createSegment(), createSpecFormatError(), llvm::logicalview::LVSplitContext::createSplitFolder(), createStringError(), llvm::codegen::createTargetMachineForTriple(), llvm::remarks::createYAMLParserFromMeta(), llvm::gsym::CallSiteInfoCollection::decode(), llvm::gsym::Header::decode(), llvm::gsym::CallSiteInfo::decode(), decode(), llvm::gsym::FunctionInfo::decode(), llvm::object::BBAddrMap::BBEntry::Metadata::decode(), llvm::object::BBAddrMap::Features::decode(), decodeBase64(), llvm::AMDGPUDisassembler::decodeCOMPUTE_PGM_RSRC3(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), llvm::logicalview::LVScope::doPrint(), llvm::logicalview::LVScopeRoot::doPrintMatches(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), dumpAttribute(), llvm::objcopy::coff::dumpSection(), dumpSectionToFile(), llvm::objcopy::wasm::dumpSectionToFile(), dumpStringOffsetsSection(), llvm::DWARFYAML::emitDebugAddr(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::DWARFYAML::emitDebugSections(), llvm::gsym::GsymCreator::encode(), llvm::gsym::FunctionInfo::encode(), llvm::gsym::InlineInfo::encode(), llvm::gsym::LineTable::encode(), llvm::BitstreamCursor::EnterSubBlock(), error(), llvm::objcopy::macho::executeObjcopyOnBinary(), llvm::objcopy::executeObjcopyOnBinary(), llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary(), llvm::cl::ExpansionContext::expandResponseFiles(), llvm::DWARFDebugNames::NameIndex::extract(), llvm::AppleAcceleratorTable::extract(), llvm::DWARFDebugNames::Header::extract(), llvm::DWARFDebugRangeList::extract(), llvm::DWARFDebugAddrTable::extract(), llvm::DWARFUnitHeader::extract(), llvm::DWARFDebugPubTable::extract(), llvm::DWARFDebugArangeSet::extract(), llvm::RangeListEntry::extract(), llvm::DWARFListTableHeader::extract(), llvm::DWARFListType< ListEntryType >::extract(), llvm::DWARFDebugInfoEntry::extractFast(), llvm::DWARFDebugAddrTable::extractV5(), llvm::SimpleBitstreamCursor::fillCurWord(), llvm::objcopy::elf::ELFWriter< ELFT >::finalize(), llvm::objcopy::elf::BinaryWriter::finalize(), llvm::objcopy::elf::ASCIIHexWriter::finalize(), llvm::gsym::GsymCreator::finalize(), llvm::object::MachOObjectFile::findDsymObjectMembers(), llvm::orc::LazyCallThroughManager::findReexport(), llvm::DWARFUnit::findRnglistFromIndex(), findSection(), llvm::dwarf_linker::finiteLoop(), llvm::BitstreamCursor::getAbbrev(), llvm::DWARFYAML::Data::getAbbrevTableInfoByID(), 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(), llvm::object::COFFObjectFile::getDebugPDBInfo(), getDefaultDebuginfodCacheDirectory(), llvm::DWARFYAML::getDWARFEmitterByName(), llvm::object::ELFFile< ELFT >::getDynSymtabSize(), llvm::object::getDynSymtabSizeFromGnuHash(), llvm::DWARFDebugNames::NameIndex::getEntry(), llvm::json::Path::Root::getError(), getError(), llvm::gsym::MergedFunctionsInfo::getFuncsDataExtractors(), llvm::gsym::GsymReader::getFunctionInfoDataAtIndex(), llvm::gsym::GsymReader::getFunctionInfoDataForAddress(), llvm::DWARFDataExtractor::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::object::COFFObjectFile::getSection(), llvm::logicalview::LVBinaryReader::getSection(), llvm::objcopy::elf::SectionTableRef::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(), handleArgs(), hasInvalidBitcodeHeader(), llvm::FunctionImporter::importFunctions(), llvm::dwarf_linker::classic::DwarfStreamer::init(), llvm::dwarf_linker::parallel::DwarfEmitterImpl::init(), initRelocations(), llvm::SpecialCaseList::Matcher::insert(), isBlock(), llvm::object::ExportDirectoryEntryRef::isForwarder(), isValidMachOCannonicalName(), llvm::coverage::CoverageMapping::load(), llvm::object::ResourceSectionRef::load(), llvm::logicalview::LVBinaryReader::loadGenericTargetInfo(), llvm::gsym::CallSiteInfoLoader::loadYAML(), localCache(), lookup(), llvm::gsym::FunctionInfo::lookup(), llvm::gsym::LineTable::lookup(), llvm::remarks::magicToFormat(), makeStringError(), malformedRecord(), llvm::objcopy::coff::Object::markSymbols(), llvm::AMDGPUDisassembler::onSymbolStart(), llvm::remarks::ParsedStringTable::operator[](), llvm::ELFAttributeParser::parse(), parse(), llvm::DWARFDebugLine::LineTable::parse(), llvm::DWARFDebugFrame::parse(), llvm::dwarf::CFIProgram::parse(), llvm::DWARFDebugLine::Prologue::parse(), llvm::objcopy::elf::IHexRecord::parse(), parseAddrSpace(), parseAlignment(), llvm::ELFAttributeParser::parseAttributeList(), parseBlock(), llvm::remarks::BitstreamParserHelper::parseBlockInfoBlock(), parseDWARF32StringOffsetsTableHeader(), parseDWARF64StringOffsetsTableHeader(), parseDWARFStringOffsetsTableHeader(), llvm::remarks::parseFormat(), llvm::remarks::parseHotnessThresholdOption(), parseMagic(), llvm::XCOFF::parseParmsType(), llvm::XCOFF::parseParmsTypeWithVecInfo(), llvm::remarks::YAMLRemarkParser::parseRemark(), llvm::MCSectionMachO::ParseSectionSpecifier(), parseSize(), llvm::ELFAttributeParser::parseStringAttribute(), parseStrTab(), parseStrTabSize(), llvm::ELFAttributeParser::parseSubsection(), parseV2DirFileTables(), parseV5DirFileTables(), parseV5EntryFormat(), llvm::XCOFF::parseVectorParmsType(), parseVersion(), llvm::ifs::populateDynamic(), processLoadCommands(), processRemarkVersion(), processStrTab(), llvm::xray::FileBasedRecordProducer::produce(), llvm::SimpleBitstreamCursor::Read(), llvm::xray::readBinaryFormatHeader(), llvm::ifs::readELFFile(), llvm::ifs::readIFSFromBuffer(), llvm::SimpleBitstreamCursor::ReadVBR(), llvm::SimpleBitstreamCursor::ReadVBR64(), removeNotes(), llvm::objcopy::elf::Section::removeSectionReferences(), llvm::objcopy::elf::SymbolTableSection::removeSectionReferences(), llvm::objcopy::elf::RelocationSection::removeSectionReferences(), llvm::objcopy::elf::GroupSection::removeSectionReferences(), llvm::objcopy::elf::DynamicRelocationSection::removeSectionReferences(), llvm::objcopy::macho::Object::removeSections(), llvm::objcopy::elf::RelocationSection::removeSymbols(), llvm::objcopy::elf::GroupSection::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(), unknownRecord(), unsupported(), updateSection(), llvm::objcopy::elf::Object::updateSection(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::validateAndUpdateOptions(), llvm::StrOffsetsContributionDescriptor::validateContributionSize(), validateMagicNumber(), llvm::GISelCSEInfo::verify(), llvm::xray::BlockVerifier::verify(), llvm::gsym::DwarfTransformer::verify(), verifyNoteSection(), llvm::xray::RecordInitializer::visit(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), llvm::objcopy::elf::BinarySectionWriter::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().
Definition at line 1300 of file Error.h.
References createStringError().
Definition at line 1304 of file Error.h.
References createStringError(), and llvm::Twine::str().
Error llvm::createStringError | ( | std::string && | Msg, |
std::error_code | EC | ||
) |
Machine Strip Debug false ModulePass * llvm::createStripDebugMachineModulePass | ( | bool | OnlyDebugified | ) |
Creates MIR Strip Debug pass.
Definition at line 106 of file MachineStripDebug.cpp.
Referenced by llvm::TargetPassConfig::addStripDebugPass().
When SkipUniformRegions
is true the structizer will not structurize regions that only contain uniform branches.
Definition at line 1336 of file StructurizeCFG.cpp.
ModulePass * llvm::createSVEIntrinsicOptsPass | ( | ) |
Definition at line 80 of file SVEIntrinsicOpts.cpp.
FunctionPass * llvm::createSystemZCopyPhysRegsPass | ( | SystemZTargetMachine & | TM | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createSystemZELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 204 of file SystemZELFObjectWriter.cpp.
FunctionPass * llvm::createSystemZElimComparePass | ( | SystemZTargetMachine & | TM | ) |
Definition at line 732 of file SystemZElimCompare.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createSystemZGOFFObjectWriter | ( | ) |
Definition at line 25 of file SystemZGOFFObjectWriter.cpp.
FunctionPass * llvm::createSystemZISelDag | ( | SystemZTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 403 of file SystemZISelDAGToDAG.cpp.
FunctionPass * llvm::createSystemZLDCleanupPass | ( | SystemZTargetMachine & | TM | ) |
FunctionPass * llvm::createSystemZLongBranchPass | ( | SystemZTargetMachine & | TM | ) |
Definition at line 488 of file SystemZLongBranch.cpp.
MCAsmBackend * llvm::createSystemZMCAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 226 of file SystemZMCAsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), and llvm::Triple::isOSzOS().
Referenced by LLVMInitializeSystemZTargetMC().
MCCodeEmitter * llvm::createSystemZMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 223 of file SystemZMCCodeEmitter.cpp.
Referenced by LLVMInitializeSystemZTargetMC().
FunctionPass * llvm::createSystemZPostRewritePass | ( | SystemZTargetMachine & | TM | ) |
FunctionPass * llvm::createSystemZShortenInstPass | ( | SystemZTargetMachine & | TM | ) |
FunctionPass * llvm::createSystemZTDCPass | ( | ) |
Tail Call false FunctionPass * llvm::createTailCallEliminationPass | ( | ) |
Definition at line 944 of file TailRecursionElimination.cpp.
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 1490 of file TargetTransformInfo.cpp.
Referenced by llvm::TargetPassConfig::addISelPasses(), and LLVMAddAnalysisPasses().
FunctionPass * llvm::createThumb2ITBlockPass | ( | ) |
createThumb2ITBlockPass - Returns an instance of the Thumb2 IT blocks insertion pass.
Definition at line 308 of file Thumb2ITBlockPass.cpp.
FunctionPass * llvm::createThumb2SizeReductionPass | ( | std::function< bool(const Function &)> | Ftor = nullptr | ) |
createThumb2SizeReductionPass - Returns an instance of the Thumb2 size reduction pass.
Definition at line 1163 of file Thumb2SizeReduction.cpp.
ImmutablePass * llvm::createTypeBasedAAWrapperPass | ( | ) |
Referenced by llvm::TargetPassConfig::addIRPasses().
FunctionPass * llvm::createTypePromotionLegacyPass | ( | ) |
Create IR Type Promotion pass.
Definition at line 1037 of file TypePromotion.cpp.
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 1053 of file VectorUtils.cpp.
References assert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::InstCombinerImpl::visitShuffleVectorInst().
FunctionPass * llvm::createUnifyLoopExitsPass | ( | ) |
Definition at line 60 of file UnifyLoopExits.cpp.
FunctionPass * llvm::createUnpackMachineBundles | ( | std::function< bool(const MachineFunction &)> | Ftor | ) |
Definition at line 80 of file MachineInstrBundle.cpp.
void llvm::createUnpackShuffleMask | ( | EVT | VT, |
SmallVectorImpl< int > & | Mask, | ||
bool | Lo, | ||
bool | Unary | ||
) |
Generate unpacklo/unpackhi shuffle mask.
Definition at line 4710 of file X86ISelLowering.cpp.
References assert(), llvm::EVT::getScalarSizeInBits(), llvm::EVT::getScalarType(), llvm::EVT::getSizeInBits(), llvm::EVT::getVectorNumElements(), llvm::EVT::isSimple(), and Lo.
Referenced by getUnpackh(), getUnpackl(), is128BitUnpackShuffleMask(), isUnpackWdShuffleMask(), lowerShuffleWithUNPCK(), and matchShuffleWithUNPCK().
FunctionPass * llvm::createUnreachableBlockEliminationPass | ( | ) |
createUnreachableBlockEliminationPass - The LLVM code generator does not work well with unreachable basic blocks (what live ranges make sense for a block that cannot be reached?).
As such, a code generator should either not instruction select unreachable blocks, or run this pass as its last LLVM modifying pass to clean up blocks that are not reachable from the entry block.
Referenced by llvm::TargetPassConfig::addIRPasses(), and llvm::TargetPassConfig::addPassesToHandleExceptions().
MCAsmBackend * llvm::createVEAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 216 of file VEAsmBackend.cpp.
References llvm::Triple::getOS(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeVETargetMC().
std::unique_ptr< MCObjectTargetWriter > llvm::createVEELFObjectWriter | ( | uint8_t | OSABI | ) |
Definition at line 159 of file VEELFObjectWriter.cpp.
FunctionPass * llvm::createVEISelDag | ( | VETargetMachine & | TM | ) |
createVEISelDag - This pass converts a legalized DAG into a VE-specific DAG, ready for instruction scheduling.
Definition at line 339 of file VEISelDAGToDAG.cpp.
MCCodeEmitter * llvm::createVEMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 150 of file VEMCCodeEmitter.cpp.
Referenced by LLVMInitializeVETargetMC().
FunctionPass * llvm::createVerifierPass | ( | bool | FatalErrors = true | ) |
Definition at line 7725 of file Verifier.cpp.
Referenced by llvm::TargetPassConfig::addIRPasses(), and llvm::TargetPassConfig::addISelPrepare().
FunctionPass * llvm::createVirtRegRewriter | ( | bool | ClearVirtRegs = true | ) |
Definition at line 734 of file VirtRegMap.cpp.
Register llvm::createVirtualRegister | ( | const MachineInstr * | SpvType, |
SPIRVGlobalRegistry * | GR, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Register llvm::createVirtualRegister | ( | const MachineInstr * | SpvType, |
SPIRVGlobalRegistry * | GR, | ||
MachineRegisterInfo * | MRI, | ||
const MachineFunction & | MF | ||
) |
Register llvm::createVirtualRegister | ( | const Type * | Ty, |
SPIRVGlobalRegistry * | GR, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 767 of file SPIRVUtils.cpp.
References createVirtualRegister(), and llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType().
Register llvm::createVirtualRegister | ( | SPIRVType * | SpvType, |
SPIRVGlobalRegistry * | GR, | ||
MachineIRBuilder & | MIRBuilder | ||
) |
Definition at line 759 of file SPIRVUtils.cpp.
References createVirtualRegister(), llvm::MachineIRBuilder::getMF(), and llvm::MachineIRBuilder::getMRI().
Register llvm::createVirtualRegister | ( | SPIRVType * | SpvType, |
SPIRVGlobalRegistry * | GR, | ||
MachineRegisterInfo * | MRI, | ||
const MachineFunction & | MF | ||
) |
Definition at line 748 of file SPIRVUtils.cpp.
References llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getRegType(), MRI, and Reg.
Referenced by buildLoadInst(), createVirtualRegister(), doInsertBitcast(), and llvm::SPIRVCallLowering::lowerCall().
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().
std::unique_ptr< ScheduleDAGMutation > llvm::createVOPDPairingMutation | ( | ) |
Definition at line 189 of file GCNVOPDUtils.cpp.
References shouldScheduleVOPDAdjacent().
MCAsmParserExtension * llvm::createWasmAsmParser | ( | ) |
Definition at line 318 of file WasmAsmParser.cpp.
std::unique_ptr< MCObjectWriter > llvm::createWasmDwoObjectWriter | ( | std::unique_ptr< MCWasmObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS, | ||
raw_pwrite_stream & | DwoOS | ||
) |
Definition at line 1974 of file WasmObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createDwoObjectWriter().
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.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
std::unique_ptr< MCObjectWriter > llvm::createWasmObjectWriter | ( | std::unique_ptr< MCWasmObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS | ||
) |
Construct a new Wasm writer instance.
MOTW | - The target specific Wasm writer subclass. |
OS | - The stream to write to. |
Definition at line 1968 of file WasmObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createObjectWriter().
MCStreamer * llvm::createWasmStreamer | ( | MCContext & | Ctx, |
std::unique_ptr< MCAsmBackend > && | TAB, | ||
std::unique_ptr< MCObjectWriter > && | OW, | ||
std::unique_ptr< MCCodeEmitter > && | CE | ||
) |
Definition at line 260 of file MCWasmStreamer.cpp.
Referenced by llvm::Target::createMCObjectStreamer().
ModulePass * llvm::createWebAssemblyAddMissingPrototypes | ( | ) |
FunctionPass * llvm::createWebAssemblyArgumentMove | ( | ) |
MCAsmBackend * llvm::createWebAssemblyAsmBackend | ( | const Triple & | TT | ) |
Definition at line 118 of file WebAssemblyAsmBackend.cpp.
Referenced by createAsmBackend().
FunctionPass * llvm::createWebAssemblyCFGSort | ( | ) |
FunctionPass * llvm::createWebAssemblyCFGStackify | ( | ) |
FunctionPass * llvm::createWebAssemblyCleanCodeAfterTrap | ( | ) |
FunctionPass * llvm::createWebAssemblyDebugFixup | ( | ) |
FunctionPass * llvm::createWebAssemblyExplicitLocals | ( | ) |
FunctionPass * llvm::createWebAssemblyFixBrTableDefaults | ( | ) |
ModulePass * llvm::createWebAssemblyFixFunctionBitcasts | ( | ) |
FunctionPass * llvm::createWebAssemblyFixIrreducibleControlFlow | ( | ) |
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 433 of file WebAssemblyISelDAGToDAG.cpp.
FunctionPass * llvm::createWebAssemblyLateEHPrepare | ( | ) |
FunctionPass * llvm::createWebAssemblyLowerBrUnless | ( | ) |
ModulePass * llvm::createWebAssemblyLowerEmscriptenEHSjLj | ( | ) |
FunctionPass * llvm::createWebAssemblyLowerRefTypesIntPtrConv | ( | ) |
MCCodeEmitter * llvm::createWebAssemblyMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 56 of file WebAssemblyMCCodeEmitter.cpp.
Referenced by createCodeEmitter().
ModulePass * llvm::createWebAssemblyMCLowerPrePass | ( | ) |
FunctionPass * llvm::createWebAssemblyMemIntrinsicResults | ( | ) |
FunctionPass * llvm::createWebAssemblyNullifyDebugValueLists | ( | ) |
FunctionPass * llvm::createWebAssemblyOptimizeLiveIntervals | ( | ) |
FunctionPass * llvm::createWebAssemblyOptimizeReturned | ( | ) |
FunctionPass * llvm::createWebAssemblyPeephole | ( | ) |
FunctionPass * llvm::createWebAssemblyRefTypeMem2Local | ( | ) |
FunctionPass * llvm::createWebAssemblyRegColoring | ( | ) |
FunctionPass * llvm::createWebAssemblyRegNumbering | ( | ) |
FunctionPass * llvm::createWebAssemblyRegStackify | ( | ) |
FunctionPass * llvm::createWebAssemblyReplacePhysRegs | ( | ) |
FunctionPass * llvm::createWebAssemblySetP2AlignOperands | ( | ) |
std::unique_ptr< MCObjectTargetWriter > llvm::createWebAssemblyWasmObjectWriter | ( | bool | Is64Bit, |
bool | IsEmscripten | ||
) |
Definition at line 163 of file WebAssemblyWasmObjectWriter.cpp.
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 2260 of file SimplifyIndVar.cpp.
References Rewriter, UsePostIncrementRanges, and WidenIV.
Referenced by CanWidenIV().
std::unique_ptr< MCObjectWriter > llvm::createWinCOFFDwoObjectWriter | ( | std::unique_ptr< MCWinCOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS, | ||
raw_pwrite_stream & | DwoOS | ||
) |
Definition at line 1238 of file WinCOFFObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createDwoObjectWriter().
std::unique_ptr< MCObjectWriter > llvm::createWinCOFFObjectWriter | ( | std::unique_ptr< MCWinCOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS | ||
) |
Construct a new Win COFF writer instance.
MOTW | - The target specific WinCOFF writer subclass. |
OS | - The stream to write to. |
Definition at line 1233 of file WinCOFFObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createObjectWriter().
FunctionPass * llvm::createWinEHPass | ( | bool | DemoteCatchSwitchPHIOnly = false | ) |
createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.
Referenced by llvm::TargetPassConfig::addPassesToHandleExceptions().
MCAsmBackend * llvm::createX86_32AsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 1497 of file X86AsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatMachO(), llvm::Triple::isOSIAMCU(), llvm::Triple::isOSWindows(), and MRI.
Referenced by LLVMInitializeX86TargetMC().
MCAsmBackend * llvm::createX86_64AsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 1516 of file X86AsmBackend.cpp.
References assert(), llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), llvm::MCSubtargetInfo::getTargetTriple(), llvm::Triple::isOSBinFormatCOFF(), llvm::Triple::isOSBinFormatMachO(), llvm::Triple::isOSWindows(), llvm::Triple::isUEFI(), llvm::Triple::isX32(), and MRI.
Referenced by LLVMInitializeX86TargetMC().
FunctionPass * llvm::createX86ArgumentStackSlotPass | ( | ) |
MCTargetStreamer * llvm::createX86AsmTargetStreamer | ( | MCStreamer & | S, |
formatted_raw_ostream & | OS, | ||
MCInstPrinter * | InstPrinter | ||
) |
Implements X86-only directives for assembly emission.
Definition at line 446 of file X86WinCOFFTargetStreamer.cpp.
References OS.
Referenced by LLVMInitializeX86TargetMC().
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.
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.
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 629 of file X86CallFrameOptimization.cpp.
X86 cmov false FunctionPass * llvm::createX86CmovConverterPass | ( | ) |
This pass converts X86 cmov instructions into branch when profitable.
Definition at line 896 of file X86CmovConversion.cpp.
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 304 of file X86CompressEVEX.cpp.
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.
FunctionPass * llvm::createX86DomainReassignmentPass | ( | ) |
Return a Machine IR pass that reassigns instruction chains from one domain to another, when profitable.
FunctionPass * llvm::createX86DynAllocaExpander | ( | ) |
Return a pass that expands DynAlloca pseudo-instructions.
std::unique_ptr< MCObjectTargetWriter > llvm::createX86ELFObjectWriter | ( | bool | IsELF64, |
uint8_t | OSABI, | ||
uint16_t | EMachine | ||
) |
Construct an X86 ELF object writer.
Definition at line 375 of file X86ELFObjectWriter.cpp.
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 1566 of file X86AsmBackend.cpp.
Referenced by LLVMInitializeX86TargetMC().
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 1099 of file X86ExpandPseudo.cpp.
FunctionPass * llvm::createX86FastPreTileConfigPass | ( | ) |
Return a pass that preconfig the tile registers before fast reg allocation.
Definition at line 722 of file X86FastPreTileConfig.cpp.
FunctionPass * llvm::createX86FastTileConfigPass | ( | ) |
Return a pass that config the tile registers after fast reg allocation.
Definition at line 201 of file X86FastTileConfig.cpp.
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 152 of file X86FixupBWInsts.cpp.
FunctionPass * llvm::createX86FixupInstTuning | ( | ) |
Return a pass that replaces equivalent slower instructions with faster ones.
Definition at line 67 of file X86FixupInstTuning.cpp.
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 214 of file X86FixupLEAs.cpp.
FunctionPass * llvm::createX86FixupSetCC | ( | ) |
Return a pass that transforms setcc + movzx pairs into xor + setcc.
Definition at line 65 of file X86FixupSetCC.cpp.
FunctionPass * llvm::createX86FixupVectorConstants | ( | ) |
Return a pass that reduces the size of vector constant pool loads.
Definition at line 63 of file X86FixupVectorConstants.cpp.
X86 EFLAGS copy false FunctionPass * llvm::createX86FlagsCopyLoweringPass | ( | ) |
Return a pass that lowers EFLAGS copy pseudo instructions.
Definition at line 122 of file X86FlagsCopyLowering.cpp.
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 310 of file X86FloatingPoint.cpp.
FunctionPass * llvm::createX86GlobalBaseRegPass | ( | ) |
This pass initializes a global base register for PIC on x86-32.
Definition at line 10388 of file X86InstrInfo.cpp.
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.
FunctionPass * llvm::createX86IndirectThunksPass | ( | ) |
This pass creates the thunks for the retpoline feature.
Definition at line 238 of file X86IndirectThunks.cpp.
FunctionPass * llvm::createX86InsertPrefetchPass | ( | ) |
This pass applies profiling information to insert cache prefetches.
Definition at line 257 of file X86InsertPrefetch.cpp.
References PrefetchHintsFile.
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.
InstructionSelector * llvm::createX86InstructionSelector | ( | const X86TargetMachine & | TM, |
const X86Subtarget & | Subtarget, | ||
const X86RegisterBankInfo & | RBI | ||
) |
Definition at line 1872 of file X86InstructionSelector.cpp.
Referenced by llvm::X86Subtarget::X86Subtarget().
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 6756 of file X86ISelDAGToDAG.cpp.
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 116 of file X86VZeroUpper.cpp.
X86 LVI load false FunctionPass * llvm::createX86LoadValueInjectionLoadHardeningPass | ( | ) |
Definition at line 807 of file X86LoadValueInjectionLoadHardening.cpp.
FunctionPass * llvm::createX86LoadValueInjectionRetHardeningPass | ( | ) |
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 674 of file X86LowerAMXIntrinsics.cpp.
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 1475 of file X86LowerAMXType.cpp.
FunctionPass * llvm::createX86LowerTileCopyPass | ( | ) |
Return a pass that lower the tile copy instruction.
Definition at line 68 of file X86LowerTileCopy.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createX86MachObjectWriter | ( | bool | Is64Bit, |
uint32_t | CPUType, | ||
uint32_t | CPUSubtype | ||
) |
Construct an X86 Mach-O object writer.
Definition at line 595 of file X86MachObjectWriter.cpp.
std::unique_ptr< ScheduleDAGMutation > llvm::createX86MacroFusionDAGMutation | ( | ) |
Note that you have to add: DAG.addMutation(createX86MacroFusionDAGMutation()); to X86PassConfig::createMachineScheduler() to have an effect.
Definition at line 70 of file X86MacroFusion.cpp.
References createMacroFusionDAGMutation(), and shouldScheduleAdjacent().
Referenced by llvm::X86Subtarget::getPostRAMutations().
MCCodeEmitter * llvm::createX86MCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 2030 of file X86MCCodeEmitter.cpp.
Referenced by LLVMInitializeX86TargetMC().
|
inline |
Implements X86-only null emission.
Definition at line 39 of file X86TargetStreamer.h.
Referenced by LLVMInitializeX86TargetMC().
MCTargetStreamer * llvm::createX86ObjectTargetStreamer | ( | MCStreamer & | S, |
const MCSubtargetInfo & | STI | ||
) |
Implements X86-only directives for object files.
Definition at line 455 of file X86WinCOFFTargetStreamer.cpp.
References llvm::MCSubtargetInfo::getTargetTriple(), and llvm::Triple::isOSBinFormatCOFF().
Referenced by LLVMInitializeX86TargetMC().
FunctionPass * llvm::createX86OptimizeLEAs | ( | ) |
Return a pass that removes redundant LEA instructions and redundant address recalculations.
Definition at line 314 of file X86OptimizeLEAs.cpp.
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 97 of file X86PadShortFunction.cpp.
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.
FunctionPass * llvm::createX86PreTileConfigPass | ( | ) |
Return a pass that insert pseudo tile config instruction.
Definition at line 448 of file X86PreTileConfig.cpp.
FunctionPass * llvm::createX86ReturnThunksPass | ( | ) |
This pass replaces ret instructions with jmp's to __x86_return thunk.
Definition at line 99 of file X86ReturnThunks.cpp.
FunctionPass * llvm::createX86SpeculativeExecutionSideEffectSuppression | ( | ) |
Definition at line 176 of file X86SpeculativeExecutionSideEffectSuppression.cpp.
X86 speculative load false FunctionPass * llvm::createX86SpeculativeLoadHardeningPass | ( | ) |
Definition at line 2267 of file X86SpeculativeLoadHardening.cpp.
FunctionPass * llvm::createX86TileConfigPass | ( | ) |
Return a pass that config the tile registers.
Definition at line 266 of file X86TileConfig.cpp.
std::unique_ptr< MCObjectTargetWriter > llvm::createX86WinCOFFObjectWriter | ( | bool | Is64Bit | ) |
Construct an X86 Win COFF object writer.
Definition at line 121 of file X86WinCOFFObjectWriter.cpp.
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().
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.
FunctionPass * llvm::createX86WinFixupBufferSecurityCheckPass | ( | ) |
Return a pass that transform inline buffer security check into seperate bb.
MCAsmParserExtension * llvm::createXCOFFAsmParser | ( | ) |
Definition at line 48 of file XCOFFAsmParser.cpp.
std::unique_ptr< MCObjectWriter > llvm::createXCOFFObjectWriter | ( | std::unique_ptr< MCXCOFFObjectTargetWriter > | MOTW, |
raw_pwrite_stream & | OS | ||
) |
Definition at line 1731 of file XCOFFObjectWriter.cpp.
References OS.
Referenced by llvm::MCAsmBackend::createObjectWriter().
FunctionPass * llvm::createXCoreFrameToArgsOffsetEliminationPass | ( | ) |
createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimination pass
Definition at line 41 of file XCoreFrameToArgsOffsetElim.cpp.
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.
ModulePass * llvm::createXCoreLowerThreadLocalPass | ( | ) |
FunctionPass * llvm::createXtensaISelDag | ( | XtensaTargetMachine & | TM, |
CodeGenOptLevel | OptLevel | ||
) |
Definition at line 132 of file XtensaISelDAGToDAG.cpp.
MCAsmBackend * llvm::createXtensaMCAsmBackend | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
const MCRegisterInfo & | MRI, | ||
const MCTargetOptions & | Options | ||
) |
Definition at line 211 of file XtensaAsmBackend.cpp.
References llvm::Triple::getOS(), llvm::MCELFObjectTargetWriter::getOSABI(), and llvm::MCSubtargetInfo::getTargetTriple().
Referenced by LLVMInitializeXtensaTargetMC().
MCCodeEmitter * llvm::createXtensaMCCodeEmitter | ( | const MCInstrInfo & | MCII, |
MCContext & | Ctx | ||
) |
Definition at line 128 of file XtensaMCCodeEmitter.cpp.
Referenced by LLVMInitializeXtensaTargetMC().
std::unique_ptr< MCObjectTargetWriter > llvm::createXtensaObjectWriter | ( | uint8_t | OSABI, |
bool | IsLittleEndian | ||
) |
Definition at line 59 of file XtensaELFObjectWriter.cpp.
Referenced by llvm::XtensaMCAsmBackend::createObjectTargetWriter().
llvm::SMTSolverRef llvm::CreateZ3Solver | ( | ) |
Convenience method to create and Z3Solver object.
Definition at line 981 of file Z3Solver.cpp.
References report_fatal_error().
|
constexpr |
Compile time Log2.
Valid only for positive powers of two.
Definition at line 331 of file MathExtras.h.
References CTLog2(), and isPowerOf2_64().
Referenced by CTLog2().
|
constexpr |
Definition at line 337 of file MathExtras.h.
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 163 of file Debug.cpp.
References llvm::sys::AddSignalHandler(), debug_user_sig_handler(), DebugBufferSize, DebugFlag, EnableDebugBuffering, and errs().
Referenced by llvm::InstructionWorklist::add(), llvm::orc::CtorDtorRunner::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::TargetPassConfig::addISelPrepare(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::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(), addVariantDeclaration(), llvm::ARMBasicBlockUtils::adjustBBOffsetsAfter(), adjustByValArgAlignment(), llvm::SystemZTTIImpl::adjustInliningThreshold(), llvm::MipsTargetLowering::AdjustInstrPostInstrSelection(), llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), 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::AnalyzeCallResult(), llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence(), llvm::InterleavedAccessInfo::analyzeInterleaving(), analyzeLoopUnrollCost(), analyzeParsePointLiveness(), annotateAllFunctions(), llvm::ModifiedPostOrder< ContextT >::appendBlock(), appendFoldCandidate(), appendJITDebugDescriptor(), llvm::LegalizeRuleSet::apply(), llvm::A57ChainingConstraint::apply(), llvm::CombinerHelper::applyCombineIndexedLoadStore(), llvm::RegisterBankInfo::applyDefaultMapping(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), llvm::jitlink::ppc64::applyFixup(), llvm::RegBankSelect::applyMapping(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ApplyNextUpdate(), llvm::AMDGPUCallLowering::areCalleeOutgoingArgsTailCallable(), llvm::MemoryDepChecker::areDepsSafe(), areRuntimeChecksProfitable(), assertBranchOrSelectConditionHoisted(), llvm::LiveRegMatrix::assign(), llvm::ARCFrameLowering::assignCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::RegBankSelect::assignInstr(), llvm::RegBankSelect::assignmentMatch(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::lto::backend(), BadConditionCode(), llvm::jitlink::BasicLayout::BasicLayout(), llvm::LegalizerHelper::bitcast(), bitTrackingDCE(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), BreakUpSubtract(), BUCompareLatency(), buildAnyextOrCopy(), llvm::slpvectorizer::BoUpSLP::buildExternalUses(), buildExtractionBlockSet(), llvm::VPlanSlp::buildGraph(), llvm::VPlanHCFGBuilder::buildHierarchicalCFG(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::jitlink::buildTables_ELF_aarch32(), llvm::jitlink::buildTables_MachO_arm64(), llvm::ConvergingVLIWScheduler::VLIWSchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpCycle(), llvm::SchedBoundary::bumpNode(), llvm::ConvergingVLIWScheduler::VLIWSchedBoundary::bumpNode(), BURRSort(), calcPredicateUsingBooleans(), calcPredicateUsingInteger(), llvm::BlockFrequencyInfo::calculate(), llvm::BranchProbabilityInfo::calculate(), llvm::BlockFrequencyInfoImpl< BT >::calculate(), llvm::MachineBlockFrequencyInfo::calculate(), calculateCXXStateNumbers(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::CalculateFromScratch(), llvm::WindowScheduler::calculateMaxCycle(), calculatePrevailingSummary(), llvm::LiveRangeEdit::calculateRegClassAndHint(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), 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::sandboxir::LegalityAnalysis::canVectorize(), 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(), 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(), 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(), computeImportForFunction(), ModuleImportsManager::computeImportForModule(), llvm::DivergencePropagator< ContextT >::computeJoin(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), llvm::GISelKnownBits::computeKnownBitsImpl(), 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(), llvm::DeadLaneDetector::computeSubRegisterLaneBitInfo(), computeTripCount(), llvm::SMSchedule::computeUnpipelineableNodes(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::ComputeUnreachableDominators(), computeUnrollAndJamCount(), computeUnrollCount(), llvm::VPBasicBlock::connectToPredecessors(), constrainSelectedInstRegOperands(), constructPointer(), ConvertDebugDeclareToDebugValue(), convertFloatingToInteger(), convertOrWithNoCommonBitsToAdd(), convertToDeclaration(), copyDebugInfoToPredecessor(), copyDebugInfoToSuccessor(), llvm::BranchProbabilityInfo::copyEdgeProbabilities(), llvm::SelectionDAG::copyExtraInfo(), copyFunctionByValArgs(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::VPRecipeBase::cost(), llvm::VPRegionBlock::cost(), llvm::SchedBoundary::countResource(), ModuleImportsManager::create(), createAtomicLibcall(), llvm::AbstractDependenceGraphBuilder< GraphType >::createDefUseEdges(), llvm::Combiner::WorkListMaintainerImpl< Lvl >::createdInstr(), llvm::InstructionSelect::MIIteratorMaintainer::createdInstr(), llvm::orc::createDWARFContext(), llvm::jitlink::aarch64::createEmptyPointerSigningFunction(), 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_i386(), llvm::jitlink::createLinkGraphFromELFObject_loongarch(), llvm::jitlink::createLinkGraphFromELFObject_ppc64(), llvm::jitlink::createLinkGraphFromELFObject_riscv(), llvm::jitlink::createLinkGraphFromELFObject_x86_64(), llvm::jitlink::createLinkGraphFromMachOObject(), createMemLibcall(), llvm::OpenMPIRBuilder::createParallel(), llvm::AbstractDependenceGraphBuilder< GraphType >::createPiBlocks(), 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::LLJIT::deinitialize(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteEdge(), deleteIfDead(), deleteLoopIfDead(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteReachable(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::DeleteUnreachable(), delinearize(), llvm::DependenceInfo::depends(), llvm::Constant::destroyConstant(), detectShiftUntilBitTestIdiom(), detectShiftUntilZeroIdiom(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), determineSVEStackObjectOffsets(), llvm::AArch64::ExtensionSet::disable(), llvm::orc::UnwindInfoManager::disable(), llvm::mca::LSUnit::dispatch(), llvm::mca::Scheduler::dispatch(), llvm::BlockFrequencyInfoImplBase::distributeMass(), llvm::orc::MaterializationUnit::doDiscard(), DoFlattenLoopPair(), doPromotion(), llvm::coro::doRematerializations(), llvm::SelectionDAGBuilder::dropDanglingDebugInfo(), llvm::ModuloSchedule::dump(), llvm::logicalview::LVOperation::dump(), LiveDebugValues::MLocTracker::dump(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::APFloat::dump(), llvm::APInt::dump(), llvm::CoalescingBitVector< IndexT >::dump(), llvm::DynamicAPInt::dump(), llvm::GenericCycleInfo< ContextT >::dump(), llvm::detail::SlowDynamicAPInt::dump(), llvm::Twine::dump(), llvm::AliasSet::dump(), llvm::AliasSetTracker::dump(), llvm::bfi_detail::BlockMass::dump(), llvm::BlockFrequencyInfoImplBase::dump(), llvm::CallGraph::dump(), llvm::CallGraphNode::dump(), llvm::CallGraphWrapperPass::dump(), llvm::ConstraintSystem::dump(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::dump(), llvm::DominanceFrontierWrapperPass::dump(), llvm::DomTreeUpdater::dump(), llvm::DXILMetadataAnalysisWrapperPass::dump(), llvm::DXILResourceBindingWrapperPass::dump(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::dump(), llvm::IVUsers::dump(), llvm::Loop::dump(), llvm::MemoryAccess::dump(), llvm::MemorySSA::dump(), llvm::PHITransAddr::dump(), llvm::RegionBase< Tr >::dump(), llvm::RegionInfoBase< Tr >::dump(), llvm::SCEV::dump(), llvm::StackSafetyGlobalInfo::dump(), llvm::Trace::dump(), llvm::AccelTableBase::HashData::dump(), llvm::AccelTableBase::dump(), llvm::AppleAccelTableData::Atom::dump(), llvm::DIEAbbrev::dump(), llvm::DIEValue::dump(), llvm::DIE::dump(), llvm::RegBankSelect::MappingCost::dump(), llvm::LiveDebugVariables::dump(), llvm::LiveRange::Segment::dump(), llvm::LiveRange::dump(), llvm::LiveInterval::SubRange::dump(), llvm::LiveInterval::dump(), llvm::LiveIntervals::dump(), llvm::LivePhysRegs::dump(), llvm::LiveVariables::VarInfo::dump(), llvm::MachineBasicBlock::dump(), llvm::MachineConstantPool::dump(), llvm::MachineFunction::dump(), llvm::MachineInstr::dump(), llvm::MachineJumpTableInfo::dump(), llvm::MachineLoop::dump(), llvm::MachineOperand::dump(), llvm::NodeSet::dump(), llvm::SMSchedule::dump(), llvm::ReadyQueue::dump(), llvm::MachineTraceMetrics::TraceBlockInfo::dump(), llvm::MachineTraceMetrics::Trace::dump(), llvm::MachineTraceMetrics::Ensemble::dump(), llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::RegisterBankInfo::PartialMapping::dump(), llvm::RegisterBankInfo::ValueMapping::dump(), llvm::RegisterBankInfo::InstructionMapping::dump(), llvm::RegisterBankInfo::OperandsMapper::dump(), llvm::PressureChange::dump(), llvm::RegPressureDelta::dump(), llvm::RegPressureTracker::dump(), llvm::ILPValue::dump(), llvm::SelectionDAG::dump(), llvm::BaseIndexOffset::dump(), llvm::SlotIndex::dump(), llvm::SlotIndexes::dump(), llvm::SpillPlacement::BlockConstraint::dump(), llvm::EVT::dump(), llvm::VirtRegMap::dump(), llvm::LLT::dump(), llvm::MVT::dump(), llvm::logicalview::LVCompare::dump(), llvm::logicalview::LVObject::dump(), llvm::logicalview::LVOptions::dump(), llvm::logicalview::LVPatterns::dump(), llvm::logicalview::LVReader::dump(), llvm::logicalview::LVStringPool::dump(), llvm::logicalview::LVReaderHandler::dump(), llvm::logicalview::LVBinaryReader::dump(), llvm::logicalview::LVCodeViewReader::dump(), llvm::logicalview::LVDWARFReader::dump(), llvm::AttributeSet::dump(), llvm::AttributeList::dump(), llvm::Comdat::dump(), llvm::ConstantFPRange::dump(), llvm::ConstantRange::dump(), llvm::ConstantRangeList::dump(), llvm::DebugLoc::dump(), llvm::DbgRecord::dump(), llvm::DbgMarker::dump(), llvm::PMStack::dump(), llvm::MMRAMetadata::dump(), llvm::NamedMDNode::dump(), llvm::Module::dump(), llvm::ModuleSummaryIndex::dump(), llvm::Value::dump(), llvm::MCAsmMacroParameter::dump(), llvm::MCAsmMacro::dump(), llvm::MCExpr::dump(), llvm::MCOperand::dump(), llvm::MCInst::dump(), llvm::MCLabel::dump(), llvm::MCParsedAsmOperand::dump(), llvm::MCSymbol::dump(), llvm::MCValue::dump(), llvm::mca::WriteRef::dump(), llvm::mca::RegisterFile::dump(), llvm::mca::ResourceState::dump(), llvm::mca::RetireControlUnit::dump(), llvm::mca::Scheduler::dump(), llvm::mca::WriteState::dump(), llvm::object::WasmSymbol::dump(), llvm::opt::Arg::dump(), llvm::opt::ArgList::dump(), llvm::opt::Option::dump(), llvm::GCOVFile::dump(), llvm::GCOVFunction::dump(), llvm::GCOVBlock::dump(), llvm::sampleprof::LineLocation::dump(), llvm::sampleprof::SampleRecord::dump(), llvm::sampleprof::FunctionSamples::dump(), llvm::sandboxir::CmpInst::dump(), llvm::sandboxir::Region::dump(), llvm::sandboxir::Tracker::dump(), llvm::sandboxir::Use::dump(), llvm::sandboxir::Value::dump(), llvm::BranchProbability::dump(), llvm::GraphDiff< NodePtr, InverseGraph >::dump(), llvm::cfg::Update< NodePtr >::dump(), llvm::DebugCounter::dump(), llvm::KnownBits::dump(), llvm::vfs::FileSystem::dump(), llvm::SubtargetFeatures::dump(), llvm::AbstractAttribute::dump(), llvm::GVNExpression::Expression::dump(), llvm::PredicateInfo::dump(), llvm::sandboxir::DGNode::dump(), llvm::sandboxir::DependencyGraph::dump(), llvm::sandboxir::InstrMaps::dump(), llvm::sandboxir::Interval< T >::dump(), llvm::sandboxir::ShuffleMask::dump(), llvm::sandboxir::LegalityResult::dump(), llvm::sandboxir::ReadyListContainer::dump(), llvm::sandboxir::SchedBundle::dump(), llvm::sandboxir::Scheduler::dump(), llvm::sandboxir::SeedBundle::dump(), llvm::sandboxir::SeedContainer::dump(), llvm::sandboxir::SeedCollector::dump(), llvm::BasicAAResult::DecomposedGEP::dump(), llvm::ValueEnumerator::dump(), llvm::DbgValueLocEntry::dump(), llvm::SDDbgValue::dump(), llvm::SplitAnalysis::BlockInfo::dump(), llvm::SplitEditor::dump(), llvm::ConstantUniqueMap< ConstantClass >::dump(), llvm::GCNRegPressure::dump(), llvm::dxil::Resources::dump(), llvm::WebAssemblyException::dump(), llvm::slpvectorizer::BoUpSLP::EdgeInfo::dump(), llvm::slpvectorizer::BoUpSLP::VLOperands::dump(), llvm::VPBlockBase::dump(), llvm::VPInstruction::dump(), llvm::VPlan::dump(), llvm::VPValue::dump(), llvm::VPDef::dump(), llvm::sandboxir::UseSet::dump(), llvm::sandboxir::PHIRemoveIncoming::dump(), llvm::sandboxir::PHIAddIncoming::dump(), llvm::sandboxir::CmpSwapOperands::dump(), llvm::sandboxir::UseSwap::dump(), llvm::sandboxir::EraseFromParent::dump(), llvm::sandboxir::RemoveFromParent::dump(), llvm::sandboxir::GenericSetter< GetterFn, SetterFn >::dump(), llvm::sandboxir::GenericSetterWithIdx< GetterFn, SetterFn >::dump(), llvm::sandboxir::CatchSwitchAddHandler::dump(), llvm::sandboxir::SwitchAddCase::dump(), llvm::sandboxir::SwitchRemoveCase::dump(), llvm::sandboxir::MoveInstr::dump(), llvm::sandboxir::InsertIntoBB::dump(), llvm::sandboxir::CreateAndInsertInst::dump(), llvm::sandboxir::ShuffleVectorSetMask::dump(), llvm::ScheduleDAGMILive::dump(), llvm::logicalview::LVLine::dump(), llvm::logicalview::LVLocation::dump(), llvm::logicalview::LVRange::dump(), llvm::logicalview::LVScope::dump(), llvm::logicalview::LVSymbol::dump(), llvm::logicalview::LVType::dump(), llvm::mca::LSUnit::dump(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::dump(), llvm::ImportedFunctionsInliningStatistics::dump(), llvm::coverage::CounterMappingContext::dump(), llvm::MachineFrameInfo::dump(), LiveDebugValues::DbgOp::dump(), LiveDebugValues::ResolvedDbgOp::dump(), LiveDebugValues::DbgOpID::dump(), LiveDebugValues::DbgValue::dump(), llvm::Metadata::dump(), llvm::SDNode::dump(), llvm::PressureDiff::dump(), llvm::RegisterPressure::dump(), llvm::RegisterBank::dump(), llvm::SDep::dump(), llvm::SPIRV::ConvergenceRegion::dump(), llvm::LatencyPriorityQueue::dump(), llvm::DbgValueHistoryMap::dump(), llvm::SuspendCrossingInfo::dump(), llvm::ScaledNumberBase::dump(), llvm::LexicalScope::dump(), LiveDebugValues::MLocTracker::dump_mloc_map(), LiveDebugValues::InstrRefBasedLDV::dump_mloc_transfer(), dump_registers(), dumpAllocas(), llvm::PMTopLevelManager::dumpArguments(), llvm::SUnit::dumpAttributes(), dumpBasicBlockLabel(), llvm::sandboxir::dumpBndl(), 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::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::MCPseudoProbeInlineTree::emit(), llvm::MCPseudoProbe::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::M68kAsmPrinter::emitInstruction(), llvm::WebAssemblyAsmPrinter::emitInstruction(), llvm::HexagonHazardRecognizer::EmitInstruction(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::SystemZHazardRecognizer::EmitInstruction(), llvm::TargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::AArch64FrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::RuntimeDyldImpl::emitSection(), llvm::OpenMPIRBuilder::emitTargetTask(), emitWAccSpillRestoreInfo(), llvm::AArch64::ExtensionSet::enable(), llvm::orc::UnwindInfoManager::enable(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::encodeSingleInstruction(), 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(), llvm::Evaluator::EvaluateFunction(), EvaluateStaticConstructor(), llvm::logicalview::LVCompare::execute(), llvm::VPWidenRecipe::execute(), llvm::VPlan::execute(), llvm::VPRegionBlock::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(), expandMemMoveAsLoop(), llvm::M68kInstrInfo::ExpandMOVI(), llvm::M68kInstrInfo::ExpandMOVSZX_RM(), llvm::M68kInstrInfo::ExpandMOVSZX_RR(), llvm::M68kInstrInfo::ExpandMOVX_RR(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::LoopVectorizationCostModel::expectedCost(), extractInteger(), extractVector(), llvm::AArch64CallLowering::fallBackToDAGISel(), fdbgs(), fillOverallFunction(), llvm::SchedDFSImpl::finalize(), llvm::OpenMPIRBuilder::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(), findForkedPointer(), findForkedSCEVs(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), findGCD(), findHistogram(), findIrreducibleHeaders(), findLoopComponents(), 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(), foldCondBranchOnValueKnownInPredecessorImpl(), llvm::PPCInstrInfo::foldFrameOffset(), llvm::VEInstrInfo::foldImmediate(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldTwoEntryPHINode(), for(), forceAttributes(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::forEachRelaRelocation(), llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::forEachRelRelocation(), formDedicatedExitBlocks(), llvm::ARMTargetLowering::functionArgumentNeedsConsecutiveRegisters(), fuseInstructionPair(), 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(), llvm::FunctionLoweringInfo::getArgumentFrameIndex(), llvm::SampleContextTracker::getBaseSamplesFor(), getBoundsCheckCond(), getBranchHint(), llvm::CacheCost::getCacheCost(), llvm::SampleContextTracker::getCalleeContextSamplesFor(), llvm::HexagonRegisterInfo::getCallerSavedRegs(), llvm::MemorySSA::ClobberWalkerBase::getClobberingMemoryAccessBase(), llvm::InstCostVisitor::getCodeSizeSavingsForArg(), getCompoundInsn(), llvm::coverage::CoverageMapping::getCoverageForExpansion(), llvm::coverage::CoverageMapping::getCoverageForFile(), llvm::coverage::CoverageMapping::getCoverageForFunction(), getDefaultInlineOrder(), getDeinterleave2Values(), getDeinterleave4Values(), 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::ScoreboardHazardRecognizer::getHazardType(), llvm::HexagonHazardRecognizer::getHazardType(), getInlineCost(), getInlineOrder(), getInnerLoopGuardCmp(), getInstructionID(), llvm::SampleProfileLoaderBaseImpl< FT >::getInstWeightImpl(), getIntDivCycle(), llvm::LoopNest::getInterveningInstructions(), llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks(), getLaneCopyOpcode(), llvm::InstCostVisitor::getLatencySavingsForKnownConstants(), 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::OpenMPIRBuilder::getOrCreateRuntimeFunction(), 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::mca::RISCVInstrumentManager::getSchedClassID(), llvm::GCNSchedStage::getScheduleMetrics(), getSpillArea(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), llvm::DependenceInfo::getSplitIteration(), getSubRegForClass(), 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::SSAUpdater::GetValueInMiddleOfBlock(), llvm::MachineSSAUpdater::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(), llvm::FastISel::handleDbgInfo(), llvm::SelectionDAGBuilder::handleDebugDeclare(), llvm::orc::SimpleRemoteEPC::handleDisconnect(), llvm::IRChangedTester::handleIR(), llvm::orc::SimpleRemoteEPC::handleMessage(), llvm::orc::SimpleRemoteEPCServer::handleMessage(), 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(), hoist(), hoistAndMergeSGPRInits(), hoistRegion(), hoistValue(), hostParallelCallback(), if(), llvm::FunctionImporter::importFunctions(), llvm::logicalview::LVBinaryReader::includeInlineeLines(), incorporateNewSCCRange(), llvm::IndexedReference::IndexedReference(), inferAttrsFromFunctionBodies(), inferConvergent(), llvm::objcarc::BottomUpPtrState::InitBottomUp(), llvm::GenericScheduler::initCandidate(), llvm::GCNSchedStage::initGCNRegion(), llvm::GCNSchedStage::initGCNSchedStage(), llvm::UnclusteredHighRPStage::initGCNSchedStage(), llvm::ClusteredLowOccStage::initGCNSchedStage(), llvm::PreRARematStage::initGCNSchedStage(), llvm::WindowScheduler::initialize(), llvm::orc::LLJIT::initialize(), llvm::GCNSchedStrategy::initialize(), INITIALIZE_PASS(), INITIALIZE_PASS_END(), 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(), isControlFlowEquivalent(), llvm::AArch64CallLowering::isEligibleForTailCallOptimization(), llvm::AMDGPUCallLowering::isEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isEligibleLoopForm(), isExplicitVecOuterLoop(), llvm::RecurrenceDescriptor::isFindLastIVPattern(), llvm::AArch64TargetLowering::isFPImmLegal(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), llvm::ARMTTIImpl::isHardwareLoopProfitable(), llvm::InductionDescriptor::isInductionPHI(), llvm::AArch64TargetLowering::isLegalAddImmediate(), isLegalArithImmed(), isLoadCombineCandidateImpl(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), isLoopDead(), isPartialOverwrite(), llvm::AA::isPotentiallyAffectedByBarrier(), isPotentiallyReachable(), isProfitable(), isProfitableChain(), isProfitableToInterleave(), llvm::RecurrenceDescriptor::isReductionPHI(), isSafeDecreasingBound(), isSafeForNoNTrivialUnswitching(), isSafeIncreasingBound(), isSafeToUnrollAndJam(), isUniformLoop(), llvm::GCNUpwardRPTracker::isValid(), llvm::Attributor::isValidFunctionSignatureRewrite(), llvm::HexagonInstrInfo::isValidOffset(), 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::AArch64CallLowering::lowerCall(), llvm::AMDGPUCallLowering::lowerCall(), llvm::HexagonTargetLowering::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::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), llvm::SCCPInstVisitor::markBlockExecutable(), llvm::SampleContextTracker::markContextSamplesInlined(), llvm::GenericUniformityAnalysisImpl< ContextT >::markDivergent(), llvm::logicalview::LVLine::markMissingParents(), llvm::logicalview::LVScope::markMissingParents(), llvm::logicalview::LVSymbol::markMissingParents(), llvm::logicalview::LVType::markMissingParents(), markTails(), llvm::HexagonEvaluator::mask(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), mayAlias(), llvm::JumpThreadingPass::maybethreadThroughTwoBasicBlocks(), llvm::GCNSchedStage::mayCauseSpilling(), llvm::ConstraintSystem::mayHaveSolution(), mayUseP9Setb(), llvm::GlobalMergeFunc::merge(), MergeBlockIntoPredecessor(), mergeConstants(), migrateDebugInfo(), llvm::orc::GDBJITDebugInfoRegistrationPlugin::modifyPassConfig(), llvm::ModuleInlinerWrapperPass::ModuleInlinerWrapperPass(), moveAndTeeForMultiUse(), llvm::ARMBlockPlacement::moveBasicBlock(), moveForSingleUse(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::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<<(), llvm::lto::opt(), OptimizeAwayTrappingUsesOfLoads(), optimizeBranch(), llvm::PPCInstrInfo::optimizeCmpPostRA(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), optimizeGlobalCtorsList(), llvm::jitlink::i386::optimizeGOTAndStubAccesses(), llvm::jitlink::x86_64::optimizeGOTAndStubAccesses(), optimizeLoopExitWithUnknownExitCount(), OptimizeNonTrivialIFuncs(), optimizeSection(), llvm::OptLevelChanger::OptLevelChanger(), llvm::AArch64FrameLowering::orderFrameObjects(), llvm::SplitEditor::overlapIntv(), 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::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GCNSchedStrategy::pickNode(), llvm::R600SchedStrategy::pickNode(), llvm::SystemZPostRASchedStrategy::pickNode(), llvm::GenericScheduler::pickNodeBidirectional(), llvm::PostGenericScheduler::pickNodeBidirectional(), llvm::GCNSchedStrategy::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::GISelCSEInfo::print(), llvm::SpillPlacement::BlockConstraint::print(), llvm::logicalview::LVPatterns::print(), llvm::logicalview::LVReader::print(), llvm::logicalview::LVBinaryReader::print(), llvm::logicalview::LVCodeViewReader::print(), llvm::logicalview::LVDWARFReader::print(), llvm::DXILMetadataAnalysisWrapperPass::print(), llvm::BitTracker::print_cells(), llvm::SIScheduleBlock::printDebug(), PrintDebugDomInfo(), llvm::EpilogueVectorizerMainLoop::printDebugTracesAtEnd(), llvm::EpilogueVectorizerEpilogueLoop::printDebugTracesAtEnd(), llvm::EpilogueVectorizerMainLoop::printDebugTracesAtStart(), llvm::EpilogueVectorizerEpilogueLoop::printDebugTracesAtStart(), printDepMatrix(), printFailMsgforFold(), PrintOps(), printScheduleModel(), llvm::jitlink::CompactUnwindManager< CURecTraits >::processAndReserveUnwindInfo(), llvm::AlignmentFromAssumptionsPass::processAssumption(), llvm::JumpThreadingPass::processBlock(), processDbgDeclare(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::LoongArchFrameLowering::processFunctionBeforeFrameFinalized(), processIfEntryValueDbgDeclare(), processInternalGlobal(), 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::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(), 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(), restoreSSA(), llvm::HexagonInstrInfo::reversePredSense(), llvm::GCNSchedStage::revertScheduling(), llvm::ARMBlockPlacement::revertWhileToDoLoop(), llvm::SSAUpdaterBulk::RewriteAllUses(), rewriteDebugUsers(), rewriteFunction(), rewriteLoopExitValues(), rewriteMemOpOfSelect(), rewriteSelectInstMemOps(), llvm::MachineSSAUpdater::RewriteUse(), rewriteUses(), llvm::WindowScheduler::run(), llvm::ThinLTOCodeGenerator::run(), llvm::FunctionSpecializer::run(), llvm::LoopConstrainer::run(), llvm::DAGTypeLegalizer::run(), llvm::Interpreter::run(), llvm::jitlink::PerGraphGOTAndPLTStubsBuilder< BuilderImplT >::run(), llvm::BitTracker::run(), llvm::rdf::CopyPropagation::run(), llvm::InstCombinerImpl::run(), llvm::TruncInstCombine::run(), llvm::InstCountPass::run(), llvm::LintPass::run(), llvm::ReplaceWithVeclib::run(), llvm::UnifyLoopExitsPass::run(), llvm::AMDGPUSimplifyLibCallsPass::run(), llvm::SafeStackPass::run(), llvm::CGSCCToFunctionPassAdaptor::run(), llvm::CoroSplitPass::run(), llvm::OpenMPOptCGSCCPass::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run(), llvm::LoopBoundSplitPass::run(), llvm::LoopDeletionPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::LoopInterchangePass::run(), llvm::ModuleInlinerPass::run(), llvm::HotColdSplitting::run(), llvm::VerifierAnalysis::run(), llvm::DeadArgumentEliminationPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), llvm::MemProfUsePass::run(), llvm::OpenMPOptPass::run(), llvm::AMDGPUSplitModulePass::run(), llvm::BalancedPartitioning::run(), llvm::PseudoProbeVerifier::runAfterPass(), runAttributorLightOnFunctions(), runAttributorOnFunctions(), llvm::Float2IntPass::runImpl(), llvm::JumpThreadingPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::SpeculativeExecutionPass::runImpl(), runImpl(), runIPSCCP(), runOnBasicBlock(), llvm::RGPassManager::runOnFunction(), llvm::AssignmentTrackingAnalysis::runOnFunction(), llvm::WebAssemblyExceptionInfo::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::LoadStoreOpt::runOnMachineFunction(), llvm::Localizer::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::BreakFalseDeps::runOnMachineFunction(), GCEmptyBasicBlocks::runOnMachineFunction(), llvm::RAGreedy::runOnMachineFunction(), RemoveLoadsIntoFakeUses::runOnMachineFunction(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), llvm::ARMBlockPlacement::runOnMachineFunction(), llvm::LiveDebugVariables::LDVImpl::runOnMachineFunction(), 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::R600SchedStrategy::schedNode(), llvm::SystemZPostRASchedStrategy::schedNode(), llvm::GCNIterativeScheduler::OverrideLegacyStrategy::schedule(), llvm::SwingSchedulerDAG::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::GCNIterativeScheduler::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::GCNIterativeScheduler::scheduleILP(), llvm::GCNIterativeScheduler::scheduleLegacyMaxOccupancy(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::GCNIterativeScheduler::scheduleMinReg(), llvm::PMTopLevelManager::schedulePass(), llvm::WindowScheduler::schedulePhi(), llvm::GCNIterativeScheduler::scheduleRegion(), llvm::SchedDFSResult::scheduleTree(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::HexagonConvergingVLIWScheduler::SchedulingCost(), llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer(), llvm::RISCVDAGToDAGISel::Select(), llvm::SelectionDAGISel::SelectCodeCommon(), selectCopy(), selectDebugInstr(), llvm::LoopVectorizationPlanner::selectEpilogueVectorizationFactor(), llvm::InstructionSelect::selectInstr(), llvm::LoopVectorizationCostModel::selectInterleaveCount(), llvm::FastISel::selectIntrinsicCall(), llvm::SplitEditor::selectIntv(), llvm::InstructionSelect::selectMachineFunction(), llvm::HvxSelector::selectShuffle(), separateNestedLoop(), llvm::FaultMaps::serializeToFaultMapSection(), llvm::StackMaps::serializeToStackMapSection(), llvm::MIRProfileLoader::setBranchProbs(), setDanglingDebugValuesUndef(), llvm::VPTransformState::setDebugLocFrom(), llvm::BranchProbabilityInfo::setEdgeProbability(), llvm::objcarc::PtrState::SetKnownPositiveRefCount(), llvm::SCCPInstVisitor::setLatticeValueForSpecializationArguments(), setLoopComponents(), llvm::GenericSchedulerBase::setPolicy(), setProfMetadata(), llvm::objcarc::PtrState::SetSeq(), llvm::LoopVectorizationCostModel::setTailFoldingStyles(), llvm::orc::setUpInactivePlatform(), llvm::orc::setUpOrcPlatformManually(), llvm::VFABI::setVectorVariantNames(), llvm::ARMBaseRegisterInfo::shouldCoalesce(), shouldInline(), shouldPartialUnroll(), shouldPragmaUnroll(), llvm::UnclusteredHighRPStage::shouldRevertScheduling(), shouldSplit(), llvm::LiveIntervals::shrinkToUses(), llvm::HexagonShuffler::shuffle(), llvm::AbstractDependenceGraphBuilder< GraphType >::simplify(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), sink(), sinkAndCmp0Expression(), sinkCommonCodeFromPredecessors(), SinkInstruction(), sinkInstruction(), sinkRegion(), llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler(), 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(), 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::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::LegalizationArtifactCombiner::tryFoldImplicitDef(), tryInterleave(), tryLowerToSLI(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), llvm::JumpThreadingPass::tryThreadEdge(), tryToElideArgumentCopy(), tryToFindRegisterToRename(), llvm::orc::EPCDynamicLibrarySearchGenerator::tryToGenerate(), tryToMergePartialOverlappingStores(), tryToRecognizePopCount(), llvm::SCCPSolver::tryToReplaceWithConstant(), tryToShorten(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::InstCombinerImpl::tryToSinkInstructionDbgValues(), 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(), value(), values(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::ScalarEvolution::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), Verify(), llvm::LegalizerInfo::verify(), llvm::RegisterBankInfo::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::i386::GOTTableManager::visitEdge(), llvm::jitlink::i386::PLTTableManager::visitEdge(), llvm::jitlink::loongarch::GOTTableManager::visitEdge(), llvm::jitlink::loongarch::PLTTableManager::visitEdge(), llvm::jitlink::x86_64::GOTTableManager::visitEdge(), llvm::jitlink::x86_64::PLTTableManager::visitEdge(), llvm::Interpreter::visitExtractElementInst(), llvm::Interpreter::visitFCmpInst(), llvm::Interpreter::visitICmpInst(), llvm::ObjectSizeOffsetVisitor::visitInstruction(), llvm::ObjectSizeOffsetEvaluator::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::OrcX86_64_SysV::writeResolverCode(), llvm::orc::OrcLoongArch64::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(), and llvm::ValueSymbolTable::~ValueSymbolTable().
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 24 of file MemAlloc.cpp.
Referenced by llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::copyFrom(), llvm::MallocAllocator::Deallocate(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::grow(), llvm::SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >::grow(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::operator=(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::shrink_and_clear(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::~DenseMap(), and llvm::detail::UniqueFunctionBase< ReturnT, ParamTs >::~UniqueFunctionBase().
llvm::DEBUG_COUNTER | ( | NumAbstractAttributes | , |
"num-abstract-attributes" | , | ||
"How many AAs should be initialized" | |||
) |
A debug counter to limit the number of AAs created.
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) | |||
) |
Definition at line 123 of file LiveDebugValues.cpp.
References ValueTrackingVariableLocations, and llvm::Triple::x86_64.
Referenced by shouldCoalesceFragments(), and llvm::MachineFunction::shouldUseDebugInstrRef().
Definition at line 312 of file Alignment.h.
References A.
|
inline |
Definition at line 316 of file Alignment.h.
Definition at line 408 of file APFloat.cpp.
Referenced by interpretDecimal(), readExponent(), and totalExponent().
FunctionCallee llvm::declareSanitizerInitFunction | ( | Module & | M, |
StringRef | InitName, | ||
ArrayRef< Type * > | InitArgTypes, | ||
bool | Weak = false |
||
) |
Definition at line 223 of file ModuleUtils.cpp.
References assert(), llvm::StringRef::empty(), and llvm::Type::getVoidTy().
Referenced by createSanitizerCtorAndInitFunctions(), and getOrCreateSanitizerCtorAndInitFunctions().
llvm::Error llvm::decodeBase64 | ( | llvm::StringRef | Input, |
std::vector< char > & | Output | ||
) |
Definition at line 37 of file Base64.cpp.
References llvm::StringRef::back(), createStringError(), decodeBase64Byte(), Idx, llvm::IRSimilarity::Illegal, INVALID_BASE64_BYTE, and llvm::StringRef::size().
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), getTargetShuffleMask(), and llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode().
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 llvm::SmallVectorImpl< T >::append(), Idx, llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodeInsertElementMask | ( | unsigned | NumElts, |
unsigned | Idx, | ||
unsigned | Len, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 50 of file X86ShuffleDecode.cpp.
References assert(), Idx, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
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 llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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 llvm::SmallVectorImpl< T >::append(), Idx, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
|
inline |
Dual operation of the encode function above.
Definition at line 220 of file Alignment.h.
Referenced by llvm::GlobalObject::getAlign(), llvm::MCSymbol::getCommonAlignment(), llvm::ISD::ArgFlagsTy::getNonZeroByValAlign(), llvm::ISD::ArgFlagsTy::getNonZeroMemAlign(), and llvm::ISD::ArgFlagsTy::getNonZeroOrigAlign().
void llvm::DecodeMOVDDUPMask | ( | unsigned | NumElts, |
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 92 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodeMOVSHDUPMask | ( | unsigned | NumElts, |
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 85 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodeMOVSLDUPMask | ( | unsigned | NumElts, |
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 78 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
|
inline |
Definition at line 46 of file BCD.h.
References decodePackedBCD().
void llvm::DecodePALIGNRMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 125 of file X86ShuffleDecode.cpp.
References llvm::sampleprof::Base, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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, Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by addConstantComments(), and getTargetShuffleMask().
void llvm::DecodePSHUFBMask | ( | const Constant * | C, |
unsigned | Width, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Decode a PSHUFB mask from an IR-level vector constant.
Definition at line 116 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), llvm::sampleprof::Base, llvm::CallingConv::C, extractConstantMask(), Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
void llvm::DecodePSHUFHWMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Decodes the shuffle masks for pshufhw.
Definition at line 164 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodePSHUFLWMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Decodes the shuffle masks for pshuflw.
Definition at line 178 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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 llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Size.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodePSLLDQMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 100 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodePSRLDQMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 112 of file X86ShuffleDecode.cpp.
References llvm::sampleprof::Base, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodePSWAPMask | ( | unsigned | NumElts, |
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Decodes a PSWAPD 3DNow! instruction.
Definition at line 192 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
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 llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
|
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 165 of file LEB128.h.
References error, LLVM_UNLIKELY, and UINT64_MAX.
Referenced by decodeSLEB128AndInc(), getExpressionFrameOffset(), llvm::DataExtractor::getSLEB128(), nextLEB(), readLEB128(), and llvm::BinaryStreamReader::readSLEB128().
|
inline |
Definition at line 211 of file LEB128.h.
References decodeSLEB128(), and error.
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments().
|
inline |
Utility function to decode a ULEB128 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 131 of file LEB128.h.
References error, and LLVM_UNLIKELY.
Referenced by decodeULEB128AndInc(), llvm::DataExtractor::getULEB128(), llvm::sampleprof::SampleProfileReaderRawBinary::hasFormat(), llvm::sampleprof::SampleProfileReaderExtBinary::hasFormat(), loadTestingFormat(), nextLEB(), readAndDecodeStrings(), llvm::sampleprof::SampleProfileReaderBinary::readNumber(), llvm::BinaryStreamReader::readULEB128(), llvm::coverage::RawCoverageReader::readULEB128(), and readULEB128().
|
inline |
Definition at line 203 of file LEB128.h.
References decodeULEB128(), and error.
Referenced by decodeULEB128AndIncUnsafe().
Definition at line 219 of file LEB128.h.
References decodeULEB128AndInc().
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
void llvm::DecodeVALIGNMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 139 of file X86ShuffleDecode.cpp.
References assert(), isPowerOf2_32(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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.
References llvm::SmallVectorImpl< T >::append().
Referenced by getTargetShuffleMask().
void llvm::DecodeVPERM2X128Mask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Definition at line 281 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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(), Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
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(), Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by addConstantComments(), and getTargetShuffleMask().
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(), Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelUndef.
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::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.
Referenced by addConstantComments(), and getTargetShuffleMask().
void llvm::DecodeVPERMMask | ( | unsigned | NumElts, |
unsigned | Imm, | ||
SmallVectorImpl< int > & | ShuffleMask | ||
) |
Decodes the shuffle masks for VPERMQ/VPERMPD.
Definition at line 364 of file X86ShuffleDecode.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), getTargetShuffleMask(), and llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode().
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::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.
Referenced by getTargetShuffleMask().
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::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), and SM_SentinelUndef.
Referenced by getTargetShuffleMask().
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::SmallVectorImpl< T >::clear(), Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ArrayRef< T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by addConstantComments(), and getTargetShuffleMask().
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, llvm::SmallVectorImpl< T >::clear(), extractConstantMask(), llvm::Type::getPrimitiveSizeInBits(), Index, llvm::SmallVectorTemplateBase< T, bool >::push_back(), SM_SentinelUndef, and SM_SentinelZero.
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.
References Index, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
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 llvm::SmallVectorImpl< T >::append(), assert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Sentinel, SM_SentinelUndef, and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), getFauxShuffleMask(), and printZeroExtend().
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 llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SM_SentinelZero.
Referenced by EmitAnyX86InstComments(), and getTargetShuffleMask().
std::optional< DecomposedBitTest > llvm::decomposeBitTest | ( | Value * | Cond, |
bool | LookThroughTrunc = true , |
||
bool | AllowNonZeroC = false |
||
) |
Decompose an icmp into the form ((X & Mask) pred C) if possible.
Unless AllowNonZeroC
is true, C will always be 0.
Definition at line 170 of file CmpInstAnalysis.cpp.
References Cond, and decomposeBitTestICmp().
Referenced by decomposeBitTestICmp().
std::optional< DecomposedBitTest > llvm::decomposeBitTestICmp | ( | Value * | LHS, |
Value * | RHS, | ||
CmpInst::Predicate | Pred, | ||
bool | LookThroughTrunc = true , |
||
bool | AllowNonZeroC = false |
||
) |
Decompose an icmp into the form ((X & Mask) pred C) if possible.
Unless AllowNonZeroC
is true, C will always be 0.
Definition at line 77 of file CmpInstAnalysis.cpp.
References llvm::CallingConv::C, llvm::APInt::getSignMask(), llvm::APInt::getZero(), llvm::ICmpInst::isGE(), llvm::ICmpInst::isGT(), llvm::ICmpInst::isLE(), llvm::APInt::isNegatedPowerOf2(), llvm::APInt::isPowerOf2(), llvm::ICmpInst::isRelational(), LHS, llvm_unreachable, llvm::PatternMatch::m_APIntAllowPoison(), llvm::PatternMatch::m_Trunc(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), RHS, and X.
Referenced by decomposeBitTest(), detectShiftUntilBitTestIdiom(), llvm::InstCombinerImpl::foldICmpWithTrunc(), foldSelectICmpAnd(), foldSelectICmpAndBinOp(), foldSignedTruncationCheck(), getMaskedTypeForICmpPair(), and simplifySelectWithFakeICmpEq().
|
inline |
Definition at line 1355 of file MemorySSA.h.
References assert(), def_chain(), find(), and make_range().
Referenced by checkClobberSanity(), and def_chain().
void llvm::deleteConstant | ( | Constant * | C | ) |
Definition at line 529 of file Constants.cpp.
References llvm::CallingConv::C, and llvm_unreachable.
Referenced by llvm::Constant::destroyConstant(), and llvm::ConstantUniqueMap< ConstantClass >::freeConstants().
void llvm::DeleteDeadBlock | ( | BasicBlock * | BB, |
DomTreeUpdater * | DTU = nullptr , |
||
bool | KeepOneInputPHIs = false |
||
) |
Delete the specified block, which must have no predecessors.
Definition at line 96 of file BasicBlockUtils.cpp.
References DeleteDeadBlocks().
Referenced by eraseDeadBBsAndChildren(), MergeBlockIntoPredecessor(), removeEmptyCleanup(), llvm::JumpThreadingPass::runImpl(), and TryToSimplifyUncondBranchFromEmptyBlock().
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 101 of file BasicBlockUtils.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::ArrayRef< T >::begin(), llvm::DomTreeUpdater::deleteBB(), detachDeadBlocks(), llvm::ArrayRef< T >::end(), predecessors(), and llvm::ArrayRef< T >::size().
Referenced by CloneAndPruneIntoFromInst(), DeleteDeadBlock(), EliminateUnreachableBlocks(), removeUnreachableBlocks(), removeUnusedBlocksFromParent(), and workshareLoopTargetCallback().
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:
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 484 of file LoopUtils.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), Block, blocks, llvm::IRBuilderBase::CreateBr(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateUnreachable(), llvm::LoopInfoBase< BlockT, LoopT >::destroy(), llvm::LoopInfoBase< BlockT, LoopT >::end(), llvm::Instruction::eraseFromParent(), filterDbgVars(), find(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLoop(), llvm::PoisonValue::get(), llvm::IRBuilderBase::getFalse(), llvm::Instruction::getNumSuccessors(), I, Idx, 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(), llvm::IRBuilderBase::SetInsertPoint(), llvm::MemorySSA::verifyMemorySSA(), and VerifyMemorySSA.
Referenced by deleteLoopIfDead().
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 164 of file BasicBlockUtils.cpp.
References llvm::BasicBlock::phis(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RecursivelyDeleteDeadPHINode(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by ReduceLoopStrength(), and RunTermFold().
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:
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]
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 447 of file Delinearization.cpp.
References collectParametricTerms(), computeAccessFunctions(), dbgs(), llvm::SmallVectorBase< Size_T >::empty(), findArrayDimensions(), and LLVM_DEBUG.
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.
MangledName | - reference to string to demangle. |
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().
|
inline |
Definition at line 411 of file SPIRVUtils.h.
References NONE, RTE, RTN, RTP, RTZ, and SAT.
Referenced by llvm::SPIRV::lookupBuiltinNameHelper().
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.
Definition at line 132 of file DemoteRegToStack.cpp.
References assert(), DL, F, II, P, llvm::User::replaceUsesOfWith(), and Users.
Referenced by runPass().
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.
Definition at line 23 of file DemoteRegToStack.cpp.
References assert(), DL, F, GetSuccessorNumber(), I, II, isCriticalEdge(), llvm_unreachable, SplitCriticalEdge(), and successors().
Referenced by runPass().
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().
|
inline |
Return the name used for the denormal handling mode used by the expected names from the denormal-fp-math attribute.
Definition at line 202 of file FloatingPointMode.h.
References llvm::DenormalMode::Dynamic, llvm::DenormalMode::IEEE, Mode, llvm::DenormalMode::PositiveZero, and llvm::DenormalMode::PreserveSign.
Referenced by llvm::DenormalMode::print().
iterator_range< df_iterator< T > > llvm::depth_first | ( | const T & | G | ) |
Definition at line 233 of file DepthFirstIterator.h.
References df_begin(), df_end(), G, and make_range().
Referenced by llvm::PredicateInfoBuilder::buildPredicateInfo(), eliminateLoadsAcrossLoops(), FixIrreducibleImpl(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(), llvm::LoopNest::getPerfectLoops(), llvm::MemorySSA::OptimizeUses::optimizeUses(), llvm::ScalarEvolution::print(), llvm::GenericCycleInfo< ContextT >::print(), llvm::WebAssemblyExceptionInfo::recalculate(), llvm::GVNHoist::run(), runImpl(), llvm::GenericCycleInfoCompute< ContextT >::updateDepth(), llvm::GenericCycle< ContextT >::verifyCycle(), llvm::GenericCycleInfo< ContextT >::verifyCycleNest(), vp_depth_first_deep(), and vp_depth_first_shallow().
iterator_range< df_ext_iterator< T, SetTy > > llvm::depth_first_ext | ( | const T & | G, |
SetTy & | S | ||
) |
Definition at line 255 of file DepthFirstIterator.h.
References df_ext_begin(), df_ext_end(), G, and make_range().
Referenced by llvm::SampleProfileInference< FT >::apply(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::createDefUseEdges(), EliminateUnreachableBlocks(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(), llvm::BreakFalseDeps::runOnMachineFunction(), and llvm::GenericCycle< ContextT >::verifyCycle().
void llvm::describeFuzzerAggregateOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 88 of file Operations.cpp.
References llvm::fuzzerop::extractValueDescriptor(), and llvm::fuzzerop::insertValueDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
void llvm::describeFuzzerControlFlowOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 75 of file Operations.cpp.
References llvm::fuzzerop::splitBlockDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
void llvm::describeFuzzerFloatOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 45 of file Operations.cpp.
References llvm::fuzzerop::binOpDescriptor(), llvm::fuzzerop::cmpOpDescriptor(), llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, and llvm::CmpInst::FCMP_UNO.
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
void llvm::describeFuzzerIntOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Getters for the default sets of operations, per general category.
Definition at line 18 of file Operations.cpp.
References llvm::fuzzerop::binOpDescriptor(), llvm::fuzzerop::cmpOpDescriptor(), 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, and llvm::CmpInst::ICMP_ULT.
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
void llvm::describeFuzzerOtherOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 80 of file Operations.cpp.
References llvm::fuzzerop::selectDescriptor().
void llvm::describeFuzzerPointerOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 84 of file Operations.cpp.
References llvm::fuzzerop::gepDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
void llvm::describeFuzzerUnaryOperations | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 70 of file Operations.cpp.
References llvm::fuzzerop::fnegDescriptor().
void llvm::describeFuzzerVectorOps | ( | std::vector< fuzzerop::OpDescriptor > & | Ops | ) |
Definition at line 94 of file Operations.cpp.
References llvm::fuzzerop::extractElementDescriptor(), llvm::fuzzerop::insertElementDescriptor(), and llvm::fuzzerop::shuffleVectorDescriptor().
Referenced by llvm::InjectorIRStrategy::getDefaultOps().
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.
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 62 of file BasicBlockUtils.cpp.
References assert(), llvm::PoisonValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and successors().
Referenced by DeleteDeadBlocks().
UseCaptureKind llvm::DetermineUseCaptureKind | ( | const Use & | U, |
llvm::function_ref< bool(Value *, const DataLayout &)> | IsDereferenceableOrNull | ||
) |
Determine what kind of capture behaviour U
may exhibit.
A use can be no-capture, a use can potentially capture, or a use can be passthrough such that the uses of the user or U
should be inspected. The IsDereferenceableOrNull
callback is used to rule out capturing for certain comparisons.
Definition at line 277 of file CaptureTracking.cpp.
References DL, I, Idx, isIntrinsicReturningPointerAliasingArgumentWithoutCapturing(), isNoAliasCall(), MAY_CAPTURE, MI, NO_CAPTURE, and PASSTHROUGH.
Referenced by PointerMayBeCaptured().
df_iterator< T > llvm::df_begin | ( | const T & | G | ) |
Definition at line 222 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by depth_first(), llvm::GraphTraits< DominatorTree * >::nodes_begin(), llvm::DomTreeGraphTraitsBase< Node, ChildIterator >::nodes_begin(), and llvm::GraphTraits< PostDominatorTree * >::nodes_begin().
df_iterator< T > llvm::df_end | ( | const T & | G | ) |
Definition at line 227 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by depth_first(), llvm::GraphTraits< DominatorTree * >::nodes_end(), llvm::DomTreeGraphTraitsBase< Node, ChildIterator >::nodes_end(), and llvm::GraphTraits< PostDominatorTree * >::nodes_end().
df_ext_iterator< T, SetTy > llvm::df_ext_begin | ( | const T & | G, |
SetTy & | S | ||
) |
Definition at line 245 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by depth_first_ext(), and llvm::LiveIntervals::pruneValue().
df_ext_iterator< T, SetTy > llvm::df_ext_end | ( | const T & | G, |
SetTy & | S | ||
) |
Definition at line 250 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by depth_first_ext(), and llvm::LiveIntervals::pruneValue().
Definition at line 459 of file DiagnosticInfo.cpp.
References A, D, DS_Error, DS_Warning, F, llvm::CallBase::getCalledOperand(), llvm::Instruction::getMetadata(), and llvm::Value::stripPointerCasts().
Referenced by llvm::FastISel::lowerCall().
Definition at line 382 of file DWARFLinker.cpp.
References llvm_unreachable, and Tag.
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().
|
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 458 of file GenericLoopInfoImpl.h.
Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::getLoopsInPreorder().
bool llvm::DisplayGraph | ( | StringRef | Filename, |
bool | wait = true , |
||
GraphProgram::Name | program = GraphProgram::DOT |
||
) |
Definition at line 192 of file GraphWriter.cpp.
References args, errs(), ExecGraphViewer(), getProgramName(), llvm_unreachable, and OutputFilename.
Referenced by ViewGraph().
|
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().
|
constexpr |
Returns the integer ceil(Numerator / Denominator).
Unsigned version. Guaranteed to never overflow.
Definition at line 405 of file MathExtras.h.
References assert().
Referenced by llvm::FoldingSetNodeID::AddString(), alignTo(), llvm::SITargetLowering::allowsMisalignedMemoryAccessesImpl(), areRuntimeChecksProfitable(), buildCopyFromRegs(), llvm::msf::bytesToBlocks(), llvm::DwarfCompileUnit::createBaseTypeDIEs(), llvm::OpenMPIRBuilder::createTask(), llvm::ARMBaseInstrInfo::extraSizeToPredicateInstructions(), llvm::AMDGPU::getAddrSizeMIMGOp(), getDepthOfOptCmov(), getFloorFullVectorNumberOfElements(), llvm::msf::getFpmStreamLayout(), getFullVectorNumberOfElements(), llvm::AMDGPU::IsaInfo::getGranulatedNumRegisterBlocks(), llvm::DataLayout::getIndexSize(), llvm::BasicTTIImplBase< T >::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getInterleavedMemoryOpCost(), llvm::X86TTIImpl::getIntImmCostInst(), llvm::RISCVTargetLowering::getLMULCost(), llvm::X86TTIImpl::getMemoryOpCost(), llvm::BasicTTIImplBase< T >::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::RISCVTTIImpl::getShuffleCost(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::AMDGPU::IsaInfo::getWavesPerEUForWorkGroup(), llvm::AMDGPU::IsaInfo::getWavesPerWorkGroup(), llvm::AMDGPULegalizerInfo::legalizeBufferLoad(), LLVMCreateConstantRangeAttribute(), lowerBuildVectorOfConstants(), optimizeSection(), llvm::OpenMPIRBuilder::registerTargetGlobalVariable(), removeRedundantDbgLocsUsingBackwardScan(), llvm::RISCVTargetLowering::splitValueIntoRegisterParts(), tryWidenGlobalArraysUsedByMemcpy(), useRVVForFixedLengthVectorVT(), llvm::SIInstrInfo::verifyInstruction(), and widenDestArray().
Fallback when arguments aren't integral.
Definition at line 412 of file MathExtras.h.
References assert().
|
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(), and divideSignedWouldOverflow().
|
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(), and divideSignedWouldOverflow().
|
constexpr |
Returns (Numerator / Denominator) rounded by round-half-up.
Guaranteed to never overflow.
Definition at line 469 of file MathExtras.h.
Referenced by getEstimatedTripCount().
|
constexpr |
Definition at line 421 of file MathExtras.h.
Referenced by divideCeilSigned(), divideFloorSigned(), llvm::DynamicAPInt::operator/(), and llvm::DynamicAPInt::operator/=().
The Bernstein hash function used by the DWARF accelerator tables.
Definition at line 21 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().
char * llvm::dlangDemangle | ( | std::string_view | MangledName | ) |
Definition at line 565 of file DLangDemangle.cpp.
References D, and starts_with().
Referenced by nonMicrosoftDemangle().
int llvm::dlltoolDriverMain | ( | llvm::ArrayRef< const char * > | ArgsArr | ) |
Definition at line 163 of file DlltoolDriver.cpp.
References errs(), llvm::opt::Arg::getAsString(), llvm::opt::Arg::getValue(), handleAllErrors(), llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, llvm::object::COFFShortExport::ImportName, llvm::COFF::isArm64EC(), Machine, llvm::ErrorInfoBase::message(), llvm::object::COFFShortExport::Name, outs(), llvm::ArrayRef< T >::slice(), llvm::object::COFFShortExport::SymbolName, llvm::Triple::UnknownArch, and llvm::object::writeImportLibrary().
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 1287 of file SLPVectorizer.cpp.
References areAllOperandsNonInsts(), and isUsedOutsideBlock().
Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), and needToScheduleSingleInstruction().
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 1295 of file SLPVectorizer.cpp.
References all_of(), areAllOperandsNonInsts(), llvm::ArrayRef< T >::empty(), and isUsedOutsideBlock().
cl::opt< bool > llvm::DoInstrProfNameCompression | ( | "enable-name-compression" | , |
cl::desc("Enable name/filename string compression") | , | ||
cl::init(true) | |||
) |
std::string llvm::doSystemDiff | ( | StringRef | Before, |
StringRef | After, | ||
StringRef | OldLineFormat, | ||
StringRef | NewLineFormat, | ||
StringRef | UnchangedLineFormat | ||
) |
Definition at line 215 of file PrintPasses.cpp.
References After, B, Before, cleanUpTempFiles(), DiffBinary, llvm::sys::ExecuteAndWait(), llvm::sys::findProgramByName(), llvm::MemoryBuffer::getFile(), and prepareTempFiles().
Referenced by llvm::InLineChangePrinter::handleFunctionCompare().
Return a range covering RangeOrContainer
with the first N elements excluded.
Definition at line 329 of file STLExtras.h.
References adl_begin(), adl_end(), make_range(), and N.
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(), checkNode(), CollectAddOperandsWithScales(), llvm::safestack::StackLayout::computeLayout(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), 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< NodeT, IsPostDom >::findNearestCommonDominator(), findOptionMDForLoopID(), fixupPHIOpBanks(), llvm::InstCombinerImpl::foldPHIArgBinOpIntoPHI(), llvm::InstCombinerImpl::foldPHIArgExtractValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgGEPIntoPHI(), llvm::InstCombinerImpl::foldPHIArgInsertValueInstructionIntoPHI(), llvm::InstCombinerImpl::foldPHIArgLoadIntoPHI(), llvm::InstCombinerImpl::foldPHIArgOpIntoPHI(), fuseTwoAddrInst(), llvm::MachO::TextAPIReader::get(), llvm::LegalizerInfo::getActionDefinitionsBuilder(), llvm::ScalarEvolution::getAddRecExpr(), llvm::sandboxir::SchedBundle::getBot(), getConstantAtOffset(), getExactSDiv(), llvm::SCEVExpander::getIVIncOperand(), llvm::Loop::getLocRange(), llvm::sandboxir::VecUtils::getLowest(), llvm::DILocation::getMergedLocations(), llvm::VPlan::getName(), getOffsetFromIndices(), llvm::GIMatchTableExecutor::getRemainingOperands(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::sandboxir::CollectDescr::getSingleInput(), 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(), LowerBUILD_VECTOR_i1(), makeFollowupLoopID(), makeGuardControlFlowExplicit(), makePostTransformationMetadata(), moveInstructionsToTheBeginning(), llvm::orc::operator<<(), performBuildShuffleExtendCombine(), llvm::InstCombinerImpl::PHIArgMergedDebugLoc(), llvm::ARMInstPrinter::printRegisterList(), llvm::ValueEnumerator::purgeFunction(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::reattachExistingSubtree(), llvm::PHINode::removeIncomingValue(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::sandboxir::EraseFromParent::revert(), setMemoryPhiValueForBlock(), simpleLibcall(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), sortPtrAccesses(), stripDebugLocFromLoopID(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::TailDuplicator::tailDuplicateBlocks(), llvm::sandboxir::VecUtils::tryGetCommonScalarType(), llvm::sandboxir::Scheduler::trySchedule(), unswitchTrivialSwitch(), UpdateDbgValueInst(), updateOperands(), llvm::objcopy::elf::SymbolTableSection::updateSymbols(), VerifyPHIs(), and llvm::InstCombinerImpl::visitGEPOfGEP().
Return a range covering RangeOrContainer
with the last N elements excluded.
Definition at line 336 of file STLExtras.h.
References adl_begin(), adl_end(), make_range(), and N.
Referenced by llvm::ARMBaseInstrInfo::getOutliningCandidateInfo(), llvm::DroppedVariableStats::visitEveryDebugRecord(), and llvm::InstCombinerImpl::visitGEPOfGEP().
void llvm::dropDebugUsers | ( | Instruction & | I | ) |
Remove the debug intrinsic instructions for the given instruction.
Definition at line 3696 of file Local.cpp.
References llvm::Instruction::eraseFromParent(), findDbgUsers(), and I.
Referenced by hoistAllInstructionsInto().
void llvm::dump | ( | const SparseBitVector< ElementSize > & | LHS, |
raw_ostream & | out | ||
) |
Definition at line 877 of file SparseBitVector.h.
References LHS.
Referenced by llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), llvm::VPlan::execute(), llvm::BlockFrequencyInfoImplBase::finalizeMetrics(), PerformSHLSimplify(), rematerializeCheapDef(), llvm::VLIWResourceModel::reserveResources(), llvm::LiveIntervalsWrapperPass::runOnMachineFunction(), and llvm::WebAssemblyExceptionInfo::runOnMachineFunction().
|
static |
Definition at line 24 of file SuspendCrossingInfo.cpp.
References dbgs(), llvm::ModuleSlotTracker::getLocalSlot(), llvm::Value::getName(), and llvm::Value::hasName().
Referenced by llvm::SuspendCrossingInfo::dump().
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.
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 416 of file GraphWriter.h.
References G, Name, llvm::Twine::str(), and WriteGraph().
Referenced by llvm::SelectionDAG::dumpDotGraph().
Definition at line 181 of file Error.cpp.
References PrintError(), and PrintNote().
Referenced by llvm::Record::emitRecordDumps().
LLVM_DUMP_METHOD void llvm::dumpRegSetPressure | ( | ArrayRef< unsigned > | SetPressure, |
const TargetRegisterInfo * | TRI | ||
) |
Definition at line 80 of file RegisterPressure.cpp.
References dbgs(), llvm::ArrayRef< T >::size(), and TRI.
Referenced by llvm::RegPressureTracker::dump(), llvm::RegisterPressure::dump(), llvm::ScheduleDAGMILive::initRegPressure(), and llvm::ScheduleDAGMILive::scheduleMI().
|
static |
Definition at line 81 of file RuntimeDyld.cpp.
References dbgs(), format(), llvm::SectionEntry::getAddress(), llvm::SectionEntry::getLoadAddress(), llvm::SectionEntry::getName(), and llvm::SectionEntry::getSize().
Referenced by llvm::RuntimeDyldImpl::resolveRelocations().
void llvm::dumpTypeQualifiedName | ( | const DWARFDie & | DIE, |
raw_ostream & | OS | ||
) |
Definition at line 794 of file DWARFDie.cpp.
References llvm::DWARFTypePrinter< DieType >::appendQualifiedName(), and OS.
Referenced by dumpAttribute().
void llvm::dumpTypeUnqualifiedName | ( | const DWARFDie & | DIE, |
raw_ostream & | OS, | ||
std::string * | OriginalFullName = nullptr |
||
) |
Definition at line 798 of file DWARFDie.cpp.
References llvm::DWARFTypePrinter< DieType >::appendUnqualifiedName(), and OS.
Referenced by llvm::DWARFDie::getFullName().
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 1121 of file CloneFunction.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::BasicBlock::begin(), count(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::PHINode::getIncomingValueForBlock(), llvm::Value::getName(), llvm::BasicBlock::getTerminator(), I, remapDebugVariable(), llvm::Value::setName(), SplitEdge(), and successors().
Referenced by splitCallSite(), and llvm::JumpThreadingPass::threadGuard().
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::objcopy::elf::ELFReader::create(), llvm::OpenMPIRBuilder::createOffloadEntriesAndInfoMetadata(), llvm::object::getBuildID(), llvm::InstrProfCorrelator::getDataSize(), and llvm::ifs::readELFFile().
Definition at line 655 of file Casting.h.
References assert(), llvm::CastInfo< To, From, Enable >::doCastIfPossible(), and llvm::detail::isPresent().
Definition at line 661 of file Casting.h.
References assert(), llvm::CastInfo< To, From, Enable >::doCastIfPossible(), and llvm::detail::isPresent().
|
inline |
Definition at line 667 of file Casting.h.
References assert(), and llvm::detail::isPresent().
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(), and llvm::detail::unwrapValue().
Definition at line 744 of file Casting.h.
References llvm::CastInfo< To, From, Enable >::castFailed(), llvm::CastInfo< To, From, Enable >::doCastIfPossible(), llvm::detail::isPresent(), and llvm::detail::unwrapValue().
Definition at line 750 of file Casting.h.
References llvm::CastInfo< To, From, Enable >::castFailed(), llvm::CastInfo< To, From, Enable >::doCastIfPossible(), llvm::detail::isPresent(), and llvm::detail::unwrapValue().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::dynamicAPIntFromInt64 | ( | int64_t | X | ) |
Definition at line 237 of file DynamicAPInt.h.
References X.
BasicBlock * llvm::ehAwareSplitEdge | ( | 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.
Definition at line 833 of file BasicBlockUtils.cpp.
References llvm::PHINode::addIncoming(), any_of(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::SmallVectorImpl< T >::clear(), llvm::Instruction::clone(), llvm::BranchInst::Create(), llvm::BasicBlock::Create(), llvm::CleanupReturnInst::Create(), llvm::CleanupPadInst::Create(), createPHIsForSplitLoopExit(), llvm::SmallVectorBase< Size_T >::empty(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::flush(), llvm::BasicBlock::getContext(), llvm::BasicBlock::getFirstNonPHI(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::Instruction::isEHPad(), llvm_unreachable, Options, P, predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), setUnwindEdgeTo(), SplitBlockPredecessors(), SplitEdge(), updatePhiNodes(), and VerifyMemorySSA.
Referenced by rewritePHIs(), and SplitEdge().
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.
Definition at line 1524 of file Local.cpp.
References EliminateDuplicatePHINodes(), and ToRemove.
Referenced by EliminateDuplicatePHINodes().
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 1513 of file Local.cpp.
References EliminateDuplicatePHINodesNaiveImpl(), EliminateDuplicatePHINodesSetBasedImpl(), hasNItemsOrLess(), NDEBUG, PHICSEDebugHash, PHICSENumPHISmallSize, llvm::BasicBlock::phis(), and ToRemove.
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 125 of file BasicBlockUtils.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), DeleteDeadBlocks(), depth_first_ext(), and F.
Referenced by llvm::UnreachableBlockElimPass::run().
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 5647 of file BitcodeWriter.cpp.
References llvm::GlobalValue::AppendingLinkage, assert(), collectUsedGlobalVariables(), Data, EmbedBitcode, llvm::SmallVectorBase< Size_T >::empty(), llvm::ConstantArray::get(), llvm::ConstantDataArray::get(), llvm::ArrayType::get(), llvm::MemoryBufferRef::getBufferEnd(), llvm::MemoryBufferRef::getBufferSize(), llvm::MemoryBufferRef::getBufferStart(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), getSectionNameForBitcode(), getSectionNameForCommandline(), llvm::Value::getType(), llvm::PointerType::getUnqual(), isBitcode(), OS, llvm::GlobalValue::PrivateLinkage, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::GlobalObject::setAlignment(), llvm::Value::setName(), llvm::GlobalObject::setSection(), llvm::SmallVectorBase< Size_T >::size(), llvm::Value::takeName(), and WriteBitcodeToFile().
Referenced by codegen(), and llvm::lto::opt().
void llvm::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.
Also provide a metadata entry to identify it in the module using the same section name.
Definition at line 378 of file ModuleUtils.cpp.
References llvm::NamedMDNode::addOperand(), appendToCompilerUsed(), llvm::ConstantAsMetadata::get(), llvm::ConstantDataArray::get(), llvm::MDNode::get(), llvm::MDString::get(), llvm::MemoryBufferRef::getBufferSize(), llvm::MemoryBufferRef::getBufferStart(), llvm::Value::getType(), llvm::GlobalValue::PrivateLinkage, llvm::GlobalObject::setAlignment(), llvm::GlobalObject::setMetadata(), and llvm::GlobalObject::setSection().
Referenced by llvm::GlobalMergeFunc::emitFunctionMap(), and llvm::EmbedBitcodePass::run().
Value * llvm::emitAMDGPUPrintfCall | ( | IRBuilder<> & | Builder, |
ArrayRef< Value * > | Args, | ||
bool | isBuffered | ||
) |
Definition at line 426 of file AMDGPUEmitPrintf.cpp.
References llvm::NamedMDNode::addOperand(), appendString(), assert(), callBufferedPrintfArgPush(), callBufferedPrintfStart(), callPrintfBegin(), llvm::BranchInst::Create(), llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateConstInBoundsGEP1_32(), llvm::IRBuilderBase::CreateICmpNE(), llvm::IRBuilderBase::CreateNot(), llvm::IRBuilderBase::CreateOr(), llvm::IRBuilderBase::CreateSExt(), llvm::IRBuilderBase::CreateShl(), llvm::IRBuilderBase::CreateStore(), llvm::IRBuilderBase::CreateTrunc(), llvm::StringRef::empty(), End, llvm::MD5::final(), llvm::MDNode::get(), llvm::MDString::get(), llvm::ConstantPointerNull::get(), getConstantStringInfo(), llvm::IRBuilderBase::getContext(), llvm::IRBuilderBase::GetInsertBlock(), llvm::IRBuilderBase::getInt32(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt64(), llvm::IRBuilderBase::getInt8Ty(), llvm::IRBuilderBase::getIntN(), llvm::BasicBlock::getModule(), llvm::NamedMDNode::getNumOperands(), llvm::BasicBlock::getParent(), locateCStrings(), llvm::MD5::MD5Result::low(), processArg(), Ptr, llvm::IRBuilderBase::SetInsertPoint(), llvm::StringRef::str(), llvm::SparseBitVector< ElementSize >::test(), and llvm::MD5::update().
bool llvm::EmitAnyX86InstComments | ( | const MCInst * | MI, |
raw_ostream & | OS, | ||
const MCInstrInfo & | MCII | ||
) |
EmitAnyX86InstComments - This function decodes x86 instructions and prints newline terminated strings to the specified string if desired.
This information is shown in disassembly dumps when verbose assembly is enabled.
Definition at line 1048 of file X86InstComments.cpp.
References CASE_AVX512_INS_COMMON, CASE_MOVDUP, CASE_PMOVZX, CASE_SHUF, CASE_UNPCK, CASE_VPERM, CASE_VPERMILPI, CASE_VSHUF, DecodeBLENDMask(), DecodeEXTRQIMask(), DecodeInsertElementMask(), DecodeINSERTPSMask(), DecodeINSERTQIMask(), DecodeMOVDDUPMask(), DecodeMOVHLPSMask(), DecodeMOVLHPSMask(), DecodeMOVSHDUPMask(), DecodeMOVSLDUPMask(), DecodePALIGNRMask(), DecodePSHUFHWMask(), DecodePSHUFLWMask(), DecodePSHUFMask(), DecodePSLLDQMask(), DecodePSRLDQMask(), DecodePSWAPMask(), DecodeScalarMoveMask(), DecodeSHUFPMask(), DecodeSubVectorBroadcast(), DecodeUNPCKHMask(), DecodeUNPCKLMask(), DecodeVALIGNMask(), DecodeVPERM2X128Mask(), DecodeVPERMMask(), decodeVSHUF64x2FamilyMask(), DecodeZeroExtendMask(), DecodeZeroMoveLowMask(), llvm::SmallVectorBase< Size_T >::empty(), getRegName(), getRegOperandNumElts(), MI, OS, printFMAComments(), printFPCLASSComments(), printMasking(), printPTERNLOGComments(), llvm::SmallVectorBase< Size_T >::size(), SM_SentinelUndef, and SM_SentinelZero.
Referenced by llvm::X86ATTInstPrinter::printInst(), and llvm::X86IntelInstPrinter::printInst().
void llvm::emitAppleAccelTable | ( | AsmPrinter * | Asm, |
AccelTable< DataT > & | Contents, | ||
StringRef | Prefix, | ||
const MCSymbol * | SecBegin | ||
) |
Emit an Apple Accelerator Table consisting of entries in the specified AccelTable.
The DataT template parameter should be derived from AppleAccelTableData.
Definition at line 448 of file AccelTable.h.
References emitAppleAccelTableImpl().
Referenced by llvm::dwarf_linker::parallel::DwarfEmitterImpl::emitAppleNames(), llvm::dwarf_linker::classic::DwarfStreamer::emitAppleNames(), llvm::dwarf_linker::parallel::DwarfEmitterImpl::emitAppleNamespaces(), llvm::dwarf_linker::classic::DwarfStreamer::emitAppleNamespaces(), llvm::dwarf_linker::parallel::DwarfEmitterImpl::emitAppleObjc(), llvm::dwarf_linker::classic::DwarfStreamer::emitAppleObjc(), llvm::dwarf_linker::parallel::DwarfEmitterImpl::emitAppleTypes(), and llvm::dwarf_linker::classic::DwarfStreamer::emitAppleTypes().
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().
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 |
||
) |
emitARMRegPlusImmediate / emitT2RegPlusImmediate - Emits a series of instructions to materializea destreg = basereg + immediate in ARM / Thumb2 code.
Definition at line 2484 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), condCodeOp(), llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getSOImmValRotate(), llvm::RegState::Kill, MBB, MBBI, predOps(), llvm::MachineInstrBuilder::setMIFlags(), and TII.
Referenced by llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::ARMFrameLowering::emitEpilogue(), and emitRegPlusImmediate().
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 1669 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), and getSizeTTy().
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 1872 of file BuildLibCalls.cpp.
References B, emitBinaryFloatFnCallHelper(), getFloatFn(), llvm::Value::getType(), and Name.
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 1857 of file BuildLibCalls.cpp.
References appendTypeSuffix(), assert(), B, emitBinaryFloatFnCallHelper(), llvm::TargetLibraryInfo::getLibFunc(), and Name.
Referenced by optimizeDoubleFP().
Value * llvm::emitCalloc | ( | Value * | Num, |
Value * | Size, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo & | TLI, | ||
unsigned | AddrSpace | ||
) |
Emit a call to the calloc function.
Definition at line 2009 of file BuildLibCalls.cpp.
References B, F, llvm::FunctionCallee::getCallee(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), getSizeTTy(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), llvm::CallBase::setCallingConv(), Size, and llvm::Value::stripPointerCasts().
void llvm::EmitDetailedRecords | ( | const RecordKeeper & | RK, |
raw_ostream & | OS | ||
) |
Definition at line 191 of file DetailedRecordsBackend.cpp.
References OS.
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().
void llvm::emitDWARF5AccelTable | ( | AsmPrinter * | Asm, |
DWARF5AccelTable & | Contents, | ||
const DwarfDebug & | DD, | ||
ArrayRef< std::unique_ptr< DwarfCompileUnit > > | CUs | ||
) |
Definition at line 642 of file AccelTable.cpp.
References llvm::DICompileUnit::Apple, assert(), llvm::DIEInteger::BestForm(), llvm::DICompileUnit::Default, enumerate(), llvm::AccelTableBase::finalize(), llvm::DwarfUnit::getLabelBegin(), llvm::DWARF5AccelTable::getTypeUnitsSymbols(), llvm::SmallVectorBase< Size_T >::size(), and llvm::DwarfDebug::useSplitDwarf().
Referenced by llvm::dwarf_linker::classic::DwarfStreamer::emitDebugNames(), and llvm::dwarf_linker::parallel::DwarfEmitterImpl::emitDebugNames().
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 1925 of file BuildLibCalls.cpp.
References B, F, getIntTy(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), and llvm::CallBase::setCallingConv().
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 1945 of file BuildLibCalls.cpp.
References B, F, getIntTy(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), and llvm::CallBase::setCallingConv().
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 5892 of file AArch64InstrInfo.cpp.
References assert(), llvm::AArch64InstrInfo::decomposeStackOffsetForFrameOffsets(), DL, emitFrameOffsetAdj(), F, llvm::StackOffset::getFixed(), llvm::MachineFunction::getFunction(), llvm::MachineBasicBlock::getParent(), llvm::StackOffset::getScalable(), MBB, MBBI, Offset, and TII.
Referenced by convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::AArch64InstrInfo::probedStackAlloc(), and rewriteAArch64FrameIndex().
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 1965 of file BuildLibCalls.cpp.
References B, F, llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), getSizeTTy(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Ptr, llvm::CallBase::setCallingConv(), and Size.
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 llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateIntCast(), llvm::IRBuilderBase::CreateMul(), llvm::IRBuilderBase::CreateTypeSize(), llvm::IRBuilderBase::CreateVectorSplat(), DL, 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().
Value * llvm::emitHotColdNew | ( | Value * | Num, |
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI, | ||
LibFunc | NewFunc, | ||
uint8_t | HotCold | ||
) |
Emit a call to the hot/cold operator new function.
Definition at line 2079 of file BuildLibCalls.cpp.
References B, F, llvm::TargetLibraryInfo::getName(), llvm::Value::getType(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Name, and llvm::CallBase::setCallingConv().
Value * llvm::emitHotColdNewAligned | ( | Value * | Num, |
Value * | Align, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI, | ||
LibFunc | NewFunc, | ||
uint8_t | HotCold | ||
) |
Definition at line 2119 of file BuildLibCalls.cpp.
References B, F, llvm::TargetLibraryInfo::getName(), llvm::Value::getType(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Name, and llvm::CallBase::setCallingConv().
Value * llvm::emitHotColdNewAlignedNoThrow | ( | Value * | Num, |
Value * | Align, | ||
Value * | NoThrow, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI, | ||
LibFunc | NewFunc, | ||
uint8_t | HotCold | ||
) |
Definition at line 2139 of file BuildLibCalls.cpp.
References B, F, llvm::TargetLibraryInfo::getName(), llvm::Value::getType(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Name, and llvm::CallBase::setCallingConv().
Value * llvm::emitHotColdNewNoThrow | ( | Value * | Num, |
Value * | NoThrow, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI, | ||
LibFunc | NewFunc, | ||
uint8_t | HotCold | ||
) |
Definition at line 2099 of file BuildLibCalls.cpp.
References B, F, llvm::TargetLibraryInfo::getName(), llvm::Value::getType(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Name, and llvm::CallBase::setCallingConv().
Value * llvm::emitHotColdSizeReturningNew | ( | Value * | Num, |
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI, | ||
LibFunc | NewFunc, | ||
uint8_t | HotCold | ||
) |
Definition at line 2029 of file BuildLibCalls.cpp.
References B, F, llvm::StructType::get(), llvm::TargetLibraryInfo::getName(), llvm::Value::getType(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Name, and llvm::CallBase::setCallingConv().
Value * llvm::emitHotColdSizeReturningNewAligned | ( | Value * | Num, |
Value * | Align, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI, | ||
LibFunc | NewFunc, | ||
uint8_t | HotCold | ||
) |
Definition at line 2053 of file BuildLibCalls.cpp.
References B, F, llvm::StructType::get(), llvm::TargetLibraryInfo::getName(), llvm::Value::getType(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Name, and llvm::CallBase::setCallingConv().
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 1563 of file FunctionImport.cpp.
References createFileError(), errorCodeToError(), llvm::sys::fs::OF_Text, OutputFilename, and llvm::Error::success().
Referenced by llvm::lto::ThinBackendProc::emitFiles(), and llvm::ThinLTOCodeGenerator::emitImports().
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 491 of file InlineAdvisor.cpp.
References addLocationToRemarks(), Block, DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), PassName, and Remark.
Referenced by 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 509 of file InlineAdvisor.cpp.
References Block, emitInlinedInto(), llvm::InlineCost::isAlways(), PassName, and Remark.
void llvm::EmitJSON | ( | const RecordKeeper & | RK, |
raw_ostream & | OS | ||
) |
Definition at line 183 of file JSONBackend.cpp.
References OS.
void llvm::emitLinkerFlagsForGlobalCOFF | ( | raw_ostream & | OS, |
const GlobalValue * | GV, | ||
const Triple & | TT, | ||
Mangler & | Mangler | ||
) |
Definition at line 214 of file Mangler.cpp.
References canBeUnquotedInDirective(), llvm::raw_ostream::flush(), getArm64ECDemangledFunctionName(), llvm::GlobalValue::getDataLayout(), llvm::DataLayout::getGlobalPrefix(), llvm::Value::getName(), llvm::Mangler::getNameWithPrefix(), llvm::GlobalValue::getValueType(), llvm::GlobalValue::hasDLLExportStorageClass(), llvm::GlobalValue::hasHiddenVisibility(), llvm::Value::hasName(), llvm::GlobalValue::isDeclaration(), llvm::Type::isFunctionTy(), and OS.
Referenced by llvm::TargetLoweringObjectFileCOFF::emitLinkerDirectives().
void llvm::emitLinkerFlagsForUsedCOFF | ( | raw_ostream & | OS, |
const GlobalValue * | GV, | ||
const Triple & | T, | ||
Mangler & | M | ||
) |
Definition at line 280 of file Mangler.cpp.
References canBeUnquotedInDirective(), llvm::Value::getName(), llvm::Value::hasName(), and OS.
Referenced by llvm::TargetLoweringObjectFileCOFF::emitLinkerDirectives().
Value * llvm::emitMalloc | ( | Value * | Num, |
IRBuilderBase & | B, | ||
const DataLayout & | DL, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the malloc function.
Definition at line 1989 of file BuildLibCalls.cpp.
References B, F, llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), getSizeTTy(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), Malloc, and llvm::CallBase::setCallingConv().
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 1679 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), and getSizeTTy().
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 1639 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), getSizeTTy(), and Ptr.
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 1659 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), and getSizeTTy().
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 1608 of file BuildLibCalls.cpp.
References B, F, llvm::AttributeList::FunctionIndex, llvm::AttributeList::get(), llvm::FunctionCallee::getCallee(), getOrInsertLibFunc(), getSizeTTy(), isLibFuncEmittable(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
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 1630 of file BuildLibCalls.cpp.
References B, emitLibCall(), and getSizeTTy().
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 1649 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), getSizeTTy(), and Ptr.
Value * llvm::emitPutChar | ( | Value * | Char, |
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the putchar function. This assumes that Char is an 'int'.
Definition at line 1888 of file BuildLibCalls.cpp.
References B, F, llvm::FunctionCallee::getCallee(), getIntTy(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
Value * llvm::emitPutS | ( | Value * | Str, |
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the puts function. This assumes that Str is some pointer.
Definition at line 1907 of file BuildLibCalls.cpp.
References B, F, llvm::FunctionCallee::getCallee(), getIntTy(), llvm::TargetLibraryInfo::getName(), getOrInsertLibFunc(), inferNonMandatoryLibFuncAttrs(), isLibFuncEmittable(), llvm::CallBase::setCallingConv(), and llvm::Value::stripPointerCasts().
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 1689 of file BuildLibCalls.cpp.
References append_range(), B, emitLibCall(), getIntTy(), getSizeTTy(), and Size.
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, OS, printLine(), and llvm::StringRef::size().
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 1702 of file BuildLibCalls.cpp.
References append_range(), B, emitLibCall(), and getIntTy().
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 1585 of file BuildLibCalls.cpp.
References B, and emitLibCall().
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 1600 of file BuildLibCalls.cpp.
References B, emitLibCall(), and getSizeTTy().
Value * llvm::emitStrCat | ( | Value * | Dest, |
Value * | Src, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the strcat function.
Definition at line 1714 of file BuildLibCalls.cpp.
References B, and emitLibCall().
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 1559 of file BuildLibCalls.cpp.
References B, llvm::CallingConv::C, emitLibCall(), getIntTy(), and Ptr.
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 1578 of file BuildLibCalls.cpp.
References B, and emitLibCall().
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 1553 of file BuildLibCalls.cpp.
References B, emitLibCall(), and Ptr.
Value * llvm::emitStrLCat | ( | Value * | Dest, |
Value * | Src, | ||
Value * | Size, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the strlcat function.
Definition at line 1731 of file BuildLibCalls.cpp.
References B, emitLibCall(), getSizeTTy(), and Size.
Value * llvm::emitStrLCpy | ( | Value * | Dest, |
Value * | Src, | ||
Value * | Size, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the strlcpy function.
Definition at line 1722 of file BuildLibCalls.cpp.
References B, emitLibCall(), getSizeTTy(), and Size.
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 1546 of file BuildLibCalls.cpp.
References B, emitLibCall(), getSizeTTy(), and Ptr.
Value * llvm::emitStrNCat | ( | Value * | Dest, |
Value * | Src, | ||
Value * | Size, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the strncat function.
Definition at line 1740 of file BuildLibCalls.cpp.
References B, emitLibCall(), getSizeTTy(), and Size.
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 1567 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), and getSizeTTy().
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 1592 of file BuildLibCalls.cpp.
References B, emitLibCall(), and getSizeTTy().
void llvm::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 |
||
) |
Definition at line 311 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, assert(), BuildMI(), condCodeOp(), countl_zero(), llvm::ARM_AM::getT2SOImmVal(), llvm::RegState::Kill, MBB, MBBI, predOps(), llvm::MachineInstrBuilder::setMIFlags(), and TII.
Referenced by llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::ARMFrameLowering::emitEpilogue(), and emitRegPlusImmediate().
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().
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 1819 of file BuildLibCalls.cpp.
References B, emitUnaryFloatFnCallHelper(), getFloatFn(), and Name.
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 1807 of file BuildLibCalls.cpp.
References appendTypeSuffix(), B, emitUnaryFloatFnCallHelper(), llvm::TargetLibraryInfo::getLibFunc(), and Name.
Referenced by getSqrtCall(), optimizeDoubleFP(), and llvm::InstCombinerImpl::visitFDiv().
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 1749 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), getSizeTTy(), llvm::Value::getType(), and Size.
Value * llvm::emitVSPrintf | ( | Value * | Dest, |
Value * | Fmt, | ||
Value * | VAList, | ||
IRBuilderBase & | B, | ||
const TargetLibraryInfo * | TLI | ||
) |
Emit a call to the vsprintf function.
Definition at line 1760 of file BuildLibCalls.cpp.
References B, emitLibCall(), getIntTy(), and llvm::Value::getType().
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.") | |||
) |
cl::opt< bool > llvm::EnableFSDiscriminator | ( | "enable-fs-discriminator" | , |
cl::Hidden | , | ||
cl::desc("Enable adding flow sensitive discriminators") | |||
) |
cl::opt< bool > llvm::EnableKnowledgeRetention | ( | "enable-knowledge-retention" | , |
cl::init(false) | , | ||
cl::Hidden | , | ||
cl::desc("enable preservation of attributes throughout code transformation") | |||
) |
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.
cl::opt< bool > llvm::EnableMemProfContextDisambiguation | ( | "enable-memprof-context-disambiguation" | , |
cl::init(false) | , | ||
cl::Hidden | , | ||
cl::ZeroOrMore | , | ||
cl::desc("Enable MemProf context disambiguation") | |||
) |
void llvm::EnablePrettyStackTrace | ( | ) |
Enables dumping a "pretty" stack trace when the program crashes.
Definition at line 278 of file PrettyStackTrace.cpp.
Referenced by LLVMEnablePrettyStackTrace(), and llvm::PrettyStackTraceProgram::PrettyStackTraceProgram().
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.
Definition at line 286 of file PrettyStackTrace.cpp.
References llvm::sys::SetInfoSignalFunction().
Enable the collection and printing of statistics.
Definition at line 134 of file Statistic.cpp.
References Enabled, and PrintOnExit.
Referenced by llvm::lto::setupStatsFile().
Returns a representation of the alignment, the encoded value is positive by definition.
Definition at line 230 of file Alignment.h.
|
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::MCSymbol::setCommon(), llvm::ISD::ArgFlagsTy::setMemAlign(), and llvm::ISD::ArgFlagsTy::setOrigAlign().
std::string llvm::encodeBase64 | ( | InputBytes const & | Bytes | ) |
Definition at line 23 of file Base64.h.
Referenced by llvm::TargetLoweringObjectFileELF::emitModuleMetadata().
|
inline |
Utility function to encode a SLEB128 value to an output stream.
Returns the length in bytes of the encoded value.
Definition at line 23 of file LEB128.h.
References OS.
Referenced by appendScalableVectorExpression(), appendVGScaledOffsetExpr(), llvm::dwarf_linker::parallel::SectionDescriptor::applySLEB128(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::dwarf_linker::parallel::DwarfUnit::emitDwarfAbbrevEntry(), llvm::BufferByteStreamer::emitSLEB128(), llvm::MCStreamer::emitSLEB128IntValue(), llvm::MCDwarfLineAddr::encode(), llvm::ELF::encodeCrel(), llvm::DWARFYAML::Data::getAbbrevTableContentByIndex(), llvm::LoongArchAsmBackend::relaxDwarfLineAddr(), llvm::RISCVAsmBackend::relaxDwarfLineAddr(), writeDIE(), writeDWARFExpression(), writeLineTableOpcode(), llvm::gsym::FileWriter::writeSLEB(), and llvm::BinaryStreamWriter::writeSLEB128().
|
inline |
Utility function to encode a ULEB128 value to an output stream.
Returns the length in bytes of the encoded value.
Definition at line 80 of file LEB128.h.
References OS.
Referenced by appendScalableVectorExpression(), appendVGScaledOffsetExpr(), llvm::dwarf_linker::parallel::SectionDescriptor::applyULEB128(), llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), collectGlobalObjectNameStrings(), createCFAOffset(), 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::LoongArchAsmBackend::relaxDwarfLineAddr(), llvm::RISCVAsmBackend::relaxDwarfLineAddr(), llvm::coverage::CoverageMappingWriter::write(), llvm::coverage::CoverageFilenamesSectionWriter::write(), llvm::coverage::TestingFormatWriter::write(), llvm::sampleprof::SampleProfileWriterBinary::writeBody(), writeCounter(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeCSNameIdx(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeCSNameTableSection(), writeDIE(), writeExtendedOpcode(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeFuncMetadata(), llvm::sampleprof::SampleProfileWriterExtBinaryBase::writeFuncOffsetTable(), writeLimits(), writeLineTableOpcode(), 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().
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 End.
Referenced by llvm::TargetLoweringBase::initActions().
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.
References End.
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 End.
Referenced by llvm::MVT::all_valuetypes(), 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< LocationEnum >::locations(), llvm::MVT::scalable_vector_valuetypes(), and llvm::MVT::vector_valuetypes().
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.
References End.
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:
Output: Item 0 - A: 10 Item 1 - B: 11 Item 2 - C: 12 Item 3 - D: 13
or using an iterator:
Output: Item 0: 20 Item 1: 21 Item 2: 22 Item 3: 23
Definition at line 2448 of file STLExtras.h.
References all_equal(), assert(), First, and range_size().
Referenced by llvm::AliasSetTracker::add(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), addUsersInExitBlocks(), llvm::ConstraintSystem::addVariableRow(), llvm::MachObjectWriter::bindIndirectSymbols(), llvm::MCPseudoProbeDecoder::buildAddress2ProbeMap(), buildIntrinsicArgTypes(), buildUseMask(), llvm::SelectionDAG::canCreateUndefOrPoison(), llvm::RISCVCallLowering::canLowerReturn(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), clusterSortPtrAccesses(), combineX86ShufflesRecursively(), llvm::VPWidenIntrinsicRecipe::computeCost(), llvm::SelectionDAG::computeKnownBits(), ComputeLinearIndex(), convertToParamAS(), costAndCollectOperands(), llvm::object::MinidumpFile::create(), llvm::object::ELFFile< ELFT >::createFakeSections(), llvm::BasicBlock::createMarker(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), doesInTreeUserNeedToExtract(), llvm::sandboxir::Tracker::dump(), llvm::sandboxir::SeedBundle::dump(), llvm::DbgValueHistoryMap::dump(), llvm::sandboxir::dumpImpl(), llvm::MCPseudoProbeSections::emit(), emitDWARF5AccelTable(), emitTaskDependencies(), llvm::sandboxir::EraseFromParent::EraseFromParent(), llvm::Evaluator::EvaluateFunction(), llvm::VPIRInstruction::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenCallRecipe::execute(), llvm::SelectionDAG::expandMultipleResultFPLibCall(), expandToSwitch(), expandUser(), llvm::jitlink::finalizeBlockRelax(), findFuncPointers(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::gather(), gatherPossiblyVectorizableLoads(), llvm::DWARFYAML::Data::getAbbrevTableInfoByID(), llvm::TargetTransformInfoImplCRTPBase< T >::getInstructionCost(), llvm::AAResults::getModRefInfo(), getPerfectShuffleCost(), llvm::RISCVTTIImpl::getPointersChainCost(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::AArch64TTIImpl::getShuffleCost(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), isBlendOrUndef(), llvm::X86TargetLowering::isGuaranteedNotToBeUndefOrPoisonForTargetNode(), llvm::sandboxir::ShuffleMask::isIdentity(), llvm::slpvectorizer::BoUpSLP::isIdentityOrder(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), isReverseOrder(), isSimpleVIDSequence(), llvm::coverage::CoverageMapping::load(), lowerBuildVectorOfConstants(), lowerBuildVectorViaDominantValues(), LowerMUL(), llvm::RISCVTargetLowering::LowerOperation(), lowerShuffleAsDecomposedShuffleMerge(), moveFunctionAdaptingType(), llvm::SlotIndexes::packIndexes(), llvm::VPIRInstruction::print(), llvm::sandboxir::InstrMaps::registerVector(), llvm::jitlink::relaxBlock(), reorderOrder(), llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(), replaceWithCallToVeclib(), llvm::sandboxir::EraseFromParent::revert(), llvm::InnerLoopVectorizer::scalarizeInstruction(), llvm::sandboxir::PassManager< ParentPass, ContainedPass >::setPassPipeline(), sortPtrAccesses(), llvm::coro::AsyncABI::splitCoroutine(), llvm::coro::AnyRetconABI::splitCoroutine(), llvm::OpenMPIRBuilder::tileLoops(), transformScalarShuffleIndiciesToVector(), updateBranchWeights(), llvm::RISCVInstrInfo::verifyInstruction(), llvm::InstCombinerImpl::visitGEPOfGEP(), and llvm::yaml::yaml2minidump().
std::string llvm::enumToString | ( | T | Value, |
ArrayRef< EnumEntry< TEnum > > | EnumValues | ||
) |
Definition at line 93 of file ScopedPrinter.h.
bool llvm::equal | ( | L && | LRange, |
R && | RRange | ||
) |
Wrapper function around std::equal to detect if pair-wise elements between two ranges are the same.
Definition at line 2067 of file STLExtras.h.
References adl_begin(), and adl_end().
Referenced by areIdenticalUpToCommutativity(), canSinkInstructions(), llvm::RISCVTTIImpl::getShuffleCost(), LiveDebugValues::DbgValue::hasIdenticalValidLocOps(), matchSymmetricPhiNodesPair(), and LiveDebugValues::DbgValue::operator==().
bool llvm::equal | ( | L && | LRange, |
R && | RRange, | ||
BinaryPredicate | P | ||
) |
Definition at line 2073 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Wrapper function to remove a value from a container:
C.erase(remove(C.begin(), C.end(), V), C.end());
Definition at line 2107 of file STLExtras.h.
References llvm::CallingConv::C.
Referenced by llvm::logicalview::LVScope::addMissingElements(), combineDIExpressions(), llvm::MachineRegisterInfo::disableCalleeSavedRegister(), eliminateBlockCases(), findBuildAggregate(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::getChildren(), llvm::GraphDiff< NodePtr, InverseGraph >::getChildren(), llvm::IntervalMapImpl::LeafNode< KeyT, ValT, N, Traits >::insertFrom(), llvm::LPPassManager::markLoopAsDeleted(), llvm::SMSchedule::normalizeNonPipelinedInstructions(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::SelectionDAGISel::SelectCodeCommon(), llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::setStart(), llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::setStop(), llvm::IntervalMap< KeyT, ValT, N, Traits >::iterator::setValue(), llvm::HexagonBlockRanges::RangeList::subtract(), llvm::HexagonBlockRanges::RangeList::unionize(), llvm::AssumptionCache::unregisterAssumption(), and UnrollLoop().
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 2099 of file STLExtras.h.
References llvm::CallingConv::C, P, and remove_if().
Referenced by llvm::InstrProfWriter::addTemporalProfileTraces(), checkVectorTypesForPromotion(), 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(), getSignature(), hoistLoopToNewParent(), InlineFunction(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::invalidate(), llvm::JumpThreadingPass::processThreadableEdges(), rebuildLoopAfterUnswitch(), llvm::AttrBuilder::remove(), llvm::MDAttachments::remove_if(), llvm::objcopy::elf::GroupSection::removeSectionReferences(), llvm::objcopy::coff::Object::removeSections(), llvm::objcopy::wasm::Object::removeSections(), llvm::objcopy::macho::SymbolTable::removeSymbols(), llvm::objcopy::coff::Object::removeSymbols(), llvm::LiveRange::removeValNo(), llvm::LoopFullUnrollPass::run(), unique_unsorted(), updateCGAndAnalysisManagerForPass(), llvm::JumpThreadingPass::updateSSA(), and UpgradeOperandBundles().
void llvm::eraseInstr | ( | MachineInstr & | MI, |
MachineRegisterInfo & | MRI, | ||
LostDebugLocObserver * | LocObserver = nullptr |
||
) |
Definition at line 1678 of file Utils.cpp.
References eraseInstrs(), MI, and MRI.
Referenced by llvm::Legalizer::legalizeMachineFunction(), and verifyCFIntrinsic().
void llvm::eraseInstrs | ( | ArrayRef< MachineInstr * > | DeadInstrs, |
MachineRegisterInfo & | MRI, | ||
LostDebugLocObserver * | LocObserver = nullptr |
||
) |
Definition at line 1663 of file Utils.cpp.
References llvm::GISelWorkList< N >::empty(), isTriviallyDead(), MI, MRI, llvm::GISelWorkList< N >::pop_back_val(), and saveUsesAndErase().
Referenced by eraseInstr(), and llvm::Legalizer::legalizeMachineFunction().
|
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 1226 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::md5_contents(), llvm::raw_fd_stream::read(), llvm::orc::SharedMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::reserve(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), and llvm::raw_fd_ostream::seek().
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::sys::fs::TempFile::create(), llvm::memprof::YAMLMemProfReader::create(), llvm::memprof::RawMemProfReader::create(), llvm::object::OffloadBinary::create(), llvm::FileOutputBuffer::create(), llvm::orc::LocalIndirectStubsInfo< ORCABI >::create(), llvm::object::createBinary(), createFileError(), createInMemoryBuffer(), 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::jitlink::InProcessMemoryManager::IPInFlightAlloc::finalize(), 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(), libDriverMain(), loadBinaryFormat(), loadObj(), llvm::gsym::CallSiteInfoLoader::loadYAML(), localCache(), llvm::raw_fd_ostream::lock(), llvm::gsym::GsymReader::openFile(), llvm::orc::DumpObjects::operator()(), llvm::orc::InProcessMemoryMapper::release(), llvm::orc::SharedMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::PrintCrashIRInstrumentation::reportCrashIR(), llvm::orc::InProcessMemoryMapper::reserve(), llvm::orc::SharedMemoryMapper::reserve(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::gsym::GsymCreator::save(), llvm::orc::FDSimpleRemoteEPCTransport::sendMessage(), setupLLVMOptimizationRemarks(), setupMemoryBuffer(), setupMemoryBuffer(), llvm::lto::setupStatsFile(), llvm::OptPassGateInstrumentation::shouldRun(), streamFile(), and llvm::raw_fd_ostream::tryLockFor().
Convert an ErrorOr<T> to an Expected<T>.
Definition at line 1231 of file Error.h.
References errorCodeToError().
Referenced by llvm::MCPseudoProbeDecoder::buildGUID2FuncDescMap(), llvm::InstrProfCorrelator::get(), llvm::MemProfContextDisambiguation::MemProfContextDisambiguation(), and llvm::orc::ExecutorNativePlatform::operator()().
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 1099 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::isBitcodeForTarget(), and llvm::Legalizer::runOnMachineFunction().
std::error_code llvm::errorToErrorCode | ( | Error | Err | ) |
Helper for converting an ECError to a std::error_code.
This method requires that Err be Error() or an ECError, otherwise it will trigger a call to abort().
Definition at line 117 of file Error.cpp.
Referenced by expectedToErrorOr(), llvm::MemoryBuffer::getFileAsStream(), getFileAux(), getMemoryBufferForStream(), getOpenFileImpl(), getReadWriteFile(), llvm::object::ELFObjectFile< ELFT >::getRel(), llvm::object::ELFObjectFile< ELFT >::getRela(), llvm::object::ELFObjectFile< ELFT >::getRelSection(), libDriverMain(), localCache(), parseBitcodeFileImpl(), and llvm::object::ELFObjectFile< ELFT >::section_rel_end().
std::error_code llvm::errorToErrorCodeAndEmitErrors | ( | LLVMContext & | Ctx, |
Error | Err | ||
) |
Definition at line 1033 of file BitcodeReader.cpp.
References llvm::ErrorInfoBase::convertToErrorCode(), llvm::LLVMContext::emitError(), handleAllErrors(), and llvm::ErrorInfoBase::message().
Referenced by expectedToErrorOrAndEmitErrors().
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 907 of file raw_ostream.cpp.
References assert().
Referenced by addData(), llvm::memprof::CallStackTrie::addSingleAllocTypeAttribute(), appendFile(), ApplyFeatureFlag(), llvm::Interpreter::callExternalFunction(), llvm::LoongArchABI::checkABIStandardized(), CheckBitcodeOutputToConsole(), checkForCyclesHelper(), llvm::SelectionDAG::clearGraphAttrs(), llvm::MachineRegisterInfo::clearVirtRegs(), collectEscapedLocals(), llvm::Combiner::combineMachineInstrs(), llvm::GenericCycleInfo< ContextT >::compute(), computeImportForFunction(), llvm::TargetSchedModel::computeOperandLatency(), llvm::LoongArchABI::computeTargetABI(), llvm::RISCVABI::computeTargetABI(), llvm::SelectionDAG::copyExtraInfo(), llvm::AArch64InstrInfo::copyPhysReg(), cpuHelp(), llvm::EngineBuilder::create(), llvm::orc::SimpleRemoteEPCServer::Create(), createGraphFilename(), llvm::Hexagon_MC::createHexagonMCSubtargetInfo(), CreateInfoOutputFile(), dbgs(), defaultDiagHandler(), llvm::LLVMContext::diagnose(), DisplayGraph(), dlltoolDriverMain(), llvm::PhysicalRegisterUsageInfo::doFinalization(), doImportingForModuleForTest(), llvm::dwarf_linker::classic::CompileUnit::DIEInfo::dump(), llvm::dwarf_linker::parallel::CompileUnit::DIEInfo::dump(), llvm::APFixedPoint::dump(), llvm::LiveRangeUpdater::dump(), llvm::DWARFDie::dump(), llvm::MCAssembler::dump(), llvm::ELFRelocationEntry::dump(), llvm::MCFragment::dump(), llvm::MCSection::dump(), llvm::SMTSort::dump(), llvm::SMTExpr::dump(), llvm::SMTSolverStatistics::dump(), llvm::SMTSolver::dump(), llvm::RecTy::dump(), llvm::Init::dump(), llvm::RecordVal::dump(), llvm::Record::dump(), llvm::RecordKeeper::dump(), llvm::MachO::Symbol::dump(), llvm::SubMultiClassReference::dump(), llvm::ForeachLoop::dump(), llvm::MultiClass::dump(), llvm::ARMConstantPoolValue::dump(), llvm::XtensaConstantPoolValue::dump(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::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(), llvm::CodeViewContext::encodeInlineLineTable(), llvm::WithColor::error(), ExecGraphViewer(), llvm::cl::expandResponseFiles(), llvm::cl::ExpandResponseFiles(), exportDebugifyStats(), llvm::CodeExtractor::extractCodeRegion(), fail(), fatalOpenError(), ferrs(), llvm::OpenMPIRBuilder::finalize(), 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::ValueEnumerator::print(), llvm::detail::printBumpPtrAllocatorStats(), printGraphForFunction(), PrintLoadStoreResults(), llvm::SourceMgr::PrintMessage(), PrintModRefResults(), printNoMatch(), printPassMessage(), PrintPercent(), PrintRecyclerStats(), PrintResults(), llvm::parallel::PerThreadAllocator< AllocatorTy >::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::ThinLTOCodeGenerator::run(), llvm::GenericCycleInfoCompute< ContextT >::run(), llvm::PAEvalPass::run(), llvm::HelloWorldPass::run(), llvm::MachineVerifierPass::run(), llvm::ForceFunctionAttrsPass::run(), llvm::MemProfUsePass::run(), runFuzzerOnInputs(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::AssignmentTrackingAnalysis::runOnFunction(), llvm::RAGreedy::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::DOTGraphTraitsModulePrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), 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::PHITransAddr::verify(), llvm::LegalizerInfo::verify(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::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::SelectionDAG::viewGraph(), llvm::ScheduleDAG::viewGraph(), llvm::DominatorTree::viewGraph(), llvm::ScheduleDAGMI::viewGraph(), llvm::SelectionDAGBuilder::visit(), llvm::Interpreter::visitInstruction(), llvm::cgdata::warn(), llvm::WithColor::warning(), warnToStderr(), writeCFGToDotFile(), writeDDGToDotFile(), WriteDOTGraphToFile(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), WriteGraph(), writeJSON(), writeMCFGToDotFile(), llvm::AAEvaluator::~AAEvaluator(), and llvm::orc::EPCGenericRTDyldMemoryManager::~EPCGenericRTDyldMemoryManager().
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) | |||
) |
std::optional< UsedNZCV > llvm::examineCFlagsUse | ( | MachineInstr & | MI, |
MachineInstr & | CmpInstr, | ||
const TargetRegisterInfo & | TRI, | ||
SmallVectorImpl< MachineInstr * > * | CCUseInstrs = nullptr |
||
) |
CmpInstr
in its MachineBB if NZCV flags are not alive in successors of the same CmpInstr
and MI
parent. Collect instructions using that flags in CCUseInstrs
if provided.
Definition at line 1741 of file AArch64InstrInfo.cpp.
References areCFlagsAliveInSuccessors(), CC, 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().
bool llvm::execMayBeModifiedBeforeAnyUse | ( | const MachineRegisterInfo & | MRI, |
Register | VReg, | ||
const MachineInstr & | DefMI | ||
) |
bool llvm::execMayBeModifiedBeforeUse | ( | const MachineRegisterInfo & | MRI, |
Register | VReg, | ||
const MachineInstr & | DefMI, | ||
const MachineInstr & | UseMI | ||
) |
void llvm::expandAtomicMemCpyAsLoop | ( | AtomicMemCpyInst * | AtomicMemCpy, |
const TargetTransformInfo & | TTI, | ||
ScalarEvolution * | SE | ||
) |
Expand AtomicMemCpy
as a loop. AtomicMemCpy
is not deleted.
Definition at line 982 of file LowerMemIntrinsics.cpp.
References createMemCpyLoopKnownSize(), createMemCpyLoopUnknownSize(), llvm::MemIntrinsicBase< Derived >::getDestAlign(), llvm::AtomicMemIntrinsic::getElementSizeInBytes(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::MemTransferBase< BaseCL >::getSourceAlign(), llvm::Instruction::isVolatile(), and llvm::MaybeAlign::valueOrOne().
bool llvm::expandAtomicRMWToCmpXchg | ( | AtomicRMWInst * | AI, |
CreateCmpXchgInstFun | CreateCmpXchg | ||
) |
Expand an atomic RMW instruction into a loop utilizing cmpxchg.
You'll want to make sure your target machine likes cmpxchg instructions in the first place and that there isn't another, better, transformation available (for example AArch32/AArch64 have linked loads).
This is useful in passes which can't rewrite the more exotic RMW instructions directly into a platform specific intrinsics (because, say, those intrinsics don't exist). If such a pass is able to expand cmpxchg instructions directly however, then, with this function, it could avoid two extra module passes (avoiding passes by -atomic-expand
and itself). A specific example would be PNaCl's RewriteAtomics
pass.
Given: atomicrmw some_op iN* addr, iN incr ordering
The standard expansion we produce is: [...] init_loaded = load atomic iN* addr br label loop loop: loaded = phi iN [ init_loaded, entry ], [ new_loaded, loop ] new = some_op iN loaded, incr ; This is what -atomic-expand will produce using this function on i686 targets: pair = cmpxchg iN* addr, iN loaded, iN new_val new_loaded = extractvalue { iN, i1 } pair, 0 success = extractvalue { iN, i1 } pair, 1 ; End callback produced IR br i1 success, label atomicrmw.end, label loop atomicrmw.end: [...]
Returns true if the containing function was modified.
Definition at line 1684 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().
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(), llvm::Instruction::eraseFromParent(), generateSignedDivisionCode(), generateUnsignedDivisionCode(), llvm::IRBuilderBase::GetInsertPoint(), 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().
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(), llvm::IRBuilderBase::CreateSDiv(), llvm::IRBuilderBase::CreateSExt(), llvm::IRBuilderBase::CreateTrunc(), llvm::IRBuilderBase::CreateUDiv(), llvm::IRBuilderBase::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
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(), llvm::IRBuilderBase::CreateSDiv(), llvm::IRBuilderBase::CreateSExt(), llvm::IRBuilderBase::CreateTrunc(), llvm::IRBuilderBase::CreateUDiv(), llvm::IRBuilderBase::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandDivision(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
void llvm::expandMemCpyAsLoop | ( | MemCpyInst * | MemCpy, |
const TargetTransformInfo & | TTI, | ||
ScalarEvolution * | SE = nullptr |
||
) |
Expand MemCpy
as a loop. MemCpy
is not deleted.
Definition at line 877 of file LowerMemIntrinsics.cpp.
References canOverlap(), createMemCpyLoopKnownSize(), createMemCpyLoopUnknownSize(), llvm::MemIntrinsicBase< Derived >::getDestAlign(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::MemTransferBase< BaseCL >::getSourceAlign(), llvm::MemIntrinsic::isVolatile(), and llvm::MaybeAlign::valueOrOne().
bool llvm::expandMemMoveAsLoop | ( | MemMoveInst * | MemMove, |
const TargetTransformInfo & | TTI | ||
) |
Expand MemMove
as a loop.
MemMove
is not deleted. Returns true if the memmove was lowered.
Definition at line 908 of file LowerMemIntrinsics.cpp.
References llvm::TargetTransformInfo::addrspacesMayAlias(), createMemCpyLoopKnownSize(), createMemCpyLoopUnknownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), dbgs(), llvm::MemIntrinsicBase< Derived >::getDestAlign(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::Type::getPointerAddressSpace(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemTransferBase< BaseCL >::getRawSource(), llvm::MemTransferBase< BaseCL >::getSourceAlign(), llvm::Value::getType(), llvm::TargetTransformInfo::isValidAddrSpaceCast(), llvm::MemIntrinsic::isVolatile(), LLVM_DEBUG, and llvm::MaybeAlign::valueOrOne().
void llvm::expandMemSetAsLoop | ( | MemSetInst * | MemSet | ) |
Expand MemSet
as a loop. MemSet
is not deleted.
Definition at line 964 of file LowerMemIntrinsics.cpp.
References createMemSetLoop(), llvm::MemIntrinsicBase< Derived >::getDestAlign(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemSetBase< BaseCL >::getValue(), llvm::MemIntrinsic::isVolatile(), and llvm::MaybeAlign::valueOrOne().
Referenced by lowerIntrinsicToFunction().
void llvm::expandMemSetPatternAsLoop | ( | MemSetPatternInst * | MemSet | ) |
Expand MemSetPattern
as a loop. MemSet
is not deleted.
Definition at line 973 of file LowerMemIntrinsics.cpp.
References createMemSetLoop(), llvm::MemIntrinsicBase< Derived >::getDestAlign(), llvm::MemIntrinsicBase< Derived >::getLength(), llvm::MemIntrinsicBase< Derived >::getRawDest(), llvm::MemSetBase< BaseCL >::getValue(), llvm::MemSetPatternIntrinsic::isVolatile(), and llvm::MaybeAlign::valueOrOne().
ARM::PredBlockMask llvm::expandPredBlockMask | ( | ARM::PredBlockMask | BlockMask, |
ARMVCC::VPTCodes | Kind | ||
) |
Definition at line 16 of file ARMBaseInfo.cpp.
References assert(), countr_zero(), llvm_unreachable, llvm::ARMVCC::None, and llvm::ARMVCC::Then.
Referenced by CreateVPTBlock(), and recomputeVPTBlockMask().
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(), llvm::Instruction::eraseFromParent(), expandDivision(), generateSignedRemainderCode(), generateUnsignedRemainderCode(), llvm::IRBuilderBase::GetInsertPoint(), 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().
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(), llvm::IRBuilderBase::CreateSExt(), llvm::IRBuilderBase::CreateSRem(), llvm::IRBuilderBase::CreateTrunc(), llvm::IRBuilderBase::CreateURem(), llvm::IRBuilderBase::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
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(), llvm::IRBuilderBase::CreateSExt(), llvm::IRBuilderBase::CreateSRem(), llvm::IRBuilderBase::CreateTrunc(), llvm::IRBuilderBase::CreateURem(), llvm::IRBuilderBase::CreateZExt(), llvm::User::dropAllReferences(), llvm::Instruction::eraseFromParent(), expandRemainder(), llvm::IRBuilderBase::getInt64Ty(), llvm::Type::getIntegerBitWidth(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::Type::isVectorTy(), and llvm::Value::replaceAllUsesWith().
|
static |
Definition at line 25 of file ReplaceConstant.cpp.
References llvm::CallingConv::C, llvm::InsertValueInst::Create(), llvm::InsertElementInst::Create(), enumerate(), llvm::PoisonValue::get(), llvm::Type::getInt32Ty(), Idx, llvm::Instruction::insertBefore(), llvm_unreachable, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by convertUsersOfConstantsToInstructions().
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 705 of file ExpandVectorPredication.cpp.
Convert an Expected<T> to an ErrorOr<T>.
Definition at line 1238 of file Error.h.
References E, and errorToErrorCode().
ErrorOr< T > llvm::expectedToErrorOrAndEmitErrors | ( | LLVMContext & | Ctx, |
Expected< T > | Val | ||
) |
Definition at line 66 of file BitcodeReader.h.
References errorToErrorCodeAndEmitErrors(), and llvm::Expected< T >::takeError().
Referenced by llvm::LTOModule::getProducerString(), llvm::LTOModule::isBitcodeForTarget(), LLVMGetBitcodeModuleInContext2(), LLVMParseBitcodeInContext2(), llvm::OpenMPIRBuilder::loadOffloadInfoMetadata(), and parseBitcodeFileImpl().
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 1080 of file Error.h.
References consumeError(), and E.
Definition at line 1087 of file Error.h.
References consumeError(), and E.
|
staticconstexpr |
Definition at line 380 of file APFloat.cpp.
References llvm::fltSemantics::maxExponent.
Referenced by llvm::detail::IEEEFloat::makeInf().
|
staticconstexpr |
Definition at line 385 of file APFloat.cpp.
References exponentZero(), llvm::fltSemantics::hasSignedRepr, llvm::fltSemantics::maxExponent, llvm::fltSemantics::nanEncoding, NanOnly, NegativeZero, and llvm::fltSemantics::nonFiniteBehavior.
|
staticconstexpr |
Definition at line 375 of file APFloat.cpp.
References llvm::fltSemantics::minExponent.
Referenced by exponentNaN(), and llvm::detail::IEEEFloat::makeZero().
void llvm::exportDebugifyStats | ( | StringRef | Path, |
const DebugifyStatsMap & | Map | ||
) |
Definition at line 958 of file Debugify.cpp.
Performs operation and.
Definition at line 156 of file FileCheck.cpp.
References llvm::APInt::sadd_ov().
Definition at line 171 of file FileCheck.cpp.
References llvm::APInt::isZero(), and llvm::APInt::sdiv_ov().
Definition at line 180 of file FileCheck.cpp.
References llvm::APInt::slt().
Referenced by exprMin().
Definition at line 186 of file FileCheck.cpp.
References cantFail(), and exprMax().
Definition at line 166 of file FileCheck.cpp.
References llvm::APInt::smul_ov().
Definition at line 161 of file FileCheck.cpp.
References llvm::APInt::ssub_ov().
Definition at line 726 of file RuntimeDyldELF.cpp.
Referenced by combineX86ShufflesRecursively(), and llvm::GISelKnownBits::computeKnownBitsImpl().
bool llvm::extractBranchWeights | ( | const Instruction & | I, |
SmallVectorImpl< uint32_t > & | Weights | ||
) |
Extract branch weights attatched to an Instruction.
I | The Instruction to extract weights from. | |
[out] | Weights | An output vector to fill with branch weights |
Definition at line 178 of file ProfDataUtils.cpp.
References extractBranchWeights(), and I.
bool llvm::extractBranchWeights | ( | const Instruction & | I, |
uint64_t & | TrueVal, | ||
uint64_t & | FalseVal | ||
) |
Extract branch weights from a conditional branch or select Instruction.
I | The instruction to extract branch weights from. | |
[out] | TrueVal | will contain the branch weight for the True branch |
[out] | FalseVal | will contain the branch weight for the False branch |
Definition at line 184 of file ProfDataUtils.cpp.
References assert(), extractBranchWeights(), I, and llvm::SmallVectorBase< Size_T >::size().
bool llvm::extractBranchWeights | ( | const MDNode * | ProfileData, |
SmallVectorImpl< uint32_t > & | Weights | ||
) |
Extract branch weights from MD_prof metadata.
ProfileData | A pointer to an MDNode. | |
[out] | Weights | An output vector to fill with branch weights |
Definition at line 170 of file ProfDataUtils.cpp.
References isBranchWeightMD().
Referenced by llvm::misexpect::checkBackendInstrumentation(), llvm::misexpect::checkFrontendInstrumentation(), ConstantFoldTerminator(), extractBranchProbabilities(), extractBranchWeights(), extractBranchWeights(), extractPredSuccWeights(), foldTwoEntryPHINode(), getEstimatedTripCount(), llvm::DOTGraphTraits< PGOUseFunc * >::getNodeLabel(), llvm::SwitchInstProfUpdateWrapper::init(), initBranchWeights(), isFormingBranchFromSelectProfitable(), llvm::PPCTTIImpl::isHardwareLoopProfitable(), isProfitableToSpeculate(), mergeNestedCondBranch(), shouldFoldCondBranchesToCommonDestination(), shouldTryInjectBasingOnMetadata(), SimplifyCondBranchToCondBranch(), simplifySwitchOfCmpIntrinsic(), llvm::JumpThreadingPass::unfoldSelectInstr(), and updatePredecessorProfileMetadata().
|
static |
Definition at line 26 of file X86ShuffleDecodeConstantPool.cpp.
References assert(), llvm::CallingConv::C, llvm::APInt::extractBits(), llvm::Type::getPrimitiveSizeInBits(), llvm::APInt::getZExtValue(), llvm::APInt::insertBits(), llvm::APInt::isAllOnes(), llvm::Type::isIntegerTy(), llvm::SmallVectorImpl< T >::resize(), llvm::APInt::setBit(), and llvm::APInt::setBits().
Referenced by DecodePSHUFBMask(), DecodeVPERMIL2PMask(), DecodeVPERMILPMask(), and DecodeVPPERMMask().
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 160 of file ProfDataUtils.cpp.
Referenced by updateBranchWeights().
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 165 of file ProfDataUtils.cpp.
Referenced by getBranchWeights().
void llvm::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 | ||
) |
Definition at line 961 of file MLRegAllocEvictAdvisor.cpp.
References A, assert(), B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), End, extractMBBFrequency(), llvm::SlotIndex::getNextIndex(), llvm::MLModelRunner::getTensor(), ModelMaxSupportedInstructionCount, and llvm::SmallVectorBase< Size_T >::size().
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 | ||
) |
Definition at line 1078 of file MLRegAllocEvictAdvisor.cpp.
References llvm::MLModelRunner::getTensor(), and ModelMaxSupportedMBBCount.
Referenced by extractInstructionFeatures().
bool llvm::extractParts | ( | Register | Reg, |
LLT | RegTy, | ||
LLT | MainTy, | ||
LLT & | LeftoverTy, | ||
SmallVectorImpl< Register > & | VRegs, | ||
SmallVectorImpl< Register > & | LeftoverVRegs, | ||
MachineIRBuilder & | MIRBuilder, | ||
MachineRegisterInfo & | MRI | ||
) |
Version which handles irregular splits.
Definition at line 509 of file Utils.cpp.
References assert(), llvm::MachineIRBuilder::buildExtract(), llvm::MachineIRBuilder::buildMergeLikeInstr(), llvm::MachineIRBuilder::buildUnmerge(), llvm::SmallVectorImpl< T >::clear(), extractParts(), extractVectorParts(), llvm::LLT::fixed_vector(), llvm::LLT::getElementType(), llvm::LLT::getNumElements(), llvm::MachineInstrBuilder::getReg(), llvm::LLT::getScalarSizeInBits(), llvm::LLT::getSizeInBits(), I, llvm::LLT::isValid(), llvm::LLT::isVector(), MRI, Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RegSize, llvm::LLT::scalar(), and llvm::SmallVectorBase< Size_T >::size().
void llvm::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).
The generic registers created are appended to Ops, starting at bit 0 of Reg.
Definition at line 500 of file Utils.cpp.
References llvm::MachineIRBuilder::buildUnmerge(), MRI, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by extractParts(), extractVectorParts(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorSeqReductions(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerTRUNC(), llvm::LegalizerHelper::narrowScalar(), llvm::LegalizerHelper::narrowScalarAddSub(), llvm::LegalizerHelper::narrowScalarBasic(), llvm::LegalizerHelper::narrowScalarExtract(), llvm::LegalizerHelper::narrowScalarInsert(), llvm::LegalizerHelper::narrowScalarMul(), llvm::LegalizerHelper::narrowScalarSelect(), and llvm::LegalizerHelper::reduceLoadStoreWidth().
std::optional< PseudoProbe > llvm::extractProbe | ( | const Instruction & | Inst | ) |
Definition at line 56 of file PseudoProbe.cpp.
References llvm::PseudoProbe::Attr, Block, llvm::PseudoProbe::Discriminator, extractProbeFromDiscriminator(), llvm::PseudoProbe::Factor, llvm::Instruction::getDebugLoc(), llvm::PseudoProbe::Id, II, PseudoProbeFullDistributionFactor, and llvm::PseudoProbe::Type.
Referenced by llvm::SampleProfileLoaderBaseImpl< FT >::getProbeWeight().
std::optional< PseudoProbe > llvm::extractProbe | ( | const MachineInstr & | MI | ) |
Definition at line 101 of file MIRSampleProfile.cpp.
References llvm::PseudoProbe::Attr, llvm::PseudoProbe::Discriminator, llvm::PseudoProbe::Factor, llvm::PseudoProbe::Id, MI, and llvm::PseudoProbe::Type.
std::optional< PseudoProbe > llvm::extractProbeFromDiscriminator | ( | const DILocation * | DIL | ) |
Definition at line 25 of file PseudoProbe.cpp.
References llvm::PseudoProbe::Attr, llvm::PseudoProbe::Discriminator, llvm::PseudoProbeDwarfDiscriminator::extractProbeAttributes(), llvm::PseudoProbeDwarfDiscriminator::extractProbeFactor(), llvm::PseudoProbeDwarfDiscriminator::extractProbeIndex(), llvm::PseudoProbeDwarfDiscriminator::extractProbeType(), llvm::PseudoProbe::Factor, llvm::PseudoProbeDwarfDiscriminator::FullDistributionFactor, llvm::PseudoProbe::Id, llvm::DILocation::isPseudoProbeDiscriminator(), and llvm::PseudoProbe::Type.
Referenced by extractProbe(), and extractProbeFromDiscriminator().
std::optional< PseudoProbe > llvm::extractProbeFromDiscriminator | ( | const Instruction & | Inst | ) |
Definition at line 47 of file PseudoProbe.cpp.
References assert(), extractProbeFromDiscriminator(), and llvm::Instruction::getDebugLoc().
bool llvm::extractProfTotalWeight | ( | const Instruction & | I, |
uint64_t & | TotalWeights | ||
) |
Retrieve the total of all weights from an instruction.
I | The instruction to extract the total weight from | |
[out] | TotalWeights | input variable to fill with total weights |
Definition at line 231 of file ProfDataUtils.cpp.
References extractProfTotalWeight(), and I.
Retrieve the total of all weights from MD_prof data.
ProfileData | The profile data to extract the total weight from | |
[out] | TotalWeights | input variable to fill with total weights |
Definition at line 204 of file ProfDataUtils.cpp.
References getBranchWeightOffset(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), Idx, and Offset.
Referenced by extractProfTotalWeight().
GlobalValue * llvm::ExtractTypeInfo | ( | Value * | V | ) |
ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
Definition at line 177 of file Analysis.cpp.
References assert(), llvm::GlobalVariable::getInitializer(), llvm::Value::getName(), and llvm::GlobalVariable::hasInitializer().
void llvm::extractVectorParts | ( | Register | Reg, |
unsigned | NumElts, | ||
SmallVectorImpl< Register > & | VRegs, | ||
MachineIRBuilder & | MIRBuilder, | ||
MachineRegisterInfo & | MRI | ||
) |
Version which handles irregular sub-vector splits.
Definition at line 603 of file Utils.cpp.
References assert(), llvm::MachineIRBuilder::buildMergeLikeInstr(), extractParts(), llvm::LLT::fixed_vector(), llvm::LLT::getElementType(), llvm::LLT::getNumElements(), llvm::MachineInstrBuilder::getReg(), llvm::LLT::isVector(), MRI, Offset, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by extractParts(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), and llvm::LegalizerHelper::fewerElementsVectorPhi().
Definition at line 151 of file GuardUtils.cpp.
References Check, isWidenableCondition(), and parseCondition().
testing::Matcher< const detail::ErrorHolder & > llvm::Failed | ( | ) |
Definition at line 198 of file Error.h.
Referenced by consumeFieldLayout(), llvm::OpenMPIRBuilder::emitKernelLaunch(), encodeCnt(), llvm::yaml::Scanner::failed(), llvm::SITargetLowering::getRegForInlineAsmConstraint(), parseRegisterNumber(), llvm::DAGTypeLegalizer::run(), llvm::yaml::Scanner::setError(), and llvm::PeelingModuloScheduleExpander::validateAgainstModuloScheduleExpander().
|
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::FailureOr< T >::FailureOr(), and llvm::ParseResult::operator bool().
testing::Matcher< const detail::ErrorHolder & > llvm::Failed | ( | M | Matcher | ) |
testing::Matcher< const detail::ErrorHolder & > llvm::FailedWithMessage | ( | M... | Matcher | ) |
testing::Matcher< const detail::ErrorHolder & > llvm::FailedWithMessageArray | ( | M | Matcher | ) |
|
inline |
Utility function to generate a LogicalResult.
If isFailure is true a failure
result is generated, otherwise a 'success' result is generated.
Definition at line 61 of file LogicalResult.h.
References llvm::LogicalResult::failure().
Referenced by llvm::FailureOr< T >::FailureOr().
bool llvm::FastCC_ARM_APCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
|
inlinestatic |
Definition at line 44 of file Error.cpp.
References llvm::sys::RunInterruptHandlers().
Referenced by PrintFatalError(), and PrintFatalNote().
std::tuple< Value *, FPClassTest, FPClassTest > llvm::fcmpImpliesClass | ( | CmpInst::Predicate | Pred, |
const Function & | F, | ||
Value * | LHS, | ||
const APFloat & | RHS, | ||
bool | LookThroughSrc = true |
||
) |
Definition at line 4872 of file ValueTracking.cpp.
References llvm::APFloat::classify(), exactClass(), F, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_ULT, fcmpImpliesClass(), fcNegInf, fcNegNormal, fcPosInf, fcPosNormal, fcSubnormal, fcZero, llvm::APFloat::isNegative(), llvm::APFloat::isSmallestNormalized(), llvm::CmpInst::isUnordered(), LHS, llvm::PatternMatch::m_FAbs(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
std::tuple< Value *, FPClassTest, FPClassTest > llvm::fcmpImpliesClass | ( | CmpInst::Predicate | Pred, |
const Function & | F, | ||
Value * | LHS, | ||
FPClassTest | RHS, | ||
bool | LookThroughSrc = true |
||
) |
Definition at line 4549 of file ValueTracking.cpp.
References assert(), exactClass(), F, fcAllFlags, fcFinite, fcInf, llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, fcNan, fcNegative, fcNegInf, fcNegNormal, fcNegSubnormal, fcNegZero, fcNone, fcNormal, fcPosInf, fcPositive, fcPosNormal, fcPosSubnormal, fcPosZero, fcSubnormal, fcZero, llvm::Value::getType(), inputDenormalIsIEEE(), inverse_fabs(), llvm::CmpInst::isOrdered(), llvm::CmpInst::isUnordered(), LHS, llvm_unreachable, llvm::PatternMatch::m_FAbs(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
std::tuple< Value *, FPClassTest, FPClassTest > llvm::fcmpImpliesClass | ( | CmpInst::Predicate | Pred, |
const Function & | F, | ||
Value * | LHS, | ||
Value * | RHS, | ||
bool | LookThroughSrc = true |
||
) |
Compute the possible floating-point classes that LHS
could be based on fcmp \Pred LHS
, RHS
.
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 4922 of file ValueTracking.cpp.
References F, fcAllFlags, fcmpImpliesClass(), LHS, llvm::PatternMatch::m_APFloatAllowPoison(), llvm::PatternMatch::match(), and RHS.
Referenced by computeKnownFPClass(), computeKnownFPClassFromCond(), fcmpImpliesClass(), and fcmpToClassTest().
std::pair< Value *, FPClassTest > llvm::fcmpToClassTest | ( | CmpInst::Predicate | Pred, |
const Function & | F, | ||
Value * | LHS, | ||
const APFloat * | ConstRHS, | ||
bool | LookThroughSrc = true |
||
) |
Definition at line 4531 of file ValueTracking.cpp.
References F, fcAllFlags, fcmpImpliesClass(), and LHS.
std::pair< Value *, FPClassTest > llvm::fcmpToClassTest | ( | CmpInst::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.
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 4519 of file ValueTracking.cpp.
References F, fcAllFlags, fcmpToClassTest(), LHS, llvm::PatternMatch::m_APFloatAllowPoison(), llvm::PatternMatch::match(), and RHS.
Referenced by fcmpToClassTest(), foldFCmpToFPClassTest(), matchIsFPClassLikeFCmp(), and simplifyFCmpInst().
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().
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().
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(), llvm::Attribute::getAttrKindFromName(), getValueFromBundleOpInfo(), Lookup(), and llvm::Attribute::None.
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, and make_filter_range().
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().
|
inlinestatic |
Filter the DbgRecord range to DbgVariableRecord types only and downcast.
Definition at line 547 of file DebugProgramInstruction.h.
References E, make_filter_range(), and map_range().
Referenced by buildOverlapMapAndRecordDeclares(), checkDebugInfoMetadata(), llvm::JumpThreadingPass::cloneInstructions(), collectDbgVariableIntrinsics(), collectDebugInfoMetadata(), DbgGatherSalvagableDVI(), DbgVariableRecordsRemoveRedundantDbgInstrsUsingForwardScan(), DbgVariableRecordsRemoveUndefDbgAssignsFromEntryBlock(), llvm::at::deleteAll(), deleteDeadLoop(), llvm::ValueEnumerator::incorporateFunction(), llvm::FunctionVarLocs::init(), insertDbgVariableRecordsForPHIs(), insertSpills(), LowerDbgDeclare(), orderModule(), performBranchToCommonDestFolding(), predictUseListOrder(), processDbgDeclares(), llvm::at::remapAssignID(), remapDebugVariable(), removeRedundantDbgLocsUsingBackwardScan(), removeRedundantDbgLocsUsingForwardScan(), removeUndefDbgLocsFromEntryBlock(), replaceFoldableUses(), llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(), and llvm::memtag::StackInfoBuilder::visit().
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 Function
s which are members of a comdat group and are believed to be dead.
After this routine finishes, the only remaining Function
s 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 318 of file ModuleUtils.cpp.
References all_of(), llvm::CallingConv::C, llvm::SmallPtrSetImpl< PtrType >::contains(), erase_if(), F, and llvm::SmallPtrSetImpl< PtrType >::insert().
Referenced by llvm::CallGraphUpdater::finalize().
MachineBasicBlock::instr_iterator llvm::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.
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 242 of file MachineInstrBundle.cpp.
References finalizeBundle(), llvm::MachineBasicBlock::instr_end(), and MBB.
void llvm::finalizeBundle | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::instr_iterator | FirstMI, | ||
MachineBasicBlock::instr_iterator | LastMI | ||
) |
finalizeBundle - Finalize a machine instruction bundle which includes a sequence of instructions starting from FirstMI to LastMI (exclusive).
This routine adds a BUNDLE instruction to represent the bundle, it adds IsInternalRead markers to MachineOperands which are defined inside the bundle, and it copies externally visible defs and uses to the BUNDLE instruction.
Definition at line 123 of file MachineInstrBundle.cpp.
References llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), llvm::SmallSet< T, N, C >::count(), llvm::SmallSet< T, N, C >::erase(), llvm::MachineInstr::FrameDestroy, llvm::MachineInstr::FrameSetup, getDeadRegState(), getDebugLoc(), getDefRegState(), getImplRegState(), llvm::TargetSubtargetInfo::getInstrInfo(), getKillRegState(), llvm::MachineBasicBlock::getParent(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), getUndefRegState(), llvm::SmallSet< T, N, C >::insert(), isDead(), isUndef(), MBB, llvm::MIBundleBuilder::prepend(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MachineInstrBuilder::setMIFlag(), SubReg, TII, and TRI.
Referenced by llvm::SITargetLowering::bundleInstWithWaitcnt(), llvm::SIInstrInfo::expandPostRAPseudo(), finalizeBundle(), and finalizeBundles().
bool llvm::finalizeBundles | ( | MachineFunction & | MF | ) |
finalizeBundles - Finalize instruction bundles in the specified MachineFunction.
Return true if any bundles are finalized.
Definition at line 254 of file MachineInstrBundle.cpp.
References assert(), finalizeBundle(), llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), and MBB.
Referenced by INITIALIZE_PASS().
Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.
Definition at line 1759 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), llvm::StringMap< ValueTy, AllocatorTy >::at(), calcPredicateUsingInteger(), llvm::LoopInfoBase< BlockT, LoopT >::changeTopLevelLoop(), llvm::CtxProfAnalysis::collectIndirectCallPromotionList(), llvm::StringMap< ValueTy, AllocatorTy >::contains(), llvm::StringRef::contains(), CreateGCRelocates(), def_chain(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::deinitialize(), deleteDeadLoop(), llvm::orc::ExecutionSession::deregisterResourceManager(), llvm::StringRef::detectEOL(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::DWARFUnit::determineStringOffsetsTableContribution(), dropRegDescribedVar(), EmitCamlGlobal(), llvm::StringMap< ValueTy, AllocatorTy >::erase(), llvm::PriorityQueue< T, Sequence, Compare >::erase_one(), llvm::DominatorTreeBase< NodeT, IsPostDom >::eraseNode(), llvm::mca::InstructionTables::execute(), llvm::ReadyQueue::find(), llvm::rdf::IndexedSet< T, N >::find(), llvm::sys::DynamicLibrary::HandleSet::Find(), llvm::StringRef::find_first_of(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), llvm::DWARFUnit::getCompilationDir(), llvm::MachineBranchProbabilityInfo::getEdgeProbability(), getFirstIndexOf(), getOrCreateFrameHelper(), llvm::WindowScheduler::getOriStage(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::rdf::IndexedSet< T, N >::insert(), llvm::VPBlockUtils::insertOnEdge(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), llvm::StringMap< ValueTy, AllocatorTy >::lookup(), lowerV8I16GeneralSingleInputShuffle(), mergeConditionalStoreToAddress(), rebuildLoopAfterUnswitch(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::StatepointLoweringState::relocCallVisited(), llvm::SetVector< T, Vector, Set, N >::remove(), llvm::LatencyPriorityQueue::remove(), llvm::ResourcePriorityQueue::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::VPValue::removeUser(), llvm::DbgVariableRecord::replaceVariableLocationOp(), llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), reservePreviousStackSlotForValue(), salvageDebugInfoForDbgValues(), llvm::DomTreeNodeBase< NodeT >::setIDom(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), llvm::StringRef::split(), splitMBB(), llvm::MachineBasicBlock::splitSuccessor(), llvm::MCDwarfLineTableHeader::tryGetFile(), llvm::orc::RTDyldObjectLinkingLayer::unregisterJITEventListener(), llvm::MCJIT::UnregisterJITEventListener(), and verifySubExpr().
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 1766 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::VPlanTransforms::addActiveLaneMask(), addCalleeSavedRegs(), addRegLanes(), allSameBlock(), llvm::ARMFrameLowering::assignCalleeSavedSpillSlots(), llvm::RISCVFrameLowering::assignCalleeSavedSpillSlots(), llvm::ELFAttrs::attrTypeAsString(), llvm::ELFAttrs::attrTypeFromString(), cacheDIVar(), llvm::SIMachineFunctionInfo::checkIndexInPrologEpilogSGPRSpills(), collectAllHeaderMasks(), collectVirtualRegUses(), ConvertCostTableLookup(), convertToLocalCopy(), CostTableLookup(), llvm::mca::EntryStage::cycleEnd(), llvm::AMDGPUDisassembler::decodeVersionImm(), llvm::RegPressureTracker::discoverLiveInOrOut(), llvm::StringRef::drop_until(), llvm::ArrayRef< T >::drop_until(), llvm::MutableArrayRef< T >::drop_until(), llvm::VPlan::duplicate(), llvm::PMDataManager::emitInstrCountChangedRemark(), llvm::TimeTraceProfiler::end(), expandPseudoVFMK(), llvm::StringRef::find_if_not(), llvm::SwitchInst::findCaseValue(), llvm::sandboxir::SwitchInst::findCaseValue(), llvm::DGNode< NodeType, EdgeType >::findEdgeTo(), llvm::DirectedGraph< NodeType, EdgeType >::findNode(), llvm::objcopy::elf::Object::findSection(), findSection(), llvm::ModuleSummaryIndex::findSummaryInModule(), fixReductionScalarResumeWhenVectorizingEpilog(), gatherPossiblyVectorizableLoads(), getAllocationDataForFunction(), llvm::X86::getCPUDispatchMangling(), llvm::X86::getFeaturesForCPU(), getFirstDefinitionForLinker(), llvm::MachineBasicBlock::getFirstTerminatorForward(), getFreeFunctionDataForFunction(), getGEPCosts(), llvm::AVRMCExpr::getKindByName(), llvm::CacheCost::getLoopCost(), llvm::sandboxir::VecUtils::getLowest(), getMaxPushPopReg(), llvm::AVRMCExpr::getName(), llvm::mca::InstructionBase::getOperand(), llvm::SIMachineFunctionInfo::getPrologEpilogSGPRSaveRestoreInfo(), getPushOrLibCallsSavedInfo(), getRegLanes(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getSameOpcode(), llvm::SIMachineFunctionInfo::getScratchSGPRCopyDstReg(), getSHUFPDImm(), getSplatIndex(), getTargetIndexName(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), getV4X86ShuffleImm(), llvm::objcopy::coff::handleArgs(), llvm::SIMachineFunctionInfo::hasPrologEpilogSGPRSpillEntry(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::X86FrameLowering::inlineStackProbe(), llvm::xray::Profile::internPath(), isEXTMask(), isFixedVectorShuffle(), llvm::MachineBasicBlock::isLiveIn(), llvm::CombinerHelper::isPredecessor(), isWideDUPMask(), LLVMGetTargetFromName(), loadObj(), llvm::TargetRegistry::lookupTarget(), lowerShuffleAsElementInsertion(), lowerShuffleWithSHUFPS(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), llvm::PatternMatch::m_SplatOrPoisonMask::match(), llvm::rdf::operator<<(), llvm::MCSectionMachO::ParseSectionSpecifier(), passingValueIsAlwaysUndefined(), PerformExtractEltToVMOVRRD(), placeSources(), 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(), rescheduleCanonically(), runImpl(), scavengeVReg(), llvm::EngineBuilder::selectTarget(), setRegZero(), llvm::ELFYAML::shouldAllocateFileSpace(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::StringRef::take_until(), llvm::ArrayRef< T >::take_until(), llvm::MutableArrayRef< T >::take_until(), llvm::slpvectorizer::BoUpSLP::transformNodes(), 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().
auto llvm::find_if_not | ( | R && | Range, |
UnaryPredicate | P | ||
) |
Definition at line 1771 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::StringRef::drop_while(), llvm::ArrayRef< T >::drop_while(), llvm::MutableArrayRef< T >::drop_while(), llvm::MemorySSA::insertIntoListsForBlock(), llvm::StringRef::take_while(), llvm::ArrayRef< T >::take_while(), llvm::MutableArrayRef< T >::take_while(), and turnVectorIntoSplatVector().
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 1795 of file STLExtras.h.
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 1819 of file STLExtras.h.
|
static |
Definition at line 140 of file NVPTXUtilities.cpp.
References cacheAnnotationFromMD(), and llvm::GlobalValue::getParent().
Referenced by argHasNVVMAnnotation(), and getAlign().
|
inline |
Definition at line 782 of file ValueTracking.h.
References findAllocaForValue().
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 6963 of file ValueTracking.cpp.
References assert(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase< Size_T >::empty(), GEP, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by canMoveAboveCall(), findAllocaForValue(), findMatchingAlloca(), and llvm::memtag::StackInfoBuilder::visit().
void llvm::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).
Definition at line 276 of file Delinearization.cpp.
References array_pod_sort(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), containsParameters(), dbgs(), llvm::SCEVDivision::divide(), llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), findArrayDimensionsRec(), llvm::SCEV::isZero(), LHS, LLVM_DEBUG, numberOfTerms(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), removeConstantFactors(), RHS, llvm::SmallVectorBase< Size_T >::size(), sort(), and unique().
Referenced by delinearize().
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.)
Load | The load we want to replace. | |
ScanBB | The basic block to scan. | |
[in,out] | ScanFrom | The location to start scanning from. When this function returns, it points at the last instruction scanned. |
MaxInstsToScan | The maximum number of instructions to scan. If this is zero, the whole block will be scanned. | |
AA | Optional pointer to alias analysis, to make the scan more precise. | |
[out] | IsLoadCSE | Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store. |
Definition at line 493 of file Loads.cpp.
References findAvailablePtrLoadStore(), and llvm::MemoryLocation::get().
Referenced by llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), tryPromoteCall(), and llvm::InstCombinerImpl::visitLoadInst().
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 706 of file Loads.cpp.
References Available, DL, llvm::MemoryLocation::get(), getAvailableLoadStore(), llvm::BatchAAResults::getModRefInfo(), isModSet(), make_range(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::BasicBlock::rend().
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.
Loc | The location we want the load and store to originate from. | |
AccessTy | The access type of the pointer. | |
AtLeastAtomic | Are 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. | |
ScanBB | The basic block to scan. | |
[in,out] | ScanFrom | The location to start scanning from. When this function returns, it points at the last instruction scanned. |
MaxInstsToScan | The maximum number of instructions to scan. If this is zero, the whole block will be scanned. | |
AA | Optional pointer to alias analysis, to make the scan more precise. | |
[out] | IsLoadCSE | Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store. |
Definition at line 622 of file Loads.cpp.
References areNonOverlapSameBaseLoadAndStore(), Available, llvm::BasicBlock::begin(), DL, getAvailableLoadStore(), llvm::BasicBlock::getDataLayout(), llvm::BatchAAResults::getModRefInfo(), llvm::Instruction::isDebugOrPseudoInst(), isModSet(), llvm::Instruction::mayWriteToMemory(), llvm::MemoryLocation::Ptr, and llvm::Value::stripPointerCasts().
Referenced by FindAvailableLoadedValue(), and llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().
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 5619 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().
TinyPtrVector< DbgDeclareInst * > llvm::findDbgDeclares | ( | Value * | V | ) |
Finds dbg.declare intrinsics declaring local variables as living in the memory that 'V' points to.
Definition at line 47 of file DebugInfo.cpp.
References llvm::MetadataAsValue::getIfExists(), llvm::LocalAsMetadata::getIfExists(), and llvm::TinyPtrVector< EltTy >::push_back().
Referenced by cacheDIVar(), insertSpills(), and replaceDbgDeclare().
void llvm::findDbgUsers | ( | SmallVectorImpl< DbgVariableIntrinsic * > & | DbgInsts, |
Value * | V, | ||
SmallVectorImpl< DbgVariableRecord * > * | DbgVariableRecords = nullptr |
||
) |
Finds the debug info intrinsics describing a value.
Definition at line 162 of file DebugInfo.cpp.
References findDbgIntrinsics().
Referenced by dropDebugUsers(), eraseDebugIntrinsicsWithNonLocalRefs(), insertSpills(), replaceDbgUsesWithUndef(), rewriteDebugUsers(), salvageDebugInfo(), llvm::InstCombinerImpl::tryToSinkInstruction(), and llvm::InstCombinerImpl::visitAllocSite().
void llvm::findDbgValues | ( | SmallVectorImpl< DbgValueInst * > & | DbgValues, |
Value * | V, | ||
SmallVectorImpl< DbgVariableRecord * > * | DbgVariableRecords = nullptr |
||
) |
Finds the llvm.dbg.value intrinsics describing a value.
Definition at line 155 of file DebugInfo.cpp.
References findDbgIntrinsics().
Referenced by llvm::coro::collectSpillsFromDbgInfo(), formLCSSAForInstructionsImpl(), PhiHasDebugValue(), replaceDbgValueForAlloca(), RewriteUsesOfClonedInstructions(), llvm::SSAUpdater::UpdateDebugValues(), and llvm::JumpThreadingPass::updateSSA().
SmallVector< Instruction *, 8 > llvm::findDefsUsedOutsideOfLoop | ( | Loop * | L | ) |
Returns the instructions that use values defined in the loop.
Definition at line 123 of file LoopUtils.cpp.
References any_of(), Block, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Users.
Referenced by canTailPredicateLoop(), and llvm::LoopVersioning::versionLoop().
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 106 of file TypeMetadataUtils.cpp.
References assert(), findCallsAtConstantOffset(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Value::uses().
Referenced by addIntrinsicToSummary().
void llvm::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.
Definition at line 84 of file TypeMetadataUtils.cpp.
References assert(), llvm::SmallVectorBase< Size_T >::empty(), findLoadCallsAtConstantOffset(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getIntrinsicID(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::stripPointerCasts(), and llvm::Value::uses().
Referenced by addIntrinsicToSummary(), and computeVirtualCallSiteTypeInfoMap().
TinyPtrVector< DbgVariableRecord * > llvm::findDVRDeclares | ( | Value * | V | ) |
As above, for DVRDeclares.
Definition at line 66 of file DebugInfo.cpp.
References llvm::LocalAsMetadata::getIfExists(), and llvm::TinyPtrVector< EltTy >::push_back().
Referenced by cacheDIVar(), insertSpills(), and replaceDbgDeclare().
TinyPtrVector< DbgVariableRecord * > llvm::findDVRValues | ( | Value * | V | ) |
As above, for DVRValues.
Definition at line 83 of file DebugInfo.cpp.
References llvm::LocalAsMetadata::getIfExists(), and llvm::TinyPtrVector< EltTy >::push_back().
Instruction * llvm::FindEarliestCapture | ( | const Value * | V, |
Function & | F, | ||
bool | ReturnCaptures, | ||
bool | StoreCaptures, | ||
const DominatorTree & | DT, | ||
unsigned | MaxUsesToExplore = 0 |
||
) |
Definition at line 261 of file CaptureTracking.cpp.
References assert(), F, and PointerMayBeCaptured().
Referenced by llvm::EarliestEscapeAnalysis::isNotCapturedBefore().
int llvm::findFirstVPTPredOperandIdx | ( | const MachineInstr & | MI | ) |
Definition at line 796 of file Thumb2InstrInfo.cpp.
References llvm::MCInstrDesc::getNumOperands(), llvm::ARM::isVpred(), MI, and llvm::MCInstrDesc::operands().
Referenced by CreateVPTBlock(), getVPTInstrPredicate(), isVectorPredicated(), and producesFalseLanesZero().
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 34 of file CFG.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::SmallVectorBase< Size_T >::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().
|
static |
Find histogram operations that match high-level code in loops:
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 1093 of file LoopVectorizationLegality.cpp.
References dbgs(), llvm::SmallVectorImpl< T >::emplace_back(), GEP, llvm::User::getOperand(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::ScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), 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().
Definition at line 81 of file IndirectCallVisitor.h.
References F, llvm::PGOIndirectCallVisitor::IndirectCalls, llvm::PGOIndirectCallVisitor::kIndirectCall, and llvm::InstVisitor< SubClass, RetTy >::visit().
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 6372 of file ValueTracking.cpp.
References llvm::SmallVectorImpl< T >::append(), assert(), llvm::ArrayRef< T >::begin(), BuildSubAggregate(), llvm::CallingConv::C, llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), FindInsertedValue(), llvm::ExtractValueInst::getIndexedType(), I, llvm::SmallVectorImpl< T >::reserve(), llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), size(), and llvm::ArrayRef< T >::slice().
Referenced by BuildSubAggregate(), and FindInsertedValue().
|
static |
Definition at line 449 of file ConvertUTF.cpp.
References assert(), and isLegalUTF8Sequence().
Referenced by ConvertUTF8toUTF32Impl().
|
static |
Definition at line 126 of file NVPTXUtilities.cpp.
References cacheAnnotationFromMD(), and llvm::GlobalValue::getParent().
Referenced by getClusterDimx(), getClusterDimy(), getClusterDimz(), getMaxClusterRank(), getMaxNReg(), getMaxNTIDx(), getMaxNTIDy(), getMaxNTIDz(), getMinCTASm(), getReqNTIDx(), getReqNTIDy(), getReqNTIDz(), globalHasNVVMAnnotation(), and isKernelFunction().
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(), llvm::Loop::getLoopID(), and Name.
Referenced by collectUnswitchCandidates(), findStringMetadataForLoop(), getOptionalBoolLoopAttribute(), llvm::AMDGPUTTIImpl::getUnrollingPreferences(), llvm::Loop::isAnnotatedParallel(), llvm::Loop::setLoopMustProgress(), and unswitchBestCondition().
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(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), Name, and llvm::MDNode::operands().
Referenced by findOptionMDForLoop(), and makeFollowupLoopID().
MachineBasicBlock::iterator llvm::findPHICopyInsertPoint | ( | MachineBasicBlock * | MBB, |
MachineBasicBlock * | SuccMBB, | ||
unsigned | SrcReg | ||
) |
findPHICopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg when following the CFG edge to SuccMBB.
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::MachineBasicBlock::begin(), llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MachineBasicBlock::isEHPad(), llvm::MachineBasicBlock::isInlineAsmBrIndirectTarget(), MBB, MRI, llvm::MachineBasicBlock::rbegin(), llvm::MachineBasicBlock::rend(), and llvm::MachineBasicBlock::SkipPHIsAndLabels().
Given a vector and an element number, see if the scalar value is already around as a register, for example if it were inserted then extracted from the vector.
Definition at line 226 of file VectorUtils.cpp.
References assert(), llvm::CallingConv::C, findScalarElement(), llvm::PoisonValue::get(), llvm::VectorType::getElementType(), llvm::ShuffleVectorInst::getMaskValue(), llvm::User::getOperand(), getSplatValue(), llvm::ShuffleVectorInst::getType(), llvm::Value::getType(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_Constant(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and Splat.
Referenced by defaultComponentBroadcast(), findScalarElement(), simplifyExtractElementInst(), and trimTrailingZerosInVector().
|
static |
Definition at line 242 of file LoopBoundSplit.cpp.
References hasProcessableCondition(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), and isProcessableCondBI().
Referenced by splitLoopBound().
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(), llvm::HexagonInstrInfo::isTailCall(), MIIsInTerminatorSequence(), and TII.
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.
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(), llvm_unreachable, and Name.
Referenced by getAppleRuntimeUnrollPreferences(), and getOptionalIntLoopAttribute().
void llvm::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
.
Used by AssumptionCache and DomConditionCache.
Definition at line 10176 of file ValueTracking.cpp.
References A, addValueAffectedByCondition(), B, Cond, llvm::SmallVectorBase< Size_T >::empty(), llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::ICmpInst::isEquality(), llvm::CmpInst::isUnsigned(), LHS, llvm::PatternMatch::m_AddLike(), llvm::PatternMatch::m_AllOnes(), llvm::PatternMatch::m_And(), llvm::PatternMatch::m_BitwiseLogic(), llvm::PatternMatch::m_Constant(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_ElementWiseBitCast(), llvm::PatternMatch::m_FAbs(), llvm::PatternMatch::m_FCmp(), llvm::PatternMatch::m_FNeg(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_LogicalOp(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_NUWAdd(), llvm::PatternMatch::m_NUWSub(), llvm::PatternMatch::m_Or(), llvm::PatternMatch::m_Shift(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RHS, X, and Y.
Referenced by findAffectedValues().
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 | ||
) |
Definition at line 481 of file MSVCPaths.cpp.
References llvm::sys::path::append(), getHighestNumericTupleInDirectory(), and VS2017OrNewer.
bool llvm::findVCToolChainViaCommandLine | ( | vfs::FileSystem & | VFS, |
std::optional< StringRef > | VCToolsDir, | ||
std::optional< StringRef > | VCToolsVersion, | ||
std::optional< StringRef > | WinSysRoot, | ||
std::string & | Path, | ||
ToolsetLayout & | VSLayout | ||
) |
Definition at line 481 of file MSVCPaths.cpp.
References llvm::sys::path::append(), getHighestNumericTupleInDirectory(), and VS2017OrNewer.
bool llvm::findVCToolChainViaEnvironment | ( | vfs::FileSystem & | VFS, |
std::string & | Path, | ||
ToolsetLayout & | VSLayout | ||
) |
Definition at line 508 of file MSVCPaths.cpp.
References llvm::sys::path::append(), DevDivInternal, End, llvm::sys::EnvPathSeparator, llvm::StringRef::equals_insensitive(), llvm::vfs::FileSystem::exists(), llvm::sys::path::filename(), llvm::sys::Process::GetEnv(), OlderVS, llvm::sys::path::parent_path(), llvm::sys::path::rbegin(), llvm::sys::path::rend(), llvm::StringRef::split(), and VS2017OrNewer.
bool llvm::findVCToolChainViaRegistry | ( | std::string & | Path, |
ToolsetLayout & | VSLayout | ||
) |
Definition at line 714 of file MSVCPaths.cpp.
References llvm::sys::path::append(), getSystemRegistryString(), and OlderVS.
bool llvm::findVCToolChainViaSetupConfig | ( | vfs::FileSystem & | VFS, |
std::optional< llvm::StringRef > | VCToolsVersion, | ||
std::string & | Path, | ||
ToolsetLayout & | VSLayout | ||
) |
Definition at line 617 of file MSVCPaths.cpp.
References llvm::sys::path::append(), convertWideToUTF8(), llvm::MemoryBuffer::getFile(), llvm::sys::SingleThreaded, llvm::vfs::FileSystem::status(), llvm::SmallString< InternalLen >::str(), and VS2017OrNewer.
bool llvm::findVCToolChainViaSetupConfig | ( | vfs::FileSystem & | VFS, |
std::optional< StringRef > | VCToolsVersion, | ||
std::string & | Path, | ||
ToolsetLayout & | VSLayout | ||
) |
Definition at line 617 of file MSVCPaths.cpp.
References llvm::sys::path::append(), convertWideToUTF8(), llvm::MemoryBuffer::getFile(), llvm::sys::SingleThreaded, llvm::vfs::FileSystem::status(), llvm::SmallString< InternalLen >::str(), and VS2017OrNewer.
|
inline |
Definition at line 88 of file IndirectCallVisitor.h.
References F, llvm::PGOIndirectCallVisitor::kVTableVal, llvm::PGOIndirectCallVisitor::ProfiledAddresses, and llvm::InstVisitor< SubClass, RetTy >::visit().
|
static |
Definition at line 121 of file SPIRVUtils.cpp.
References llvm::MachineInstrBuilder::addImm(), addStringImm(), and llvm::StringRef::empty().
Referenced by buildOpDecorate().
|
static |
Replace pseudo store instructions that pass arguments through the stack with real instructions.
Definition at line 318 of file AVRFrameLowering.cpp.
References assert(), llvm::MachineBasicBlock::end(), make_early_inc_range(), make_range(), MBB, MI, and TII.
Referenced by llvm::AVRFrameLowering::eliminateCallFramePseudoInstr().
|
static |
Definition at line 89 of file LanaiMCCodeEmitter.cpp.
References llvm::Lanai::FIXUP_LANAI_21, llvm::Lanai::FIXUP_LANAI_HI16, llvm::Lanai::FIXUP_LANAI_LO16, llvm::LanaiMCExpr::VK_Lanai_ABS_HI, llvm::LanaiMCExpr::VK_Lanai_ABS_LO, and llvm::LanaiMCExpr::VK_Lanai_None.
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.
Definition at line 533 of file FlattenCFG.cpp.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::floorDiv | ( | const DynamicAPInt & | LHS, |
const DynamicAPInt & | RHS | ||
) |
Definition at line 369 of file DynamicAPInt.h.
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 1354 of file ConstantFolding.cpp.
References 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, llvm::APFloat::isDenormal(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Splat.
Referenced by ConstantFoldCompareInstOperands(), and ConstantFoldFPInstOperands().
support::detail::AlignAdapter< T > llvm::fmt_align | ( | T && | Item, |
AlignStyle | Where, | ||
size_t | Amount, | ||
char | Fill = ' ' |
||
) |
Definition at line 89 of file FormatAdapters.h.
Referenced by llvm::logicalview::LVBinaryReader::createInstructions(), llvm::pdb::LinePrinter::formatMsfStreamData(), llvm::logicalview::LVLogicalVisitor::inlineSiteAnnotation(), and llvm::pdb::iterateOneModule().
|
inline |
Definition at line 108 of file FormatAdapters.h.
support::detail::PadAdapter< T > llvm::fmt_pad | ( | T && | Item, |
size_t | Left, | ||
size_t | Right | ||
) |
Definition at line 96 of file FormatAdapters.h.
support::detail::RepeatAdapter< T > llvm::fmt_repeat | ( | T && | Item, |
size_t | Count | ||
) |
Definition at line 101 of file FormatAdapters.h.
Referenced by checkIntegrityScopesTree(), llvm::pdb::typesetItemList(), and llvm::pdb::typesetStringList().
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().
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.
Definition at line 4133 of file SimplifyCFG.cpp.
References all_of(), BranchFoldThreshold, BranchFoldToCommonDestVectorMultiplier, Cond, CostKind, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase< Size_T >::empty(), llvm::TargetTransformInfo::getArithmeticInstrCost(), llvm::BranchInst::getCondition(), llvm::PHINode::getIncomingBlock(), llvm::TargetTransformInfo::getInstructionCost(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), llvm::Value::getType(), llvm::Function::hasMinSize(), llvm::Value::hasOneUse(), I, is_contained(), llvm::BranchInst::isConditional(), isSafeToSpeculativelyExecute(), llvm::BranchInst::isUnconditional(), isVectorOp(), performBranchToCommonDestFolding(), predecessors(), safeToMergeTerminators(), shouldFoldCondBranchesToCommonDestination(), llvm::SmallVectorBase< Size_T >::size(), successors(), llvm::TargetTransformInfo::TCC_Free, llvm::TargetTransformInfo::TCK_CodeSize, and llvm::TargetTransformInfo::TCK_SizeAndLatency.
Referenced by simplifyOneLoop().
|
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().
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 1551 of file BasicBlockUtils.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), llvm::Instruction::clone(), llvm::BasicBlock::end(), llvm::Instruction::eraseFromParent(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), llvm::Instruction::insertInto(), llvm::User::operands(), llvm::BasicBlock::removePredecessor(), and llvm::User::setOperand().
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 145 of file BasicBlockUtils.cpp.
References llvm::BasicBlock::begin(), llvm::PoisonValue::get(), and llvm::MemoryDependenceResults::removeInstruction().
Referenced by foldCondBranchOnValueKnownInPredecessorImpl(), MergeBlockIntoPredecessor(), normalizeForInvokeSafepoint(), and llvm::RewriteStatepointsForGC::runOnFunction().
UnaryFunction llvm::for_each | ( | R && | Range, |
UnaryFunction | F | ||
) |
Provide wrappers to std::for_each which take ranges instead of having to pass begin/end explicitly.
Definition at line 1732 of file STLExtras.h.
References adl_begin(), adl_end(), F, and Range.
Referenced by llvm::memtag::annotateDebugRecords(), collectEscapedLocals(), llvm::CombinationGenerator< choice_type, choices_storage_type, variable_smallsize >::CombinationGenerator(), findPartitions(), llvm::memtag::forAllReachableExits(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), insertSpills(), LowerDbgDeclare(), migrateDebugInfo(), removeGEPBuiltinsInFunc(), removeUnreachableFunctions(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), replaceDbgDeclare(), llvm::coro::BaseCloner::salvageDebugInfo(), shortenAssignment(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), and llvm::memtag::StackInfoBuilder::visit().
bool llvm::forcePrintFuncIR | ( | ) |
Definition at line 150 of file PrintPasses.cpp.
References LoopPrintFuncScope.
Referenced by printLoop().
bool llvm::forcePrintModuleIR | ( | ) |
Definition at line 148 of file PrintPasses.cpp.
References PrintModuleScope.
Referenced by llvm::ChangeReporter< IRDataT< DCData > >::handleInvalidatedPass(), printLoop(), llvm::PrintCrashIRInstrumentation::registerCallbacks(), and llvm::PrintFunctionPass::run().
void llvm::forEachCallbackCallSite | ( | const CallBase & | CB, |
UnaryFunction | Func | ||
) |
Apply function Func to each CB's callback call site.
Definition at line 226 of file AbstractCallSite.h.
References assert(), llvm::AbstractCallSite::getCallbackUses(), and llvm::AbstractCallSite::isCallbackCall().
Referenced by forEachCallbackFunction().
void llvm::forEachCallbackFunction | ( | const CallBase & | CB, |
UnaryFunction | Func | ||
) |
Apply function Func to each CB's callback function.
Definition at line 238 of file AbstractCallSite.h.
References forEachCallbackCallSite(), and llvm::AbstractCallSite::getCalledFunction().
Referenced by llvm::CallGraph::populateCallGraphNode(), llvm::CallGraphNode::removeCallEdgeFor(), and llvm::CallGraphNode::replaceCallEdge().
|
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:
Definition at line 125 of file Format.h.
Referenced by llvm::logicalview::LVScopeCompileUnit::addSize(), llvm::DWARFTypePrinter< DieType >::appendTemplateParameters(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), llvm::DWARFContext::checkAddressSizeSupported(), checkIntegrityScopesTree(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::jitlink::createLinkGraphFromMachOObject(), createStringError(), llvm::DWARFListTableHeader::dump(), llvm::OverlapStats::dump(), llvm::gsym::GsymReader::dump(), llvm::orc::JITDylib::dump(), llvm::DWARFDebugAbbrev::dump(), llvm::DWARFDebugArangeSet::dump(), llvm::DWARFDebugLine::Row::dump(), llvm::DWARFDebugMacro::dump(), llvm::DWARFDebugPubTable::dump(), llvm::DWARFDebugRangeList::dump(), llvm::DWARFUnitIndex::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::dwarf::CIE::dump(), llvm::dwarf::FDE::dump(), llvm::DWARFCompileUnit::dump(), llvm::DWARFContext::dump(), llvm::dwarf::UnwindRow::dump(), llvm::DWARFFormValue::dump(), llvm::DWARFDebugAddrTable::dump(), llvm::DWARFTypeUnit::dump(), llvm::RangeListEntry::dump(), llvm::DWARFDie::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(), llvm::format_provider< Enum, std::enable_if_t< dwarf::EnumTraits< Enum >::value > >::format(), format(), llvm::MCInstPrinter::formatDec(), llvm::MCInstPrinter::formatHex(), llvm::OpenMPIRBuilder::getAddrOfDeclareTargetVar(), getCOFFStaticStructorSection(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >::getEdgeAttributes(), llvm::logicalview::LVRange::getEntry(), llvm::logicalview::LVOperation::getOperandsCodeViewInfo(), llvm::logicalview::LVOperation::getOperandsDWARFInfo(), llvm::SampleProfileLoaderBaseImpl< FT >::getProbeWeight(), getSizeForEncoding(), getStaticStructorSection(), llvm::TargetRegionEntryInfo::getTargetRegionEntryFnName(), llvm::object::GOFFObjectFile::GOFFObjectFile(), Help(), llvm::logicalview::LVBinaryReader::includeInlineeLines(), llvm::ResourceManager::initProcResourceVectors(), llvm::RuntimeDyldImpl::loadObjectImpl(), llvm::ResolverError::log(), llvm::object::MachORebaseEntry::moveNext(), llvm::object::MachOBindEntry::moveNext(), llvm::object::operator<<(), llvm::gsym::operator<<(), llvm::rdf::operator<<(), operator<<(), llvm::yaml::ScalarTraits< memprof::GUIDHex64 >::output(), llvm::DWARFDebugLine::LineTable::parse(), prettyPrintBaseTypeRef(), llvm::DWARFExpression::prettyPrintRegisterOp(), llvm::MIPrinter::print(), llvm::TimeRecord::print(), llvm::logicalview::LVLocation::print(), llvm::DIEAbbrev::print(), llvm::DIEEntry::print(), llvm::DIE::print(), llvm::AccelTableBase::HashData::print(), llvm::ILPValue::print(), llvm::BranchProbability::print(), llvm::MachO::PackedVersion::print(), llvm::AppleAccelTableStaticTypeData::print(), llvm::logicalview::LVRange::print(), llvm::MCExpr::print(), llvm::DWARFExpression::Operation::print(), llvm::DWARFExpression::print(), llvm::MachineBasicBlock::print(), llvm::rdf::PhysicalRegisterInfo::print(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), llvm::logicalview::LVObject::printAttributes(), printBigArchiveMemberHeader(), printBinaryIdsInternal(), llvm::HexagonInstPrinter::printBrtarget(), printCFI(), PrintCFIEscape(), printCompactDWARFExpr(), llvm::ProfileSummary::printDetailedSummary(), llvm::AArch64::printEnabledExtensions(), llvm::logicalview::LVElement::printFileIndex(), llvm::RISCVInstPrinter::printFPImmOperand(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::AArch64InstPrinter::printImmHex(), PrintLaneMask(), printMarkupStackTrace(), llvm::ScopedPrinter::printNumber(), llvm::SPIRVInstPrinter::printOpConstantVarOps(), llvm::X86ATTInstPrinter::printOperand(), llvm::logicalview::LVLogicalVisitor::printRecords(), printRestOfMemberHeader(), llvm::AArch64InstPrinter::printSIMDType10Operand(), printSize(), llvm::mca::IncrementalSourceMgr::printStatistic(), PrintStatistics(), llvm::BitcodeAnalyzer::printStats(), llvm::logicalview::LVScopeCompileUnit::printSummary(), llvm::AArch64::PrintSupportedExtensions(), llvm::ARM::PrintSupportedExtensions(), llvm::MCSectionXCOFF::printSwitchToSection(), 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::StructuralHashPrinterPass::run(), llvm::BalancedPartitioning::run(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), llvm::BTFParser::symbolize(), llvm::msgpack::DocNode::toString(), llvm::AArch64ExternalSymbolizer::tryAddingSymbolicOperand(), updateForAIXShLibTLSModelOpt(), llvm::json::OStream::value(), write_double(), and llvm::raw_ostream::write_uuid().
|
static |
Definition at line 72 of file Chrono.cpp.
References count(), llvm::raw_ostream::flush(), format(), Format, I, and OS.
|
inline |
Definition at line 241 of file Format.h.
References Upper.
Referenced by llvm::logicalview::LVBinaryReader::createInstructions().
|
inline |
Definition at line 250 of file Format.h.
References Upper.
Referenced by llvm::pdb::LinePrinter::formatBinary(), llvm::pdb::LinePrinter::formatMsfStreamBlocks(), and llvm::pdb::LinePrinter::formatMsfStreamData().
|
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 212 of file Format.h.
References N.
Referenced by llvm::mca::computeProcResourceMasks(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::symbolize::SourceCode::format(), llvm::logicalview::LVBinaryReader::mapVirtualAddress(), llvm::logicalview::LVBinaryReader::processLines(), and llvm::logicalview::LVRange::startSearch().
|
inline |
format_hex - Output N
as a fixed width hexadecimal.
If number will not fit in width, full number is still printed. Examples: OS << format_hex(255, 4) => 0xff OS << format_hex(255, 4, true) => 0xFF OS << format_hex(255, 6) => 0x00ff OS << format_hex(255, 2) => 0xff
Definition at line 187 of file Format.h.
References assert(), N, and Upper.
Referenced by analyzeHeader(), llvm::mca::computeProcResourceMasks(), llvm::mca::ExecuteStage::cycleEnd(), llvm::mca::ResourceState::dump(), llvm::DWARFDebugLoc::dumpRawEntry(), llvm::DWARFDebugLoclists::dumpRawEntry(), llvm::AMDGPUAsmPrinter::emitInstruction(), ErrorFromHResult(), format_ptr(), llvm::object::MachOObjectFile::getBuildPlatform(), llvm::object::MachOObjectFile::getBuildTool(), llvm::X86RegisterInfo::getRegAllocationHints(), llvm::logicalview::hexValue(), llvm::mca::initializeUsedResources(), operator<<(), llvm::object::operator<<(), printSymbolizedStackTrace(), llvm::HexagonShuffler::tryAuction(), and WriteAPFloatInternal().
|
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 200 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().
std::string llvm::formatCallSiteLocation | ( | DebugLoc | DLoc, |
const CallSiteFormat & | Format | ||
) |
Get call site location as a string with the given format.
Definition at line 437 of file InlineAdvisor.cpp.
References First, Format, llvm::DebugLoc::get(), Name, Offset, and llvm::raw_string_ostream::str().
Referenced by llvm::ReplayInlineAdvisor::getAdviceImpl().
|
inline |
Definition at line 252 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(), llvm::jitlink::BasicLayout::BasicLayout(), checkIntegrityScopesTree(), llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::msf::MSFBuilder::commit(), llvm::dxil::ResourceTypeInfo::createElementStruct(), llvm::jitlink::aarch64::createEmptyPointerSigningFunction(), llvm::logicalview::LVBinaryReader::createInstructions(), createThunkName(), llvm::DCData::DCData(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), llvm::orc::UnwindInfoManager::deregisterSections(), llvm::IndexedMemProfReader::deserialize(), llvm::dwarf_linker::parallel::CompileUnit::DIEInfo::dump(), llvm::DWARFAbbreviationDeclaration::dump(), llvm::BPFunctionNode::dump(), llvm::AppleAcceleratorTable::dump(), llvm::DWARFDebugLine::Prologue::dump(), llvm::orc::ELFDebugObjectSection< ELFT >::dump(), llvm::DWARFDie::dump(), llvm::DWARFDebugNames::Abbrev::dump(), llvm::DWARFDebugNames::Entry::dump(), dumpAttribute(), llvm::StringToOffsetTable::EmitStringLiteralDef(), ErrorFromHResult(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::NVPTXSubtarget::failIfClustersUnsupported(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::orc::LazyCallThroughManager::findReexport(), llvm::jitlink::MachOLinkGraphBuilder::findSectionByIndex(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByAddress(), llvm::jitlink::MachOLinkGraphBuilder::findSymbolByIndex(), llvm::pdb::LinePrinter::format(), llvm::format_provider< codeview::TypeIndex >::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(), 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::jitlink::COFFLinkGraphBuilder::graphifySymbols(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::graphifySymbols(), llvm::InLineChangePrinter::handleAfter(), llvm::TextChangeReporter< IRUnitT >::handleFiltered(), llvm::DotCfgChangeReporter::handleFiltered(), llvm::DotCfgChangeReporter::handleFunctionCompare(), llvm::TextChangeReporter< IRUnitT >::handleIgnored(), llvm::DotCfgChangeReporter::handleIgnored(), llvm::TextChangeReporter< IRUnitT >::handleInvalidated(), llvm::DotCfgChangeReporter::handleInvalidated(), llvm::orc::SimpleRemoteEPC::handleMessage(), llvm::orc::SimpleRemoteEPCServer::handleMessage(), 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::TextChangeReporter< IRUnitT >::omitAfter(), llvm::DotCfgChangeReporter::omitAfter(), llvm::pdb::InputFile::open(), llvm::jitlink::operator<<(), llvm::orc::operator<<(), operator<<(), llvm::NVPTXScopes::operator[](), llvm::NVPTX::OrderingToString(), llvm::PassBuilder::parseAAPipeline(), parseAMDGPUAttributorPassOptions(), llvm::formatv_object_base::parseFormatString(), llvm::PassBuilder::parsePassPipeline(), llvm::PassBuilder::parseSinglePassOption(), llvm::jitlink::CompactUnwindManager< CURecTraits >::prepareForPrune(), prettyPrintResources(), llvm::dxil::ComputedShaderFlags::print(), llvm::jitlink::printEdge(), llvm::NVPTXInstPrinter::printLdStCode(), printMatch(), printNoMatch(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::printStatistic(), printSymbolizedStackTrace(), llvm::jitlink::CompactUnwindManager< CURecTraits >::processAndReserveUnwindInfo(), llvm::jitlink::readCFIRecordLength(), llvm::PrintCrashIRInstrumentation::registerCallbacks(), llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::orc::EPCGenericRTDyldMemoryManager::registerEHFrames(), llvm::orc::ExecutionSession::registerJITDispatchHandlers(), llvm::orc::EPCGenericRTDyldMemoryManager::reserveAllocationSpace(), llvm::jitlink::PerGraphGOTAndPLTStubsBuilder< BuilderImplT >::run(), llvm::dxil::ShaderFlagsAnalysisPrinter::run(), llvm::orc::ExecutionSession::runJITDispatchHandler(), llvm::NVPTX::ScopeToString(), llvm::MachO::serializeInterfaceFileToJSON(), llvm::jitlink::splitCompactUnwindBlocks(), llvm::pdb::typesetItemList(), llvm::pdb::typesetStringList(), llvm::orc::ELFDebugObjectSection< ELFT >::validateInBounds(), llvm::DWARFVerifier::verifyDebugStrOffsets(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), verifyKeepChain(), 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::i386::GOTTableManager::visitEdge(), llvm::jitlink::i386::PLTTableManager::visitEdge(), llvm::jitlink::loongarch::GOTTableManager::visitEdge(), llvm::jitlink::loongarch::PLTTableManager::visitEdge(), llvm::jitlink::x86_64::GOTTableManager::visitEdge(), llvm::jitlink::x86_64::PLTTableManager::visitEdge(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), llvm::orc::OrcLoongArch64::writeIndirectStubsBlock(), writeMemProf(), llvm::orc::OrcX86_64_SysV::writeResolverCode(), llvm::orc::OrcLoongArch64::writeResolverCode(), llvm::orc::OrcLoongArch64::writeTrampolines(), and llvm::jitlink::CompactUnwindManager< CURecTraits >::writeUnwindInfo().
Definition at line 259 of file FormatVariadic.h.
References formatv().
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 57 of file LoopUtils.cpp.
References assert(), Cleanup, llvm::SmallVectorImpl< T >::clear(), dbgs(), llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), 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().
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 443 of file LCSSA.cpp.
References formLCSSAImpl().
Referenced by hoistLoopToNewParent(), separateNestedLoop(), and unswitchNontrivialInvariants().
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 325 of file LCSSA.cpp.
References formLCSSAForInstructionsImpl().
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 465 of file LCSSA.cpp.
References formLCSSARecursivelyImpl().
Referenced by breakLoopBackedge(), formLCSSAOnAllLoops(), llvm::LoopConstrainer::run(), llvm::IRCEPass::run(), llvm::LoopUnrollPass::run(), llvm::LoopVectorizePass::runImpl(), and UnrollLoop().
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().
|
inlinestatic |
Convert a DAG floating point condition code to a VE FCC condition.
Definition at line 97 of file VEISelLowering.h.
References CC, llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETFALSE, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETTRUE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, and llvm::ISD::SETUO.
Referenced by llvm::VETargetLowering::combineSelect(), and llvm::VETargetLowering::combineSelectCC().
|
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 1526 of file APFloat.h.
References frexp(), llvm_unreachable, and X.
Referenced by frexp(), llvm::SelectionDAG::getNode(), and llvm::GCNTTIImpl::instCombineIntrinsic().
|
inline |
Convenience function for recomputing live-in's for a set of MBBs until the computation converges.
Definition at line 215 of file LivePhysRegs.h.
References llvm::ArrayRef< T >::data(), Data, I, recomputeLiveIns(), and llvm::ArrayRef< T >::size().
Referenced by emitStackProbeInline(), llvm::PPCFrameLowering::inlineStackProbe(), llvm::SystemZELFFrameLowering::inlineStackProbe(), llvm::SystemZXPLINKFrameLowering::inlineStackProbe(), and llvm::AArch64InstrInfo::probedStackAlloc().
Returns true if the parent of CI
returns CI's first argument after calling CI
.
Definition at line 715 of file Analysis.cpp.
References llvm::CallBase::getArgOperand(), and llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent().
Referenced by llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), and llvm::SelectionDAG::getMemset().
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::SUnit::getInstr(), llvm::MCInstrInfo::getName(), llvm::MachineInstr::getOpcode(), hasLessThanNumFused(), isHazard(), llvm::SUnit::isPred(), llvm::SUnit::isSucc(), LLVM_DEBUG, llvm::SUnit::Preds, llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, and llvm::ScheduleDAG::TII.
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 1522 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(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup().
Referenced by llvm::lto::ThinBackendProc::emitFiles(), llvm::ThinLTOCodeGenerator::emitImports(), and llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule().
TargetTransformInfo::PeelingPreferences llvm::gatherPeelingPreferences | ( | Loop * | L, |
ScalarEvolution & | SE, | ||
const TargetTransformInfo & | TTI, | ||
std::optional< bool > | UserAllowPeeling, | ||
std::optional< bool > | UserAllowProfileBasedPeeling, | ||
bool | UnrollingSpecficValues = false |
||
) |
Definition at line 870 of file LoopPeel.cpp.
References llvm::TargetTransformInfo::PeelingPreferences::AllowLoopNestsPeeling, llvm::TargetTransformInfo::PeelingPreferences::AllowPeeling, llvm::cl::Option::getNumOccurrences(), llvm::TargetTransformInfo::getPeelingPreferences(), llvm::TargetTransformInfo::PeelingPreferences::PeelCount, llvm::TargetTransformInfo::PeelingPreferences::PeelProfiledIterations, UnrollAllowLoopNestsPeeling, UnrollAllowPeeling, and UnrollPeelCount.
Referenced by computeHeuristicUnrollFactor(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().
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 189 of file LoopUnrollPass.cpp.
References 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, llvm::cl::Option::getNumOccurrences(), llvm::TargetTransformInfo::getUnrollingPreferences(), hasUnrollTransformation(), if(), 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, 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().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::gcd | ( | const DynamicAPInt & | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 390 of file DynamicAPInt.h.
Referenced by llvm::ScalarEvolution::getUDivExactExpr().
|
static |
Definition at line 2315 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), llvm::MachineIRBuilder::getMF(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), insertAssignInstr(), llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1546 of file SPIRVBuiltins.cpp.
References buildAtomicFloatingRMWInst(), and llvm::SPIRV::DemangledBuiltin::Name.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1507 of file SPIRVBuiltins.cpp.
References buildAtomicCompareExchangeInst(), buildAtomicFlagInst(), buildAtomicInitInst(), buildAtomicLoadInst(), buildAtomicRMWInst(), buildAtomicStoreInst(), buildBarrierInst(), buildOpFromWrapper(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1563 of file SPIRVBuiltins.cpp.
References buildBarrierInst(), llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1483 of file SPIRVBuiltins.cpp.
References BitWidth, buildBuiltinVariableLoad(), llvm::LLT::fixed_vector(), genWorkgroupQuery(), llvm::SPIRVGlobalRegistry::getScalarOrVectorBitWidth(), llvm::SPIRV::DemangledBuiltin::Name, llvm::LLT::scalar(), llvm::SPIRV::DemangledBuiltin::Set, and llvm::Value::Value().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1574 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), and llvm::MachineIRBuilder::buildInstr().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1981 of file SPIRVBuiltins.cpp.
References buildOpFromWrapper(), and llvm::SPIRVGlobalRegistry::getSPIRVTypeID().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 2366 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), buildOpDecorate(), buildOpFromWrapper(), llvm::StringRef::find_first_of(), llvm::MachineIRBuilder::getMF(), llvm::SPIRVGlobalRegistry::getScalarOrVectorComponentCount(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), llvm::SPIRV::ConvertBuiltin::IsBfloat16, llvm::SPIRV::ConvertBuiltin::IsDestinationSigned, llvm::SPIRV::ConvertBuiltin::IsRounded, llvm::SPIRV::ConvertBuiltin::IsSaturated, llvm::SPIRVGlobalRegistry::isScalarOrVectorOfType(), llvm::SPIRV::DemangledBuiltin::Name, llvm::SPIRV::ConvertBuiltin::Name, report_fatal_error(), and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1988 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), getConstFromIntrinsic(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), MRI, llvm::SPIRV::DemangledBuiltin::Name, llvm::SmallVectorTemplateBase< T, bool >::push_back(), report_fatal_error(), and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1582 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), llvm::MachineInstr::getOpcode(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), and llvm::SPIRVGlobalRegistry::getSPIRVTypeID().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 2275 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), buildEnqueueKernel(), llvm::MachineIRBuilder::buildInstr(), buildNDRange(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1032 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::DemangledBuiltin::Name, Number, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1670 of file SPIRVBuiltins.cpp.
References genWorkgroupQuery(), and llvm::Value::Value().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1079 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(), llvm::LLT::fixed_vector(), 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, report_fatal_error(), llvm::LLT::scalar(), setRegClassIfNull(), and llvm::StringRef::starts_with().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1284 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), addNumImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineOperand::getCImm(), getDefInstrMaybeConstant(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), llvm::ConstantInt::getValue(), llvm::MachineOperand::isCImm(), MRI, llvm::SPIRV::DemangledBuiltin::Name, llvm::SPIRV::GroupUniformBuiltin::Opcode, and report_fatal_error().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1621 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstr::getOpcode(), llvm::SPIRVGlobalRegistry::getPointeeType(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), MRI, llvm::SPIRV::DemangledBuiltin::Name, report_fatal_error(), llvm::LLT::scalar(), and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1756 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1682 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineRegisterInfo::createGenericVirtualRegister(), llvm::LLT::fixed_vector(), llvm::MachineOperand::getImm(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), getNumSizeComponents(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), insertAssignInstr(), llvm::SPIRV::DemangledBuiltin::Name, RetTy, llvm::SPIRV::DemangledBuiltin::Set, and llvm::MachineRegisterInfo::setRegClass().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1210 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), buildOpFromWrapper(), llvm::MachineIRBuilder::getMF(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), llvm::SPIRV::IntelSubgroupsBuiltin::IsBlock, llvm::SPIRV::IntelSubgroupsBuiltin::IsMedia, llvm::SPIRV::IntelSubgroupsBuiltin::IsWrite, llvm::SPIRV::DemangledBuiltin::Name, llvm::SPIRV::IntelSubgroupsBuiltin::Opcode, and report_fatal_error().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1328 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), buildConstantIntReg32(), llvm::MachineIRBuilder::buildInstr(), llvm::StringSwitch< T, R >::EndsWith(), llvm::MachineIRBuilder::getMF(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::MachineFunction::getSubtarget(), llvm::SPIRV::DemangledBuiltin::Name, and report_fatal_error().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 2497 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), getConstFromIntrinsic(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), MRI, llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
void llvm::generateParamAccessSummary | ( | ModuleSummaryIndex & | Index | ) |
Definition at line 1136 of file StackSafetyAnalysis.cpp.
References AreStatisticsEnabled(), assert(), and llvm::FunctionSummary::ParamAccess::RangeWidth.
|
static |
Definition at line 1825 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::SPIRVGlobalRegistry::buildConstantFP(), llvm::SPIRVGlobalRegistry::buildConstantSampler(), llvm::MachineIRBuilder::buildInstr(), llvm::StringRef::contains_insensitive(), getDefInstrMaybeConstant(), getIConstVal(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getRegType(), getSamplerAddressingModeFromBitmask(), getSamplerFilterModeFromBitmask(), getSamplerParamFromBitmask(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::APFloat::getZero(), llvm::APFloatBase::IEEEsingle(), llvm::SPIRVGlobalRegistry::isScalarOfType(), and MRI.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1053 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), buildBoolRegister(), llvm::MachineIRBuilder::buildInstr(), buildSelectInst(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1915 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::SPIRVGlobalRegistry::buildConstantSampler(), llvm::MachineIRBuilder::buildInstr(), llvm::StringRef::contains(), getIConstVal(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), getSamplerAddressingModeFromBitmask(), getSamplerFilterModeFromBitmask(), getSamplerParamFromBitmask(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), MRI, report_fatal_error(), and llvm::StringRef::str().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1974 of file SPIRVBuiltins.cpp.
References llvm::MachineIRBuilder::buildSelect().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 2054 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), addNumImm(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::APFloat::bitcastToAPInt(), llvm::MachineIRBuilder::buildInstr(), buildOpDecorate(), llvm::MachineOperand::getCImm(), getDefInstrMaybeConstant(), llvm::MachineOperand::getFPImm(), getIConstVal(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::ConstantInt::getValue(), llvm::ConstantFP::getValueAPF(), llvm::APInt::getZExtValue(), llvm::MachineOperand::isCImm(), MRI, llvm::SPIRV::DemangledBuiltin::Name, and llvm::SPIRV::DemangledBuiltin::Set.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 2471 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), llvm::StringRef::contains(), llvm::SPIRV::VectorLoadStoreBuiltin::ElementCount, llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), llvm::SPIRV::VectorLoadStoreBuiltin::IsRounded, llvm::SPIRV::VectorLoadStoreBuiltin::Name, llvm::SPIRV::VectorLoadStoreBuiltin::Number, and llvm::SPIRV::VectorLoadStoreBuiltin::RoundingMode.
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1599 of file SPIRVBuiltins.cpp.
References assert(), buildBuiltinVariableLoad(), llvm::SPIRVGlobalRegistry::getScalarOrVectorBitWidth(), llvm::SPIRV::DemangledBuiltin::Name, llvm::LLT::scalar(), llvm::SPIRV::DemangledBuiltin::Set, and llvm::Value::Value().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1905 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addUse(), and llvm::MachineIRBuilder::buildInstr().
Referenced by llvm::SPIRV::lowerBuiltin().
|
static |
Definition at line 1385 of file SPIRVBuiltins.cpp.
References llvm::MachineInstrBuilder::addUse(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), buildBuiltinVariableLoad(), llvm::SPIRVGlobalRegistry::buildConstantInt(), llvm::MachineIRBuilder::buildCopy(), llvm::MachineIRBuilder::buildICmp(), llvm::MachineIRBuilder::buildIntrinsic(), llvm::MachineIRBuilder::buildSelect(), llvm::MachineIRBuilder::buildZExtOrTrunc(), llvm::LLT::fixed_vector(), getDefInstrMaybeConstant(), getIConstVal(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVBoolType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVIntegerType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVVectorType(), llvm::SPIRVGlobalRegistry::getPointerSize(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), llvm::CmpInst::ICMP_ULT, insertAssignInstr(), MRI, and llvm::LLT::scalar().
Referenced by generateBuiltinVar(), and generateGetQueryInst().
|
inline |
Definition at line 184 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::begin(), and GEP.
|
inline |
Definition at line 173 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::begin(), and GEP.
Referenced by canReplaceOperandWithVariable(), llvm::GEPOperator::collectOffset(), computeKnownBitsFromOperator(), emitGEPOffset(), GEPSequentialConstIndexed(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), getGEPInductionOperand(), llvm::ConstantExpr::getGetElementPtr(), llvm::DataLayout::getIndexedOffsetInType(), llvm::GEPOperator::getMaxPreservedAlignment(), isGEPKnownNonNull(), llvm::FastISel::selectGetElementPtr(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::InstCombinerImpl::visitGEPOfGEP(), llvm::InstCombinerImpl::visitGetElementPtrInst(), and llvm::Interpreter::visitGetElementPtrInst().
|
inline |
Definition at line 197 of file GetElementPtrTypeIterator.h.
References A, and llvm::generic_gep_type_iterator< ItTy >::begin().
|
inline |
Definition at line 191 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::end(), and GEP.
|
inline |
Definition at line 180 of file GetElementPtrTypeIterator.h.
References llvm::generic_gep_type_iterator< ItTy >::end(), and GEP.
Referenced by llvm::GEPOperator::collectOffset(), llvm::ConstantExpr::getGetElementPtr(), llvm::DataLayout::getIndexedOffsetInType(), llvm::GEPOperator::getMaxPreservedAlignment(), isGEPKnownNonNull(), llvm::FastISel::selectGetElementPtr(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), llvm::InstCombinerImpl::visitGEPOfGEP(), and llvm::Interpreter::visitGetElementPtrInst().
|
inline |
Definition at line 203 of file GetElementPtrTypeIterator.h.
References A, and llvm::generic_gep_type_iterator< ItTy >::end().
decltype(auto) llvm::get | ( | const PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info > & | Pair | ) |
Definition at line 270 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::XtensaInstrInfo::adjustStackPtr(), llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::AVRInstrInfo::analyzeBranch(), llvm::M68kInstrInfo::AnalyzeBranchImpl(), llvm::SIInstrInfo::areLoadsFromSameBasePtr(), llvm::ARMBaseInstrInfo::breakPartialRegDependency(), llvm::X86InstrInfo::breakPartialRegDependency(), llvm::AArch64InstrInfo::buildClearRegister(), llvm::X86InstrInfo::buildClearRegister(), llvm::R600InstrInfo::buildDefaultInstruction(), llvm::MachineIRBuilder::buildDirectDbgValue(), llvm::SIInstrInfo::buildExtractSubReg(), llvm::MachineIRBuilder::buildIndirectDbgValue(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::ARMBaseInstrInfo::buildOutlinedFrame(), llvm::RISCVInstrInfo::buildOutlinedFrame(), llvm::X86InstrInfo::buildOutlinedFrame(), llvm::SIInstrInfo::buildShrunkInst(), llvm::HexagonInstrInfo::changeDuplexOpcode(), llvm::X86InstrInfo::classifyLEAReg(), llvm::R600InstrInfo::clearFlag(), llvm::PPCInstrInfo::combineRLWINM(), combineVSelectWithAllOnesOrZeros(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::SIInstrInfo::commuteInstructionImpl(), llvm::RISCVInstrInfo::commuteInstructionImpl(), computeMemberData(), llvm::SIInstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::convertToThreeAddress(), llvm::RISCVInstrInfo::convertToThreeAddress(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMBaseInstrInfo::copyFromCPSR(), llvm::AArch64InstrInfo::copyGPRRegTuple(), llvm::ARCInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::BPFInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::LoongArchInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::RISCVInstrInfo::copyPhysRegVector(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::SIInstrInfo::createPHIDestinationCopy(), llvm::SIInstrInfo::createPHISourceCopy(), llvm::SIInstrInfo::doesNotReadTiedSource(), 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::SystemZInstrInfo::expandPostRAPseudo(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::SIInstrInfo::expandPostRAPseudo(), llvm::ARMBaseInstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::M68kInstrInfo::expandPostRAPseudo(), llvm::PPCInstrInfo::expandPostRAPseudo(), llvm::SparcInstrInfo::expandPostRAPseudo(), llvm::VEInstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::expandPostRAPseudo(), llvm::HexagonInstrInfo::expandVGatherPseudo(), llvm::PPCInstrInfo::expandVSXMemPseudo(), llvm::yaml::CustomMappingTraits< GlobalValueSummaryMapTy >::fixAliaseeLinks(), llvm::PPCInstrInfo::foldFrameOffset(), llvm::SIInstrInfo::foldImmediate(), llvm::ARMBaseInstrInfo::foldImmediate(), llvm::SystemZInstrInfo::foldImmediate(), llvm::VEInstrInfo::foldImmediate(), llvm::RISCVInstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), llvm::MipsInstrInfo::genInstrWithNewOpc(), llvm::Expected< T >::get(), llvm::SIInstrInfo::getAddNoCarry(), llvm::ConstantPtrAuth::getAddrDiscriminator(), llvm::AVRInstrInfo::getBrCond(), llvm::RISCVInstrInfo::getBrCond(), llvm::ConstantPtrAuth::getDiscriminator(), llvm::AArch64InstrInfo::getElementSizeForOpcode(), 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::SystemZInstrInfo::getOpcodeForOffset(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::SDNode::getOperationName(), llvm::SIInstrInfo::getOpRegClass(), llvm::SIInstrInfo::getOpSize(), llvm::ConstantPtrAuth::getPointer(), llvm::WebAssembly::SortRegionInfo::getRegionFor(), llvm::pdb::SymbolCache::getSourceFileById(), llvm::BranchInst::getSuccessor(), llvm::SystemZInstrInfo::hasDisplacementPairInsn(), llvm::SIInstrInfo::hasFPClamp(), llvm::R600InstrInfo::hasInstrModifiers(), llvm::ARCInstrInfo::insertBranch(), llvm::AArch64InstrInfo::insertBranch(), llvm::R600InstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), llvm::ARMBaseInstrInfo::insertBranch(), llvm::AVRInstrInfo::insertBranch(), llvm::BPFInstrInfo::insertBranch(), llvm::CSKYInstrInfo::insertBranch(), llvm::HexagonInstrInfo::insertBranch(), llvm::LoongArchInstrInfo::insertBranch(), llvm::M68kInstrInfo::insertBranch(), llvm::MipsInstrInfo::insertBranch(), llvm::MSP430InstrInfo::insertBranch(), llvm::NVPTXInstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::RISCVInstrInfo::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::LanaiInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), llvm::SIInstrInfo::insertEQ(), llvm::XtensaInstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::SIInstrInfo::insertIndirectBranch(), llvm::AVRInstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::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::AArch64InstrInfo::insertOutlinedCall(), llvm::ARMBaseInstrInfo::insertOutlinedCall(), llvm::RISCVInstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), llvm::SIInstrInfo::insertReturn(), llvm::SIInstrInfo::insertSelect(), llvm::AArch64InstrInfo::insertSelect(), llvm::PPCInstrInfo::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::AArch64InstrInfo::isPTestLikeOpcode(), 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::AArch64InstrInfo::isWhileOpcode(), llvm::SIInstrInfo::isWMMA(), llvm::SIInstrInfo::isWQM(), llvm::PPCInstrInfo::isXFormMemOp(), llvm::PPCInstrInfo::isZExt32To64(), llvm::SIInstrInfo::legalizeGenericOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOperandsVOP2(), llvm::SIInstrInfo::legalizeOperandsVOP3(), llvm::SIInstrInfo::legalizeOpWithMove(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMGetUsedValue(), LLVMOrcExecutionSessionGetSymbolStringPool(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::XtensaInstrInfo::loadImmediate(), llvm::SystemZInstrInfo::loadImmediate(), llvm::ARCInstrInfo::loadImmediate(), llvm::XCoreInstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadImmediate(), llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::SystemZInstrInfo::loadRegFromStackSlot(), llvm::XtensaInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::BPFInstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::LoongArchInstrInfo::loadRegFromStackSlot(), llvm::RISCVInstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::CSKYInstrInfo::loadRegFromStackSlot(), llvm::M68kInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::LanaiInstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::loadStoreTileReg(), LowerSETCCCARRY(), llvm::Mips16InstrInfo::makeFrame(), llvm::SIInstrInfo::materializeImmediate(), llvm::PPCInstrInfo::materializeImmPostRA(), llvm::SIInstrInfo::moveFlatAddrToVGPR(), llvm::Expected< T >::moveInto(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::CSKYInstrInfo::movImm(), llvm::RISCVInstrInfo::mulImm(), llvm::APSInt::operator!=(), llvm::APSInt::operator<(), llvm::APSInt::operator<=(), llvm::APSInt::operator==(), llvm::APSInt::operator>(), llvm::APSInt::operator>=(), llvm::PPCInstrInfo::optimizeCmpPostRA(), llvm::AArch64InstrInfo::optimizeCompareInstr(), llvm::SIInstrInfo::optimizeCompareInstr(), llvm::LanaiInstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::PPCInstrInfo::optimizeCompareInstr(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::Thumb2InstrInfo::optimizeSelect(), llvm::RISCVInstrInfo::optimizeSelect(), llvm::AMDGPUTargetLowering::performSelectCombine(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::PPCInstrInfo::PredicateInstruction(), llvm::SystemZInstrInfo::PredicateInstruction(), llvm::SIInstrInfo::pseudoToMCOpcode(), llvm::vfs::OverlayFileSystem::pushOverlay(), llvm::SIInstrInfo::readlaneVGPRToSGPR(), llvm::SIInstrInfo::reMaterialize(), llvm::ARMBaseInstrInfo::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::ScaledNumber< DigitsT >::scale(), llvm::ARMBaseInstrInfo::setExecutionDomain(), llvm::X86InstrInfo::setExecutionDomain(), llvm::X86InstrInfo::setExecutionDomainCustom(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::M68kInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), stripNonLineTableDebugInfo(), llvm::X86InstrInfo::unfoldMemoryOperand(), llvm::SIInstrInfo::usesFPDPRounding(), llvm::R600InstrInfo::usesTextureCache(), llvm::R600InstrInfo::usesVertexCache(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), and llvm::SIInstrInfo::verifyInstruction().
decltype(auto) llvm::get | ( | const StringMapEntry< ValueTy > & | E | ) |
Definition at line 161 of file StringMapEntry.h.
decltype(auto) llvm::get | ( | StringMapEntry< ValueTy > & | E | ) |
Definition at line 152 of file StringMapEntry.h.
unsigned llvm::get_cpus | ( | ) |
Returns how many physical CPUs or NUMA groups the system has.
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:
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 192 of file LLVMContextImpl.cpp.
References X.
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.
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.
Definition at line 55 of file StableHashing.h.
Referenced by llvm::GlobalMergeFunc::analyze(), and stable_hash_name().
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.
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.
References Name.
Referenced by llvm::TimeTraceProfiler::TimeTraceProfiler().
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.
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().
|
inlinestatic |
Compute the addressing mode from an machine instruction starting with the given operand.
Definition at line 92 of file X86InstrBuilder.h.
References llvm::X86AddressMode::Base, llvm::X86AddressMode::BaseType, llvm::X86AddressMode::Disp, llvm::X86AddressMode::FrameIndex, llvm::X86AddressMode::FrameIndexBase, llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getReg(), llvm::X86AddressMode::GV, llvm::X86AddressMode::IndexReg, llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isReg(), MI, llvm::X86AddressMode::Reg, llvm::X86AddressMode::RegBase, and llvm::X86AddressMode::Scale.
Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().
void llvm::getAddressSanitizerParams | ( | const Triple & | TargetTriple, |
int | LongSize, | ||
bool | IsKasan, | ||
uint64_t * | ShadowBase, | ||
int * | MappingScale, | ||
bool * | OrShadowOffset | ||
) |
Definition at line 606 of file AddressSanitizer.cpp.
References getShadowMapping().
|
inline |
Definition at line 883 of file ARMBaseInstrInfo.h.
References MI.
MaybeAlign llvm::getAlign | ( | const CallInst & | I, |
unsigned | Index | ||
) |
Definition at line 341 of file NVPTXUtilities.cpp.
MaybeAlign llvm::getAlign | ( | const Function & | F, |
unsigned | Index | ||
) |
Definition at line 323 of file NVPTXUtilities.cpp.
References F, findAllNVVMAnnotation(), and Index.
Referenced by AddNodeIDCustom(), computeCommonAlignment(), llvm::SelectionDAG::computeKnownBits(), llvm::IRBuilderBase::CreateThreadLocalAddress(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::MachineConstantPool::getConstantPoolIndex(), llvm::RISCVConstantPoolValue::getExistingMachineCPValue(), llvm::SystemZConstantPoolValue::getExistingMachineCPValue(), llvm::ARMConstantPoolValue::getExistingMachineCPValueImpl(), llvm::CSKYConstantPoolValue::getExistingMachineCPValueImpl(), llvm::XtensaConstantPoolValue::getExistingMachineCPValueImpl(), llvm::NVPTXTargetLowering::getFunctionArgumentAlignment(), llvm::ARMBaseInstrInfo::getNumMicroOps(), llvm::ARMBaseInstrInfo::getOperandLatency(), and llvm::AMDGPUTargetLowering::shouldReduceLoadWidth().
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().
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 500 of file MemoryBuiltins.cpp.
References AnyAlloc, checkFnAllocKind(), getAllocationDataForFunction(), getCalledFunction(), getFreeFunctionDataForFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Attribute::getValueAsString(), llvm::TargetLibraryInfo::has(), I, llvm::Attribute::isValid(), and mangledNameForMallocFamily().
Referenced by isAllocSiteRemovable().
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, getAllocationSize(), llvm::CallBase::getArgOperand(), llvm::Instruction::getDataLayout(), GetStringLength(), llvm::Value::getType(), llvm::ConstantInt::getValue(), Size, StrDupLike, and llvm::APInt::zext().
Referenced by llvm::ObjectSizeOffsetVisitor::visitCallBase().
Definition at line 395 of file VECustomDAG.cpp.
References getNodeAVL(), llvm::SDNode::getOperand(), and isLegalAVL().
Referenced by llvm::VECustomDAG::getPack(), llvm::VECustomDAG::getUnpack(), llvm::VETargetLowering::LowerOperation(), llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::splitPackedLoadStore(), and llvm::VETargetLowering::splitVectorOp().
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().
Returns an APFloat from Val converted to the appropriate size.
Definition at line 651 of file Utils.cpp.
References llvm::APFloat::convert(), llvm_unreachable, and Size.
Referenced by llvm::MachineIRBuilder::buildFConstant().
EVT llvm::getApproximateEVTForLLT | ( | LLT | Ty, |
LLVMContext & | Ctx | ||
) |
Definition at line 57 of file LowLevelTypeUtils.cpp.
References getApproximateEVTForLLT(), llvm::LLT::getElementCount(), llvm::LLT::getElementType(), llvm::EVT::getIntegerVT(), llvm::LLT::getSizeInBits(), llvm::EVT::getVectorVT(), and llvm::LLT::isVector().
Referenced by llvm::TargetLoweringBase::allowsMemoryAccess(), getApproximateEVTForLLT(), llvm::TargetLoweringBase::isTruncateFree(), llvm::TargetLoweringBase::isZExtFree(), llvm::LegalizerHelper::lowerThreewayCompare(), llvm::CombinerHelper::matchSDivByConst(), llvm::CombinerHelper::matchUDivByConst(), and llvm::LegalizerHelper::widenScalar().
|
inline |
Definition at line 711 of file ValueTracking.h.
References getArgumentAliasingToReturnedPointer().
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 6699 of file ValueTracking.cpp.
References assert(), and isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().
Referenced by getArgumentAliasingToReturnedPointer(), getUnderlyingObject(), isDereferenceableAndAlignedPointer(), and isKnownNonZeroFromOperator().
unsigned llvm::getArithmeticReductionInstruction | ( | Intrinsic::ID | RdxID | ) |
Returns the arithmetic instruction opcode used when expanding a reduction.
Definition at line 960 of file LoopUtils.cpp.
References llvm_unreachable.
Referenced by getReductionIdentity(), and llvm::BasicTTIImplBase< T >::getTypeBasedIntrinsicInstrCost().
std::optional< std::string > llvm::getArm64ECDemangledFunctionName | ( | StringRef | Name | ) |
Returns the ARM64EC demangled function name, unless the input is not mangled.
Definition at line 317 of file Mangler.cpp.
References Name.
Referenced by emitLinkerFlagsForGlobalCOFF(), llvm::object::COFFImportFile::printSymbolName(), and llvm::object::writeImportLibrary().
std::optional< size_t > llvm::getArm64ECInsertionPointInMangledName | ( | std::string_view | MangledName | ) |
Definition at line 2433 of file MicrosoftDemangle.cpp.
References consumeFront(), and D.
Referenced by 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 getArm64ECInsertionPointInMangledName(), and Name.
Referenced by llvm::AArch64MCInstLower::GetGlobalValueSymbol(), and llvm::object::writeImportLibrary().
|
static |
Definition at line 280 of file DebugProgramInstruction.cpp.
References llvm::ValueAsMetadata::get().
Referenced by llvm::DbgVariableRecord::addVariableLocationOps(), llvm::DbgVariableIntrinsic::addVariableLocationOps(), llvm::DbgVariableRecord::replaceVariableLocationOp(), and llvm::DbgVariableIntrinsic::replaceVariableLocationOp().
Definition at line 498 of file StringRef.cpp.
References consumeSignedInteger().
Referenced by llvm::StringRef::getAsInteger().
Return the set of all assumptions for the call CB
.
Definition at line 91 of file Assumptions.cpp.
References A, AssumptionAttrKey, and llvm::CallBase::getFnAttr().
Return the set of all assumptions for the function F
.
Definition at line 86 of file Assumptions.cpp.
References A, AssumptionAttrKey, and F.
Helper functions for StringRef::getAsInteger.
GetAsUnsignedInteger - Workhorse method that converts a integer character sequence of radix up to 36 to an unsigned long long value.
Definition at line 488 of file StringRef.cpp.
References consumeUnsignedInteger().
Referenced by llvm::StringRef::getAsInteger(), llvm::SparcTargetLowering::getRegForInlineAsmConstraint(), INITIALIZE_PASS(), llvm::yaml::ScalarTraits< Align >::input(), llvm::yaml::ScalarTraits< MaybeAlign >::input(), llvm::yaml::ScalarTraits< uuid_t >::input(), llvm::sys::unicode::nameToGeneratedCodePoint(), llvm::MachO::PackedVersion::parse32(), llvm::MachO::PackedVersion::parse64(), and parsePhysicalReg().
|
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 5049 of file Instructions.h.
References I, and llvm_unreachable.
Referenced by isTsanAtomic(), LLVMGetAtomicSyncScopeID(), and LLVMIsAtomicSingleThread().
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 3013 of file InlineCost.cpp.
References llvm::InlineResult::failure(), functionsHaveCompatibleAttributes(), llvm::PointerType::getAddressSpace(), I, isInlineViable(), and llvm::InlineResult::success().
Referenced by getInlineCost(), and llvm::InlineAdvisor::getMandatoryKind().
|
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 740 of file AArch64InstrInfo.h.
References llvm_unreachable.
std::optional< int > llvm::getAVLPos | ( | unsigned | ) |
The VE backend uses a two-staged process to lower and legalize vector instructions:
Definition at line 166 of file VECustomDAG.cpp.
References llvm::ISD::getVPExplicitVectorLengthIdx(), isVVPBinaryOp(), and llvm::VEISD::VEC_BROADCAST.
Referenced by getNodeAVL(), llvm::VETargetLowering::legalizePackedAVL(), and llvm::VETargetLowering::splitVectorOp().
|
inlinestatic |
Definition at line 116 of file Discriminator.h.
|
inlinestatic |
Definition at line 119 of file Discriminator.h.
References BaseDiscriminatorBitWidth.
Referenced by llvm::DILocation::getBaseDiscriminatorBits().
template const SimplifyQuery llvm::getBestSimplifyQuery | ( | AnalysisManager< Function > & | , |
Function & | |||
) |
const SimplifyQuery llvm::getBestSimplifyQuery | ( | AnalysisManager< T, TArgs... > & | AM, |
Function & | F | ||
) |
Definition at line 7337 of file InstructionSimplify.cpp.
References F.
const SimplifyQuery llvm::getBestSimplifyQuery | ( | LoopStandardAnalysisResults & | AR, |
const DataLayout & | DL | ||
) |
Definition at line 7331 of file InstructionSimplify.cpp.
References llvm::LoopStandardAnalysisResults::AC, DL, llvm::LoopStandardAnalysisResults::DT, and llvm::LoopStandardAnalysisResults::TLI.
const SimplifyQuery llvm::getBestSimplifyQuery | ( | Pass & | P, |
Function & | F | ||
) |
Definition at line 7321 of file InstructionSimplify.cpp.
References F, llvm::AssumptionCacheTracker::getAssumptionCache(), llvm::TargetLibraryInfoWrapperPass::getTLI(), and P.
Referenced by llvm::CorrelatedValuePropagationPass::run(), and llvm::LoopRotatePass::run().
Expected< BitcodeFileContents > llvm::getBitcodeFileContents | ( | MemoryBufferRef | Buffer | ) |
Returns the contents of a bitcode file.
This includes the raw contents of the symbol table embedded in the bitcode file. Clients which require a symbol table should prefer to use irsymtab::read instead of this function because it creates a reader for the irsymtab and handles upgrading bitcode files without a symbol table or with an old symbol table.
Definition at line 8372 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamEntry::Error, error, F, llvm::Expected< T >::get(), llvm::BitstreamCursor::getBitcodeBytes(), llvm::MemoryBufferRef::getBufferIdentifier(), llvm::BitstreamCursor::GetCurrentBitNo(), llvm::BitstreamCursor::getCurrentByteNo(), I, llvm::bitc::IDENTIFICATION_BLOCK_ID, initStream(), llvm::bitc::MODULE_BLOCK_ID, readBlobInRecord(), llvm::BitstreamEntry::Record, reverse(), llvm::ArrayRef< T >::size(), llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), llvm::bitc::STRTAB_BLOB, llvm::bitc::STRTAB_BLOCK_ID, llvm::BitstreamEntry::SubBlock, llvm::bitc::SYMTAB_BLOB, llvm::bitc::SYMTAB_BLOCK_ID, and llvm::Expected< T >::takeError().
Referenced by getBitcodeModuleList(), and llvm::object::readIRSymtab().
Expected< BitcodeLTOInfo > llvm::getBitcodeLTOInfo | ( | MemoryBufferRef | Buffer | ) |
Returns LTO information for the specified bitcode file.
Definition at line 8772 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by llvm::LTOModule::isThinLTO().
Expected< std::vector< BitcodeModule > > llvm::getBitcodeModuleList | ( | MemoryBufferRef | Buffer | ) |
Returns a list of modules in the specified bitcode buffer.
Definition at line 8364 of file BitcodeReader.cpp.
References getBitcodeFileContents().
Referenced by llvm::object::IRObjectFile::create(), llvm::lto::findThinLTOModule(), and getSingleModule().
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 8746 of file BitcodeReader.cpp.
References initStream(), readIdentificationCode(), and llvm::Expected< T >::takeError().
Referenced by llvm::LTOModule::getProducerString().
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 8730 of file BitcodeReader.cpp.
References initStream(), readTriple(), and llvm::Expected< T >::takeError().
Referenced by getBitcodeFileMachine(), isAnyArm64COFF(), llvm::LTOModule::isBitcodeForTarget(), and isECObject().
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 5989 of file SelectionDAG.cpp.
References llvm::ISD::ANY_EXTEND, llvm::APInt::getActiveBits(), llvm::ConstantSDNode::getAPIntValue(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getScalarValueSizeInBits(), llvm::SDValue::getValueType(), isBitwiseNot(), isConstOrConstSplat(), and llvm::ISD::TRUNCATE.
Referenced by haveNoCommonBitsSetCommutative(), and visitORCommutative().
|
static |
Definition at line 359 of file SPIRVBuiltins.cpp.
References assert(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), isSpvIntrinsic(), MI, and MRI.
Referenced by buildEnqueueKernel(), and getBlockStructType().
|
static |
Definition at line 410 of file SPIRVBuiltins.cpp.
References assert(), getBlockStructInstr(), getMachineInstrType(), isSpvIntrinsic(), MI, and MRI.
Referenced by buildEnqueueKernel().
unsigned llvm::getBLRCallOpcode | ( | const MachineFunction & | MF | ) |
Return opcode to be used for indirect calls.
Definition at line 9989 of file AArch64InstrInfo.cpp.
References llvm::MachineFunction::getSubtarget().
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and getCallOpcode().
unsigned llvm::getBLXOpcode | ( | const MachineFunction & | MF | ) |
Definition at line 6759 of file ARMBaseInstrInfo.cpp.
References llvm::MachineFunction::getSubtarget().
unsigned llvm::getBLXpredOpcode | ( | const MachineFunction & | MF | ) |
Definition at line 6769 of file ARMBaseInstrInfo.cpp.
References llvm::MachineFunction::getSubtarget().
Returns true if Name is applied to TheLoop and enabled.
Definition at line 1109 of file LoopInfo.cpp.
References getOptionalBoolLoopAttribute(), and Name.
Referenced by llvm::ARMTTIImpl::getUnrollingPreferences(), llvm::RISCVTTIImpl::getUnrollingPreferences(), hasDisableAllTransformsHint(), hasDisableLICMTransformsHint(), hasDistributeTransformation(), hasLICMVersioningTransformation(), hasMustProgress(), hasUnrollAndJamTransformation(), hasUnrollTransformation(), and hasVectorizeTransformation().
MDNode * llvm::getBranchWeightMDNode | ( | const Instruction & | I | ) |
Get the branch weights metadata node.
I | The Instruction to get the weights from. |
Definition at line 146 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().
Return the offset to the first branch weight data.
Definition at line 138 of file ProfDataUtils.cpp.
References hasBranchWeightOrigin().
Referenced by extractProfTotalWeight(), getNumBranchWeights(), and scaleProfData().
|
inlinestatic |
Definition at line 129 of file AArch64BaseInfo.h.
References Reg.
Get the bug report message that will be output upon a crash.
Definition at line 211 of file PrettyStackTrace.cpp.
References BugReportMsg.
|
inline |
Returns an iterator pointing beyond the bundle containing I
.
Definition at line 69 of file MachineInstrBundle.h.
References I.
|
inline |
Returns an iterator pointing beyond the bundle containing I
.
Definition at line 60 of file MachineInstrBundle.h.
References I.
Referenced by collectCallSiteParameters(), getCallInstr(), llvm::SlotIndexes::getInstructionIndex(), llvm::LiveIntervals::handleMoveIntoNewBundle(), and llvm::HexagonInstrInfo::nonDbgBundleSize().
|
inline |
Returns an iterator to the first instruction in the bundle containing I
.
Definition at line 52 of file MachineInstrBundle.h.
References I.
|
inline |
Returns an iterator to the first instruction in the bundle containing I
.
Definition at line 44 of file MachineInstrBundle.h.
References I.
Referenced by TransferTracker::flushDbgValues(), getCallInstr(), llvm::SlotIndexes::getInstructionIndex(), llvm::MIBundleOperandIteratorBase< ValueT >::MIBundleOperandIteratorBase(), llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator*(), llvm::MachineRegisterInfo::defusechain_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++(), and llvm::MachineRegisterInfo::defusechain_instr_iterator< ReturnUses, ReturnDefs, SkipDebug, ByOperand, ByInstr, ByBundle >::operator++().
Expected< std::string > llvm::getCachedOrDownloadArtifact | ( | StringRef | UniqueKey, |
StringRef | UrlPath | ||
) |
Fetches any debuginfod artifact using the default local cache directory and server URLs.
Definition at line 163 of file Debuginfod.cpp.
References getCachedOrDownloadArtifact(), getDefaultDebuginfodCacheDirectory(), getDefaultDebuginfodTimeout(), getDefaultDebuginfodUrls(), and llvm::Expected< T >::takeError().
Referenced by getCachedOrDownloadArtifact(), getCachedOrDownloadDebuginfo(), getCachedOrDownloadExecutable(), and getCachedOrDownloadSource().
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 251 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(), and llvm::Expected< T >::takeError().
Expected< std::string > llvm::getCachedOrDownloadDebuginfo | ( | BuildIDRef | ID | ) |
Definition at line 157 of file Debuginfod.cpp.
References getCachedOrDownloadArtifact(), getDebuginfodCacheKey(), and getDebuginfodDebuginfoUrlPath().
Expected< std::string > llvm::getCachedOrDownloadDebuginfo | ( | object::BuildIDRef | ID | ) |
Fetches a debug binary by searching the default local cache directory and server URLs.
Referenced by llvm::DebuginfodFetcher::fetch(), and llvm::DebuginfodCollection::findDebugBinaryPath().
Expected< std::string > llvm::getCachedOrDownloadExecutable | ( | BuildIDRef | ID | ) |
Definition at line 145 of file Debuginfod.cpp.
References getCachedOrDownloadArtifact(), getDebuginfodCacheKey(), and getDebuginfodExecutableUrlPath().
Expected< std::string > llvm::getCachedOrDownloadExecutable | ( | object::BuildIDRef | ID | ) |
Fetches an executable by searching the default local cache directory and server URLs.
Referenced by llvm::DebuginfodCollection::findBinaryPath().
Definition at line 132 of file Debuginfod.cpp.
References getCachedOrDownloadArtifact(), getDebuginfodCacheKey(), and getDebuginfodSourceUrlPath().
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.
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 2927 of file InlineCost.cpp.
References CallPenalty, DL, llvm::PointerType::getAddressSpace(), llvm::TargetTransformInfo::getInlineCallPenalty(), I, and InstrCost.
CapabilityList llvm::getCapabilitiesEnabledByExtension | ( | SPIRV::Extension::Extension | Extension | ) |
Definition at line 136 of file SPIRVBaseInfo.cpp.
References llvm::ArrayRef< T >::end(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
CGPassBuilderOption llvm::getCGPassBuilderOption | ( | ) |
Definition at line 476 of file TargetPassConfig.cpp.
References DebugifyAndStripAll, DebugifyCheckAndStripAll, DisableAtExitBasedGlobalDtorLowering, DisableCFIFixup, DisableCGP, DisableConstantHoisting, DisableExpandReductions, DisableLSR, DisableMergeICmps, DisablePartialLibcallInlining, DisableRAFSProfileLoader, DisableSelectOptimize, EarlyLiveIntervals, EnableBlockPlacementStats, EnableFastISelOption, EnableGlobalISelAbort, EnableGlobalISelOption, EnableGlobalMergeFunc, EnableImplicitNullChecks, EnableIPRA, EnableMachineFunctionSplitter, EnableMachineOutliner, FSProfileFile, GCEmptyBlocks, MISchedPostRA, OptimizeRegAlloc, PrintAfterISel, PrintISelInput, SET_BOOLEAN_OPTION, SET_OPTION, and VerifyMachineCode.
Definition at line 267 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Definition at line 271 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Definition at line 275 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
std::string llvm::getCodeGenDataSectionName | ( | CGDataSectKind | CGSK, |
Triple::ObjectFormatType | OF, | ||
bool | AddSegmentInfo = true |
||
) |
Definition at line 127 of file CodeGenData.cpp.
References llvm::Triple::COFF, and llvm::Triple::MachO.
Referenced by llvm::GlobalMergeFunc::emitFunctionMap(), and llvm::CodeGenDataReader::mergeFromObjectFile().
cl::OptionCategory & llvm::getColorCategory | ( | ) |
Definition at line 19 of file WithColor.cpp.
bool llvm::getConstantDataArrayInfo | ( | const Value * | V, |
ConstantDataArraySlice & | Slice, | ||
unsigned | ElementSize, | ||
uint64_t | Offset = 0 |
||
) |
Returns true if the value V
is a pointer into a ConstantDataArray.
If successful Slice
will point to a ConstantDataArray info object with an appropriate offset.
Definition at line 6481 of file ValueTracking.cpp.
References llvm::ConstantDataArraySlice::Array, assert(), DL, llvm::Type::getArrayNumElements(), llvm::GlobalValue::getDataLayout(), llvm::GlobalVariable::getInitializer(), getUnderlyingObject(), llvm::GlobalValue::getValueType(), llvm::GlobalVariable::hasDefinitiveInitializer(), llvm::GlobalVariable::isConstant(), llvm::Type::isIntegerTy(), llvm::Constant::isNullValue(), llvm::ConstantDataArraySlice::Length, Length, llvm::ConstantDataArraySlice::Offset, Offset, ReadByteArrayFromGlobal(), and UINT64_MAX.
Referenced by getConstantStringInfo(), GetStringLengthH(), and isMemSrcFromConstant().
const ConstantFP * llvm::getConstantFPVRegVal | ( | Register | VReg, |
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 459 of file Utils.cpp.
Referenced by llvm::MIPatternMatch::bind_helper< const ConstantFP * >::bind(), ConstantFoldFPBinOp(), getFConstantVRegValWithLookThrough(), isKnownNeverNaN(), llvm::AMDGPULegalizerInfo::legalizeFastUnsafeFDIV(), llvm::CombinerHelper::matchCombineFMinMaxNaN(), and llvm::CombinerHelper::matchConstantFoldFMA().
ConstantRange llvm::getConstantRangeFromMetadata | ( | const MDNode & | RangeMD | ) |
Parse out a conservative ConstantRange from !range metadata.
E.g. if RangeMD is !{i32 0, i32 10, i32 15, i32 20} then return [0, 20).
Definition at line 2264 of file ConstantRange.cpp.
References assert(), High, Low, and llvm::ConstantRange::unionWith().
Referenced by computeConstantRange(), llvm::SelectionDAG::ComputeNumSignBits(), computeNumSignBitsFromRangeMetadata(), copyRangeMetadata(), llvm::GlobalValue::getAbsoluteSymbolRange(), getFromRangeMetadata(), getRange(), GetRangeFromMetadata(), getValueFromMetadata(), and hoistConditionalLoadsStores().
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 6576 of file ValueTracking.cpp.
References llvm::ConstantDataArraySlice::Array, llvm::ConstantDataSequential::getAsString(), getConstantDataArrayInfo(), llvm::ConstantDataArraySlice::Length, and llvm::ConstantDataArraySlice::Offset.
Referenced by callBufferedPrintfStart(), emitAMDGPUPrintfCall(), llvm::WebAssemblyAsmPrinter::EmitFunctionAttributes(), foldMemChr(), getAnnotation(), getAsConstantStr(), optimizeMemCmpVarSize(), and optimizeNaN().
Definition at line 26 of file AMDGPUISelDAGToDAG.h.
References llvm::CallingConv::C, and N.
Referenced by packConstantV2I16().
|
static |
Definition at line 381 of file SPIRVBuiltins.cpp.
References assert(), DefMI, llvm::MachineOperand::getCImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::ConstantInt::getValue(), llvm::APInt::getZExtValue(), llvm::MachineOperand::isCImm(), llvm::MachineOperand::isReg(), isSpvIntrinsic(), MRI, and Reg.
Referenced by generateCoopMatrInst(), and generateLoadStoreInst().
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 llvm::Intrinsic::not_intrinsic.
Returns the types contained in Ty
.
For struct types, it returns the elements, all other types are returned directly.
Definition at line 92 of file VectorTypeUtils.h.
Referenced by getVectorizedTypeVF().
unsigned llvm::getContributionIndex | ( | DWARFSectionKind | Kind, |
uint32_t | IndexVersion | ||
) |
Definition at line 162 of file DWP.cpp.
References assert(), and serializeSectionKind().
Referenced by addAllTypesFromDWP(), addAllTypesFromTypesSection(), and write().
|
static |
Definition at line 2821 of file SPIRVBuiltins.cpp.
References assert(), llvm::TargetExtType::getIntParameter(), llvm::TargetExtType::getNumIntParameters(), llvm::TargetExtType::getNumTypeParameters(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeCoopMatr(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), and llvm::TargetExtType::getTypeParameter().
Referenced by llvm::SPIRV::lowerBuiltinType().
|
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 121 of file InstrProf.h.
|
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 129 of file InstrProf.h.
Return smallest type that covers both OrigTy
and TargetTy
and is multiple of TargetTy.
Definition at line 1239 of file Utils.cpp.
References alignTo(), llvm::LLT::getElementCount(), llvm::LLT::getElementType(), llvm::ElementCount::getFixed(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), getLCMType(), llvm::LLT::getScalarSizeInBits(), llvm::LLT::isFixedVector(), llvm::LLT::isScalableVector(), llvm::LLT::isVector(), llvm_unreachable, and llvm::LLT::scalarOrVector().
Referenced by buildCopyToRegs(), mergeVectorRegsToResultRegs(), and llvm::LegalizationArtifactCombiner::ArtifactValueFinder::tryCombineMergeLike().
Processes a CPU name.
Definition at line 33 of file AVRTargetMachine.cpp.
References llvm::StringRef::empty().
Definition at line 26 of file PPCRegisterInfo.h.
Referenced by llvm::PPCInstrInfo::copyPhysReg(), llvm::PPCRegisterInfo::lowerCRBitRestore(), and llvm::PPCRegisterInfo::lowerCRBitSpilling().
|
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 669 of file DebugProgramInstruction.h.
References llvm::DbgMarker::getDbgRecordRange(), and llvm::DbgMarker::getEmptyDbgRecordRange().
Referenced by llvm::Instruction::getDbgRecordRange().
Definition at line 558 of file MachineInstrBuilder.h.
References B, and llvm::RegState::Dead.
Referenced by llvm::PPCInstrInfo::commuteInstructionImpl(), llvm::CSKYInstrInfo::copyPhysReg(), finalizeBundle(), getRegState(), InsertLDR_STR(), llvm::RISCVInstrInfo::movImm(), and llvm::X86InstrInfo::unfoldMemoryOperand().
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 xxh3_64bits().
Referenced by getCachedOrDownloadDebuginfo(), getCachedOrDownloadExecutable(), and getCachedOrDownloadSource().
std::string llvm::getDebuginfodDebuginfoUrlPath | ( | BuildIDRef | ID | ) |
Definition at line 150 of file Debuginfod.cpp.
References llvm::sys::path::append(), buildIDToString(), and llvm::sys::path::posix.
std::string llvm::getDebuginfodDebuginfoUrlPath | ( | object::BuildIDRef | ID | ) |
Get the full URL path for a debug binary request of a given BuildID.
Referenced by getCachedOrDownloadDebuginfo().
std::string llvm::getDebuginfodExecutableUrlPath | ( | BuildIDRef | ID | ) |
Definition at line 138 of file Debuginfod.cpp.
References llvm::sys::path::append(), buildIDToString(), and llvm::sys::path::posix.
std::string llvm::getDebuginfodExecutableUrlPath | ( | object::BuildIDRef | ID | ) |
Get the full URL path for an executable request of a given BuildID.
Referenced by getCachedOrDownloadExecutable().
std::string llvm::getDebuginfodSourceUrlPath | ( | BuildIDRef | ID, |
StringRef | SourceFilePath | ||
) |
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.
std::string llvm::getDebuginfodSourceUrlPath | ( | object::BuildIDRef | ID, |
StringRef | SourceFilePath | ||
) |
Get the full URL path for a source request of a given BuildID and file path.
Referenced by getCachedOrDownloadSource().
|
static |
Compute the total size of the debug info.
Definition at line 53 of file DWARFLinker.cpp.
Referenced by llvm::dwarf_linker::classic::DWARFLinker::link().
Return Debug Info Metadata Version by checking module flags.
Definition at line 942 of file DebugInfo.cpp.
Referenced by LLVMGetModuleDebugMetadataVersion().
Definition at line 567 of file MachineInstrBuilder.h.
References B, and llvm::RegState::Debug.
Referenced by getRegState().
DebugLoc llvm::getDebugValueLoc | ( | DbgVariableIntrinsic * | DII | ) |
Produce a DebugLoc to use for each dbg.declare that is promoted to a dbg.value.
Definition at line 175 of file DebugInfo.cpp.
References llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::DebugLoc::getInlinedAt(), and llvm::DebugLoc::getScope().
Referenced by ConvertDebugDeclareToDebugValue(), InsertDebugValueAtStoreLoc(), and LowerDbgDeclare().
DebugLoc llvm::getDebugValueLoc | ( | DbgVariableRecord * | DVR | ) |
Definition at line 187 of file DebugInfo.cpp.
References llvm::DbgRecord::getContext(), llvm::DbgRecord::getDebugLoc(), llvm::DebugLoc::getInlinedAt(), and llvm::DebugLoc::getScope().
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().
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.
Referenced by getCachedOrDownloadArtifact().
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 llvm::StringRef::split().
Referenced by canUseDebuginfod(), and getCachedOrDownloadArtifact().
EHPersonality llvm::getDefaultEHPersonality | ( | const Triple & | T | ) |
Definition at line 86 of file EHPersonalities.cpp.
Referenced by getDefaultPersonalityFn().
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, ML, Size, and UseInlinePriority.
Referenced by getInlineOrder().
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 51 of file CaptureTracking.cpp.
References DefaultMaxUsesToExplore.
Referenced by PointerMayBeCaptured().
size_t llvm::getDefaultPrecision | ( | FloatStyle | Style | ) |
Definition at line 254 of file NativeFormatting.cpp.
References llvm_unreachable.
Referenced by llvm::format_provider< T, std::enable_if_t< support::detail::use_double_formatter< T >::value > >::format(), and write_double().
MachineInstr * llvm::getDefIgnoringCopies | ( | Register | Reg, |
const MachineRegisterInfo & | MRI | ||
) |
Find the def instruction for Reg
, folding away any trivial copies.
May return nullptr if Reg
is not a generic virtual register.
Also walks through hints such as G_ASSERT_ZEXT.
Definition at line 486 of file Utils.cpp.
References getDefSrcRegIgnoringCopies(), and MRI.
Referenced by llvm::GISelAddressing::aliasIsKnownForLoadStore(), llvm::CombinerHelper::applyBuildFnMO(), llvm::CombinerHelper::buildSDivUsingMul(), llvm::CombinerHelper::buildUDivUsingMul(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::AMDGPU::getBaseWithConstantOffset(), llvm::GIConstant::getConstant(), llvm::GFConstant::getConstant(), getOpcodeDef(), getTestBitReg(), llvm::CombinerHelper::matchCombineTruncOfShift(), llvm::CombinerHelper::matchExtendThroughPhis(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVectorTrunc(), llvm::CombinerHelper::matchExtractVectorElementWithDifferentIndices(), llvm::CombinerHelper::matchHoistLogicOpWithSameOpcodeHands(), llvm::CombinerHelper::matchNarrowBinopFeedingAnd(), llvm::CombinerHelper::matchSextOfTrunc(), matchUnaryPredicate(), matchZeroExtendFromS32(), llvm::CombinerHelper::matchZextOfTrunc(), llvm::CallLowering::parametersInCSRMatch(), and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().
MachineInstr * llvm::getDefInstrMaybeConstant | ( | Register & | ConstReg, |
const MachineRegisterInfo * | MRI | ||
) |
Definition at line 307 of file SPIRVUtils.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), MI, and MRI.
Referenced by generateGroupInst(), generateGroupUniformInst(), generateReadImageInst(), generateSpecConstantInst(), genWorkgroupQuery(), getIConstVal(), and processSwitchesConstants().
Definition at line 549 of file MachineInstrBuilder.h.
References B, and llvm::RegState::Define.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::Thumb1InstrInfo::copyPhysReg(), emitLoad(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::X86FrameLowering::emitSPUpdate(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), finalizeBundle(), getRegState(), INITIALIZE_PASS(), InsertLDR_STR(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), popRegsFromStack(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), and llvm::X86InstrInfo::unfoldMemoryOperand().
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::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), isPreISelGenericOptimizationHint(), and MRI.
Referenced by getDefIgnoringCopies(), getSrcRegIgnoringCopies(), isKnownToBeAPowerOfTwo(), llvm::CombinerHelper::matchEqualDefs(), and stripCopy().
Definition at line 114 of file DWARFExpression.cpp.
References llvm::ArrayRef< T >::size().
Referenced by getOpDesc(), and getSubOpDesc().
std::unique_ptr< InlineAdvisor > llvm::getDevelopmentModeAdvisor | ( | Module & | M, |
ModuleAnalysisManager & | MAM, | ||
std::function< bool(CallBase &)> | GetDefaultAdvice | ||
) |
Referenced by llvm::InlineAdvisorAnalysis::Result::tryCreate().
|
static |
Definition at line 1143 of file DiagnosticInfo.h.
References llvm::SourceMgr::DK_Error, llvm::SourceMgr::DK_Note, llvm::SourceMgr::DK_Remark, llvm::SourceMgr::DK_Warning, DS_Error, DS_Note, DS_Remark, DS_Warning, and llvm_unreachable.
DISubprogram * llvm::getDISubprogram | ( | const MDNode * | Scope | ) |
Find subprogram that is enclosing this scope.
Definition at line 169 of file DebugInfo.cpp.
References llvm::DILocalScope::getSubprogram().
Referenced by llvm::DebugHandlerBase::beginFunction(), llvm::DwarfCompileUnit::constructInlinedScopeDIE(), and llvm::DebugLoc::getFnDebugLoc().
|
inlinestatic |
Definition at line 168 of file AArch64BaseInfo.h.
References Reg.
const DWARFUnitIndex & llvm::getDWARFUnitIndex | ( | DWARFContext & | Context, |
DWARFSectionKind | Kind | ||
) |
Definition at line 893 of file DWARFUnit.cpp.
References assert(), DW_SECT_EXT_TYPES, llvm::DWARFContext::getCUIndex(), and llvm::DWARFContext::getTUIndex().
Definition at line 2432 of file DWARFLinker.cpp.
References llvm::DWARFDie::find(), and llvm::dwarf::toUnsigned().
Referenced by llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::isClangModuleRef(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::loadClangModule(), and llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::registerModuleReference().
|
inline |
Helper method for getting the code model, returning Default if CM does not have a value.
The tiny and kernel models will produce an error, so targets that support them or require more complex codemodel selection logic should implement and call their own getEffectiveCodeModel.
Definition at line 80 of file CodeGenTargetMachineImpl.h.
References Default, llvm::CodeModel::Kernel, report_fatal_error(), and llvm::CodeModel::Tiny.
|
static |
Definition at line 41 of file AVRTargetMachine.cpp.
References llvm::Reloc::Static.
|
static |
Definition at line 10 of file AVRELFStreamer.cpp.
References llvm::ELF::EF_AVR_ARCH_AVR1, llvm::ELF::EF_AVR_ARCH_AVR2, llvm::ELF::EF_AVR_ARCH_AVR25, llvm::ELF::EF_AVR_ARCH_AVR3, llvm::ELF::EF_AVR_ARCH_AVR31, llvm::ELF::EF_AVR_ARCH_AVR35, llvm::ELF::EF_AVR_ARCH_AVR4, llvm::ELF::EF_AVR_ARCH_AVR5, llvm::ELF::EF_AVR_ARCH_AVR51, llvm::ELF::EF_AVR_ARCH_AVR6, llvm::ELF::EF_AVR_ARCH_AVRTINY, llvm::ELF::EF_AVR_ARCH_XMEGA1, llvm::ELF::EF_AVR_ARCH_XMEGA2, llvm::ELF::EF_AVR_ARCH_XMEGA3, llvm::ELF::EF_AVR_ARCH_XMEGA4, llvm::ELF::EF_AVR_ARCH_XMEGA5, llvm::ELF::EF_AVR_ARCH_XMEGA6, and llvm::ELF::EF_AVR_ARCH_XMEGA7.
Referenced by llvm::AVRELFStreamer::AVRELFStreamer(), and llvm::SparcTargetELFStreamer::SparcTargetELFStreamer().
StringRef llvm::getEHPersonalityName | ( | EHPersonality | Pers | ) |
Definition at line 49 of file EHPersonalities.cpp.
References llvm_unreachable.
Referenced by getDefaultPersonalityFn().
DenseMap< const MachineBasicBlock *, int > llvm::getEHScopeMembership | ( | const MachineFunction & | MF | ) |
Definition at line 753 of file Analysis.cpp.
References classifyEHPersonality(), collectEHScopeMembers(), llvm::SmallVectorBase< Size_T >::empty(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::front(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::MachineFunction::getFunction(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getNumber(), llvm::Function::getPersonalityFn(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::hasEHScopes(), isAsynchronousEHPersonality(), llvm::MachineBasicBlock::isEHPad(), llvm::MachineBasicBlock::isEHScopeEntry(), MBB, MBBI, llvm::MachineBasicBlock::pred_empty(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Successor, and TII.
Referenced by INITIALIZE_PASS(), and llvm::BranchFolder::OptimizeFunction().
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().
Referenced by llvm::LoopBase< BlockT, LoopT >::getExitBlock(), llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlock(), and llvm::LoopBase< BlockT, LoopT >::hasNoExitBlocks().
DIExpression * llvm::getExpressionForConstant | ( | DIBuilder & | DIB, |
const Constant & | C, | ||
Type & | Ty | ||
) |
Given a constant, create a debug information expression.
Definition at line 3749 of file Local.cpp.
References llvm::APFloat::bitcastToAPInt(), llvm::CallingConv::C, llvm::DIBuilder::createConstantValueExpression(), FP, llvm::APInt::getRawData(), llvm::Type::getScalarSizeInBits(), llvm::APInt::getZExtValue(), llvm::Type::isFloatingPointTy(), llvm::Type::isPointerTy(), and llvm::APInt::trySExtValue().
Referenced by runIPSCCP().
|
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 940 of file GenericUniformityImpl.h.
References assert(), llvm::GenericCycle< ContextT >::contains(), dbgs(), llvm::GenericCycle< ContextT >::getHeader(), llvm::GenericCycle< ContextT >::getParentCycle(), llvm::GenericCycle< ContextT >::isReducible(), and LLVM_DEBUG.
Referenced by getOutermostDivergentCycle().
std::string llvm::getExtInstName | ( | SPIRV::InstructionSet::InstructionSet | Set, |
uint32_t | InstructionNumber | ||
) |
Definition at line 228 of file SPIRVBaseInfo.cpp.
References Lookup().
Referenced by llvm::SPIRVInstPrinter::printExtension().
SPIRV::InstructionSet::InstructionSet llvm::getExtInstSetFromString | ( | std::string | SetName | ) |
Definition at line 218 of file SPIRVBaseInfo.cpp.
References getExtInstSetName(), and llvm_unreachable.
std::string llvm::getExtInstSetName | ( | SPIRV::InstructionSet::InstructionSet | Set | ) |
Definition at line 203 of file SPIRVBaseInfo.cpp.
Referenced by getExtInstSetFromString().
|
inline |
Similar to getICmpCode but for FCmpInst.
This encodes a fcmp predicate into a four bit mask.
Definition at line 64 of file CmpInstAnalysis.h.
References assert(), CC, llvm::CmpInst::FCMP_FALSE, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_TRUE, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, and llvm::CmpInst::FCMP_UNO.
ISD::CondCode llvm::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.
Definition at line 221 of file Analysis.cpp.
References CC, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and llvm::ISD::SETUNE.
Referenced by llvm::SelectionDAGBuilder::EmitBranchForMergedCondition().
ISD::CondCode llvm::getFCmpCondCode | ( | FCmpInst::Predicate | Pred | ) |
getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point condition code.
This includes consideration of global floating-point math flags.
Definition at line 199 of file Analysis.cpp.
References llvm_unreachable, llvm::ISD::SETFALSE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETTRUE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, and llvm::ISD::SETUO.
Referenced by llvm::SelectionDAGBuilder::EmitBranchForMergedCondition(), foldFCmpToFPClassTest(), and lowerFCMPIntrinsic().
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 1433 of file Utils.cpp.
References getFConstantVRegValWithLookThrough(), and MRI.
Referenced by isConstantOrConstantSplatVectorFP(), llvm::MIPatternMatch::GFCstOrSplatGFCstMatch::match(), and llvm::CombinerHelper::matchFsubToFneg().
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().
|
inlinestatic |
Definition at line 38 of file M68kFixupKinds.h.
References FK_Data_1, FK_Data_2, FK_Data_4, FK_Data_8, FK_PCRel_1, FK_PCRel_2, FK_PCRel_4, FK_PCRel_8, isPCRel(), llvm_unreachable, and Size.
Definition at line 20 of file M68kFixupKinds.h.
References FK_Data_1, FK_Data_2, FK_Data_4, FK_PCRel_1, FK_PCRel_2, FK_PCRel_4, FK_SecRel_1, FK_SecRel_2, FK_SecRel_4, and llvm_unreachable.
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 8665 of file ValueTracking.cpp.
References assert(), llvm::CallingConv::C, llvm::ConstantExpr::getAdd(), llvm::CmpInst::getFlippedStrictnessPredicate(), llvm::ICmpInst::getUnsignedPredicate(), llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::isIntPredicate(), llvm::ICmpInst::isRelational(), llvm::CmpInst::isSigned(), and llvm::Constant::replaceUndefsWith().
Referenced by canonicalizeCmpWithConstant(), llvm::InstCombinerImpl::foldICmpShlConstant(), and llvm::InstCombinerImpl::matchThreeWayIntCompare().
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 1494 of file BuildLibCalls.cpp.
References assert(), llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::TargetLibraryInfo::getName(), llvm::Type::getTypeID(), llvm::Type::HalfTyID, hasFloatFn(), and llvm_unreachable.
Referenced by emitBinaryFloatFnCall(), and emitUnaryFloatFnCall().
const llvm::fltSemantics & llvm::getFltSemanticForLLT | ( | LLT | Ty | ) |
Get the appropriate floating point arithmetic semantic based on the bit size of the given scalar LLT.
Definition at line 74 of file LowLevelTypeUtils.cpp.
References assert(), llvm::LLT::getSizeInBits(), llvm::LLT::isScalar(), and llvm_unreachable.
Referenced by constantFoldFpUnary(), ConstantFoldIntToFloat(), llvm::AMDGPULegalizerInfo::legalizeFFREXP(), llvm::LegalizerHelper::lowerFPTOINT_SAT(), and llvm::LegalizerHelper::lowerISFPCLASS().
const X86InstrFMA3Group * llvm::getFMA3Group | ( | unsigned | Opcode, |
uint64_t | TSFlags | ||
) |
Returns a reference to a group of FMA3 opcodes to where the given Opcode
is included.
If the given Opcode
is not recognized as FMA3 and not included into any FMA3 group, then nullptr is returned.
Definition at line 158 of file X86InstrFMA3Info.cpp.
References assert(), BroadcastGroups, llvm::X86II::EncodingMask, llvm::ArrayRef< T >::end(), llvm::X86II::EVEX, llvm::X86II::EVEX_B, llvm::X86II::EVEX_RC, llvm::X86II::getBaseOpcodeFor(), Groups, I, llvm::X86InstrFMA3Group::Opcodes, llvm::X86II::OpMapMask, llvm::X86II::OpPrefixMask, partition_point(), llvm::X86II::PD, RoundGroups, llvm::X86II::T8, llvm::X86II::T_MAP6, verifyTables(), and llvm::X86II::VEX.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl(), and llvm::X86InstrInfo::findCommutedOpIndices().
|
inlinestatic |
getFpImmVal - get immediate representation of floating point value
Definition at line 148 of file VEISelLowering.h.
References N.
Referenced by isMImm().
Value * llvm::getFreedOperand | ( | const CallBase * | CB, |
const TargetLibraryInfo * | TLI | ||
) |
If this if a call to a free function, return the freed operand.
Definition at line 545 of file MemoryBuiltins.cpp.
References checkFnAllocKind(), llvm::CallBase::getArgOperand(), llvm::CallBase::getArgOperandWithAttribute(), getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::TargetLibraryInfo::has(), and isLibFreeFunction().
Referenced by GetLocation(), isAllocSiteRemovable(), llvm::InstCombinerImpl::visitCallInst(), and wouldInstructionBeTriviallyDead().
|
inlinestatic |
Definition at line 94 of file Discriminator.h.
References assert(), llvm::sampleprof::Base, getFSPassBitEnd(), getNumFSPasses(), I, and P.
Referenced by getLastFSPassBitBegin(), llvm::MIRAddFSDiscriminators::MIRAddFSDiscriminators(), llvm::MIRProfileLoaderPass::MIRProfileLoaderPass(), and llvm::MIRProfileLoader::setFSPass().
|
inlinestatic |
Definition at line 87 of file Discriminator.h.
References assert(), BaseDiscriminatorBitWidth, FSDiscriminatorBitWidth, getNumFSPasses(), I, and P.
Referenced by getFSPassBitBegin(), getLastFSPassBitEnd(), llvm::MIRAddFSDiscriminators::MIRAddFSDiscriminators(), llvm::MIRProfileLoaderPass::MIRProfileLoaderPass(), llvm::sampleprof::SampleProfileReader::setDiscriminatorMaskedBitFrom(), and llvm::MIRProfileLoader::setFSPass().
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 410 of file InstrProf.cpp.
References llvm::StringRef::drop_front(), llvm::StringRef::empty(), llvm::StringRef::size(), and llvm::StringRef::starts_with().
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 221 of file TypeMetadataUtils.cpp.
References A, llvm::CallingConv::C, llvm::GlobalVariable::getInitializer(), getPointerAtOffset(), Offset, and Ptr.
Referenced by tryPromoteCall().
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 910 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::loadInputValue().
Definition at line 316 of file VECustomDAG.cpp.
References N.
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER().
Definition at line 324 of file VECustomDAG.cpp.
References N.
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER().
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 1260 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().
std::unique_ptr< GCStrategy > llvm::getGCStrategy | ( | const StringRef | Name | ) |
Lookup the GCStrategy object associated with the given gc name.
Definition at line 24 of file GCStrategy.cpp.
References llvm::Registry< T >::begin(), llvm::Registry< T >::end(), llvm::Registry< T >::entries(), error, linkAllBuiltinGCs(), Name, and report_fatal_error().
Referenced by findGCStrategy(), llvm::GCModuleInfo::getGCStrategy(), and llvm::CollectorMetadataAnalysis::run().
OptPassGate & llvm::getGlobalPassGate | ( | ) |
Singleton instance of the OptBisect class, so multiple pass managers don't need to coordinate their uses of OptBisect.
Definition at line 60 of file OptBisect.cpp.
References getOptBisector().
Referenced by llvm::LLVMContextImpl::getOptPassGate().
void llvm::getGuaranteedNonPoisonOps | ( | const Instruction * | I, |
SmallVectorImpl< const Value * > & | Ops | ||
) |
Insert operands of I into Ops such that I will trigger undefined behavior if I is executed and that operand has a poison value.
Definition at line 8143 of file ValueTracking.cpp.
References handleGuaranteedNonPoisonOps(), I, and Operands.
void llvm::getGuaranteedWellDefinedOps | ( | const Instruction * | I, |
SmallVectorImpl< const Value * > & | Ops | ||
) |
Insert operands of I into Ops such that I will trigger undefined behavior if I is executed and that operand is not a well-defined value (i.e.
has undef bits or poison).
Definition at line 8117 of file ValueTracking.cpp.
References handleGuaranteedWellDefinedOps(), I, and Operands.
|
static |
Definition at line 92 of file BlockFrequencyInfo.cpp.
References GVDT_Count, PGOVCT_Graph, PGOViewCounts, and ViewBlockFreqPropagationDAG.
Referenced by llvm::DOTGraphTraits< BlockFrequencyInfo * >::getNodeLabel(), and llvm::DOTGraphTraits< MachineBlockFrequencyInfo * >::getNodeLabel().
|
static |
Definition at line 224 of file Debuginfod.cpp.
References all_of(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::MemoryBuffer::getFile(), isHeader(), and llvm::WithColor::warning().
Referenced by getCachedOrDownloadArtifact().
std::string llvm::getHeatColor | ( | double | percent | ) |
Definition at line 70 of file HeatUtils.cpp.
References heatPalette, heatSize, and round().
Definition at line 63 of file HeatUtils.cpp.
References freq, getHeatColor(), and log2().
Referenced by getHeatColor(), llvm::DOTGraphTraits< DOTFuncInfo * >::getNodeAttributes(), and llvm::DOTGraphTraits< CallGraphDOTInfo * >::getNodeAttributes().
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.
VectorBitWidth | the total bit width of the vector |
DemandedElts | the demanded elements mask for the operation |
DemandedLHS | the demanded elements mask for the left operand |
DemandedRHS | the demanded elements mask for the right operand |
Definition at line 671 of file VectorUtils.cpp.
References assert(), llvm::APInt::getBitWidth(), llvm::APInt::getZero(), Idx, and llvm::APInt::setBit().
Referenced by computeKnownBitsForHorizontalOperation(), and getHorizDemandedElts().
|
inline |
Definition at line 118 of file ModuleSummaryIndex.h.
References llvm::CalleeInfo::Cold, llvm::CalleeInfo::Critical, llvm::CalleeInfo::Hot, llvm_unreachable, llvm::CalleeInfo::None, and llvm::CalleeInfo::Unknown.
Referenced by ModuleImportsManager::computeImportForModule().
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_unreachable.
ISD::CondCode llvm::getICmpCondCode | ( | ICmpInst::Predicate | Pred | ) |
getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition code.
Definition at line 233 of file Analysis.cpp.
References llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
Referenced by llvm::SelectionDAGBuilder::EmitBranchForMergedCondition(), llvm::SelectionDAG::FoldSetCC(), and lowerICMPIntrinsic().
ICmpInst::Predicate llvm::getICmpCondCode | ( | ISD::CondCode | Pred | ) |
getICmpCondCode - Return the LLVM IR integer condition code corresponding to the given ISD integer condition code.
Definition at line 250 of file Analysis.cpp.
References llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
int64_t llvm::getICmpTrueVal | ( | const TargetLowering & | TLI, |
bool | IsVector, | ||
bool | IsFP | ||
) |
Returns an integer representing true, as defined by the TargetBooleanContents.
Definition at line 1637 of file Utils.cpp.
References llvm::TargetLoweringBase::getBooleanContents(), and llvm_unreachable.
Referenced by llvm::CombinerHelper::applyOptBrCondByInvertingCond(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), llvm::CombinerHelper::matchICmpToTrueFalseKnownBits(), and llvm::CombinerHelper::matchSuboCarryOut().
const APInt & llvm::getIConstantFromReg | ( | Register | VReg, |
const MachineRegisterInfo & | MRI | ||
) |
VReg
is defined by a G_CONSTANT, return the corresponding value.
Definition at line 305 of file Utils.cpp.
Referenced by llvm::CombinerHelper::matchCastOfInteger(), llvm::CombinerHelper::matchCombineSubToAdd(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVector(), llvm::CombinerHelper::matchExtractVectorElementWithShuffleVector(), llvm::CombinerHelper::matchFoldAMinusC1MinusC2(), llvm::CombinerHelper::matchFoldAMinusC1PlusC2(), llvm::CombinerHelper::matchFoldAPlusC1MinusC2(), llvm::CombinerHelper::matchFoldC1Minus2MinusC2(), and llvm::CombinerHelper::matchFoldC2MinusAPlusC1().
std::optional< int64_t > llvm::getIConstantSplatSExtVal | ( | const MachineInstr & | MI, |
const MachineRegisterInfo & | MRI | ||
) |
MI
if possible. Definition at line 1427 of file Utils.cpp.
References getIConstantSplatSExtVal(), MI, and MRI.
std::optional< int64_t > llvm::getIConstantSplatSExtVal | ( | const Register | Reg, |
const MachineRegisterInfo & | MRI | ||
) |
Reg
if possible. Definition at line 1418 of file Utils.cpp.
References getIConstantVRegSExtVal(), and MRI.
Referenced by getIConstantSplatSExtVal(), getVectorSplat(), isConstantOrConstantSplatVector(), llvm::MIPatternMatch::matchConstantSplat(), and llvm::CombinerHelper::matchNotCmp().
std::optional< APInt > llvm::getIConstantSplatVal | ( | const MachineInstr & | MI, |
const MachineRegisterInfo & | MRI | ||
) |
MI
if possible. Definition at line 1412 of file Utils.cpp.
References getIConstantSplatVal(), MI, and MRI.
std::optional< APInt > llvm::getIConstantSplatVal | ( | const Register | Reg, |
const MachineRegisterInfo & | MRI | ||
) |
Reg
if possible. Definition at line 1400 of file Utils.cpp.
References getIConstantVRegValWithLookThrough(), and MRI.
Referenced by llvm::CombinerHelper::buildSDivUsingMul(), llvm::CombinerHelper::buildUDivUsingMul(), getIConstantSplatVal(), llvm::GIMatchTableExecutor::isOperandImmEqual(), and llvm::MIPatternMatch::matchConstantSplat().
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().
std::optional< APInt > llvm::getIConstantVRegVal | ( | Register | VReg, |
const MachineRegisterInfo & | MRI | ||
) |
If VReg
is defined by a G_CONSTANT, return the corresponding value.
Definition at line 294 of file Utils.cpp.
References assert(), getIConstantVRegValWithLookThrough(), and MRI.
Referenced by canFoldInAddressingMode(), ConstantFoldCastOp(), ConstantFoldCountZeros(), ConstantFoldExtOp(), ConstantFoldICmp(), ConstantFoldIntToFloat(), llvm::AArch64GISelUtils::extractPtrauthBlendDiscriminators(), getIConstantVRegSExtVal(), isKnownToBeAPowerOfTwo(), llvm::CombinerHelper::matchCombineConstPtrAddToI2P(), llvm::CombinerHelper::matchCombineExtractedVectorLoad(), llvm::CombinerHelper::matchCommuteConstantToRHS(), llvm::MIPatternMatch::matchConstant(), llvm::CombinerHelper::matchExtractAllEltsFromBuildVector(), llvm::CombinerHelper::matchInsertExtractVecEltOutOfBounds(), llvm::CombinerHelper::matchMulOfVScale(), llvm::CombinerHelper::matchPtrAddZero(), llvm::CombinerHelper::matchReassocConstantInnerRHS(), llvm::CombinerHelper::matchReassocFoldConstantsInSubTree(), and llvm::CombinerHelper::matchShlOfVScale().
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(), 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::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(), shiftAmountKnownInRange(), and llvm::AArch64GISelUtils::tryEmitBZero().
uint64_t llvm::getIConstVal | ( | Register | ConstReg, |
const MachineRegisterInfo * | MRI | ||
) |
Definition at line 326 of file SPIRVUtils.cpp.
References assert(), getDefInstrMaybeConstant(), MI, and MRI.
Referenced by buildAtomicCompareExchangeInst(), buildBarrierInst(), buildMemSemanticsReg(), buildScopeReg(), generateGroupInst(), generateReadImageInst(), generateSampleImageInst(), generateSpecConstantInst(), and genWorkgroupQuery().
} AVL Functions
Node Properties {
Definition at line 243 of file VECustomDAG.cpp.
References llvm::ISD::BUILD_VECTOR, llvm::ISD::CONCAT_VECTORS, 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().
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 1803 of file BasicBlockUtils.cpp.
References assert(), llvm::BasicBlock::begin(), 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().
|
static |
Definition at line 2838 of file SPIRVBuiltins.cpp.
References assert(), llvm::TargetExtType::getIntParameter(), llvm::TargetExtType::getNumIntParameters(), llvm::TargetExtType::getNumTypeParameters(), llvm::SPIRVGlobalRegistry::getOrCreateOpTypeImage(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), and llvm::TargetExtType::getTypeParameter().
Referenced by getSampledImageType(), and llvm::SPIRV::lowerBuiltinType().
|
inlinestatic |
getImmVal - get immediate representation of integer value
Definition at line 143 of file VEISelLowering.h.
References N.
Referenced by isMImm().
Definition at line 552 of file MachineInstrBuilder.h.
References B, and llvm::RegState::Implicit.
Referenced by addSavedGPR(), finalizeBundle(), getRegState(), and llvm::InlineAsmLowering::lowerInlineAsm().
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 483 of file Delinearization.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase< Size_T >::empty(), GEP, llvm::ScalarEvolution::getSCEV(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by tryDelinearizeFixedSizeImpl().
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 llvm::UndefValue::get(), getAllocationData(), getAllocFnKind(), llvm::Constant::getNullValue(), and MallocOrOpNewLike.
Referenced by llvm::AA::getInitialValueForObj(), and tryToOptimizeStoreOfAllocationToGlobal().
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 |
||
) |
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 2963 of file InlineCost.cpp.
References getInlineCost().
Referenced by getDefaultInlineAdvice(), and getInlineCost().
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 |
||
) |
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 3084 of file InlineCost.cpp.
References dbgs(), llvm::InlineCost::get(), llvm::InlineCost::getAlways(), getAttributeBasedInliningDecision(), llvm::InlineResult::getFailureReason(), llvm::InlineCost::getNever(), llvm::InlineResult::isSuccess(), and LLVM_DEBUG.
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::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::isPassRegistered(), LLVM_DEBUG, and MAM.
Referenced by llvm::ModuleInlinerPass::run().
InlineParams llvm::getInlineParams | ( | ) |
Generate the parameters to tune the inline cost analysis based only on the commandline options.
Definition at line 3244 of file InlineCost.cpp.
References DefaultThreshold, and getInlineParams().
Referenced by llvm::PassBuilder::buildInlinerPipeline(), getInlineParams(), getInlineParamsFromOptLevel(), and llvm::InlineCostAnnotationPrinterPass::run().
InlineParams llvm::getInlineParams | ( | int | Threshold | ) |
Generate the parameters to tune the inline cost analysis based on command line options.
If -inline-threshold option is not explicitly passed, Threshold
is used as the default threshold.
Definition at line 3191 of file InlineCost.cpp.
References llvm::InlineParams::ColdCallSiteThreshold, ColdCallSiteThreshold, llvm::InlineParams::ColdThreshold, ColdThreshold, llvm::InlineParams::DefaultThreshold, llvm::InlineParams::HintThreshold, HintThreshold, llvm::InlineParams::HotCallSiteThreshold, HotCallSiteThreshold, InlineThreshold, llvm::InlineParams::LocallyHotCallSiteThreshold, LocallyHotCallSiteThreshold, llvm::InlineConstants::OptMinSizeThreshold, llvm::InlineParams::OptMinSizeThreshold, llvm::InlineConstants::OptSizeThreshold, and llvm::InlineParams::OptSizeThreshold.
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 3261 of file InlineCost.cpp.
References computeThresholdFromOptLevels(), getInlineParams(), llvm::InlineParams::LocallyHotCallSiteThreshold, and LocallyHotCallSiteThreshold.
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:
Definition at line 2973 of file InlineCost.cpp.
Referenced by llvm::MLInlineAdvisor::getAdviceImpl().
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 2999 of file InlineCost.cpp.
Referenced by llvm::MLInlineAdvisor::getAdviceImpl().
MachineBasicBlock::iterator llvm::getInsertPtValidEnd | ( | MachineBasicBlock * | MBB | ) |
Definition at line 197 of file SPIRVUtils.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), I, and MBB.
|
inline |
Return the max count value. We reserver a few large values for special use.
Definition at line 66 of file InstrProf.h.
Referenced by llvm::InstrProfSummaryBuilder::addEntryCount(), llvm::InstrProfSummaryBuilder::addInternalCount(), llvm::InstrProfRecord::merge(), and llvm::InstrProfRecord::scale().
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 2249 of file ARMBaseInstrInfo.cpp.
References llvm::ARMCC::AL, and MI.
Referenced by llvm::ARMBaseInstrInfo::commuteInstructionImpl(), findCMPToFoldIntoCBZ(), getITInstrPredicate(), isIncrementOrDecrement(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), and rewriteT2FrameIndex().
|
inline |
Definition at line 177 of file InstrProf.h.
|
inline |
Return the name prefix of profile bitmap variables.
Definition at line 104 of file InstrProf.h.
|
inline |
Definition at line 173 of file InstrProf.h.
|
inline |
Return the name prefix of profile counter variables.
Definition at line 101 of file InstrProf.h.
|
inline |
Return the name prefix of variables containing per-function control data.
Definition at line 98 of file InstrProf.h.
|
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 158 of file InstrProf.h.
|
inline |
Return the marker used to separate PGO names during serialization.
Definition at line 182 of file InstrProf.h.
Referenced by collectGlobalObjectNameStrings(), and readAndDecodeStrings().
|
inline |
Return the name of the runtime interface that registers the PGO name strings.
Definition at line 150 of file InstrProf.h.
|
inline |
Return the name of the variable holding the strings (possibly compressed) of all function's PGO names.
Definition at line 114 of file InstrProf.h.
|
inline |
Return the name prefix of variables containing instrumented function names.
Definition at line 92 of file InstrProf.h.
Referenced by getPGOFuncNameVarName(), and getVarName().
|
inline |
Return the name of the runtime interface that registers per-function control data for one instrumented function.
Definition at line 144 of file InstrProf.h.
|
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 138 of file InstrProf.h.
|
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 163 of file InstrProf.h.
|
inline |
Return the name of the compiler generated function that references the runtime hook variable.
The function is a weak global.
Definition at line 169 of file InstrProf.h.
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 236 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().
|
inline |
Return the name profile runtime entry point to do value profiling for a given site.
Definition at line 81 of file InstrProf.h.
Referenced by getOrInsertValueProfilingCall().
|
inline |
Return the name profile runtime entry point to do memop size value profiling.
Definition at line 87 of file InstrProf.h.
Referenced by getOrInsertValueProfilingCall().
|
inline |
Return the name prefix of value profile variables.
Definition at line 107 of file InstrProf.h.
|
inline |
Return the name of value profile node array variables:
Definition at line 110 of file InstrProf.h.
|
inline |
Definition at line 116 of file InstrProf.h.
|
inline |
Return the name prefix of variables containing virtual table profile data.
Definition at line 95 of file InstrProf.h.
|
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 978 of file GenericUniformityImpl.h.
References assert(), llvm::GenericCycle< ContextT >::contains(), dbgs(), llvm::GenericCycle< ContextT >::getHeader(), llvm::GenericCycle< ContextT >::getParentCycle(), llvm::GenericCycle< ContextT >::isReducible(), LLVM_DEBUG, and llvm::DominatorTreeBase< NodeT, IsPostDom >::properlyDominates().
Referenced by getOutermostDivergentCycle().
Definition at line 564 of file MachineInstrBuilder.h.
References B, and llvm::RegState::InternalRead.
Referenced by getRegState().
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, getOptionalIntLoopAttribute(), and Name.
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 4245 of file ValueTracking.cpp.
References F, llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), llvm::Intrinsic::not_intrinsic, and llvm::CallBase::onlyReadsMemory().
Referenced by getVectorIntrinsicIDForCall().
|
static |
Definition at line 347 of file X86IntrinsicsInfo.h.
References Data, IntrinsicsWithChain, and lower_bound().
Referenced by combineINTRINSIC_VOID(), combineINTRINSIC_W_CHAIN(), llvm::X86TargetLowering::getTgtMemIntrinsic(), and LowerINTRINSIC_W_CHAIN().
|
static |
Definition at line 2263 of file X86IntrinsicsInfo.h.
References Data, IntrinsicsWithoutChain, and lower_bound().
Referenced by combineINTRINSIC_WO_CHAIN().
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().
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 9132 of file ValueTracking.cpp.
References llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.
Referenced by isSignedMinMaxClamp(), and simplifySelectWithICmpCond().
Intrinsic::ID llvm::getInverseMinMaxIntrinsic | ( | Intrinsic::ID | MinMaxID | ) |
Definition at line 9140 of file ValueTracking.cpp.
References llvm_unreachable.
Referenced by foldMinimumMaximumSharedOp(), foldMinMaxSharedOp(), foldSubOfMinMax(), llvm::InstCombiner::getFreelyInvertedImpl(), isSignedMinMaxIntrinsicClamp(), simplifyBinaryIntrinsic(), and llvm::InstCombinerImpl::visitCallInst().
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 368 of file InstrProf.cpp.
References F, getIRPGOObjectName(), and getPGOFuncNameMetadata().
Referenced by llvm::InstrProfSymtab::create().
|
static |
Definition at line 322 of file InstrProf.cpp.
References llvm::GlobalValue::getGlobalIdentifier(), and llvm::Value::getName().
Referenced by getIRPGOObjectName().
|
static |
Definition at line 349 of file InstrProf.cpp.
References llvm::GlobalValue::ExternalLinkage, getIRPGONameForGlobalObject(), llvm::GlobalValue::getLinkage(), getStrippedSourceFileName(), and lookupPGONameFromMetadata().
Referenced by getIRPGOFuncName(), and getPGOName().
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 788 of file Thumb2InstrInfo.cpp.
References llvm::ARMCC::AL, getInstrPredicate(), and MI.
Referenced by llvm::Thumb2InstrInfo::isLegalToSplitMBBAt().
Definition at line 555 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::ARCInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysReg(), llvm::ARMBaseInstrInfo::copyPhysReg(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::Thumb2InstrInfo::copyPhysReg(), llvm::BPFInstrInfo::copyPhysReg(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::MSP430InstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::PPCInstrInfo::copyPhysReg(), llvm::SparcInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), llvm::XCoreInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::LoongArchInstrInfo::copyPhysReg(), llvm::RISCVInstrInfo::copyPhysReg(), llvm::SIInstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::CSKYInstrInfo::copyPhysReg(), llvm::M68kInstrInfo::copyPhysReg(), llvm::Mips16InstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::LanaiInstrInfo::copyPhysReg(), llvm::AArch64InstrInfo::copyPhysRegTuple(), llvm::RISCVInstrInfo::copyPhysRegVector(), llvm::ARMBaseInstrInfo::copyToCPSR(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), emitBuildPairF64Pseudo(), llvm::VETargetLowering::emitEHSjLjLongJmp(), llvm::VETargetLowering::emitEHSjLjSetJmp(), llvm::PPCFrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitPrologue(), emitQuietFCMP(), llvm::VETargetLowering::emitSjLjDispatchBlock(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::VEInstrInfo::expandPostRAPseudo(), finalizeBundle(), llvm::ARMBaseInstrInfo::foldImmediate(), genAlternativeDpCodeSequence(), genFNegatedMAD(), genFusedMultiply(), genMaddR(), genShXAddAddShift(), genSubAdd2SubSub(), getPrologueDeath(), getRegState(), indirectCopyToAGPR(), INITIALIZE_PASS(), insertCopy(), insertCSRRestores(), insertCSRSaves(), 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::lowerVRELOAD(), llvm::RISCVRegisterInfo::lowerVSPILL(), llvm::RISCVInstrInfo::movImm(), llvm::PPCRegisterInfo::prepareDynamicAlloca(), llvm::VETargetLowering::prepareMBB(), llvm::VETargetLowering::prepareSymbol(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), pushRegsToStack(), llvm::TargetInstrInfo::reassociateOps(), replaceFrameIndex(), reportIllegalCopy(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SIRegisterInfo::restoreSGPR(), llvm::VETargetLowering::setupEntryBlockForSjLj(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillEmergencySGPR(), spillRegPairs(), llvm::SIRegisterInfo::spillSGPR(), spillVGPRtoAGPR(), storeRegPairToStackSlot(), llvm::Mips16InstrInfo::storeRegToStack(), llvm::MipsSEInstrInfo::storeRegToStack(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::BPFInstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::LoongArchInstrInfo::storeRegToStackSlot(), llvm::RISCVInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::storeRegToStackSlot(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::XtensaInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::CSKYInstrInfo::storeRegToStackSlot(), llvm::M68kInstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::LanaiInstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::unfoldMemoryOperand().
RetainedKnowledge llvm::getKnowledgeForValue | ( | const Value * | V, |
ArrayRef< Attribute::AttrKind > | AttrKinds, | ||
AssumptionCache * | AC = nullptr , |
||
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.
Definition at line 157 of file AssumeBundleQueries.cpp.
References llvm::AssumptionCache::assumptionsFor(), llvm::AssumptionCache::ExprResultIdx, Filter, getBundleFromUse(), getKnowledgeFromBundle(), II, is_contained(), and llvm::RetainedKnowledge::none().
Referenced by getKnowledgeValidInContext(), and isDereferenceableAndAlignedPointer().
RetainedKnowledge llvm::getKnowledgeFromBundle | ( | AssumeInst & | Assume, |
const CallBase::BundleOpInfo & | BOI | ||
) |
This extracts the Knowledge from an element of an operand bundle.
This is mostly for use in the assume builder.
Definition at line 99 of file AssumeBundleQueries.cpp.
References ABA_Argument, ABA_WasOn, llvm::CallBase::BundleOpInfo::Begin, bundleHasArgument(), llvm::CallBase::BundleOpInfo::End, llvm::Attribute::getAttrKindFromName(), llvm::StringMapEntry< ValueTy >::getKey(), getValueFromBundleOpInfo(), Idx, MinAlign(), llvm::DebugCounter::shouldExecute(), and llvm::CallBase::BundleOpInfo::Tag.
Referenced by computeKnownBitsFromContext(), getKnowledgeForValue(), getKnowledgeFromOperandInAssume(), getKnowledgeFromUse(), isKnownNonZeroFromAssume(), and llvm::InstCombinerImpl::visitCallInst().
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 122 of file AssumeBundleQueries.cpp.
References getKnowledgeFromBundle(), and Idx.
Referenced by getKnowledgeFromUseInAssume().
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 144 of file AssumeBundleQueries.cpp.
References llvm::RetainedKnowledge::AttrKind, getBundleFromUse(), getKnowledgeFromBundle(), is_contained(), and llvm::RetainedKnowledge::none().
|
inline |
Retreive the information help by the Use U of an llvm.assume.
the use should be in the operand bundle.
Definition at line 128 of file AssumeBundleQueries.h.
References getKnowledgeFromOperandInAssume().
RetainedKnowledge llvm::getKnowledgeValidInContext | ( | const Value * | V, |
ArrayRef< Attribute::AttrKind > | AttrKinds, | ||
const Instruction * | CtxI, | ||
const DominatorTree * | DT = nullptr , |
||
AssumptionCache * | AC = 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 197 of file AssumeBundleQueries.cpp.
References getKnowledgeForValue(), I, and isValidAssumeForContext().
Referenced by isGuaranteedNotToBeUndefOrPoison().
|
inline |
Try to infer an alignment for the specified pointer.
Definition at line 242 of file Local.h.
References DL, and getOrEnforceKnownAlignment().
Referenced by AddAlignmentAssumptions(), llvm::ARMTTIImpl::instCombineIntrinsic(), optimizeMemCmpConstantSize(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), llvm::InstCombinerImpl::SimplifyAnyMemTransfer(), and llvm::InstCombinerImpl::visitCallInst().
|
inlinestatic |
Definition at line 40 of file LanaiBaseInfo.h.
References llvm_unreachable, and Reg.
|
inlinestatic |
Definition at line 104 of file Discriminator.h.
References getFSPassBitBegin(), and getNumFSPasses().
|
inlinestatic |
Definition at line 110 of file Discriminator.h.
References getFSPassBitEnd(), and getNumFSPasses().
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 8692 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by getOwningLazyBitcodeModule(), and parseBitcodeFileImpl().
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().
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().
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 1172 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::LLT::isScalable(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), llvm::LLT::isScalableVector(), llvm::LLT::isVector(), Mul, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::multiplyCoefficientBy(), llvm::LLT::scalar(), and llvm::LLT::vector().
Referenced by getCoverTy().
Definition at line 34 of file VECustomDAG.cpp.
References llvm::MVT::getVectorVT(), Normal, P, PackedVectorWidth, and StandardVectorWidth.
Referenced by llvm::VECustomDAG::getConstantMask(), llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), and llvm::VETargetLowering::lowerVVP_LOAD_STORE().
std::string llvm::getLinkStringForBuiltIn | ( | SPIRV::BuiltIn::BuiltIn | BuiltInValue | ) |
Definition at line 175 of file SPIRVBaseInfo.cpp.
References Lookup().
Referenced by buildBuiltinVariableLoad().
LaneBitmask llvm::getLiveLaneMask | ( | const LiveInterval & | LI, |
SlotIndex | SI, | ||
const MachineRegisterInfo & | MRI, | ||
LaneBitmask | LaneMaskFilter = LaneBitmask::getAll() |
||
) |
Definition at line 366 of file GCNRegPressure.cpp.
References assert(), llvm::LiveInterval::hasSubRanges(), llvm::LiveRange::liveAt(), MRI, llvm::LiveInterval::reg(), and llvm::LiveInterval::subranges().
LaneBitmask llvm::getLiveLaneMask | ( | unsigned | Reg, |
SlotIndex | SI, | ||
const LiveIntervals & | LIS, | ||
const MachineRegisterInfo & | MRI, | ||
LaneBitmask | LaneMaskFilter = LaneBitmask::getAll() |
||
) |
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 359 of file GCNRegPressure.cpp.
References llvm::LiveIntervals::getInterval(), getLiveLaneMask(), and MRI.
Referenced by collectVirtualRegUses(), getLiveLaneMask(), and getLiveRegs().
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 337 of file GCNRegPressure.h.
References After, llvm::SmallVectorImpl< T >::clear(), E, llvm::LiveIntervals::getInterval(), llvm::GlobalValue::getParent(), getParent(), llvm::LiveIntervals::getSlotIndexes(), llvm::LiveIntervals::hasInterval(), I, llvm::Register::index2VirtReg(), MRI, Reg, and sort().
GCNRPTracker::LiveRegSet llvm::getLiveRegs | ( | SlotIndex | SI, |
const LiveIntervals & | LIS, | ||
const MachineRegisterInfo & | MRI | ||
) |
Definition at line 383 of file GCNRegPressure.cpp.
References getLiveLaneMask(), llvm::LiveIntervals::hasInterval(), I, llvm::Register::index2VirtReg(), and MRI.
Referenced by getLiveRegsAfter(), getLiveRegsBefore(), llvm::GCNUpwardRPTracker::isValid(), llvm::GCNUpwardRPTracker::reset(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().
|
inline |
Definition at line 374 of file GCNRegPressure.h.
References llvm::SlotIndex::getDeadSlot(), llvm::LiveIntervals::getInstructionIndex(), getLiveRegs(), and MI.
Referenced by printLivenessInfo(), and llvm::GCNRPTracker::reset().
|
inline |
Definition at line 380 of file GCNRegPressure.h.
References llvm::SlotIndex::getBaseIndex(), llvm::LiveIntervals::getInstructionIndex(), getLiveRegs(), and MI.
Referenced by printLivenessInfo(), and llvm::GCNRPTracker::reset().
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::MVT::getSizeInBits(), llvm::MVT::getVectorElementCount(), llvm::MVT::getVectorElementType(), llvm::MVT::isVector(), llvm::LLT::scalar(), and llvm::LLT::scalarOrVector().
Referenced by llvm::LegalizerHelper::scalarizeVectorBooleanStore().
LLT llvm::getLLTForType | ( | Type & | Ty, |
const DataLayout & | DL | ||
) |
Construct a low-level type based on an LLVM type.
Definition at line 20 of file LowLevelTypeUtils.cpp.
References assert(), DL, getLLTForType(), llvm::Type::isScalableTargetExtTy(), llvm::Type::isSized(), llvm::Type::isTokenTy(), llvm::LLT::pointer(), llvm::LLT::scalar(), llvm::LLT::token(), and llvm::LLT::vector().
Referenced by computeValueLLTs(), getLLTForType(), llvm::CallLowering::handleAssignments(), llvm::CallLowering::insertSRetLoads(), llvm::CallLowering::insertSRetStores(), llvm::AArch64CallLowering::lowerCall(), llvm::CallLowering::lowerCall(), and llvm::AArch64CallLowering::lowerReturn().
A helper function that returns the address space of the pointer operand of load or store instruction.
Definition at line 5030 of file Instructions.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), llvm::VPInterleaveRecipe::computeCost(), llvm::VPWidenMemoryRecipe::computeCost(), llvm::VPWidenLoadEVLRecipe::computeCost(), and llvm::VPWidenStoreEVLRecipe::computeCost().
A helper function that returns the alignment of load or store instruction.
Definition at line 5010 of file Instructions.h.
Referenced by llvm::VPWidenMemoryRecipe::computeCost(), llvm::VPWidenLoadEVLRecipe::computeCost(), llvm::VPWidenStoreEVLRecipe::computeCost(), llvm::VPWidenLoadRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenStoreRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), getAdjustedAlignment(), llvm::LoopVectorizationCostModel::interleavedAccessCanBeWidened(), llvm::LoopVectorizationCostModel::isLegalGatherOrScatter(), isSafeCheapLoadStore(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), and tryToImproveAlign().
A helper function that returns the pointer operand of a load or store instruction.
Returns nullptr if not load or store.
Definition at line 4984 of file Instructions.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), canTailPredicateLoop(), collectSRATypes(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), llvm::VPWidenMemoryRecipe::computeCost(), containsDecreasingPointers(), llvm::VPlanTransforms::createInterleaveGroups(), llvm::DependenceInfo::depends(), getAppleRuntimeUnrollPreferences(), getInvariantGroupClobberingInstruction(), getLoadStorePointerOperand(), getPointerOperand(), llvm::DependenceInfo::getSplitIteration(), isConsecutiveAccess(), isKnownNonNullFromDominatingCondition(), llvm::LoopVectorizationCostModel::isPredicatedInst(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), llvm::LoopVectorizationLegality::isUniformMemOp(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), SRAGlobal(), tryDelinearizeFixedSizeImpl(), and tryToImproveAlign().
Definition at line 4991 of file Instructions.h.
References getLoadStorePointerOperand().
SDValue llvm::getLoadStoreStride | ( | SDValue | Op, |
VECustomDAG & | CDAG | ||
) |
Definition at line 292 of file VECustomDAG.cpp.
References llvm::VECustomDAG::getConstant(), and getIdiomaticVectorType().
Referenced by llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().
A helper function that returns the type of a load or store instruction.
Definition at line 5039 of file Instructions.h.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), canTailPredicateLoop(), collectSRATypes(), llvm::VPWidenMemoryRecipe::computeCost(), llvm::VPWidenLoadEVLRecipe::computeCost(), llvm::VPWidenStoreEVLRecipe::computeCost(), containsDecreasingPointers(), llvm::VPlanTransforms::createInterleaveGroups(), llvm::VPInterleaveRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::LoopVectorizationCostModel::getInstructionCost(), hoistConditionalLoadsStores(), llvm::LoopVectorizationCostModel::interleavedAccessCanBeWidened(), isConsecutiveAccess(), llvm::LoopVectorizationCostModel::isLegalGatherOrScatter(), isSafeCheapLoadStore(), llvm::LoopVectorizationCostModel::isScalarWithPredication(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), promoteLoopAccessesToScalars(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), SRAGlobal(), tryToImproveAlign(), and TryToShrinkGlobalToBoolean().
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 141 of file LoopUtils.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addPreservedID(), llvm::AnalysisUsage::addRequired(), llvm::AnalysisUsage::addRequiredID(), LCSSAID, and LoopSimplifyID.
Find the convergence heart of the loop.
Definition at line 1132 of file LoopInfo.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains(), llvm::LoopBase< BlockT, LoopT >::getHeader(), H, and II.
Referenced by canHaveUnrollRemainder(), tryToUnrollLoop(), llvm::UnrollCostEstimator::UnrollCostEstimator(), and UnrollRuntimeLoopRemainder().
std::optional< unsigned > llvm::getLoopEstimatedTripCount | ( | Loop * | L, |
unsigned * | EstimatedLoopInvocationWeight = nullptr |
||
) |
Returns a loop's estimated trip count based on branch weight metadata.
In addition if EstimatedLoopInvocationWeight
is not null it is initialized with weight of loop's latch leading to the exit. Returns 0 when the count is estimated to be 0, or std::nullopt when a meaningful estimate can not be made.
Definition at line 850 of file LoopUtils.cpp.
References getEstimatedTripCount(), and getExpectedExitLoopLatchBranch().
Referenced by canFoldTermCondOfLoop(), computePeelCount(), computeUnrollCount(), getSmallBestKnownTC(), setProfileInfoAfterUnrolling(), and UnrollLoop().
PreservedAnalyses llvm::getLoopPassPreservedAnalyses | ( | ) |
Returns the minimum set of Analyses that all loop passes must preserve.
Definition at line 138 of file LoopAnalysisManager.cpp.
References llvm::PreservedAnalyses::preserve().
Referenced by llvm::IRCEPass::run(), llvm::LoopUnrollPass::run(), llvm::GuardWideningPass::run(), llvm::IndVarSimplifyPass::run(), llvm::LICMPass::run(), llvm::LoopBoundSplitPass::run(), llvm::LoopDeletionPass::run(), llvm::LoopIdiomRecognizePass::run(), llvm::LoopInstSimplifyPass::run(), llvm::LoopPredicationPass::run(), llvm::LoopRotatePass::run(), llvm::LoopSimplifyCFGPass::run(), llvm::LoopStrengthReducePass::run(), llvm::LoopTermFoldPass::run(), llvm::LoopFullUnrollPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::CanonicalizeFreezeInLoopsPass::run(), llvm::HexagonLoopIdiomRecognitionPass::run(), llvm::LoopVersioningLICMPass::run(), llvm::LNICMPass::run(), llvm::LoopInterchangePass::run(), llvm::LoopUnrollAndJamPass::run(), and llvm::LoopFlattenPass::run().
Triple::ArchType llvm::getMachineArchType | ( | T | machine | ) |
Definition at line 34 of file WindowsMachineFlag.h.
References llvm::Triple::aarch64, llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64EC, llvm::COFF::IMAGE_FILE_MACHINE_ARM64X, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_FILE_MACHINE_R4000, llvm::Triple::mipsel, llvm::Triple::thumb, llvm::Triple::UnknownArch, llvm::Triple::x86, and llvm::Triple::x86_64.
Referenced by llvm::object::COFFObjectFile::getArch().
PreservedAnalyses llvm::getMachineFunctionPassPreservedAnalyses | ( | ) |
Returns the minimum set of Analyses that all machine function passes must preserve.
Definition at line 158 of file MachinePassManager.cpp.
Referenced by INITIALIZE_PASS(), llvm::FinalizeISelPass::run(), llvm::LocalStackSlotAllocationPass::run(), llvm::RegAllocFastPass::run(), llvm::SIShrinkInstructionsPass::run(), llvm::GCNDPPCombinePass::run(), llvm::DeadMachineInstructionElimPass::run(), llvm::EarlyIfConverterPass::run(), llvm::MachineCSEPass::run(), llvm::MachineLICMBasePass< DerivedT, PreRegAlloc >::run(), llvm::PeepholeOptimizerPass::run(), llvm::PHIEliminationPass::run(), llvm::SelectionDAGISelPass::run(), llvm::TailDuplicatePassBase< DerivedT, PreRegAlloc >::run(), llvm::TwoAddressInstructionPass::run(), llvm::SIFixSGPRCopiesPass::run(), llvm::SIFoldOperandsPass::run(), llvm::SILoadStoreOptimizerPass::run(), llvm::SILowerControlFlowPass::run(), llvm::SIOptimizeExecMaskingPass::run(), llvm::SIOptimizeVGPRLiveRangePass::run(), and llvm::SIPeepholeSDWAPass::run().
|
static |
Definition at line 393 of file SPIRVBuiltins.cpp.
References assert(), getMDOperandAsType(), llvm::MachineOperand::getMetadata(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), isSpvIntrinsic(), and MI.
Referenced by buildEnqueueKernel(), and getBlockStructType().
COFF::MachineTypes llvm::getMachineType | ( | StringRef | S | ) |
Definition at line 23 of file WindowsMachineFlag.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::StringSwitch< T, R >::Default(), llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64EC, llvm::COFF::IMAGE_FILE_MACHINE_ARM64X, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_FILE_MACHINE_R4000, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, and llvm::StringRef::lower().
Referenced by llvm::pdb::PDBSymbolExe::getPointerByteSize(), and libDriverMain().
std::optional< int > llvm::getMaskPos | ( | unsigned | Opc | ) |
Definition at line 191 of file VECustomDAG.cpp.
References llvm::ISD::getVPMaskIdx(), isVVPBinaryOp(), llvm::ISD::MLOAD, and llvm::ISD::MSTORE.
Referenced by getNodeMask(), and llvm::VETargetLowering::splitVectorOp().
Definition at line 2261 of file ARMBaseInstrInfo.cpp.
References llvm_unreachable.
Referenced by llvm::ARMBaseInstrInfo::PredicateInstruction().
Definition at line 279 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
uint64_t llvm::getMaxFreq | ( | const Function & | F, |
const BlockFrequencyInfo * | BFI | ||
) |
Definition at line 53 of file HeatUtils.cpp.
References F.
Referenced by llvm::CFGViewerPass::run(), llvm::CFGOnlyViewerPass::run(), llvm::CFGPrinterPass::run(), llvm::CFGOnlyPrinterPass::run(), and llvm::Function::viewCFG().
Definition at line 309 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Definition at line 252 of file NVPTXUtilities.cpp.
References F, getMaxNTIDx(), getMaxNTIDy(), and getMaxNTIDz().
Referenced by runNVVMIntrRange().
Definition at line 240 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Referenced by getMaxNTID().
Definition at line 244 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Referenced by getMaxNTID().
Definition at line 248 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Referenced by getMaxNTID().
Definition at line 363 of file NVPTXUtilities.cpp.
References llvm::CallBase::getCalledOperand(), and llvm::Value::stripPointerCasts().
Definition at line 338 of file SPIRVUtils.cpp.
References I, N, and toTypedPointer().
Referenced by generateAssignInstrs(), getMachineInstrType(), insertBitcasts(), and insertInlineAsmProcess().
Definition at line 230 of file VECustomDAG.cpp.
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().
SPIRV::Scope::Scope llvm::getMemScope | ( | LLVMContext & | Ctx, |
SyncScope::ID | Id | ||
) |
Definition at line 281 of file SPIRVUtils.cpp.
References llvm::LLVMContext::getOrInsertSyncScopeID(), llvm::SyncScope::SingleThread, and llvm::SyncScope::System.
SPIRV::MemorySemantics::MemorySemantics llvm::getMemSemantics | ( | AtomicOrdering | Ord | ) |
Definition at line 263 of file SPIRVUtils.cpp.
References Acquire, AcquireRelease, llvm_unreachable, Monotonic, NotAtomic, Release, SequentiallyConsistent, and Unordered.
SPIRV::MemorySemantics::MemorySemantics llvm::getMemSemanticsForStorageClass | ( | SPIRV::StorageClass::StorageClass | SC | ) |
Definition at line 245 of file SPIRVUtils.cpp.
Referenced by buildAtomicCompareExchangeInst(), buildAtomicLoadInst(), buildAtomicStoreInst(), and buildMemSemanticsReg().
|
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().
Definition at line 305 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
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 9117 of file ValueTracking.cpp.
References llvm_unreachable, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.
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 9156 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().
CmpInst::Predicate llvm::getMinMaxPred | ( | SelectPatternFlavor | SPF, |
bool | Ordered = false |
||
) |
Return the canonical comparison predicate for the specified minimum/maximum flavor.
Definition at line 9105 of file ValueTracking.cpp.
References llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, llvm_unreachable, SPF_FMAXNUM, SPF_FMINNUM, SPF_SMAX, SPF_SMIN, SPF_UMAX, and SPF_UMIN.
Referenced by simplifySelectWithICmpCond().
Intrinsic::ID llvm::getMinMaxReductionIntrinsicOp | ( | Intrinsic::ID | RdxID | ) |
Returns the min/max intrinsic used when expanding a min/max reduction.
Definition at line 989 of file LoopUtils.cpp.
References llvm_unreachable.
Referenced by llvm::VPReductionRecipe::computeCost(), createMinMaxOp(), getReductionIdentity(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), and llvm::BasicTTIImplBase< T >::getTypeBasedIntrinsicInstrCost().
Intrinsic::ID llvm::getMinMaxReductionIntrinsicOp | ( | RecurKind | RK | ) |
Returns the min/max intrinsic used when expanding a min/max reduction.
Definition at line 1012 of file LoopUtils.cpp.
References llvm_unreachable.
CmpInst::Predicate llvm::getMinMaxReductionPredicate | ( | RecurKind | RK | ) |
Returns the comparison predicate used when expanding a min/max reduction.
Definition at line 1054 of file LoopUtils.cpp.
References llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULT, and llvm_unreachable.
Referenced by createMinMaxOp().
RecurKind llvm::getMinMaxReductionRecurKind | ( | Intrinsic::ID | RdxID | ) |
Returns the recurence kind used when expanding a min/max reduction.
Definition at line 1035 of file LoopUtils.cpp.
Expected< std::unique_ptr< ModuleSummaryIndex > > llvm::getModuleSummaryIndex | ( | MemoryBufferRef | Buffer | ) |
Parse the specified bitcode buffer, returning the module summary index.
Definition at line 8764 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by getModuleSummaryIndexForFile(), and llvm::MemProfContextDisambiguation::MemProfContextDisambiguation().
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 8781 of file BitcodeReader.cpp.
References errorCodeToError(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFileOrSTDIN(), and getModuleSummaryIndex().
Referenced by doImportingForModuleForTest().
|
inlinestatic |
Definition at line 144 of file MipsBaseInfo.h.
References Reg.
Referenced by llvm::MipsAsmPrinter::PrintAsmOperand().
Get a rough equivalent of an MVT for a given LLT.
MVT can't distinguish pointers, so these will convert to a plain integer.
Definition at line 48 of file LowLevelTypeUtils.cpp.
References llvm::LLT::getElementCount(), llvm::LLT::getElementType(), llvm::MVT::getIntegerVT(), llvm::LLT::getSizeInBits(), llvm::MVT::getVectorVT(), and llvm::LLT::isVector().
Referenced by findGISelOptimalMemOpLowering(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVector(), llvm::CombinerHelper::matchExtractVectorElementWithBuildVectorTrunc(), and llvm::CombinerHelper::matchNonNegZext().
|
inlinestatic |
Definition at line 124 of file Discriminator.h.
Referenced by llvm::sampleprof::SampleProfileReader::getDiscriminatorMask(), and llvm::DILocation::getMaskedDiscriminator().
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 44 of file DiagnosticInfo.cpp.
References DK_FirstPluginKind.
} Node Properties
Definition at line 385 of file VECustomDAG.cpp.
References getAVLPos().
Referenced by getAnnotatedNodeAVL(), llvm::VETargetLowering::legalizePackedAVL(), and llvm::VETargetLowering::lowerVVP_LOAD_STORE().
Node Properties {.
Definition at line 218 of file VECustomDAG.cpp.
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().
Definition at line 390 of file VECustomDAG.cpp.
References getMaskPos().
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), llvm::VETargetLowering::splitPackedLoadStore(), and llvm::VETargetLowering::splitVectorOp().
Definition at line 353 of file VECustomDAG.cpp.
References N.
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().
|
static |
Definition at line 2795 of file SPIRVBuiltins.cpp.
References llvm::SPIRVGlobalRegistry::getOrCreateOpTypeByOpcode(), and llvm::SPIRV::BuiltinType::Opcode.
Referenced by llvm::SPIRV::lowerBuiltinType().
Definition at line 142 of file ProfDataUtils.cpp.
References getBranchWeightOffset(), and llvm::MDNode::getNumOperands().
Referenced by getValidBranchWeightMDNode(), and llvm::SwitchInstProfUpdateWrapper::init().
Definition at line 545 of file ConvertUTF.cpp.
References trailingBytesForUTF8.
Referenced by llvm::sys::unicode::columnWidthUTF8(), and convertUTF8Sequence().
|
static |
Definition at line 1003 of file SPIRVBuiltins.cpp.
References report_fatal_error().
Referenced by getNumSizeComponents().
Return the number of active elements for VL1 to VL256 predicate pattern, zero for all other patterns.
Definition at line 521 of file AArch64BaseInfo.h.
Referenced by instCombineSVECntElts(), instCombineSVELast(), isAllActivePredicate(), performMSTORECombine(), and performUnpackCombine().
|
inlinestatic |
Definition at line 82 of file Discriminator.h.
References llvm::sampleprof::PassLast.
Referenced by getFSPassBitBegin(), getFSPassBitEnd(), getLastFSPassBitBegin(), and getLastFSPassBitEnd().
Definition at line 41 of file HeatUtils.cpp.
References llvm::Value::users().
Referenced by llvm::CallGraphDOTInfo::CallGraphDOTInfo(), and llvm::DOTGraphTraits< CallGraphDOTInfo * >::getEdgeAttributes().
Helper function for obtaining the number of size components.
Definition at line 1020 of file SPIRVBuiltins.cpp.
References assert(), llvm::MachineOperand::getImm(), getNumComponentsForDim(), llvm::MachineInstr::getOpcode(), and llvm::MachineInstr::getOperand().
Referenced by generateImageSizeQueryInst().
Definition at line 1116 of file InstrProf.cpp.
References llvm::InstrProfRecord::getValueArrayForSite().
Definition at line 1111 of file InstrProf.cpp.
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 1102 of file InstrProf.cpp.
Definition at line 1106 of file InstrProf.cpp.
std::string llvm::getNVPTXRegClassName | ( | TargetRegisterClass const * | RC | ) |
Definition at line 27 of file NVPTXRegisterInfo.cpp.
std::string llvm::getNVPTXRegClassStr | ( | TargetRegisterClass const * | RC | ) |
Definition at line 65 of file NVPTXRegisterInfo.cpp.
Referenced by llvm::NVPTXAsmPrinter::getVirtualRegisterName().
std::optional< ObjCSelectorNames > llvm::getObjCNamesIfSelector | ( | StringRef | Name | ) |
If Name
is the AT_name of a DIE which refers to an Objective-C selector, returns an instance of ObjCSelectorNames.
The Selector and ClassName fields are guaranteed to be non-empty in the result.
Definition at line 1081 of file DWARFAcceleratorTable.cpp.
References append_range(), llvm::StringRef::back(), llvm::ObjCSelectorNames::ClassName, llvm::ObjCSelectorNames::ClassNameNoCategory, llvm::StringRef::drop_back(), llvm::StringRef::drop_front(), llvm::StringRef::find(), isObjCSelector(), llvm::ObjCSelectorNames::MethodNameNoCategory, Name, llvm::StringRef::npos, llvm::ObjCSelectorNames::Selector, llvm::StringRef::size(), and llvm::StringRef::take_front().
Referenced by getNames(), and llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::saveObjC().
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 578 of file MemoryBuiltins.cpp.
References llvm::ObjectSizeOffsetVisitor::compute(), DL, getSizeWithOverflow(), llvm::APInt::getZExtValue(), Ptr, and Size.
Referenced by computePointerICmp(), getObjectSize(), getPointerSize(), isDereferenceableAndAlignedPointer(), isObjectSize(), isObjectSmallerThan(), lowerObjectSizeCall(), and tryToOptimizeStoreOfAllocationToGlobal().
Definition at line 71 of file SPIRVMetadata.cpp.
References assert(), F, getOCLKernelArgAttribute(), and llvm::CallingConv::SPIR_KERNEL.
Referenced by getArgAccessQual().
Definition at line 78 of file SPIRVMetadata.cpp.
References assert(), F, getOCLKernelArgAttribute(), and llvm::CallingConv::SPIR_KERNEL.
Referenced by getKernelArgTypeQual().
std::string llvm::getOclOrSpirvBuiltinDemangledName | ( | StringRef | Name | ) |
Definition at line 392 of file SPIRVUtils.cpp.
References isNonMangledOCLBuiltin(), itaniumDemangle(), and Name.
Referenced by llvm::SPIRVCallLowering::lowerCall().
|
static |
Definition at line 172 of file RuntimeDyld.cpp.
References llvm::object::SectionRef::getAddress(), llvm::Error::success(), Sym, and llvm::Expected< T >::takeError().
Referenced by AddNodeIDCustom(), llvm::MCWinCOFFStreamer::emitInstToData(), llvm::RuntimeDyldImpl::loadObjectImpl(), performCONCAT_VECTORSCombine(), llvm::jitlink::relaxBlock(), and llvm::HexagonDAGToDAGISel::SelectAnyImmediate().
T * llvm::getOpcodeDef | ( | Register | Reg, |
const MachineRegisterInfo & | MRI | ||
) |
MachineInstr * llvm::getOpcodeDef | ( | unsigned | Opcode, |
Register | Reg, | ||
const MachineRegisterInfo & | MRI | ||
) |
See if Reg is defined by an single def instruction that is Opcode.
Also try to do trivial folding if it's a COPY with same types. Returns null otherwise.
Definition at line 645 of file Utils.cpp.
References DefMI, getDefIgnoringCopies(), llvm::MachineInstr::getOpcode(), and MRI.
Referenced by llvm::CombinerHelper::matchOperandIsUndef(), llvm::CombinerHelper::matchShuffleDisjointMask(), llvm::CombinerHelper::matchUndefSelectCmp(), llvm::CombinerHelper::matchUndefStore(), llvm::AMDGPURegisterBankInfo::setBufferOffsets(), stripAnySourceMods(), and llvm::LegalizationArtifactCombiner::tryFoldImplicitDef().
Definition at line 121 of file DWARFExpression.cpp.
References getDescImpl(), and getOpDescriptions().
|
static |
Definition at line 25 of file DWARFExpression.cpp.
References llvm::DWARFExpression::Operation::BaseTypeRef, llvm::DWARFExpression::Operation::Dwarf2, llvm::DWARFExpression::Operation::Dwarf3, llvm::DWARFExpression::Operation::Dwarf4, llvm::DWARFExpression::Operation::Dwarf5, llvm::DWARFExpression::Operation::SignedSize1, llvm::DWARFExpression::Operation::SignedSize2, llvm::DWARFExpression::Operation::SignedSize4, llvm::DWARFExpression::Operation::SignedSize8, llvm::DWARFExpression::Operation::SignedSizeLEB, llvm::DWARFExpression::Operation::Size1, llvm::DWARFExpression::Operation::Size2, llvm::DWARFExpression::Operation::Size4, llvm::DWARFExpression::Operation::Size8, llvm::DWARFExpression::Operation::SizeAddr, llvm::DWARFExpression::Operation::SizeBlock, llvm::DWARFExpression::Operation::SizeLEB, llvm::DWARFExpression::Operation::SizeRefAddr, llvm::DWARFExpression::Operation::SizeSubOpLEB, and llvm::DWARFExpression::Operation::WasmLocationArg.
Referenced by getOpDesc().
Definition at line 1091 of file LoopInfo.cpp.
References findOptionMDForLoop(), llvm::MDOperand::get(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm_unreachable, and Name.
Referenced by getBooleanLoopAttribute(), and hasVectorizeTransformation().
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 250 of file LoopUtils.cpp.
References llvm::ElementCount::get(), and getOptionalIntLoopAttribute().
Referenced by hasVectorizeTransformation(), and warnAboutLeftoverTransformations().
Find named metadata for a loop with an integer value.
Definition at line 1113 of file LoopInfo.cpp.
References findStringMetadataForLoop(), llvm::ConstantInt::getSExtValue(), and Name.
Referenced by computePeelCount(), getIntLoopAttribute(), getOptionalElementCountLoopAttribute(), hasUnrollAndJamTransformation(), hasUnrollTransformation(), hasVectorizeTransformation(), peelLoop(), and warnAboutLeftoverTransformations().
MachineBasicBlock::iterator llvm::getOpVariableMBBIt | ( | MachineInstr & | I | ) |
Definition at line 177 of file SPIRVUtils.cpp.
References llvm::MachineBasicBlock::begin(), E, llvm::MachineBasicBlock::end(), llvm::MachineFunction::front(), I, MBB, and llvm::MachineBasicBlock::SkipPHIsAndLabels().
Definition at line 96 of file Instrumentation.cpp.
References assert(), llvm::CallingConv::C, F, and llvm::Comdat::NoDeduplicate.
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.
Definition at line 295 of file ModuleUtils.cpp.
References assert(), createSanitizerCtorAndInitFunctions(), declareSanitizerInitFunction(), llvm::StringRef::empty(), and llvm::Type::getVoidTy().
Referenced by llvm::NumericalStabilitySanitizerPass::run(), and llvm::RealtimeSanitizerPass::run().
|
static |
Definition at line 2176 of file SPIRVBuiltins.cpp.
References llvm::StructType::create(), llvm::PointerType::get(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::MachineIRBuilder::getMF(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::StructType::getTypeByName(), and storageClassToAddressSpace().
Referenced by buildEnqueueKernel().
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 1093 of file LoopUtils.cpp.
References assert(), llvm::IRBuilderBase::CreateBinOp(), llvm::IRBuilderBase::CreateExtractElement(), createMinMaxOp(), llvm::IRBuilderBase::getInt32(), and llvm::RecurrenceDescriptor::isMinMaxRecurrenceKind().
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.
Definition at line 1581 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().
|
delete |
FunctionCallee llvm::getOrInsertLibFunc | ( | Module * | M, |
const TargetLibraryInfo & | TLI, | ||
LibFunc | TheLibFunc, | ||
AttributeList | AttributeList, | ||
Type * | RetTy, | ||
ArgsTy... | Args | ||
) |
Definition at line 43 of file BuildLibCalls.h.
References llvm::FunctionType::get(), getOrInsertLibFunc(), and RetTy.
FunctionCallee llvm::getOrInsertLibFunc | ( | Module * | M, |
const TargetLibraryInfo & | TLI, | ||
LibFunc | TheLibFunc, | ||
FunctionType * | T | ||
) |
Definition at line 1451 of file BuildLibCalls.cpp.
References getOrInsertLibFunc().
FunctionCallee llvm::getOrInsertLibFunc | ( | Module * | M, |
const TargetLibraryInfo & | TLI, | ||
LibFunc | TheLibFunc, | ||
FunctionType * | T, | ||
AttributeList | AttributeList | ||
) |
Calls getOrInsertFunction() and then makes sure to add mandatory argument attributes.
Definition at line 1378 of file BuildLibCalls.cpp.
References assert(), llvm::CallingConv::C, F, llvm::TargetLibraryInfo::getName(), llvm::TargetLibraryInfo::has(), markRegisterParameterAttributes(), Name, setArgExtAttr(), and setRetExtAttr().
Referenced by emitBinaryFloatFnCallHelper(), emitCalloc(), emitFPutC(), emitFPutS(), emitFWrite(), emitLibCall(), emitMalloc(), emitMemCpyChk(), emitPutChar(), emitPutS(), emitUnaryFloatFnCallHelper(), getOrInsertLibFunc(), and insertSinCosCall().
FunctionCallee llvm::getOrInsertLibFunc | ( | Module * | M, |
const TargetLibraryInfo & | TLI, | ||
LibFunc | TheLibFunc, | ||
Type * | RetTy, | ||
ArgsTy... | Args | ||
) |
Same as above, but without the attributes.
Definition at line 53 of file BuildLibCalls.h.
References getOrInsertLibFunc(), and RetTy.
|
static |
Definition at line 1016 of file GenericUniformityImpl.h.
References getExtDivCycle(), getIntDivCycle(), and Int.
Referenced by llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence().
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 8703 of file BitcodeReader.cpp.
References getLazyBitcodeModule().
Referenced by getLazyIRModule(), LLVMGetBitcodeModuleInContext(), and LLVMGetBitcodeModuleInContext2().
|
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 753 of file AArch64InstrInfo.h.
References llvm_unreachable.
Definition at line 50 of file SPIRVUtils.cpp.
Referenced by addStringImm().
getIRPGOFuncName()
Definition at line 403 of file InstrProf.cpp.
References GlobalIdentifierDelimiter, and llvm::StringRef::split().
Request the timer for this legacy-pass-manager's pass instance.
Definition at line 152 of file PassTimingInfo.cpp.
References P.
Referenced by llvm::PMDataManager::freePass(), llvm::FPPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::RGPassManager::runOnFunction(), and llvm::PMDataManager::verifyPreservedAnalysis().
|
static |
Definition at line 2454 of file DWARFLinker.cpp.
References llvm::DWARFDie::find(), remapPath(), and llvm::dwarf::toString().
Referenced by llvm::dwarf_linker::classic::DWARFLinker::link(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::link(), and llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::registerModuleReference().
|
inline |
Definition at line 6591 of file AArch64PerfectShuffle.h.
References all_of(), assert(), E, enumerate(), and PerfectShuffleTable.
Referenced by llvm::AArch64TTIImpl::getShuffleCost(), and llvm::AArch64TargetLowering::isShuffleMaskLegal().
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 379 of file InstrProf.cpp.
References llvm::GlobalValue::ExternalLinkage, F, getPGOFuncName(), getPGOFuncNameMetadata(), getStrippedSourceFileName(), lookupPGONameFromMetadata(), and Version.
Referenced by llvm::InstrProfSymtab::create(), and getPGOFuncName().
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 261 of file InstrProf.cpp.
References llvm::StringRef::empty(), llvm::GlobalValue::isLocalLinkage(), Name, and llvm::StringRef::str().
Return the PGOFuncName meta data associated with a function.
Definition at line 1407 of file InstrProf.cpp.
References F, and getPGOFuncNameMetadataName().
Referenced by getIRPGOFuncName(), and getPGOFuncName().
|
inline |
Definition at line 304 of file InstrProf.h.
Referenced by createPGOFuncNameMetadata(), and getPGOFuncNameMetadata().
StringRef llvm::getPGOFuncNameVarInitializer | ( | GlobalVariable * | NameVar | ) |
Return the initializer in string of the PGO name var NameVar
.
Definition at line 719 of file InstrProf.cpp.
References llvm::GlobalVariable::getInitializer().
Referenced by collectPGOFuncNameStrings().
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 422 of file InstrProf.cpp.
References getInstrProfNameVarPrefix(), and llvm::GlobalValue::isLocalLinkage().
Referenced by createPGOFuncNameVar().
std::string llvm::getPGOName | ( | const GlobalVariable & | V, |
bool | InLTO = false |
||
) |
Definition at line 395 of file InstrProf.cpp.
References getIRPGOObjectName(), and getPGONameMetadataName().
Referenced by annotateAllFunctions(), collectVTableStrings(), and llvm::InstrProfSymtab::create().
|
inline |
Definition at line 306 of file InstrProf.h.
Referenced by createPGONameMetadata(), and getPGOName().
|
static |
Definition at line 2810 of file SPIRVBuiltins.cpp.
References assert(), llvm::TargetExtType::getIntParameter(), llvm::TargetExtType::getNumIntParameters(), and llvm::SPIRVGlobalRegistry::getOrCreateOpTypePipe().
Referenced by llvm::SPIRV::lowerBuiltinType().
Definition at line 325 of file SPIRVUtils.h.
References isTypedPointerWrapper().
Definition at line 275 of file SPIRVUtils.h.
References llvm::Argument::getParamByRefType(), llvm::Argument::getParamByValType(), llvm::Argument::getParamStructRetType(), llvm::Argument::hasByRefAttr(), llvm::Argument::hasByValAttr(), and llvm::Argument::hasStructRetAttr().
Referenced by getArgSPIRVType().
Definition at line 262 of file SPIRVUtils.h.
References llvm::Type::getTypeID(), and llvm::Type::PointerTyID.
Referenced by getArgSPIRVType(), getFunctionPointerElemType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::CallBase::isReturnNonNull(), llvm::SPIRVCallLowering::lowerFormalArguments(), and toTypedPointer().
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 142 of file TypeMetadataUtils.cpp.
References llvm::CallingConv::C, DL, llvm::StructLayout::getElementContainingOffset(), llvm::StructLayout::getElementOffset(), llvm::ArrayType::getElementType(), getPointerAtOffset(), llvm::StructLayout::getSizeInBytes(), I, and Offset.
Referenced by getFunctionAtVTableOffset(), and getPointerAtOffset().
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 168 of file SipHash.cpp.
References dbgs(), getSipHash_2_4_64(), LLVM_DEBUG, and llvm::support::endian::read64le().
Referenced by llvm::AArch64Subtarget::getPtrAuthBlockAddressDiscriminatorIfEnabled().
|
inline |
Definition at line 650 of file ValueTracking.h.
References DL, GetPointerBaseWithConstantOffset(), Offset, and Ptr.
|
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 639 of file ValueTracking.h.
References llvm::sampleprof::Base, DL, llvm::APInt::getSExtValue(), Offset, and Ptr.
Referenced by llvm::VNCoercion::analyzeLoadFromClobberingWrite(), llvm::ARMBankConflictHazardRecognizer::getHazardType(), GetPointerBaseWithConstantOffset(), and processUse().
A helper function that returns the pointer operand of a load, store or GEP instruction.
Returns nullptr if not load, store, or GEP.
Definition at line 4998 of file Instructions.h.
References getLoadStorePointerOperand(), and Ptr.
Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), llvm::AtomicRMWInst::getPointerAddressSpace(), getPointerOperand(), llvm::PtrToIntOperator::getPointerOperandType(), llvm::AddrSpaceCastOperator::getSrcAddressSpace(), handleGuaranteedWellDefinedOps(), and promoteAllocaUserToVector().
Definition at line 5005 of file Instructions.h.
References getPointerOperand().
std::optional< int > 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.
StrictCheck | Ensure that the calculated distance matches the type-based one after all the bitcasts removal in the provided pointers. |
Definition at line 1545 of file LoopAccessAnalysis.cpp.
References assert(), CheckType(), llvm::ScalarEvolution::computeConstantDifference(), DL, llvm::Type::getPointerAddressSpace(), llvm::ScalarEvolution::getSCEV(), llvm::APInt::getSExtValue(), llvm::Value::getType(), llvm::APInt::sextOrTrunc(), Size, and llvm::Value::stripAndAccumulateConstantOffsets().
Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), gatherPossiblyVectorizableLoads(), llvm::sandboxir::Utils::getPointerDiffInBytes(), llvm::slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), isConsecutiveAccess(), and sortPtrAccesses().
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(), and llvm::CmpInst::makeCmpResultType().
Referenced by getFCmpValue().
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_unreachable, and llvm::CmpInst::makeCmpResultType().
Referenced by getNewICmpValue().
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 1445 of file LoopAccessAnalysis.cpp.
References assert(), llvm::CallingConv::C, dbgs(), DL, GEP, llvm::PredicatedScalarEvolution::getAsAddRec(), llvm::APInt::getBitWidth(), llvm::BasicBlock::getDataLayout(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::SCEVAddRecExpr::getLoop(), llvm::BasicBlock::getParent(), llvm::Type::getPointerAddressSpace(), llvm::PredicatedScalarEvolution::getSE(), llvm::APInt::getSExtValue(), llvm::SCEVAddRecExpr::getStepRecurrence(), llvm::SCEVWrapPredicate::IncrementNUSW, llvm::ScalarEvolution::isLoopInvariant(), isNoWrapAddRec(), llvm::Type::isPointerTy(), LLVM_DEBUG, NullPointerIsDefined(), Ptr, replaceSymbolicStrideSCEV(), llvm::PredicatedScalarEvolution::setNoOverflow(), and Size.
Referenced by llvm::InterleavedAccessInfo::analyzeInterleaving(), canTailPredicateLoop(), containsDecreasingPointers(), llvm::LoopVectorizationLegality::isConsecutivePtr(), and isNoWrap().
std::error_code llvm::getRandomBytes | ( | void * | Buffer, |
size_t | Size | ||
) |
Definition at line 70 of file RandomNumberGenerator.cpp.
References errnoAsErrorCode(), and Size.
If this is a call to a realloc function, return the reallocated operand.
Definition at line 324 of file MemoryBuiltins.cpp.
References checkFnAllocKind(), and llvm::CallBase::getArgOperandWithAttribute().
Referenced by isAllocSiteRemovable(), and llvm::InstCombinerImpl::visitFree().
|
inline |
A helper function that returns the reciprocal of the block probability of predicated blocks.
If we return X, we are assuming the predicated block will execute once for every X iterations of the loop header.
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 92 of file VPlan.h.
Referenced by llvm::VPRegionBlock::cost(), llvm::LoopVectorizationCostModel::expectedCost(), and llvm::LoopVectorizationCostModel::getDivRemSpeculationCost().
Value * llvm::getRecurrenceIdentity | ( | RecurKind | K, |
Type * | Tp, | ||
FastMathFlags | FMF | ||
) |
Given information about an recurrence kind, return the identity for the @llvm.vector.reduce.
Definition at line 1270 of file LoopUtils.cpp.
References assert(), getReductionIdentity(), getReductionIntrinsicID(), llvm::FastMathFlags::noNaNs(), and llvm::FastMathFlags::noSignedZeros().
Referenced by createSimpleReduction(), llvm::VPReductionPHIRecipe::execute(), and llvm::VPReductionRecipe::execute().
Value * llvm::getReductionIdentity | ( | Intrinsic::ID | RdxID, |
Type * | Ty, | ||
FastMathFlags | FMF | ||
) |
Given information about an @llvm.vector.reduce.
Definition at line 1228 of file LoopUtils.cpp.
References getArithmeticReductionInstruction(), llvm::ConstantExpr::getBinOpIdentity(), llvm::Type::getFltSemantics(), llvm::ConstantFP::getInfinity(), llvm::ConstantExpr::getIntrinsicIdentity(), llvm::APFloat::getLargest(), getMinMaxReductionIntrinsicOp(), llvm::ConstantFP::getQNaN(), and llvm_unreachable.
Referenced by getRecurrenceIdentity().
|
constexpr |
Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence kind.
Definition at line 922 of file LoopUtils.cpp.
References llvm_unreachable.
Referenced by createOrderedReduction(), createSimpleReduction(), and getRecurrenceIdentity().
GCNRegPressure llvm::getRegPressure | ( | const MachineRegisterInfo & | MRI, |
Range && | LiveRegs | ||
) |
Definition at line 387 of file GCNRegPressure.h.
References llvm::LaneBitmask::getNone(), llvm::GCNRegPressure::inc(), and MRI.
Referenced by llvm::GCNSchedStage::initGCNRegion(), llvm::GCNUpwardRPTracker::isValid(), printLivenessInfo(), llvm::GCNUpwardRPTracker::recede(), llvm::GCNRPTracker::reset(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().
TargetInstrInfo::RegSubRegPair llvm::getRegSequenceSubReg | ( | MachineInstr & | MI, |
unsigned | SubReg | ||
) |
Return the SubReg component from REG_SEQUENCE.
Definition at line 9470 of file SIInstrInfo.cpp.
References assert(), getRegOrUndef(), I, MI, and SubReg.
Referenced by followSubRegDef().
|
inline |
Get all register state flags from machine operand RegOp
.
Definition at line 575 of file MachineInstrBuilder.h.
References assert(), getDeadRegState(), getDebugRegState(), getDefRegState(), getImplRegState(), getInternalReadRegState(), getKillRegState(), llvm::MachineOperand::getReg(), getRenamableRegState(), getUndefRegState(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDebug(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isInternalRead(), llvm::MachineOperand::isKill(), llvm::Register::isPhysical(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isRenamable(), and llvm::MachineOperand::isUndef().
Referenced by llvm::HexagonInstrInfo::expandPostRAPseudo(), and llvm::X86InstrInfo::expandPostRAPseudo().
|
inline |
Create RegSubRegPair from a register MachineOperand.
Definition at line 1480 of file SIInstrInfo.h.
References assert().
Referenced by getRegOrUndef(), and getVRegSubRegDef().
std::unique_ptr< InlineAdvisor > llvm::getReleaseModeAdvisor | ( | Module & | M, |
ModuleAnalysisManager & | MAM, | ||
std::function< bool(CallBase &)> | GetDefaultAdvice | ||
) |
Definition at line 72 of file MLInlineAdvisor.cpp.
References DecisionName, DefaultDecisionSpec, FeatureMap, InlineDecisionSpec, InteractiveChannelBaseName, InteractiveIncludeDefault, MAM, ModelSelector, and llvm::EmbeddedModelRunnerOptions::setModelSelector().
Referenced by llvm::InlineAdvisorAnalysis::Result::tryCreate().
Definition at line 570 of file MachineInstrBuilder.h.
References B, and llvm::RegState::Renamable.
Referenced by llvm::RISCVInstrInfo::copyPhysReg(), getRegState(), and llvm::RISCVInstrInfo::movImm().
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().
Definition at line 295 of file NVPTXUtilities.cpp.
References F, getReqNTIDx(), getReqNTIDy(), and getReqNTIDz().
Referenced by runNVVMIntrRange().
Definition at line 283 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Referenced by getReqNTID().
Definition at line 287 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Referenced by getReqNTID().
Definition at line 291 of file NVPTXUtilities.cpp.
References F, and findOneNVVMAnnotation().
Referenced by getReqNTID().
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 1661 of file TargetLoweringBase.cpp.
References llvm::ISD::ANY_EXTEND, CC, ComputeValueVTs(), DL, llvm::TargetLoweringBase::getNumRegistersForCallingConv(), llvm::TargetLoweringBase::getRegisterTypeForCallingConv(), llvm::TargetLowering::getTypeForExtReturn(), llvm::AttributeList::hasRetAttr(), llvm::EVT::isInteger(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::ISD::SIGN_EXTEND, llvm::SmallVectorBase< Size_T >::size(), and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::FastISel::lowerCallTo(), llvm::TargetLowering::LowerCallTo(), llvm::FunctionLoweringInfo::set(), and llvm::PPCTargetLowering::supportsTailCallFor().
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 883 of file LoopVectorize.cpp.
References B.
Referenced by llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPLane::getAsRuntimeExpr(), and llvm::VPlan::prepareToExecute().
|
static |
Definition at line 2868 of file SPIRVBuiltins.cpp.
References getImageType(), and llvm::SPIRVGlobalRegistry::getOrCreateOpTypeSampledImage().
Referenced by llvm::SPIRV::lowerBuiltinType().
|
static |
Definition at line 1795 of file SPIRVBuiltins.cpp.
References report_fatal_error().
Referenced by generateReadImageInst(), and generateSampleImageInst().
|
static |
Definition at line 1817 of file SPIRVBuiltins.cpp.
Referenced by generateReadImageInst(), and generateSampleImageInst().
Definition at line 235 of file NVPTXUtilities.cpp.
References assert().
Definition at line 1812 of file SPIRVBuiltins.cpp.
Referenced by generateReadImageInst(), and generateSampleImageInst().
|
static |
Definition at line 2804 of file SPIRVBuiltins.cpp.
References llvm::SPIRVGlobalRegistry::getOrCreateOpTypeSampler().
Referenced by llvm::SPIRV::lowerBuiltinType().
Definition at line 369 of file VECustomDAG.cpp.
References assert(), and llvm_unreachable.
Referenced by llvm::VECustomDAG::getLegalReductionOpVVP().
void llvm::getSelectionDAGFallbackAnalysisUsage | ( | AnalysisUsage & | AU | ) |
Modify analysis usage so it preserves passes required for the SelectionDAG fallback.
Definition at line 1168 of file Utils.cpp.
References llvm::AnalysisUsage::addPreserved().
Referenced by llvm::InstructionSelect::getAnalysisUsage(), llvm::IRTranslator::getAnalysisUsage(), llvm::Legalizer::getAnalysisUsage(), llvm::LoadStoreOpt::getAnalysisUsage(), llvm::Localizer::getAnalysisUsage(), and llvm::RegBankSelect::getAnalysisUsage().
SelectPatternResult llvm::getSelectPattern | ( | CmpInst::Predicate | Pred, |
SelectPatternNaNBehavior | NaNBehavior = SPNB_NA , |
||
bool | Ordered = false |
||
) |
Determine the pattern for predicate X Pred Y ? X : Y
.
Definition at line 8633 of file ValueTracking.cpp.
References llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, 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, SPF_FMAXNUM, SPF_FMINNUM, SPF_SMAX, SPF_SMIN, SPF_UMAX, SPF_UMIN, SPF_UNKNOWN, and SPNB_NA.
Referenced by matchSelectPattern().
SmallVector< uint8_t, 64 > llvm::GetShadowBytes | ( | const SmallVectorImpl< ASanStackVariableDescription > & | Vars, |
const ASanStackFrameLayout & | Layout | ||
) |
Definition at line 115 of file ASanStackFrameLayout.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), llvm::ASanStackFrameLayout::FrameSize, llvm::ASanStackFrameLayout::Granularity, kAsanStackLeftRedzoneMagic, kAsanStackMidRedzoneMagic, kAsanStackRightRedzoneMagic, Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by GetShadowBytesAfterScope().
SmallVector< uint8_t, 64 > llvm::GetShadowBytesAfterScope | ( | const SmallVectorImpl< ASanStackVariableDescription > & | Vars, |
const ASanStackFrameLayout & | Layout | ||
) |
Definition at line 133 of file ASanStackFrameLayout.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), GetShadowBytes(), llvm::ASanStackFrameLayout::Granularity, kAsanStackUseAfterScopeMagic, and Offset.
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 373 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(), computeKnownFPClass(), llvm::SelectionDAG::ComputeNumSignBits(), getShuffleDemandedElts(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), and llvm::TargetLowering::SimplifyDemandedBits().
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 542 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().
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 1118 of file LoopUtils.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::IRBuilderBase::CreateBinOp(), llvm::IRBuilderBase::CreateExtractElement(), createMinMaxOp(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::IRBuilderBase::getInt32(), llvm::RecurrenceDescriptor::isMinMaxRecurrenceKind(), and isPowerOf2_32().
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 162 of file SipHash.cpp.
Computes a SipHash-2-4 64-bit result.
Definition at line 157 of file SipHash.cpp.
Referenced by getPointerAuthStableSipHash().
unsigned llvm::getSLEB128Size | ( | int64_t | Value | ) |
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().
bool llvm::getSpirvBuiltInIdByName | ( | llvm::StringRef | Name, |
SPIRV::BuiltIn::BuiltIn & | BI | ||
) |
Definition at line 185 of file SPIRVBaseInfo.cpp.
References Lookup(), and Name.
Referenced by llvm::SPIRVGlobalRegistry::buildGlobalVariable().
|
static |
Definition at line 536 of file SPIRVBuiltins.cpp.
References report_fatal_error().
Referenced by buildAtomicCompareExchangeInst(), buildBarrierInst(), and buildMemSemanticsReg().
|
static |
Definition at line 553 of file SPIRVBuiltins.cpp.
References report_fatal_error().
Referenced by buildAtomicCompareExchangeInst(), buildBarrierInst(), and buildScopeReg().
std::string llvm::getSPIRVStringOperand | ( | const InstType & | MI, |
unsigned | StartIndex | ||
) |
Definition at line 260 of file SPIRVBaseInfo.h.
Referenced by getStringImm(), and llvm::SPIRVInstPrinter::printStringImm().
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 290 of file VectorUtils.cpp.
References assert().
Referenced by formSplatFromShuffles(), llvm::X86TTIImpl::isProfitableToSinkOperands(), and lowerShuffleAsBroadcast().
std::optional< int > llvm::getSplatIndex | ( | MachineInstr & | MI | ) |
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 312 of file VectorUtils.cpp.
References llvm::CallingConv::C, llvm::PatternMatch::m_InsertElt(), llvm::PatternMatch::m_Shuffle(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_ZeroInt(), llvm::PatternMatch::match(), and Splat.
Referenced by findScalarElement(), llvm::TargetTransformInfoImplCRTPBase< T >::getGEPCost(), llvm::TargetTransformInfo::getOperandInfo(), instCombineSVECmpNE(), instCombineSVEInsr(), instCombineSVELast(), instCombineSVESDIV(), instCombineSVETBL(), instCombineSVEUnpack(), instCombineSVEVectorMul(), isAllTrueMask(), llvm::VETargetLowering::lowerBUILD_VECTOR(), lowerBUILD_VECTOR(), lowerBuildVectorOfConstants(), matchStridedStart(), and simplifyExtractElementInst().
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 493 of file Utils.cpp.
References getDefSrcRegIgnoringCopies(), and MRI.
Referenced by BitOp3_Op(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), and llvm::AMDGPURegisterBankInfo::setBufferOffsets().
std::unique_ptr< CSEConfigBase > llvm::getStandardCSEConfigForOpt | ( | CodeGenOptLevel | Level | ) |
Definition at line 89 of file CSEInfo.cpp.
Referenced by llvm::AMDGPUPassConfig::getCSEConfig().
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.
Definition at line 332 of file VECustomDAG.cpp.
Referenced by llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().
Definition at line 186 of file InlineCost.cpp.
References llvm::CallBase::getFnAttr(), and getStringFnAttrAsInt().
Referenced by getStringFnAttrAsInt().
Definition at line 177 of file InlineCost.cpp.
References llvm::StringRef::getAsInteger(), llvm::Attribute::getValueAsString(), and llvm::Attribute::isValid().
Definition at line 190 of file InlineCost.cpp.
References F, and getStringFnAttrAsInt().
std::string llvm::getStringImm | ( | const MachineInstr & | MI, |
unsigned | StartIndex | ||
) |
Definition at line 79 of file SPIRVUtils.cpp.
References getSPIRVStringOperand(), and MI.
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 6687 of file ValueTracking.cpp.
References GetStringLengthH().
Referenced by getAllocSize().
|
static |
Definition at line 302 of file InstrProf.cpp.
References llvm::GlobalValue::getParent(), llvm::Module::getSourceFileName(), StaticFuncFullModulePrefix, StaticFuncStripDirNamePrefix, and stripDirPrefix().
Referenced by getIRPGOObjectName(), and getPGOFuncName().
|
inlinestatic |
Definition at line 25 of file Chrono.cpp.
References assert(), and llvm::sys::toTimeT().
Referenced by operator<<().
|
inlinestatic |
Definition at line 43 of file Chrono.cpp.
References assert(), and llvm::sys::toTimeT().
std::string llvm::getSubDirectoryPath | ( | SubDirectoryType | Type, |
ToolsetLayout | VSLayout, | ||
const std::string & | VCToolChainPath, | ||
llvm::Triple::ArchType | TargetArch, | ||
llvm::StringRef | SubdirParent = "" |
||
) |
Definition at line 339 of file MSVCPaths.cpp.
References llvm::sys::path::append(), archToDevDivInternalArch(), archToLegacyVCArch(), archToWindowsSDKArch(), Bin, DevDivInternal, llvm::StringRef::empty(), llvm::Triple::getArch(), llvm::sys::getProcessTriple(), Include, Lib, OlderVS, VS2017OrNewer, and llvm::Triple::x86_64.
Referenced by useUniversalCRT().
Definition at line 137 of file DWARFExpression.cpp.
References assert(), getDescImpl(), and getSubOpDescriptions().
|
static |
Definition at line 126 of file DWARFExpression.cpp.
References llvm::DWARFExpression::Operation::Dwarf5, and llvm::DWARFExpression::Operation::SizeSubOpLEB.
Referenced by getSubOpDesc().
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 79 of file CFG.cpp.
References assert(), and llvm::BasicBlock::getTerminator().
Referenced by DemoteRegToStack(), getInstrBB(), and SplitEdge().
Definition at line 230 of file NVPTXUtilities.cpp.
References assert().
Return specific VL predicate pattern based on the number of elements.
Definition at line 549 of file AArch64BaseInfo.h.
Referenced by getPredicateForFixedLengthVector(), llvm::AArch64TargetLowering::isLegalInterleavedAccessType(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), and optimizeIncrementingWhile().
Needed by swapByteOrder().
Definition at line 37 of file DataExtractor.h.
References llvm::CallingConv::C.
CapabilityList llvm::getSymbolicOperandCapabilities | ( | SPIRV::OperandCategory::OperandCategory | Category, |
uint32_t | Value | ||
) |
Definition at line 118 of file SPIRVBaseInfo.cpp.
References llvm::SPIRV::CapabilityEntry::Category, llvm::ArrayRef< T >::end(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SPIRV::CapabilityEntry::ReqCapability, and llvm::SPIRV::CapabilityEntry::Value.
ExtensionList llvm::getSymbolicOperandExtensions | ( | SPIRV::OperandCategory::OperandCategory | Category, |
uint32_t | Value | ||
) |
Definition at line 157 of file SPIRVBaseInfo.cpp.
References llvm::ArrayRef< T >::end(), and Extensions.
VersionTuple llvm::getSymbolicOperandMaxVersion | ( | SPIRV::OperandCategory::OperandCategory | Category, |
uint32_t | Value | ||
) |
Definition at line 106 of file SPIRVBaseInfo.cpp.
References Lookup().
VersionTuple llvm::getSymbolicOperandMinVersion | ( | SPIRV::OperandCategory::OperandCategory | Category, |
uint32_t | Value | ||
) |
Definition at line 94 of file SPIRVBaseInfo.cpp.
References Lookup().
std::string llvm::getSymbolicOperandMnemonic | ( | SPIRV::OperandCategory::OperandCategory | Category, |
int32_t | Value | ||
) |
Definition at line 57 of file SPIRVBaseInfo.cpp.
References llvm::SPIRV::SymbolicOperand::Category, llvm::ArrayRef< T >::end(), Lookup(), llvm::SPIRV::SymbolicOperand::Mnemonic, Name, llvm::StringRef::str(), and llvm::SPIRV::SymbolicOperand::Value.
Referenced by llvm::SPIRVInstPrinter::printInst(), and llvm::SPIRVInstPrinter::printSymbolicOperand().
Definition at line 42 of file MVETailPredUtils.h.
References llvm_unreachable.
unsigned llvm::gettBLXrOpcode | ( | const MachineFunction & | MF | ) |
Definition at line 6764 of file ARMBaseInstrInfo.cpp.
References llvm::MachineFunction::getSubtarget().
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 llvm::LLVMContext::emitError(), llvm::json::ObjectMapper::map(), OS, PARSE_TYPE, and SUPPORTED_TENSOR_TYPES.
Definition at line 225 of file NVPTXUtilities.cpp.
References assert().
Target & llvm::getTheAArch64_32Target | ( | ) |
Definition at line 21 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
Target & llvm::getTheAArch64beTarget | ( | ) |
Definition at line 17 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
Target & llvm::getTheAArch64leTarget | ( | ) |
Definition at line 13 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
Target & llvm::getTheARCTarget | ( | ) |
Definition at line 14 of file ARCTargetInfo.cpp.
Referenced by LLVMInitializeARCAsmPrinter(), LLVMInitializeARCDisassembler(), LLVMInitializeARCTarget(), LLVMInitializeARCTargetInfo(), and LLVMInitializeARCTargetMC().
Target & llvm::getTheARM64_32Target | ( | ) |
Definition at line 29 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
Target & llvm::getTheARM64Target | ( | ) |
Definition at line 25 of file AArch64TargetInfo.cpp.
Referenced by LLVMInitializeAArch64AsmParser(), LLVMInitializeAArch64AsmPrinter(), LLVMInitializeAArch64Disassembler(), LLVMInitializeAArch64Target(), LLVMInitializeAArch64TargetInfo(), and LLVMInitializeAArch64TargetMC().
Target & llvm::getTheARMBETarget | ( | ) |
Definition at line 17 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
Target & llvm::getTheARMLETarget | ( | ) |
Definition at line 13 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
Target & llvm::getTheAVRTarget | ( | ) |
Definition at line 12 of file AVRTargetInfo.cpp.
Referenced by LLVMInitializeAVRAsmParser(), LLVMInitializeAVRAsmPrinter(), LLVMInitializeAVRDisassembler(), LLVMInitializeAVRTarget(), LLVMInitializeAVRTargetInfo(), and LLVMInitializeAVRTargetMC().
Target & llvm::getTheBPFbeTarget | ( | ) |
Definition at line 18 of file BPFTargetInfo.cpp.
Referenced by LLVMInitializeBPFAsmParser(), LLVMInitializeBPFAsmPrinter(), LLVMInitializeBPFDisassembler(), LLVMInitializeBPFTarget(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeBPFTargetMC().
Target & llvm::getTheBPFleTarget | ( | ) |
Definition at line 14 of file BPFTargetInfo.cpp.
Referenced by LLVMInitializeBPFAsmParser(), LLVMInitializeBPFAsmPrinter(), LLVMInitializeBPFDisassembler(), LLVMInitializeBPFTarget(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeBPFTargetMC().
Target & llvm::getTheBPFTarget | ( | ) |
Definition at line 22 of file BPFTargetInfo.cpp.
Referenced by LLVMInitializeBPFAsmParser(), LLVMInitializeBPFAsmPrinter(), LLVMInitializeBPFDisassembler(), LLVMInitializeBPFTarget(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeBPFTargetMC().
Target & llvm::getTheCSKYTarget | ( | ) |
Definition at line 13 of file CSKYTargetInfo.cpp.
Referenced by LLVMInitializeCSKYAsmParser(), LLVMInitializeCSKYAsmPrinter(), LLVMInitializeCSKYDisassembler(), LLVMInitializeCSKYTarget(), LLVMInitializeCSKYTargetInfo(), and LLVMInitializeCSKYTargetMC().
Target & llvm::getTheDirectXTarget | ( | ) |
Definition at line 19 of file DirectXTargetInfo.cpp.
Referenced by LLVMInitializeDirectXAsmPrinter(), LLVMInitializeDirectXTarget(), LLVMInitializeDirectXTargetInfo(), and LLVMInitializeDirectXTargetMC().
Target & llvm::getTheGCNTarget | ( | ) |
The target for GCN GPUs.
Definition at line 25 of file AMDGPUTargetInfo.cpp.
Referenced by LLVMInitializeAMDGPUAsmParser(), LLVMInitializeAMDGPUAsmPrinter(), LLVMInitializeAMDGPUDisassembler(), LLVMInitializeAMDGPUTarget(), LLVMInitializeAMDGPUTargetInfo(), LLVMInitializeAMDGPUTargetMC(), and LLVMInitializeAMDGPUTargetMCA().
Target & llvm::getTheHexagonTarget | ( | ) |
Definition at line 13 of file HexagonTargetInfo.cpp.
Referenced by LLVMInitializeHexagonAsmParser(), LLVMInitializeHexagonAsmPrinter(), LLVMInitializeHexagonDisassembler(), LLVMInitializeHexagonTarget(), LLVMInitializeHexagonTargetInfo(), and LLVMInitializeHexagonTargetMC().
Target & llvm::getTheLanaiTarget | ( | ) |
Definition at line 14 of file LanaiTargetInfo.cpp.
Referenced by LLVMInitializeLanaiAsmParser(), LLVMInitializeLanaiAsmPrinter(), LLVMInitializeLanaiDisassembler(), LLVMInitializeLanaiTarget(), LLVMInitializeLanaiTargetInfo(), and LLVMInitializeLanaiTargetMC().
Target & llvm::getTheLoongArch32Target | ( | ) |
Definition at line 13 of file LoongArchTargetInfo.cpp.
Referenced by LLVMInitializeLoongArchAsmParser(), LLVMInitializeLoongArchAsmPrinter(), LLVMInitializeLoongArchDisassembler(), LLVMInitializeLoongArchTarget(), LLVMInitializeLoongArchTargetInfo(), and LLVMInitializeLoongArchTargetMC().
Target & llvm::getTheLoongArch64Target | ( | ) |
Definition at line 18 of file LoongArchTargetInfo.cpp.
Referenced by LLVMInitializeLoongArchAsmParser(), LLVMInitializeLoongArchAsmPrinter(), LLVMInitializeLoongArchDisassembler(), LLVMInitializeLoongArchTarget(), LLVMInitializeLoongArchTargetInfo(), and LLVMInitializeLoongArchTargetMC().
Target & llvm::getTheM68kTarget | ( | ) |
Definition at line 18 of file M68kTargetInfo.cpp.
Referenced by LLVMInitializeM68kAsmParser(), LLVMInitializeM68kAsmPrinter(), LLVMInitializeM68kDisassembler(), LLVMInitializeM68kTarget(), LLVMInitializeM68kTargetInfo(), and LLVMInitializeM68kTargetMC().
Target & llvm::getTheMips64elTarget | ( | ) |
Definition at line 25 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
Target & llvm::getTheMips64Target | ( | ) |
Definition at line 21 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
Target & llvm::getTheMipselTarget | ( | ) |
Definition at line 17 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
Target & llvm::getTheMipsTarget | ( | ) |
Definition at line 13 of file MipsTargetInfo.cpp.
Referenced by LLVMInitializeMipsAsmParser(), LLVMInitializeMipsAsmPrinter(), LLVMInitializeMipsDisassembler(), LLVMInitializeMipsTarget(), LLVMInitializeMipsTargetInfo(), and LLVMInitializeMipsTargetMC().
Target & llvm::getTheMSP430Target | ( | ) |
Definition at line 13 of file MSP430TargetInfo.cpp.
Referenced by LLVMInitializeMSP430AsmParser(), LLVMInitializeMSP430AsmPrinter(), LLVMInitializeMSP430Disassembler(), LLVMInitializeMSP430Target(), LLVMInitializeMSP430TargetInfo(), and LLVMInitializeMSP430TargetMC().
Target & llvm::getTheNVPTXTarget32 | ( | ) |
Definition at line 13 of file NVPTXTargetInfo.cpp.
Referenced by LLVMInitializeNVPTXAsmPrinter(), LLVMInitializeNVPTXTarget(), LLVMInitializeNVPTXTargetInfo(), and LLVMInitializeNVPTXTargetMC().
Target & llvm::getTheNVPTXTarget64 | ( | ) |
Definition at line 17 of file NVPTXTargetInfo.cpp.
Referenced by LLVMInitializeNVPTXAsmPrinter(), LLVMInitializeNVPTXTarget(), LLVMInitializeNVPTXTargetInfo(), and LLVMInitializeNVPTXTargetMC().
Target & llvm::getThePPC32LETarget | ( | ) |
Definition at line 17 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
Target & llvm::getThePPC32Target | ( | ) |
Definition at line 13 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
Target & llvm::getThePPC64LETarget | ( | ) |
Definition at line 25 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
Target & llvm::getThePPC64Target | ( | ) |
Definition at line 21 of file PowerPCTargetInfo.cpp.
Referenced by LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCAsmPrinter(), LLVMInitializePowerPCDisassembler(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetInfo(), and LLVMInitializePowerPCTargetMC().
Target & llvm::getTheR600Target | ( | ) |
The target for R600 GPUs.
Definition at line 19 of file AMDGPUTargetInfo.cpp.
Referenced by LLVMInitializeAMDGPUAsmParser(), LLVMInitializeAMDGPUAsmPrinter(), LLVMInitializeAMDGPUTarget(), LLVMInitializeAMDGPUTargetInfo(), LLVMInitializeAMDGPUTargetMC(), and LLVMInitializeAMDGPUTargetMCA().
Target & llvm::getTheRISCV32Target | ( | ) |
Definition at line 13 of file RISCVTargetInfo.cpp.
Referenced by LLVMInitializeRISCVAsmParser(), LLVMInitializeRISCVAsmPrinter(), LLVMInitializeRISCVDisassembler(), LLVMInitializeRISCVTarget(), LLVMInitializeRISCVTargetInfo(), LLVMInitializeRISCVTargetMC(), and LLVMInitializeRISCVTargetMCA().
Target & llvm::getTheRISCV64Target | ( | ) |
Definition at line 18 of file RISCVTargetInfo.cpp.
Referenced by LLVMInitializeRISCVAsmParser(), LLVMInitializeRISCVAsmPrinter(), LLVMInitializeRISCVDisassembler(), LLVMInitializeRISCVTarget(), LLVMInitializeRISCVTargetInfo(), LLVMInitializeRISCVTargetMC(), and LLVMInitializeRISCVTargetMCA().
Target & llvm::getTheSparcelTarget | ( | ) |
Definition at line 21 of file SparcTargetInfo.cpp.
Referenced by LLVMInitializeSparcAsmParser(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcDisassembler(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), and LLVMInitializeSparcTargetMC().
Target & llvm::getTheSparcTarget | ( | ) |
Definition at line 13 of file SparcTargetInfo.cpp.
Referenced by LLVMInitializeSparcAsmParser(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcDisassembler(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), and LLVMInitializeSparcTargetMC().
Target & llvm::getTheSparcV9Target | ( | ) |
Definition at line 17 of file SparcTargetInfo.cpp.
Referenced by LLVMInitializeSparcAsmParser(), LLVMInitializeSparcAsmPrinter(), LLVMInitializeSparcDisassembler(), LLVMInitializeSparcTarget(), LLVMInitializeSparcTargetInfo(), and LLVMInitializeSparcTargetMC().
Target & llvm::getTheSPIRV32Target | ( | ) |
Definition at line 14 of file SPIRVTargetInfo.cpp.
Referenced by LLVMInitializeSPIRVAsmPrinter(), LLVMInitializeSPIRVTarget(), LLVMInitializeSPIRVTargetInfo(), and LLVMInitializeSPIRVTargetMC().
Target & llvm::getTheSPIRV64Target | ( | ) |
Definition at line 18 of file SPIRVTargetInfo.cpp.
Referenced by LLVMInitializeSPIRVAsmPrinter(), LLVMInitializeSPIRVTarget(), LLVMInitializeSPIRVTargetInfo(), and LLVMInitializeSPIRVTargetMC().
Target & llvm::getTheSPIRVLogicalTarget | ( | ) |
Definition at line 22 of file SPIRVTargetInfo.cpp.
Referenced by LLVMInitializeSPIRVAsmPrinter(), LLVMInitializeSPIRVTarget(), LLVMInitializeSPIRVTargetInfo(), and LLVMInitializeSPIRVTargetMC().
Target & llvm::getTheSystemZTarget | ( | ) |
Definition at line 14 of file SystemZTargetInfo.cpp.
Referenced by LLVMInitializeSystemZAsmParser(), LLVMInitializeSystemZAsmPrinter(), LLVMInitializeSystemZDisassembler(), LLVMInitializeSystemZTarget(), LLVMInitializeSystemZTargetInfo(), and LLVMInitializeSystemZTargetMC().
Target & llvm::getTheThumbBETarget | ( | ) |
Definition at line 25 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
Target & llvm::getTheThumbLETarget | ( | ) |
Definition at line 21 of file ARMTargetInfo.cpp.
Referenced by LLVMInitializeARMAsmParser(), LLVMInitializeARMAsmPrinter(), LLVMInitializeARMDisassembler(), LLVMInitializeARMTarget(), LLVMInitializeARMTargetInfo(), and LLVMInitializeARMTargetMC().
Target & llvm::getTheVETarget | ( | ) |
Definition at line 14 of file VETargetInfo.cpp.
Referenced by LLVMInitializeVEAsmParser(), LLVMInitializeVEAsmPrinter(), LLVMInitializeVEDisassembler(), LLVMInitializeVETarget(), LLVMInitializeVETargetInfo(), and LLVMInitializeVETargetMC().
Target & llvm::getTheWebAssemblyTarget32 | ( | ) |
Definition at line 20 of file WebAssemblyTargetInfo.cpp.
Referenced by LLVMInitializeWebAssemblyAsmParser(), LLVMInitializeWebAssemblyAsmPrinter(), LLVMInitializeWebAssemblyDisassembler(), LLVMInitializeWebAssemblyTarget(), LLVMInitializeWebAssemblyTargetInfo(), and LLVMInitializeWebAssemblyTargetMC().
Target & llvm::getTheWebAssemblyTarget64 | ( | ) |
Definition at line 24 of file WebAssemblyTargetInfo.cpp.
Referenced by LLVMInitializeWebAssemblyAsmParser(), LLVMInitializeWebAssemblyAsmPrinter(), LLVMInitializeWebAssemblyDisassembler(), LLVMInitializeWebAssemblyTarget(), LLVMInitializeWebAssemblyTargetInfo(), and LLVMInitializeWebAssemblyTargetMC().
Target & llvm::getTheX86_32Target | ( | ) |
Definition at line 13 of file X86TargetInfo.cpp.
Referenced by LLVMInitializeX86AsmParser(), LLVMInitializeX86AsmPrinter(), LLVMInitializeX86Disassembler(), LLVMInitializeX86Target(), LLVMInitializeX86TargetInfo(), LLVMInitializeX86TargetMC(), and LLVMInitializeX86TargetMCA().
Target & llvm::getTheX86_64Target | ( | ) |
Definition at line 17 of file X86TargetInfo.cpp.
Referenced by LLVMInitializeX86AsmParser(), LLVMInitializeX86AsmPrinter(), LLVMInitializeX86Disassembler(), LLVMInitializeX86Target(), LLVMInitializeX86TargetInfo(), LLVMInitializeX86TargetMC(), and LLVMInitializeX86TargetMCA().
Target & llvm::getTheXCoreTarget | ( | ) |
Definition at line 13 of file XCoreTargetInfo.cpp.
Referenced by LLVMInitializeXCoreAsmPrinter(), LLVMInitializeXCoreDisassembler(), LLVMInitializeXCoreTarget(), LLVMInitializeXCoreTargetInfo(), and LLVMInitializeXCoreTargetMC().
Target & llvm::getTheXtensaTarget | ( | ) |
Definition at line 15 of file XtensaTargetInfo.cpp.
References TheXtensaTarget.
Referenced by LLVMInitializeXtensaAsmParser(), LLVMInitializeXtensaAsmPrinter(), LLVMInitializeXtensaDisassembler(), LLVMInitializeXtensaTarget(), LLVMInitializeXtensaTargetInfo(), and LLVMInitializeXtensaTargetMC().
TimeTraceProfiler * llvm::getTimeTraceProfilerInstance | ( | ) |
Definition at line 57 of file TimeProfiler.cpp.
References TimeTraceProfilerInstance.
Referenced by isTimeTraceVerbose(), llvm::TimeProfilingPassesHandler::registerCallbacks(), and timeTraceProfilerEnabled().
|
static |
Count the total number of bytes needed to pass or return these arguments.
Definition at line 1297 of file AVRISelLowering.cpp.
Referenced by analyzeReturnValues().
Definition at line 293 of file SPIRVUtils.h.
References llvm::TargetExtType::get(), llvm::Type::getContext(), and TYPED_PTR_TARGET_EXT_NAME.
Referenced by getAtomicElemTy(), and getFunctionPointerElemType().
Type * llvm::getTypeForLLT | ( | LLT | Ty, |
LLVMContext & | C | ||
) |
Get the type back from LLT.
It won't be 100 percent accurate but returns an estimate of the type.
Definition at line 1987 of file Utils.cpp.
References llvm::CallingConv::C, llvm::IntegerType::get(), llvm::LLT::getElementCount(), llvm::LLT::getScalarSizeInBits(), llvm::LLT::getSizeInBits(), and llvm::LLT::isVector().
Referenced by canFoldInAddressingMode(), llvm::RISCVLegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), llvm::LegalizerHelper::lowerVAArg(), and llvm::CombinerHelper::matchPtrAddImmedChain().
|
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 63 of file TypeName.h.
References Name.
Referenced by constructOverloadName(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitKernelAttrs(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getTypeName(), LLVMGetRelocationTypeName(), and llvm::logicalview::LVLogicalVisitor::visitKnownRecord().
Definition at line 39 of file VECustomDAG.cpp.
References assert(), Dense, isPackedVectorType(), llvm::EVT::isVector(), and Normal.
Referenced by llvm::VECustomDAG::getMaskBroadcast(), llvm::VETargetLowering::lowerToVVP(), llvm::VETargetLowering::lowerVVP_GATHER_SCATTER(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), and llvm::VETargetLowering::splitPackedLoadStore().
Utility function to get the size of the ULEB128-encoded value.
Definition at line 19 of file LEB128.cpp.
References Size.
Referenced by llvm::dwarf_linker::parallel::OutputSections::applyPatches(), llvm::dwarf_linker::parallel::DIEAttributeCloner::clone(), llvm::EHStreamer::computeActionsTable(), llvm::DIE::computeOffsetsAndAbbrevs(), llvm::dwarf_linker::parallel::TypeUnit::createDIETree(), llvm::EHStreamer::emitExceptionTable(), llvm::MCDwarfLineTable::emitOne(), llvm::dwarf_linker::parallel::DIEGenerator::finalizeAbbreviations(), llvm::dwarf_linker::parallel::DependencyTracker::maybeAddReferencedRoots(), llvm::DIELoc::sizeOf(), llvm::DIEBlock::sizeOf(), llvm::DIEInteger::sizeOf(), llvm::DIEEntry::sizeOf(), and llvm::DIELocList::sizeOf().
Definition at line 561 of file MachineInstrBuilder.h.
References B, and llvm::RegState::Undef.
Referenced by llvm::HexagonInstrInfo::copyPhysReg(), emitLoadM0FromVGPRLoop(), emitLoadScalarOpsFromVGPRLoop(), llvm::X86FrameLowering::emitSPUpdate(), llvm::HexagonInstrInfo::expandPostRAPseudo(), expandSHXDROT(), finalizeBundle(), getRegState(), llvm::HexagonInstrInfo::insertBranch(), InsertLDR_STR(), loadRegPairFromStackSlot(), moveAndTeeForMultiUse(), llvm::ARMBaseInstrInfo::setExecutionDomain(), and llvm::X86InstrInfo::unfoldMemoryOperand().
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 6768 of file ValueTracking.cpp.
References assert(), GEP, getArgumentAliasingToReturnedPointer(), llvm::Operator::getOpcode(), llvm::Value::getType(), llvm::Type::isPointerTy(), and PHI.
Referenced by AddNonNullPointer(), AddParamAndFnBasicAttributes(), llvm::GlobalsAAResult::alias(), llvm::AMDGPUAAResult::alias(), llvm::VNCoercion::analyzeLoadFromClobberingMemInst(), arePointersCompatible(), llvm::AAResults::callCapturesBefore(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), CleanupConstantGlobalUsers(), clusterSortPtrAccesses(), ConstantFoldLoadFromConstPtr(), findAffectedValues(), llvm::InstCombinerImpl::foldAllocaCmp(), 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(), promoteLoopAccessesToScalars(), simplifyGEPInst(), simplifyLoadInst(), SoleWriteToDeadLocal(), llvm::slpvectorizer::BoUpSLP::transformNodes(), underlyingObjectsAlias(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitICmpInst(), and writeToAlloca().
Definition at line 732 of file ValueTracking.h.
References getUnderlyingObject().
Like getUnderlyingObject(), but will try harder to find a single underlying object.
In particular, this function also looks through selects and phis.
Definition at line 6857 of file ValueTracking.cpp.
References append_range(), llvm::SmallVectorBase< Size_T >::empty(), First, getUnderlyingObject(), llvm::SmallPtrSetImpl< PtrType >::insert(), P, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallPtrSetImplBase::size().
Referenced by addLocAccess(), and isPointerAlwaysReplaceable().
void llvm::getUnderlyingObjects | ( | const Value * | V, |
SmallVectorImpl< const Value * > & | Objects, | ||
const LoopInfo * | LI = nullptr , |
||
unsigned | MaxLookup = 6 |
||
) |
This method is similar to getUnderlyingObject except that it can look through phi and select instructions and return multiple objects.
If LoopInfo is passed, loop phis are further analyzed. If a pointer accesses different objects in each iteration, we don't look through the phi node. E.g. consider this loop nest:
int **A; for (i) for (j) { A[i][j] = A[i-1][j] * B[j] }
This is transformed by Load-PRE to stash away A[i] for the next iteration of the outer loop:
Curr = A[0]; // Prev_0 for (i: 1..N) { Prev = Curr; // Prev = PHI (Prev_0, Curr) Curr = A[i]; for (j: 0..N) { Curr[j] = Prev[j] * B[j] } }
Since A[i] and A[i-1] are independent pointers, getUnderlyingObjects should not assume that Curr and Prev share the same underlying object thus it shouldn't look through the phi above.
Definition at line 6815 of file ValueTracking.cpp.
References append_range(), llvm::SmallVectorBase< Size_T >::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(), canLowerToLDG(), computePointerICmp(), getUnderlyingObjects(), and 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 6930 of file ValueTracking.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase< Size_T >::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().
|
static |
Definition at line 22 of file MetadataImpl.h.
References I.
Referenced by llvm::DIArgList::handleChangedOperand(), and uniquifyImpl().
void llvm::getUniqueExitBlocksHelper | ( | const LoopT * | L, |
SmallVectorImpl< BlockT * > & | ExitBlocks, | ||
PredicateT | Pred | ||
) |
Definition at line 128 of file GenericLoopInfoImpl.h.
References assert(), llvm::SmallPtrSetImpl< PtrType >::insert(), make_filter_range(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Successor.
Referenced by llvm::LoopBase< BlockT, LoopT >::getUniqueExitBlocks(), and llvm::LoopBase< BlockT, LoopT >::getUniqueNonLatchExitBlocks().
Definition at line 1575 of file SampleProf.h.
References llvm::MD5::final(), llvm::MD5::stringifyResult(), toString(), llvm::sampleprof::FunctionSamples::UniqSuffix, and llvm::MD5::update().
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 346 of file ModuleUtils.cpp.
References F, llvm::MD5::final(), llvm::MD5::stringifyResult(), and llvm::MD5::update().
Referenced by convertToLocalCopy(), and llvm::SampleProfileProbePass::run().
|
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().
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 | ||
) |
Definition at line 456 of file MSVCPaths.cpp.
References getSystemRegistryString(), getWindows10SDKVersionFromPath(), and getWindowsSDKDirViaCommandLine().
bool llvm::getUniversalCRTSdkDir | ( | vfs::FileSystem & | VFS, |
std::optional< StringRef > | WinSdkDir, | ||
std::optional< StringRef > | WinSdkVersion, | ||
std::optional< StringRef > | WinSysRoot, | ||
std::string & | Path, | ||
std::string & | UCRTVersion | ||
) |
Definition at line 456 of file MSVCPaths.cpp.
References getSystemRegistryString(), getWindows10SDKVersionFromPath(), and getWindowsSDKDirViaCommandLine().
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 1088 of file LoopUnroll.cpp.
References assert(), drop_begin(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), Name, and llvm::MDNode::operands().
Referenced by getUnrollMetadataForLoop().
Definition at line 440 of file ConvertUTF.cpp.
References isLegalUTF8(), and trailingBytesForUTF8.
Definition at line 711 of file SPIRVUtils.cpp.
References I, Name, and llvm::Twine::str().
MDNode * llvm::getValidBranchWeightMDNode | ( | const Instruction & | I | ) |
Get the valid branch weights metadata node.
I | The Instruction to get the weights from. |
Definition at line 153 of file ProfDataUtils.cpp.
References getBranchWeightMDNode(), getNumBranchWeights(), and I.
Referenced by ConstantFoldTerminator(), and hasValidBranchWeightMD().
void llvm::getValueForSiteInstrProf | ( | const void * | R, |
InstrProfValueData * | Dst, | ||
uint32_t | K, | ||
uint32_t | S | ||
) |
Definition at line 1122 of file InstrProf.cpp.
References copy().
SmallVector< InstrProfValueData, 4 > llvm::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.
Returns an empty vector otherwise.
Definition at line 1369 of file InstrProf.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::ConstantInt::getZExtValue(), I, mayHaveValueProfileOfKind(), NOMORE_ICP_MAGICNUM, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by doesHistoryAllowICP(), findRefEdges(), llvm::ICallPromotionAnalysis::getPromotionCandidatesForInstruction(), runCGProfilePass(), and updateIDTMetaData().
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 209 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::LoopVectorizationCostModel::setVectorizedCallDecision(), and llvm::VPlanTransforms::VPInstructionsToVPRecipes().
|
inline |
Returns the number of vector elements for a vectorized type.
Definition at line 99 of file VectorTypeUtils.h.
References assert(), getContainedTypes(), and isVectorizedTy().
std::optional< RegOrConstant > llvm::getVectorSplat | ( | const MachineInstr & | MI, |
const MachineRegisterInfo & | MRI | ||
) |
MI
is a vector splat. The splat can be either a Register or a constant.Examples:
If called on the G_BUILD_VECTOR above, this will return a RegOrConstant containing reg.
In the above case, this will return a RegOrConstant containing 4.
Definition at line 1453 of file Utils.cpp.
References any_of(), drop_begin(), getIConstantSplatSExtVal(), isBuildVectorOp(), MI, MRI, and Splat.
Referenced by llvm::AArch64GISelUtils::getAArch64VectorSplat().
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 915 of file WholeProgramDevirt.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), P, and typeIDVisibleToRegularObj().
|
inline |
Definition at line 89 of file Thumb2InstrInfo.h.
References getVPTInstrPredicate(), and MI.
ARMVCC::VPTCodes llvm::getVPTInstrPredicate | ( | const MachineInstr & | MI, |
Register & | PredReg | ||
) |
Definition at line 806 of file Thumb2InstrInfo.cpp.
References findFirstVPTPredOperandIdx(), MI, and llvm::ARMVCC::None.
Referenced by llvm::Thumb2InstrInfo::commuteInstructionImpl(), CreateVPTBlock(), getVPTInstrPredicate(), MoveVPNOTBeforeFirstUser(), recomputeVPTBlockMask(), and StepOverPredicatedInstrs().
MachineInstr * llvm::getVRegDef | ( | MachineRegisterInfo & | MRI, |
Register | Reg | ||
) |
Definition at line 704 of file SPIRVUtils.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), MRI, and Reg.
Referenced by generateAssignInstrs(), and llvm::SPIRVGlobalRegistry::getResultType().
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 9507 of file SIInstrInfo.cpp.
References assert(), followSubRegDef(), llvm::MachineOperand::getReg(), getRegSubRegPair(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::Register::isVirtual(), MI, MRI, and P.
ConstantRange llvm::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.
Definition at line 1058 of file ValueTracking.cpp.
References bit_width(), BitWidth, F, llvm::Attribute::getVScaleRangeMax(), llvm::Attribute::getVScaleRangeMin(), llvm::APInt::getZero(), and llvm::Attribute::isValid().
Referenced by llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromOperator(), llvm::TargetLowering::expandVectorFindLastActive(), llvm::BasicTTIImplBase< T >::getIntrinsicInstrCost(), getRangeForIntrinsic(), llvm::AArch64TargetMachine::getSubtargetImpl(), llvm::SelectionDAG::getVScale(), llvm::SelectionDAG::isKnownNeverZero(), and simplifyIntrinsic().
OC
. Definition at line 62 of file VECustomDAG.cpp.
References llvm::ISD::MLOAD, and llvm::ISD::MSTORE.
Referenced by getIdiomaticVectorType(), llvm::VETargetLowering::lowerToVVP(), llvm::VETargetLowering::lowerVVP_LOAD_STORE(), maySafelyIgnoreMask(), and llvm::VETargetLowering::splitPackedLoadStore().
Definition at line 3428 of file MachineScheduler.cpp.
References llvm::SUnit::WeakPredsLeft, and llvm::SUnit::WeakSuccsLeft.
Referenced by llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::ConvergingVLIWScheduler::VLIWSchedBoundary::pickOnlyChoice(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::GenericScheduler::tryCandidate(), llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), and llvm::PPCPreRASchedStrategy::tryCandidate().
|
inline |
Definition at line 1680 of file BlockFrequencyInfoImpl.h.
References llvm::BranchProbability::getNumerator().
|
inline |
Definition at line 87 of file MVETailPredUtils.h.
References assert(), isWhileLoopStart(), and MI.
Referenced by llvm::ARMBlockPlacement::fixBackwardsWLS(), and RevertWhileLoopStartLR().
|
static |
Definition at line 410 of file LoopVectorizationLegality.cpp.
References convertPointerToIntegerType(), DL, and llvm::Type::getScalarSizeInBits().
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.
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 | ||
) |
Get Windows SDK installation directory.
Definition at line 401 of file MSVCPaths.cpp.
References llvm::sys::path::append(), llvm::vfs::FileSystem::exists(), getSystemRegistryString(), getWindows10SDKVersionFromPath(), getWindowsSDKDirViaCommandLine(), and Test.
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 | ||
) |
Get Windows SDK installation directory.
Definition at line 401 of file MSVCPaths.cpp.
References llvm::sys::path::append(), llvm::vfs::FileSystem::exists(), getSystemRegistryString(), getWindows10SDKVersionFromPath(), getWindowsSDKDirViaCommandLine(), and Test.
|
inlinestatic |
Definition at line 30 of file AArch64BaseInfo.h.
References Reg.
Referenced by llvm::AArch64InstPrinter::printGPR64as32(), and llvm::AArch64InstPrinter::printInst().
MCRegister llvm::getX86SubSuperRegister | ( | MCRegister | Reg, |
unsigned | Size, | ||
bool | High = false |
||
) |
Reg | speicifed register. |
Size | the bit size of returned register. |
High | requires the high register. |
Definition at line 760 of file X86MCTargetDesc.cpp.
References A_SUB_SUPER, B_SUB_SUPER, BP_SUB_SUPER, C_SUB_SUPER, CH, D_SUB_SUPER, DEFAULT_NOREG, DI_SUB_SUPER, DL, High, llvm_unreachable, NO_SUB_SUPER_B, NO_SUB_SUPER_D, NO_SUB_SUPER_Q, NO_SUB_SUPER_W, SI_SUB_SUPER, Size, and SP_SUB_SUPER.
Referenced by llvm::X86Operand::addGR16orGR32orGR64Operands(), llvm::X86Operand::addGR32orGR64Operands(), llvm::X86InstrInfo::buildClearRegister(), llvm::X86InstrInfo::classifyLEAReg(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMovesFullCFA(), llvm::X86FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitSPUpdate(), ExpandMOVImmSExti8(), llvm::X86RegisterInfo::getPtrSizedFrameRegister(), llvm::X86RegisterInfo::getPtrSizedStackRegister(), llvm::X86TargetLowering::getRegForInlineAsmConstraint(), llvm::X86RegisterInfo::getReservedRegs(), printAsmMRegister(), and tryOptimizeLEAtoMOV().
|
inlinestatic |
Return XPAC opcode to be used for a ptrauth strip using the given key.
Definition at line 729 of file AArch64InstrInfo.h.
References llvm_unreachable.
|
inlinestatic |
Definition at line 70 of file AArch64BaseInfo.h.
References Reg.
|
inlinestatic |
Definition at line 110 of file AArch64BaseInfo.h.
References llvm::MCRegister::id().
Definition at line 156 of file NVPTXUtilities.cpp.
References assert(), and findOneNVVMAnnotation().
Referenced by isManaged(), isSampler(), isSurface(), and isTexture().
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 675 of file MIRPrinter.cpp.
References llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getLastNonDebugInstr(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), MBB, and MI.
|
inline |
Definition at line 50 of file GenericValue.h.
References llvm::GenericValue::PointerVal.
Referenced by lle_X_atexit(), lle_X_fprintf(), lle_X_memcpy(), lle_X_memset(), lle_X_scanf(), lle_X_sprintf(), lle_X_sscanf(), llvm::MCJIT::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), llvm::Interpreter::visitCallBase(), llvm::Interpreter::visitIndirectBrInst(), llvm::Interpreter::visitLoadInst(), and llvm::Interpreter::visitStoreInst().
|
inline |
Check that E is a non-error, then drop it.
If E is an error, llvm_unreachable will be called.
Definition at line 983 of file Error.h.
References cantFail(), and E.
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 977 of file Error.h.
References cantFail(), E, and handleErrors().
Referenced by annotateAllFunctions(), appendFile(), consumeError(), llvm::sampleprof::SampleProfileReaderItaniumRemapper::create(), llvm::Interpreter::create(), crossImportIntoModule(), llvm::WithColor::defaultErrorHandler(), llvm::WithColor::defaultWarningHandler(), dlltoolDriverMain(), llvm::CodeGenDataReader::error(), llvm::InstrProfReader::error(), llvm::dwarf_linker::parallel::CompileUnit::error(), llvm::dwarf_linker::parallel::LinkingGlobalData::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().
|
inline |
Definition at line 933 of file Error.h.
Referenced by handleErrorImpl().
Error llvm::handleErrorImpl | ( | std::unique_ptr< ErrorInfoBase > | Payload, |
HandlerT && | Handler, | ||
HandlerTs &&... | Handlers | ||
) |
Definition at line 938 of file Error.h.
References handleErrorImpl().
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 954 of file Error.h.
Referenced by llvm::FileCheckString::Check(), llvm::FileCheckString::CheckDag(), llvm::FileCheckString::CheckNot(), llvm::IndexedInstrProfReader::getInstrProfRecord(), llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::getRecords(), handleAllErrors(), handleExpected(), handleMaybeNoDataFoundError(), llvm::object::isNotObjectErrorInvalidFileType(), localCache(), llvm::Pattern::match(), and write().
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().
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().
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:
Definition at line 1029 of file Error.h.
References handleErrors().
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 | ||
) |
Definition at line 556 of file DWP.cpp.
References DW_SECT_EXT_TYPES, llvm::MCStreamer::emitBytes(), handleCompressedSection(), Name, llvm::StringRef::size(), llvm::Error::success(), llvm::MCStreamer::switchSection(), and llvm::Expected< T >::takeError().
Referenced by write().
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
.
Definition at line 2859 of file Local.cpp.
References llvm::PoisonValue::get(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::InstCombinerImpl::handleUnreachableFrom(), and removeAllNonTerminatorAndEHPadInstructions().
|
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 194 of file Threading.h.
References get_threadpool_strategy(), and hardware_concurrency().
|
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 184 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(), and llvm::dwarf_linker::parallel::DWARFLinkerImpl::link().
|
inlineconstexprnoexcept |
Definition at line 146 of file bit.h.
Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), gatherPossiblyVectorizableLoads(), llvm::BasicTTIImplBase< T >::getNumberOfParts(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), hasFullVectorsOrPowerOf2(), isPowerOf2_32(), isPowerOf2_64(), simplifySwitchOfPowersOfTwo(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
bool llvm::hasAssumption | ( | const CallBase & | CB, |
const KnownAssumptionString & | AssumptionStr | ||
) |
Return true if CB
or the callee has the assumption AssumptionStr
attached.
Definition at line 76 of file Assumptions.cpp.
References A, AssumptionAttrKey, F, llvm::CallBase::getCalledFunction(), llvm::CallBase::getFnAttr(), and hasAssumption().
bool llvm::hasAssumption | ( | const Function & | F, |
const KnownAssumptionString & | AssumptionStr | ||
) |
Return true if F
has the assumption AssumptionStr
attached.
Definition at line 70 of file Assumptions.cpp.
References A, AssumptionAttrKey, and F.
Referenced by hasAssumption(), and llvm::AANoSync::isAlignedBarrier().
|
inline |
Definition at line 43 of file AssumeBundleQueries.h.
References llvm::Attribute::getNameFromAttrKind(), and hasAttributeInAssume().
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(), llvm::Attribute::getAttrKindFromName(), getValueFromBundleOpInfo(), llvm::Attribute::isExistingAttribute(), and llvm::Attribute::isIntAttrKind().
Referenced by hasAttributeInAssume().
bool llvm::hasBranchWeightMD | ( | const Instruction & | I | ) |
Checks if an instructions has Branch Weight Metadata.
I | The instruction to check |
Definition at line 103 of file ProfDataUtils.cpp.
References I, and isBranchWeightMD().
Referenced by CloneLoopBlocks(), ConnectEpilog(), ConnectProlog(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::LoopVectorizationPlanner::executePlan(), hasProfileData(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), and UnrollRuntimeLoopRemainder().
bool llvm::hasBranchWeightOrigin | ( | const Instruction & | I | ) |
Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic.
Definition at line 122 of file ProfDataUtils.cpp.
References hasBranchWeightOrigin(), and I.
Referenced by llvm::misexpect::checkBackendInstrumentation(), ConstantFoldTerminator(), getBranchWeightOffset(), hasBranchWeightOrigin(), and updatePredecessorProfileMetadata().
Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic.
Definition at line 127 of file ProfDataUtils.cpp.
References assert(), llvm::MDNode::getOperand(), and isBranchWeightMD().
Definition at line 429 of file SPIRVUtils.cpp.
References Name.
Referenced by llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), isSpecialOpaqueType(), and llvm::SPIRV::parseBuiltinCallArgumentType().
bool llvm::hasCountTypeMD | ( | const Instruction & | I | ) |
Definition at line 108 of file ProfDataUtils.cpp.
References I, isBranchWeightMD(), and isValueProfileMD().
Referenced by scaleProfData().
Look for the loop attribute that disables all transformation heuristic.
Definition at line 344 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), and LLVMLoopDisableNonforced.
Referenced by llvm::LoopVectorizeHints::getForce(), hasDistributeTransformation(), hasLICMVersioningTransformation(), hasUnrollAndJamTransformation(), hasUnrollTransformation(), and hasVectorizeTransformation().
Look for the loop attribute that disables the LICM transformation heuristics.
Definition at line 348 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), and LLVMLoopDisableLICM.
Definition at line 132 of file PseudoProbe.h.
References HasDiscriminator.
Referenced by llvm::MCPseudoProbeDecoder::countRecords().
TransformationMode llvm::hasDistributeTransformation | ( | const Loop * | L | ) |
Definition at line 427 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_ForcedByUser, and TM_Unspecified.
Referenced by warnAboutLeftoverTransformations().
Definition at line 396 of file Debuginfod.cpp.
References 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, and identify_magic().
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 1480 of file BuildLibCalls.cpp.
References llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::getTypeID(), llvm::Type::HalfTyID, and isLibFuncEmittable().
Referenced by getFloatFn(), getSqrtCall(), and llvm::InstCombinerImpl::visitFDiv().
|
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 1303 of file SLPVectorizer.cpp.
References llvm::TargetTransformInfo::getNumberOfParts(), getWidenedType(), has_single_bit(), and isValidElementType().
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::slpvectorizer::BoUpSLP::findReusedOrderedScalars(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), and llvm::slpvectorizer::BoUpSLP::transformNodes().
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
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 590 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::InlineAsmKeyType::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::MDNodeKeyImpl< DILocation >::getHashValue(), llvm::MDNodeKeyImpl< GenericDINode >::getHashValue(), llvm::MDNodeKeyImpl< DISubrange >::getHashValue(), llvm::MDNodeKeyImpl< DIGenericSubrange >::getHashValue(), llvm::MDNodeKeyImpl< DIEnumerator >::getHashValue(), llvm::MDNodeKeyImpl< DIBasicType >::getHashValue(), llvm::MDNodeKeyImpl< DIStringType >::getHashValue(), llvm::MDNodeKeyImpl< DIDerivedType >::getHashValue(), llvm::MDNodeKeyImpl< DICompositeType >::getHashValue(), llvm::MDNodeKeyImpl< DISubroutineType >::getHashValue(), llvm::MDNodeKeyImpl< DIFile >::getHashValue(), llvm::MDNodeKeyImpl< DISubprogram >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlock >::getHashValue(), llvm::MDNodeKeyImpl< DILexicalBlockFile >::getHashValue(), llvm::MDNodeKeyImpl< DINamespace >::getHashValue(), llvm::MDNodeKeyImpl< DICommonBlock >::getHashValue(), llvm::MDNodeKeyImpl< DIModule >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateTypeParameter >::getHashValue(), llvm::MDNodeKeyImpl< DITemplateValueParameter >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILocalVariable >::getHashValue(), llvm::MDNodeKeyImpl< DILabel >::getHashValue(), llvm::MDNodeKeyImpl< DIGlobalVariableExpression >::getHashValue(), llvm::MDNodeKeyImpl< DIObjCProperty >::getHashValue(), llvm::MDNodeKeyImpl< DIImportedEntity >::getHashValue(), llvm::MDNodeKeyImpl< DIMacro >::getHashValue(), llvm::MDNodeKeyImpl< DIMacroFile >::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::GVNExpression::MemoryExpression::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::GVNExpression::PHIExpression::getHashValue(), llvm::GVNExpression::VariableExpression::getHashValue(), llvm::GVNExpression::ConstantExpression::getHashValue(), llvm::GVNExpression::UnknownExpression::getHashValue(), llvm::DenseMapInfo< Attribute::AttrKind >::getHashValue(), llvm::DenseMapInfo< at::VarRecord >::getHashValue(), llvm::DenseMapInfo< BasicBlockEdge >::getHashValue(), llvm::DenseMapInfo< coverage::CounterExpression >::getHashValue(), llvm::DenseMapInfo< CSKYTargetStreamer::SymbolIndex >::getHashValue(), llvm::DenseMapInfo< DebugVariable >::getHashValue(), llvm::DenseMapInfo< gsym::FileEntry >::getHashValue(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::TargetExtTypeKeyInfo::getHashValue(), llvm::DenseMapInfo< MemOpKey >::getHashValue(), llvm::DenseMapInfo< MemoryLocOrCall >::getHashValue(), llvm::DenseMapInfo< object::SectionRef >::getHashValue(), llvm::DenseMapInfo< OffsetAndUnitID >::getHashValue(), llvm::DenseMapInfo< SlotWithTag >::getHashValue(), llvm::DenseMapInfo< const SwitchSuccWrapper * >::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(), getHashValueImpl(), hash_value(), hashCallInst(), hashInstructionMapping(), llvm::mca::hashMCInst(), llvm::mca::hashMCOperand(), hashPartialMapping(), and llvm::hashbuilder_detail::HashCodeHasher::update().
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 468 of file Hashing.h.
Referenced by llvm::MDNodeOpsKey::calculateHash(), llvm::FoldingSetNodeIDRef::ComputeHash(), EliminateDuplicatePHINodesSetBasedImpl(), encodePHINodeData(), llvm::ConstantAggrKeyType< ConstantClass >::getHash(), llvm::ConstantExprKeyType::getHash(), llvm::ConstantPtrAuthKeyType::getHash(), llvm::MDNodeKeyImpl< DIExpression >::getHashValue(), llvm::DIArgListKeyInfo::getHashValue(), llvm::GVNExpression::BasicExpression::getHashValue(), llvm::GVNExpression::AggregateValueExpression::getHashValue(), llvm::AnonStructTypeKeyInfo::getHashValue(), llvm::FunctionTypeKeyInfo::getHashValue(), llvm::TargetExtTypeKeyInfo::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::DenseMapInfo< const SwitchSuccWrapper * >::getHashValue(), getHashValueImpl(), llvm::RegisterBankInfo::getOperandsMapping(), hash_value(), hashCallInst(), hashValueMapping(), markAliveBlocks(), and llvm::sampleprof::SampleContextFrameHash::operator()().
Definition at line 564 of file ArrayRef.h.
References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), and hash_combine_range().
|
inline |
Definition at line 308 of file APFixedPoint.h.
References llvm::APFixedPoint::getSemantics(), llvm::APFixedPoint::getValue(), and hash_combine().
See friend declarations above.
These additional declarations are required in order to compile LLVM with IBM xlC compiler.
Definition at line 5435 of file APFloat.cpp.
Definition at line 590 of file APInt.cpp.
References llvm::APInt::getNumWords(), hash_combine(), hash_combine_range(), llvm::APInt::isSingleWord(), llvm::APInt::pVal, and llvm::APInt::VAL.
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 hash_value(), and X.
|
inline |
Definition at line 136 of file APFixedPoint.h.
References 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::DenseMapInfo< ArrayRef< T >, void >::getHashValue(), llvm::DenseMapInfo< APFixedPoint >::getHashValue(), llvm::DenseMapInfo< APFloat >::getHashValue(), llvm::DenseMapInfo< FixedPointSemantics >::getHashValue(), llvm::DenseMapInfo< GVNPass::Expression >::getHashValue(), llvm::IRSimilarity::IRInstructionDataTraits::getHashValue(), llvm::DenseMapInfo< llvm::sys::fs::UniqueID >::getHashValue(), llvm::MachineInstrExpressionTrait::getHashValue(), llvm::DenseMapInfo< MachineOperand >::getHashValue(), llvm::DenseMapInfo< SpecSig >::getHashValue(), llvm::DenseMapInfo< SymbolsMapKey >::getHashValue(), llvm::DenseMapInfo< ValueIDNum >::getHashValue(), llvm::DenseMapInfo< wasm::WasmLimits, void >::getHashValue(), llvm::DenseMapInfo< wasm::WasmSignature, void >::getHashValue(), 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_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 389 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::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.
|
inline |
Definition at line 127 of file MCRegister.h.
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 275 of file RegisterBankInfo.cpp.
References hashPartialMapping(), llvm::RegisterBankInfo::PartialMapping::Length, llvm::RegisterBankInfo::PartialMapping::RegBank, and llvm::RegisterBankInfo::PartialMapping::StartIdx.
Compute a hash_code for a standard string.
Definition at line 646 of file Hashing.h.
References hash_combine_range().
Compute a hash_code for a standard string.
Definition at line 650 of file Hashing.h.
References hash_combine(), and hash_value().
Compute a hash_code for a pair of objects.
Definition at line 635 of file Hashing.h.
References hash_combine().
Compute a hash_code for a tuple.
Definition at line 639 of file Hashing.h.
References hash_combine().
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 406 of file HashBuilder.h.
References llvm::HashBuilder< HasherT, Endianness >::add(), and llvm::HashBuilderBase< HasherT >::getHasher().
Compute a hash_code for a StringRef.
Definition at line 616 of file StringRef.cpp.
References llvm::StringRef::begin(), llvm::StringRef::end(), and hash_combine_range().
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 620 of file Hashing.h.
References value.
|
static |
Definition at line 487 of file ARMLatencyMutations.cpp.
References MI.
|
inline |
Definition at line 241 of file SPIRVUtils.h.
References llvm::GlobalVariable::getInitializer(), and llvm::GlobalVariable::hasInitializer().
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 278 of file BasicBlockSections.cpp.
References BBSectionsDetectSourceDrift, llvm::MachineFunction::getFunction(), llvm::GlobalObject::getMetadata(), N, and llvm::MDNode::operands().
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 900 of file LoopUtils.cpp.
References llvm::ScalarEvolution::getExitCount(), llvm::ScalarEvolution::getLoopDisposition(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::SCEV::getType(), llvm::Type::isIntegerTy(), and llvm::ScalarEvolution::LoopInvariant.
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().
TransformationMode llvm::hasLICMVersioningTransformation | ( | const Loop * | L | ) |
Definition at line 437 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_SuppressedByUser, and TM_Unspecified.
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 5683 of file ARMBaseInstrInfo.cpp.
References ConstantMaterializationCost().
Referenced by CombineANDShift().
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().
Returns true if the given container has exactly N items.
Definition at line 2563 of file STLExtras.h.
References llvm::CallingConv::C, hasNItems(), and N.
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 2507 of file STLExtras.h.
Referenced by hasNItems().
Returns true if the given container has N or less items.
Definition at line 2575 of file STLExtras.h.
References llvm::CallingConv::C, hasNItemsOrLess(), and N.
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 2553 of file STLExtras.h.
Referenced by EliminateDuplicatePHINodes(), llvm::MachineRegisterInfo::hasAtMostUserInstrs(), and hasNItemsOrLess().
Returns true if the given container has N or more items.
Definition at line 2569 of file STLExtras.h.
References llvm::CallingConv::C, hasNItemsOrMore(), and N.
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 2532 of file STLExtras.h.
Referenced by hasNItemsOrMore().
Definition at line 1909 of file BasicBlockUtils.cpp.
References F.
Referenced by FixIrreducibleImpl().
|
static |
Check that the instruction has outside loop users and is not an identified reduction variable.
Definition at line 420 of file LoopVectorizationLegality.cpp.
References llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), LLVM_DEBUG, and llvm::Value::users().
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 2058 of file LoopUtils.cpp.
References all_of(), any_of(), llvm::SmallVectorImpl< T >::append(), assert(), llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::SmallVectorBase< Size_T >::empty(), llvm::MemoryLocation::get(), llvm::MemoryAccess::getBlock(), llvm::ConstantInt::getFalse(), llvm::MemorySSA::getMemoryAccess(), llvm::AAResults::getModRefInfo(), llvm::ConstantInt::getTrue(), I, Info, llvm::SmallPtrSetImpl< PtrType >::insert(), 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().
Definition at line 270 of file SPIRVUtils.h.
References llvm::Argument::hasByRefAttr(), llvm::Argument::hasByValAttr(), and llvm::Argument::hasStructRetAttr().
Referenced by getArgSPIRVType().
|
static |
Definition at line 125 of file LoopBoundSplit.cpp.
References analyzeICmp(), calculateUpperBound(), Cond, llvm::ConstantInt::getValue(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), llvm::ConstantInt::isNegative(), and llvm::ConstantInt::isZero().
Referenced by canSplitLoopBound(), and findSplitCandidate().
bool llvm::hasProfMD | ( | const Instruction & | I | ) |
Checks if an Instruction has MD_prof Metadata.
Definition at line 91 of file ProfDataUtils.cpp.
References I.
Definition at line 362 of file VECustomDAG.cpp.
References llvm::ISD::isVPReduction().
Referenced by getIdiomaticVectorType(), llvm::VECustomDAG::getLegalReductionOpVVP(), and llvm::VETargetLowering::lowerToVVP().
bool llvm::hasSingleElement | ( | ContainerTy && | C | ) |
Returns true if the given container only contains a single element.
Definition at line 322 of file STLExtras.h.
References B, llvm::CallingConv::C, and E.
Referenced by llvm::DWARFUnit::getAddrOffsetSectionItem(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MachineRegisterInfo::hasOneDef(), llvm::MachineRegisterInfo::hasOneNonDBGUse(), llvm::MachineRegisterInfo::hasOneNonDBGUser(), llvm::SDNode::hasOneUse(), llvm::Value::hasOneUse(), llvm::MachineRegisterInfo::hasOneUse(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::Split().
|
static |
Definition at line 56 of file ValueLattice.cpp.
References llvm::ValueLatticeElement::getConstantRange(), llvm::ValueLatticeElement::isConstant(), llvm::ValueLatticeElement::isConstantRange(), and llvm::ConstantRange::isSingleElement().
Referenced by llvm::ValueLatticeElement::intersect().
TransformationMode llvm::hasUnrollAndJamTransformation | ( | const Loop * | L | ) |
Definition at line 373 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), getOptionalIntLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_ForcedByUser, TM_SuppressedByUser, and TM_Unspecified.
Referenced by tryToUnrollAndJamLoop(), tryToUnrollLoop(), and warnAboutLeftoverTransformations().
TransformationMode llvm::hasUnrollTransformation | ( | const Loop * | L | ) |
Get the mode for LLVM's supported loop transformations.
Definition at line 352 of file LoopUtils.cpp.
References getBooleanLoopAttribute(), getOptionalIntLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_ForcedByUser, TM_SuppressedByUser, and TM_Unspecified.
Referenced by gatherUnrollingPreferences(), llvm::LoopVectorizeHints::getInterleave(), tryToUnrollLoop(), and warnAboutLeftoverTransformations().
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().
bool llvm::hasValidBranchWeightMD | ( | const Instruction & | I | ) |
Checks if an instructions has valid Branch Weight Metadata.
I | The instruction to check |
Definition at line 118 of file ProfDataUtils.cpp.
References getValidBranchWeightMDNode(), and I.
detail::ValueMatchesPoly< M > llvm::HasValue | ( | M | Matcher | ) |
Definition at line 221 of file Error.h.
Referenced by llvm::orc::shared::SPSSerializationTraits< SPSOptional< SPSTagT >, std::optional< T > >::deserialize(), and llvm::sys::unicode::readNode().
TransformationMode llvm::hasVectorizeTransformation | ( | const Loop * | L | ) |
Definition at line 391 of file LoopUtils.cpp.
References Enable, getBooleanLoopAttribute(), getOptionalBoolLoopAttribute(), getOptionalElementCountLoopAttribute(), getOptionalIntLoopAttribute(), hasDisableAllTransformsHint(), TM_Disable, TM_Enable, TM_ForcedByUser, TM_SuppressedByUser, and TM_Unspecified.
Referenced by llvm::LoopRotatePass::run(), and warnAboutLeftoverTransformations().
Definition at line 814 of file WholeProgramDevirt.cpp.
References DisableWholeProgramVisibility, and WholeProgramVisibility.
Referenced by llvm::ThinLTOCodeGenerator::run(), updatePublicTypeTestCalls(), updateVCallVisibilityInIndex(), and updateVCallVisibilityInModule().
bool llvm::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.
Definition at line 248 of file ValueTracking.cpp.
References assert(), llvm::WithCache< Arg >::getKnownBits(), llvm::Value::getType(), llvm::WithCache< Arg >::getValue(), llvm::KnownBits::haveNoCommonBitsSet(), haveNoCommonBitsSetSpecialCases(), llvm::Type::isIntOrIntVectorTy(), LHS, and RHS.
Referenced by isAddLikeOr(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), and llvm::InstCombinerImpl::visitAdd().
|
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 172 of file Threading.h.
References get_threadpool_strategy(), and heavyweight_hardware_concurrency().
|
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 161 of file Threading.h.
References ThreadCount, llvm::ThreadPoolStrategy::ThreadsRequested, and llvm::ThreadPoolStrategy::UseHyperThreads.
Referenced by heavyweight_hardware_concurrency(), llvm::ThinLTOCodeGenerator::run(), and splitCodeGen().
Definition at line 186 of file HexagonMCTargetDesc.cpp.
Referenced by llvm::HexagonCVIResource::HexagonCVIResource().
unsigned llvm::HexagonGetLastSlot | ( | ) |
Definition at line 184 of file HexagonMCTargetDesc.cpp.
Referenced by llvm::HexagonMCInstrInfo::getOtherReservedSlots().
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::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::HexagonMCExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createInst(), llvm::MCContext::createMCInst(), llvm::MCOperand::createReg(), llvm::HexagonAsmPrinter::EmitSled(), errs(), llvm::HexagonMCInstrInfo::extendIfNeeded(), 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::Pass::print(), llvm::HexagonMCInstrInfo::setInnerLoop(), llvm::HexagonMCInstrInfo::setMustExtend(), llvm::MCInst::setOpcode(), and llvm::HexagonMCInstrInfo::setOuterLoop().
Referenced by llvm::HexagonAsmPrinter::emitInstruction().
bool llvm::HexagonMCShuffle | ( | MCContext & | Context, |
bool | ReportErrors, | ||
MCInstrInfo const & | MCII, | ||
MCSubtargetInfo const & | STI, | ||
MCInst & | MCB | ||
) |
Definition at line 103 of file HexagonMCShuffler.cpp.
References llvm::HexagonMCInstrInfo::bundleSize(), dbgs(), DisableShuffle, llvm::HexagonMCInstrInfo::isBundle(), LLVM_DEBUG, and llvm::HexagonMCShuffler::reshuffleTo().
Referenced by llvm::HexagonMCInstrInfo::tryCompound().
bool llvm::HexagonMCShuffle | ( | MCContext & | Context, |
MCInstrInfo const & | MCII, | ||
MCSubtargetInfo const & | STI, | ||
MCInst & | MCB, | ||
MCInst const & | AddMI, | ||
int | fixupCount | ||
) |
Definition at line 179 of file HexagonMCShuffler.cpp.
References llvm::HexagonMCInstrInfo::bundleSize(), DisableShuffle, llvm::HexagonMCInstrInfo::hasDuplex(), llvm::HexagonMCInstrInfo::hasImmExt(), HEXAGON_PACKET_SIZE, llvm::HexagonMCInstrInfo::isBundle(), and llvm::HexagonMCShuffler::reshuffleTo().
bool llvm::HexagonMCShuffle | ( | MCContext & | Context, |
MCInstrInfo const & | MCII, | ||
MCSubtargetInfo const & | STI, | ||
MCInst & | MCB, | ||
SmallVector< DuplexCandidate, 8 > | possibleDuplexes | ||
) |
Definition at line 130 of file HexagonMCShuffler.cpp.
References llvm::HexagonMCInstrInfo::bundleSize(), llvm::HexagonMCShuffler::copyTo(), dbgs(), DisableShuffle, llvm::HexagonMCInstrInfo::isBundle(), LLVM_DEBUG, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::HexagonMCInstrInfo::replaceDuplex(), llvm::HexagonMCShuffler::reshuffleTo(), llvm::SmallVectorBase< Size_T >::size(), and llvm::HexagonShuffler::size().
|
inlinestatic |
Definition at line 174 of file Sparc.h.
Referenced by HIX22(), and replaceFI().
Return the high 32 bits of a 64 bit value.
Definition at line 156 of file MathExtras.h.
Referenced by buildAddr64RSrc(), buildOffsetSrc(), convertIntToDoubleImm(), llvm::AMDGPU::AMDGPUMCKernelCodeT::EmitKernelCodeT(), extractRotateInfo(), extractRsrcPtr(), findContiguousZerosAtLeast(), llvm::SIInstrInfo::foldImmediate(), llvm::RISCVMatInt::generateTwoRegInstSeq(), llvm::AMDGPU::AMDGPUMCKernelCodeT::initDefault(), KnuthDiv(), LowerBUILD_VECTORvXi1(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), selectI64Imm(), selectI64ImmDirect(), selectI64ImmDirectPrefix(), and tryFoldMADwithSRL().
|
inlinestatic |
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.
Definition at line 3706 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().
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 875 of file LICM.cpp.
References all_of(), assert(), canSinkOrHoistInst(), ControlFlowHoisting, dbgs(), llvm::ICFLoopSafetyInfo::doesNotWriteMemoryBefore(), llvm::DominatorTree::dominates(), 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, make_early_inc_range(), llvm::PatternMatch::match(), moveInstructionBefore(), N, llvm::LoopBlocksRPO::perform(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), reverse(), llvm::PHINode::setIncomingBlock(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), llvm::MemorySSA::verifyMemorySSA(), and VerifyMemorySSA.
|
static |
Definition at line 712 of file APFloat.cpp.
References assert().
std::error_code llvm::identify_magic | ( | const Twine & | path, |
file_magic & | result | ||
) |
Get and identify path's type based on its content.
path | Input path. |
result | Set to the type of file, or file_magic::unknown. |
Definition at line 281 of file Magic.cpp.
References llvm::MemoryBuffer::getFile(), and identify_magic().
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::createBinary(), llvm::pdb::NativeSession::createFromExe(), llvm::jitlink::createLinkGraphFromCOFFObject(), llvm::jitlink::createLinkGraphFromObject(), llvm::object::ObjectFile::createObjectFile(), llvm::object::SymbolicFile::createSymbolicFile(), llvm::NewArchiveMember::detectKindFromObject(), doList(), llvm::object::extractOffloadBinaries(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), getSymbolicFile(), hasELFMagic(), identify_magic(), llvm::orc::StaticLibraryDefinitionGenerator::loadAllObjectFileMembers(), llvm::orc::loadLinkableFile(), llvm::orc::loadLinkableSliceFromMachOUniversalBinary(), llvm::orc::loadMachORelocatableObject(), loadPdbFile(), and llvm::pdb::InputFile::open().
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 1266 of file CloneFunction.cpp.
References I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::JumpThreadingPass::cloneInstructions(), peelLoop(), and UnrollLoop().
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 1274 of file CloneFunction.cpp.
References End, I, make_range(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
idf_iterator< T > llvm::idf_begin | ( | const T & | G | ) |
Definition at line 271 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by inverse_depth_first().
idf_iterator< T > llvm::idf_end | ( | const T & | G | ) |
Definition at line 276 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by inverse_depth_first().
idf_ext_iterator< T, SetTy > llvm::idf_ext_begin | ( | const T & | G, |
SetTy & | S | ||
) |
Definition at line 296 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by inverse_depth_first_ext().
idf_ext_iterator< T, SetTy > llvm::idf_ext_end | ( | const T & | G, |
SetTy & | S | ||
) |
Definition at line 301 of file DepthFirstIterator.h.
References llvm::df_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by inverse_depth_first_ext().
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 7690 of file ValueTracking.cpp.
Referenced by createLogicalOp(), llvm::ScalarEvolution::getSequentialMinMaxExpr(), handleOtherCmpSelSimplifications(), simplifySelectInst(), and simplifyWithOpsReplaced().
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< DerivedT, TargetMachineT >::addGlobalInstructionSelect(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::addInstSelector(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::addIRTranslator(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::addLegalizeMachineIR(), llvm::CodeGenPassBuilder< DerivedT, TargetMachineT >::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::DWARFDebugNames::SentinelError::convertToErrorCode(), llvm::mca::RecycledInstErr::convertToErrorCode(), llvm::mca::InstStreamPause::convertToErrorCode(), llvm::mca::InstructionError< T >::convertToErrorCode(), llvm::SymbolRemappingParseError::convertToErrorCode(), llvm::remarks::EndOfFileError::convertToErrorCode(), llvm::BinaryStreamError::convertToErrorCode(), llvm::json::ParseError::convertToErrorCode(), llvm::UndefVarError::convertToErrorCode(), llvm::ErrorDiagnostic::convertToErrorCode(), llvm::NotFoundError::convertToErrorCode(), llvm::ErrorReported::convertToErrorCode(), llvm::remarks::YAMLParseError::convertToErrorCode(), llvm::jitlink::InProcessMemoryManager::Create(), llvm::orc::shared::WrapperFunctionCall::Create(), llvm::orc::EPCIndirectionUtils::Create(), llvm::orc::PerfSupportPlugin::Create(), llvm::orc::SharedMemoryMapper::Create(), llvm::orc::StaticLibraryDefinitionGenerator::Create(), llvm::orc::JITLinkRedirectableSymbolManager::Create(), llvm::orc::JITLinkReentryTrampolines::Create(), llvm::orc::MachOPlatform::Create(), llvm::orc::ELFNixPlatform::Create(), llvm::orc::COFFPlatform::Create(), llvm::orc::FDSimpleRemoteEPCTransport::Create(), llvm::memprof::RawMemProfReader::create(), llvm::orc::createDWARFContext(), createError(), createError(), llvm::orc::createLocalCompileCallbackManager(), llvm::orc::createLocalLazyCallThroughManager(), llvm::CodeGenTargetMachineImpl::createMCStreamer(), llvm::MachO::createRegexFromGlob(), createStringError(), llvm::orc::JITTargetMachineBuilder::createTargetMachine(), llvm::codegen::createTargetMachineForTriple(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), llvm::RuntimeDyldMachOAArch64::decodeAddend(), llvm::RuntimeDyldMachOARM::decodeAddend(), llvm::orc::ORCPlatformSupport::deinitialize(), llvm::orc::UnwindInfoManager::deregisterSections(), llvm::orc::shared::detail::ResultDeserializer< SPSError, Error >::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSExpected< SPSTagT >, Expected< T > >::deserialize(), llvm::orc::shared::detail::ResultDeserializer< SPSRetTagT, RetT >::deserialize(), llvm::orc::UnwindInfoManager::disable(), llvm::logicalview::LVReader::doLoad(), llvm::orc::UnwindInfoManager::enable(), llvm::orc::enableDebuggerSupport(), llvm::orc::JITCompileCallbackManager::executeCompileCallback(), llvm::MachO::InterfaceFile::extract(), llvm::orc::rt_bootstrap::SimpleExecutorMemoryManager::finalize(), llvm::RuntimeDyldImpl::finalizeAsync(), llvm::orc::LazyCallThroughManager::findReexport(), llvm::lto::findThinLTOModule(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::forEachRelaRelocation(), llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation(), llvm::jitlink::ELFLinkGraphBuilder< ELFT >::forEachRelRelocation(), llvm::orc::shared::detail::fromSPSSerializable(), llvm::DWARFFormValue::getAsCString(), getBitcodeFileMachine(), llvm::orc::ExecutorProcessControl::getBootstrapMapValue(), llvm::orc::ExecutorProcessControl::getBootstrapSymbols(), getCOFFFileMachine(), llvm::jitlink::BasicLayout::getContiguousPageBasedLayoutSizes(), llvm::orc::JITDylib::getDFSLinkOrder(), 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::rt_bootstrap::ExecutorSharedMemoryMapperService::initialize(), llvm::orc::ORCPlatformSupport::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::orc::rt_bootstrap::SimpleExecutorDylibManager::open(), llvm::pdb::InputFile::open(), llvm::orc::LoadAndLinkDynLibrary::operator()(), llvm::orc::ExecutorNativePlatform::operator()(), llvm::orc::SimpleCompiler::operator()(), llvm::PassBuilder::parseAAPipeline(), parseAMDGPUAtomicOptimizerStrategy(), parseAMDGPUAttributorPassOptions(), parseCachePruningPolicy(), parseDuration(), llvm::remarks::parseHotnessThresholdOption(), 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::SharedMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::MachO::InterfaceFile::remove(), llvm::orc::SharedMemoryMapper::reserve(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve(), llvm::orc::shared::WrapperFunctionCall::runWithSPSRet(), llvm::orc::FDSimpleRemoteEPCTransport::sendMessage(), 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().
Align llvm::inferAlignFromPtrInfo | ( | MachineFunction & | MF, |
const MachinePointerInfo & | MPO | ||
) |
Definition at line 893 of file Utils.cpp.
References commonAlignment(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFrameInfo::getObjectAlign(), llvm::GlobalValue::getParent(), llvm::MachinePointerInfo::Offset, and llvm::MachinePointerInfo::V.
Referenced by M68kOutgoingArgHandler::assignValueToAddress(), and llvm::CallLowering::handleAssignments().
|
static |
Definition at line 354 of file SCCPSolver.cpp.
References F, llvm::Attribute::get(), llvm::ValueLatticeElement::getConstantRange(), llvm::ValueLatticeElement::getNotConstant(), llvm::Attribute::getRange(), llvm::Value::getType(), llvm::ConstantRange::intersectWith(), llvm::ValueLatticeElement::isConstantRange(), llvm::ValueLatticeElement::isConstantRangeIncludingUndef(), llvm::ValueLatticeElement::isNotConstant(), llvm::Constant::isNullValue(), llvm::Type::isPointerTy(), llvm::ConstantRange::isSingleElement(), and llvm::Attribute::isValid().
Referenced by llvm::SCCPSolver::inferArgAttributes(), and llvm::SCCPSolver::inferReturnAttributes().
If we can infer one attribute from another on the declaration of a function, explicitly materialize the maximal set in the IR.
Definition at line 4316 of file Local.cpp.
References F.
Referenced by deriveAttrsInPostOrder(), and inferAllPrototypeAttributes().
bool llvm::inferNonMandatoryLibFuncAttrs | ( | Function & | F, |
const TargetLibraryInfo & | TLI | ||
) |
Definition at line 280 of file BuildLibCalls.cpp.
References F, llvm::TargetLibraryInfo::getLibFunc(), llvm::TargetLibraryInfo::has(), isLibFreeFunction(), isReallocLikeFn(), setAlignedAllocParam(), setAllocatedPointerParam(), setAllocFamily(), setAllocKind(), setAllocSize(), setArgNoUndef(), setArgsNoUndef(), setDoesNotAccessMemory(), setDoesNotAlias(), setDoesNotCapture(), setDoesNotFreeMemory(), setDoesNotThrow(), setIsCold(), setNonLazyBind(), setNoReturn(), setOnlyAccessesArgMemory(), setOnlyAccessesInaccessibleMemOrArgMem(), setOnlyAccessesInaccessibleMemory(), setOnlyReadsMemory(), setOnlyWritesMemory(), setRetAndArgsNoUndef(), setRetDoesNotAlias(), setRetNoUndef(), setReturnedArg(), and setWillReturn().
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 272 of file BuildLibCalls.cpp.
References F, inferNonMandatoryLibFuncAttrs(), and Name.
Referenced by emitBinaryFloatFnCallHelper(), emitCalloc(), emitFPutC(), emitFPutS(), emitFWrite(), emitHotColdNew(), emitHotColdNewAligned(), emitHotColdNewAlignedNoThrow(), emitHotColdNewNoThrow(), emitHotColdSizeReturningNew(), emitHotColdSizeReturningNewAligned(), emitLibCall(), emitMalloc(), emitPutChar(), emitPutS(), inferAllPrototypeAttributes(), and inferNonMandatoryLibFuncAttrs().
|
static |
Check if the DIE at Idx
is in the scope of a function.
Definition at line 40 of file DWARFLinkerCompileUnit.cpp.
References Idx.
Referenced by llvm::dwarf_linker::classic::CompileUnit::markEverythingAsKept().
void llvm::initDebugCounterOptions | ( | ) |
Definition at line 163 of file DebugCounter.cpp.
References llvm::DebugCounter::instance().
Referenced by initCommonOptions().
void llvm::initDebugOptions | ( | ) |
Definition at line 145 of file Debug.cpp.
References Debug, DebugBufferSize, and DebugOnly.
Referenced by initCommonOptions().
void llvm::initGraphWriterOptions | ( | ) |
Definition at line 53 of file GraphWriter.cpp.
Referenced by initCommonOptions().
void llvm::initializeAArch64A53Fix835769Pass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64A57FPLoadBalancingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64AdvSIMDScalarPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64Arm64ECCallLoweringPass | ( | PassRegistry & | ) |
void llvm::initializeAArch64BranchTargetsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64CFIFixupPass | ( | PassRegistry & | ) |
void llvm::initializeAArch64CollectLOHPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64CompressJumpTablesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64CondBrTuningPass | ( | PassRegistry & | ) |
void llvm::initializeAArch64ConditionalComparesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64ConditionOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64DAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64DeadRegisterDefinitionsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64ExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64LoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64LowerHomogeneousPrologEpilogPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64MIPeepholeOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64O0PreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PointerAuthPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PostCoalescerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PostLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PostLegalizerLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PostSelectOptimizePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64PromoteConstantPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64RedundantCopyEliminationPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64SIMDInstrOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64SLSHardeningPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64SpeculationHardeningPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64StackTaggingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64StackTaggingPreRAPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAArch64StorePairSuppressPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeAAResultsWrapperPassPass | ( | PassRegistry & | ) |
|
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 99 of file TargetSelect.h.
|
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 89 of file TargetSelect.h.
|
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 109 of file TargetSelect.h.
|
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 56 of file TargetSelect.h.
Referenced by InitializeAllTargets().
|
inline |
InitializeAllTargetMCAs - The main program should call this function to initialize the target CustomBehaviour and InstrPostProcess classes.
Definition at line 170 of file TargetSelect.h.
|
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 79 of file TargetSelect.h.
|
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 66 of file TargetSelect.h.
References InitializeAllTargetInfos().
void llvm::initializeAlwaysInlinerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
void llvm::initializeAMDGPUAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::AMDGPUAAWrapperPass::AMDGPUAAWrapperPass(), and LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUAlwaysInlinePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUAnnotateKernelFeaturesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUAnnotateUniformValuesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUArgumentUsageInfoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUAtomicOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUAttributorLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUCodeGenPreparePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUCtorDtorLoweringLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUExternalAAWrapperPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUGlobalISelDivergenceLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUImageIntrinsicOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUInsertDelayAluPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPULateCodeGenPrepareLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPULowerBufferFatPointersPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPULowerKernelArgumentsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPULowerKernelAttributesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPULowerModuleLDSLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUMarkLastScratchLoadPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUOpenCLEnqueuedBlockLoweringLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPerfHintAnalysisLegacyPass | ( | PassRegistry & | ) |
void llvm::initializeAMDGPUPostLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPreloadKernArgPrologLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPrintfRuntimeBindingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPromoteAllocaPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPromoteAllocaToVectorPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUPromoteKernelArgumentsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPURegBankCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPURegBankLegalizePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPURegBankSelectPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPURemoveIncompatibleFunctionsLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUReserveWWMRegsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUResourceUsageAnalysisPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPURewriteOutArgumentsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPURewriteUndefForPHILegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUSetWavePriorityPass | ( | PassRegistry & | ) |
void llvm::initializeAMDGPUSwLowerLDSLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUUnifyDivergentExitNodesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeAMDGPUUnifyMetadataPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
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(), initializeBasicAAWrapperPassPass(), initializeBlockFrequencyInfoWrapperPassPass(), initializeBranchProbabilityInfoWrapperPassPass(), initializeCallGraphDOTPrinterPass(), initializeCallGraphViewerPass(), initializeCallGraphWrapperPassPass(), initializeCycleInfoWrapperPassPass(), initializeDependenceAnalysisWrapperPassPass(), initializeDominanceFrontierWrapperPassPass(), initializeDomOnlyPrinterWrapperPassPass(), initializeDomOnlyViewerWrapperPassPass(), initializeDomPrinterWrapperPassPass(), initializeDomViewerWrapperPassPass(), initializeDXILResourceBindingWrapperPassPass(), initializeDXILResourceTypeWrapperPassPass(), initializeGlobalsAAWrapperPassPass(), initializeIRSimilarityIdentifierWrapperPassPass(), initializeIVUsersWrapperPassPass(), initializeLazyBlockFrequencyInfoPassPass(), initializeLazyBranchProbabilityInfoPassPass(), initializeLazyValueInfoWrapperPassPass(), initializeLCSSAVerificationPassPass(), initializeLoopInfoWrapperPassPass(), initializeMemoryDependenceWrapperPassPass(), initializeMemorySSAWrapperPassPass(), initializeModuleSummaryIndexWrapperPassPass(), initializeOptimizationRemarkEmitterWrapperPassPass(), initializePhiValuesWrapperPassPass(), initializePostDominatorTreeWrapperPassPass(), initializePostDomOnlyPrinterWrapperPassPass(), initializePostDomOnlyViewerWrapperPassPass(), initializePostDomPrinterWrapperPassPass(), initializePostDomViewerWrapperPassPass(), initializeRegionInfoPassPass(), initializeRegionOnlyPrinterPass(), initializeRegionOnlyViewerPass(), initializeRegionPrinterPass(), initializeRegionViewerPass(), initializeScalarEvolutionWrapperPassPass(), initializeSCEVAAWrapperPassPass(), initializeScopedNoAliasAAWrapperPassPass(), initializeStackSafetyGlobalInfoWrapperPassPass(), initializeStackSafetyInfoWrapperPassPass(), initializeTargetTransformInfoWrapperPassPass(), and initializeTypeBasedAAWrapperPassPass().
void llvm::initializeARCBranchFinalizePass | ( | PassRegistry & | Registry | ) |
void llvm::initializeARCDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARCTarget().
void llvm::initializeARCOptAddrModePass | ( | PassRegistry & | ) |
void llvm::initializeARMBlockPlacementPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMBranchTargetsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMConstantIslandsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMExecutionDomainFixPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMFixCortexA57AES1742098Pass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMLoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMLowOverheadLoopsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMParallelDSPPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMPreAllocLoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeARMSLSHardeningPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeAssignmentTrackingAnalysisPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeAssumptionCacheTrackerPass | ( | PassRegistry & | ) |
Referenced by llvm::AssumptionCacheTracker::AssumptionCacheTracker().
void llvm::initializeAtomicExpandLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeAVRDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAVRTarget().
void llvm::initializeAVRExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAVRTarget().
void llvm::initializeAVRShiftExpandPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAVRTarget().
void llvm::initializeBarrierNoopPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
void llvm::initializeBasicAAWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeBasicBlockPathCloningPass | ( | PassRegistry & | ) |
Referenced by llvm::BasicBlockPathCloning::BasicBlockPathCloning(), and initializeCodeGen().
void llvm::initializeBasicBlockSectionsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeBasicBlockSectionsProfileReaderWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeBlockFrequencyInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeBPFCheckAndAdjustIRPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeBPFTarget().
void llvm::initializeBPFDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeBPFTarget().
void llvm::initializeBPFMIPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeBPFTarget().
void llvm::initializeBPFMIPreEmitCheckingPass | ( | PassRegistry & | ) |
void llvm::initializeBPFMIPreEmitPeepholePass | ( | PassRegistry & | ) |
void llvm::initializeBPFMISimplifyPatchablePass | ( | PassRegistry & | ) |
void llvm::initializeBranchFolderPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeBranchProbabilityInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeBranchRelaxationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeBreakCriticalEdgesPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeBreakFalseDepsPass | ( | PassRegistry & | ) |
Referenced by llvm::BreakFalseDeps::BreakFalseDeps(), and initializeCodeGen().
void llvm::initializeCallBrPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeCallGraphDOTPrinterPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeCallGraphViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeCallGraphWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::CallGraphWrapperPass::CallGraphWrapperPass(), and initializeAnalysis().
void llvm::initializeCanonicalizeFreezeInLoopsPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeCFGSimplifyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeCFGuardLongjmpPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeCFGuardPass | ( | PassRegistry & | ) |
void llvm::initializeCFIFixupPass | ( | PassRegistry & | ) |
Referenced by llvm::CFIFixup::CFIFixup(), and initializeCodeGen().
void llvm::initializeCFIInstrInserterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeCheckDebugMachineModulePass | ( | PassRegistry & | ) |
Referenced by 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(), initializeBranchFolderPassPass(), initializeBranchRelaxationPass(), initializeBreakFalseDepsPass(), initializeCallBrPreparePass(), initializeCFGuardLongjmpPass(), initializeCFIFixupPass(), initializeCFIInstrInserterPass(), initializeCheckDebugMachineModulePass(), initializeCodeGenPrepareLegacyPassPass(), initializeDeadMachineInstructionElimPass(), initializeDebugifyMachineModulePass(), initializeDetectDeadLanesPass(), initializeDwarfEHPrepareLegacyPassPass(), initializeEarlyIfConverterLegacyPass(), initializeEarlyIfPredicatorPass(), initializeEarlyMachineLICMPass(), initializeEarlyTailDuplicateLegacyPass(), initializeExpandLargeDivRemLegacyPassPass(), initializeExpandLargeFpConvertLegacyPassPass(), initializeExpandMemCmpLegacyPassPass(), initializeExpandPostRAPass(), initializeFEntryInserterPass(), initializeFinalizeISelPass(), initializeFinalizeMachineBundlesPass(), initializeFixupStatepointCallerSavedPass(), initializeFuncletLayoutPass(), initializeGCMachineCodeAnalysisPass(), initializeGCModuleInfoPass(), initializeHardwareLoopsLegacyPass(), initializeIfConverterPass(), initializeImplicitNullChecksPass(), initializeIndirectBrExpandLegacyPassPass(), initializeInitUndefPass(), initializeInterleavedAccessPass(), initializeInterleavedLoadCombinePass(), initializeJMCInstrumenterPass(), initializeLiveDebugValuesPass(), initializeLiveDebugVariablesWrapperLegacyPass(), initializeLiveIntervalsWrapperPassPass(), initializeLiveRangeShrinkPass(), initializeLiveStacksWrapperLegacyPass(), initializeLiveVariablesWrapperPassPass(), initializeLocalStackSlotPassPass(), initializeLowerGlobalDtorsLegacyPassPass(), initializeLowerIntrinsicsPass(), initializeMachineBlockFrequencyInfoWrapperPassPass(), initializeMachineBlockPlacementPass(), initializeMachineBlockPlacementStatsPass(), initializeMachineCFGPrinterPass(), initializeMachineCombinerPass(), initializeMachineCopyPropagationPass(), initializeMachineCSELegacyPass(), initializeMachineCycleInfoPrinterPassPass(), initializeMachineCycleInfoWrapperPassPass(), initializeMachineDominatorTreeWrapperPassPass(), initializeMachineFunctionPrinterPassPass(), initializeMachineFunctionSplitterPass(), initializeMachineLateInstrsCleanupPass(), initializeMachineLICMPass(), initializeMachineLoopInfoWrapperPassPass(), initializeMachineModuleInfoWrapperPassPass(), initializeMachineOptimizationRemarkEmitterPassPass(), initializeMachineOutlinerPass(), initializeMachinePipelinerPass(), initializeMachinePostDominatorTreeWrapperPassPass(), initializeMachineRegionInfoPassPass(), initializeMachineSanitizerBinaryMetadataPass(), initializeMachineSchedulerPass(), initializeMachineSinkingPass(), initializeMachineUniformityAnalysisPassPass(), initializeMachineUniformityInfoPrinterPassPass(), initializeMachineVerifierLegacyPassPass(), initializeMIRAddFSDiscriminatorsPass(), initializeMIRCanonicalizerPass(), initializeMIRNamerPass(), initializeMIRProfileLoaderPassPass(), initializeModuloScheduleTestPass(), initializeObjCARCContractLegacyPassPass(), initializeOptimizePHIsLegacyPass(), initializePatchableFunctionPass(), initializePeepholeOptimizerLegacyPass(), initializePEIPass(), initializePHIEliminationPass(), initializePostMachineSchedulerPass(), initializePostRAHazardRecognizerPass(), initializePostRAMachineSinkingPass(), initializePostRASchedulerPass(), initializePreISelIntrinsicLoweringLegacyPassPass(), initializeProcessImplicitDefsPass(), initializeRABasicPass(), initializeRAGreedyPass(), initializeRegAllocFastPass(), initializeRegisterCoalescerPass(), initializeRegUsageInfoCollectorLegacyPass(), initializeRegUsageInfoPropagationLegacyPass(), initializeRemoveLoadsIntoFakeUsesPass(), initializeRemoveRedundantDebugValuesPass(), initializeRenameIndependentSubregsPass(), initializeSafeStackLegacyPassPass(), initializeSelectOptimizePass(), initializeShadowStackGCLoweringPass(), initializeShrinkWrapPass(), initializeSjLjEHPreparePass(), initializeSlotIndexesWrapperPassPass(), initializeStackColoringLegacyPass(), initializeStackFrameLayoutAnalysisPassPass(), initializeStackMapLivenessPass(), initializeStackProtectorPass(), initializeStackSlotColoringPass(), initializeStaticDataSplitterPass(), initializeStripDebugMachineModulePass(), initializeTailDuplicateLegacyPass(), initializeTargetPassConfigPass(), initializeTwoAddressInstructionLegacyPassPass(), initializeTypePromotionLegacyPass(), initializeUnpackMachineBundlesPass(), initializeUnreachableBlockElimLegacyPassPass(), initializeUnreachableMachineBlockElimPass(), initializeVirtRegMapWrapperLegacyPass(), initializeVirtRegRewriterPass(), initializeWasmEHPreparePass(), initializeWinEHPreparePass(), and initializeXRayInstrumentationPass().
Referenced by llvm::TargetPassConfig::TargetPassConfig().
void llvm::initializeCodeGenPrepareLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeComplexDeinterleavingLegacyPassPass | ( | PassRegistry & | ) |
void llvm::initializeCompressEVEXPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeConstantHoistingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeCore | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the Core library.
Definition at line 59 of file Core.cpp.
References initializeDominatorTreeWrapperPassPass(), initializePrintFunctionPassWrapperPass(), initializePrintModulePassWrapperPass(), initializeSafepointIRVerifierPass(), and initializeVerifierLegacyPassPass().
void llvm::initializeCSKYConstantIslandsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeCSKYTarget().
void llvm::initializeCSKYDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeCSKYTarget().
void llvm::initializeCycleInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::CycleInfoWrapperPass::CycleInfoWrapperPass(), and initializeAnalysis().
void llvm::initializeDAEPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
void llvm::initializeDAHPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
void llvm::initializeDCELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeDeadMachineInstructionElimPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeDebugifyMachineModulePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeDependenceAnalysisWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeDetectDeadLanesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeDominanceFrontierWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeDominatorTreeWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::DominatorTreeWrapperPass::DominatorTreeWrapperPass(), and initializeCore().
void llvm::initializeDomOnlyPrinterWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
void llvm::initializeDomOnlyViewerWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeDomPrinterWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
void llvm::initializeDomViewerWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeDummyCGSCCPassPass | ( | PassRegistry & | ) |
Referenced by llvm::DummyCGSCCPass::DummyCGSCCPass().
void llvm::initializeDwarfEHPrepareLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeDXContainerGlobalsPass | ( | PassRegistry & | ) |
Initializer for DXContainerGlobals pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILDataScalarizationLegacyPass | ( | PassRegistry & | ) |
Initializer for DXIL Data Scalarization Pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILFinalizeLinkageLegacyPass | ( | PassRegistry & | ) |
Initializer for DXILFinalizeLinkage pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILFlattenArraysLegacyPass | ( | PassRegistry & | ) |
Initializer for DXIL Array Flatten Pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILIntrinsicExpansionLegacyPass | ( | PassRegistry & | ) |
Initializer for DXIL Intrinsic Expansion.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILMetadataAnalysisWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeDXILMetadataAnalysisWrapperPrinterPass | ( | PassRegistry & | ) |
void llvm::initializeDXILOpLoweringLegacyPass | ( | PassRegistry & | ) |
Initializer for DXILOpLowering.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILPrepareModulePass | ( | PassRegistry & | ) |
Initializer for DXIL-prepare.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILPrettyPrinterLegacyPass | ( | PassRegistry & | ) |
Initializer for DXILPrettyPrinter.
void llvm::initializeDXILResourceAccessLegacyPass | ( | PassRegistry & | ) |
Initializer for DXILResourceAccess.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILResourceBindingWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeDXILResourceMDWrapperPass | ( | PassRegistry & | ) |
Initializer for DXILTranslateMetadata.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeDXILResourceTypeWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::DXILResourceTypeWrapperPass::DXILResourceTypeWrapperPass(), and initializeAnalysis().
void llvm::initializeDXILTranslateMetadataLegacyPass | ( | PassRegistry & | ) |
Initializer for DXILTranslateMetadata.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeEarlyCSELegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeEarlyCSEMemSSALegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeEarlyIfConverterLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeEarlyIfPredicatorPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeEarlyMachineLICMPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeEarlyTailDuplicateLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeEdgeBundlesWrapperLegacyPass | ( | PassRegistry & | ) |
void llvm::initializeEHContGuardCatchretPass | ( | PassRegistry & | ) |
void llvm::initializeEmbedDXILPassPass | ( | PassRegistry & | ) |
Initializer for dxil embedder pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeErrataWorkaroundPass | ( | PassRegistry & | ) |
Referenced by llvm::ErrataWorkaround::ErrataWorkaround(), and LLVMInitializeSparcTarget().
void llvm::initializeExpandLargeDivRemLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeExpandLargeFpConvertLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeExpandMemCmpLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeExpandPostRAPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeExpandReductionsPass | ( | PassRegistry & | ) |
void llvm::initializeExpandVariadicsPass | ( | PassRegistry & | ) |
void llvm::initializeExpandVectorPredicationPass | ( | PassRegistry & | ) |
void llvm::initializeExternalAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::ExternalAAWrapperPass::ExternalAAWrapperPass().
void llvm::initializeFalkorHWPFFixPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeFalkorMarkStridedAccessesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeFEntryInserterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeFinalizeISelPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeFinalizeMachineBundlesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeFixFunctionBitcastsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeFixIrreduciblePass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeFixupBWInstPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeFixupLEAPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeFixupStatepointCallerSavedPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeFlattenCFGLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeFPSPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeFuncletLayoutPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeGCEmptyBasicBlocksPass | ( | PassRegistry & | ) |
Referenced by GCEmptyBasicBlocks::GCEmptyBasicBlocks().
void llvm::initializeGCMachineCodeAnalysisPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeGCModuleInfoPass | ( | PassRegistry & | ) |
void llvm::initializeGCNCreateVOPDPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGCNDPPCombineLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGCNNSAReassignPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGCNPreRALongBranchRegPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGCNPreRAOptimizationsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGCNRegPressurePrinterPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGCNRewritePartialRegUsesPass | ( | llvm::PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeGenericToNVVMLegacyPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeGISelCSEAnalysisWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeGISelKnownBitsAnalysisPass | ( | PassRegistry & | ) |
Referenced by llvm::GISelKnownBitsAnalysis::GISelKnownBitsAnalysis().
void llvm::initializeGlobalISel | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the GlobalISel library.
Definition at line 17 of file GlobalISel.cpp.
References initializeInstructionSelectPass(), initializeIRTranslatorPass(), initializeLegalizerPass(), initializeLoadStoreOptPass(), initializeLocalizerPass(), and initializeRegBankSelectPass().
Referenced by LLVMInitializeAArch64Target(), LLVMInitializeAMDGPUTarget(), LLVMInitializeARMTarget(), LLVMInitializeBPFTarget(), LLVMInitializeM68kTarget(), LLVMInitializeMipsTarget(), LLVMInitializePowerPCTarget(), LLVMInitializeRISCVTarget(), LLVMInitializeSPIRVTarget(), and LLVMInitializeX86Target().
void llvm::initializeGlobalMergeFuncPassWrapperPass | ( | PassRegistry & | ) |
void llvm::initializeGlobalMergePass | ( | PassRegistry & | ) |
void llvm::initializeGlobalsAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::GlobalsAAWrapperPass::GlobalsAAWrapperPass(), and initializeAnalysis().
void llvm::initializeGVNLegacyPassPass | ( | PassRegistry & | ) |
Referenced by llvm::gvn::GVNLegacyPass::GVNLegacyPass(), and initializeScalarOpts().
void llvm::initializeHardwareLoopsLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeHexagonBitSimplifyPass | ( | PassRegistry & | Registry | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonBranchRelaxationPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonCallFrameInformationPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonCFGOptimizerPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonCommonGEPPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonConstExtendersPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonConstPropagationPass | ( | PassRegistry & | Registry | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonCopyHoistingPass | ( | PassRegistry & | Registry | ) |
Referenced by llvm::HexagonTargetMachine::HexagonTargetMachine().
void llvm::initializeHexagonCopyToCombinePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonEarlyIfConversionPass | ( | PassRegistry & | Registry | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonExpandCondsetsPass | ( | PassRegistry & | ) |
Referenced by llvm::HexagonTargetMachine::HexagonTargetMachine().
void llvm::initializeHexagonFixupHwLoopsPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonGenExtractPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonGenInsertPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonGenMemAbsolutePass | ( | PassRegistry & | Registry | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonGenMuxPass | ( | PassRegistry & | Registry | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonGenPredicatePass | ( | PassRegistry & | Registry | ) |
void llvm::initializeHexagonHardwareLoopsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonLoadWideningPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonLoopAlignPass | ( | PassRegistry & | ) |
Referenced by llvm::HexagonTargetMachine::HexagonTargetMachine().
void llvm::initializeHexagonLoopIdiomRecognizeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonLoopReschedulingPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonMaskPass | ( | PassRegistry & | ) |
Referenced by llvm::HexagonMask::HexagonMask().
void llvm::initializeHexagonMergeActivateWeightPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonNewValueJumpPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonOptAddrModePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonOptimizeSZextendsPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonPacketizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonPeepholePass | ( | PassRegistry & | ) |
void llvm::initializeHexagonRDFOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonSplitConst32AndConst64Pass | ( | PassRegistry & | ) |
void llvm::initializeHexagonSplitDoubleRegsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonStoreWideningPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonTfrCleanupPass | ( | PassRegistry & | ) |
Referenced by llvm::HexagonTargetMachine::HexagonTargetMachine().
void llvm::initializeHexagonVectorCombineLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonVectorLoopCarriedReuseLegacyPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeHexagonVectorPrintPass | ( | PassRegistry & | ) |
void llvm::initializeHexagonVExtractPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeHexagonTarget().
void llvm::initializeIfConverterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeImmutableModuleSummaryIndexWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeImplicitNullChecksPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeIndirectBrExpandLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeInferAddressSpacesPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeInitUndefPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
Combine redundant false void llvm::initializeInstCombine | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the InstCombine library.
Definition at line 5699 of file InstructionCombining.cpp.
References initializeInstructionCombiningPassPass().
void llvm::initializeInstructionCombiningPassPass | ( | PassRegistry & | ) |
Referenced by initializeInstCombine(), and llvm::InstructionCombiningPass::InstructionCombiningPass().
void llvm::initializeInstructionSelectPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
void llvm::initializeInstSimplifyLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeInterleavedAccessPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeInterleavedLoadCombinePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeIPO | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the IPO library.
Definition at line 19 of file IPO.cpp.
References initializeAlwaysInlinerLegacyPassPass(), initializeBarrierNoopPass(), initializeDAEPass(), initializeDAHPass(), initializeLoopExtractorLegacyPassPass(), and initializeSingleLoopExtractorPass().
void llvm::initializeIRSimilarityIdentifierWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
void llvm::initializeIRTranslatorPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
void llvm::initializeIVUsersWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::IVUsersWrapperPass::IVUsersWrapperPass().
void llvm::initializeJMCInstrumenterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeKCFIPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target(), LLVMInitializeRISCVTarget(), and LLVMInitializeX86Target().
void llvm::initializeLanaiDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLanaiTarget().
void llvm::initializeLanaiMemAluCombinerPass | ( | PassRegistry & | ) |
void llvm::initializeLazyBFIPassPass | ( | PassRegistry & | Registry | ) |
Helper for client passes to initialize dependent passes for LBFI.
Definition at line 68 of file LazyBlockFrequencyInfo.cpp.
References INITIALIZE_PASS_DEPENDENCY, and initializeLazyBPIPassPass().
void llvm::initializeLazyBlockFrequencyInfoPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LazyBlockFrequencyInfoPass::LazyBlockFrequencyInfoPass().
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().
void llvm::initializeLazyBranchProbabilityInfoPassPass | ( | PassRegistry & | ) |
void llvm::initializeLazyMachineBlockFrequencyInfoPassPass | ( | PassRegistry & | ) |
void llvm::initializeLazyValueInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LazyValueInfoWrapperPass::LazyValueInfoWrapperPass().
void llvm::initializeLCSSAVerificationPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LCSSAVerificationPass::LCSSAVerificationPass().
void llvm::initializeLCSSAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeLDTLSCleanupPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeLegacyLICMPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeLegalizerPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
void llvm::initializeLiveDebugValuesPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
void llvm::initializeLiveDebugVariablesWrapperLegacyPass | ( | PassRegistry & | ) |
void llvm::initializeLiveIntervalsWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveIntervalsWrapperPass::LiveIntervalsWrapperPass().
void llvm::initializeLiveRangeShrinkPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeLiveRegMatrixWrapperLegacyPass | ( | PassRegistry & | ) |
void llvm::initializeLiveStacksWrapperLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveStacksWrapperLegacy::LiveStacksWrapperLegacy().
void llvm::initializeLiveVariablesWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::LiveVariablesWrapperPass::LiveVariablesWrapperPass().
void llvm::initializeLoadStoreOptPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
void llvm::initializeLoadStoreVectorizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeVectorization().
void llvm::initializeLocalizerPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
void llvm::initializeLocalStackSlotPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeLoongArchDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLoongArchTarget().
void llvm::initializeLoongArchDeadRegisterDefinitionsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLoongArchTarget().
void llvm::initializeLoongArchExpandAtomicPseudoPass | ( | PassRegistry & | ) |
void llvm::initializeLoongArchExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLoongArchTarget().
void llvm::initializeLoongArchMergeBaseOffsetOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLoongArchTarget().
void llvm::initializeLoongArchOptWInstrsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLoongArchTarget().
void llvm::initializeLoongArchPreRAExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeLoongArchTarget().
void llvm::initializeLoopDataPrefetchLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeLoopExtractorLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
void llvm::initializeLoopInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::LoopInfoWrapperPass::LoopInfoWrapperPass().
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 189 of file LoopUtils.cpp.
References INITIALIZE_PASS_DEPENDENCY.
void llvm::initializeLoopSimplifyPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeLoopStrengthReducePass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeLoopTermFoldPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeLoopUnrollPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeLowerAtomicLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeLowerConstantIntrinsicsPass | ( | PassRegistry & | ) |
void llvm::initializeLowerEmuTLSPass | ( | PassRegistry & | ) |
void llvm::initializeLowerGlobalDtorsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), initializeTransformUtils(), and LLVMInitializeWebAssemblyTarget().
void llvm::initializeLowerIntrinsicsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeLowerInvokeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeLowerSwitchLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeM68kCollapseMOVEMPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeM68kTarget().
void llvm::initializeM68kDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeM68kTarget().
void llvm::initializeM68kExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeM68kTarget().
void llvm::initializeM68kGlobalBaseRegPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeM68kTarget().
void llvm::initializeMachineBlockFrequencyInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeMachineBlockPlacementPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineBlockPlacementStatsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineBranchProbabilityInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeMachineCFGPrinterPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
void llvm::initializeMachineCombinerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineCopyPropagationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineCSELegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineCycleInfoPrinterPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineCycleInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineCycleInfoWrapperPass::MachineCycleInfoWrapperPass().
void llvm::initializeMachineDominanceFrontierPass | ( | PassRegistry & | ) |
Referenced by llvm::MachineDominanceFrontier::MachineDominanceFrontier().
void llvm::initializeMachineDominatorTreeWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
void llvm::initializeMachineFunctionPrinterPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineFunctionSplitterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineLateInstrsCleanupPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineLICMPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineLoopInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineLoopInfoWrapperPass::MachineLoopInfoWrapperPass().
void llvm::initializeMachineModuleInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeMachineOptimizationRemarkEmitterPassPass | ( | PassRegistry & | ) |
void llvm::initializeMachineOutlinerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachinePipelinerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachinePipeliner::MachinePipeliner().
void llvm::initializeMachinePostDominatorTreeWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
void llvm::initializeMachineRegionInfoPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::MachineRegionInfoPass::MachineRegionInfoPass().
void llvm::initializeMachineSanitizerBinaryMetadataPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineSchedulerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineSinkingPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineTraceMetricsWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeMachineUniformityAnalysisPassPass | ( | PassRegistry & | ) |
void llvm::initializeMachineUniformityInfoPrinterPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMachineVerifierLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMemoryDependenceWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::MemoryDependenceWrapperPass::MemoryDependenceWrapperPass().
void llvm::initializeMemorySSAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::MemorySSAWrapperPass::MemorySSAWrapperPass().
void llvm::initializeMergeICmpsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeMicroMipsSizeReducePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMipsBranchExpansionPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMipsDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMipsDelaySlotFillerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMipsMulMulBugFixPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMipsPostLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMipsPreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMipsTarget().
void llvm::initializeMIRAddFSDiscriminatorsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMIRCanonicalizerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMIRNamerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMIRPrintingPassPass | ( | PassRegistry & | ) |
void llvm::initializeMIRProfileLoaderPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeModuleSummaryIndexWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeModuloScheduleTestPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeMSP430DAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeMSP430Target().
void llvm::initializeMVEGatherScatterLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeMVELaneInterleavingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeMVETailPredicationPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeMVETPAndVPTOptimisationsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeMVEVPTBlockPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeNaryReassociateLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
|
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 119 of file TargetSelect.h.
|
inline |
InitializeNativeTargetAsmParser - The main program should call this function to initialize the native target asm parser.
Definition at line 145 of file TargetSelect.h.
|
inline |
InitializeNativeTargetAsmPrinter - The main program should call this function to initialize the native target asm printer.
Definition at line 133 of file TargetSelect.h.
|
inline |
InitializeNativeTargetDisassembler - The main program should call this function to initialize the native target disassembler.
Definition at line 157 of file TargetSelect.h.
void llvm::initializeNVPTXAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget(), and llvm::NVPTXAAWrapperPass::NVPTXAAWrapperPass().
void llvm::initializeNVPTXAllocaHoistingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXAssignValidGlobalNamesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXAtomicLowerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXCtorDtorLoweringLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXExternalAAWrapperPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXLowerAggrCopiesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXLowerAllocaPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXLowerArgsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXLowerUnreachablePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVPTXPeepholePass | ( | PassRegistry & | ) |
void llvm::initializeNVPTXProxyRegErasurePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVVMIntrRangePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeNVVMReflectPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeNVPTXTarget().
void llvm::initializeObjCARCContractLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeOptimizationRemarkEmitterWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeOptimizePHIsLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeOptimizeReturnedPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializePartiallyInlineLibCallsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializePatchableFunctionPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePeepholeOptimizerLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePEIPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePHIEliminationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePhiValuesWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::PhiValuesWrapperPass::PhiValuesWrapperPass().
void llvm::initializePhysicalRegisterUsageInfoWrapperLegacyPass | ( | PassRegistry & | ) |
void llvm::initializePlaceBackedgeSafepointsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializePostDominatorTreeWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializePostDomOnlyPrinterWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
void llvm::initializePostDomOnlyViewerWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializePostDomPrinterWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeAnalysis().
void llvm::initializePostDomViewerWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializePostInlineEntryExitInstrumenterPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializePostMachineSchedulerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePostRAHazardRecognizerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePostRAMachineSinkingPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePostRASchedulerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePPCBoolRetToIntPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCBranchCoalescingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCBSelPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCCTRLoopsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCCTRLoopsVerifyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCEarlyReturnPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCExpandAtomicPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCExpandISELPass | ( | PassRegistry & | ) |
void llvm::initializePPCGenScalarMASSEntriesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCLoopInstrFormPrepPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCLowerMASSVEntriesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCMIPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCPreEmitPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCReduceCRLogicalsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCTLSDynamicCallPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCTOCRegDepsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCVSXCopyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCVSXFMAMutatePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePPCVSXSwapRemovalPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializePowerPCTarget().
void llvm::initializePreISelIntrinsicLoweringLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializePrintFunctionPassWrapperPass | ( | PassRegistry & | ) |
Referenced by initializeCore().
void llvm::initializePrintModulePassWrapperPass | ( | PassRegistry & | ) |
Referenced by initializeCore().
void llvm::initializeProcessImplicitDefsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeProfileSummaryInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS().
void llvm::initializePromoteLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializePseudoProbeInserterPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeR600ClauseMergePassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeR600ControlFlowFinalizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeR600EmitClauseMarkersPass | ( | PassRegistry & | ) |
void llvm::initializeR600ExpandSpecialInstrsPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeR600MachineCFGStructurizerPass | ( | PassRegistry & | ) |
void llvm::initializeR600PacketizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeR600VectorRegMergerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeRABasicPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeRAGreedyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeReachingDefAnalysisPass | ( | PassRegistry & | ) |
Referenced by llvm::ReachingDefAnalysis::ReachingDefAnalysis().
void llvm::initializeReassociateLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeRegAllocEvictionAdvisorAnalysisPass | ( | PassRegistry & | ) |
void llvm::initializeRegAllocFastPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeRegAllocPriorityAdvisorAnalysisPass | ( | PassRegistry & | ) |
void llvm::initializeRegAllocScoringPass | ( | PassRegistry & | ) |
Referenced by llvm::RegAllocScoring::RegAllocScoring().
void llvm::initializeRegBankSelectPass | ( | PassRegistry & | ) |
Referenced by initializeGlobalISel().
void llvm::initializeRegionInfoPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::RegionInfoPass::RegionInfoPass().
void llvm::initializeRegionOnlyPrinterPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeRegionOnlyViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeRegionPrinterPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeRegionViewerPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis().
void llvm::initializeRegisterCoalescerPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeRegToMemWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeRegUsageInfoCollectorLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeRegUsageInfoPropagationLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeRemoveLoadsIntoFakeUsesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and RemoveLoadsIntoFakeUses::RemoveLoadsIntoFakeUses().
void llvm::initializeRemoveRedundantDebugValuesPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
void llvm::initializeRenameIndependentSubregsPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeReplaceWithVeclibLegacyPass | ( | PassRegistry & | ) |
Referenced by llvm::ReplaceWithVeclibLegacy::ReplaceWithVeclibLegacy().
void llvm::initializeResetMachineFunctionPass | ( | PassRegistry & | ) |
void llvm::initializeRISCVCodeGenPreparePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVDeadRegisterDefinitionsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVExpandAtomicPseudoPass | ( | PassRegistry & | ) |
void llvm::initializeRISCVExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVGatherScatterLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVIndirectBranchTrackingPass | ( | PassRegistry & | ) |
void llvm::initializeRISCVInsertReadWriteCSRPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVInsertVSETVLIPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVInsertWriteVXRMPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVLandingPadSetupPass | ( | PassRegistry & | ) |
void llvm::initializeRISCVMakeCompressibleOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVMergeBaseOffsetOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVMoveMergePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVO0PreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVOptWInstrsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVPostLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVPostRAExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVPreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVPreRAExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVPushPopOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVRedundantCopyEliminationPass | ( | PassRegistry & | ) |
void llvm::initializeRISCVVectorPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVVLOptimizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeRISCVTarget().
void llvm::initializeRISCVZacasABIFixPass | ( | PassRegistry & | ) |
void llvm::initializeSafepointIRVerifierPass | ( | PassRegistry & | ) |
Referenced by initializeCore().
void llvm::initializeSafeStackLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeScalarEvolutionWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::ScalarEvolutionWrapperPass::ScalarEvolutionWrapperPass().
void llvm::initializeScalarizeMaskedMemIntrinLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeScalarizerLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts(), and LLVMInitializeDirectXTarget().
void llvm::initializeScalarOpts | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the ScalarOpts library.
initializeScalarOptsPasses - Initialize all passes linked into the ScalarOpts library.
Definition at line 21 of file Scalar.cpp.
References initializeCFGSimplifyPassPass(), initializeConstantHoistingLegacyPassPass(), initializeDCELegacyPassPass(), initializeEarlyCSELegacyPassPass(), initializeEarlyCSEMemSSALegacyPassPass(), initializeFlattenCFGLegacyPassPass(), initializeGVNLegacyPassPass(), initializeInferAddressSpacesPass(), initializeInstSimplifyLegacyPassPass(), initializeLegacyLICMPassPass(), initializeLoopDataPrefetchLegacyPassPass(), initializeLoopStrengthReducePass(), initializeLoopTermFoldPass(), initializeLoopUnrollPass(), initializeLowerAtomicLegacyPassPass(), initializeMergeICmpsLegacyPassPass(), initializeNaryReassociateLegacyPassPass(), initializePartiallyInlineLibCallsLegacyPassPass(), initializePlaceBackedgeSafepointsLegacyPassPass(), initializePostInlineEntryExitInstrumenterPass(), initializeReassociateLegacyPassPass(), initializeScalarizeMaskedMemIntrinLegacyPassPass(), initializeScalarizerLegacyPassPass(), initializeSeparateConstOffsetFromGEPLegacyPassPass(), initializeSinkingLegacyPassPass(), initializeSpeculativeExecutionLegacyPassPass(), initializeSROALegacyPassPass(), initializeStraightLineStrengthReduceLegacyPassPass(), initializeStructurizeCFGLegacyPassPass(), and initializeTailCallElimPass().
void llvm::initializeScavengerTestPass | ( | PassRegistry & | ) |
void llvm::initializeSCEVAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::SCEVAAWrapperPass::SCEVAAWrapperPass().
void llvm::initializeScopedNoAliasAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::ScopedNoAliasAAWrapperPass::ScopedNoAliasAAWrapperPass().
void llvm::initializeSelectOptimizePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeSeparateConstOffsetFromGEPLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeShaderFlagsAnalysisWrapperPass | ( | PassRegistry & | ) |
Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeShadowStackGCLoweringPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeShrinkWrapPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeSIAnnotateControlFlowLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIFixSGPRCopiesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIFixVGPRCopiesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIFoldOperandsLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIFormMemoryClausesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIInsertHardClausesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIInsertWaitcntsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSILateBranchLoweringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSILoadStoreOptimizerLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSILowerControlFlowLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSILowerI1CopiesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget(), and SILowerI1CopiesLegacy::SILowerI1CopiesLegacy().
void llvm::initializeSILowerSGPRSpillsLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSILowerWWMCopiesLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIMemoryLegalizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIModeRegisterPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSingleLoopExtractorPass | ( | PassRegistry & | ) |
Referenced by initializeIPO().
void llvm::initializeSinkingLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeSIOptimizeExecMaskingLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIOptimizeExecMaskingPreRAPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIOptimizeVGPRLiveRangeLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIPeepholeSDWALegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIPostRABundlerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIPreAllocateWWMRegsLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIPreEmitPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIShrinkInstructionsLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSIWholeQuadModePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAMDGPUTarget().
void llvm::initializeSjLjEHPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeSlotIndexesWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::SlotIndexesWrapperPass::SlotIndexesWrapperPass().
void llvm::initializeSMEABIPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeSMEPeepholeOptPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeSparcDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSparcTarget().
void llvm::initializeSpeculativeExecutionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeSpillPlacementWrapperLegacyPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVConvergenceRegionAnalysisWrapperPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSPIRVTarget().
void llvm::initializeSPIRVEmitIntrinsicsPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVEmitNonSemanticDIPass | ( | PassRegistry & | ) |
Referenced by llvm::SPIRVEmitNonSemanticDI::SPIRVEmitNonSemanticDI().
void llvm::initializeSPIRVMergeRegionExitTargetsPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVModuleAnalysisPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSPIRVTarget().
void llvm::initializeSPIRVPostLegalizerPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVPreLegalizerCombinerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSPIRVTarget().
void llvm::initializeSPIRVPreLegalizerPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVPrepareFunctionsPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVRegularizerPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVStripConvergentIntrinsicsPass | ( | PassRegistry & | ) |
void llvm::initializeSPIRVStructurizerPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSPIRVTarget(), and llvm::SPIRVStructurizer::SPIRVStructurizer().
void llvm::initializeSROALegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeStackColoringLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeStackFrameLayoutAnalysisPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeStackMapLivenessPass | ( | PassRegistry & | ) |
Referenced by INITIALIZE_PASS(), and initializeCodeGen().
void llvm::initializeStackProtectorPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and llvm::StackProtector::StackProtector().
void llvm::initializeStackSafetyGlobalInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeStackSafetyInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::StackSafetyInfoWrapperPass::StackSafetyInfoWrapperPass().
void llvm::initializeStackSlotColoringPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeStaticDataSplitterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen(), and StaticDataSplitter::StaticDataSplitter().
void llvm::initializeStraightLineStrengthReduceLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeStripDebugMachineModulePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeStructurizeCFGLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeSVEIntrinsicOptsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeAArch64Target().
void llvm::initializeSystemZCopyPhysRegsPass | ( | PassRegistry & | ) |
void llvm::initializeSystemZDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeSystemZElimComparePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeSystemZLDCleanupPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeSystemZLongBranchPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeSystemZPostRewritePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeSystemZShortenInstPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeSystemZTDCPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeSystemZTarget().
void llvm::initializeTailCallElimPass | ( | PassRegistry & | ) |
Referenced by initializeScalarOpts().
void llvm::initializeTailDuplicateLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
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().
void llvm::initializeTargetLibraryInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeTargetPassConfigPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeTargetTransformInfoWrapperPassPass | ( | PassRegistry & | ) |
void llvm::initializeThumb2ITBlockPass | ( | PassRegistry & | ) |
void llvm::initializeThumb2SizeReducePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeARMTarget().
void llvm::initializeTransformUtils | ( | PassRegistry & | Registry | ) |
Initialize all passes linked into the TransformUtils library.
initializeTransformUtils - Initialize all passes in the TransformUtils library.
Definition at line 22 of file Utils.cpp.
References initializeBreakCriticalEdgesPass(), initializeCanonicalizeFreezeInLoopsPass(), initializeFixIrreduciblePass(), initializeLCSSAWrapperPassPass(), initializeLoopSimplifyPass(), initializeLowerGlobalDtorsLegacyPassPass(), initializeLowerInvokeLegacyPassPass(), initializeLowerSwitchLegacyPassPass(), initializePromoteLegacyPassPass(), and initializeUnifyLoopExitsLegacyPassPass().
void llvm::initializeTwoAddressInstructionLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeTypeBasedAAWrapperPassPass | ( | PassRegistry & | ) |
Referenced by initializeAnalysis(), and llvm::TypeBasedAAWrapperPass::TypeBasedAAWrapperPass().
void llvm::initializeTypePromotionLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeUniformityInfoWrapperPassPass | ( | PassRegistry & | ) |
Referenced by llvm::UniformityInfoWrapperPass::UniformityInfoWrapperPass().
void llvm::initializeUnifyLoopExitsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeTransformUtils().
void llvm::initializeUnpackMachineBundlesPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeUnreachableBlockElimLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeUnreachableMachineBlockElimPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
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().
void llvm::initializeVEDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeVETarget().
void llvm::initializeVerifierLegacyPassPass | ( | PassRegistry & | ) |
Referenced by initializeCore().
void llvm::initializeVirtRegMapWrapperLegacyPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeVirtRegRewriterPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeWasmEHPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeWebAssemblyAddMissingPrototypesPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyArgumentMovePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyCFGSortPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyCFGStackifyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyCleanCodeAfterTrapPass | ( | PassRegistry & | ) |
void llvm::initializeWebAssemblyDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyDebugFixupPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyExceptionInfoPass | ( | PassRegistry & | ) |
void llvm::initializeWebAssemblyExplicitLocalsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyFixBrTableDefaultsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyFixIrreducibleControlFlowPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyLateEHPreparePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyLowerBrUnlessPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyLowerEmscriptenEHSjLjPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyLowerRefTypesIntPtrConvPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyMCLowerPrePassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyMemIntrinsicResultsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyNullifyDebugValueListsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyOptimizeLiveIntervalsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyPeepholePass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyRefTypeMem2LocalPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyRegColoringPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyRegNumberingPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyRegStackifyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblyReplacePhysRegsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWebAssemblySetP2AlignOperandsPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeWebAssemblyTarget().
void llvm::initializeWinEHPreparePass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initializeWinEHStatePassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeWriteBitcodePassPass | ( | PassRegistry & | ) |
void llvm::initializeWriteDXILPassPass | ( | PassRegistry & | ) |
Initializer for dxil writer pass.
Referenced by LLVMInitializeDirectXTarget().
void llvm::initializeX86ArgumentStackSlotPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86AvoidSFBPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86AvoidTrailingCallPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86CallFrameOptimizationPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86CmovConverterPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86DAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86DomainReassignmentPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86DynAllocaExpanderPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86ExecutionDomainFixPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86ExpandPseudoPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86FastPreTileConfigPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86FastTileConfigPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86FixupInstTuningPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86FixupSetCCPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86FixupVectorConstantsPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86FlagsCopyLoweringPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86LoadValueInjectionLoadHardeningPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86LoadValueInjectionRetHardeningPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86LowerAMXIntrinsicsLegacyPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86LowerAMXTypeLegacyPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86LowerTileCopyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86OptimizeLEAPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86PartialReductionPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86PreTileConfigPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86ReturnThunksPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86SpeculativeExecutionSideEffectSuppressionPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86SpeculativeLoadHardeningPassPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86TileConfigPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeX86Target().
void llvm::initializeX86WinFixupBufferSecurityCheckPassPass | ( | PassRegistry & | ) |
void llvm::initializeXCoreDAGToDAGISelLegacyPass | ( | PassRegistry & | ) |
Referenced by LLVMInitializeXCoreTarget().
void llvm::initializeXCoreLowerThreadLocalPass | ( | PassRegistry & | p | ) |
void llvm::initializeXRayInstrumentationPass | ( | PassRegistry & | ) |
Referenced by initializeCodeGen().
void llvm::initRandomSeedOptions | ( | ) |
Definition at line 43 of file RandomNumberGenerator.cpp.
References Seed.
Referenced by initCommonOptions().
void llvm::initSignalsOptions | ( | ) |
Definition at line 64 of file Signals.cpp.
Referenced by initCommonOptions().
void llvm::initStatisticOptions | ( | ) |
Definition at line 49 of file Statistic.cpp.
References EnableStats, llvm::cl::Hidden, llvm::cl::location(), and StatsAsJSON.
Referenced by initCommonOptions().
void llvm::initTimerOptions | ( | ) |
Definition at line 545 of file Timer.cpp.
References ManagedTimerGlobals.
Referenced by initCommonOptions().
void llvm::initTypeSizeOptions | ( | ) |
Definition at line 34 of file TypeSize.cpp.
References ScalableErrorAsWarning.
Referenced by initCommonOptions().
void llvm::initWithColorOptions | ( | ) |
Definition at line 34 of file WithColor.cpp.
References UseColor.
Referenced by initCommonOptions().
|
constexpr |
Definition at line 149 of file InlineModelFeatureMaps.h.
Referenced by llvm::MLInlineAdvisor::getAdviceImpl().
std::string llvm::inlineCostStr | ( | const InlineCost & | IC | ) |
Utility for extracting the inline cost message to a string.
Definition at line 357 of file InlineAdvisor.cpp.
References Remark.
Referenced by shouldInline().
llvm::InlineResult llvm::InlineFunction | ( | CallBase & | CB, |
InlineFunctionInfo & | IFI, | ||
bool | MergeAttributes = false , |
||
AAResults * | CalleeAAR = nullptr , |
||
bool | InsertLifetime = true , |
||
Function * | ForwardVarArgsTo = nullptr |
||
) |
This function inlines the called function into the basic block of the caller.
This returns false if it is not possible to inline this call. The program is still in a well defined state if this occurs though.
Note that this only does one level of inlining. For example, if the instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now exists in the instruction stream. Similarly this will inline a recursive function by one level.
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.
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 2459 of file InlineFunction.cpp.
References AddAliasScopeMetadata(), AddAlignmentAssumptions(), AddParamAndFnBasicAttributes(), AddReturnAttributes(), allocaWouldBeStaticInEntry(), llvm::SmallVectorImpl< T >::append(), append_range(), llvm::Function::arg_begin(), llvm::CallBase::arg_begin(), llvm::Function::arg_end(), llvm::CallBase::arg_size(), llvm::CallBase::args(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::BasicBlock::begin(), llvm::InlineFunctionInfo::CalleeBFI, llvm::InlineFunctionInfo::CallerBFI, changeToUnreachable(), classifyEHPersonality(), llvm::SmallVectorImpl< T >::clear(), CloneAndPruneFunctionInto(), llvm::ClonedCodeInfo::ContainsCalls, llvm::ClonedCodeInfo::ContainsDynamicAllocas, llvm::ClonedCodeInfo::ContainsMemProfMetadata, llvm::BranchInst::Create(), llvm::CallBase::Create(), llvm::CallInst::Create(), llvm::PHINode::Create(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilderBase::CreateRet(), llvm::IRBuilderBase::CreateRetVoid(), llvm::IRBuilderBase::CreateStackRestore(), llvm::IRBuilderBase::CreateStackSave(), DL, llvm::CallBase::doesNotThrow(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), erase_if(), llvm::BasicBlock::eraseFromParent(), llvm::Instruction::eraseFromParent(), F, llvm::InlineResult::failure(), fixupAssignments(), fixupLineNumbers(), llvm::Function::front(), llvm::AttributeList::get(), llvm::PoisonValue::get(), llvm::AllocaInst::getAllocatedType(), llvm::CallBase::getArgOperand(), llvm::AllocaInst::getArraySize(), llvm::InlineFunctionInfo::GetAssumptionCache, llvm::objcarc::getAttachedARCFunctionKind(), llvm::CallBase::getAttributes(), llvm::BlockFrequencyInfo::getBlockFreq(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCalledOperand(), llvm::Function::getCallingConv(), llvm::CallBase::getCallingConv(), llvm::Value::getContext(), getConvergenceEntry(), llvm::Instruction::getDebugLoc(), getDebugLoc(), llvm::Function::getEntryBlock(), llvm::Function::getEntryCount(), llvm::BasicBlock::getFirstNonPHI(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Instruction::getFunction(), llvm::Function::getFunctionType(), llvm::CallBase::getFunctionType(), llvm::Function::getGC(), llvm::Type::getInt64Ty(), 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::Function::getParamAlign(), llvm::AttributeList::getParamAttrs(), llvm::CallBase::getParamByValType(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), llvm::Function::getPersonalityFn(), llvm::CallBase::getRetAttributes(), llvm::Function::getReturnType(), llvm::Function::getSubprogram(), llvm::CallInst::getTailCallKind(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), getUnwindDestToken(), HandleByValArgument(), HandleByValArgumentInit(), HandleInlinedEHPad(), HandleInlinedLandingPad(), llvm::Function::hasGC(), hasLifetimeMarkers(), llvm::CallBase::hasOperandBundles(), llvm::Function::hasPersonalityFn(), I, II, llvm::InlineFunctionInfo::InlinedCallSites, inlineRetainOrClaimRVCalls(), isAssignmentTrackingEnabled(), isAsynchronousEHPersonality(), llvm::CallBase::isByValArgument(), llvm::CallBase::isConvergent(), llvm::GlobalValue::isDeclaration(), llvm::Function::isIntrinsic(), llvm::CallInst::isMustTailCall(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), isScopedEHPersonality(), llvm::AllocaInst::isSwiftError(), llvm::Type::isVoidTy(), make_early_inc_range(), make_range(), llvm::AttributeFuncs::mergeAttributesForInlining(), llvm::LLVMContext::OB_clang_arc_attachedcall, llvm::LLVMContext::OB_convergencectrl, llvm::LLVMContext::OB_deopt, llvm::LLVMContext::OB_funclet, llvm::LLVMContext::OB_kcfi, 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(), llvm::InlineFunctionInfo::reset(), salvageKnowledge(), llvm::CallBase::setAttributes(), llvm::BlockFrequencyInfo::setBlockFreq(), llvm::Function::setCallingConv(), llvm::CallBase::setCallingConv(), llvm::Instruction::setDebugLoc(), llvm::CallBase::setDoesNotThrow(), llvm::User::setOperand(), llvm::CallInst::setTailCallKind(), simplifyInstruction(), llvm::SmallVectorBase< Size_T >::size(), llvm::BasicBlock::splice(), llvm::BasicBlock::splitBasicBlock(), llvm::InlineFunctionInfo::StaticAllocas, llvm::Constant::stripPointerCasts(), llvm::InlineResult::success(), std::swap(), llvm::CallInst::TCK_None, llvm::CallInst::TCK_NoTail, trackInlinedStores(), llvm::AttributeFuncs::typeIncompatible(), updateCallerBFI(), updateCallProfile(), llvm::InlineFunctionInfo::UpdateProfile, and llvm::Value::use_empty().
Referenced by llvm::coro::BaseCloner::deriveNewFramePointer(), InlineFunction(), InsertSafepointPoll(), processCall(), replaceCoroEndAsync(), and llvm::coro::AsyncABI::splitCoroutine().
llvm::InlineResult llvm::InlineFunction | ( | CallBase & | CB, |
InlineFunctionInfo & | IFI, | ||
PGOContextualProfile & | CtxProf, | ||
bool | MergeAttributes = false , |
||
AAResults * | CalleeAAR = nullptr , |
||
bool | InsertLifetime = true , |
||
Function * | ForwardVarArgsTo = 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 2355 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(), remapIndices(), size(), and llvm::PGOContextualProfile::update().
Register llvm::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.
If SpirvTy is provided, use it as SPIRVType in ASSIGN_TYPE, otherwise create it from Ty
. Defined in SPIRVPreLegalizer.cpp.
Definition at line 429 of file SPIRVPreLegalizer.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), assert(), llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::MachineIRBuilder::buildInstr(), llvm::MachineIRBuilder::getMF(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::MachineOperand::getReg(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getSPIRVTypeID(), I, MRI, setInsertPtAfterDef(), llvm::MachineInstrBuilder::setMIFlags(), and llvm::MachineOperand::setReg().
Referenced by buildAtomicRMWInst(), generateAssignInstrs(), generateAsyncCopy(), generateGroupInst(), generateImageSizeQueryInst(), genWorkgroupQuery(), and processNewInstrs().
void llvm::InsertDebugValueAtStoreLoc | ( | DbgVariableIntrinsic * | DII, |
StoreInst * | SI, | ||
DIBuilder & | Builder | ||
) |
Creates and inserts an llvm.dbg.value intrinsic before a store that has an associated llvm.dbg.value intrinsic.
Definition at line 1780 of file Local.cpp.
References assert(), dropInitialDeref(), getDebugValueLoc(), llvm::DbgVariableIntrinsic::getExpression(), llvm::DbgVariableIntrinsic::getVariable(), and insertDbgValueOrDbgVariableRecord().
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.
Definition at line 1868 of file Local.cpp.
References assert(), dropInitialDeref(), getDebugValueLoc(), llvm::DbgVariableRecord::getExpression(), llvm::DbgVariableRecord::getVariable(), and insertDbgValueOrDbgVariableRecord().
Referenced by rewriteSingleStoreAlloca().
void llvm::insertDebugValuesForPHIs | ( | BasicBlock * | BB, |
SmallVectorImpl< PHINode * > & | InsertedPHIs | ||
) |
Propagate dbg.value intrinsics through the newly inserted PHIs.
Definition at line 2142 of file Local.cpp.
References assert(), llvm::BasicBlock::end(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::BasicBlock::getFirstInsertionPt(), llvm::BasicBlock::getFirstNonPHI(), I, llvm::ValueMap< KeyT, ValueT, Config >::insert(), insertDbgVariableRecordsForPHIs(), is_contained(), llvm::Instruction::isEHPad(), llvm::DbgVariableIntrinsic::location_ops(), PHI, llvm::DbgVariableIntrinsic::replaceVariableLocationOp(), llvm::SmallVectorBase< Size_T >::size(), llvm::ValueMap< KeyT, ValueT, Config >::size(), and llvm::MapVector< KeyT, ValueT, MapType, VectorType >::try_emplace().
|
static |
Add Candidate
to Cycles
if it is not already contained in Cycles
.
Candidate
was added to Cycles
. Definition at line 925 of file GenericUniformityImpl.h.
References any_of(), llvm::CallingConv::C, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence().
|
static |
Insert the new line info sequence Seq
into the current set of already linked line info Rows
.
Definition at line 2086 of file DWARFLinker.cpp.
References llvm::object::SectionedAddress::Address, append_range(), and partition_point().
|
static |
Definition at line 1897 of file AVRISelLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), assert(), BuildMI(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::AVRSubtarget::getZeroRegister(), I, Idx, insertMultibyteShift(), llvm_unreachable, MI, MRI, llvm::ISD::SHL, llvm::ArrayRef< T >::size(), llvm::MutableArrayRef< T >::slice(), llvm::ISD::SRA, llvm::ISD::SRL, TII, and llvm::RegState::Undef.
Referenced by insertMultibyteShift().
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(), LLVM_DEBUG, P, placeSplitBlockCarefully(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SplitBlockPredecessors().
Referenced by simplifyOneLoop().
|
inline |
Definition at line 148 of file InstIterator.h.
References F.
|
inline |
Definition at line 134 of file InstIterator.h.
References F.
|
inline |
Definition at line 143 of file InstIterator.h.
References F.
|
inline |
Definition at line 129 of file InstIterator.h.
References F.
Referenced by dumpExampleDependence(), and instructions().
|
inline |
Definition at line 151 of file InstIterator.h.
References F.
|
inline |
Definition at line 137 of file InstIterator.h.
References F.
|
inline |
Definition at line 144 of file InstIterator.h.
References F.
|
inline |
Definition at line 130 of file InstIterator.h.
References F.
Referenced by dumpExampleDependence(), and instructions().
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.
user_data | - An argument which will be passed to the installed error handler. |
Definition at line 129 of file ErrorHandling.cpp.
References assert(), BadAllocErrorHandler, and BadAllocErrorHandlerUserData.
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.
user_data | - An argument which will be passed to the install error handler. |
Definition at line 65 of file ErrorHandling.cpp.
References assert(), ErrorHandler, and ErrorHandlerUserData.
Referenced by llvm::hashing::detail::get_execution_seed(), LLVMInstallFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::ScopedFatalErrorHandler().
void llvm::install_out_of_memory_new_handler | ( | ) |
Definition at line 195 of file ErrorHandling.cpp.
References assert(), and out_of_memory_new_handler().
Referenced by llvm::InitLLVM::InitLLVM().
const std::error_category & llvm::instrprof_category | ( | ) |
Definition at line 191 of file InstrProf.cpp.
Referenced by make_error_code().
|
inline |
Definition at line 27 of file SSAContext.h.
References llvm::BasicBlock::begin(), llvm::BasicBlock::end(), and make_range().
|
inline |
Definition at line 27 of file MachineSSAContext.h.
References llvm::MachineBasicBlock::instrs().
|
inline |
Definition at line 154 of file InstIterator.h.
References F, inst_begin(), and inst_end().
|
inline |
Definition at line 140 of file InstIterator.h.
References F, inst_begin(), and inst_end().
|
inline |
Definition at line 145 of file InstIterator.h.
References F, inst_begin(), and inst_end().
|
inline |
Definition at line 131 of file InstIterator.h.
References F, inst_begin(), and inst_end().
|
inline |
Construct a range iterator which begins at It
and moves forwards until End
is reached, skipping any debug instructions.
Definition at line 1454 of file MachineBasicBlock.h.
References End, make_filter_range(), make_range(), and MI.
Referenced by areCFlagsAccessedBetweenInstrs(), examineCFlagsUse(), forAllMIsUntilDef(), llvm::ReachingDefAnalysis::getLiveInUses(), isNZCVTouchedInInstructionRange(), llvm::GIMatchTableExecutor::isObviouslySafeToFold(), llvm::ReachingDefAnalysis::isRegUsedAfter(), and llvm::MachineBasicBlock::sizeWithoutDebugLargerThan().
|
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 234 of file DynamicAPInt.h.
References X.
|
static |
IntCCToAVRCC - Convert a DAG integer condition code to an AVR CC.
Definition at line 611 of file AVRISelLowering.cpp.
References CC, llvm::AVRCC::COND_EQ, llvm::AVRCC::COND_GE, llvm::AVRCC::COND_LO, llvm::AVRCC::COND_LT, llvm::AVRCC::COND_NE, llvm::AVRCC::COND_SH, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, and llvm::ISD::SETULT.
|
inlinestatic |
Convert a DAG integer condition code to a VE ICC condition.
Definition at line 69 of file VEISelLowering.h.
References CC, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
Referenced by llvm::VETargetLowering::combineSelect(), and llvm::VETargetLowering::combineSelectCC().
|
inline |
Definition at line 2199 of file STLExtras.h.
References interleave().
|
inline |
Overload of interleave for the common case of string separator.
Definition at line 2193 of file STLExtras.h.
References adl_begin(), adl_end(), and interleave().
|
inline |
Definition at line 2185 of file STLExtras.h.
References adl_begin(), adl_end(), and interleave().
|
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:
Definition at line 2169 of file STLExtras.h.
Referenced by llvm::MCFragment::dump(), llvm::sandboxir::Function::dumpNameAndArgs(), llvm::sandboxir::Function::dumpOS(), interleave(), interleaveComma(), llvm::sandboxir::ShuffleMask::print(), and llvm::sandboxir::PassManager< ParentPass, ContainedPass >::print().
|
inline |
Definition at line 2213 of file STLExtras.h.
References interleaveComma().
|
inline |
Definition at line 2207 of file STLExtras.h.
References interleave().
Referenced by llvm::DependenceGraphInfo< NodeType >::getDependenceString(), interleaveComma(), operator<<(), llvm::VPIRInstruction::print(), llvm::VPWidenIntrinsicRecipe::print(), llvm::VPWidenCallRecipe::print(), llvm::VPReplicateRecipe::print(), llvm::ConstantRangeList::print(), llvm::cl::printBuildConfig(), and llvm::VPUser::printOperands().
|
inline |
Helper function to internalize functions and variables in a Module.
Definition at line 77 of file Internalize.h.
References llvm::InternalizePass::internalizeModule().
Referenced by thinLTOInternalizeModule().
|
static |
Definition at line 555 of file APFloat.cpp.
References createError(), D, decDigitValue(), readExponent(), skipLeadingZeroesAndAnyDot(), and llvm::Error::success().
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 895 of file VectorUtils.cpp.
References addToAccessGroupList(), assert(), 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::SmallVectorBase< Size_T >::size().
Referenced by combineMetadata(), and propagateMetadata().
void llvm::invalidateParentIListOrdering | ( | BasicBlock * | BB | ) |
Definition at line 172 of file BasicBlock.cpp.
|
inline |
Notify basic blocks when an instruction is inserted.
Definition at line 25 of file SymbolTableListTraitsImpl.h.
Referenced by llvm::SymbolTableListTraits< ValueSubClass, Args >::addNodeToList(), and llvm::SymbolTableListTraits< ValueSubClass, Args >::transferNodesFromList().
iterator_range< typename GraphTraits< Inverse< GraphType > >::ChildIteratorType > llvm::inverse_children | ( | const typename GraphTraits< GraphType >::NodeRef & | G | ) |
Definition at line 156 of file GraphTraits.h.
References G, and make_range().
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(), and make_range().
Referenced by findArgParts(), and MarkBlocksLiveIn().
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(), and make_range().
Referenced by llvm::SampleProfileInference< FT >::apply().
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 fcmpImpliesClass(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().
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().
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(), and make_range().
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(), and make_range().
|
static |
Definition at line 1228 of file SLPVectorizer.cpp.
References I, PoisonMaskElem, and llvm::ArrayRef< T >::size().
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::addOrdered(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), reorderOrder(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), and llvm::slpvectorizer::BoUpSLP::transformNodes().
void llvm::InvertBranch | ( | BranchInst * | PBI, |
IRBuilderBase & | Builder | ||
) |
Definition at line 1895 of file BasicBlockUtils.cpp.
References llvm::IRBuilderBase::CreateNot(), llvm::BranchInst::getCondition(), llvm::CmpInst::getInversePredicate(), llvm::Value::getName(), llvm::Value::hasOneUse(), llvm::BranchInst::setCondition(), llvm::CmpInst::setPredicate(), and llvm::BranchInst::swapSuccessors().
Referenced by performBranchToCommonDestFolding().
Invert the given true/false value, possibly reusing an existing copy.
Definition at line 4282 of file Local.cpp.
References assert(), llvm::CallingConv::C, llvm::BinaryOperator::CreateNot(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getFirstInsertionPt(), llvm::Value::getName(), llvm::ConstantExpr::getNot(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), I, llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and llvm::Value::users().
Referenced by calcPredicateUsingBooleans().
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".
Test | The test as specified in 'is_fpclass' intrinsic invocation. |
UseFCmp | The intention is to perform the comparison using floating-point compare instructions which check for nan. |
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, and llvm_unreachable.
Referenced by llvm::TargetLowering::expandIS_FPCLASS().
ipo_iterator< T > llvm::ipo_begin | ( | const T & | G | ) |
Definition at line 232 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by inverse_post_order().
ipo_iterator< T > llvm::ipo_end | ( | const T & | G | ) |
Definition at line 237 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by inverse_post_order().
ipo_ext_iterator< T, SetType > llvm::ipo_ext_begin | ( | const T & | G, |
SetType & | S | ||
) |
Definition at line 256 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by inverse_post_order_ext().
ipo_ext_iterator< T, SetType > llvm::ipo_ext_end | ( | const T & | G, |
SetType & | S | ||
) |
Definition at line 261 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by inverse_post_order_ext().
llvm::IRBuilder | ( | BasicBlock * | , |
BasicBlock::iterator | , | ||
FolderTy | , | ||
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder< FolderTy > |
llvm::IRBuilder | ( | BasicBlock * | , |
BasicBlock::iterator | , | ||
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder<> |
llvm::IRBuilder | ( | BasicBlock * | , |
FolderTy | , | ||
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder< FolderTy > |
llvm::IRBuilder | ( | BasicBlock * | , |
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder<> |
llvm::IRBuilder | ( | Instruction * | , |
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder<> |
llvm::IRBuilder | ( | LLVMContext & | , |
FolderTy | , | ||
InserterTy | , | ||
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder< FolderTy, InserterTy > |
llvm::IRBuilder | ( | LLVMContext & | , |
MDNode * | , | ||
ArrayRef< OperandBundleDef > | |||
) | -> IRBuilder<> |
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 1903 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::ConstantRange::contains(), 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::orc::JITDylib::addToLinkOrder(), llvm::DbgVariableRecord::addVariableLocationOps(), llvm::DbgVariableIntrinsic::addVariableLocationOps(), llvm::SDNode::areOnlyUsersOf(), argHasNVVMAnnotation(), BBHasFallthrough(), llvm::LoopVectorizationLegality::blockNeedsPredication(), buildDbgValueForSpill(), llvm::opt::OptTable::buildPrefixChars(), canCreateUndefOrPoison(), canEvaluateShuffled(), canMoveAboveCall(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), CheckTyN(), checkVOPDRegConstraints(), llvm::objcopy::elf::RelocationSectionBase::classof(), clobbersFlagRegisters(), llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(), colorEHFunclets(), combineX86ShufflesRecursively(), computeUnlikelySuccessors(), llvm::SetVector< T, Vector, Set, N >::contains(), llvm::AppleAcceleratorTable::containsAtomType(), llvm::opt::Arg::containsValue(), llvm::SetVector< T, Vector, Set, N >::count(), llvm::AllocationOrder::create(), llvm::VPRecipeBuilder::createEdgeMask(), 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(), 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(), llvm::VPRecipeBuilder::getEdgeMask(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), getKnowledgeForValue(), getKnowledgeFromUse(), getOutliningPenalty(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::RISCVRegisterInfo::getRegAllocationHints(), llvm::SystemZRegisterInfo::getRegAllocationHints(), llvm::X86RegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), llvm::CallBase::hasArgument(), llvm::sandboxir::CallBase::hasArgument(), HasImplicitCPSRDef(), llvm::MCInstrDesc::hasImplicitUseOfPhysReg(), llvm::CallBase::hasOperandBundlesOtherThan(), hasSameNumEltsOnAllVectorOperands(), hasSelfReference(), llvm::MachO::InterfaceFile::hasTarget(), llvm::MachO::Symbol::hasTarget(), llvm::MachO::InterfaceFileRef::hasTarget(), llvm::rdf::DataFlowGraph::hasUntrackedRef(), llvm::cl::HideUnrelatedOptions(), llvm::HexagonBlockRanges::RangeList::include(), llvm::jitlink::initRelaxAux(), llvm::SetVector< T, Vector, Set, N >::insert(), insertDbgVariableRecordsForPHIs(), 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::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::AArch64InstrInfo::isMBBSafeToSplitToCold(), IsMinMaxConsistingOf(), llvm::SDValue::isOperandOf(), llvm::MachineBasicBlock::isPredecessor(), 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(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::isUpdateValid(), llvm::object::MachOObjectFile::isValidArch(), isValidCandidateForColdCC(), 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::VPUser::onlyFirstLaneUsed(), llvm::VPInstruction::onlyFirstLaneUsed(), llvm::VPIRInstruction::onlyFirstLaneUsed(), llvm::VPWidenEVLRecipe::onlyFirstLaneUsed(), llvm::VPScalarCastRecipe::onlyFirstLaneUsed(), llvm::VPWidenIntrinsicRecipe::onlyFirstLaneUsed(), llvm::VPReverseVectorPointerRecipe::onlyFirstLaneUsed(), llvm::VPVectorPointerRecipe::onlyFirstLaneUsed(), llvm::VPScalarPHIRecipe::onlyFirstLaneUsed(), llvm::VPBlendRecipe::onlyFirstLaneUsed(), llvm::VPInterleaveRecipe::onlyFirstLaneUsed(), llvm::VPReductionEVLRecipe::onlyFirstLaneUsed(), llvm::VPReplicateRecipe::onlyFirstLaneUsed(), llvm::VPWidenLoadRecipe::onlyFirstLaneUsed(), llvm::VPWidenLoadEVLRecipe::onlyFirstLaneUsed(), llvm::VPWidenStoreRecipe::onlyFirstLaneUsed(), llvm::VPWidenStoreEVLRecipe::onlyFirstLaneUsed(), llvm::VPCanonicalIVPHIRecipe::onlyFirstLaneUsed(), llvm::VPEVLBasedIVPHIRecipe::onlyFirstLaneUsed(), llvm::VPDerivedIVRecipe::onlyFirstLaneUsed(), llvm::VPScalarIVStepsRecipe::onlyFirstLaneUsed(), llvm::VPUser::onlyFirstPartUsed(), llvm::VPInstruction::onlyFirstPartUsed(), llvm::VPIRInstruction::onlyFirstPartUsed(), llvm::VPReverseVectorPointerRecipe::onlyFirstPartUsed(), llvm::VPVectorPointerRecipe::onlyFirstPartUsed(), llvm::VPCanonicalIVPHIRecipe::onlyFirstPartUsed(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), llvm::X86::parseTuneCPU(), llvm::yaml::Scanner::peekNext(), performVSelectCombine(), PhiHasDebugValue(), placeSplitBlockCarefully(), llvm::PMDataManager::preserveHigherLevelAnalysis(), llvm::SDValue::reachesChainWithoutSideEffects(), llvm::DomConditionCache::registerBranch(), llvm::orc::RTDyldObjectLinkingLayer::registerJITEventListener(), llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::registerOuterAnalysisInvalidation(), rematerializeChain(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::RemoveRedundantRoots(), removeSwitchAfterSelectFold(), llvm::DIMacroFile::replaceElements(), llvm::DICompositeType::replaceElements(), rescheduleCanonically(), llvm::RecordResolver::resolve(), llvm::GenericCycleInfoCompute< ContextT >::run(), salvageDebugInfoForDbgValues(), llvm::SelectionDAGISel::SelectCodeCommon(), shouldFoldCondBranchesToCommonDestination(), shouldPrintBeforeOrAfterPass(), shouldUseFrameHelper(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), simplifyShuffleVectorInst(), llvm::MachineBasicBlock::SplitCriticalEdge(), SplitKnownCriticalEdge(), llvm::MachineBasicBlock::splitSuccessor(), llvm::SelectionDAG::transferDbgValues(), llvm::LegalityPredicates::typeInSet(), llvm::LegalityPredicates::typePairInSet(), llvm::LegalityPredicates::typeTupleInSet(), UnrollRuntimeLoopRemainder(), llvm::WindowScheduler::updateLiveIntervals(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsBeforeInsertion(), usesOperand(), llvm::VPUser::usesScalars(), llvm::VPIRInstruction::usesScalars(), llvm::VPReplicateRecipe::usesScalars(), llvm::VPBranchOnMaskRecipe::usesScalars(), llvm::VPPredInstPHIRecipe::usesScalars(), ValidateMVEStore(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::ScalarEvolution::verify(), llvm::GenericConvergenceVerifier< ContextT >::verify(), llvm::GenericCycle< ContextT >::verifyCycleNest(), llvm::SIInstrInfo::verifyInstruction(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().
Returns true iff Element
exists in Set
.
This overload takes Set
as an initializer list and is constexpr
-friendly.
Definition at line 1916 of file STLExtras.h.
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 1932 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
bool llvm::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
.
Definition at line 1926 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
Referenced by llvm::AttributeList::addParamAttribute(), llvm::AttrBuilder::AttrBuilder(), llvm::sandboxir::EraseFromParent::EraseFromParent(), llvm::DebugLocEntry::finalize(), llvm::LiveRange::findIndexesLiveAt(), llvm::AttributeList::get(), getFeatures(), getInnerMostLoop(), llvm::SIMachineFunctionInfo::getPrologEpilogSGPRSpills(), llvm::MCSubtargetInfo::getSchedModelForCPU(), llvm::MipsCCState::isF128SoftLibCall(), isSortedByValueNo(), isSubset(), layoutSegments(), LookupNEONLdSt(), predictValueUseListOrder(), predictValueUseListOrderImpl(), llvm::ARMInstPrinter::printRegisterList(), llvm::objcopy::elf::Object::replaceSections(), llvm::object::ELFFile< ELFT >::toMappedAddr(), verifyIntrinsicTables(), and verifyTables().
Definition at line 18 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isTC1().
Definition at line 67 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isTC2().
Definition at line 99 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isTC2Early().
Definition at line 110 of file HexagonDepTimingClasses.h.
Definition at line 143 of file HexagonDepTimingClasses.h.
Referenced by llvm::HexagonInstrInfo::isTC4x().
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::DwarfUnit::applySubprogramAttributes(), llvm::VPTransformState::get(), getOutputElfType(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), isa(), isa_and_present(), llvm::detail::IsaCheckPredicate< Types >::operator()(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), llvm::MCDwarfLoc::setIsa(), and llvm::VPlanTransforms::truncateToMinimalBitwidths().
Definition at line 682 of file Casting.h.
References isa_and_present(), and X.
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(), and X.
Referenced by isa_and_nonnull(), and llvm::detail::IsaAndPresentCheckPredicate< Types >::operator()().
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 6105 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().
|
inline |
Definition at line 129 of file AtomicOrdering.h.
References Acquire, and isAtLeastOrStrongerThan().
Referenced by llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::TargetLoweringBase::emitTrailingFence(), llvm::PPCTargetLowering::emitTrailingFence(), and llvm::RISCVTargetLowering::emitTrailingFence().
Checks that Addr is a multiple of the alignment.
Definition at line 150 of file Alignment.h.
References Addr, and isAligned().
Referenced by llvm::coverage::CovMapFunctionRecordV3::advanceByOne(), llvm::object::OffloadBinary::create(), loadBinaryFormat(), llvm::FixedStreamArray< T >::operator[](), and llvm::BinaryStreamReader::readArray().
|
static |
Definition at line 22 of file ARMMacroFusion.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by shouldScheduleAdjacent().
Checks that SizeInBytes is a multiple of the alignment.
Definition at line 145 of file Alignment.h.
References llvm::Align::value().
Referenced by checkValidLayout(), findArgParts(), llvm::X86FrameLowering::getFrameIndexReference(), isAddrAligned(), llvm::MemOp::isDstAligned(), llvm::HexagonTargetLowering::isLegalAddressingMode(), llvm::MemOp::isSrcAligned(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::AMDGPUCallLowering::lowerTailCall(), performOptimizedStructLayout(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::HexagonDAGToDAGISel::SelectAnyImmediate(), llvm::HexagonDAGToDAGISel::SelectGlobalAddress(), llvm::LoongArchDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::PPCTargetLowering::SelectOptimalAddrMode(), llvm::X86InstrInfo::storeRegToStackSlot(), tryToShorten(), and llvm::X86InstrInfo::unfoldMemoryOperand().
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 llvm::AllocaInst::getAllocatedType(), II, onlyUsedByLifetimeMarkers(), onlyUsedByLifetimeMarkersOrDroppableInsts(), and llvm::Value::users().
Referenced by doPromotion(), eliminateSwiftErrorAlloca(), llvm::memtag::StackInfoBuilder::getAllocaInterestingness(), and promoteMemoryToRegister().
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 AnyAlloc, checkFnAllocKind(), and getAllocationData().
Referenced by CleanupPointerRootUsers(), getPotentialCopiesOfMemoryValue(), IsSafeComputationToRemove(), and optimizeOnceStoredGlobal().
bool llvm::isAllocationFn | ( | const Value * | V, |
function_ref< const TargetLibraryInfo &(Function &)> | GetTLI | ||
) |
Definition at line 291 of file MemoryBuiltins.cpp.
References AnyAlloc, checkFnAllocKind(), and getAllocationData().
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 AllocLike, checkFnAllocKind(), and getAllocationData().
Referenced by computePointerICmp(), isNeverEqualToUnescapedAlloc(), and isRemovableAlloc().
Returns true if V
is an integer constant with all bits set.
Definition at line 12219 of file SelectionDAG.cpp.
Referenced by combineAddOfBooleanXor(), combineCarryThroughADD(), combineDeMorganOfBoolean(), combineSelect(), combineSelectAndUse(), combineSelectToBinOp(), combineTruncOfSraSext(), combineXor(), EmitAVX512Test(), llvm::TargetLowering::expandUADDSUBO(), foldExtendedSignBitTest(), llvm::PPC::get_VSPLTI_elt(), getBMIMatchingOp(), getMaskNode(), getVectorMaskingNode(), IsNOT(), isZeroOrAllOnes(), LowerINTRINSIC_W_CHAIN(), LowerSELECTWithCmpZero(), MatchVectorAllEqualTest(), llvm::AMDGPUTargetLowering::performCtlz_CttzCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performLastTrueTestVectorCombine(), PerformMVEVMULLCombine(), performSETCCCombine(), performXORCombine(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::RISCVDAGToDAGISel::selectVSETVLI(), splatPartsI64WithVL(), and tryDemorganOfBooleanCondition().
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 1565 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().
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 12420 of file SelectionDAG.cpp.
References BitWidth, llvm::CallingConv::C, isConstOrConstSplat(), N, and peekThroughBitcasts().
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 470 of file LoopUtils.cpp.
References assert(), Cond, llvm::PHINode::getBasicBlockIndex(), llvm::PHINode::getIncomingValue(), and llvm::Value::users().
Referenced by canFoldTermCondOfLoop(), and FindLoopCounter().
Check if an ARM64EC function name is mangled.
Definition at line 65 of file Mangler.h.
References Name, and llvm::StringRef::npos.
|
inlinestatic |
isARMLowRegister - Returns true if the register is a low register (r0-r7).
Definition at line 160 of file ARMBaseInfo.h.
References R2, R4, R6, and Reg.
Referenced by checkLowRegisterList(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ThumbRegisterInfo::emitLoadConstPool(), llvm::Thumb1FrameLowering::emitPrologue(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), findCMPToFoldIntoCBZ(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), and VerifyLowRegs().
Return true if assignment tracking is enabled for module M
.
Definition at line 2299 of file DebugInfo.cpp.
References getAssignmentTrackingModuleFlag().
Referenced by llvm::SelectionDAGBuilder::init(), llvm::SelectionDAGISel::initializeAnalysisResults(), InlineFunction(), RemoveRedundantDbgInstrs(), llvm::LoopVectorizePass::run(), llvm::DebugAssignmentTrackingAnalysis::run(), and llvm::AssignmentTrackingAnalysis::runOnFunction().
bool llvm::isAssumeLikeIntrinsic | ( | const Instruction * | I | ) |
Return true if it is an intrinsic that cannot be speculated but also cannot trap.
Definition at line 502 of file ValueTracking.cpp.
References I.
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 argument to the call of llvm.assume may still be useful even if the function returned true.
Definition at line 128 of file AssumeBundleQueries.cpp.
References none_of().
Referenced by llvm::InstCombinerImpl::visitCallInst(), and wouldInstructionBeTriviallyDead().
|
inline |
Returns true if this personality function catches asynchronous exceptions.
Definition at line 50 of file EHPersonalities.h.
References llvm_unreachable, MSVC_TableSEH, and MSVC_X86SEH.
Referenced by llvm::CodeViewDebug::beginFunctionImpl(), canSimplifyInvokeNoUnwind(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), findUnwindDestinations(), getEHScopeMembership(), InlineFunction(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::X86FrameLowering::restoreWinEHStackPointersInParent(), and llvm::FunctionLoweringInfo::set().
|
inline |
Definition at line 106 of file AtomicOrdering.h.
References lookup(), and Other.
Referenced by areLoadsReorderable(), llvm::LegalityPredicates::atomicOrderingAtLeastOrStrongerThan(), llvm::GIMatchTableExecutor::executeMatchTable(), isAcquireOrStronger(), isReleaseOrStronger(), and llvm::InstCombinerImpl::visitFenceInst().
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 829 of file AliasAnalysis.cpp.
bool llvm::isBasePlusOffsetMemoryAccess | ( | unsigned | Opcode, |
unsigned * | AddrIdx, | ||
bool * | IsStore = nullptr |
||
) |
Definition at line 209 of file MipsNaClELFStreamer.cpp.
isBitcode - Return true if the given bytes are the magic bytes for LLVM IR bitcode, either with or without a wrapper.
Definition at line 265 of file BitcodeReader.h.
References isBitcodeWrapper(), and isRawBitcode().
Referenced by embedBitcodeInModule(), getLazyIRModule(), and parseIR().
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 8738 of file BitcodeReader.cpp.
References hasObjCCategory(), initStream(), and llvm::Expected< T >::takeError().
isBitcodeWrapper - Return true if the given bytes are the magic bytes for an LLVM IR bitcode wrapper.
Definition at line 239 of file BitcodeReader.h.
Referenced by analyzeHeader(), initStream(), and isBitcode().
Check whether a pass is a BitcodeWriterPass.
Definition at line 85 of file BitcodeWriterPass.cpp.
References P.
Referenced by llvm::DebugifyCustomPassManager::add().
Returns true if V
is a bitwise not operation.
Assumes that an all ones constant is canonicalized to be operand 1.
Definition at line 12321 of file SelectionDAG.cpp.
References llvm::CallingConv::C, isConstOrConstSplat(), peekThroughBitcasts(), and llvm::ISD::XOR.
Referenced by areBitwiseNotOfEachother(), combineAnd(), combineAndMaskToShift(), combineEXTRACT_SUBVECTOR(), combineShiftAnd1ToBitTest(), foldAddSubOfSignBit(), foldMaskedMergeImpl(), getBitwiseNotOperand(), LowerAndToBT(), PerformPREDICATE_CASTCombine(), llvm::TargetLowering::SimplifyDemandedBits(), and llvm::TargetLowering::SimplifySetCC().
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 743 of file BasicBlockUtils.cpp.
References Depth, llvm::BasicBlock::getTerminatingDeoptimizeCall(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniqueSuccessor(), llvm::SmallPtrSetImpl< PtrType >::insert(), and MaxDeoptOrUnreachableSuccessorCheckDepth.
Referenced by canPeel(), and sinkCommonCodeFromPredecessors().
Definition at line 11670 of file SIISelLowering.cpp.
References llvm::ISD::AND, llvm::AMDGPUISD::FP_CLASS, isBoolSGPR(), llvm::ISD::OR, llvm::ISD::SETCC, and llvm::ISD::XOR.
Referenced by combineBallotPattern(), and isBoolSGPR().
Checks if an MDNode contains Branch Weight Metadata.
Definition at line 95 of file ProfDataUtils.cpp.
Referenced by extractBranchWeights(), getBranchWeightMDNode(), hasBranchWeightMD(), hasBranchWeightOrigin(), and hasCountTypeMD().
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 1446 of file Utils.cpp.
References isBuildVectorConstantSplat(), MI, and MRI.
Referenced by llvm::GIMatchTableExecutor::executeMatchTable(), and isAllOnesOrAllOnesSplat().
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 1440 of file Utils.cpp.
References isBuildVectorConstantSplat(), MI, and MRI.
Referenced by llvm::GIMatchTableExecutor::executeMatchTable(), isNullOrNullSplat(), and llvm::CombinerHelper::matchPtrAddZero().
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 1392 of file Utils.cpp.
References isBuildVectorConstantSplat(), MI, and MRI.
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 1384 of file Utils.cpp.
References llvm::MIPatternMatch::m_SpecificICst(), llvm::MIPatternMatch::mi_match(), and MRI.
Referenced by isBuildVectorAllOnes(), isBuildVectorAllZeros(), isBuildVectorConstantSplat(), llvm::MIPatternMatch::SpecificConstantSplatMatch::match(), and llvm::MIPatternMatch::SpecificConstantOrSplatMatch::match().
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 6189 of file ValueTracking.cpp.
References assert(), BitWidth, llvm::CallingConv::C, ConstantFoldIntegerCast(), DL, llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::ConstantExpr::getBitCast(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Type::getIntNTy(), llvm::Constant::getNullValue(), I, isBytewiseValue(), LHS, Merge, and RHS.
Referenced by isBytewiseValue().
|
inlinestatic |
Definition at line 44 of file ARMBaseRegisterInfo.h.
References Reg.
Referenced by tryFoldSPUpdateIntoPushPop().
Definition at line 67 of file OverflowInstAnalysis.cpp.
References isCheckForZeroAndMulWithOverflow(), and 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 II, llvm::PatternMatch::m_CombineOr(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::m_Zero(), llvm::PatternMatch::match(), X, and Y.
Referenced by isCheckForZeroAndMulWithOverflow(), simplifyAndCommutative(), and simplifyOrInst().
Definition at line 595 of file DWARFUnit.h.
Referenced by llvm::DWARFContext::compile_units(), llvm::DWARFContext::dwo_compile_units(), and llvm::dwarf_linker::parallel::CompileUnit::OutputUnitVariantPtr::operator->().
|
inlinestatic |
Definition at line 684 of file AArch64InstrInfo.h.
Referenced by llvm::ARCInstrInfo::analyzeBranch(), llvm::AArch64InstrInfo::analyzeBranch(), llvm::ARMBaseInstrInfo::analyzeBranch(), llvm::SparcInstrInfo::analyzeBranch(), llvm::VEInstrInfo::analyzeBranch(), llvm::AArch64InstrInfo::analyzeBranchPredicate(), llvm::AArch64InstrInfo::removeBranch(), llvm::ARCInstrInfo::removeBranch(), llvm::ARMBaseInstrInfo::removeBranch(), llvm::SparcInstrInfo::removeBranch(), and llvm::VEInstrInfo::removeBranch().
|
inlinestatic |
Definition at line 651 of file ARMBaseInstrInfo.h.
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 1650 of file LoopAccessAnalysis.cpp.
References A, B, CheckType(), DL, getLoadStorePointerOperand(), getLoadStoreType(), and getPointersDiff().
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 299 of file ConstantFolding.cpp.
References BitWidth, llvm::CallingConv::C, DL, GEP, llvm::GlobalValue::getType(), IsConstantOffsetFromGlobal(), and Offset.
Referenced by findFuncPointers(), IsConstantOffsetFromGlobal(), llvm::AsmPrinter::lowerConstant(), shouldConvertToRelLookupTable(), and simplifyRelativeLoad().
std::optional< APInt > llvm::isConstantOrConstantSplatVector | ( | MachineInstr & | MI, |
const MachineRegisterInfo & | MRI | ||
) |
Determines if MI
defines a constant integer or a splat vector of constant integers.
Definition at line 1523 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().
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.
Definition at line 1536 of file Utils.cpp.
References getFConstantSplat(), getFConstantVRegValWithLookThrough(), MI, and MRI.
Referenced by llvm::AMDGPUCombinerHelper::matchCombineFmulWithSelectToFldexp().
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 1503 of file Utils.cpp.
References I, isBuildVectorOp(), isConstantScalar(), MI, and MRI.
Referenced by foldSelectOfConstantsUsingSra(), isAnyConstantBuildVector(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), and llvm::CombinerHelper::matchUDivByConst().
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 1486 of file Utils.cpp.
References llvm::CallingConv::C, getIConstantVRegValWithLookThrough(), llvm::GMergeLikeInstr::getNumSources(), llvm::GMergeLikeInstr::getSourceReg(), MI, and MRI.
bool llvm::isConstFalseVal | ( | const TargetLowering & | TLI, |
int64_t | Val, | ||
bool | IsVector, | ||
bool | IsFP | ||
) |
Val
contains a false value. Definition at line 1625 of file Utils.cpp.
References llvm::TargetLoweringBase::getBooleanContents(), and llvm_unreachable.
Referenced by llvm::TargetLowering::SimplifySetCC().
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 12331 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(), foldSetCCWithFunnelShift(), foldSetCCWithRotate(), foldVectorXorShiftIntoCmp(), getBitwiseNotOperand(), llvm::SelectionDAG::getNode(), isAllOnesOrAllOnesSplat(), isBitwiseNot(), llvm::SelectionDAG::isBoolConstant(), isBSwapHWordPair(), isConstOrConstSplat(), llvm::TargetLowering::isConstTrueVal(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isNeutralConstant(), isNullOrNullSplat(), isOneOrOneSplat(), isSaturatingMinMax(), LowerADDSAT_SUBSAT(), LowerVSETCC(), matchBSwapHWordOrAndAnd(), matchRotateSub(), llvm::AMDGPUTargetLowering::performTruncateCombine(), PerformUMinFpToSatCombine(), PerformVQDMULHCombine(), PerformVSELECTCombine(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), llvm::TargetLowering::SimplifySetCC(), and stripModuloOnShift().
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 12340 of file SelectionDAG.cpp.
References assert(), llvm::EVT::bitsGE(), llvm::SDNode::getValueType(), N, llvm::BitVector::none(), and llvm::ISD::SPLAT_VECTOR.
ConstantFPSDNode * llvm::isConstOrConstSplatFP | ( | SDValue | N, |
bool | AllowUndefs = false |
||
) |
Returns the SDNode if it is a constant splat BuildVector or constant float.
Definition at line 12377 of file SelectionDAG.cpp.
References llvm::APInt::getAllOnes(), llvm::EVT::getVectorMinNumElements(), isConstOrConstSplatFP(), llvm::EVT::isFixedLengthVector(), and N.
Referenced by llvm::SelectionDAG::cannotBeOrderedNegativeFP(), llvm::SelectionDAG::foldConstantFPMath(), llvm::TargetLowering::getNegatedExpression(), llvm::AMDGPUTargetLowering::isConstantCheaperToNegate(), llvm::AMDGPUTargetLowering::isConstantCostlierToNegate(), isConstOrConstSplatFP(), llvm::SelectionDAG::isKnownToBeAPowerOfTwoFP(), isNeutralConstant(), LowerFCOPYSIGN(), narrowExtractedVectorBinOp(), PerformVMulVCTPCombine(), and llvm::SelectionDAG::simplifyFPBinop().
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 12385 of file SelectionDAG.cpp.
References N, llvm::BitVector::none(), and llvm::ISD::SPLAT_VECTOR.
bool llvm::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.
Definition at line 1612 of file Utils.cpp.
References llvm::TargetLoweringBase::getBooleanContents(), and llvm_unreachable.
Referenced by isConstValidTrue().
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.
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().
Check if ID
corresponds to a convergence control intrinsic.
Definition at line 1854 of file IntrinsicInst.h.
Referenced by llvm::ConvergenceControlInst::classof().
|
static |
Definition at line 2239 of file AVRISelLowering.cpp.
References I.
Referenced by isV8EligibleForIT().
bool llvm::IsCPSRDead< MachineInstr > | ( | const MachineInstr * | MI | ) |
Definition at line 760 of file ARMBaseInstrInfo.cpp.
References MI.
|
inline |
Definition at line 11296 of file ARMAsmParser.cpp.
bool llvm::isCriticalEdge | ( | const Instruction * | TI, |
const BasicBlock * | Succ, | ||
bool | AllowIdenticalEdges = false |
||
) |
Definition at line 101 of file CFG.cpp.
References assert(), llvm::Instruction::getNumSuccessors(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, is_contained(), llvm::Instruction::isTerminator(), pred_begin(), pred_end(), and predecessors().
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 95 of file CFG.cpp.
References assert(), llvm::Instruction::getSuccessor(), and isCriticalEdge().
Referenced by DemoteRegToStack(), isCriticalEdge(), skipPGOUse(), SplitCriticalEdge(), SplitCriticalEdges(), and SplitEdge().
isCurrentDebugType - Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.
Return true if the specified string is the debug type specified on the command line, or if none was specified on the command line with the -debug-only=X option.
Definition at line 52 of file Debug.cpp.
References CurrentDebugType.
Referenced by isDebug().
bool llvm::isCycleInvariant | ( | const MachineCycle * | Cycle, |
MachineInstr & | I | ||
) |
Definition at line 94 of file MachineCycleAnalysis.cpp.
References any_of(), assert(), Block, llvm::GenericCycle< ContextT >::contains(), llvm::GenericCycle< ContextT >::getEntries(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), I, MRI, TII, and TRI.
|
inlinestatic |
Check if ID
corresponds to a debug info intrinsic.
Definition at line 168 of file IntrinsicInst.h.
Referenced by llvm::CallGraph::CallGraph(), llvm::DbgInfoIntrinsic::classof(), and llvm::CallGraph::populateCallGraphNode().
|
inline |
Returns true if the exception handling behavior and rounding mode match what is used in the default floating point environment.
Definition at line 65 of file FPEnv.h.
References llvm::fp::ebIgnore, and NearestTiesToEven.
Referenced by simplifyFAddInst(), simplifyFDivInst(), simplifyFMAFMul(), simplifyFMulInst(), simplifyFPOp(), simplifyFRemInst(), and simplifyFSubInst().
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 277 of file Loads.cpp.
References assert(), llvm::sampleprof::Base, DL, llvm::LoadInst::getAlign(), llvm::Instruction::getDataLayout(), llvm::LoadInst::getPointerOperand(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::Value::getType(), isDereferenceableAndAlignedPointer(), llvm::ScalarEvolution::isLoopInvariant(), Offset, Ptr, llvm::APInt::sgt(), llvm::APInt::uadd_ov(), llvm::APInt::urem(), and llvm::Align::value().
Referenced by isDereferenceableReadOnlyLoop().
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.
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 216 of file Loads.cpp.
References DL, isDereferenceableAndAlignedPointer(), llvm::Type::isScalableTy(), and llvm::Type::isSized().
Referenced by allCallersPassValidPointerForArgument(), canTransformToMemCmp(), llvm::TargetLoweringBase::getLoadMemOperandFlags(), llvm::MachinePointerInfo::isDereferenceable(), isDereferenceableForAllocaSize(), isSafeToSpeculativelyExecuteWithOpcode(), promoteLoopAccessesToScalars(), and llvm::MemDerefPrinterPass::run().
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 236 of file Loads.cpp.
References DL, and isDereferenceableAndAlignedPointer().
Referenced by isPointerAlwaysReplaceable(), isSafeToSpeculateStore(), peelToTurnInvariantLoadsDerefencebale(), promoteLoopAccessesToScalars(), and llvm::MemDerefPrinterPass::run().
bool llvm::isDereferenceableReadOnlyLoop | ( | Loop * | L, |
ScalarEvolution * | SE, | ||
DominatorTree * | DT, | ||
AssumptionCache * | AC, | ||
SmallVectorImpl< const SCEVPredicate * > * | Predicates = nullptr |
||
) |
Return true if the loop L
cannot fault on any iteration and only contains read-only memory accesses.
Definition at line 810 of file Loads.cpp.
References I, and isDereferenceableAndAlignedInLoop().
|
inlinestatic |
Definition at line 157 of file ReleaseModeModelRunner.h.
|
inline |
Definition at line 159 of file ReleaseModeModelRunner.h.
Definition at line 369 of file SPIRVUtils.cpp.
Referenced by isNonMangledOCLBuiltin().
Definition at line 445 of file SPIRVUtils.cpp.
References F, and llvm::CallingConv::SPIR_KERNEL.
Referenced by llvm::SPIRVCallLowering::lowerFormalArguments().
bool llvm::isEqual | ( | const GCNRPTracker::LiveRegSet & | S1, |
const GCNRPTracker::LiveRegSet & | S2 | ||
) |
Definition at line 22 of file GCNRegPressure.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), I, P, S1, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size().
Referenced by llvm::DenseMapInfo< CachedHashString >::getHashValue(), llvm::DenseMapInfo< CachedHashStringRef >::getHashValue(), and llvm::GCNUpwardRPTracker::isValid().
Definition at line 348 of file SPIRVUtils.h.
References isUntypedEquivalentToTyExt().
Returns true if the pointer is one which would have been considered an escape by isNonEscapingLocalObject.
Definition at line 837 of file AliasAnalysis.cpp.
References isIntrinsicReturningPointerAliasingArgumentWithoutCapturing().
Referenced by AddAliasScopeMetadata().
Definition at line 21 of file ReplaceConstant.cpp.
Referenced by convertUsersOfConstantsToInstructions().
bool llvm::isFilterPassesEmpty | ( | ) |
Definition at line 158 of file PrintPasses.cpp.
References FilterPasses.
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 llvm::detail::IEEEFloat::getExactLog2Abs(), and llvm::ScalarEvolution::loopIsFiniteByAssumption().
|
inline |
Returns true if this is a personality function that invokes handler funclets (which must return to it).
Definition at line 65 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().
Definition at line 160 of file PrintPasses.cpp.
References PrintFuncsList.
Referenced by llvm::ChangeReporter< IRDataT< DCData > >::handleInvalidatedPass(), llvm::SelectionDAGISel::initializeAnalysisResults(), llvm::PrintFunctionPass::run(), llvm::PrintModulePass::run(), llvm::AssignmentTrackingAnalysis::runOnFunction(), and shouldGenerateData().
|
inline |
Definition at line 937 of file ARMBaseInstrInfo.h.
References llvm::IntrinsicInst::getIntrinsicID().
Referenced by llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), and isGatherScatter().
|
inline |
Definition at line 965 of file ARMBaseInstrInfo.h.
References isGather(), and isScatter().
Referenced by hasAllGatScatUsers().
bool llvm::isGEPBasedOnPointerToString | ( | const GEPOperator * | GEP, |
unsigned | CharSize = 8 |
||
) |
Returns true if the GEP is based on a pointer to a string (array of.
Definition at line 6455 of file ValueTracking.cpp.
References GEP, llvm::ArrayType::getElementType(), llvm::Type::isIntegerTy(), and llvm::ConstantInt::isZero().
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().
isGlobalStubReference - Return true if the specified TargetFlag operand is a reference to a stub for a global, not the global itself.
Definition at line 121 of file X86InstrInfo.h.
References llvm::X86II::MO_COFFSTUB, llvm::X86II::MO_DARWIN_NONLAZY, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_GOT, llvm::X86II::MO_GOTPCREL, and llvm::X86II::MO_GOTPCREL_NORELAX.
Referenced by llvm::X86TargetLowering::isLegalAddressingMode(), and llvm::X86TargetLowering::LowerAsmOperandForConstraint().
Determines whether module targets a GPU eligable for PGO instrumentation.
Definition at line 440 of file InstrProf.cpp.
Referenced by createPGOFuncNameVar(), and setPGOFuncVisibility().
|
inline |
Definition at line 1079 of file ValueTracking.h.
References Depth, and isGuaranteedNotToBePoison().
bool llvm::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.
Definition at line 7849 of file ValueTracking.cpp.
References Depth.
Referenced by canScalarizeAccess(), computeKnownBitsFromOperator(), foldGuardedFunnelShift(), llvm::InstCombinerImpl::foldSelectOpOp(), impliesPoison(), isFixedVectorShuffle(), isGuaranteedNotToBePoison(), isKnownNonZeroFromOperator(), rewriteSingleStoreAlloca(), simplifyCommonValuePhi(), simplifyInsertElementInst(), simplifyInsertValueInst(), simplifyPHINode(), simplifySelectInst(), and llvm::InstCombinerImpl::visitShuffleVectorInst().
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 1973 of file Utils.cpp.
References Depth, MRI, and PoisonOnly.
bool llvm::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.
Definition at line 7856 of file ValueTracking.cpp.
References Depth.
Referenced by adjustKnownBitsForSelectArm(), llvm::InstCombinerImpl::commonIDivTransforms(), computeKnownBitsMul(), computeOverflowForSignedSub(), computeOverflowForUnsignedSub(), expandUDivOrURem(), foldMulShl1(), llvm::LazyValueInfoImpl::getValueAtUse(), haveNoCommonBitsSetSpecialCases(), optimizeDivRem(), llvm::InstCombinerImpl::SimplifyAddWithRemainder(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitURem(), and llvm::InstCombinerImpl::visitXor().
bool llvm::isGuaranteedNotToBeUndef | ( | Register | Reg, |
const MachineRegisterInfo & | MRI, | ||
unsigned | Depth = 0 |
||
) |
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 7841 of file ValueTracking.cpp.
References Depth.
Referenced by buildPartialUnswitchConditionalBranch(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), despeculateCountZeros(), findForkedSCEVs(), foldAndOrOfICmpsWithConstEq(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), foldLogOpOfMaskedICmps(), isGuaranteedNotToBeUndefOrPoison(), llvm::AANoUndef::isImpliedByIR(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), shouldInsertFreeze(), simplifyFreezeInst(), simplifyOperationIntoSelectOperand(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), UnrollRuntimeLoopRemainder(), unswitchBestCondition(), and llvm::InstCombinerImpl::visitFNeg().
bool llvm::isGuaranteedNotToBeUndefOrPoison | ( | Register | Reg, |
const MachineRegisterInfo & | MRI, | ||
unsigned | Depth = 0 |
||
) |
Returns true if Reg
cannot be poison and undef.
Definition at line 1966 of file Utils.cpp.
References Depth, MRI, and UndefOrPoison.
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 7982 of file ValueTracking.cpp.
References I, isGuaranteedToTransferExecutionToSuccessor(), and llvm_unreachable.
Referenced by checkOverflow(), and isMustExecuteIn().
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 7961 of file ValueTracking.cpp.
References End, isGuaranteedToTransferExecutionToSuccessor(), and make_range().
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 7952 of file ValueTracking.cpp.
References I, and isGuaranteedToTransferExecutionToSuccessor().
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 7920 of file ValueTracking.cpp.
References classifyEHPersonality(), CoreCLR, and I.
Referenced by addArgumentAttrsFromCallsites(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), findArgParts(), llvm::MustBeExecutedContextExplorer::findForwardJoinPoint(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), llvm::MustBeExecutedContextExplorer::getMustBeExecutedNextInstruction(), isGuaranteedToExecuteForEveryIteration(), 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().
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 7968 of file ValueTracking.cpp.
References assert(), I, isGuaranteedToTransferExecutionToSuccessor(), and Range.
Returns true iff U
has semantics of a guard expressed in a form of call of llvm.experimental.guard intrinsic.
Definition at line 18 of file GuardUtils.cpp.
References llvm::PatternMatch::match().
Referenced by CalculateUnswitchCostMultiplier(), collectUnswitchCandidates(), explicifyGuards(), findBestNonTrivialUnswitchCandidate(), hoistRegion(), isKnownNonNullFromDominatingCondition(), isSupportedGuardInstruction(), parseWidenableGuard(), llvm::JumpThreadingPass::processGuards(), and unswitchBestCondition().
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 llvm::SmallPtrSetImpl< PtrType >::insert(), Insn, isWidenableBranch(), and llvm::PatternMatch::match().
Referenced by isSupportedGuardInstruction().
Definition at line 214 of file Debuginfod.cpp.
References all_of(), llvm::CallingConv::C, Name, and llvm::StringRef::split().
Referenced by getHeaders().
|
constexpr |
Definition at line 82 of file InlineModelFeatureMaps.h.
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 825 of file AliasAnalysis.cpp.
References isNoAliasCall(), and isNoAliasOrByValArgument().
Referenced by llvm::AAResults::callCapturesBefore(), isNonEscapingLocalObject(), and llvm::EarliestEscapeAnalysis::isNotCapturedBefore().
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 813 of file AliasAnalysis.cpp.
References isNoAliasCall(), and isNoAliasOrByValArgument().
Referenced by AddAliasScopeMetadata(), addLocAccess(), llvm::AMDGPUAAResult::alias(), getUnderlyingObjects(), getUnderlyingObjectsForCodeGen(), getUnderlyingObjectsForInstr(), isObjectSmallerThan(), and underlyingObjectsAlias().
Definition at line 219 of file NVPTXUtilities.cpp.
References isImageReadOnly(), isImageReadWrite(), and isImageWriteOnly().
Definition at line 207 of file NVPTXUtilities.cpp.
References argHasNVVMAnnotation().
Referenced by isImage().
Definition at line 215 of file NVPTXUtilities.cpp.
References argHasNVVMAnnotation().
Referenced by isImage().
Definition at line 211 of file NVPTXUtilities.cpp.
References argHasNVVMAnnotation().
Referenced by isImage().
Definition at line 16 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmSExti16i8().
Definition at line 21 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmSExti32i8().
Definition at line 30 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmSExti64i32().
Definition at line 26 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmSExti64i8().
Definition at line 38 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmUnsignedi4().
Definition at line 34 of file X86AsmParserCommon.h.
Referenced by llvm::X86Operand::isImmUnsignedi8().
std::optional< bool > llvm::isImpliedByDomCondition | ( | CmpPredicate | Pred, |
const Value * | LHS, | ||
const Value * | RHS, | ||
const Instruction * | ContextI, | ||
const DataLayout & | DL | ||
) |
Definition at line 9690 of file ValueTracking.cpp.
References DL, getDomPredecessorCondition(), isImpliedCondition(), LHS, and RHS.
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 9680 of file ValueTracking.cpp.
References assert(), Cond, DL, getDomPredecessorCondition(), and isImpliedCondition().
Referenced by computeOverflowForUnsignedSub(), getKnownSign(), getKnownSignOrZero(), simplifyByDomEq(), simplifyICmpInst(), and simplifySelectInst().
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 9559 of file ValueTracking.cpp.
References assert(), Depth, DL, llvm::Value::getType(), isImpliedCondAndOr(), isImpliedCondICmps(), llvm::Type::isIntOrIntVectorTy(), llvm::Type::isVectorTy(), LHS, llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and MaxAnalysisRecursionDepth.
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 9596 of file ValueTracking.cpp.
References Depth, DL, isImpliedCondition(), LHS, llvm::PatternMatch::m_LogicalAnd(), llvm::PatternMatch::m_LogicalOr(), llvm::PatternMatch::m_Not(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), MaxAnalysisRecursionDepth, and RHS.
Referenced by llvm::InstCombinerImpl::foldSelectICmp(), isImpliedByDomCondition(), isImpliedCondAndOr(), isImpliedCondition(), llvm::JumpThreadingPass::processImpliedCondition(), simplifyAndInst(), simplifyICmpOfBools(), simplifyICmpWithDominatingAssume(), simplifyInstructionWithPHI(), simplifyOrInst(), and llvm::JumpThreadingPass::threadGuard().
|
inlinestatic |
Definition at line 701 of file AArch64InstrInfo.h.
Referenced by llvm::AArch64InstrInfo::analyzeBranch(), llvm::ARMBaseInstrInfo::analyzeBranch(), llvm::SparcInstrInfo::analyzeBranch(), llvm::VEInstrInfo::analyzeBranch(), isIndirectControlFlowNotComingBack(), and llvm::ARMBlockPlacement::moveBasicBlock().
|
inlinestatic |
Definition at line 662 of file ARMBaseInstrInfo.h.
|
inlinestatic |
Definition at line 666 of file ARMBaseInstrInfo.h.
References assert(), llvm::MachineInstr::IgnoreBundle, and MI.
Referenced by llvm::ARMBaseInstrInfo::isPredicable(), and llvm::NVPTXTargetLowering::LowerCall().
|
inlinestatic |
Definition at line 715 of file ARMBaseInstrInfo.h.
References isIndirectBranchOpcode(), isJumpTableBranchOpcode(), and MI.
Referenced by llvm::ARMBaseInstrInfo::isPredicable().
InlineResult llvm::isInlineViable | ( | Function & | Callee | ) |
Minimal filter to detect invalid constructs for inlining.
Definition at line 3132 of file InlineCost.cpp.
References F, llvm::InlineResult::failure(), llvm::BlockAddress::get(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::hasAddressTaken(), II, llvm::InlineResult::success(), and users.
Referenced by getAttributeBasedInliningDecision().
bool llvm::isInstructionTriviallyDead | ( | Instruction * | I, |
const TargetLibraryInfo * | TLI = nullptr |
||
) |
Return true if the result produced by the instruction is not used, and the instruction will return.
isInstructionTriviallyDead - Return true if the result produced by the instruction is not used, and the instruction has no side effects.
Certain side-effecting instructions are also considered dead if there are no uses of the instruction.
Definition at line 406 of file Local.cpp.
References I, and wouldInstructionBeTriviallyDead().
Referenced by CloneAndPruneIntoFromInst(), ConstantPropUsersOf(), DCEInstruction(), doCallSiteSplitting(), llvm::InstCombinerImpl::prepareWorklist(), llvm::JumpThreadingPass::processBlock(), RecursivelyDeleteTriviallyDeadInstructions(), RecursivelyDeleteTriviallyDeadInstructionsPermissive(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), rewriteLoopExitValues(), llvm::InstCombinerImpl::run(), llvm::ReassociatePass::run(), runImpl(), simplifyAndDCEInstruction(), simplifyLoopAfterUnroll(), simplifyLoopInst(), sinkRegion(), UnrollRuntimeLoopRemainder(), and while().
Checks if an integer fits into the given bit width.
Definition at line 171 of file MathExtras.h.
References N.
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 535 of file Analysis.cpp.
References llvm::BasicBlock::end(), F, llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), II, isSafeToSpeculativelyExecute(), returnTypeIsEligibleForTailCall(), llvm::CallingConv::SwiftTail, and llvm::CallingConv::Tail.
Referenced by llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), llvm::FastISel::lowerCall(), llvm::CallLowering::lowerCall(), and llvm::SelectionDAGBuilder::LowerCallTo().
Checks if an signed integer fits into the given (dynamic) bit width.
Definition at line 262 of file MathExtras.h.
References maxIntN(), minIntN(), and N.
Referenced by adjustFixupValue(), adjust::adjustRelativeBranch(), llvm::APInt::APInt(), llvm::MipsSEFrameLowering::determineCalleeSaves(), doesDispFit(), doesDispFitFI(), llvm::MCStreamer::emitIntValue(), llvm::MCObjectStreamer::emitValueImpl(), llvm::AArch64InstrInfo::isBranchOffsetInRange(), llvm::SIInstrInfo::isBranchOffsetInRange(), llvm::AVRInstrInfo::isBranchOffsetInRange(), llvm::RISCVInstrInfo::isBranchOffsetInRange(), llvm::XtensaInstrInfo::isBranchOffsetInRange(), llvm::SparcInstrInfo::isBranchOffsetInRange(), isExtendedBUILD_VECTOR(), llvm::SIInstrInfo::isLegalFLATOffset(), llvm::APSInt::isRepresentableByInt64(), isSafeTruncation(), llvm::ConstantInt::isValueValidForType(), llvm::LoongArchDAGToDAGISel::SelectInlineAsmMemoryOperand(), and TruncIfPossible().
Return true if V
is either a integer or FP constant.
Definition at line 1872 of file SelectionDAGNodes.h.
Referenced by combineShuffleOfScalars(), llvm::SelectionDAGBuilder::getNonRegisterValue(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), and willLowerDirectly().
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 6712 of file ValueTracking.cpp.
Referenced by determinePointerAccessAttrs(), DetermineUseCaptureKind(), getArgumentAliasingToReturnedPointer(), and isEscapeSource().
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 2656 of file PPCISelLowering.cpp.
References N.
Referenced by isIntS16Immediate(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::PPCTargetLowering::SelectAddressRegRegOnly(), llvm::PPCTargetLowering::SelectForceXFormMode(), and llvm::PPCTargetLowering::SelectOptimalAddrMode().
Definition at line 2666 of file PPCISelLowering.cpp.
References isIntS16Immediate().
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 2705 of file PPCISelLowering.cpp.
References N.
Referenced by isIntS34Immediate(), llvm::PPCTargetLowering::SelectAddressRegImm34(), and llvm::PPCTargetLowering::SelectOptimalAddrMode().
Definition at line 2712 of file PPCISelLowering.cpp.
References isIntS34Immediate().
|
inlinestatic |
Definition at line 150 of file VE.h.
References CC, and llvm::VECC::CC_AF.
Referenced by isI32Insn().
Check if INSTR_PROF_RAW_VERSION_VAR is defined.
This global is only being set in IR PGO compilation.
Definition at line 1461 of file InstrProf.cpp.
References llvm::GlobalVariable::getInitializer(), llvm::GlobalVariable::hasInitializer(), llvm::GlobalValue::hasLocalLinkage(), and llvm::GlobalValue::isDeclaration().
Referenced by getVarName().
Return true if a pass is for IR printing.
Definition at line 138 of file IRPrintingPasses.cpp.
References P.
Referenced by llvm::DebugifyCustomPassManager::add().
|
inlinestatic |
Definition at line 655 of file ARMBaseInstrInfo.h.
Referenced by llvm::ARMBaseInstrInfo::analyzeBranch(), isIndirectControlFlowNotComingBack(), and llvm::ARMBlockPlacement::moveBasicBlock().
Definition at line 313 of file NVPTXUtilities.cpp.
References F, findOneNVVMAnnotation(), llvm::CallingConv::PTX_Kernel, and X.
Referenced by canLowerToLDG(), copyFunctionByValArgs(), llvm::NVPTXTargetLowering::getFunctionParamOptimizedAlign(), isParamGridConstant(), llvm::NVPTXTTIImpl::isSourceOfDivergence(), and shouldEmitPTXNoReturn().
Definition at line 376 of file SPIRVUtils.cpp.
Referenced by isNonMangledOCLBuiltin().
Return true iff:
Definition at line 8602 of file ValueTracking.cpp.
References A, B, llvm::CallingConv::C, llvm::CmpInst::getInversePredicate(), llvm::APInt::isNonNegative(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_c_ICmp(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_Specific(), llvm::PatternMatch::m_Value(), llvm::ConstantRange::makeExactICmpRegion(), llvm::PatternMatch::match(), X, and Y.
Referenced by foldOrOfInversions().
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 8571 of file ValueTracking.cpp.
References A, assert(), B, llvm::PatternMatch::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().
Returns true if the given value is known be negative (i.e.
non-positive and non-zero).
Definition at line 309 of file ValueTracking.cpp.
References computeKnownBits(), and Depth.
Referenced by computeKnownBitsMul(), and foldICmpAndXX().
Returns true if we can prove that S
is defined and always negative in loop L
.
Definition at line 1388 of file LoopUtils.cpp.
References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
|
inline |
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 585 of file ValueTracking.h.
References computeKnownFPClass(), Depth, fcInf, and llvm::KnownFPClass::isKnownNeverInfinity().
Referenced by foldFCmpFSubIntoFCmp(), and isKnownIntegral().
|
inline |
Return true if the floating-point value can never contain a NaN or infinity.
Definition at line 592 of file ValueTracking.h.
References computeKnownFPClass(), Depth, fcInf, fcNan, llvm::KnownFPClass::isKnownNeverInfinity(), and llvm::KnownFPClass::isKnownNeverNaN().
Referenced by llvm::GCNTTIImpl::canSimplifyLegacyMulToMul(), and isKnownIntegral().
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 601 of file ValueTracking.h.
References computeKnownFPClass(), Depth, fcNan, and llvm::KnownFPClass::isKnownNeverNaN().
Referenced by llvm::InstCombinerImpl::foldSelectIntoOp(), foldSelectShuffleWith1Binop(), isKnownNeverNaN(), isKnownNeverSNaN(), llvm::InstCombinerImpl::visitFCmpInst(), and llvm::InstCombinerImpl::visitFMul().
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 809 of file Utils.cpp.
References DefMI, llvm::MachineInstr::FmNoNans, getConstantFPVRegVal(), llvm::MachineInstr::getFlag(), llvm::MachineInstr::getMF(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getTarget(), isKnownNeverNaN(), isKnownNeverSNaN(), MRI, and llvm::MachineInstr::uses().
|
inline |
Returns true if Val
can be assumed to never be a signaling NaN.
Definition at line 342 of file Utils.h.
References isKnownNeverNaN(), and MRI.
Referenced by isKnownNeverNaN(), and llvm::LegalizerHelper::lowerFMinNumMaxNum().
bool llvm::isKnownNonEqual | ( | const Value * | V1, |
const Value * | V2, | ||
const DataLayout & | DL, | ||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
bool | UseInstrInfo = true |
||
) |
Return true if the given values are known to be non-equal when defined.
Supports scalar integer types only.
Definition at line 318 of file ValueTracking.cpp.
References DL, llvm::APInt::getAllOnes(), llvm::Value::getType(), and safeCxtI().
Referenced by llvm::InstCombinerImpl::foldICmpBinOp(), and simplifyICmpInst().
Returns true if the give value is known to be non-negative.
Definition at line 292 of file ValueTracking.cpp.
References computeKnownBits(), and Depth.
Referenced by computeKnownBitsMul(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), decompose(), decomposeGEP(), detectShiftUntilZeroIdiom(), foldCopySignIdioms(), foldICmpWithLowBitMaskedVal(), llvm::InstCombinerImpl::foldICmpWithMinMax(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), hoistGEP(), LinearizeExprTree(), reassociateMinMaxWithConstants(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitSIToFP(), llvm::InstCombinerImpl::visitUIToFP(), and llvm::InstCombinerImpl::visitZExt().
Returns true if we can prove that S
is defined and always non-negative in loop L
.
Definition at line 1395 of file LoopUtils.cpp.
References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
Referenced by llvm::LoopStructure::parseLoopStructure().
Returns true if we can prove that S
is defined and always non-positive in loop L
.
Definition at line 1409 of file LoopUtils.cpp.
References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
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 3487 of file ValueTracking.cpp.
References Depth, and llvm::APInt::getAllOnes().
Referenced by adjustIsPower2Test(), annotateNonNullAndDereferenceable(), computePointerICmp(), convertMetadataToAssumes(), despeculateCountZeros(), llvm::InstCombinerImpl::foldAddWithConstant(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), foldICmpWithLowBitMaskedVal(), llvm::InstCombinerImpl::foldICmpWithZero(), foldICmpXorXX(), foldUnsignedUnderflowCheck(), llvm::LazyValueInfo::getPredicateAt(), isDereferenceableAndAlignedPointer(), isReturnNonNull(), LinearizeExprTree(), matchSelectPattern(), simplifyICmpWithBinOp(), simplifyICmpWithBinOpOnLHS(), simplifyICmpWithZero(), simplifyUnsignedRangeCheck(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitPHINode(), and llvm::InstCombinerImpl::visitTrunc().
Returns true if the given value is known be positive (i.e.
non-negative and non-zero).
Definition at line 297 of file ValueTracking.cpp.
References computeKnownBits(), Depth, isKnownNonZero(), llvm::KnownBits::isNonNegative(), and llvm::KnownBits::isNonZero().
Referenced by llvm::InstCombinerImpl::foldICmpWithZero().
Returns true if we can prove that S
is defined and always positive in loop L
.
Definition at line 1402 of file LoopUtils.cpp.
References llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::ScalarEvolution::isAvailableAtLoopEntry(), and llvm::ScalarEvolution::isLoopEntryGuardedByCond().
bool llvm::isKnownToBeAPowerOfTwo | ( | const Value * | V, |
bool | OrZero, | ||
unsigned | Depth, | ||
const SimplifyQuery & | Q | ||
) |
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 2373 of file ValueTracking.cpp.
References llvm::SimplifyQuery::AC, all_of(), assert(), llvm::AssumptionCache::assumptionsFor(), BitWidth, computeKnownBits(), Cond, llvm::DomConditionCache::conditionsFor(), llvm::SimplifyQuery::CxtI, llvm::SimplifyQuery::DC, Depth, llvm::DominatorTree::dominates(), llvm::SimplifyQuery::DT, 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, 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::PatternMatch::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.
bool llvm::isKnownToBeAPowerOfTwo | ( | const Value * | V, |
const DataLayout & | DL, | ||
bool | OrZero = false , |
||
unsigned | Depth = 0 , |
||
AssumptionCache * | AC = nullptr , |
||
const Instruction * | CxtI = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
bool | UseInstrInfo = true |
||
) |
Return true if the given value is known to have exactly one bit set when defined.
For vectors return true if every element is known to be a power of two when defined. Supports values with integer or pointer type and vectors of integers. If 'OrZero' is set, then return true if the given value is either a power of two or zero.
Definition at line 280 of file ValueTracking.cpp.
References Depth, DL, and safeCxtI().
Referenced by foldAndOrOfICmpsWithPow2AndWithZero(), foldLogOpOfMaskedICmps(), isKnownToBeAPowerOfTwo(), llvm::InstCombiner::isKnownToBeAPowerOfTwo(), isMaskOrZero(), isNonZeroAdd(), isPowerOfTwoRecurrence(), llvm::CombinerHelper::matchOperandIsKnownToBeAPowerOfTwo(), simplifyAndCommutative(), simplifyAndInst(), and simplifyUnaryIntrinsic().
bool llvm::isKnownToBeAPowerOfTwo | ( | Register | Val, |
const MachineRegisterInfo & | MRI, | ||
GISelKnownBits * | KnownBits = 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 1096 of file Utils.cpp.
References BitWidth, llvm::KnownBits::countMaxPopulation(), llvm::KnownBits::countMinPopulation(), drop_begin(), getDefSrcRegIgnoringCopies(), getIConstantVRegVal(), llvm::GISelKnownBits::getKnownBits(), llvm::LLT::getScalarSizeInBits(), llvm::ConstantInt::getValue(), isKnownToBeAPowerOfTwo(), llvm::APInt::isPowerOf2(), MI, MRI, and llvm::APInt::zextOrTrunc().
|
inlinestatic |
Definition at line 157 of file X86InstrInfo.h.
References llvm::X86::AddrBaseReg, llvm::X86::AddrDisp, llvm::X86::AddrIndexReg, llvm::X86::AddrScaleAmt, llvm::X86::AddrSegmentReg, isScale(), and MI.
Referenced by isMem().
|
inline |
Definition at line 908 of file ARMBaseInstrInfo.h.
References llvm::ARMII::AddrMode2, llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeT2_i12, llvm::ARMII::AddrModeT2_i7, llvm::ARMII::AddrModeT2_i7s2, llvm::ARMII::AddrModeT2_i7s4, llvm::ARMII::AddrModeT2_i8, llvm::ARMII::AddrModeT2_i8neg, llvm::ARMII::AddrModeT2_i8pos, llvm::ARMII::AddrModeT2_i8s4, llvm_unreachable, and TII.
Referenced by AdjustBaseAndOffset(), and isLegalOrConvertableAddressImm().
Definition at line 214 of file VECustomDAG.cpp.
References llvm::SDNode::getOpcode(), and llvm::VEISD::LEGALAVL.
Referenced by llvm::VECustomDAG::annotateLegalAVL(), getAnnotatedNodeAVL(), and llvm::VETargetLowering::legalizePackedAVL().
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, llvm::PointerType::getAddressSpace(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::CallBase::getCalledFunction(), llvm::Value::getType(), llvm::AttributeList::hasParamAttr(), I, llvm::CastInst::isBitOrNoopPointerCastable(), llvm::CallBase::isMustTailCall(), and llvm::CallBase::paramHasAttr().
Referenced by tryPromoteCall().
Definition at line 397 of file ConvertUTF.cpp.
Referenced by ConvertUTF8toUTF16(), ConvertUTF8toUTF32Impl(), getUTF8SequenceSize(), isLegalUTF8Sequence(), and isLegalUTF8String().
Definition at line 428 of file ConvertUTF.cpp.
References isLegalUTF8(), and trailingBytesForUTF8.
Referenced by findMaximalSubpartOfIllFormedUTF8Sequence().
Definition at line 555 of file ConvertUTF.cpp.
References isLegalUTF8(), and trailingBytesForUTF8.
Referenced by ConvertUTF8toWide(), convertWideToUTF8(), and llvm::json::isUTF8().
isLibFreeFunction - Returns true if the function is a builtin free()
Definition at line 526 of file MemoryBuiltins.cpp.
References checkFnAllocKind(), F, getFreeFunctionDataForFunction(), llvm::FunctionType::getNumParams(), llvm::FunctionType::getParamType(), llvm::FunctionType::getReturnType(), llvm::Type::isPointerTy(), and llvm::Type::isVoidTy().
Referenced by getFreedOperand(), and inferNonMandatoryLibFuncAttrs().
bool llvm::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.
Definition at line 1456 of file BuildLibCalls.cpp.
References F, llvm::TargetLibraryInfo::getName(), llvm::TargetLibraryInfo::has(), and llvm::TargetLibraryInfo::isValidProtoForLibFunc().
Referenced by emitCalloc(), emitFPutC(), emitFPutS(), emitFWrite(), emitHotColdNew(), emitHotColdNewAligned(), emitHotColdNewAlignedNoThrow(), emitHotColdNewNoThrow(), emitHotColdSizeReturningNew(), emitHotColdSizeReturningNewAligned(), emitLibCall(), emitMalloc(), emitMemCpyChk(), emitPutChar(), emitPutS(), foldLibCalls(), hasFloatFn(), insertSinCosCall(), isLibFuncEmittable(), and llvm::LibCallSimplifier::optimizeCall().
Definition at line 1473 of file BuildLibCalls.cpp.
References llvm::TargetLibraryInfo::getLibFunc(), isLibFuncEmittable(), and Name.
|
inlinestatic |
Check if ID
corresponds to a lifetime intrinsic.
Definition at line 143 of file IntrinsicInst.h.
Referenced by llvm::LifetimeIntrinsic::classof().
|
static |
Definition at line 38 of file ARMMacroFusion.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by shouldScheduleAdjacent().
|
inlinestatic |
Definition at line 82 of file MVETailPredUtils.h.
References isDoLoopStart(), isWhileLoopStart(), and MI.
Referenced by AlignBlocks(), and IsInvalidTPInstruction().
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().
Definition at line 223 of file NVPTXUtilities.cpp.
References globalHasNVVMAnnotation().
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.
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 269 of file MathExtras.h.
Referenced by CombineANDShift(), isImmMskBitp(), isMImm32Val(), isShiftedMask_32(), and PerformShiftCombine().
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 275 of file MathExtras.h.
Referenced by llvm::AArch64TargetLowering::isDesirableToCommuteWithShift(), isEndChunk(), llvm::APInt::isMask(), isMImmVal(), isSeveralBitsExtractOpFromShr(), isSeveralBitsPositioningOpFromShl(), isShiftedMask_64(), isStartChunk(), llvm::RISCVDAGToDAGISel::Select(), translateSetCCForBranch(), and tryOrrWithShift().
Definition at line 50 of file VECustomDAG.cpp.
References llvm::ISD::AND, isMaskType(), llvm::ISD::OR, and llvm::ISD::XOR.
Referenced by llvm::VETargetLowering::LowerOperation().
Definition at line 44 of file VECustomDAG.cpp.
References llvm::EVT::getVectorElementType(), and llvm::EVT::isVector().
Referenced by llvm::VECustomDAG::getBroadcast(), llvm::VECustomDAG::getLegalReductionOpVVP(), isMaskArithmetic(), llvm::VETargetLowering::lowerLOAD(), llvm::VETargetLowering::lowerSTORE(), and supportsPackedMode().
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 3914 of file ConstantFolding.cpp.
References F, llvm::TargetLibraryInfo::getLibFunc(), llvm::APFloat::getOne(), llvm::Value::getType(), llvm::ConstantFP::getValueAPF(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), llvm::Type::isHalfTy(), llvm::APFloat::isInfinity(), llvm::APFloat::isNaN(), and llvm::APFloat::isZero().
Referenced by wouldInstructionBeTriviallyDead().
|
inlinestatic |
Definition at line 170 of file X86InstrInfo.h.
References llvm::X86::AddrNumOperands, llvm::X86::AddrSegmentReg, isLeaMem(), and MI.
Definition at line 344 of file VE.h.
References isMask_32(), and isShiftedMask_32().
Referenced by isMImm().
Definition at line 331 of file VE.h.
References isMask_64(), and isShiftedMask_64().
Referenced by llvm::VEInstrInfo::foldImmediate(), and isMImm().
Returns true if V
is a constant min signed integer value.
Definition at line 12229 of file SelectionDAG.cpp.
Referenced by llvm::SelectionDAG::isADDLike(), and lowerAtomicArith().
|
inline |
Definition at line 45 of file ModRef.h.
Referenced by llvm::AliasSet::aliasesUnknownInst(), and llvm::BasicAAResult::getModRefInfo().
|
inline |
Definition at line 42 of file ModRef.h.
Referenced by accessedBetween(), llvm::AliasSet::aliasesMemoryLocation(), llvm::AliasSet::aliasesUnknownInst(), llvm::AAResults::canInstructionRangeModRef(), canSinkOrHoistInst(), llvm::MemoryEffectsBase< LocationEnum >::doesAccessArgPointees(), llvm::AAResults::getModRefInfo(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), instructionClobbersQuery(), and mayLoopAccessLocation().
|
inline |
Definition at line 48 of file ModRef.h.
Referenced by llvm::AliasSetTracker::add(), addMemoryAttrs(), canMoveAboveCall(), canSinkOrHoistInst(), canSkipClobberingStore(), determinePointerAccessAttrs(), FindAvailableLoadedValue(), findAvailablePtrLoadStore(), findDominatingValue(), findSafeStoreForStoreStrongContraction(), foldLoadsRecursive(), llvm::MemoryDependenceResults::getDependency(), llvm::AAResults::getModRefInfo(), llvm::BasicAAResult::getModRefInfo(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), hasPartialIVCondition(), instructionClobbersQuery(), isArgUnmodifiedByAllCalls(), isMemModifiedBetween(), isOnlyCopiedFromConstantMemory(), isSafeToMove(), isUseTriviallyOptimizableToLiveOnEntry(), memoryIsNotModifiedBetween(), llvm::MemoryEffectsBase< LocationEnum >::onlyReadsMemory(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), llvm::InstCombinerImpl::SimplifyAnyMemTransfer(), and llvm::InstCombinerImpl::visitStoreInst().
|
inlinestatic |
Definition at line 746 of file ARMBaseInstrInfo.h.
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().
|
inline |
Definition at line 975 of file ARMBaseInstrInfo.h.
References llvm::ARMII::DomainMask, llvm::ARMII::DomainMVE, MI, and llvm::MCInstrDesc::TSFlags.
Definition at line 774 of file SPIRVUtils.cpp.
References isNestedPointer(), and llvm::Type::isPtrOrPtrVectorTy().
Referenced by isNestedPointer().
bool llvm::isNeutralConstant | ( | unsigned | Opc, |
SDNodeFlags | Flags, | ||
SDValue | V, | ||
unsigned | OperandNo | ||
) |
Returns true if V
is a neutral element of Opc with Flags.
When OperandNo is 0, it checks that V is a left identity. Otherwise, it checks that V is a right identity.
Definition at line 12234 of file SelectionDAG.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::APFloat::changeSign(), llvm::ISD::FADD, llvm::ISD::FDIV, llvm::ISD::FMAXNUM, llvm::ISD::FMINNUM, llvm::ISD::FMUL, llvm::ISD::FSUB, llvm::EVT::getFltSemantics(), llvm::APFloat::getInf(), llvm::APFloat::getLargest(), llvm::APFloat::getQNaN(), isConstOrConstSplat(), isConstOrConstSplatFP(), llvm::ISD::MUL, llvm::ISD::OR, llvm::ISD::SDIV, llvm::ISD::SHL, llvm::ISD::SMAX, llvm::ISD::SMIN, llvm::ISD::SRA, llvm::ISD::SRL, llvm::ISD::SUB, llvm::ISD::UDIV, llvm::ISD::UMAX, llvm::ISD::UMIN, and llvm::ISD::XOR.
Referenced by combineBinOpToReduce(), and foldSelectWithIdentityConstant().
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.
Return true if this pointer is returned by a noalias function.
Definition at line 801 of file AliasAnalysis.cpp.
Referenced by computePointerICmp(), DetermineUseCaptureKind(), getPotentialCopiesOfMemoryValue(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), isIdentifiedFunctionLocal(), isIdentifiedObject(), isNotVisibleOnUnwind(), and isWritableObject().
|
inline |
Definition at line 39 of file ModRef.h.
Referenced by llvm::AliasSetTracker::add(), addLocAccess(), determinePointerAccessAttrs(), llvm::AAResults::getArgModRefInfo(), llvm::AAResults::getModRefInfo(), llvm::objcarc::ObjCARCAAResult::getModRefInfoMask(), llvm::AAResults::getModRefInfoMask(), llvm::AAResults::pointsToConstantMemory(), and llvm::BatchAAResults::pointsToConstantMemory().
bool llvm::isNonEscapingLocalObject | ( | const Value * | V, |
SmallDenseMap< const Value *, bool, 8 > * | IsCapturedCache = nullptr |
||
) |
Returns true if the pointer is to a function-local object that never escapes from the function.
Definition at line 458 of file CaptureTracking.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), isIdentifiedFunctionLocal(), and PointerMayBeCaptured().
Referenced by llvm::SimpleCaptureAnalysis::isNotCapturedBefore().
Definition at line 383 of file SPIRVUtils.cpp.
References isEnqueueKernelBI(), isKernelQueryBI(), isPipeOrAddressSpaceCastBI(), and Name.
Referenced by getOclOrSpirvBuiltinDemangledName().
|
inline |
Return true if this personality may be safely removed if there are no invoke instructions remaining in the current function.
Definition at line 96 of file EHPersonalities.h.
References llvm_unreachable, and Unknown.
Referenced by llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::ARMException::endFunction(), needFuncLabels(), and llvm::TargetLoweringObjectFileXCOFF::ShouldEmitEHBlock().
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 7035 of file ValueTracking.cpp.
References I, II, and isTriviallyVectorizable().
Referenced by simplifyWithOpsReplaced(), and llvm::InstCombinerImpl::visitCallInst().
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 864 of file AliasAnalysis.cpp.
References A, and isNoAliasCall().
Referenced by mayBeVisibleThroughUnwinding().
Returns true if V
is a constant integer zero.
Definition at line 12205 of file SelectionDAG.cpp.
Referenced by AddCombineTo64bitUMAAL(), checkBoolTestAndOrSetCCCombine(), checkSignTestSetCCCombine(), collectConcatOps(), 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::AMDGPUTargetLowering::ComputeNumSignBitsForTargetNode(), llvm::SelectionDAG::computeOverflowForSignedAdd(), llvm::SelectionDAG::computeOverflowForSignedMul(), llvm::SelectionDAG::computeOverflowForSignedSub(), llvm::SelectionDAG::computeOverflowForUnsignedAdd(), llvm::SelectionDAG::computeOverflowForUnsignedMul(), llvm::SelectionDAG::computeOverflowForUnsignedSub(), EmitAVX512Test(), EmitCmp(), emitComparison(), emitConditionalComparison(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), 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(), llvm::X86::isZeroNode(), 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(), LowerSELECTWithCmpZero(), llvm::MSP430TargetLowering::LowerSETCC(), 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(), performSETCCCombine(), performSUBCombine(), PerformSubCSINCCombine(), PerformUMLALCombine(), pushAddIntoCmovOfConsts(), refineUniformBase(), removeRedundantInsertVectorElt(), llvm::RISCVTargetLowering::ReplaceNodeResults(), replaceZeroVectorStore(), scalarizeExtEltFP(), llvm::RISCVDAGToDAGISel::selectSETCC(), selectSOffset(), shouldCombineToPostInc(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), translateSetCCForBranch(), tryCombineMULLWithUZP1(), tryDemorganOfBooleanCondition(), llvm::X86InstrInfo::unfoldMemoryOperand(), useInversedSetcc(), and vectorizeExtractedCast().
Returns true if V
is a constant integer zero or an UNDEF node.
Definition at line 12210 of file SelectionDAG.cpp.
References isNullConstant().
Referenced by combineBitcast(), lowerBuildVectorAsBroadcast(), and LowerMUL().
Returns true if V
is an FP constant with a value of positive zero.
Definition at line 12214 of file SelectionDAG.cpp.
Referenced by generateComparison(), isNullFPScalarOrVectorConst(), llvm::X86::isZeroNode(), isZerosVector(), replaceZeroVectorStore(), and llvm::TargetLowering::SimplifyDemandedVectorElts().
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 1547 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(), shouldConvertSelectOfConstantsToMath(), and llvm::SelectionDAG::simplifyShift().
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 12407 of file SelectionDAG.cpp.
References llvm::CallingConv::C, isConstOrConstSplat(), and N.
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 5596 of file AArch64InstrInfo.cpp.
References any_of(), DefMI, I, instructionsWithoutDebug(), TRI, and UseMI.
Definition at line 103 of file DWARFLinker.cpp.
References llvm_unreachable.
|
static |
Definition at line 720 of file DWARFLinker.cpp.
References llvm::DWARFDie::getTag(), and Info.
|
inline |
Returns true if a reg:subreg pair P has a TRC class.
Definition at line 1468 of file SIInstrInfo.h.
Returns true if V
is a constant integer one.
Definition at line 12224 of file SelectionDAG.cpp.
Referenced by checkBoolTestSetCCCombine(), combine_CC(), combineAddOfBooleanXor(), combineAddOrSubToADCOrSBB(), combineAnd(), combineCarryThroughADD(), combineCMov(), combineCMP(), combineDeMorganOfBoolean(), combineGatherScatter(), 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(), llvm::ARMTargetLowering::PerformCMOVCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performSETCCCombine(), performXORCombine(), llvm::RISCVTargetLowering::ReplaceNodeResults(), llvm::RISCVDAGToDAGISel::Select(), llvm::TargetLowering::SimplifySetCC(), takeInexpensiveLog2(), and tryDemorganOfBooleanCondition().
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 12414 of file SelectionDAG.cpp.
References llvm::CallingConv::C, isConstOrConstSplat(), and N.
Referenced by llvm::TargetLowering::expandIntMINMAX(), foldAddSubMasked1(), foldBoolSelectToLogic(), performMULCombine(), performVP_REVERSECombine(), and performVP_STORECombine().
bool llvm::isOnlyUsedInZeroComparison | ( | const Instruction * | CxtI | ) |
Definition at line 267 of file ValueTracking.cpp.
bool llvm::isOnlyUsedInZeroEqualityComparison | ( | const Instruction * | CxtI | ) |
Definition at line 273 of file ValueTracking.cpp.
Referenced by optimizeMemCmpConstantSize().
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 7387 of file ValueTracking.cpp.
References any_of(), assert(), B, llvm::DominatorTree::dominates(), llvm::BasicBlockEdge::isSingleEdge(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Results, and llvm::Value::users().
Referenced by MatchBinaryOp().
Definition at line 22 of file VECustomDAG.cpp.
References llvm::EVT::getVectorNumElements(), llvm::EVT::isVector(), and StandardVectorWidth.
Referenced by llvm::VECustomDAG::getBroadcast(), getTypePacking(), llvm::VETargetLowering::legalizeInternalLoadStoreOp(), llvm::VETargetLowering::legalizeInternalVectorOp(), llvm::VETargetLowering::legalizePackedAVL(), llvm::VETargetLowering::LowerOperation(), and supportsPackedMode().
Definition at line 116 of file VECustomDAG.cpp.
References llvm::VEISD::VEC_PACK, llvm::VEISD::VEC_UNPACK_HI, and llvm::VEISD::VEC_UNPACK_LO.
Referenced by llvm::VETargetLowering::getCustomOperationAction().
Definition at line 182 of file NVPTXUtilities.cpp.
References argHasNVVMAnnotation(), assert(), and isKernelFunction().
Referenced by adjustByValArgAlignment(), and copyFunctionByValArgs().
std::optional< bool > llvm::isPartOfGOTToPCRelPair | ( | const MCInst & | Inst, |
const MCSubtargetInfo & | STI | ||
) |
Definition at line 196 of file PPCELFStreamer.cpp.
References llvm::MCOperand::getExpr(), llvm::MCSymbolRefExpr::getKind(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::isExpr(), and llvm::MCSymbolRefExpr::VK_PPC_PCREL_OPT.
Referenced by llvm::PPCELFStreamer::emitInstruction().
Definition at line 152 of file PrintPasses.cpp.
References FilterPasses, and PassName.
|
inlinestatic |
Definition at line 40 of file SizeOpts.h.
References llvm::ProfileSummaryInfo::hasInstrumentationProfile(), llvm::ProfileSummaryInfo::hasLargeWorkingSetSize(), llvm::ProfileSummaryInfo::hasPartialSampleProfile(), llvm::ProfileSummaryInfo::hasSampleProfile(), PGSOColdCodeOnly, PGSOColdCodeOnlyForInstrPGO, PGSOColdCodeOnlyForPartialSamplePGO, PGSOColdCodeOnlyForSamplePGO, and PGSOLargeWorkingSetSizeOnly.
Referenced by shouldFuncOptimizeForSizeImpl(), and shouldOptimizeForSizeImpl().
Definition at line 345 of file SPIRVUtils.cpp.
Referenced by isNonMangledOCLBuiltin().
Definition at line 256 of file SPIRVUtils.h.
References isTypedPointerTy(), and isUntypedPointerTy().
Referenced by clusterSortPtrAccesses(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::ScalarEvolution::getAddExpr(), getArgSPIRVType(), llvm::ScalarEvolution::getMinMaxExpr(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), llvm::ScalarEvolution::getSequentialMinMaxExpr(), IsKernelArgInt8(), isLeakCheckerRoot(), isPointerTyOrWrapper(), and sortPtrAccesses().
Definition at line 305 of file SPIRVUtils.h.
References isPointerTy(), and isTypedPointerWrapper().
Referenced by llvm::SPIRVCallLowering::lowerFormalArguments().
|
inlinestatic |
Definition at line 728 of file ARMBaseInstrInfo.h.
Referenced by tryFoldSPUpdateIntoPushPop().
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 257 of file CFG.cpp.
References A, assert(), B, llvm::SmallPtrSetImplBase::empty(), isPotentiallyReachableFromMany(), llvm::DominatorTree::isReachableFromEntry(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
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 281 of file CFG.cpp.
References A, llvm::SmallVectorImpl< T >::append(), assert(), B, llvm::SmallVectorBase< Size_T >::empty(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::BasicBlock::isEntryBlock(), isPotentiallyReachable(), isPotentiallyReachableFromMany(), succ_begin(), and succ_end().
Referenced by llvm::memtag::forAllReachableExits(), InsertSafepointPoll(), llvm::EarliestEscapeAnalysis::isNotCapturedBefore(), isPotentiallyReachable(), liesBetween(), reportMayClobberedLoad(), and llvm::coro::BaseCloner::salvageDebugInfo().
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 239 of file CFG.cpp.
Referenced by isNotInCycle(), and isPotentiallyReachable().
Return true if the argument is a power of two > 0.
Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)
Definition at line 293 of file MathExtras.h.
References has_single_bit().
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), adjustDown(), adjustUp(), llvm::LegalizerHelper::bitcastExtractVectorElt(), llvm::LegalizerHelper::bitcastInsertVectorElt(), canLowerByDroppingElements(), clampDynamicVectorIndex(), clampVectorIndex(), combineArithReduction(), combineBasicSADPattern(), combineBitcast(), combineFP_EXTEND(), combineFP_ROUND(), combineMulToPMADDWD(), combineMulToPMULDQ(), combinePredicateReduction(), combineShiftRightLogical(), combineTruncateWithSat(), combineVPDPBUSDPattern(), combineX86ShufflesRecursively(), llvm::HvxSelector::completeToPerfect(), llvm::LoopVectorizationCostModel::computeMaxVF(), ComputePTXValueVTs(), 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(), llvm::LegalizerHelper::fewerElementsVectorReductions(), llvm::LegalizerHelper::fewerElementsVectorShuffle(), findMemType(), foldGuardedFunnelShift(), foldIdentityPaddedShuffles(), foldSwitchToSelect(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), llvm::X86TTIImpl::getArithmeticReductionCost(), llvm::ARMTTIImpl::getArithmeticReductionCost(), getContainerForFixedLengthVector(), getInputSegmentList(), llvm::BasicTTIImplBase< T >::getIntrinsicInstrCost(), getMaxShiftAmount(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::ARMTTIImpl::getMinMaxReductionCost(), llvm::X86TTIImpl::getMinMaxReductionCost(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), llvm::AArch64TTIImpl::getPopcntSupport(), llvm::GCNTTIImpl::getPopcntSupport(), llvm::LoongArchTTIImpl::getPopcntSupport(), llvm::PPCTTIImpl::getPopcntSupport(), llvm::RISCVTTIImpl::getPopcntSupport(), llvm::SPIRVTTIImpl::getPopcntSupport(), llvm::SystemZTTIImpl::getPopcntSupport(), llvm::X86TTIImpl::getPopcntSupport(), llvm::WebAssemblyTTIImpl::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::TargetLoweringBase::getTypeConversion(), llvm::TargetLoweringBase::getVectorTypeBreakdown(), llvm::X86TargetLowering::getVectorTypeBreakdownForCallingConv(), getVectorTypeBreakdownMVT(), getX86MaskVec(), handleMaskRegisterForCallingConv(), 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::X86TTIImpl::isLegalNTStore(), llvm::TargetTransformInfoImplBase::isLegalNTStore(), llvm::ARMTargetLowering::isLegalT2ScaledAddressingMode(), isRepeatedConcatMask(), llvm::PPC::isSplatShuffleMask(), llvm::ShuffleVectorInst::isTransposeMask(), isTypeLegalForLookupTable(), llvm::RISCVVType::isValidLMUL(), llvm::HexagonInstrInfo::isValidOffset(), llvm::RISCVVType::isValidSEW(), llvm::AMDGPULegalizerInfo::legalizeSBufferLoad(), lowerBuildVectorOfConstants(), 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(), matchAddReduction(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), matchPMADDWD(), matchPMADDWD_2(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::rdf::NodeAllocator::NodeAllocator(), llvm::LegalityPredicates::numElementsNotPow2(), parseAlignment(), 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< IntTy >::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().
Return true if the argument is a power of two > 0 (64 bit edition.)
Definition at line 298 of file MathExtras.h.
References has_single_bit().
Referenced by llvm::Align::Align(), CheckTy0Ty1MemSizeAlign(), combine_CC(), combineMul(), combineMulSpecial(), computeKnownBitsFromContext(), llvm::jitlink::InProcessMemoryManager::Create(), createVariablePermute(), CTLog2(), llvm::PPCTargetLowering::decomposeMulByConstant(), expandMul(), llvm::FastISel::fastEmit_ri_(), FindSingleBitChange(), foldLoadsRecursive(), generateInstSeqImpl(), getHistogramCost(), 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(), isUnalignedMemmoryAccess(), llvm::MipsLegalizerInfo::legalizeCustom(), LowerAndToBT(), LowerAndToBTST(), llvm::PPCTargetLowering::LowerAsmOperandForConstraint(), lowerBuildVectorOfConstants(), LowerCONCAT_VECTORSvXi1(), llvm::RISCVTargetLowering::LowerOperation(), LowerSaturatingConditional(), matchRotateSub(), 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(), and llvm::InstCombinerImpl::visitCallInst().
bool llvm::isPrefixedHexStyle | ( | HexPrintStyle | S | ) |
Definition at line 250 of file NativeFormatting.cpp.
Referenced by llvm::support::detail::HelperFunctions::consumeNumHexDigits().
Returns whether opcode Opc
is a pre-isel generic floating-point opcode, having only floating-point operands.
Definition at line 1702 of file Utils.cpp.
Referenced by llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), isFloatingPointOpcodeDef(), and isFloatingPointOpcodeUse().
Check whether the given Opcode is a generic opcode that is not supposed to appear after ISel.
Definition at line 30 of file TargetOpcodes.h.
Referenced by llvm::GenericMachineInstr::classof(), constrainSelectedInstRegOperands(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::M68kRegisterBankInfo::getInstrMapping(), llvm::PPCRegisterBankInfo::getInstrMapping(), llvm::RISCVRegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::Legalizer::legalizeMachineFunction(), and machineFunctionIsIllegal().
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().
bool llvm::isPresplitCoroSuspendExitEdge | ( | const BasicBlock & | Src, |
const BasicBlock & | Dest | ||
) |
Definition at line 1919 of file BasicBlockUtils.cpp.
References assert(), llvm::BasicBlock::getParent(), and Intr.
|
static |
Definition at line 159 of file LoopBoundSplit.cpp.
References assert(), llvm::Value::getType(), llvm::ScalarEvolution::isSCEVable(), LHS, llvm::PatternMatch::m_BasicBlock(), llvm::PatternMatch::m_Br(), llvm::PatternMatch::m_ICmp(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), and RHS.
Referenced by canSplitLoopBound(), and findSplitCandidate().
|
static |
Definition at line 222 of file LoopBoundSplit.cpp.
References llvm::BasicBlock::getSingleSuccessor(), and llvm::BranchInst::getSuccessor().
Referenced by splitLoopBound().
Definition at line 713 of file AArch64InstrInfo.h.
|
inlinestatic |
Definition at line 734 of file ARMBaseInstrInfo.h.
Referenced by tryFoldSPUpdateIntoPushPop().
isRawBitcode - Return true if the given bytes are the magic bytes for raw LLVM IR bitcode (without a wrapper).
Definition at line 252 of file BitcodeReader.h.
Referenced by isBitcode().
bool llvm::isReachedBefore | ( | const Instruction * | I0, |
const Instruction * | I1, | ||
const DominatorTree * | DT, | ||
const PostDominatorTree * | PDT | ||
) |
Definition at line 482 of file CodeMoverUtils.cpp.
References llvm::DominatorTree::dominates(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), and nonStrictlyPostDominate().
Referenced by isSafeToMoveBefore().
|
static |
Definition at line 494 of file RuntimeDyld.cpp.
References assert(), llvm::object::ELFSectionRef::getFlags(), llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA, llvm::COFF::IMAGE_SCN_MEM_READ, llvm::COFF::IMAGE_SCN_MEM_WRITE, llvm::ELF::SHF_EXECINSTR, and llvm::ELF::SHF_WRITE.
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize(), and llvm::RuntimeDyldImpl::emitSection().
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(), and F.
Referenced by inferNonMandatoryLibFuncAttrs().
|
inline |
Definition at line 51 of file ModRef.h.
Referenced by llvm::AliasSetTracker::add(), determinePointerAccessAttrs(), llvm::AAResults::getModRefInfo(), and llvm::MemoryEffectsBase< LocationEnum >::onlyWritesMemory().
|
inline |
Definition at line 133 of file AtomicOrdering.h.
References isAtLeastOrStrongerThan(), and Release.
Referenced by llvm::TargetLoweringBase::emitLeadingFence(), llvm::PPCTargetLowering::emitLeadingFence(), llvm::RISCVTargetLowering::emitLeadingFence(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), and llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad().
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().
|
static |
Definition at line 471 of file RuntimeDyld.cpp.
References assert(), llvm::object::coff_section::Characteristics, llvm::object::ELFSectionRef::getFlags(), llvm::COFF::IMAGE_SCN_LNK_INFO, llvm::COFF::IMAGE_SCN_MEM_DISCARDABLE, llvm::ELF::SHF_ALLOC, llvm::object::coff_section::SizeOfRawData, and llvm::object::coff_section::VirtualSize.
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize(), and llvm::RuntimeDyldImpl::emitSection().
|
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 6702 of file AArch64PerfectShuffle.h.
References assert(), and BlockSize.
Referenced by llvm::AArch64TargetLowering::isShuffleMaskLegal().
Definition at line 162 of file LanaiInstrInfo.h.
Referenced by llvm::LanaiRegisterInfo::eliminateFrameIndex(), and PostOperandDecodeAdjust().
Definition at line 172 of file LanaiInstrInfo.h.
Referenced by PostOperandDecodeAdjust().
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().
Definition at line 100 of file PPCMCTargetDesc.h.
References countl_zero(), and isShiftedMask_64().
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, llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by analyzeGlobalAux(), collectSRATypes(), eliminateAvailableExternally(), llvm::GlobalDCEPass::run(), and SRAGlobal().
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 386 of file Loads.cpp.
References AreEquivalentAddressValues(), DL, llvm::TypeSize::getFixed(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), isDereferenceableAndAlignedPointer(), Size, llvm::Value::stripPointerCasts(), and suppressSpeculativeLoadForSanitizers().
Referenced by canMoveAboveCall(), isSafeLoadOfSelectToSpeculate(), isSafePHIToSpeculate(), isSafeToLoadUnconditionally(), and llvm::InstCombinerImpl::visitLoadInst().
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 467 of file Loads.cpp.
References DL, llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), isSafeToLoadUnconditionally(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isScalable(), and Size.
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().
bool llvm::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
.
Definition at line 312 of file CodeMoverUtils.cpp.
References any_of(), collectInstructionsInBetween(), llvm::DependenceInfo::depends(), llvm::DominatorTree::dominates(), domTreeLevelBefore(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), I, if(), llvm::SmallPtrSetImpl< PtrType >::insert(), isControlFlowEquivalent(), isReachedBefore(), isSafeToSpeculativelyExecute(), reportInvalidCandidate(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::updateDFSNumbers().
Referenced by isSafeToMoveBefore(), moveInstructionsToTheBeginning(), and moveInstructionsToTheEnd().
|
inline |
Definition at line 834 of file ValueTracking.h.
References I, and isSafeToSpeculativelyExecute().
bool llvm::isSafeToSpeculativelyExecute | ( | const Instruction * | I, |
const Instruction * | CtxI = nullptr , |
||
AssumptionCache * | AC = nullptr , |
||
const DominatorTree * | DT = nullptr , |
||
const TargetLibraryInfo * | TLI = nullptr , |
||
bool | UseVariableInfo = 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.
This method can return true for instructions that read memory; for such instructions, moving them may change the resulting value.
Definition at line 7043 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().
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 |
||
) |
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:
Definition at line 7053 of file ValueTracking.cpp.
References assert(), DL, 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().
|
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 847 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().
bool llvm::isSafeToUnrollAndJam | ( | Loop * | L, |
ScalarEvolution & | SE, | ||
DominatorTree & | DT, | ||
DependenceInfo & | DI, | ||
LoopInfo & | LI | ||
) |
Definition at line 859 of file LoopUnrollAndJam.cpp.
References any_of(), llvm::SimpleLoopSafetyInfo::anyBlockMayThrow(), checkDependencies(), llvm::SimpleLoopSafetyInfo::computeLoopSafetyInfo(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), dbgs(), getInnerMostLoop(), I, if(), isEligibleLoopForm(), LLVM_DEBUG, partitionOuterLoopBlocks(), processHeaderPhiOperands(), and size().
Referenced by tryToUnrollAndJamLoop().
Definition at line 200 of file NVPTXUtilities.cpp.
References argHasNVVMAnnotation(), and globalHasNVVMAnnotation().
|
inlinestatic |
Definition at line 152 of file X86InstrInfo.h.
References llvm::MachineOperand::getImm(), and llvm::MachineOperand::isImm().
Referenced by isLeaMem().
|
inline |
Definition at line 951 of file ARMBaseInstrInfo.h.
References llvm::IntrinsicInst::getIntrinsicID().
Referenced by isGatherScatter().
|
inline |
Returns true if this personality uses scope-style EH IR instructions: catchswitch, catchpad/ret, and cleanuppad/ret.
Definition at line 80 of file EHPersonalities.h.
References CoreCLR, llvm_unreachable, MSVC_CXX, MSVC_TableSEH, MSVC_X86SEH, and Wasm_CXX.
Referenced by llvm::LoopSafetyInfo::computeBlockColors(), InlineFunction(), isUsingScopeBasedEH(), and llvm::EscapeEnumerator::Next().
|
inlinestatic |
Definition at line 772 of file ARMBaseInstrInfo.h.
References MI.
Referenced by insertSEHRange(), and llvm::ARMBaseInstrInfo::isSchedulingBoundary().
Definition at line 128 of file PseudoProbe.h.
References Sentinel.
Referenced by llvm::MCPseudoProbeDecoder::countRecords(), llvm::MCPseudoProbeInlineTree::emit(), and llvm::MCPseudoProbe::emit().
Checks if a signed integer is an N bit number shifted left by S.
Definition at line 188 of file MathExtras.h.
References N.
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 281 of file MathExtras.h.
References isMask_32().
Referenced by CombineANDShift(), llvm::PPCTTIImpl::getIntImmCostInst(), llvm::ARM::isBitFieldInvertedMask(), isMImm32Val(), isRunOfOnes(), isShiftedMask(), and isShiftedMask_32().
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 307 of file MathExtras.h.
References countr_zero(), isShiftedMask_32(), and popcount().
Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.)
Definition at line 287 of file MathExtras.h.
References isMask_64().
Referenced by canUseShiftPair(), foldMaskAndShiftToScale(), foldMaskedShiftToBEXTR(), llvm::PPCTTIImpl::getIntImmCostInst(), isBitfieldPositioningOp(), isBitfieldPositioningOpFromAnd(), isBitfieldPositioningOpFromShl(), isMImmVal(), isRunOfOnes64(), llvm::SystemZInstrInfo::isRxSBGMask(), llvm::APInt::isShiftedMask(), isShiftedMask(), isShiftedMask_64(), isWorthFoldingIntoOrrWithShift(), optimizeLogicalImm(), performANDCombine(), performORCombine(), performSHLCombine(), performSRLCombine(), llvm::AArch64_AM::processLogicalImmediate(), llvm::RISCVDAGToDAGISel::Select(), llvm::RISCVDAGToDAGISel::selectSHXADD_UWOp(), and llvm::RISCVDAGToDAGISel::selectSHXADDOp().
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 320 of file MathExtras.h.
References countr_zero(), isShiftedMask_64(), and popcount().
Checks if a unsigned integer is an N bit number shifted left by S.
Definition at line 212 of file MathExtras.h.
References N.
bool llvm::isSignBitCheck | ( | ICmpInst::Predicate | Pred, |
const APInt & | RHS, | ||
bool & | TrueIfSigned | ||
) |
Given an exploded icmp instruction, return true if the comparison only checks the sign bit.
If it only checks the sign bit, set TrueIfSigned if the result of the comparison is true when the input value is signed.
Definition at line 4481 of file ValueTracking.cpp.
References 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 RHS.
Referenced by llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(), computeKnownFPClassFromCond(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpBitCast(), llvm::InstCombinerImpl::foldICmpOrConstant(), llvm::InstCombinerImpl::foldICmpShlConstant(), llvm::InstCombinerImpl::foldICmpShrConstant(), llvm::InstCombinerImpl::foldICmpTruncConstant(), llvm::InstCombinerImpl::foldICmpWithDominatingICmp(), llvm::InstCombinerImpl::foldICmpXorConstant(), getDemandedBitsLHSMask(), and simplifyICmpWithConstant().
Definition at line 436 of file SPIRVUtils.cpp.
References hasBuiltinTypePrefix(), and isTypedPointerWrapper().
Referenced by llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType().
Definition at line 41 of file PassInstrumentation.cpp.
References any_of(), llvm::StringRef::find(), llvm::StringRef::npos, and llvm::StringRef::substr().
Referenced by isIgnoredPass(), llvm::PrintPassInstrumentation::registerCallbacks(), llvm::FunctionToLoopPassAdaptor::run(), and shouldIgnorePass().
|
inlinestatic |
Definition at line 721 of file ARMBaseInstrInfo.h.
Referenced by llvm::ARMBaseInstrInfo::analyzeBranch().
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 327 of file VectorUtils.cpp.
References all_equal(), assert(), llvm::CallingConv::C, Depth, isSplatValue(), llvm::PatternMatch::m_BinOp(), llvm::PatternMatch::m_Select(), llvm::PatternMatch::m_Value(), llvm::PatternMatch::match(), MaxAnalysisRecursionDepth, X, and Y.
Referenced by llvm::InstCombinerImpl::foldVectorBinop(), foldVectorCmp(), instCombineSVELast(), isSplatValue(), scalarizeMaskedLoad(), scalarizeMaskedStore(), simplifyUnaryIntrinsic(), and llvm::InstCombinerImpl::visitCallInst().
Definition at line 148 of file LanaiInstrInfo.h.
Referenced by llvm::LanaiRegisterInfo::eliminateFrameIndex(), and PostOperandDecodeAdjust().
bool llvm::isSpvIntrinsic | ( | const MachineInstr & | MI, |
Intrinsic::ID | IntrinsicID | ||
) |
Definition at line 332 of file SPIRVUtils.cpp.
References MI.
Referenced by addConstantsToTrack(), buildEnqueueKernel(), buildNDRange(), cleanupHelperInstructions(), findAssignTypeInstr(), foldConstantsIntoIntrinsics(), generateAssignInstrs(), getBlockStructInstr(), getBlockStructType(), getConstFromIntrinsic(), getMachineInstrType(), insertBitcasts(), insertInlineAsm(), insertInlineAsmProcess(), insertSpirvDecorations(), isImplicitFallthrough(), processBlockAddr(), and processSwitchesConstants().
Definition at line 790 of file SPIRVUtils.cpp.
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().
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.
|
inline |
Returns true if ao is stronger than other as defined by the AtomicOrdering lattice, which is based on C++'s definition.
Definition at line 91 of file AtomicOrdering.h.
References lookup(), and Other.
Referenced by llvm::GIMatchTableExecutor::executeMatchTable(), getMergedAtomicOrdering(), llvm::AAResults::getModRefInfo(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), isStrongerThanMonotonic(), and isStrongerThanUnordered().
|
inline |
Definition at line 125 of file AtomicOrdering.h.
References isStrongerThan(), and Monotonic.
Referenced by llvm::AliasSetTracker::add(), llvm::AAResults::getModRefInfo(), isWorthFoldingADDlow(), LowerATOMIC_LOAD_STORE(), and LowerAtomicLoadStore().
|
inline |
Definition at line 121 of file AtomicOrdering.h.
References isStrongerThan(), and Unordered.
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().
|
inlinestatic |
Definition at line 739 of file ARMBaseInstrInfo.h.
Definition at line 198 of file NVPTXUtilities.cpp.
References globalHasNVVMAnnotation().
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().
Definition at line 196 of file NVPTXUtilities.cpp.
References globalHasNVVMAnnotation().
|
static |
Definition at line 25 of file RuntimeDyldCOFFThumb.h.
References llvm::COFF::IMAGE_SCN_MEM_16BIT, logAllUnhandledErrors(), OS, report_fatal_error(), llvm::object::SymbolRef::ST_Function, and llvm::Expected< T >::takeError().
Referenced by llvm::RuntimeDyldCOFFThumb::processRelocationRef().
bool llvm::isTimeTraceVerbose | ( | ) |
Definition at line 386 of file TimeProfiler.cpp.
References getTimeTraceProfilerInstance(), and llvm::TimeTraceProfiler::TimeTraceVerbose.
|
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 761 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().
|
static |
Definition at line 526 of file RuntimeDyld.cpp.
References llvm::object::ELFSectionRef::getFlags(), and llvm::ELF::SHF_TLS.
Referenced by llvm::RuntimeDyldImpl::computeTotalAllocSize(), and llvm::RuntimeDyldImpl::emitSection().
Definition at line 411 of file DWARFLinker.cpp.
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.
Referenced by eraseInstrs(), llvm::Legalizer::legalizeMachineFunction(), and llvm::InstructionSelect::selectInstr().
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 seperate function.
Definition at line 116 of file VectorUtils.cpp.
References llvm::Intrinsic::isTargetIntrinsic(), llvm::TargetTransformInfo::isTargetIntrinsicTriviallyScalarizable(), and 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 generateKeySubkey(), getSameOpcode(), getVectorIntrinsicIDForCall(), isNotCrossLaneOperation(), and isTriviallyScalarizable().
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 6686 of file AArch64PerfectShuffle.h.
Referenced by llvm::AArch64TargetLowering::isShuffleMaskLegal().
Definition at line 246 of file SPIRVUtils.h.
References llvm::Type::TypedPointerTyID.
Referenced by getArgSPIRVType(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), and isPointerTy().
|
inline |
Definition at line 298 of file SPIRVUtils.h.
References llvm::TargetExtType::getName(), llvm::TargetExtType::getNumIntParameters(), llvm::TargetExtType::getNumTypeParameters(), and TYPED_PTR_TARGET_EXT_NAME.
Referenced by applyWrappers(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), getPointeeType(), isPointerTyOrWrapper(), isSpecialOpaqueType(), isUntypedEquivalentToTyExt(), and typeToAddressSpace().
Checks if an unsigned integer fits into the given bit width.
Definition at line 195 of file MathExtras.h.
References N.
Checks if an unsigned integer fits into the given (dynamic) bit width.
Definition at line 257 of file MathExtras.h.
References maxUIntN(), and N.
Referenced by adjustFixupValue(), llvm::APInt::APInt(), llvm::SelectionDAG::computeKnownBits(), llvm::MCStreamer::emitIntValue(), llvm::MCObjectStreamer::emitValueImpl(), llvm::MCDwarfFrameEmitter::encodeAdvanceLoc(), getElementIndex(), isExtendedBUILD_VECTOR(), isSafeTruncation(), llvm::ConstantInt::isValueValidForType(), lowerObjectSizeCall(), llvm::LoongArchAsmBackend::relaxDwarfCFA(), llvm::RISCVAsmBackend::relaxDwarfCFA(), llvm::RISCVDAGToDAGISel::selectVSplatUimm(), adjust::unsigned_width(), llvm::ObjectSizeOffsetVisitor::visitAllocaInst(), and llvm::SelectionDAGBuilder::visitBitTestHeader().
|
inlinestatic |
Definition at line 682 of file AArch64InstrInfo.h.
Referenced by llvm::ARCInstrInfo::analyzeBranch(), llvm::AArch64InstrInfo::analyzeBranch(), llvm::ARMBaseInstrInfo::analyzeBranch(), llvm::SparcInstrInfo::analyzeBranch(), llvm::VEInstrInfo::analyzeBranch(), llvm::ARMBlockPlacement::moveBasicBlock(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::AArch64InstrInfo::removeBranch(), llvm::ARCInstrInfo::removeBranch(), llvm::ARMBaseInstrInfo::removeBranch(), llvm::SparcInstrInfo::removeBranch(), and llvm::VEInstrInfo::removeBranch().
|
inlinestatic |
Definition at line 575 of file ARMBaseInstrInfo.h.
Definition at line 341 of file LoopVectorizationLegality.cpp.
References assert(), llvm::LoopBase< BlockT, LoopT >::contains(), dbgs(), llvm::Loop::getCanonicalInductionVariable(), llvm::LoopBase< BlockT, LoopT >::getLoopLatch(), llvm::BasicBlock::getTerminator(), llvm::Loop::isLoopInvariant(), IV, and LLVM_DEBUG.
Referenced by isUniformLoopNest().
Definition at line 386 of file LoopVectorizationLegality.cpp.
References isUniformLoop(), and isUniformLoopNest().
Referenced by isUniformLoopNest().
|
inline |
Definition at line 104 of file VectorTypeUtils.h.
References llvm::StructType::isLiteral(), and llvm::StructType::isPacked().
Referenced by canVectorizeStructTy(), isVectorizedStructTy(), toScalarizedStructTy(), and toVectorizedStructTy().
Definition at line 336 of file SPIRVUtils.h.
References llvm::Type::getContext(), llvm::Type::getInt8Ty(), isTypedPointerWrapper(), and isUntypedPointerTy().
Referenced by isEquivalentTypes().
Definition at line 251 of file SPIRVUtils.h.
References llvm::Type::PointerTyID.
Referenced by getAtomicElemTy(), isPointerTy(), isUntypedEquivalentToTyExt(), llvm::SPIRVCallLowering::lowerCall(), llvm::SPIRVCallLowering::lowerFormalArguments(), toTypedFunPointer(), and toTypedPointer().
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 1270 of file SLPVectorizer.cpp.
References all_of(), I, and UsesLimit.
Referenced by doesNotNeedToBeScheduled(), and doesNotNeedToSchedule().
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 6659 of file AArch64PerfectShuffle.h.
Referenced by llvm::AArch64TTIImpl::getShuffleCost(), and llvm::AArch64TargetLowering::isShuffleMaskLegal().
Definition at line 386 of file NVPTXUtilities.cpp.
Referenced by isVectorElementTypeUpsized(), llvm::NVPTXTargetLowering::LowerFormalArguments(), PerformBUILD_VECTORCombine(), and PerformEXTRACTCombine().
Definition at line 24 of file ARMFeatures.h.
References IsCPSRDead().
Referenced by llvm::ARMBaseInstrInfo::isPredicable().
bool llvm::isValidAddrOffset | ( | int | Scale, |
int64_t | OffsetVal | ||
) |
Definition at line 17 of file XtensaUtils.cpp.
Referenced by llvm::XtensaRegisterInfo::eliminateFrameIndex(), and isValidAddrOffset().
bool llvm::isValidAddrOffset | ( | MachineInstr & | MI, |
int64_t | Offset | ||
) |
Definition at line 36 of file XtensaUtils.cpp.
References isValidAddrOffset(), MI, and Offset.
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().
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 509 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(), isKnownNonNullFromDominatingCondition(), isKnownNonZeroFromAssume(), isKnownToBeAPowerOfTwo(), llvm::AlignmentFromAssumptionsPass::processAssumption(), simplifyICmpWithDominatingAssume(), and llvm::InstCombinerImpl::visitCallInst().
Definition at line 75 of file AtomicOrdering.h.
References I, Int, NotAtomic, and SequentiallyConsistent.
Referenced by upgradeAMDGCNIntrinsicCall().
|
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 752 of file ARMBaseInstrInfo.h.
Referenced by DecodeCoprocessor().
Definition at line 48 of file MCLinkerOptimizationHint.h.
References MCLOH_AdrpAdrp, and MCLOH_AdrpLdrGot.
Referenced by llvm::MCLOHDirective::MCLOHDirective(), and llvm::AArch64FunctionInfo::MILOHDirective::MILOHDirective().
Definition at line 99 of file ProfDataUtils.cpp.
Referenced by hasCountTypeMD().
|
inlinestatic |
Definition at line 58 of file MVETailPredUtils.h.
References MI.
Referenced by llvm::ARMBaseInstrInfo::analyzeLoopForPipelining().
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 162 of file VectorUtils.cpp.
References assert(), llvm::Intrinsic::isTargetIntrinsic(), llvm::TargetTransformInfo::isTargetIntrinsicWithOverloadTypeAtArg(), llvm::VPCastIntrinsic::isVPCast(), and llvm::Intrinsic::not_intrinsic.
Referenced by llvm::VPWidenIntrinsicRecipe::execute(), and replaceWithCallToVeclib().
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 134 of file VectorUtils.cpp.
References llvm::Intrinsic::isTargetIntrinsic(), and llvm::TargetTransformInfo::isTargetIntrinsicWithScalarOpAtArg().
Referenced by buildIntrinsicArgTypes(), llvm::VPWidenIntrinsicRecipe::execute(), generateNewInstTree(), and replaceWithCallToVeclib().
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 192 of file VectorUtils.cpp.
References llvm::Intrinsic::isTargetIntrinsic(), and llvm::TargetTransformInfo::isTargetIntrinsicWithStructReturnOverloadAtField().
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(), llvm::StructType::elements(), isUnpackedStructLiteral(), and llvm::Type::isVectorTy().
Referenced by isVectorizedTy().
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 72 of file VectorTypeUtils.h.
References isVectorizedStructTy(), and llvm::Type::isVectorTy().
Referenced by getVectorizedTypeVF().
|
inlinestatic |
Definition at line 46 of file RISCVVectorMaskDAGMutation.cpp.
References llvm::RISCV::getRVVMCOpcode(), and MI.
Referenced by llvm::RISCVVectorMaskDAGMutation::apply().
|
inlinestatic |
Definition at line 582 of file ARMBaseInstrInfo.h.
Referenced by recomputeVPTBlockMask().
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 349 of file ARMTargetTransformInfo.h.
References assert(), BlockSize, and llvm::EVT::getScalarSizeInBits().
Referenced by llvm::ARMTTIImpl::getShuffleCost(), llvm::ARMTargetLowering::isShuffleMaskLegal(), and LowerVECTOR_SHUFFLE().
Definition at line 146 of file VECustomDAG.cpp.
Referenced by getAVLPos(), getMaskPos(), and llvm::VETargetLowering::lowerToVVP().
Definition at line 126 of file VECustomDAG.cpp.
References llvm::VEISD::VEC_BROADCAST.
Referenced by llvm::VETargetLowering::getCustomOperationAction(), and llvm::VETargetLowering::legalizePackedAVL().
Definition at line 156 of file VECustomDAG.cpp.
Referenced by getIdiomaticVectorType(), and llvm::VETargetLowering::lowerToVVP().
Definition at line 136 of file VECustomDAG.cpp.
Referenced by llvm::VETargetLowering::lowerToVVP().
|
inlinestatic |
Definition at line 76 of file MVETailPredUtils.h.
References MI.
Referenced by llvm::ARMBlockPlacement::fixBackwardsWLS(), getWhileLoopStartTargetBB(), INITIALIZE_PASS(), and isLoopStart().
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().
Returns true iff V
has semantics of llvm.experimental.widenable.condition call.
Definition at line 22 of file GuardUtils.cpp.
References llvm::PatternMatch::match().
Referenced by extractWidenableCondition(), and parseWidenableGuard().
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 889 of file AliasAnalysis.cpp.
References A, and isNoAliasCall().
Referenced by isSafeToSpeculateStore(), and promoteLoopAccessesToScalars().
|
static |
Definition at line 512 of file RuntimeDyld.cpp.
References llvm::object::ELFSectionRef::getType(), llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA, llvm::MachO::S_GB_ZEROFILL, llvm::MachO::S_ZEROFILL, and llvm::ELF::SHT_NOBITS.
Referenced by llvm::RuntimeDyldImpl::emitSection().
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 6626 of file AArch64PerfectShuffle.h.
References Idx.
Referenced by llvm::AArch64TTIImpl::getShuffleCost(), and llvm::AArch64TargetLowering::isShuffleMaskLegal().
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().
Referenced by llvm::GCOVFunction::getName(), getOclOrSpirvBuiltinDemangledName(), and nonMicrosoftDemangle().
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") | |||
) |
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") | |||
) |
llvm::iterator_range | ( | Container && | ) | -> iterator_range< llvm::detail::IterOfRange< Container > > |
|
static |
Definition at line 139 of file RTDyldMemoryManager.cpp.
Referenced by llvm::RTDyldMemoryManager::getSymbolAddressInProcess().
void llvm::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 | ||
) |
Referenced by llvm::orc::RTDyldObjectLinkingLayer::emit().
void llvm::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 | ||
) |
Definition at line 1459 of file RuntimeDyld.cpp.
References llvm::RuntimeDyldImpl::finalizeAsync(), llvm::RuntimeDyld::getErrorString(), llvm::RuntimeDyld::getSymbolTable(), llvm::RuntimeDyld::hasError(), inconvertibleErrorCode(), Info, llvm::RuntimeDyld::loadObject(), and llvm::RuntimeDyld::setProcessAllSections().
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 61 of file JITSymbol.h.
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 50 of file JITSymbol.h.
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 438 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::orc::rt_bootstrap::SimpleExecutorMemoryManager::deallocate(), llvm::jitlink::InProcessMemoryManager::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::pdb::NamedStreamMap::load(), llvm::orc::Platform::lookupInitSymbols(), llvm::orc::Platform::lookupInitSymbolsAsync(), llvm::Pattern::match(), llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyEmitted(), llvm::orc::LinkGraphLinkingLayer::JITLinkCtx::notifyFailed(), llvm::orc::EHFrameRegistrationPlugin::notifyRemovingResources(), parallelForEachError(), llvm::DWARFDebugLine::Prologue::parse(), llvm::xray::FileBasedRecordProducer::produce(), readGSIHashBuckets(), readGSIHashRecords(), llvm::pdb::readSparseBitVector(), llvm::orc::InProcessMemoryMapper::release(), llvm::orc::SharedMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::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().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::lcm | ( | const DynamicAPInt & | A, |
const DynamicAPInt & | B | ||
) |
Returns the least common multiple of A and B.
Definition at line 400 of file DynamicAPInt.h.
|
inline |
left_justify - append spaces after string so total output is Width
characters.
If Str
is larger that Width
, full string is written with no padding.
Definition at line 146 of file Format.h.
References llvm::FormattedString::JustifyLeft.
Referenced by llvm::DWARFUnitIndex::dump(), llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), llvm::dxil::UAVResource::print(), llvm::dxil::ConstantBuffer::print(), llvm::DebugCounter::print(), llvm::AArch64::printEnabledExtensions(), PrintExtension(), llvm::AArch64::PrintSupportedExtensions(), and llvm::ARM::PrintSupportedExtensions().
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().
Definition at line 316 of file LibDriver.cpp.
References appendFile(), computeArchiveRelativePath(), llvm::StringSet< AllocatorTy >::contains(), doList(), errorCodeToError(), errorToErrorCode(), errs(), llvm::cl::ExpandResponseFiles(), fatalOpenError(), findInputFile(), llvm::opt::Arg::getAsString(), getDefaultOutputPath(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), getMachineType(), getSearchPaths(), llvm::opt::Arg::getValue(), handleAllErrors(), llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, llvm::StringSet< AllocatorTy >::insert(), llvm::sys::path::is_relative(), llvm::COFF::isArm64EC(), llvm::object::Archive::K_COFF, llvm::object::Archive::K_GNU, llvm::ErrorInfoBase::message(), openFile(), outs(), llvm::object::parseCOFFModuleDefinition(), llvm::StringSaver::save(), llvm::ArrayRef< T >::slice(), llvm::Expected< T >::takeError(), llvm::cl::TokenizeWindowsCommandLine(), writeArchive(), and llvm::object::writeImportLibrary().
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().
void llvm::linkErlangGCPrinter | ( | ) |
Creates an erlang-compatible metadata printer.
Definition at line 117 of file ErlangGCPrinter.cpp.
void llvm::linkOcamlGCPrinter | ( | ) |
Creates an ocaml-compatible metadata printer.
Definition at line 49 of file OcamlGCPrinter.cpp.
lintFunction - Check a function for errors, printing messages on stderr.
Definition at line 763 of file Lint.cpp.
References assert(), F, FAM, llvm::AAManager::registerFunctionAnalysis(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::registerPass(), and llvm::LintPass::run().
Referenced by lintModule().
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 783 of file Lint.cpp.
References F, and lintFunction().
llvm::LLVM_DECLARE_ENUM_AS_BITMASK | ( | decltype(SDNodeFlags::None) | , |
SDNodeFlags::SameSign | |||
) |
llvm::LLVM_DECLARE_ENUM_AS_BITMASK | ( | FPClassTest | , |
fcPosInf | |||
) |
llvm::LLVM_DECLARE_ENUM_AS_BITMASK | ( | TailFoldingOpts | , |
(long) TailFoldingOpts::Reverse | |||
) |
llvm::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE | ( | ) |
|
constexpr |
Returns true if LLVM is compiled with support for multi-threading, and false otherwise.
Definition at line 52 of file Threading.h.
Referenced by LLVMIsMultithreaded(), llvm::sys::SmartMutex< mt_only >::lock(), llvm::sys::SmartRWMutex< mt_only >::lock(), llvm::sys::SmartRWMutex< mt_only >::lock_shared(), llvm::ManagedStaticBase::RegisterManagedStatic(), llvm::sys::SmartMutex< mt_only >::try_lock(), llvm::sys::SmartMutex< mt_only >::unlock(), llvm::sys::SmartRWMutex< mt_only >::unlock(), and llvm::sys::SmartRWMutex< mt_only >::unlock_shared().
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 llvm::ManagedStaticBase::destroy(), and StaticList.
Referenced by LLVMShutdown(), llvm::InitLLVM::~InitLLVM(), and llvm::llvm_shutdown_obj::~llvm_shutdown_obj().
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 203 of file ErrorHandling.cpp.
References dbgs(), and file().
Referenced by llvm::LoopVectorizationCostModel::getInstructionCost(), and rewriteMemOpOfSelect().
LLVM_EXTERNAL_VISIBILITY void llvm::LLVMInitializeAVRTarget | ( | ) |
Definition at line 90 of file AVRTargetMachine.cpp.
References llvm::PassRegistry::getPassRegistry(), getTheAVRTarget(), initializeAVRDAGToDAGISelLegacyPass(), initializeAVRExpandPseudoPass(), initializeAVRShiftExpandPass(), and X.
|
inlinestatic |
Definition at line 178 of file Sparc.h.
Referenced by replaceFI().
Return the low 32 bits of a 64 bit value.
Definition at line 161 of file MathExtras.h.
Referenced by llvm::AMDGPU::AMDGPUMCKernelCodeT::EmitKernelCodeT(), extractRotateInfo(), extractRsrcPtr(), findContiguousZerosAtLeast(), llvm::SIInstrInfo::foldImmediate(), llvm::RISCVMatInt::generateTwoRegInstSeq(), getConstantZext32Val(), llvm::AMDGPU::AMDGPUMCKernelCodeT::initDefault(), KnuthDiv(), LowerBUILD_VECTORvXi1(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), selectI64Imm(), selectI64ImmDirect(), selectI64ImmDirectPrefix(), and tryFoldMADwithSRL().
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 3050 of file APInt.cpp.
References assert(), and llvm::sys::IsLittleEndianHost.
Referenced by llvm::ExecutionEngine::LoadValueFromMemory().
|
static |
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) {} |
||
) |
Create a local file system cache which uses the given cache name, temporary file prefix, cache directory and file callback.
This function does not immediately create the cache directory if it does not yet exist; this is done lazily the first time a file is added. The cache name appears in error messages for errors during caching. The temporary file prefix is used in the temporary file naming scheme used when writing files atomically.
Definition at line 29 of file Caching.cpp.
References llvm::sys::path::append(), llvm::sys::fs::closeFile(), consumeError(), llvm::sys::fs::convertFDToNativeFile(), llvm::sys::fs::TempFile::create(), llvm::sys::fs::create_directories(), createStringError(), llvm::sys::fs::TempFile::discard(), E, errorCodeToError(), errorToErrorCode(), llvm::sys::fs::TempFile::FD, llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getMemBufferCopy(), llvm::MemoryBuffer::getOpenFile(), handleErrors(), llvm::sys::fs::TempFile::keep(), llvm::sys::fs::OF_UpdateAtime, llvm::sys::fs::openNativeFileForRead(), OS, llvm::sys::fs::owner_read, llvm::sys::fs::owner_write, report_fatal_error(), llvm::Twine::str(), llvm::Error::success(), llvm::Expected< T >::takeError(), llvm::sys::fs::TempFile::TmpName, toString(), and llvm::Twine::toVector().
Referenced by getCachedOrDownloadArtifact(), and llvm::cgdata::StreamCacheData::StreamCacheData().
Returns the log2 of the alignment.
Definition at line 208 of file Alignment.h.
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingDynStackAlloc(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), llvm::GISelKnownBits::computeKnownBitsForAlignment(), llvm::TargetLowering::computeKnownBitsForFrameIndex(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), ConstantFoldBinaryInstruction(), emitAligningInstructions(), llvm::MCELFStreamer::emitBundleAlignMode(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::CSKYFrameLowering::emitPrologue(), llvm::LoongArchFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::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(), rewriteP2Align(), llvm::LoongArchDAGToDAGISel::selectVSplatUimmInvPow2(), llvm::LoongArchDAGToDAGISel::selectVSplatUimmPow2(), llvm::AllocaInst::setAlignment(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), llvm::AtomicCmpXchgInst::setAlignment(), llvm::AtomicRMWInst::setAlignment(), llvm::LoongArchAsmBackend::shouldInsertFixupForCodeAlign(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), UnknownPadding(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitUDiv(), and llvm::MachObjectWriter::writeSection().
|
static |
Definition at line 892 of file AMDGPULibCalls.cpp.
References llvm::numbers::ln2.
Referenced by constantFoldFpUnary(), and getHeatColor().
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(), combineVPDPBUSDPattern(), llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromOperator(), llvm::TargetLowering::CTTZTableLookup(), llvm::RISCVVType::encodeLMUL(), llvm::RISCVVType::encodeSEW(), llvm::InstCombinerImpl::foldICmpWithTrunc(), foldSwitchToSelect(), llvm::AArch64TTIImpl::getArithmeticReductionCost(), getARMFixupKindMachOInfo(), getBitcastWiderVectorElementOffset(), llvm::RISCVTTIImpl::getCastInstrCost(), getElSizeLog2Diff(), getFalkorUnrollingPreferences(), getInputSegmentList(), getIntegerExtensionOperandEEW(), getMaxShiftAmount(), llvm::BasicTTIImplBase< T >::getMinMaxReductionCost(), getScaledOffsetForBitWidth(), llvm::SIInstrInfo::getScratchRsrcWords23(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::BasicTTIImplBase< T >::getTreeReductionCost(), hasAllNBitUsers(), llvm::RISCVDAGToDAGISel::hasAllNBitUsers(), isValidAsScaledImmediate(), llvm::HexagonInstrInfo::isValidOffset(), llvm::MipsLegalizerInfo::legalizeCustom(), lowerBuildVectorViaDominantValues(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), lowerShuffleWithPACK(), llvm::RISCVRegisterInfo::lowerVRELOAD(), llvm::RISCVRegisterInfo::lowerVSPILL(), lowerX86CmpEqZeroToCtlzSrl(), matchAddReduction(), llvm::SelectionDAG::matchBinOpReduction(), matchTruncateWithPACK(), llvm::RISCVInstrInfo::mulImm(), 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< IntTy >::setAlignment(), llvm::AArch64TargetLowering::shouldReduceLoadWidth(), llvm::TargetLowering::SimplifySetCC(), simplifySetCCWithCTPOP(), simplifyX86VPERMMask(), tryToRecognizeTableBasedCttz(), UnrollRuntimeLoopRemainder(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitTrunc(), and llvm::InstCombinerImpl::visitZExt().
Return the ceil log base 2 of the specified value, 32 if the value is zero.
(32 bit edition). Ex. Log2_32_Ceil(32) == 5, Log2_32_Ceil(1) == 0, Log2_32_Ceil(6) == 3
Definition at line 355 of file MathExtras.h.
References countl_zero().
Referenced by llvm::ValueEnumerator::computeBitsRequiredForTypeIndices(), llvm::MCWinCOFFStreamer::emitCommonSymbol(), getFastReductionCost(), llvm::SelectionDAG::getNode(), getPow2ScalarType(), llvm::MVT::getPow2VectorType(), getPow2VectorType(), llvm::EVT::getPow2VectorType(), llvm::TargetLoweringBase::getShiftAmountTy(), llvm::LegalizeMutations::moreElementsToNextPow2(), llvm::SmallPtrSetImplBase::reserve(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::shrink_and_clear(), llvm::SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >::shrink_and_clear(), simplifyShift(), TypeSizeToSizeIndex(), llvm::InstCombinerImpl::visitCallInst(), widenScalarLLTNextPow2(), and llvm::LegalizeMutations::widenScalarOrEltToNextPow2().
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(), combineMul(), combineMulSpecial(), computeKnownBitsFromContext(), llvm::GISelKnownBits::computeKnownBitsImpl(), decodeImmShiftOpValue(), expandMul(), llvm::FastISel::fastEmit_ri_(), fillCommonArgs(), llvm::UnOpInit::Fold(), generateInstSeqImpl(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::LaneBitmask::getHighestLane(), llvm::ScaledNumbers::getLgImpl(), llvm::mca::getResourceStateIndex(), llvm::HexagonMCELFStreamer::HexagonMCEmitCommonSymbol(), llvm::TargetLoweringBase::isBeneficialToExpandPowI(), llvm::AArch64InstrInfo::isLegalAddressingMode(), isSeveralBitsExtractOpFromShr(), lowerBuildVectorOfConstants(), LowerCONCAT_VECTORSvXi1(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), llvm::RISCVTargetLowering::LowerOperation(), matchRotateSub(), llvm::RISCVInstrInfo::mulImm(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::MipsAsmPrinter::PrintAsmOperand(), SaturatingMultiply(), llvm::FastISel::selectBinaryOp(), llvm::RISCVDAGToDAGISel::selectSETCC(), llvm::AArch64TargetLowering::shouldConvertConstantLoadToIntImm(), llvm::APInt::tcMSB(), and translateSetCCForBranch().
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().
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 computeImportForFunction(), llvm::gsym::ObjectFileTransformer::convert(), llvm::orc::SimpleRemoteEPCServer::Create(), doImportingForModuleForTest(), llvm::gsym::GsymReader::dump(), llvm::MCJIT::generateCodeForModule(), llvm::BTFParser::hasBTFSections(), llvm::LTOModule::isThinLTO(), isThumbFunc(), llvm::ThinLTOCodeGenerator::linkCombinedIndex(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), llvm::RuntimeDyldELF::loadObject(), llvm::RuntimeDyldMachO::loadObject(), llvm::RuntimeDyldCOFF::loadObject(), llvm::MemProfContextDisambiguation::MemProfContextDisambiguation(), llvm::Pattern::parsePattern(), llvm::RuntimeDyldELF::processRelocationRef(), llvm::FileCheck::readCheckFile(), warnToStderr(), and llvm::orc::EPCGenericRTDyldMemoryManager::~EPCGenericRTDyldMemoryManager().
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, Index, P, llvm::Trace::size(), X, and Y.
const X86FoldTableEntry * llvm::lookupBroadcastFoldTable | ( | unsigned | RegOp, |
unsigned | OpNum | ||
) |
Definition at line 146 of file X86InstrFoldTables.cpp.
References lookupFoldTableImpl().
const X86FoldTableEntry * llvm::lookupBroadcastFoldTableBySize | ( | unsigned | MemOp, |
unsigned | BroadcastBits | ||
) |
Definition at line 325 of file X86InstrFoldTables.cpp.
References I, lower_bound(), and matchBroadcastSize().
|
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:
Definition at line 262 of file SPIRVBuiltins.cpp.
References Arguments, llvm::StringRef::find(), llvm::SPIRV::lookupBuiltinNameHelper(), llvm::SmallVectorBase< Size_T >::size(), llvm::StringRef::slice(), and llvm::StringRef::split().
Referenced by llvm::SPIRV::lowerBuiltin(), and llvm::SPIRV::mapBuiltinToOpcode().
const X86FoldTableEntry * llvm::lookupFoldTable | ( | unsigned | RegOp, |
unsigned | OpNum | ||
) |
Definition at line 128 of file X86InstrFoldTables.cpp.
References lookupFoldTableImpl().
Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().
|
static |
Definition at line 328 of file InstrProf.cpp.
References llvm::MDNode::getOperand(), and llvm::StringRef::str().
Referenced by getIRPGOObjectName(), and getPGOFuncName().
const X86FoldTableEntry * llvm::lookupTwoAddrFoldTable | ( | unsigned | RegOp | ) |
Definition at line 124 of file X86InstrFoldTables.cpp.
References lookupFoldTableImpl().
Referenced by llvm::X86InstrInfo::foldMemoryOperandImpl().
const X86FoldTableEntry * llvm::lookupUnfoldTable | ( | unsigned | MemOp | ) |
Definition at line 230 of file X86InstrFoldTables.cpp.
References I, and lower_bound().
Referenced by llvm::X86InstrInfo::getOpcodeAfterMemoryUnfold(), and llvm::X86InstrInfo::unfoldMemoryOperand().
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 1080 of file LoopRotationUtils.cpp.
Referenced by llvm::LoopRotatePass::run().
|
static |
Definition at line 656 of file APFloat.cpp.
References llvm::APFloatBase::integerPartWidth, lfExactlyHalf, lfExactlyZero, lfLessThanHalf, lfMoreThanHalf, llvm::APInt::tcExtractBit(), and llvm::APInt::tcLSB().
Referenced by shiftRight().
Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly.
Definition at line 1978 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by addAttributeImpl(), llvm::MachO::InterfaceFile::addDocument(), llvm::MachO::addEntry(), llvm::MachO::InterfaceFile::addParentUmbrella(), llvm::MachO::InterfaceFile::addRPath(), llvm::BlockToIndexMapping::blockToIndex(), llvm::LiveIntervals::checkRegMaskInterference(), CompressEVEXImpl(), computeBucketCount(), convertSSEToAVX(), llvm::orc::AllocGroupSmallMap< T >::find(), Find(), llvm::GUIDProbeFunctionMap::find(), findDefaultVersion(), llvm::AttrBuilder::getAttribute(), 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(), Lookup(), lookupBroadcastFoldTableBySize(), lookupFoldTableImpl(), LookupNEONLdSt(), lookupUnfoldTable(), lowerV8I16GeneralSingleInputShuffle(), llvm::MCInstPrinter::matchAliasPatterns(), llvm::sys::unicode::nearestMatchesForCodepointName(), llvm::orc::AllocGroupSmallMap< T >::operator[](), llvm::LiveRange::overlaps(), llvm::RISCVISAInfo::parseFeatures(), promoteSingleBlockAlloca(), llvm::AttrBuilder::removeAttribute(), and llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad().
auto llvm::lower_bound | ( | R && | Range, |
T && | Value, | ||
Compare | C | ||
) |
Definition at line 1984 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
void llvm::LowerARMMachineInstrToMCInst | ( | const MachineInstr * | MI, |
MCInst & | OutMI, | ||
ARMAsmPrinter & | AP | ||
) |
Definition at line 139 of file ARMMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::getImm(), llvm::ARM_AM::getSOImmVal(), llvm::MCOperand::isImm(), llvm::ARMAsmPrinter::lowerOperand(), MI, llvm::MCOperand::setImm(), and llvm::MCInst::setOpcode().
Referenced by llvm::ARMAsmPrinter::emitInstruction().
bool llvm::lowerAtomicCmpXchgInst | ( | AtomicCmpXchgInst * | CXI | ) |
Convert the given Cmpxchg into primitive load and compare.
Definition at line 22 of file LowerAtomic.cpp.
References buildCmpXchgValue(), llvm::IRBuilderBase::CreateInsertValue(), llvm::Instruction::eraseFromParent(), llvm::PoisonValue::get(), llvm::AtomicCmpXchgInst::getAlign(), llvm::AtomicCmpXchgInst::getCompareOperand(), llvm::AtomicCmpXchgInst::getNewValOperand(), llvm::AtomicCmpXchgInst::getPointerOperand(), llvm::Value::getType(), Ptr, and llvm::Value::replaceAllUsesWith().
Referenced by runOnBasicBlock().
bool llvm::lowerAtomicRMWInst | ( | AtomicRMWInst * | RMWI | ) |
Convert the given RMWI into primitive load and stores, assuming that doing so is legal.
Return true if the lowering succeeds.
Definition at line 121 of file LowerAtomic.cpp.
References buildAtomicRMWValue(), llvm::IRBuilderBase::CreateLoad(), llvm::IRBuilderBase::CreateStore(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getFunction(), llvm::AtomicRMWInst::getOperation(), llvm::AtomicRMWInst::getPointerOperand(), llvm::Value::getType(), llvm::AtomicRMWInst::getValOperand(), llvm::Function::hasFnAttribute(), Ptr, llvm::Value::replaceAllUsesWith(), and llvm::IRBuilderBase::setIsFPConstrained().
Referenced by runOnBasicBlock().
bool llvm::lowerConstantIntrinsics | ( | Function & | F, |
const TargetLibraryInfo & | TLI, | ||
DominatorTree * | DT | ||
) |
Definition at line 101 of file LowerConstantIntrinsics.cpp.
References dbgs(), DL, llvm::SmallVectorBase< Size_T >::empty(), F, I, II, LLVM_DEBUG, lowerIsConstantIntrinsic(), lowerObjectSizeCall(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), removeUnreachableBlocks(), and replaceConditionalBranchesOnConstant().
Referenced by llvm::LowerConstantIntrinsicsPass::run().
Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics.
LowerDbgDeclare - Lowers llvm.dbg.declare intrinsics into appropriate set of llvm.dbg.value intrinsics.
Definition at line 1990 of file Local.cpp.
References any_of(), llvm::DIExpression::append(), ConvertDebugDeclareToDebugValue(), llvm::SmallVectorBase< Size_T >::empty(), F, filterDbgVars(), for_each(), getDebugValueLoc(), insertDbgValueOrDbgVariableRecord(), isArray(), isStructure(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RemoveRedundantDbgInstrs(), and llvm::Value::users().
Referenced by combineInstructionsOverFunction().
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(), llvm::Function::Create(), llvm::BasicBlock::Create(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateConstInBoundsGEP2_32(), llvm::IRBuilderBase::CreatePointerCast(), llvm::IRBuilderBase::CreateRetVoid(), dbgs(), DL, llvm::ArrayRef< T >::empty(), GEP, llvm::ConstantPointerNull::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::FunctionType::params(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::User::replaceUsesOfWith(), and llvm::ArrayRef< T >::size().
Referenced by llvm::LowerIFuncPass::run().
bool llvm::lowerLoongArchMachineInstrToMCInst | ( | const MachineInstr * | MI, |
MCInst & | OutMI, | ||
AsmPrinter & | AP | ||
) |
Definition at line 184 of file LoongArchMCInstLower.cpp.
References llvm::MCInst::addOperand(), lowerLoongArchMachineOperandToMCOperand(), MI, and llvm::MCInst::setOpcode().
Referenced by llvm::LoongArchAsmPrinter::emitInstruction().
bool llvm::lowerLoongArchMachineOperandToMCOperand | ( | const MachineOperand & | MO, |
MCOperand & | MCOp, | ||
const AsmPrinter & | AP | ||
) |
Definition at line 141 of file LoongArchMCInstLower.cpp.
References llvm::MCOperand::createImm(), llvm::MCOperand::createReg(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::AsmPrinter::GetExternalSymbolSymbol(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getReg(), llvm::MachineBasicBlock::getSymbol(), llvm::MachineOperand::getSymbolName(), llvm::AsmPrinter::getSymbolPreferLocal(), llvm::MachineOperand::getType(), llvm::MachineOperand::isImplicit(), lowerSymbolOperand(), llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterMask, and report_fatal_error().
Referenced by lowerLoongArchMachineInstrToMCInst(), and llvm::LoongArchAsmPrinter::lowerOperand().
Value * llvm::lowerObjectSizeCall | ( | IntrinsicInst * | ObjectSize, |
const DataLayout & | DL, | ||
const TargetLibraryInfo * | TLI, | ||
AAResults * | AA, | ||
bool | MustSucceed, | ||
SmallVectorImpl< Instruction * > * | InsertedInstructions = nullptr |
||
) |
Definition at line 597 of file MemoryBuiltins.cpp.
References llvm::ObjectSizeOpts::AA, assert(), llvm::ObjectSizeOffsetEvaluator::compute(), llvm::IRBuilderBase::CreateAssumption(), llvm::IRBuilderBase::CreateICmpNE(), llvm::IRBuilderBase::CreateICmpULT(), llvm::IRBuilderBase::CreateSelect(), llvm::IRBuilderBase::CreateSub(), llvm::IRBuilderBase::CreateZExtOrTrunc(), DL, llvm::ObjectSizeOpts::EvalMode, llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::Function::getContext(), llvm::Instruction::getFunction(), llvm::IntrinsicInst::getIntrinsicID(), llvm::Constant::getNullValue(), getObjectSize(), llvm::Value::getType(), I, isUIntN(), llvm::ObjectSizeOpts::NullIsUnknownSize, llvm::SizeOffsetType< T, C >::Offset, Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::IRBuilderBase::SetInsertPoint(), llvm::SizeOffsetType< T, C >::Size, Size, and llvm::ObjectSizeOffsetEvaluator::unknown().
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 589 of file MemoryBuiltins.cpp.
References DL, and lowerObjectSizeCall().
Referenced by lowerConstantIntrinsics(), lowerObjectSizeCall(), llvm::InstCombinerImpl::visitAllocSite(), and llvm::InstCombinerImpl::visitCallInst().
void llvm::LowerPPCMachineInstrToMCInst | ( | const MachineInstr * | MI, |
MCInst & | OutMI, | ||
AsmPrinter & | AP | ||
) |
Definition at line 177 of file PPCMCInstLower.cpp.
References llvm::MCInst::addOperand(), LowerPPCMachineOperandToMCOperand(), MI, and llvm::MCInst::setOpcode().
bool llvm::LowerPPCMachineOperandToMCOperand | ( | const MachineOperand & | MO, |
MCOperand & | OutMO, | ||
AsmPrinter & | AP | ||
) |
Definition at line 188 of file PPCMCInstLower.cpp.
References assert(), llvm::MCSymbolRefExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), llvm::MCOperand::createReg(), llvm::MachineOperand::getBlockAddress(), llvm::AsmPrinter::GetBlockAddressSymbol(), llvm::AsmPrinter::GetCPISymbol(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::AsmPrinter::GetJTISymbol(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineBasicBlock::getSymbol(), GetSymbolFromOperand(), GetSymbolRef(), llvm::MachineOperand::getType(), llvm::MachineOperand::isImplicit(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterMask, and llvm::AsmPrinter::OutContext.
Referenced by LowerPPCMachineInstrToMCInst().
void llvm::LowerSparcMachineInstrToMCInst | ( | const MachineInstr * | MI, |
MCInst & | OutMI, | ||
AsmPrinter & | AP | ||
) |
Definition at line 93 of file SparcMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::isValid(), LowerOperand(), MI, and llvm::MCInst::setOpcode().
void llvm::LowerVEMachineInstrToMCInst | ( | const MachineInstr * | MI, |
MCInst & | OutMI, | ||
AsmPrinter & | AP | ||
) |
Definition at line 77 of file VEMCInstLower.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::isValid(), LowerOperand(), MI, and llvm::MCInst::setOpcode().
|
inlinestatic |
Definition at line 186 of file Sparc.h.
Referenced by replaceFI().
Definition at line 375 of file VE.h.
Referenced by canonicalizeShuffleMaskWithHorizOp(), canWidenShuffleElements(), checkWriteLane(), llvm::SITargetLowering::copyToM0(), DecodeCtrRegsRegisterClass(), llvm::AMDGPUDisassembler::decodeSpecialReg32(), emitHiLo(), llvm::VETargetLowering::emitSjLjDispatchBlock(), foldMinimumMaximumSharedOp(), llvm::PPC::isXXINSERTWMask(), llvm::PPC::isXXPERMDIShuffleMask(), llvm::PPC::isXXSLDWIShuffleMask(), lowerV8I16GeneralSingleInputShuffle(), matchBinaryPermuteShuffle(), llvm::VETargetLowering::prepareMBB(), llvm::VETargetLowering::prepareSymbol(), llvm::HexagonDAGToDAGISel::SelectVAlign(), and widenShuffleMaskElts().
Definition at line 376 of file VE.h.
Referenced by areExtractShuffleVectors(), canonicalizeShuffleMaskWithHorizOp(), canWidenShuffleElements(), llvm::VEInstrInfo::copyPhysReg(), DecodeCtrRegsRegisterClass(), foldMinimumMaximumSharedOp(), llvm::TypeBasedAAResult::getModRefInfo(), llvm::PPC::isXXINSERTWMask(), llvm::PPC::isXXPERMDIShuffleMask(), llvm::PPC::isXXSLDWIShuffleMask(), lowerShuffleAsLanePermuteAndRepeatedMask(), lowerShuffleAsRepeatedMaskAndLanePermute(), lowerV8I16GeneralSingleInputShuffle(), matchBinaryPermuteShuffle(), matchShuffleWithUNPCK(), performSubAddMULCombine(), llvm::RISCVDAGToDAGISel::Select(), llvm::HexagonDAGToDAGISel::SelectVAlign(), and widenShuffleMaskElts().
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 428 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().
StringRef llvm::machineToStr | ( | COFF::MachineTypes | MT | ) |
Definition at line 36 of file WindowsMachineFlag.cpp.
References llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64, llvm::COFF::IMAGE_FILE_MACHINE_ARM64EC, llvm::COFF::IMAGE_FILE_MACHINE_ARM64X, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, and llvm_unreachable.
Referenced by appendFile().
Make a 64-bit integer from a high / low pair of 32-bit integers.
Definition at line 166 of file MathExtras.h.
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), KnuthDiv(), and readInstruction64().
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 657 of file STLExtras.h.
References make_range(), and Range.
Referenced by addImplicitDefs(), llvm::SelectionDAG::AssignTopologicalOrder(), llvm::WindowScheduler::backupMBB(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), llvm::Combiner::combineMachineInstrs(), computeVirtualCallSiteTypeInfoMap(), llvm::VPlanTransforms::convertToConcreteRecipes(), convertToRelativeLookupTables(), createOutlinedFunction(), cse(), DeleteDeadIFuncs(), deleteDeadLoop(), llvm::ConnectedVNInfoEqClasses::Distribute(), doCallSiteSplitting(), DoLowering(), dropTypeTests(), eliminateAvailableExternally(), eliminateDeadCode(), eliminateSwiftErrorAlloca(), llvm::ScheduleDAGSDNodes::EmitSchedule(), eraseLifetimeMarkersOnInputs(), expansionIntrinsics(), llvm::CodeExtractor::extractCodeRegion(), llvm::CodeExtractor::findOrCreateBlockForHoisting(), fixStackStores(), flattenArrays(), llvm::InstCombinerImpl::foldOpIntoPhi(), foldUnusualPatterns(), formLCSSAForInstructionsImpl(), llvm::InstCombinerImpl::freelyInvertAllUsersOf(), HandleCallsInBlockInlinedThroughInvoke(), llvm::InstCombinerImpl::handleUnreachableFrom(), hoistRegion(), INITIALIZE_PASS(), InlineFunction(), inlineRetainOrClaimRVCalls(), InsertStackProtectors(), licm(), loadCSE(), lowerExpectIntrinsic(), lowerGlobalIFuncUsersAsGlobalCtor(), lowerLoadRelative(), lowerObjCCall(), makeFunctionBodyUnreachable(), llvm::MachineRegisterInfo::markUsesInDebugValueAsUndef(), mergeBlocksIntoPredecessors(), mergeConstants(), mergeReplicateRegionsIntoSuccessors(), moveFunctionData(), moveInstructionsToTheBeginning(), moveLCSSAPhis(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::ShuffleBlockStrategy::mutate(), nullifySetjmp(), OptimizeAwayTrappingUsesOfLoads(), OptimizeEmptyGlobalAtExitDtors(), llvm::VPlanTransforms::optimizeForVFAndUF(), OptimizeFunctions(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAliases(), OptimizeGlobalVars(), preparePlanForEpilogueVectorLoop(), preparePlanForMainVectorLoop(), llvm::InstCombinerImpl::prepareWorklist(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), processSelect(), processUMulZExtIdiom(), promoteSingleBlockAlloca(), PropagateOperandBundles(), redirectAllPredecessorsTo(), remapIndices(), llvm::MemorySSAUpdater::removeBlocks(), llvm::SIInstrInfo::removeBranch(), llvm::SIMachineFunctionInfo::removeDeadFrameIndices(), llvm::VPlanTransforms::removeDeadRecipes(), removeDebugInstrs(), removeEmptyCleanup(), removeIntrinsicUsers(), removeRedundantExpandSCEVRecipes(), removeSSACopy(), replaceAllPrepares(), replaceCreatedSSACopys(), replaceDominatedUses(), replaceDominatedUsesWith(), llvm::coro::BaseCloner::replaceEntryBlock(), replaceLoopInvariantUses(), replaceNonLocalUsesWith(), replacePrepare(), replaceRegUsesAfterLoop(), llvm::MachineRegisterInfo::replaceRegWith(), llvm::coro::BaseCloner::replaceRetconOrAsyncSuspendUses(), replaceSubOverflowUses(), replaceVPBBWithIRVPBB(), llvm::WindowScheduler::restoreMBB(), rewriteSelectInstMemOps(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::JumpTableToSwitchPass::run(), llvm::DeadArgumentEliminationPass::run(), llvm::ExtractGVPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), llvm::CtxProfAnalysis::run(), runImpl(), runIPSCCP(), runOnBasicBlock(), RemoveLoadsIntoFakeUses::runOnMachineFunction(), setDanglingDebugValuesUndef(), llvm::SCCPSolver::simplifyInstsInBlock(), simplifyLoopAfterUnroll(), simplifyLoopInst(), simplifyRecipes(), sinkLastInstruction(), sinkLoopInvariantInstructions(), llvm::VPBasicBlock::splitAt(), splitGlobals(), stripDeadPrototypes(), stripDebugInfo(), StripDebugInfo(), llvm::TailDuplicator::tailDuplicateAndUpdate(), llvm::TailDuplicator::tailDuplicateBlocks(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), tryToMergeLandingPad(), tryToMoveFreeBeforeNullTest(), llvm::HexagonPacketizerList::unpacketizeSoloInstrs(), llvm::VPlanTransforms::unrollByUF(), UnrollRuntimeLoopRemainder(), unstackifyVRegsUsedInSplitBB(), unswitchNontrivialInvariants(), updatePublicTypeTestCalls(), UpgradeARCRuntime(), UpgradeCallsToIntrinsic(), llvm::InstCombinerImpl::visitBranchInst(), llvm::VPlanTransforms::VPInstructionsToVPRecipes(), and llvm::VPDef::~VPDef().
Error llvm::make_error | ( | ArgTs &&... | Args | ) |
|
inline |
Definition at line 310 of file BitcodeReader.h.
References BitcodeErrorCategory(), and E.
Referenced by computeImportForFunction(), llvm::CGDataError::convertToErrorCode(), llvm::InstrProfError::convertToErrorCode(), llvm::vfs::InMemoryFileSystem::dir_begin(), error(), llvm::ErrorOr< T >::ErrorOr(), llvm::NewArchiveMember::getFile(), getMemBufferCopyImpl(), getOpenFileImpl(), getReadWriteFile(), llvm::vfs::RedirectingFileSystem::lookupPath(), llvm::vfs::OverlayFileSystem::openFileForRead(), llvm::vfs::InMemoryFileSystem::openFileForRead(), llvm::vfs::RedirectingFileSystem::openFileForRead(), prepareTempFiles(), llvm::yaml::Scanner::setError(), and llvm::vfs::OverlayFileSystem::status().
|
inline |
Definition at line 62 of file CodeGenData.h.
References cgdata_category(), and E.
|
inline |
|
inline |
Definition at line 400 of file InstrProf.h.
References E, and instrprof_category().
|
inline |
Definition at line 65 of file SampleProf.h.
References E, and sampleprof_category().
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 make_fallible_range().
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 make_fallible_range().
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().
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 573 of file STLExtras.h.
References make_range(), and Range.
Referenced by llvm::mca::RegisterFile::addRegisterWrite(), llvm::MachineInstr::all_defs(), 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::MachO::SymbolSet::exports(), filter_to_vector(), filterDbgVars(), llvm::RandomIRBuilder::findOrCreateGlobalVariable(), llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), llvm::MachineInstr::getDebugOperandsForReg(), llvm::MachineFunction::getEntryValueVariableDbgInfo(), llvm::VPlan::getExitBlocks(), llvm::MachineFunction::getInStackSlotVariableDbgInfo(), llvm::StackLifetime::getMarkers(), getUniqueExitBlocksHelper(), instructionsWithoutDebug(), TransferTracker::ResolvedDbgValue::loc_indices(), llvm::InsertCFGStrategy::mutate(), llvm::IRMutationStrategy::mutate(), phys_regs_and_masks(), llvm::MachO::SymbolSet::reexports(), llvm::MachO::Symbol::targets(), llvm::MachO::InterfaceFile::targets(), llvm::mca::RegisterFile::tryEliminateMoveOrSwap(), and llvm::MachO::SymbolSet::undefineds().
auto llvm::make_first_range | ( | ContainerTy && | c | ) |
Given a container of pairs, return a range over the first elements.
Definition at line 1439 of file STLExtras.h.
References map_range().
Referenced by llvm::AppleAcceleratorTable::containsAtomType(), and hoistLockstepIdenticalDbgVariableRecords().
iterator_range< pointee_iterator< WrappedIteratorT > > llvm::make_pointee_range | ( | RangeT && | Range | ) |
Definition at line 336 of file iterator.h.
References make_range(), and Range.
Referenced by llvm::objcopy::elf::Object::allocSections(), llvm::MachineInstr::cloneMergedMemRefs(), dumpEdges(), llvm::ValueInfo::getELFVisibility(), hasIdenticalMMOs(), llvm::objcopy::elf::GroupSection::members(), llvm::objcopy::elf::Object::segments(), and llvm::MCAssembler::symbols().
iterator_range< pointer_iterator< WrappedIteratorT > > llvm::make_pointer_range | ( | RangeT && | Range | ) |
Definition at line 363 of file iterator.h.
References make_range(), and Range.
Referenced by llvm::RegBankSelect::assignRegisterBanks(), llvm::Attributor::checkForAllCallSites(), llvm::InformationCache::foreachUse(), llvm::IRMutationStrategy::mutate(), and UpdateSSA().
iterator_range< T > llvm::make_range | ( | std::pair< T, T > | p | ) |
Definition at line 81 of file iterator_range.h.
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 77 of file iterator_range.h.
Referenced by llvm::jitlink::LinkGraph::absolute_symbols(), accessedBetween(), llvm::GCStatepointInst::actual_args(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::Module::aliases(), llvm::SelectionDAG::allnodes(), llvm::mca::Scheduler::analyzeDataDependencies(), llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::codeview::InlineSiteSym::annotations(), applyDebugify(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), llvm::VPWidenCallRecipe::arg_operands(), llvm::Function::args(), llvm::CallBase::args(), llvm::sandboxir::CallBase::args(), llvm::object::DynamicRelocRef::arm64x_relocs(), llvm::DWARFDie::attributes(), llvm::object::COFFObjectFile::base_relocs(), llvm::object::MachOObjectFile::bindTable(), llvm::MemoryPhi::blocks(), llvm::jitlink::Section::blocks(), llvm::jitlink::LinkGraph::blocks(), llvm::GenericCycle< ContextT >::blocks(), llvm::PHINode::blocks(), llvm::sandboxir::PHINode::blocks(), llvm::LoopBase< BlockT, LoopT >::blocks(), llvm::WebAssemblyException::blocks(), llvm::GCOVFunction::blocksRange(), breadth_first(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), buildClonedLoopBlocks(), BuildInstOrderMap(), llvm::CallBase::bundle_op_infos(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::StringRef::bytes(), llvm::LoopVectorizationCostModel::calculateRegisterUsage(), llvm::ResourceManager::calculateResMII(), llvm::LazyCallGraph::EdgeSequence::calls(), canRenameComdat(), canSplitCallSite(), llvm::SwitchInst::cases(), llvm::sandboxir::SwitchInst::cases(), llvm::DXILBindingMap::cbuffers(), llvm::SchedBoundary::checkHazard(), llvm::DIE::children(), llvm::DomTreeNodeBase< NodeT >::children(), llvm::GenericCycle< ContextT >::children(), llvm::DWARFDie::children(), 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(), computeMinimumValueSizes(), const_mi_bundle_ops(), llvm::StackMapParser< Endianness >::constants(), containsIrreducibleCFG(), createOutlinedFunction(), createReplicateRegion(), llvm::VPlan::createVPIRBasicBlock(), llvm::OnDiskIterableChainedHashTable< Info >::data(), llvm::CallBase::data_ops(), llvm::sandboxir::CallBase::data_ops(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::Module::debug_compile_units(), llvm::object::COFFObjectFile::debug_directories(), llvm::MachineInstr::debug_operands(), llvm::MachineRegisterInfo::def_bundles(), def_chain(), llvm::MachineRegisterInfo::def_instructions(), llvm::MachineRegisterInfo::def_operands(), llvm::jitlink::LinkGraph::defined_symbols(), llvm::MachineInstr::defs(), llvm::object::COFFObjectFile::delay_import_directories(), llvm::GCStatepointInst::deopt_operands(), depth_first(), depth_first_ext(), detectPopcountIdiom(), detectShiftUntilLessThanIdiom(), detectShiftUntilZeroIdiom(), drop_begin(), drop_end(), llvm::GCOVBlock::dsts(), llvm::SelectionDAG::dump(), llvm::BPFunctionNode::dump(), llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), llvm::object::COFFObjectFile::dynamic_relocs(), llvm::object::Archive::ec_symbols(), llvm::jitlink::Block::edges(), llvm::RegionBase< Tr >::elements(), llvm::SystemZHazardRecognizer::emitInstruction(), llvm::AArch64FrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::Registry< T >::entries(), llvm::GenericCycle< ContextT >::entries(), llvm::AppleAcceleratorTable::entries(), llvm::AppleAcceleratorTable::equal_range(), llvm::DWARFDebugNames::NameIndex::equal_range(), llvm::DWARFDebugNames::equal_range(), llvm::AMDGPURegisterBankInfo::executeInWaterfallLoop(), llvm::MachineInstr::explicit_operands(), llvm::MachineInstr::explicit_uses(), llvm::object::COFFObjectFile::export_directories(), 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(), FindAvailableLoadedValue(), findIrreducibleHeaders(), findRedundantFlagInstr(), fixStackStores(), llvm::object::MachOObjectFile::fixupTable(), foldLoadsRecursive(), llvm::Module::functions(), llvm::StackMapParser< Endianness >::functions(), llvm::GCStatepointInst::gc_live(), llvm::GCStatepointInst::gc_transition_args(), llvm::at::getAssignmentInsts(), llvm::at::getAssignmentMarkers(), llvm::MachineFunction::getCalledGlobals(), llvm::TargetInstrInfo::getCallFrameSizeAt(), getCallInstr(), llvm::orc::getConstructors(), llvm::coverage::CoverageMapping::getCoveredFunctions(), 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< NodePtr, InverseGraph >::getLegalizedUpdates(), llvm::RTLIB::RuntimeLibcallsInfo::getLibcallNames(), 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::AArch64InstrInfo::getOutlinableRanges(), llvm::WindowScheduler::getScheduleRange(), llvm::sandboxir::SeedBundle::getSlice(), getSplatIndex(), llvm::orc::getStaticInitGVs(), llvm::pdb::SymbolStream::getSymbols(), llvm::ModuleSummaryIndex::getTypeIdSummary(), getVFSEntries(), llvm::RegisterBankInfo::OperandsMapper::getVRegs(), llvm::DebugInfoFinder::global_variables(), llvm::Module::globals(), handleArgs(), llvm::CatchSwitchInst::handlers(), llvm::sandboxir::CatchSwitchInst::handlers(), llvm::InstCombinerImpl::handleUnreachableFrom(), identifyNoAliasScopesToClone(), llvm::Module::ifuncs(), llvm::MachineInstr::implicit_operands(), llvm::object::COFFObjectFile::import_directories(), llvm::object::ImportDirectoryEntryRef::imported_symbols(), llvm::object::DelayImportDirectoryEntryRef::imported_symbols(), llvm::GetElementPtrInst::indices(), llvm::GEPOperator::indices(), llvm::sandboxir::GetElementPtrInst::indices(), llvm::ExtractValueInst::indices(), llvm::InsertValueInst::indices(), INITIALIZE_PASS(), llvm::ScheduleDAGInstrs::initSUnits(), InlineFunction(), inlineRetainOrClaimRVCalls(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), instrs(), instructionsWithoutDebug(), llvm::sandboxir::Region::insts(), llvm::HexagonShuffler::insts(), inverse_children(), inverse_depth_first(), inverse_depth_first_ext(), inverse_nodes(), inverse_post_order(), inverse_post_order_ext(), isEFLAGSLive(), isEFLAGSLiveAfter(), isGuaranteedToTransferExecutionToSuccessor(), llvm::AAIsDead::isLiveInstSet(), llvm::MachineRegisterInfo::isPhysRegModified(), isPrintableString(), llvm::IRSimilarity::IRSimilarityCandidate::isSimilar(), isValidAssumeForContext(), llvm::AA::isValidAtPosition(), llvm::OnDiskIterableChainedHashTable< Info >::keys(), llvm::StringMap< ValueTy, 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_uses(), mayBeVisibleThroughUnwinding(), llvm::BlockFrequencyInfoImplBase::LoopData::members(), llvm::sandboxir::MemDGNode::memPreds(), mi_bundle_ops(), llvm::object::IRObjectFile::modules(), llvm::PeelingModuloScheduleExpander::moveStageBetweenBlocks(), llvm::ShuffleBlockStrategy::mutate(), llvm::Module::named_metadata(), nodes(), llvm::object::ELFFile< ELFT >::notes(), llvm::object::MachOUniversalBinary::objects(), llvm::object::TapiUniversal::objects(), llvm::SDNode::op_values(), llvm::User::operand_values(), llvm::MachineInstr::operands(), llvm::NamedMDNode::operands(), operator<<(), llvm::X86InstrInfo::optimizeCompareInstr(), optimized_def_chain(), passingValueIsAlwaysUndefined(), pathHasTraversal(), llvm::MachineBasicBlock::phis(), llvm::VPBasicBlock::phis(), post_order(), post_order_ext(), llvm::LazyCallGraph::postorder_ref_sccs(), 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::object::MachOObjectFile::rebaseTable(), rebuildLoopAfterUnswitch(), llvm::StackMapParser< Endianness >::records(), 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::TargetRegisterInfo::regclasses(), llvm::MCRegisterInfo::regclasses(), llvm::DebugifyEachInstrumentation::registerCallbacks(), llvm::MCRegisterInfo::regunits(), llvm::object::SectionRef::relocations(), rematerializeChain(), llvm::PHINode::removeIncomingValueIf(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::objcopy::elf::Object::removeSections(), llvm::CoroEndResults::return_values(), reverse(), llvm::DominatorTreeBase< NodeT, IsPostDom >::roots(), llvm::BalancedPartitioning::run(), llvm::MachineFunction::salvageCopySSAImpl(), llvm::DXILBindingMap::samplers(), llvm::DebugInfoFinder::scopes(), llvm::jitlink::LinkGraph::sections(), llvm::BitVector::set_bits(), llvm::SmallBitVector::set_bits(), llvm::VPBasicBlock::splitAt(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::GCOVBlock::srcs(), llvm::DXILBindingMap::srvs(), llvm::DebugInfoFinder::subprograms(), llvm::LiveInterval::subranges(), llvm::MCRegisterInfo::subregs(), llvm::MCRegisterInfo::subregs_inclusive(), llvm::pdb::ModuleDebugStreamRef::subsections(), llvm::MachineBasicBlock::successors(), llvm::BranchInst::successors(), llvm::IndirectBrInst::successors(), llvm::sandboxir::BranchInst::successors(), llvm::MCRegisterInfo::superregs(), llvm::MCRegisterInfo::superregs_inclusive(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::jitlink::Section::symbols(), llvm::object::Archive::symbols(), llvm::pdb::ModuleDebugStreamRef::symbols(), llvm::TargetRegistry::targets(), llvm::MachineBasicBlock::terminators(), llvm::GenericCycleInfo< ContextT >::toplevel_cycles(), llvm::VPRecipeBuilder::tryToCreateWidenRecipe(), llvm::DebugInfoFinder::types(), llvm::pdb::TpiStream::types(), llvm::DXILBindingMap::uavs(), 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::SDNode::users(), llvm::MachineInstr::uses(), llvm::SDNode::uses(), llvm::CoroSuspendRetconInst::value_operands(), llvm::DIEValueList::values(), llvm::SDNode::values(), llvm::LiveRange::vnis(), llvm::VPlanTransforms::VPInstructionsToVPRecipes(), and writtenBetween().
detail::scope_exit< std::decay_t< Callable > > llvm::make_scope_exit | ( | Callable && | F | ) |
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(), llvm::orc::UnwindInfoRegistrationPlugin::Create(), doPromotion(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::LoopInfo::erase(), formDedicatedExitBlocks(), llvm::BasicAAResult::getModRefInfoMask(), 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::ThinLTOCodeGenerator::run(), llvm::ModuleInlinerPass::run(), llvm::PGOCtxProfFlatteningPass::run(), llvm::InstructionSelect::runOnMachineFunction(), llvm::IRTranslator::runOnMachineFunction(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::LazyCallGraph::RefSCC::switchTrivialInternalEdgeToRef(), and llvm::VPlanTransforms::unrollByUF().
auto llvm::make_second_range | ( | ContainerTy && | c | ) |
Given a container of pairs, return a range over the second elements.
Definition at line 1449 of file STLExtras.h.
References map_range().
Referenced by llvm::MCPseudoProbeDecoder::buildAddress2ProbeMap(), and tailMergeBlocksWithSimilarFunctionTerminators().
Referenced by ReportLastErrorFatal().
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.
OrigLoopID | The loop ID of the loop before the transformation. |
FollowupAttrs | List of attribute names that contain attributes to be added to the new loop ID. |
InheritOptionsAttrsPrefix | Selects 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. |
AlwaysNew | If true, do not try to reuse OrigLoopID and never return std::nullopt. |
OrigLoopID:
The original identifier can be reused. nullptr : The new loop has no attributes. MDNode* : A new unique loop identifier. Definition at line 263 of file LoopUtils.cpp.
References assert(), drop_begin(), findOptionMDForLoopID(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::DWARFExpression::Operation::getNumOperands(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MDNode::replaceOperandWith(), llvm::SmallVectorBase< Size_T >::size(), and llvm::StringRef::starts_with().
Referenced by CloneLoopBlocks(), llvm::LoopVectorizationPlanner::executePlan(), llvm::LoopVectorizePass::processLoop(), tryToUnrollAndJamLoop(), and tryToUnrollLoop().
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().
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, 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().
LDVImpl * llvm::makeInstrRefBasedLiveDebugValues | ( | ) |
Definition at line 3866 of file InstrRefBasedImpl.cpp.
Referenced by INITIALIZE_PASS().
IntrusiveRefCntPtr< T > llvm::makeIntrusiveRefCnt | ( | Args &&... | A | ) |
Factory function for creating intrusive ref counted pointers.
Definition at line 313 of file IntrusiveRefCntPtr.h.
std::vector< const SUnit * > llvm::makeMinRegSchedule | ( | ArrayRef< const SUnit * > | TopRoots, |
const ScheduleDAG & | DAG | ||
) |
Definition at line 271 of file GCNMinRegStrategy.cpp.
Referenced by llvm::GCNIterativeScheduler::scheduleMinReg(), and llvm::GCNIterativeScheduler::tryMaximizeOccupancy().
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.
Context | The LLVMContext in which to create the new LoopID. |
OrigLoopID | The original LoopID; can be nullptr if the original loop has no LoopID. |
RemovePrefixes | Remove all loop attributes that have these prefixes. Use to remove metadata of the transformation that has been applied. |
AddAttrs | Add these loop attributes to the new LoopID. |
Definition at line 1170 of file LoopInfo.cpp.
References any_of(), llvm::SmallVectorImpl< T >::append(), llvm::ArrayRef< T >::begin(), drop_begin(), llvm::ArrayRef< T >::end(), llvm::MDNode::getDistinct(), llvm::MDString::getString(), llvm::MDNode::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MDNode::replaceOperandWith(), and starts_with().
Referenced by postUnswitch(), llvm::LoopVectorizeHints::setAlreadyVectorized(), llvm::Loop::setLoopAlreadyUnrolled(), and llvm::Loop::setLoopMustProgress().
ReservoirSampler< T, GenT > llvm::makeSampler | ( | GenT & | RandGen | ) |
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().
ReservoirSampler< ElT, GenT > llvm::makeSampler | ( | GenT & | RandGen, |
RangeT && | Items | ||
) |
Definition at line 75 of file Random.h.
References llvm::ReservoirSampler< T, GenT >::sample().
Referenced by llvm::RandomIRBuilder::findOrCreateGlobalVariable(), llvm::RandomIRBuilder::findOrCreateSource(), llvm::RandomIRBuilder::findPointer(), llvm::IRMutationStrategy::mutate(), llvm::InsertFunctionStrategy::mutate(), llvm::InsertCFGStrategy::mutate(), and llvm::InstModificationIRStrategy::mutate().
LDVImpl * llvm::makeVarLocBasedLiveDebugValues | ( | ) |
Definition at line 2414 of file VarLocBasedImpl.cpp.
Referenced by INITIALIZE_PASS().
|
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:
Example of making a visitor with a lambda which captures a move-only type:
Definition at line 1547 of file STLExtras.h.
|
inline |
Definition at line 372 of file STLExtras.h.
Referenced by llvm::FunctionImporter::ImportMapTy::begin(), llvm::FunctionImporter::SortedImportList::begin(), llvm::FunctionImporter::ImportMapTy::end(), llvm::FunctionImporter::SortedImportList::end(), llvm::sandboxir::GlobalWithNodeAPI< GlobalT, LLVMGlobalT, ParentT, LLVMParentT >::getIterator(), llvm::sandboxir::GlobalWithNodeAPI< GlobalT, LLVMGlobalT, ParentT, LLVMParentT >::getReverseIterator(), llvm::StringRef::lower(), map_range(), llvm::detail::BCRecordCoding< BCArray< ElementTy > >::read(), llvm::sandboxir::BranchInst::successors(), and llvm::StringRef::upper().
auto llvm::map_range | ( | ContainerTy && | C, |
FuncTy | F | ||
) |
Definition at line 377 of file STLExtras.h.
References llvm::CallingConv::C, F, make_range(), and map_iterator().
Referenced by llvm::VPBlockUtils::blocksOnly(), cloneCfiPrologue(), filterDbgVars(), llvm::AccelTableBase::HashData::getValues(), TransferTracker::ResolvedDbgValue::loc_indices(), make_first_range(), make_second_range(), map_to_vector(), llvm::VPRecipeBuilder::mapToVPValues(), llvm::MemorySSA::MemorySSA(), qualifyCalleeCandidates(), llvm::jitlink::splitCompactUnwindBlocks(), swapBBContents(), usersDominator(), and llvm::MemorySSA::verifyMemorySSA().
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, and map_range().
Referenced by toScalarizedStructTy(), and toVectorizedStructTy().
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().
std::error_code llvm::mapLastWindowsError | ( | ) |
|
inline |
Version of MapMetadata with type safety for MDNode.
Definition at line 248 of file ValueMapper.h.
References llvm::ValueMapper::mapMDNode().
|
inline |
Lookup or compute a mapping for a piece of metadata.
Compute and memoize a mapping for MD
.
MD
is mapped, return it.MD
is an MDString, return MD
.MD
is a ConstantAsMetadata, call MapValue() and re-wrap its return (returning nullptr on nullptr).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.Definition at line 240 of file ValueMapper.h.
References llvm::ValueMapper::mapMetadata().
Referenced by CloneFunctionInto(), CloneFunctionMetadataInto(), and CloneModule().
|
inline |
Version of MapValue with type safety for Constant.
Definition at line 305 of file ValueMapper.h.
References llvm::ValueMapper::mapConstant().
|
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.
V
is in VM, return the result.V
can be materialized with Materializer
, do so, memoize it in VM
, and return it.V
is a function-local value, return nullptr.V
is a GlobalValue, return nullptr
or V
depending on RF_NullMapMissingGlobalValues.V
is a MetadataAsValue wrapping a LocalAsMetadata, recurse on the local SSA value, and return nullptr or "metadata !{}" on missing depending on RF_IgnoreMissingValues.V
is a MetadataAsValue, rewrap the return of MapMetadata().Definition at line 218 of file ValueMapper.h.
References llvm::ValueMapper::mapValue().
Referenced by CloneAndPruneIntoFromInst(), CloneFunctionAttributesInto(), and CloneModule().
std::error_code llvm::mapWindowsError | ( | unsigned | EV | ) |
Referenced by llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::initialize(), llvm::orc::SharedMemoryMapper::release(), llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::release(), llvm::orc::SharedMemoryMapper::reserve(), and llvm::orc::rt_bootstrap::ExecutorSharedMemoryMapperService::reserve().
void llvm::markRegisterParameterAttributes | ( | Function * | F | ) |
Definition at line 1344 of file BuildLibCalls.cpp.
References A, assert(), llvm::CallingConv::C, CC, DL, F, N, and llvm::CallingConv::X86_StdCall.
Referenced by getOrInsertLibFunc().
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 1175 of file VectorUtils.cpp.
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 333 of file ValueTracking.cpp.
References computeKnownBits(), Depth, and llvm::KnownBits::Zero.
Referenced by llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::InstCombiner::MaskedValueIsZero(), simplifyOrInst(), and simplifyUnaryIntrinsic().
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 1149 of file VectorUtils.cpp.
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 1123 of file VectorUtils.cpp.
Referenced by simplifyIntrinsic().
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 94 of file MathExtras.h.
References N.
Create a bitmask with the N left-most bits set to 0, and all other bits set to 1.
Only unsigned types are allowed.
Definition at line 106 of file MathExtras.h.
References N.
Create a bitmask with the N right-most bits set to 1, and all other bits set to 0.
Only unsigned types are allowed.
Definition at line 83 of file MathExtras.h.
References assert(), N, and T.
Referenced by DecodeSignedOperand().
Create a bitmask with the N right-most bits set to 0, and all other bits set to 1.
Only unsigned types are allowed.
Definition at line 100 of file MathExtras.h.
References N.
bool llvm::matchBroadcastSize | ( | const X86FoldTableEntry & | Entry, |
unsigned | BroadcastBits | ||
) |
Definition at line 308 of file X86InstrFoldTables.cpp.
References TB_BCAST_D, TB_BCAST_MASK, TB_BCAST_Q, TB_BCAST_SD, TB_BCAST_SH, TB_BCAST_SS, and TB_BCAST_W.
Referenced by lookupBroadcastFoldTableBySize().
SelectPatternResult llvm::matchDecomposedSelectPattern | ( | CmpInst * | CmpI, |
Value * | TrueVal, | ||
Value * | FalseVal, | ||
Value *& | LHS, | ||
Value *& | RHS, | ||
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 9066 of file ValueTracking.cpp.
References llvm::CallingConv::C, Depth, llvm::Instruction::getFastMathFlags(), llvm::User::getOperand(), llvm::CmpInst::getPredicate(), llvm::Value::getType(), llvm::CmpInst::isEquality(), LHS, lookThroughCast(), RHS, llvm::FastMathFlags::setNoSignedZeros(), SPF_UNKNOWN, and SPNB_NA.
Referenced by matchSelectPattern(), and simplifySelectWithICmpCond().
|
inline |
Definition at line 1172 of file ValueTracking.h.
References LHS, matchSelectPattern(), and RHS.
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 9047 of file ValueTracking.cpp.
References Depth, LHS, matchDecomposedSelectPattern(), MaxAnalysisRecursionDepth, RHS, SPF_UNKNOWN, and SPNB_NA.
Referenced by canConvertToMinOrMaxIntrinsic(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpUsingKnownBits(), llvm::ARMTTIImpl::getCmpSelInstrCost(), getRangeForSelectPattern(), llvm::RecurrenceDescriptor::getReductionOpChain(), isSSATMinMaxPattern(), matchMinMaxOfMinMax(), matchSelectPattern(), llvm::InstCombinerImpl::visitFCmpInst(), and llvm::InstCombinerImpl::visitICmpInst().
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 9266 of file ValueTracking.cpp.
References I, matchSimpleRecurrence(), and P.
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:
NOTE: This is intentional simple. If you want the ability to analyze non-trivial loop conditons, see ScalarEvolution instead.
Definition at line 9207 of file ValueTracking.cpp.
References P.
Referenced by canFoldTermCondOfLoop(), computeKnownBitsFromOperator(), foldDependentIVs(), getInvertibleOperands(), isNonZeroRecurrence(), isPowerOfTwoRecurrence(), matchSimpleRecurrence(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitFMul(), and llvm::InstCombinerImpl::visitOr().
bool llvm::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.
If ConstVal
is null, the source value was undef.
Definition at line 1580 of file Utils.cpp.
References llvm::MachineOperand::getCImm(), getDefIgnoringCopies(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), I, Match, and MRI.
Referenced by llvm::CombinerHelper::buildSDivUsingMul(), llvm::CombinerHelper::buildUDivUsingMul(), isNonZeroModBitWidthOrUndef(), llvm::CombinerHelper::matchDivByPow2(), llvm::CombinerHelper::matchRotateOutOfRange(), llvm::CombinerHelper::matchSDivByConst(), llvm::CombinerHelper::matchShiftsTooBig(), llvm::CombinerHelper::matchUDivByConst(), and llvm::CombinerHelper::matchUMulHToLShr().
|
inline |
Definition at line 132 of file GCNRegPressure.h.
Referenced by llvm::GCNDownwardRPTracker::advanceBeforeNext(), llvm::GCNDownwardRPTracker::advanceToNext(), llvm::ConstantRange::ashr(), costAndCollectOperands(), DecodeFromCyclicRange(), llvm::SDNode::getMaxNumOperands(), llvm::AArch64_AM::isSVECpyImm(), llvm::ConstantRange::lshr(), and llvm::GCNUpwardRPTracker::recede().
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 2014 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by findMostPopularDest(), fitWeights(), llvm::DataLayout::getLargestLegalIntTypeSizeInBits(), llvm::pdb::PDBFile::getMaxStreamSize(), llvm::ScalarEvolution::isKnownViaInduction(), and llvm::objcopy::macho::MachOWriter::totalSize().
auto llvm::max_element | ( | R && | Range, |
Compare | C | ||
) |
Definition at line 2018 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
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 1604 of file APFloat.h.
Referenced by ConstantFoldFPBinOp(), llvm::SelectionDAG::foldConstantFPMath(), and llvm::InstCombinerImpl::visitCallInst().
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 1617 of file APFloat.h.
Referenced by llvm::SelectionDAG::foldConstantFPMath().
|
inline |
Gets the maximum value for a N-bit signed integer.
Definition at line 246 of file MathExtras.h.
Referenced by llvm::ARMAsmBackend::adjustFixupValue(), convertStrToInt(), extractBitsForFixup(), isIntN(), llvm::LegalizerHelper::narrowScalarFLDEXP(), and reportOutOfRangeError().
Implements IEEE-754 2019 maximumNumber semantics.
Returns the larger of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument. +0 is treated as ordered greater than -0.
Definition at line 1563 of file APFloat.h.
Referenced by ConstantFoldFPBinOp(), fmed3AMDGCN(), llvm::SelectionDAG::foldConstantFPMath(), llvm::ConstantFPRange::intersectWith(), llvm::ConstantFPRange::unionWith(), and llvm::InstCombinerImpl::visitCallInst().
Gets the maximum value for a N-bit unsigned integer.
Definition at line 221 of file MathExtras.h.
References assert(), N, and UINT64_MAX.
Referenced by convertStrToInt(), llvm::AMDGPU::EncodingFields< Fields >::decode(), extractBitsForFixup(), GenerateFixedLengthSVETBL(), llvm::TargetMachine::getMaxCodeSize(), isUIntN(), llvm::SIInstrInfo::optimizeCompareInstr(), and adjust::unsigned_width().
void llvm::maybeMarkSanitizerLibraryCallNoBuiltin | ( | CallInst * | CI, |
const TargetLibraryInfo * | TLI | ||
) |
Given a CallInst, check if it calls a string function known to CodeGen, and mark it with NoBuiltin if so.
To be used by sanitizers that intend to intercept string functions and want to avoid converting them to target specific instructions.
Definition at line 4199 of file Local.cpp.
References llvm::CallBase::addFnAttr(), F, llvm::CallBase::getCalledFunction(), llvm::TargetLibraryInfo::getLibFunc(), and llvm::TargetLibraryInfo::hasOptimizedCodeGen().
Referenced by collectMemAccessInfo().
Check whether a string looks like an old loop attachment tag.
Definition at line 93 of file AutoUpgrade.h.
References Name.
Definition at line 392 of file MustExecute.cpp.
References containsIrreducibleCFG(), and F.
Referenced by llvm::MustBeExecutedContextExplorer::findForwardJoinPoint().
Returns true if the instruction could have memprof metadata, used to ensure consistency between summary analysis and the ThinLTO backend processing.
Referenced by computeFunctionSummary().
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.
Definition at line 7156 of file ValueTracking.cpp.
References I, isGuaranteedToTransferExecutionToSuccessor(), and isSafeToSpeculativelyExecute().
Referenced by areAllOperandsNonInsts(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().
MDNode * llvm::mayHaveValueProfileOfKind | ( | const Instruction & | Inst, |
InstrProfValueKind | ValueKind | ||
) |
Definition at line 1345 of file InstrProf.cpp.
References llvm::Instruction::getMetadata(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::ConstantInt::getZExtValue(), and Tag.
Referenced by getValueProfDataFromInst().
|
static |
Definition at line 27 of file ARMBasicBlockInfo.cpp.
References MI.
Referenced by llvm::ARMBasicBlockUtils::computeBlockSize().
Definition at line 85 of file VECustomDAG.cpp.
References getVVPOpcode().
Referenced by llvm::VETargetLowering::legalizePackedAVL().
|
inlinestatic |
Definition at line 44 of file MCLinkerOptimizationHint.h.
Definition at line 67 of file MCLinkerOptimizationHint.h.
References MCLOHCaseIdToName.
|
inlinestatic |
Definition at line 83 of file MCLinkerOptimizationHint.h.
References MCLOH_AdrpAdd, MCLOH_AdrpAddLdr, MCLOH_AdrpAddStr, MCLOH_AdrpAdrp, MCLOH_AdrpLdr, MCLOH_AdrpLdrGot, MCLOH_AdrpLdrGotLdr, and MCLOH_AdrpLdrGotStr.
|
inlinestatic |
Definition at line 52 of file MCLinkerOptimizationHint.h.
References MCLOHCaseNameToId, and Name.
Helper to compute and return lower 64 bits of the given string's MD5 hash.
Definition at line 109 of file MD5.h.
References llvm::MD5::final(), and llvm::MD5::update().
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.
Definition at line 777 of file Local.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdatesPermissive(), assert(), llvm::BasicBlock::begin(), llvm::SmallPtrSetImplBase::clear(), llvm::DomTreeUpdater::deleteBB(), llvm::Constant::destroyConstant(), 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::SmallPtrSetImpl< PtrType >::insert(), 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::SmallVectorBase< Size_T >::size(), llvm::BasicBlock::size(), and llvm::BasicBlock::splice().
Referenced by llvm::JumpThreadingPass::maybeMergeBasicBlockIntoOnlyPred().
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 180 of file BasicBlockUtils.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), llvm::CallingConv::C, llvm::DomTreeNodeBase< NodeT >::children(), llvm::SmallPtrSetImplBase::clear(), llvm::SmallPtrSetImpl< PtrType >::contains(), dbgs(), DeleteDeadBlock(), llvm::MemorySSA::End, llvm::BasicBlock::end(), llvm::Instruction::eraseFromParent(), llvm::DominatorTreeBase< NodeT, IsPostDom >::eraseNode(), FoldSingleEntryPHINodes(), 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::SmallPtrSetImpl< PtrType >::insert(), llvm::MemoryDependenceResults::invalidateCachedPredecessors(), is_contained(), 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_begin(), succ_empty(), succ_end(), succ_size(), successors(), llvm::Value::takeName(), and to_vector().
Referenced by foldCondBranchOnValueKnownInPredecessorImpl(), mergeBlocksIntoPredecessors(), MergeBlockSuccessorsIntoGivenBlocks(), UnrollLoop(), and UnrollRuntimeLoopRemainder().
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 339 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().
|
inline |
Definition at line 69 of file SampleProf.h.
References Accumulator, and success.
Referenced by llvm::sampleprof::FunctionSamples::merge(), llvm::sampleprof::SampleRecord::merge(), and llvm::sampleprof::SampleProfileReaderText::readImpl().
llvm::MFPropsModifier | ( | PassT & | P, |
MachineFunction & | MF | ||
) | -> MFPropsModifier< PassT > |
|
inline |
Definition at line 210 of file MachineInstrBundle.h.
References llvm::MIBundleOperands::end(), make_range(), and MI.
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 2450 of file MicrosoftDemangle.cpp.
References D, demangle_invalid_mangled_name, demangle_success, MSDF_DumpBackrefs, MSDF_NoAccessSpecifier, MSDF_NoCallingConvention, MSDF_NoMemberType, MSDF_NoReturnType, MSDF_NoVariableType, Name, 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 - Convert a target MImm immediate to an integer immediate value.
Definition at line 367 of file VE.h.
Referenced by llvm::VEInstrInfo::foldImmediate().
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 2004 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
auto llvm::min_element | ( | R && | Range, |
Compare | C | ||
) |
Definition at line 2008 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
|
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.
Referenced by commonAlignment(), llvm::GIMatchTableExecutor::executeMatchTable(), getKnowledgeFromBundle(), llvm::GEPOperator::getMaxPreservedAlignment(), llvm::GCNTTIImpl::getMemcpyLoopLoweringType(), llvm::GCNTTIImpl::getMemcpyLoopResidualLoweringType(), llvm::LegalizerHelper::getStackTemporaryAlignment(), llvm::CCState::HandleByVal(), and llvm::InstCombinerImpl::visitCallInst().
Fallback when arguments aren't integral.
Definition at line 378 of file MathExtras.h.
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 1577 of file APFloat.h.
Referenced by ConstantFoldFPBinOp(), llvm::SelectionDAG::foldConstantFPMath(), and llvm::InstCombinerImpl::visitCallInst().
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 1590 of file APFloat.h.
Referenced by llvm::SelectionDAG::foldConstantFPMath().
|
inline |
Gets the minimum value for a N-bit signed integer.
Definition at line 237 of file MathExtras.h.
Referenced by llvm::ARMAsmBackend::adjustFixupValue(), extractBitsForFixup(), isIntN(), llvm::LegalizerHelper::narrowScalarFLDEXP(), and reportOutOfRangeError().
Implements IEEE-754 2019 minimumNumber semantics.
Returns the smaller of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument. -0 is treated as ordered less than +0.
Definition at line 1549 of file APFloat.h.
Referenced by ConstantFoldFPBinOp(), llvm::SelectionDAG::foldConstantFPMath(), llvm::ConstantFPRange::intersectWith(), llvm::ConstantFPRange::unionWith(), and llvm::InstCombinerImpl::visitCallInst().
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 2031 of file STLExtras.h.
References adl_begin(), and adl_end().
|
static |
Definition at line 506 of file ARMLatencyMutations.cpp.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::mod | ( | const DynamicAPInt & | LHS, |
const DynamicAPInt & | RHS | ||
) |
|
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.
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 1873 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by llvm::AllocationOrder::AllocationOrder(), llvm::Any::Any(), llvm::APSInt::APSInt(), computeForAddCarry(), llvm::orc::ThreadSafeContext::Lock::Lock(), llvm::LoongArchAsmPrinter::LoongArchAsmPrinter(), llvm::M68kAsmPrinter::M68kAsmPrinter(), llvm::MipsAsmPrinter::MipsAsmPrinter(), llvm::orc::LazyReexportsManager::MU::MU(), llvm::NVPTXAsmPrinter::NVPTXAsmPrinter(), llvm::orc::SimpleLazyReexportsSpeculator::SpeculateTask::SpeculateTask(), llvm::StringMap< ValueTy, AllocatorTy >::StringMap(), llvm::SystemZAsmPrinter::SystemZAsmPrinter(), llvm::WebAssemblyAsmPrinter::WebAssemblyAsmPrinter(), and llvm::XtensaAsmPrinter::XtensaAsmPrinter().
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().
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::BasicBlock::getTerminator(), I, isSafeToMoveBefore(), and llvm::BasicBlock::size().
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 ocurred.
Definition at line 755 of file MathExtras.h.
Referenced by multiplyWithOverflow(), llvm::ConstraintSystem::negateOrEqual(), llvm::DynamicAPInt::operator*(), llvm::DynamicAPInt::operator*=(), and llvm::InstructionCost::operator*=().
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 7870 of file ValueTracking.cpp.
References any_of(), llvm::DominatorTree::dominates(), llvm::SmallVectorBase< Size_T >::empty(), I, llvm::SmallSet< T, N, C >::insert(), mustTriggerUB(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by canFoldTermCondOfLoop(), and FindLoopCounter().
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 371 of file Loads.cpp.
References llvm::LoadInst::isUnordered(), and suppressSpeculativeLoadForSanitizers().
Referenced by canWidenLoad(), and isSafeToSpeculativelyExecuteWithOpcode().
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 8151 of file ValueTracking.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), handleGuaranteedNonPoisonOps(), and I.
Referenced by mustExecuteUBIfPoisonOnPathTo(), and programUndefinedIfUndefOrPoison().
llvm::MutableArrayRef | ( | SmallVector< T, N > & | Vec | ) | -> MutableArrayRef< T > |
llvm::MutableArrayRef | ( | SmallVectorImpl< T > & | Vec | ) | -> MutableArrayRef< T > |
Deduction guide to construct a MutableArrayRef
from a SmallVector
.
llvm::MutableArrayRef | ( | std::array< T, N > & | Vec | ) | -> MutableArrayRef< T > |
Deduction guide to construct a MutableArrayRef
from a std::array
.
llvm::MutableArrayRef | ( | std::vector< T > & | Vec | ) | -> MutableArrayRef< T > |
Deduction guide to construct a MutableArrayRef
from a std::vector
.
llvm::MutableArrayRef | ( | T & | OneElt | ) | -> MutableArrayRef< T > |
llvm::MutableArrayRef | ( | T * | data, |
size_t | length | ||
) | -> MutableArrayRef< T > |
Deduction guide to construct a MutableArrayRef
from a pointer and length.
llvm::MutableArrayRef | ( | T(&) | Arr[N] | ) | -> MutableArrayRef< T > |
Deduction guide to construct a MutableArrayRef
from a C array.
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 count().
Referenced by llvm::NameAnonGlobalPass::run().
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 410 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().
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 1435 of file InstrProf.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, llvm::GlobalValue::ExternalWeakLinkage, llvm::GlobalValue::getLinkage(), llvm::GlobalObject::hasComdat(), and llvm::Triple::supportsCOMDAT().
Referenced by canRenameComdatFunc().
Definition at line 1127 of file StackSafetyAnalysis.cpp.
References F, and StackSafetyRun.
Referenced by llvm::ModuleSummaryIndexAnalysis::run(), and llvm::ModuleSummaryIndexWrapperPass::runOnModule().
Returns the negated value of the argument.
Definition at line 1540 of file APFloat.h.
References X.
Referenced by llvm::AMDGPUTargetLowering::combineFMinMaxLegacy(), ConstantFoldUnaryInstruction(), and llvm::TargetLowering::getNegatedExpression().
|
inline |
Increment It
, then continue incrementing it while it points to a debug instruction.
A replacement for std::next.
Definition at line 1440 of file MachineBasicBlock.h.
References End, and skipDebugInstructionsForward().
Referenced by llvm::RegPressureTracker::advance(), llvm::RISCVFrameLowering::emitEpilogue(), emitSelectPseudo(), handleADRP(), INITIALIZE_PASS(), isLibCallInTailPosition(), and llvm::MachineBasicBlock::rfindPrevDebugLoc().
Returns the next power of two (in 64-bits) that is strictly greater than A.
Returns zero on overflow.
Definition at line 384 of file MathExtras.h.
References A.
Referenced by llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::coefficientNextPowerOf2(), combineWeightsByHashing(), llvm::AArch64TTIImpl::getMemoryOpCost(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::getMinBucketToReserveForEntries(), getMinBucketToReserveForEntries(), getShiftAmount(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, BucketT >::grow(), llvm::SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >::grow(), llvm::BitmaskEnumDetail::Mask(), operator new(), llvm::jitlink::relaxAlign(), llvm::detail::IEEEFloat::roundToIntegral(), shouldWidenLoad(), llvm::TargetLowering::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >::SmallDenseMap(), switchToLookupTable(), llvm::SelectionDAG::WidenVector(), and writeIndex().
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().
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 1753 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::SIScheduleBlock::addPred(), llvm::RegionBase< Tr >::addSubRegion(), llvm::SIScheduleBlock::addSucc(), addToFwdRegWorklist(), llvm::X86TTIImpl::areTypesABICompatible(), llvm::PPCTTIImpl::areTypesABICompatible(), basicBlockCanReturn(), llvm::DIExpression::canonicalizeExpressionOps(), llvm::RegAllocEvictionAdvisor::canReassign(), combineConcatVectorOps(), combineX86ShufflesConstants(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton(), llvm::OpenMPIRBuilder::createReductions(), dependsOnLocalPhi(), llvm::TargetLoweringBase::emitPatchPoint(), emitSCSEpilogue(), emitSCSPrologue(), llvm::TimeTraceProfiler::end(), llvm::InstCombinerImpl::foldICmpSubConstant(), foldShuffledIntrinsicOperands(), llvm::AttributeList::get(), getAppleRuntimeUnrollPreferences(), llvm::GCNTTIImpl::getCallerAllocaCost(), llvm::X86::getFirstAddrOperandIdx(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), hoistLockstepIdenticalDbgVariableRecords(), imageIntrinsicOptimizerImpl(), isAssumeWithEmptyBundle(), isPointerValueDeadOnEntryToFunction(), legalizeAndOptimizeInductions(), llvm::AMDGPUCallLowering::lowerChainCall(), lowerV16I8Shuffle(), llvm::SelectionDAG::matchBinOpReduction(), OptimizeStaticIFuncs(), processUse(), llvm::ModuleSummaryIndex::propagateAttributes(), llvm::jitlink::LinkGraph::removeAbsoluteSymbol(), llvm::jitlink::LinkGraph::removeBlock(), llvm::jitlink::LinkGraph::removeExternalSymbol(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::LiveRange::removeValNoIfDead(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), llvm::LiveIntervals::repairIntervalsInRange(), llvm::LoopVectorizationCostModel::requiresScalarEpilogue(), resolveTargetShuffleInputsAndMask(), llvm::HexagonShuffler::restrictStoreLoadOrder(), llvm::MachineInstr::setPhysRegsDeadExcept(), stashEntryDbgValues(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), tryUnmergingGEPsAcrossIndirectBr(), tryWidenCondBranchToCondBranch(), llvm::AssumptionCache::updateAffectedValues(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::UpdateRootsAfterUpdate(), upgradeInstructionLoopAttachment(), and llvm::InstCombinerImpl::visitSub().
bool llvm::nonMicrosoftDemangle | ( | std::string_view | MangledName, |
std::string & | Result, | ||
bool | CanHaveLeadingDot = true , |
||
bool | ParseParams = true |
||
) |
Definition at line 50 of file Demangle.cpp.
References dlangDemangle(), isDLangEncoding(), isItaniumEncoding(), isRustEncoding(), itaniumDemangle(), and rustDemangle().
Referenced by demangle(), and llvm::symbolize::LLVMSymbolizer::DemangleName().
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::SmallVectorTemplateCommon< T, typename >::back(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::PostDominatorTree::dominates(), llvm::SmallVectorBase< Size_T >::empty(), llvm::DominatorTree::findNearestCommonDominator(), llvm::SmallPtrSetImpl< PtrType >::insert(), isControlFlowEquivalent(), llvm::SmallVectorTemplateBase< T, bool >::pop_back(), predecessors(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by isReachedBefore().
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.") | |||
) |
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.") | |||
) |
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().
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().
|
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)
UseDefFreq | Expected number of executed use and def instructions per function call. Derived from block frequencies. |
Size | Size of live interval as returnexd by getSize() |
NumInstr | Number 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().
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. ") | |||
) |
Check whether null pointer dereferencing is considered undefined behavior for a given function or an address space.
Null pointer access in non-zero address space is not considered undefined. Return value: false => null pointer dereference is undefined. Return value: true => null pointer dereference is not undefined.
Definition at line 1187 of file Function.cpp.
Referenced by AllUsesOfValueWillTrapIfNull(), annotateDereferenceableBytes(), annotateNonNullNoUndefBasedOnAccess(), canSimplifyNullLoadOrGEP(), canSimplifyNullStoreOrGEP(), computePointerICmp(), evaluateICmpRelation(), llvm::InstCombinerImpl::foldGEPICmp(), foldICmpInvariantGroup(), getPointerSize(), getPotentialCopiesOfMemoryValue(), getPtrStride(), isGEPKnownNonNull(), llvm::AANonNull::isImpliedByIR(), llvm::AANoAlias::isImpliedByIR(), isKnownNonNullFromDominatingCondition(), isKnownNonZero(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), llvm::CallBase::isReturnNonNull(), markAliveBlocks(), OptimizeAwayTrappingUsesOfValue(), optimizeOnceStoredGlobal(), passingValueIsAlwaysUndefined(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitLoadInst().
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 918 of file raw_ostream.cpp.
Referenced by llvm::DWARFFormValue::dump(), llvm::MCStreamer::getCommentOS(), and LLVMParseCommandLineOptions().
Returns the necessary adjustment for aligning Addr
to Alignment
bytes, rounding up.
Definition at line 203 of file Alignment.h.
References Addr, and offsetToAlignment().
Referenced by llvm::coverage::CovMapFunctionRecordV3::advanceByOne(), and loadTestingFormat().
Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value
and is a multiple of Align
.
Definition at line 197 of file Alignment.h.
References alignTo().
Referenced by computeECSymbolsSize(), llvm::MCAssembler::computeFragmentSize(), computeMemberData(), computeStringTable(), computeSymbolMapSize(), computeSymbolTableSize(), llvm::OnDiskChainedHashTableGenerator< Info >::Emit(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::dwarf_linker::classic::DwarfStreamer::emitDwarfDebugArangesTable(), llvm::MachObjectWriter::getPaddingSize(), offsetToAlignedAddr(), printBSDMemberHeader(), llvm::StableFunctionMapRecord::serialize(), tryToShorten(), llvm::coverage::TestingFormatWriter::write(), llvm::MachObjectWriter::writeLinkerOptionsLoadCommand(), llvm::DXContainerObjectWriter::writeObject(), and llvm::MachObjectWriter::writeObject().
Return true if the only users of this pointer are lifetime markers.
Definition at line 7026 of file ValueTracking.cpp.
References onlyUsedByLifetimeMarkersOrDroppableInstsHelper().
Referenced by isAllocaPromotable().
Return true if the only users of this pointer are lifetime markers or droppable instructions.
Definition at line 7030 of file ValueTracking.cpp.
References onlyUsedByLifetimeMarkersOrDroppableInstsHelper().
Referenced by isAllocaPromotable().
Definition at line 262 of file Alignment.h.
|
inline |
Definition at line 298 of file Alignment.h.
Definition at line 237 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
Definition at line 553 of file ArrayRef.h.
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 717 of file DenseMap.h.
bool llvm::operator!= | ( | const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & | LHS, |
const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & | RHS | ||
) |
Definition at line 67 of file SymbolSet.h.
Definition at line 350 of file DWARFDie.h.
|
inline |
Definition at line 340 of file DWARFDie.h.
|
inline |
Definition at line 36 of file DWARFLocationExpression.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator!= | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 586 of file DynamicAPInt.h.
|
inline |
Definition at line 246 of file IntrusiveRefCntPtr.h.
bool llvm::operator!= | ( | const IntrusiveRefCntPtr< T > & | A, |
std::nullptr_t | B | ||
) |
Definition at line 287 of file IntrusiveRefCntPtr.h.
|
inline |
Definition at line 257 of file IntrusiveRefCntPtr.h.
|
inline |
Definition at line 52 of file MachineLocation.h.
bool llvm::operator!= | ( | const SmallPtrSetImpl< PtrType > & | LHS, |
const SmallPtrSetImpl< PtrType > & | RHS | ||
) |
Inequality comparison for SmallPtrSet.
Equivalent to !(LHS == RHS).
Definition at line 509 of file SmallPtrSet.h.
Inequality comparison for SmallSet.
Equivalent to !(LHS == RHS). See operator== for performance notes.
Definition at line 290 of file SmallSet.h.
|
inline |
Definition at line 471 of file DWARFDie.h.
Definition at line 271 of file ModuleSummaryIndex.h.
|
inline |
Definition at line 1165 of file DebugInfoMetadata.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator!= | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 616 of file DynamicAPInt.h.
|
inline |
Definition at line 296 of file Alignment.h.
|
inline |
Definition at line 303 of file Alignment.h.
|
inline |
Definition at line 306 of file Alignment.h.
bool llvm::operator!= | ( | PointerUnion< PTs... > | lhs, |
PointerUnion< PTs... > | rhs | ||
) |
Definition at line 213 of file PointerUnion.h.
References llvm::PointerUnion< PTs >::getOpaqueValue().
|
inline |
Definition at line 558 of file ArrayRef.h.
|
inline |
Definition at line 308 of file Alignment.h.
bool llvm::operator!= | ( | std::nullptr_t | A, |
const IntrusiveRefCntPtr< T > & | B | ||
) |
Definition at line 282 of file IntrusiveRefCntPtr.h.
Definition at line 889 of file StringRef.h.
|
inline |
Definition at line 267 of file IntrusiveRefCntPtr.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator% | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 554 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator% | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 574 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator%= | ( | DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 534 of file DynamicAPInt.h.
Definition at line 2102 of file APInt.h.
References operator&(), and RHS.
ChangeStatus llvm::operator& | ( | ChangeStatus | l, |
ChangeStatus | r | ||
) |
Definition at line 191 of file Attributor.cpp.
Definition at line 2097 of file APInt.h.
References operator&().
|
inline |
Definition at line 195 of file JITSymbol.h.
Definition at line 507 of file KnownBits.h.
|
inline |
Definition at line 710 of file SmallBitVector.h.
|
inline |
Definition at line 859 of file SparseBitVector.h.
|
inline |
Definition at line 502 of file KnownBits.h.
|
inline |
Definition at line 489 of file SelectionDAGNodes.h.
Definition at line 2107 of file APInt.h.
References LHS, and operator&().
ChangeStatus & llvm::operator&= | ( | ChangeStatus & | l, |
ChangeStatus | r | ||
) |
Definition at line 194 of file Attributor.cpp.
|
inline |
Definition at line 841 of file SparseBitVector.h.
|
inline |
Definition at line 835 of file SparseBitVector.h.
Definition at line 2204 of file APInt.h.
References operator*(), and RHS.
Referenced by operator*(), llvm::BranchInst::succ_op_iterator::operator->(), llvm::BranchInst::const_succ_op_iterator::operator->(), llvm::IndirectBrInst::succ_op_iterator::operator->(), and llvm::IndirectBrInst::const_succ_op_iterator::operator->().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator* | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 546 of file DynamicAPInt.h.
|
inline |
Definition at line 264 of file InstructionCost.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator* | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 566 of file DynamicAPInt.h.
Definition at line 2209 of file APInt.h.
References LHS, and operator*().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator*= | ( | DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 526 of file DynamicAPInt.h.
Definition at line 2172 of file APInt.h.
References operator+(), and RHS.
Definition at line 2167 of file APInt.h.
References operator+().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator+ | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 538 of file DynamicAPInt.h.
|
inline |
Definition at line 139 of file GCNRegPressure.h.
|
inline |
Definition at line 250 of file InstructionCost.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator+ | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 558 of file DynamicAPInt.h.
Definition at line 2177 of file APInt.h.
References LHS, and operator+().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator+= | ( | DynamicAPInt & | A, |
int64_t | B | ||
) |
|
inline |
Definition at line 907 of file StringRef.h.
Definition at line 2182 of file APInt.h.
References operator-().
Definition at line 2193 of file APInt.h.
References operator-(), and RHS.
Definition at line 2187 of file APInt.h.
References operator-().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator- | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 542 of file DynamicAPInt.h.
|
inline |
Definition at line 146 of file GCNRegPressure.h.
|
inline |
Definition at line 257 of file InstructionCost.h.
|
inline |
Definition at line 868 of file SparseBitVector.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator- | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 562 of file DynamicAPInt.h.
Definition at line 2198 of file APInt.h.
References LHS, and operator-().
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator-= | ( | DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 522 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator/ | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 550 of file DynamicAPInt.h.
|
inline |
Definition at line 271 of file InstructionCost.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt llvm::operator/ | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 570 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE DynamicAPInt & llvm::operator/= | ( | DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 530 of file DynamicAPInt.h.
Definition at line 271 of file Alignment.h.
|
delete |
Definition at line 249 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
delete |
|
delete |
|
inline |
Compare two fragments based on their offset.
Definition at line 280 of file DebugLocEntry.h.
|
inline |
Definition at line 3213 of file DebugInfoMetadata.h.
|
inline |
Definition at line 75 of file DWARFAddressRange.h.
Definition at line 354 of file DWARFDie.h.
|
inlinestatic |
Definition at line 375 of file DWARFVerifier.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator< | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 596 of file DynamicAPInt.h.
|
inline |
Definition at line 931 of file LiveInterval.h.
References llvm::LiveRange::Segment::start.
bool llvm::operator< | ( | const struct EntryValueInfo & | LHS, |
const struct EntryValueInfo & | RHS | ||
) |
bool llvm::operator< | ( | const struct FrameIndexExpr & | LHS, |
const struct FrameIndexExpr & | RHS | ||
) |
Definition at line 277 of file ModuleSummaryIndex.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator< | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 626 of file DynamicAPInt.h.
Definition at line 361 of file APSInt.h.
Referenced by INITIALIZE_PASS(), llvm::HexagonBlockRanges::IndexType::operator<(), llvm::HexagonBlockRanges::IndexType::operator<=(), and llvm::VirtRegAuxInfo::weightCalcHelper().
|
delete |
|
delete |
bool llvm::operator< | ( | PointerUnion< PTs... > | lhs, |
PointerUnion< PTs... > | rhs | ||
) |
Definition at line 218 of file PointerUnion.h.
References llvm::PointerUnion< PTs >::getOpaqueValue().
|
inline |
Definition at line 927 of file LiveInterval.h.
References llvm::LiveRange::Segment::start.
Definition at line 891 of file StringRef.h.
ScaledNumber< DigitsT > llvm::operator<< | ( | const ScaledNumber< DigitsT > & | L, |
int16_t | Shift | ||
) |
Definition at line 407 of file ScaledNumber.h.
llvm::raw_ostream & llvm::operator<< | ( | llvm::raw_ostream & | O, |
const llvm::Annotations::Range & | R | ||
) |
Definition at line 175 of file Annotations.cpp.
References formatv().
llvm::raw_ostream & llvm::operator<< | ( | llvm::raw_ostream & | OS, |
const GUID & | G | ||
) |
Definition at line 192 of file DIARawSymbol.cpp.
MCStreamer & llvm::operator<< | ( | MCStreamer & | OS, |
MipsABIFlagsSection & | ABIFlagsSection | ||
) |
Definition at line 58 of file MipsABIFlagsSection.cpp.
References llvm::MipsABIFlagsSection::getASESetValue(), llvm::MipsABIFlagsSection::getCPR1SizeValue(), llvm::MipsABIFlagsSection::getCPR2SizeValue(), llvm::MipsABIFlagsSection::getFlags1Value(), llvm::MipsABIFlagsSection::getFlags2Value(), llvm::MipsABIFlagsSection::getFpABIValue(), llvm::MipsABIFlagsSection::getGPRSizeValue(), llvm::MipsABIFlagsSection::getISAExtensionValue(), llvm::MipsABIFlagsSection::getISALevelValue(), llvm::MipsABIFlagsSection::getISARevisionValue(), llvm::MipsABIFlagsSection::getVersionValue(), and OS.
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 1 of file raw_ostream.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const AAPointerInfo::Access & | Acc | ||
) |
Definition at line 3784 of file Attributor.cpp.
References llvm::AAPointerInfo::Access::getContent(), llvm::AAPointerInfo::Access::getKind(), llvm::AAPointerInfo::Access::getLocalInst(), llvm::AAPointerInfo::Access::getRemoteInst(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const LoopNest & | LN | ||
) |
Definition at line 437 of file LoopNestAnalysis.cpp.
References llvm::LoopNest::getLoops(), llvm::LoopNest::getMaxPerfectDepth(), llvm::Loop::getName(), llvm::LoopNest::getNestDepth(), llvm::LoopNest::getOutermostLoop(), and OS.
|
inline |
Definition at line 134 of file ARMConstantPoolValue.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | O, |
const DomTreeNodeBase< NodeT > * | Node | ||
) |
Definition at line 170 of file GenericDomTree.h.
References Node::printAsOperand().
|
inline |
An raw_ostream inserter for modules.
|
inline |
Definition at line 117 of file XtensaConstantPoolValue.h.
|
inline |
Definition at line 137 of file FMF.h.
References llvm::FastMathFlags::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
AliasResult | AR | ||
) |
<< operator for AliasResult.
Definition at line 406 of file AliasAnalysis.cpp.
References llvm::AliasResult::getOffset(), llvm::AliasResult::hasOffset(), llvm::AliasResult::MayAlias, llvm::AliasResult::MustAlias, llvm::AliasResult::NoAlias, OS, and llvm::AliasResult::PartialAlias.
|
inline |
Definition at line 200 of file BranchProbability.h.
References OS, and llvm::BranchProbability::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
CaptureComponents | CC | ||
) |
Definition at line 55 of file ModRef.cpp.
References capturesAddress(), capturesAddressIsNullOnly(), capturesFullProvenance(), capturesNothing(), capturesReadProvenanceOnly(), CC, and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
CaptureInfo | Info | ||
) |
Definition at line 74 of file ModRef.cpp.
References capturesNothing(), llvm::CaptureInfo::getOtherComponents(), llvm::CaptureInfo::getRetComponents(), OS, and Other.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
ChangeStatus | S | ||
) |
Helpers to ease debugging through output streams and print calls.
{
Definition at line 3665 of file Attributor.cpp.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
CmpInst::Predicate | Pred | ||
) |
Definition at line 3579 of file Instructions.cpp.
References llvm::CmpInst::getPredicateName(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const AbstractAttribute & | AA | ||
) |
Forward declarations of output streams for debug purposes.
{
Definition at line 3715 of file Attributor.cpp.
References OS, and llvm::AbstractAttribute::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const AbstractState & | State | ||
) |
Definition at line 3711 of file Attributor.cpp.
References llvm::AbstractState::isAtFixpoint(), llvm::AbstractState::isValidState(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const AddressRange & | R | ||
) |
Definition at line 64 of file ExtractRanges.cpp.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const AddressRanges & | AR | ||
) |
Definition at line 68 of file ExtractRanges.cpp.
References I, OS, llvm::AddressRangesBase< T >::size(), and Size.
|
inline |
Definition at line 156 of file AliasSetTracker.h.
References OS, and llvm::AliasSet::print().
|
inline |
Definition at line 264 of file AliasSetTracker.h.
References OS, and llvm::AliasSetTracker::print().
|
inline |
Definition at line 434 of file ModuleSummaryIndex.h.
References llvm::AllocInfo::ContextSizeInfos, First, llvm::AllocInfo::MIBs, OS, and llvm::AllocInfo::Versions.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const AMDGPU::IsaInfo::TargetIDSetting | S | ||
) |
Definition at line 3031 of file AMDGPUBaseInfo.cpp.
References llvm::AMDGPU::IsaInfo::Any, llvm::AMDGPU::IsaInfo::Off, llvm::AMDGPU::IsaInfo::On, OS, and llvm::AMDGPU::IsaInfo::Unsupported.
|
inline |
Definition at line 303 of file APFixedPoint.h.
References OS, and llvm::APFixedPoint::toString().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 93 of file AMDGPUArgumentUsageInfo.h.
References OS, and llvm::ArgDescriptor::print().
|
inlinestatic |
Definition at line 169 of file StackLifetime.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const BT::BitValue & | BV | ||
) |
Definition at line 97 of file BitTracker.cpp.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const BT::RegisterCell & | RC | ||
) |
Definition at line 115 of file BitTracker.cpp.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const CacheCost & | CC | ||
) |
Definition at line 560 of file LoopCacheAnalysis.cpp.
|
inline |
Definition at line 342 of file ModuleSummaryIndex.h.
References llvm::CallsiteInfo::Callee, llvm::CallsiteInfo::Clones, First, OS, and llvm::CallsiteInfo::StackIdIndices.
|
inline |
Definition at line 71 of file Comdat.h.
References llvm::CallingConv::C, and OS.
|
inline |
Definition at line 202 of file ConstantFPRange.h.
References OS, and llvm::ConstantFPRange::print().
|
inline |
Definition at line 603 of file ConstantRange.h.
References OS, and llvm::ConstantRange::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DataDependenceGraph & | G | ||
) |
|
inline |
Definition at line 659 of file DebugProgramInstruction.h.
References OS, and llvm::DbgMarker::print().
|
inline |
Definition at line 216 of file DebugProgramInstruction.h.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DDGEdge & | E | ||
) |
Definition at line 176 of file DDG.cpp.
References llvm::DDGEdge::getKind(), llvm::DGEdge< NodeType, EdgeType >::getTargetNode(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DDGEdge::EdgeKind | K | ||
) |
Definition at line 156 of file DDG.cpp.
References llvm::DDGEdge::MemoryDependence, OS, llvm::DDGEdge::RegisterDefUse, llvm::DDGEdge::Rooted, and llvm::DDGEdge::Unknown.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DDGNode & | N | ||
) |
Definition at line 81 of file DDG.cpp.
References I, llvm::raw_ostream::indent(), llvm_unreachable, N, and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DDGNode::NodeKind | K | ||
) |
Definition at line 58 of file DDG.cpp.
References llvm::DDGNode::MultiInstruction, OS, llvm::DDGNode::PiBlock, llvm::DDGNode::Root, llvm::DDGNode::SingleInstruction, and llvm::DDGNode::Unknown.
|
inline |
Stream operator function for FixedOrScalableQuantity
.
Definition at line 421 of file TypeSize.h.
References OS, and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DWARFAddressRange & | R | ||
) |
Definition at line 30 of file DWARFAddressRange.cpp.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const DWARFLocationExpression & | Loc | ||
) |
Definition at line 15 of file DWARFLocationExpression.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::DWARFLocationExpression::Expr, formatv(), make_range(), OS, and llvm::DWARFLocationExpression::Range.
|
inline |
Definition at line 222 of file DynamicAPInt.h.
|
inline |
Definition at line 561 of file ValueTypes.h.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const FaultMapParser & | FMP | ||
) |
Definition at line 51 of file FaultMapParser.cpp.
References format_hex(), llvm::FaultMapParser::getFaultMapVersion(), llvm::FaultMapParser::getFirstFunctionInfo(), llvm::FaultMapParser::FunctionInfoAccessor::getNextFunctionInfo(), llvm::FaultMapParser::getNumFunctions(), I, and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const FaultMapParser::FunctionFaultInfoAccessor & | FFI | ||
) |
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const FaultMapParser::FunctionInfoAccessor & | FI | ||
) |
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const GCNSchedStageID & | StageID | ||
) |
Definition at line 996 of file GCNSchedStrategy.cpp.
References ClusteredLowOccupancyReschedule, ILPInitialSchedule, MemoryClauseInitialSchedule, OccInitialSchedule, OS, PreRARematerialize, and UnclusteredHighRPReschedule.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const HexagonBlockRanges::IndexRange & | IR | ||
) |
Definition at line 501 of file HexagonBlockRanges.cpp.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const HexagonBlockRanges::InstrIndexMap & | M | ||
) |
Definition at line 516 of file HexagonBlockRanges.cpp.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const HexagonBlockRanges::PrintRangeMap & | P | ||
) |
Definition at line 525 of file HexagonBlockRanges.cpp.
References I, OS, P, and printReg().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const HexagonBlockRanges::RangeList & | RL | ||
) |
Definition at line 509 of file HexagonBlockRanges.cpp.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const HexNumber & | Value | ||
) |
Definition at line 9 of file ScopedPrinter.cpp.
References OS, and llvm::Value::Value().
LLVM_ATTRIBUTE_UNUSED raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const ILPValue & | Val | ||
) |
Definition at line 1537 of file ScheduleDAGInstrs.cpp.
References OS, and llvm::ILPValue::print().
|
inline |
Definition at line 826 of file raw_ostream.h.
References llvm::raw_ostream::indent(), llvm::indent::NumIndents, OS, and llvm::indent::Scale.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const IndexedReference & | R | ||
) |
Definition at line 129 of file LoopCacheAnalysis.cpp.
|
inline |
|
inline |
Definition at line 278 of file InstructionCost.h.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const IntegerRangeState & | State | ||
) |
Definition at line 3701 of file Attributor.cpp.
References llvm::IntegerRangeState::getAssumed(), llvm::IntegerRangeState::getBitWidth(), llvm::IntegerRangeState::getKnown(), OS, and llvm::ConstantRange::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const IntegerStateBase< base_ty, BestState, WorstState > & | S | ||
) |
Definition at line 3438 of file Attributor.h.
References llvm::IntegerStateBase< base_ty, BestState, WorstState >::getAssumed(), llvm::IntegerStateBase< base_ty, BestState, WorstState >::getKnown(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const IRPosition & | Pos | ||
) |
Definition at line 3691 of file Attributor.cpp.
References llvm::IRPosition::getAnchorValue(), llvm::IRPosition::getAssociatedValue(), llvm::IRPosition::getCallBaseContext(), llvm::IRPosition::getCallSiteArgNo(), llvm::Value::getName(), llvm::IRPosition::getPositionKind(), llvm::IRPosition::hasCallBaseContext(), and OS.
|
inline |
Definition at line 532 of file KnownBits.h.
References OS, and llvm::KnownBits::print().
|
inline |
Definition at line 920 of file LiveInterval.h.
References OS, and llvm::LiveInterval::print().
|
inline |
Definition at line 914 of file LiveInterval.h.
References OS, and llvm::LiveInterval::SubRange::print().
|
inline |
Definition at line 177 of file LivePhysRegs.h.
References OS, and llvm::LivePhysRegs::print().
|
inline |
Definition at line 680 of file LiveInterval.h.
References OS, and llvm::LiveRange::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const LiveRange::Segment & | S | ||
) |
Definition at line 989 of file LiveInterval.cpp.
References llvm::LiveRange::Segment::end, llvm::VNInfo::id, OS, llvm::LiveRange::Segment::start, and llvm::LiveRange::Segment::valno.
|
inline |
Definition at line 989 of file LiveInterval.h.
|
inline |
Definition at line 410 of file LowLevelType.h.
References OS, and llvm::LLT::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const LoopBase< BlockT, LoopT > & | Loop | ||
) |
Definition at line 516 of file GenericLoopInfo.h.
References OS, and llvm::LoopBase< BlockT, LoopT >::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const MachineBasicBlock & | MBB | ||
) |
Definition at line 117 of file MachineBasicBlock.cpp.
References MBB, OS, and llvm::MachineBasicBlock::print().
|
inline |
Definition at line 57 of file MachineConstantPool.h.
References OS.
|
inline |
Definition at line 2111 of file MachineInstr.h.
References MI, OS, and llvm::Pass::print().
|
inline |
Definition at line 1042 of file MachineOperand.h.
References OS, and llvm::MachineOperand::print().
|
inline |
Definition at line 445 of file MachineTraceMetrics.h.
References OS, and llvm::MachineTraceMetrics::Ensemble::print().
|
inline |
Definition at line 439 of file MachineTraceMetrics.h.
References OS, and llvm::MachineTraceMetrics::Trace::print().
|
inline |
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const MCFixup & | AF | ||
) |
Definition at line 89 of file MCFragment.cpp.
References llvm::MCFixup::getKind(), llvm::MCFixup::getOffset(), llvm::MCFixup::getValue(), and OS.
|
inline |
Definition at line 247 of file MCInst.h.
References MI, OS, and llvm::Pass::print().
|
inline |
|
inline |
Definition at line 242 of file MCInst.h.
References OS, and llvm::MCOperand::print().
|
inline |
Definition at line 100 of file MCParsedAsmOperand.h.
References OS, and llvm::MCParsedAsmOperand::print().
|
inline |
Definition at line 436 of file MCSymbol.h.
|
inline |
Definition at line 237 of file MemorySSA.h.
References OS, and llvm::MemoryAccess::print().
|
inline |
Definition at line 168 of file Metadata.h.
References OS, and llvm::Metadata::print().
|
inline |
Definition at line 391 of file ModuleSummaryIndex.h.
References llvm::MIBInfo::AllocType, First, for(), OS, and llvm::MIBInfo::StackIdIndices.
|
inline |
Definition at line 580 of file MachineValueType.h.
References OS, and llvm::MVT::print().
|
inline |
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const PotentialConstantIntValuesState & | R | ||
) |
Definition at line 3720 of file Attributor.cpp.
References llvm::PotentialValuesState< MemberTy >::getAssumedSet(), llvm::PotentialValuesState< MemberTy >::isValidState(), OS, and llvm::PotentialValuesState< MemberTy >::undefIsContained().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const PotentialLLVMValuesState & | R | ||
) |
Definition at line 3736 of file Attributor.cpp.
References F, llvm::PotentialValuesState< MemberTy >::getAssumedSet(), llvm::PotentialValuesState< MemberTy >::isValidState(), OS, and llvm::PotentialValuesState< MemberTy >::undefIsContained().
|
inline |
Definition at line 45 of file Printable.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const PseudoSourceValue * | PSV | ||
) |
Definition at line 1032 of file ScheduleDAGInstrs.cpp.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const Record & | R | ||
) |
Definition at line 2994 of file Record.cpp.
References _, assert(), llvm::ArrayRef< T >::empty(), OS, and llvm::RecordVal::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const RecordKeeper & | RK | ||
) |
Definition at line 3275 of file Record.cpp.
References llvm::CallingConv::C, D, llvm::RecordKeeper::getClasses(), llvm::RecordKeeper::getDefs(), and OS.
|
inline |
Definition at line 1591 of file Record.h.
References OS, and llvm::RecordVal::print().
|
inline |
Definition at line 106 of file Record.h.
References OS, and llvm::RecTy::print().
|
inline |
|
inline |
Definition at line 83 of file RegisterBank.h.
References OS, and llvm::RegisterBank::print().
|
inline |
Definition at line 777 of file RegisterBankInfo.h.
References OS, and llvm::RegisterBankInfo::InstructionMapping::print().
|
inline |
Definition at line 784 of file RegisterBankInfo.h.
References OS, and llvm::RegisterBankInfo::OperandsMapper::print().
|
inline |
Definition at line 764 of file RegisterBankInfo.h.
References OS, and llvm::RegisterBankInfo::PartialMapping::print().
|
inline |
Definition at line 771 of file RegisterBankInfo.h.
References OS, and llvm::RegisterBankInfo::ValueMapping::print().
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const ScaledNumber< DigitsT > & | X | ||
) |
Definition at line 743 of file ScaledNumber.h.
|
inline |
Definition at line 196 of file ScalarEvolution.h.
References OS, and llvm::SCEV::print().
|
inline |
Definition at line 251 of file ScalarEvolution.h.
|
inline |
Definition at line 183 of file GCNSchedStrategy.h.
References dbgs(), llvm::ScheduleMetrics::getBubbles(), llvm::ScheduleMetrics::getLength(), llvm::ScheduleMetrics::getMetric(), OS, and llvm::ScheduleMetrics::ScaleFactor.
|
inline |
Definition at line 178 of file StackLifetime.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const std::optional< T > & | O | ||
) |
Definition at line 845 of file raw_ostream.h.
References OS.
|
inline |
Definition at line 572 of file Twine.h.
References OS, llvm::Value::print(), and RHS.
|
inline |
|
inline |
|
inline |
Definition at line 258 of file ModuleSummaryIndex.h.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const ValueLatticeElement & | Val | ||
) |
Definition at line 112 of file ValueLattice.cpp.
References llvm::ValueLatticeElement::getConstant(), llvm::ValueLatticeElement::getConstantRange(), llvm::ConstantRange::getLower(), llvm::ValueLatticeElement::getNotConstant(), llvm::ConstantRange::getUpper(), llvm::ValueLatticeElement::isConstantRange(), llvm::ValueLatticeElement::isConstantRangeIncludingUndef(), llvm::ValueLatticeElement::isNotConstant(), llvm::ValueLatticeElement::isOverdefined(), llvm::ValueLatticeElement::isUndef(), llvm::ValueLatticeElement::isUnknown(), and OS.
|
inline |
Definition at line 188 of file VirtRegMap.h.
References OS, and llvm::VirtRegMap::print().
|
inline |
Definition at line 4194 of file VPlan.h.
References OS, and llvm::VPlan::print().
|
inline |
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const VPValue & | V | ||
) |
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
const WebAssemblyException & | WE | ||
) |
|
inline |
Definition at line 183 of file FloatingPointMode.h.
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, Name, NoFPClassName, and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
HexagonBlockRanges::IndexType | Idx | ||
) |
Definition at line 489 of file HexagonBlockRanges.cpp.
References llvm::HexagonBlockRanges::IndexType::Entry, llvm::HexagonBlockRanges::IndexType::Exit, llvm::HexagonBlockRanges::IndexType::First, Idx, llvm::HexagonBlockRanges::IndexType::None, and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
IRPosition::Kind | AP | ||
) |
Definition at line 3669 of file Attributor.cpp.
References llvm::IRPosition::IRP_ARGUMENT, llvm::IRPosition::IRP_CALL_SITE, llvm::IRPosition::IRP_CALL_SITE_ARGUMENT, llvm::IRPosition::IRP_CALL_SITE_RETURNED, llvm::IRPosition::IRP_FLOAT, llvm::IRPosition::IRP_FUNCTION, llvm::IRPosition::IRP_INVALID, llvm::IRPosition::IRP_RETURNED, llvm_unreachable, and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
LegacyLegalizeActions::LegacyLegalizeAction | Action | ||
) |
Definition at line 28 of file LegacyLegalizerInfo.cpp.
References llvm::LegacyLegalizeActions::Bitcast, llvm::LegacyLegalizeActions::Custom, llvm::LegacyLegalizeActions::FewerElements, llvm::IRSimilarity::Legal, llvm::LegacyLegalizeActions::Libcall, llvm::LegacyLegalizeActions::Lower, llvm::LegacyLegalizeActions::MoreElements, llvm::LegacyLegalizeActions::NarrowScalar, llvm::LegacyLegalizeActions::NotFound, OS, llvm::LegacyLegalizeActions::Unsupported, and llvm::LegacyLegalizeActions::WidenScalar.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
LegalizeActions::LegalizeAction | Action | ||
) |
|
inline |
Definition at line 213 of file MemoryLocation.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
MemoryEffects | RMRB | ||
) |
Debug print MemoryEffects.
Definition at line 37 of file ModRef.cpp.
References llvm::MemoryEffectsBase< LocationEnum >::getModRef(), interleaveComma(), llvm::MemoryEffectsBase< LocationEnum >::locations(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
ModRefInfo | MR | ||
) |
|
inline |
Definition at line 63 of file FloatingPointMode.h.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
ScalarEvolution::BlockDisposition | BD | ||
) |
Definition at line 13903 of file ScalarEvolution.cpp.
References llvm::ScalarEvolution::DoesNotDominateBlock, llvm::ScalarEvolution::DominatesBlock, OS, and llvm::ScalarEvolution::ProperlyDominatesBlock.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
ScalarEvolution::LoopDisposition | LD | ||
) |
Definition at line 13888 of file ScalarEvolution.cpp.
References llvm::ScalarEvolution::LoopComputable, llvm::ScalarEvolution::LoopInvariant, llvm::ScalarEvolution::LoopVariant, and OS.
|
inline |
Definition at line 287 of file SlotIndexes.h.
References llvm::SlotIndex::print().
llvm::raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
std::nullopt_t | |||
) |
Definition at line 11 of file Optional.cpp.
References OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
sys::TimePoint<> | TP | ||
) |
Definition at line 61 of file Chrono.cpp.
References format(), getStructTM(), and OS.
raw_ostream & llvm::operator<< | ( | raw_ostream & | OS, |
sys::UtcTime<> | TP | ||
) |
raw_ostream & llvm::operator<< | ( | raw_ostream & | Out, |
const VersionTuple & | V | ||
) |
Print a version number.
Definition at line 30 of file VersionTuple.cpp.
|
static |
Definition at line 336 of file InlineAdvisor.cpp.
References llvm::DiagnosticInfoOptimizationBase::Argument::Val.
RemarkT & llvm::operator<< | ( | RemarkT && | R, |
const InlineCost & | IC | ||
) |
Definition at line 341 of file InlineAdvisor.cpp.
References llvm::InlineCost::getCost(), llvm::InlineCost::getReason(), llvm::InlineCost::getThreshold(), llvm::InlineCost::isAlways(), and llvm::InlineCost::isNever().
RemarkT & llvm::operator<< | ( | RemarkT && | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument > | A | ||
) |
Definition at line 650 of file DiagnosticInfo.h.
References A.
RemarkT & llvm::operator<< | ( | RemarkT && | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose > | V | ||
) |
Definition at line 672 of file DiagnosticInfo.h.
RemarkT & llvm::operator<< | ( | RemarkT && | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef > | S | ||
) |
Also allow r-value for the remark to allow insertion into a temporarily-constructed remark.
Definition at line 628 of file DiagnosticInfo.h.
RemarkT & llvm::operator<< | ( | RemarkT & | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument > | A | ||
) |
Definition at line 639 of file DiagnosticInfo.h.
References A.
RemarkT & llvm::operator<< | ( | RemarkT & | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs > | EA | ||
) |
Definition at line 683 of file DiagnosticInfo.h.
RemarkT & llvm::operator<< | ( | RemarkT & | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose > | V | ||
) |
Definition at line 661 of file DiagnosticInfo.h.
RemarkT & llvm::operator<< | ( | RemarkT & | R, |
std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, 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 615 of file DiagnosticInfo.h.
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(), OS, and sort().
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.
Definition at line 265 of file Alignment.h.
|
delete |
Definition at line 241 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
delete |
|
delete |
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator<= | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 601 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator<= | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 631 of file DynamicAPInt.h.
|
delete |
|
delete |
Definition at line 895 of file StringRef.h.
Comparisons operators between Align.
Definition at line 259 of file Alignment.h.
|
inline |
Definition at line 297 of file Alignment.h.
References operator==().
Comparisons between Align and scalars. Rhs must be positive.
Definition at line 233 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, operator==(), and llvm::Align::value().
Definition at line 543 of file ArrayRef.h.
References LHS, operator==(), and RHS.
|
inline |
Definition at line 153 of file AddressRanges.h.
References LHS, operator==(), RHS, and llvm::Value::Value().
Referenced by llvm::IntervalMap< KeyT, ValT, N, Traits >::const_iterator::operator!=(), llvm::ConstantFPRange::operator!=(), llvm::ConstantRange::operator!=(), llvm::ConstantRangeList::operator!=(), llvm::object::operator!=(), llvm::memprof::Frame::operator!=(), llvm::memprof::IndexedAllocationInfo::operator!=(), llvm::IRMover::StructTypeKeyInfo::KeyTy::operator!=(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_iterator::operator!=(), llvm::SSAUpdaterTraits< MachineSSAUpdater >::PHI_iterator::operator!=(), llvm::SSAUpdaterTraits< SSAUpdater >::PHI_iterator::operator!=(), llvm::BitTracker::RegisterCell::operator!=(), llvm::HexagonBlockRanges::IndexType::operator<=(), operator==(), llvm::detail::operator==(), llvm::sampleprof::operator==(), llvm::gsym::operator==(), llvm::codeview::operator==(), llvm::ifs::operator==(), operator==(), llvm::json::operator==(), llvm::AA::operator==(), llvm::remarks::operator==(), llvm::object::operator==(), llvm::MachO::operator==(), llvm::minidump::operator==(), and llvm::wasm::operator==().
|
inline |
Compare two DbgValueLocs for equality.
Definition at line 274 of file DebugLocEntry.h.
|
inline |
Compare two DbgValueLocEntries for equality.
Definition at line 254 of file DebugLocEntry.h.
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 697 of file DenseMap.h.
References I, LHS, operator==(), and RHS.
bool llvm::operator== | ( | const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & | LHS, |
const DenseMapBase< DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT > & | RHS | ||
) |
Definition at line 52 of file SymbolSet.h.
References I, LHS, operator==(), and RHS.
|
inline |
Definition at line 3207 of file DebugInfoMetadata.h.
References A, B, and operator==().
|
inline |
Definition at line 80 of file DWARFAddressRange.h.
References LHS, operator==(), and RHS.
Definition at line 345 of file DWARFDie.h.
References LHS, operator==(), and RHS.
|
inline |
Definition at line 335 of file DWARFDie.h.
|
inline |
Definition at line 385 of file DWARFDie.h.
|
inline |
Definition at line 182 of file DWARFExpression.h.
|
inline |
Definition at line 31 of file DWARFLocationExpression.h.
References operator==().
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 581 of file DynamicAPInt.h.
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 265 of file ErrorOr.h.
References operator==().
bool llvm::operator== | ( | const HTTPRequest & | A, |
const HTTPRequest & | B | ||
) |
References operator==().
|
inline |
Definition at line 240 of file IntrusiveRefCntPtr.h.
References A, B, and operator==().
bool llvm::operator== | ( | const IntrusiveRefCntPtr< T > & | A, |
std::nullptr_t | B | ||
) |
Definition at line 277 of file IntrusiveRefCntPtr.h.
References A, B, and operator==().
|
inline |
Definition at line 252 of file IntrusiveRefCntPtr.h.
References A, B, and operator==().
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 493 of file SmallPtrSet.h.
References LHS, operator==(), and 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 278 of file SmallSet.h.
References all_of(), E, LHS, operator==(), and RHS.
|
inline |
Definition at line 466 of file DWARFDie.h.
References LHS, operator==(), and RHS.
Definition at line 265 of file ModuleSummaryIndex.h.
References A, assert(), B, and operator==().
|
inline |
Definition at line 1160 of file DebugInfoMetadata.h.
References operator==(), and llvm::DIDerivedType::PtrAuthData::RawData.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator== | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 611 of file DynamicAPInt.h.
Definition at line 357 of file APSInt.h.
References operator==().
|
inline |
Definition at line 295 of file Alignment.h.
References operator==().
|
inline |
Definition at line 300 of file Alignment.h.
References operator==().
|
inline |
Definition at line 305 of file Alignment.h.
References operator==().
bool llvm::operator== | ( | PointerUnion< PTs... > | lhs, |
PointerUnion< PTs... > | rhs | ||
) |
Definition at line 208 of file PointerUnion.h.
References llvm::PointerUnion< PTs >::getOpaqueValue(), and operator==().
|
inline |
Definition at line 548 of file ArrayRef.h.
References llvm::ArrayRef< T >::equals(), LHS, operator==(), and RHS.
|
inline |
Definition at line 307 of file Alignment.h.
References operator==().
bool llvm::operator== | ( | std::nullptr_t | , |
const IntrusiveRefCntPtr< T > & | B | ||
) |
Definition at line 272 of file IntrusiveRefCntPtr.h.
References B, and operator==().
Definition at line 881 of file StringRef.h.
References LHS, operator==(), and RHS.
|
inline |
Definition at line 262 of file IntrusiveRefCntPtr.h.
References A, B, and operator==().
Definition at line 274 of file Alignment.h.
|
delete |
Definition at line 253 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
delete |
|
delete |
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator> | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 591 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator> | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 621 of file DynamicAPInt.h.
|
delete |
|
delete |
Definition at line 899 of file StringRef.h.
Definition at line 268 of file Alignment.h.
|
delete |
Definition at line 245 of file Alignment.h.
References ALIGN_CHECK_ISPOSITIVE, and llvm::Align::value().
|
delete |
|
delete |
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator>= | ( | const DynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 606 of file DynamicAPInt.h.
LLVM_ATTRIBUTE_ALWAYS_INLINE bool llvm::operator>= | ( | int64_t | A, |
const DynamicAPInt & | B | ||
) |
Definition at line 636 of file DynamicAPInt.h.
|
delete |
|
delete |
Definition at line 903 of file StringRef.h.
ScaledNumber< DigitsT > llvm::operator>> | ( | const ScaledNumber< DigitsT > & | L, |
int16_t | Shift | ||
) |
Definition at line 737 of file ScaledNumber.h.
Definition at line 2142 of file APInt.h.
References operator^(), and RHS.
Definition at line 2137 of file APInt.h.
References operator^().
Definition at line 527 of file KnownBits.h.
|
inline |
Definition at line 724 of file SmallBitVector.h.
Definition at line 522 of file KnownBits.h.
Definition at line 2147 of file APInt.h.
References LHS, and operator^().
Definition at line 2122 of file APInt.h.
References operator|(), and RHS.
ChangeStatus llvm::operator| | ( | ChangeStatus | L, |
ChangeStatus | R | ||
) |
Definition at line 2117 of file APInt.h.
References operator|().
|
inline |
Definition at line 202 of file JITSymbol.h.
Definition at line 517 of file KnownBits.h.
|
inline |
Definition at line 494 of file ValueTracking.h.
|
inline |
Definition at line 717 of file SmallBitVector.h.
|
inline |
Definition at line 850 of file SparseBitVector.h.
|
inline |
Definition at line 512 of file KnownBits.h.
|
inline |
Definition at line 489 of file ValueTracking.h.
|
inline |
Definition at line 107 of file ValueMapper.h.
|
inline |
Definition at line 484 of file SelectionDAGNodes.h.
Definition at line 2127 of file APInt.h.
References LHS, and operator|().
ChangeStatus & llvm::operator|= | ( | ChangeStatus & | l, |
ChangeStatus | r | ||
) |
Definition at line 187 of file Attributor.cpp.
|
inline |
Definition at line 823 of file SparseBitVector.h.
|
inline |
Definition at line 829 of file SparseBitVector.h.
Unary bitwise complement operator.
v
. Definition at line 2087 of file APInt.h.
References operator~().
Referenced by operator~().
|
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 205 of file Threading.h.
References llvm::ThreadPoolStrategy::Limit, and llvm::ThreadPoolStrategy::ThreadsRequested.
Referenced by llvm::dwarf_linker::parallel::DWARFLinkerImpl::link().
|
inline |
Definition at line 1364 of file MemorySSA.h.
References make_range().
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(), LHS, LLVM_DEBUG, parseGlobalCtors(), removeGlobalCtors(), RHS, llvm::BitVector::set(), and stable_sort().
Referenced by optimizeGlobalsInModule(), and llvm::GlobalDCEPass::run().
|
static |
Definition at line 37 of file RuntimeDyldCOFFAArch64.h.
References P.
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
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 895 of file raw_ostream.cpp.
References assert(), and llvm::sys::fs::OF_None.
Referenced by llvm::DroppedVariableStats::calculateDroppedStatsAndPrint(), llvm::logicalview::LVBinaryReader::createInstructions(), llvm::AMDGPUDisassembler::decodeKernelDescriptor(), dlltoolDriverMain(), doList(), llvm::DroppedVariableStats::DroppedVariableStats(), llvm::AArch64::ExtensionSet::dump(), llvm::pdb::PDBSymbol::dumpChildStats(), 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::RISCVISAInfo::printEnabledExtensions(), llvm::AArch64::printEnabledExtensions(), llvm::cl::Option::printEnumValHelpStr(), PrintExtension(), llvm::cl::generic_parser_base::printGenericOptionDiff(), llvm::cl::Option::printHelpStr(), llvm::cl::generic_parser_base::printOptionInfo(), llvm::cl::basic_parser_impl::printOptionInfo(), llvm::cl::basic_parser_impl::printOptionName(), llvm::cl::basic_parser_impl::printOptionNoValue(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::printStatistic(), llvm::AArch64::PrintSupportedExtensions(), llvm::RISCVISAInfo::printSupportedExtensions(), llvm::ARM::PrintSupportedExtensions(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::registerModuleReference(), runNewPMPasses(), llvm::sandboxir::PrintInstructionCount::runOnRegion(), llvm::ToolOutputFile::ToolOutputFile(), and writeToOutput().
|
inlinestatic |
Definition at line 48 of file AMDGPUISelDAGToDAG.h.
References assert(), llvm::ISD::BUILD_VECTOR, getConstantValue(), llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getTargetConstant(), and N.
Referenced by llvm::AMDGPUDAGToDAGISel::Select().
void llvm::parallelFor | ( | size_t | Begin, |
size_t | End, | ||
llvm::function_ref< void(size_t)> | Fn | ||
) |
Definition at line 211 of file Parallel.cpp.
References E, End, I, and llvm::parallel::TaskGroup::spawn().
Referenced by llvm::pdb::GSIHashStreamBuilder::finalizeBuckets(), and parallelForEach().
void llvm::parallelForEach | ( | IterTy | Begin, |
IterTy | End, | ||
FuncTy | Fn | ||
) |
Definition at line 231 of file Parallel.h.
References End, I, and parallelFor().
Referenced by llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::link(), and parallelForEach().
void llvm::parallelForEach | ( | RangeTy && | R, |
FuncTy | Fn | ||
) |
Definition at line 259 of file Parallel.h.
References parallelForEach().
Error llvm::parallelForEachError | ( | RangeTy && | R, |
FuncTy | Fn | ||
) |
Definition at line 274 of file Parallel.h.
References joinErrors(), parallelTransformReduce(), llvm::Error::success(), unwrap(), and wrap().
Referenced by llvm::pdb::DbiStreamBuilder::commit(), and llvm::dwarf_linker::parallel::TypeUnit::finishCloningAndEmit().
void llvm::parallelSort | ( | RandomAccessIterator | Start, |
RandomAccessIterator | End, | ||
const Comparator & | Comp = Comparator() |
||
) |
Definition at line 217 of file Parallel.h.
References End, sort(), and llvm::parallel::strategy.
Referenced by llvm::pdb::GSIStreamBuilder::addPublicSymbols(), computeAddrMap(), and parallelSort().
void llvm::parallelSort | ( | RangeTy && | R, |
const Comparator & | Comp = Comparator() |
||
) |
Definition at line 254 of file Parallel.h.
References parallelSort().
ResultTy llvm::parallelTransformReduce | ( | IterTy | Begin, |
IterTy | End, | ||
ResultTy | Init, | ||
ReduceFuncTy | Reduce, | ||
TransformFuncTy | Transform | ||
) |
Definition at line 237 of file Parallel.h.
References End, I, and llvm::parallel::strategy.
Referenced by parallelForEachError(), and parallelTransformReduce().
ResultTy llvm::parallelTransformReduce | ( | RangeTy && | R, |
ResultTy | Init, | ||
ReduceFuncTy | Reduce, | ||
TransformFuncTy | Transform | ||
) |
Definition at line 265 of file Parallel.h.
References parallelTransformReduce().
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 843 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().
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().
Definition at line 699 of file IRMutator.cpp.
References Data, errs(), parseModule(), Size, and verifyModule().
std::unique_ptr< Module > llvm::parseAssembly | ( | MemoryBufferRef | F, |
SMDiagnostic & | Err, | ||
LLVMContext & | Context, | ||
SlotMapping * | Slots = nullptr , |
||
DataLayoutCallbackTy | DataLayoutCallback = [](StringRef, StringRef) { return std::nullopt; } |
||
) |
parseAssemblyFile and parseAssemblyString are wrappers around this function.
Parse LLVM Assembly from a MemoryBuffer.
F | The MemoryBuffer containing assembly |
Err | Error result info. |
Slots | The optional slot mapping that will be initialized during parsing. |
DataLayoutCallback | Override 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().
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
Filename | The name of the file to parse |
Err | Error result info. |
Context | Context in which to allocate globals info. |
Slots | The 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().
ParsedModuleAndIndex llvm::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.
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
Filename | The name of the file to parse |
Err | Error result info. |
Context | Context in which to allocate globals info. |
Slots | The optional slot mapping that will be initialized during parsing. |
DataLayoutCallback | Override datalayout in the llvm assembly. |
Definition at line 120 of file Parser.cpp.
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.
bool llvm::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.
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.
F | The MemoryBuffer containing assembly |
M | The module to add data to. |
Index | The index to add data to. |
Err | Error result info. |
Slots | The optional slot mapping that will be initialized during parsing. |
DataLayoutCallback | Override datalayout in the llvm assembly. |
Definition at line 38 of file Parser.cpp.
References F.
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
AsmString | The string containing assembly |
Err | Error result info. |
Context | Context in which to allocate globals info. |
Slots | The optional slot mapping that will be initialized during parsing. |
Definition at line 136 of file Parser.cpp.
References F, and parseAssembly().
ParsedModuleAndIndex llvm::parseAssemblyWithIndex | ( | MemoryBufferRef | F, |
SMDiagnostic & | Err, | ||
LLVMContext & | Context, | ||
SlotMapping * | Slots = nullptr |
||
) |
Parse LLVM Assembly including the summary index from a MemoryBuffer.
F | The MemoryBuffer containing assembly with summary |
Err | Error result info. |
Slots | The 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.
Type * llvm::parseBasicTypeName | ( | StringRef & | TypeName, |
LLVMContext & | Ctx | ||
) |
Definition at line 459 of file SPIRVUtils.cpp.
References llvm::Type::getDoubleTy(), llvm::Type::getFloatTy(), llvm::Type::getHalfTy(), llvm::Type::getInt16Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Type::getIntNTy(), and llvm::Type::getVoidTy().
Referenced by llvm::SPIRVGlobalRegistry::getOrCreateSPIRVTypeByName(), and llvm::SPIRV::parseBuiltinCallArgumentType().
Expected< std::unique_ptr< Module > > llvm::parseBitcodeFile | ( | MemoryBufferRef | Buffer, |
LLVMContext & | Context, | ||
ParserCallbacks | Callbacks = {} |
||
) |
Read the specified bitcode file, returning the module.
Definition at line 8721 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Referenced by llvm::orc::cloneToNewContext(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), llvm::cgdata::loadModuleForTwoRounds(), llvm::OpenMPIRBuilder::loadOffloadInfoMetadata(), parseBitcodeFileImpl(), parseIR(), parseModule(), and splitCodeGen().
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(), llvm::CachePruningPolicy::Interval, llvm::CachePruningPolicy::MaxSizeBytes, llvm::CachePruningPolicy::MaxSizeFiles, llvm::CachePruningPolicy::MaxSizePercentageOfAvailableSpace, P, parseDuration(), and Size.
Referenced by getCachedOrDownloadArtifact().
void llvm::parseCommandLineOptions | ( | std::vector< std::string > & | Options | ) |
A convenience function that calls cl::ParseCommandLineOptions on the given set of options.
Definition at line 682 of file LTOCodeGenerator.cpp.
References Options, and llvm::cl::ParseCommandLineOptions().
Referenced by llvm::LTOCodeGenerator::parseCodeGenDebugOptions().
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.
Slots | The optional slot mapping that will restore the parsing state of the module. |
Definition at line 188 of file Parser.cpp.
References llvm::SourceMgr::AddNewSourceBuffer(), llvm::CallingConv::C, llvm::MemoryBuffer::getMemBuffer(), and llvm::LLParser::parseStandaloneConstantValue().
Referenced by llvm::MIRParserImpl::initializeConstantPool(), and parseIRConstant().
|
inline |
Returns the denormal mode to use for inputs and outputs.
Definition at line 218 of file FloatingPointMode.h.
References llvm::StringRef::empty(), Mode, and parseDenormalFPAttributeComponent().
Referenced by checkDenormalAttributeConsistency(), and llvm::SIModeRegisterDefaults::SIModeRegisterDefaults().
|
inline |
Parse the expected names from the denormal-fp-math attribute.
Definition at line 190 of file FloatingPointMode.h.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::StringSwitch< T, R >::Default(), llvm::DenormalMode::Dynamic, llvm::DenormalMode::IEEE, llvm::DenormalMode::Invalid, llvm::DenormalMode::PositiveZero, and llvm::DenormalMode::PreserveSign.
Referenced by parseDenormalFPAttribute().
DIExpression * llvm::parseDIExpressionBodyAtBeginning | ( | StringRef | Asm, |
unsigned & | Read, | ||
SMDiagnostic & | Err, | ||
const Module & | M, | ||
const SlotMapping * | Slots | ||
) |
Definition at line 229 of file Parser.cpp.
References llvm::SourceMgr::AddNewSourceBuffer(), llvm::MemoryBuffer::getMemBuffer(), llvm::LLParser::parseDIExpressionBodyAtBeginning(), and Read.
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().
Expected< InfoSectionUnitHeader > llvm::parseInfoSectionUnitHeader | ( | StringRef | Info | ) |
Definition at line 359 of file DWP.cpp.
References llvm::DWARFDataExtractor::getInitialLength(), llvm::DataExtractor::getU16(), llvm::DataExtractor::getU32(), llvm::DataExtractor::getU64(), llvm::DataExtractor::getU8(), Info, llvm::DataExtractor::isValidOffset(), Offset, llvm::DataExtractor::size(), llvm::Error::success(), and toString().
Referenced by write().
std::unique_ptr< Module > llvm::parseIR | ( | MemoryBufferRef | Buffer, |
SMDiagnostic & | Err, | ||
LLVMContext & | Context, | ||
ParserCallbacks | Callbacks = {} |
||
) |
If the given MemoryBuffer holds a bitcode image, return a Module for it.
Otherwise, attempt to parse it as LLVM Assembly and return a Module for it.
DataLayoutCallback | Override datalayout in the llvm assembly. |
Definition at line 69 of file IRReader.cpp.
References llvm::ParserCallbacks::DataLayout, llvm::SourceMgr::DK_Error, llvm::Expected< T >::get(), llvm::MemoryBufferRef::getBufferEnd(), llvm::MemoryBufferRef::getBufferIdentifier(), llvm::MemoryBufferRef::getBufferStart(), handleAllErrors(), isBitcode(), llvm::ErrorInfoBase::message(), parseAssembly(), parseBitcodeFile(), llvm::Expected< T >::takeError(), TimeIRParsingDescription, TimeIRParsingGroupDescription, TimeIRParsingGroupName, TimeIRParsingName, and TimePassesIsEnabled.
Referenced by LLVMParseIRInContext(), and 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.
DataLayoutCallback | Override 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().
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 3586 of file MIParser.cpp.
References llvm::PerFunctionMIParsingState::MBBSlots.
Referenced by llvm::MIRParserImpl::initializeMachineFunction().
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 3592 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::initializeMachineFunction().
bool llvm::parseMachineMetadata | ( | PerFunctionMIParsingState & | PFS, |
StringRef | Src, | ||
SMRange | SourceRange, | ||
SMDiagnostic & | Error | ||
) |
Definition at line 3632 of file MIParser.cpp.
bool llvm::parseMBBReference | ( | PerFunctionMIParsingState & | PFS, |
MachineBasicBlock *& | MBB, | ||
StringRef | Src, | ||
SMDiagnostic & | Error | ||
) |
Definition at line 3597 of file MIParser.cpp.
References MBB.
bool llvm::parseMDNode | ( | PerFunctionMIParsingState & | PFS, |
MDNode *& | Node, | ||
StringRef | Src, | ||
SMDiagnostic & | Error | ||
) |
Definition at line 3627 of file MIParser.cpp.
std::unique_ptr< Module > llvm::parseModule | ( | const uint8_t * | Data, |
size_t | Size, | ||
LLVMContext & | Context | ||
) |
Fuzzer friendly interface for the llvm bitcode parser.
Data | Bitcode we are going to parse |
Size | Size of the 'Data' in bytes |
Definition at line 667 of file IRMutator.cpp.
References Data, errs(), llvm::MemoryBuffer::getMemBuffer(), parseBitcodeFile(), Size, and toString().
Referenced by parseAndVerify().
bool llvm::parseNamedRegisterReference | ( | PerFunctionMIParsingState & | PFS, |
Register & | Reg, | ||
StringRef | Src, | ||
SMDiagnostic & | Error | ||
) |
bool llvm::parseRegisterReference | ( | PerFunctionMIParsingState & | PFS, |
Register & | Reg, | ||
StringRef | Src, | ||
SMDiagnostic & | Error | ||
) |
Definition at line 3603 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::parseRegisterInfo().
bool llvm::parseStackObjectReference | ( | PerFunctionMIParsingState & | PFS, |
int & | FI, | ||
StringRef | Src, | ||
SMDiagnostic & | Error | ||
) |
Definition at line 3621 of file MIParser.cpp.
Referenced by llvm::MIRParserImpl::initializeFrameInfo().
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::AttributeList::getFnAttr(), llvm::Attribute::getValueAsString(), and llvm::Attribute::isStringAttribute().
Referenced by llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundleImpl(), and makeStatepointExplicitImpl().
std::unique_ptr< ModuleSummaryIndex > llvm::parseSummaryIndexAssembly | ( | MemoryBufferRef | F, |
SMDiagnostic & | Err | ||
) |
Parse LLVM Assembly for summary index from a MemoryBuffer.
F | The MemoryBuffer containing assembly with summary |
Err | Error 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().
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
Filename | The name of the file to parse |
Err | Error 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().
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
AsmString | The string containing assembly |
Err | Error result info. |
Definition at line 183 of file Parser.cpp.
References F, and parseSummaryIndexAssembly().
Type * llvm::parseType | ( | StringRef | Asm, |
SMDiagnostic & | Err, | ||
const Module & | M, | ||
const SlotMapping * | Slots = nullptr |
||
) |
Parse a type in the given string.
Slots | The optional slot mapping that will restore the parsing state of the module. |
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.
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
.
Slots | The optional slot mapping that will restore the parsing state of the module. |
Definition at line 216 of file Parser.cpp.
References llvm::SourceMgr::AddNewSourceBuffer(), llvm::MemoryBuffer::getMemBuffer(), llvm::LLParser::parseTypeAtBeginning(), and Read.
Referenced by parseType().
|
static |
Definition at line 2779 of file SPIRVBuiltins.cpp.
References llvm::Type::getFloatTy(), llvm::Type::getHalfTy(), llvm::Type::getInt32Ty(), llvm::Type::getVoidTy(), Name, and report_fatal_error().
Referenced by llvm::SPIRV::parseBuiltinTypeNameToTargetExtType().
bool llvm::parseVirtualRegisterReference | ( | PerFunctionMIParsingState & | PFS, |
VRegInfo *& | Info, | ||
StringRef | Src, | ||
SMDiagnostic & | Error | ||
) |
Definition at line 3615 of file MIParser.cpp.
References Info.
Referenced by llvm::MIRParserImpl::parseRegisterInfo().
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().
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, And, B, llvm::CallingConv::C, Cond, llvm::PatternMatch::m_And(), llvm::PatternMatch::m_Value(), and llvm::PatternMatch::match().
void llvm::parseWidenableGuard | ( | const User * | U, |
llvm::SmallVectorImpl< Value * > & | Checks | ||
) |
Definition at line 138 of file GuardUtils.cpp.
References assert(), Check, isGuard(), isWidenableBranch(), isWidenableCondition(), parseCondition(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
static |
Definition at line 837 of file APFloat.cpp.
References assert(), count(), and llvm::APFloatBase::integerPartWidth.
Definition at line 401 of file APFloat.cpp.
References llvm::APFloatBase::integerPartWidth.
Referenced by llvm::detail::IEEEFloat::convert(), llvm::detail::IEEEFloat::convertFromZeroExtendedInteger(), llvm::detail::IEEEFloat::convertToInteger(), llvm::detail::IEEEFloat::getExactLog2Abs(), and llvm::detail::IEEEFloat::toString().
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 1959 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by decodeCondBranch(), llvm::ARMBaseInstrInfo::getOutliningCandidateInfo(), and llvm::GenericConvergenceVerifier< ContextT >::verify().
auto llvm::partition_point | ( | R && | Range, |
Predicate | P | ||
) |
Binary search for the first iterator in a range where a predicate is false.
Requires that C is always true below some limit, and always false above it.
Definition at line 2050 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
Referenced by llvm::MachO::addEntry(), decodeCondBranch(), emplace(), llvm::LiveRange::find(), llvm::DWARFDebugAranges::findAddress(), findInfo(), llvm::pdb::SymbolCache::findLineNumbersByVA(), findTargetSubtable(), llvm::DWARFUnit::getDIEIndexForOffset(), llvm::ProfileSummaryBuilder::getEntryForPercentile(), getFMA3Group(), llvm::DWARFUnitIndex::getFromOffset(), llvm::InstrProfSymtab::getFunctionHashFromAddress(), and insertLineSequence().
|
static |
Definition at line 2054 of file DWARFLinker.cpp.
References llvm_unreachable, Offset, and llvm::DIEValueList::values().
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.
Definition at line 3500 of file Local.cpp.
References assert(), combineMetadataForCSE(), llvm::Instruction::dropPoisonGeneratingFlags(), I, llvm::PatternMatch::m_WithOverflowInst(), llvm::PatternMatch::match(), and Success.
Referenced by patchAndReplaceAllUsesWith().
|
static |
Definition at line 2116 of file DWARFLinker.cpp.
References llvm_unreachable, Offset, and llvm::DIEValueList::values().
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 12297 of file SelectionDAG.cpp.
References llvm::ISD::BITCAST.
Referenced by canonicalizeBitSelect(), canonicalizeLaneShuffleWithRepeatedOps(), canonicalizeShuffleMaskWithHorizOp(), combineAndMaskToShift(), combineCONCAT_VECTORS(), combineConcatVectorOfExtracts(), combineConcatVectorOps(), combineEXTRACT_SUBVECTOR(), combineExtractVectorElt(), combineExtractWithShuffle(), combineHorizOpWithShuffle(), combineLogicBlendIntoPBLENDV(), combinePTESTCC(), combineSetCCMOVMSK(), combineTargetShuffle(), combineTruncationShuffle(), combineVectorSizedSetCCEquality(), combineX86ShuffleChain(), combineX86ShuffleChainWithExtract(), combineX86ShufflesRecursively(), llvm::X86TargetLowering::ComputeNumSignBitsForTargetNode(), computeZeroableShuffleElements(), EltsFromConsecutiveLoads(), llvm::SelectionDAG::FoldConstantArithmetic(), getAVX512Node(), getFauxShuffleMask(), getScalarValueForVectorElement(), getTargetConstantBitsFromNode(), getTargetConstantFromNode(), getTargetShuffleAndZeroables(), hasNon16BitAccesses(), isAllOnesOrAllOnesSplat(), isBitwiseNot(), llvm::SelectionDAG::isConstantIntBuildVectorOrConstantInt(), isFNEG(), isHorizontalBinOp(), IsNOT(), LowerFMINIMUM_FMAXIMUM(), lowerShuffleAsBroadcast(), lowerShuffleAsVTRUNC(), lowerShuffleWithVPMOV(), lowerV2X128Shuffle(), lowerV8I16Shuffle(), LowerVSETCC(), matchShuffleWithPACK(), MatchVectorAllEqualTest(), narrowExtractedVectorBinOp(), performUzpCombine(), llvm::TargetLowering::SimplifyMultipleUseDemandedBits(), and splitAndLowerShuffle().
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 12309 of file SelectionDAG.cpp.
References llvm::ISD::EXTRACT_SUBVECTOR.
Referenced by llvm::SelectionDAG::getSplatSourceVector().
Return the non-bitcasted and one-use source operand of V
if it exists.
If V
is not a bitcasted one-use value, it is returned as-is.
Definition at line 12303 of file SelectionDAG.cpp.
References llvm::ISD::BITCAST.
Referenced by canonicalizeShuffleMaskWithHorizOp(), canonicalizeShuffleWithOp(), combineAndnp(), combineAndShuffleNot(), combineBitOpWithPACK(), combineBitOpWithShift(), combineBlendOfPermutes(), combineCommutableSHUFP(), combineEXTRACT_SUBVECTOR(), combineHorizOpWithShuffle(), combineMOVMSK(), combineSCALAR_TO_VECTOR(), combineStore(), combineTargetShuffle(), combineVectorShiftImm(), combineX86ShufflesRecursively(), getFauxShuffleMask(), isLoadOrMultipleLoads(), isShuffleFoldableLoad(), lowerV2X128Shuffle(), and llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetShuffle().
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 12315 of file SelectionDAG.cpp.
References llvm::ISD::TRUNCATE.
Referenced by isSaturatingMinMax().
bool llvm::peelLoop | ( | Loop * | L, |
unsigned | PeelCount, | ||
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
.
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 914 of file LoopPeel.cpp.
References addStringMetadataToLoop(), assert(), canPeel(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), cloneLoopBlocks(), F, llvm::DominatorTree::findNearestCommonDominator(), llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetTopmostLoop(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), getOptionalIntLoopAttribute(), llvm::BasicBlock::getTerminator(), I, identifyNoAliasScopesToClone(), Info, initBranchWeights(), PeeledCountMetaData, llvm::LoopBlocksDFS::perform(), 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().
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(), llvm::HexagonInstrInfo::analyzeBranch(), assert(), llvm::MachineBasicBlock::begin(), llvm::MachineFunction::CloneMachineInstr(), 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::HexagonInstrInfo::insertBranch(), llvm::MachineInstr::isPHI(), llvm::Register::isPhysical(), LPD_Back, LPD_Front, MI, MRI, llvm::HexagonInstrInfo::removeBranch(), llvm::MachineBasicBlock::ReplaceUsesOfBlockWith(), llvm::MachineOperand::setReg(), std::swap(), TBB, TII, llvm::MachineBasicBlock::updateTerminator(), and Uses.
Referenced by llvm::PeelingModuloScheduleExpander::peelKernel().
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:
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:
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::SmallVectorTemplateCommon< T, typename >::back(), llvm::MutableArrayRef< T >::back(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::MutableArrayRef< T >::begin(), checkValidLayout(), llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::MutableArrayRef< T >::data(), llvm::ArrayRef< T >::empty(), llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::MutableArrayRef< T >::end(), llvm::SmallVectorImpl< T >::erase(), llvm::OptimizedStructLayoutField::getEndOffset(), llvm::OptimizedStructLayoutField::hasFixedOffset(), I, if(), isAligned(), Last, llvm_unreachable, llvm::OptimizedStructLayoutField::Offset, Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::OptimizedStructLayoutField::Scratch, llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), llvm::OptimizedStructLayoutField::Size, Size, and Success.
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.") | |||
) |
|
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 166 of file LiveRegUnits.h.
References const_mi_bundle_ops(), make_filter_range(), and MI.
Referenced by llvm::LivePhysRegs::addUses(), llvm::LivePhysRegs::removeDefs(), and updateDefinedRegisters().
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(), and G.
Referenced by post_order().
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(), and G.
Referenced by post_order().
po_ext_iterator< T, SetType > llvm::po_ext_begin | ( | T | G, |
SetType & | S | ||
) |
Definition at line 209 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::begin(), and G.
Referenced by llvm::LoopBlocksTraversal::begin(), and post_order_ext().
po_ext_iterator< T, SetType > llvm::po_ext_end | ( | T | G, |
SetType & | S | ||
) |
Definition at line 214 of file PostOrderIterator.h.
References llvm::po_iterator< GraphT, SetType, ExtStorage, GT >::end(), and G.
Referenced by llvm::LoopBlocksTraversal::end(), and post_order_ext().
bool llvm::PointerMayBeCaptured | ( | const Value * | V, |
bool | ReturnCaptures, | ||
bool | StoreCaptures, | ||
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. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. MaxUsesToExplore specifies how many uses 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 routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not.
Definition at line 204 of file CaptureTracking.cpp.
References assert(), dbgs(), LLVM_DEBUG, and PointerMayBeCaptured().
Referenced by addArgumentAttrs(), computePointerICmp(), FindEarliestCapture(), llvm::InstCombinerImpl::foldAllocaCmp(), isFunctionMallocLike(), isNonEscapingLocalObject(), isSafeToSpeculateStore(), PointerMayBeCaptured(), and PointerMayBeCapturedBefore().
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.
Definition at line 407 of file CaptureTracking.cpp.
References assert(), llvm::CaptureTracker::captured(), DefaultMaxUsesToExplore, DetermineUseCaptureKind(), DL, llvm::SmallVectorBase< Size_T >::empty(), getDefaultMaxUsesToExploreForCaptureTracking(), llvm::SmallSet< T, N, C >::insert(), llvm::CaptureTracker::isDereferenceableOrNull(), MAY_CAPTURE, NO_CAPTURE, PASSTHROUGH, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::CaptureTracker::shouldExplore(), llvm::SmallSet< T, N, C >::size(), and llvm::CaptureTracker::tooManyUses().
bool llvm::PointerMayBeCapturedBefore | ( | const Value * | V, |
bool | ReturnCaptures, | ||
bool | StoreCaptures, | ||
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. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not. Captures by the provided instruction are considered if the final parameter is true. 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.
If a DominatorTree is provided, only captures which happen before the given instruction are considered. This routine can be expensive, so consider caching the results. The boolean ReturnCaptures specifies whether returning the value (or part of it) from the function counts as capturing it or not. The boolean StoreCaptures specified whether storing the value (or part of it) into memory anywhere automatically counts as capturing it or not.
Definition at line 237 of file CaptureTracking.cpp.
References assert(), I, and PointerMayBeCaptured().
Referenced by AddAliasScopeMetadata(), and llvm::AAResults::callCapturesBefore().
JITTargetAddress llvm::pointerToJITTargetAddress | ( | T * | Ptr | ) |
Convert a pointer to a JITTargetAddress.
Definition at line 69 of file JITSymbol.h.
References Ptr.
Referenced by llvm::JITEvaluatedSymbol::fromPointer().
|
inlinenoexcept |
Count the number of set bits in a value.
Ex. popcount(0xF000F000) = 8 Returns 0 if the word is zero.
Definition at line 385 of file bit.h.
Referenced by llvm::SITargetLowering::AddMemOpInit(), llvm::mca::ResourceManager::checkAvailability(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::AMDGPUDisassembler::convertMIMGInst(), llvm::Bitset< NumBits >::count(), llvm::BitVector::count(), llvm::SmallBitVector::count(), llvm::SparseBitVectorElement< ElementSize >::count(), llvm::FeatureBitset::count(), llvm::mca::ResourceManager::cycleEvent(), eliminateDeadSwitchCases(), llvm::SystemZSelectionDAGInfo::EmitTargetCodeForMemset(), llvm::mca::ResourceManager::fastIssueInstruction(), llvm::RISCVMatInt::generateInstSeq(), getBBAddrMapFeature(), getBitRangeFromMask(), llvm::detail::IEEEFloat::getExactLog2Abs(), llvm::SIRegisterInfo::getNumCoveredRegs(), llvm::LaneBitmask::getNumLanes(), llvm::mca::ResourceState::getNumReadyUnits(), llvm::mca::ResourceState::getNumUnits(), llvm::HvxSelector::getPerfectCompletions(), llvm::MCSchedModel::getReciprocalThroughput(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::memprof::hasSingleAllocType(), llvm::mca::initializeUsedResources(), llvm::TargetLoweringBase::isBeneficialToExpandPowI(), llvm::APInt::isOneBitSet(), llvm::mca::ResourceState::isReady(), isShiftedMask_32(), isShiftedMask_64(), llvm::mca::ResourceManager::issueInstructionImpl(), 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::SIInstrInfo::verifyInstruction(), and llvm::SelectionDAGBuilder::visitBitTestCase().
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 1202 of file VectorUtils.cpp.
References assert(), llvm::APInt::clearBit(), and llvm::APInt::getAllOnes().
iterator_range< po_iterator< T > > llvm::post_order | ( | const T & | G | ) |
Definition at line 197 of file PostOrderIterator.h.
References G, make_range(), po_begin(), and po_end().
Referenced by llvm::LoopInfoBase< BlockT, LoopT >::analyze(), llvm::BranchProbabilityInfo::calculate(), llvm::Combiner::combineMachineInstrs(), generateAssignInstrs(), inferInitializes(), llvm::WebAssemblyExceptionInfo::recalculate(), llvm::SLPVectorizerPass::runImpl(), RemoveLoadsIntoFakeUses::runOnMachineFunction(), llvm::InstructionSelect::selectMachineFunction(), llvm::AbstractDependenceGraphBuilder< GraphType >::sortNodesTopologically(), and llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse().
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(), and po_ext_end().
Returns the power of two which is greater than or equal to the given value.
Essentially, it is a ceil operation across the domain of powers of two.
Definition at line 396 of file MathExtras.h.
References A, Log2_64_Ceil(), and UINT64_MAX.
Referenced by llvm::SITargetLowering::allowsMisalignedMemoryAccessesImpl(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::ConcurrentHashTableByPtr(), expandFPToI(), expandIToFP(), llvm::X86TTIImpl::getScalarizationOverhead(), llvm::RISCVTTIImpl::getShuffleCost(), llvm::AMDGPUTargetLowering::getSplitDestVTs(), llvm::LegalizerHelper::getStackTemporaryAlignment(), llvm::object::COFFObjectFile::getSymbolAlignment(), isSaturatingMinMax(), llvm::HexagonSubtarget::isTypeForHVX(), llvm::AMDGPULegalizerInfo::legalizeLoad(), llvm::LegalizerHelper::lowerBitCount(), lowerBitreverseShuffle(), llvm::LegalizerHelper::lowerLoad(), llvm::LegalizerHelper::lowerStore(), narrowIndex(), narrowSDivOrSRem(), narrowUDivOrURem(), PromoteScalarIntegerPTX(), and widenToNextPowerOf2().
|
static |
Definition at line 771 of file APFloat.cpp.
References assert(), maxExponent, maxPowerOfFiveParts, llvm::APInt::tcAssign(), and llvm::APInt::tcFullMultiply().
|
inline |
|
inline |
|
inline |
Definition at line 1383 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::pred_begin().
Referenced by llvm::GraphTraits< Inverse< BasicBlock * > >::child_begin(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_begin(), computeLiveInValues(), ComputePostOrders(), llvm::VPRecipeBuilder::createBlockInMask(), ensureValueAvailableInSuccessor(), GetIfCondition(), llvm::Loop::getIncomingAndBackEdge(), llvm::LazyValueInfo::getPredicateAt(), isCriticalEdge(), IsValueFullyAvailableInBlock(), mergeConditionalStoreToAddress(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), pred_empty(), pred_size(), predecessors(), llvm::JumpThreadingPass::processGuards(), SplitLandingPadPredecessorsImpl(), splitPredecessorsOfLoopExit(), tryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), and llvm::MemorySSAUpdater::updateForClonedLoop().
|
inline |
Definition at line 118 of file CFG.h.
References pred_begin(), and pred_end().
Referenced by eraseDeadBBsAndChildren(), findDependencies(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), InlineFunction(), isFullPostDominator(), isLoopNeverExecuted(), IsValueFullyAvailableInBlock(), llvm::JumpThreadingPass::processBlock(), replaceConditionalBranchesOnConstant(), llvm::JumpThreadingPass::runImpl(), runPass(), simplifyOneLoop(), and unswitchTrivialSwitch().
|
inline |
|
inline |
|
inline |
Definition at line 1385 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::pred_end().
Referenced by llvm::GraphTraits< Inverse< BasicBlock * > >::child_end(), llvm::GraphTraits< Inverse< const BasicBlock * > >::child_end(), computeLiveInValues(), llvm::VPRecipeBuilder::createBlockInMask(), GetIfCondition(), llvm::Loop::getIncomingAndBackEdge(), llvm::LazyValueInfo::getPredicateAt(), isCriticalEdge(), IsValueFullyAvailableInBlock(), mergeConditionalStoreToAddress(), pred_empty(), pred_size(), predecessors(), llvm::JumpThreadingPass::processGuards(), SplitLandingPadPredecessorsImpl(), splitPredecessorsOfLoopExit(), tryToMergeLandingPad(), TryToSimplifyUncondBranchFromEmptyBlock(), and llvm::MemorySSAUpdater::updateForClonedLoop().
|
inline |
Get the number of predecessors of BB
.
This is a linear time operation. Use BasicBlock::hasNPredecessors() or hasNPredecessorsOrMore if able.
Definition at line 123 of file CFG.h.
References pred_begin(), and pred_end().
|
inline |
Definition at line 1381 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::pred_size().
Referenced by CloneAndPruneIntoFromInst(), getBestDestForJumpOnUndef(), insertTrivialPHIs(), introduceTooManyPhiEntries(), MergeBasicBlockIntoOnlyPred(), llvm::InsertPHIStrategy::mutate(), rewritePHIsForCleanupPad(), llvm::JumpThreadingPass::simplifyPartiallyRedundantLoad(), splitBlockBefore(), TryToSimplifyUncondBranchFromEmptyBlock(), llvm::MemorySSA::verifyOrderingDominationAndDefUses(), and llvm::MemorySSAUpdater::wireOldPredecessorsToNewImmediatePredecessor().
|
inline |
Definition at line 126 of file CFG.h.
References pred_begin(), and pred_end().
|
inline |
Definition at line 129 of file CFG.h.
References pred_begin(), and pred_end().
|
inline |
Definition at line 1377 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(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), ConnectEpilog(), ConnectProlog(), llvm::VPRecipeBuilder::createEdgeMask(), 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(), fixIrreducible(), llvm::InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse(), foldBranchToCommonDest(), foldCondBranchOnValueKnownInPredecessorImpl(), formDedicatedExitBlocks(), llvm::PredIteratorCache::get(), getAppleRuntimeUnrollPreferences(), llvm::GenericCycle< ContextT >::getCyclePredecessor(), llvm::VPRecipeBuilder::getEdgeMask(), getGVNForPHINode(), llvm::PartialOrderingVisitor::GetNodeRank(), llvm::afdo_detail::IRTraits< BasicBlock >::getPredecessors(), getPredState(), llvm::CanonicalLoopInfo::getPreheader(), 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(), preparePlanForEpilogueVectorLoop(), 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(), and llvm::MemorySSA::verifyOrderingDominationAndDefUses().
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(), and llvm::CmpInst::isSigned().
|
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 553 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::convertToThreeAddress(), 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().
std::error_code llvm::prepareTempFiles | ( | SmallVector< int > & | FD, |
ArrayRef< StringRef > | SR, | ||
SmallVector< std::string > & | FileName | ||
) |
Definition at line 178 of file PrintPasses.cpp.
References assert(), cleanUpTempFilesImpl(), llvm::sys::fs::createTemporaryFile(), I, make_error_code(), llvm::sys::fs::openFileForWrite(), llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), and llvm::Twine::str().
Referenced by doSystemDiff(), and llvm::IRChangedTester::handleIR().
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(), llvm::BasicBlock::end(), llvm::Function::getEntryBlock(), llvm::BasicBlock::getParent(), I, II, and moveBeforeInsertPoint().
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")) | |||
) |
|
static |
Definition at line 240 of file DWARFExpression.cpp.
References assert(), format(), Name, Operands, OS, llvm::dwarf::toString(), and llvm::DIDumpOptions::Verbose.
Referenced by llvm::DWARFExpression::prettyPrintRegisterOp(), and llvm::DWARFExpression::Operation::print().
|
inline |
Decrement It
, then continue decrementing it while it points to a debug instruction.
A replacement for std::prev.
Definition at line 1447 of file MachineBasicBlock.h.
References skipDebugInstructionsBackward().
Referenced by findHoistingInsertPosAndDeps(), llvm::MachineBasicBlock::findPrevDebugLoc(), llvm::RegPressureTracker::recedeSkipDebugValues(), and updateKillStatus().
Printable llvm::print | ( | const GCNRegPressure & | RP, |
const GCNSubtarget * | ST = nullptr |
||
) |
Definition at line 227 of file GCNRegPressure.cpp.
References if(), OS, and llvm::GCNRegPressure::VGPR32.
Referenced by llvm::GCNSchedStage::checkScheduling(), llvm::DominanceFrontierBase< BlockT, IsPostDom >::dump(), llvm::RegionBase< Tr >::dump(), llvm::RegionInfoBase< Tr >::dump(), llvm::RegBankSelect::MappingCost::dump(), llvm::RegisterBankInfo::ValueMapping::dump(), llvm::RegisterBankInfo::InstructionMapping::dump(), llvm::RegisterBankInfo::OperandsMapper::dump(), llvm::BaseIndexOffset::dump(), llvm::SpillPlacement::BlockConstraint::dump(), llvm::sandboxir::Interval< T >::dump(), llvm::SplitAnalysis::BlockInfo::dump(), llvm::VPlan::dump(), llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks(), llvm::GCNSchedStage::initGCNRegion(), llvm::GCNUpwardRPTracker::isValid(), llvm::MachO::PackedVersion::operator std::string(), llvm::LoopInfoBase< BlockT, LoopT >::print(), llvm::GCNIterativeScheduler::printRegions(), llvm::GCNIterativeScheduler::printSchedRP(), llvm::BlockFrequencyPrinterPass::run(), llvm::CycleInfoPrinterPass::run(), llvm::DemandedBitsPrinterPass::run(), llvm::DominanceFrontierPrinterPass::run(), llvm::FunctionPropertiesPrinterPass::run(), llvm::PostDominatorTreePrinterPass::run(), llvm::RegionInfoPrinterPass::run(), llvm::ScalarEvolutionPrinterPass::run(), llvm::StackSafetyPrinterPass::run(), llvm::UniformityInfoPrinterPass::run(), llvm::DominatorTreePrinterPass::run(), llvm::DebugAssignmentTrackingPrinterPass::run(), llvm::IVUsersPrinterPass::run(), llvm::LiveStacksPrinterPass::run(), llvm::LiveIntervalsPrinterPass::run(), llvm::LiveVariablesPrinterPass::run(), llvm::MachineDominatorTreePrinterPass::run(), llvm::MachineLoopPrinterPass::run(), llvm::MachinePostDominatorTreePrinterPass::run(), llvm::SlotIndexesPrinterPass::run(), llvm::CallGraphPrinterPass::run(), llvm::StackSafetyGlobalPrinterPass::run(), llvm::GCNRegPressurePrinter::runOnMachineFunction(), llvm::GCNIterativeScheduler::scheduleRegion(), and llvm::BlockFrequencyInfoImpl< BT >::verifyMatch().
Printable llvm::print | ( | const GCNRPTracker::LiveRegSet & | LiveRegs, |
const MachineRegisterInfo & | MRI | ||
) |
std::vector< std::string > llvm::printAfterPasses | ( | ) |
Definition at line 144 of file PrintPasses.cpp.
References PrintAfter.
std::vector< std::string > llvm::printBeforePasses | ( | ) |
Definition at line 140 of file PrintPasses.cpp.
References PrintBefore.
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 OS, and printRelativeBlockFreq().
Referenced by llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >::getNodeLabel(), and printBlockFreq().
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().
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(), OS, and printRelativeBlockFreq().
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().
|
static |
Definition at line 441 of file DWARFExpression.cpp.
References llvm::PrintedExpr::Address, assert(), format(), llvm::DWARFExpression::Operation::getCode(), llvm::DWARFExpression::Operation::getRawOperand(), llvm::DWARFExpression::Operation::getSubCode(), I, Offset, llvm::dwarf::OperationEncodingString(), OS, printCompactDWARFExpr(), RegName, and llvm::PrintedExpr::Value.
Referenced by llvm::DWARFExpression::printCompact(), and printCompactDWARFExpr().
cl::opt< bool > llvm::PrintDAGs | ( | "misched-print-dags" | , |
cl::Hidden | , | ||
cl::desc("Print schedule DAGs") | |||
) |
void llvm::PrintDomTree | ( | const DomTreeNodeBase< NodeT > * | N, |
raw_ostream & | O, | ||
unsigned | Lev | ||
) |
Definition at line 183 of file GenericDomTree.h.
Definition at line 110 of file Error.cpp.
References llvm::SourceMgr::DK_Error, and PrintMessage().
Definition at line 114 of file Error.cpp.
References llvm::SourceMgr::DK_Error, llvm::SMLoc::getFromPointer(), llvm::SourceMgr::PrintMessage(), and SrcMgr.
Definition at line 120 of file Error.cpp.
References llvm::SourceMgr::DK_Error, llvm::Record::getLoc(), and PrintMessage().
Definition at line 126 of file Error.cpp.
References llvm::SourceMgr::DK_Error, llvm::RecordVal::getLoc(), and PrintMessage().
Definition at line 104 of file Error.cpp.
References llvm::WithColor::error().
Referenced by CheckAssert(), checkConcrete(), llvm::Record::checkRecordAssertions(), dumpMessage(), llvm::TGParser::Error(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), and PrintFatalError().
void llvm::PrintError | ( | function_ref< void(raw_ostream &OS)> | PrintMsg | ) |
Definition at line 106 of file Error.cpp.
References llvm::WithColor::error().
Definition at line 142 of file Error.cpp.
References fatal_exit(), and PrintError().
Definition at line 149 of file Error.cpp.
References fatal_exit(), llvm::Record::getLoc(), and PrintError().
Definition at line 156 of file Error.cpp.
References fatal_exit(), llvm::RecordVal::getLoc(), and PrintError().
Definition at line 132 of file Error.cpp.
References fatal_exit(), and PrintError().
Referenced by llvm::SetTheory::evaluate(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::CondOpInit::Fold(), llvm::FieldInit::Fold(), llvm::UnOpInit::Fold(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::ListInit::getElementAsRecord(), llvm::Record::getFieldLoc(), llvm::DagInit::getOperatorAsDef(), 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::Record::getValueInit(), llvm::Record::resolveReferences(), and llvm::TGLexer::TGLexer().
void llvm::PrintFatalError | ( | function_ref< void(raw_ostream &OS)> | PrintMsg | ) |
Definition at line 137 of file Error.cpp.
References fatal_exit(), and PrintError().
Definition at line 71 of file Error.cpp.
References fatal_exit(), and PrintNote().
Definition at line 78 of file Error.cpp.
References fatal_exit(), llvm::Record::getLoc(), and PrintNote().
Definition at line 85 of file Error.cpp.
References fatal_exit(), llvm::RecordVal::getLoc(), and PrintNote().
Definition at line 66 of file Error.cpp.
References fatal_exit(), and PrintNote().
void llvm::printGraphForFunction | ( | Function & | F, |
GraphT | Graph, | ||
StringRef | Name, | ||
bool | IsSimple | ||
) |
Definition at line 102 of file DOTGraphTraitsPass.h.
References errs(), F, llvm::DefaultDOTGraphTraits::getGraphName(), Name, llvm::sys::fs::OF_TextWithCRLF, shortenFileName(), and WriteGraph().
Referenced by llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::run(), and llvm::DOTGraphTraitsPrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction().
void llvm::printIRUnitNameForStackTrace | ( | raw_ostream & | OS, |
const IRUnitT & | IR | ||
) |
void llvm::printIRUnitNameForStackTrace< Function > | ( | raw_ostream & | OS, |
const Function & | IR | ||
) |
Definition at line 155 of file PassManager.cpp.
void llvm::printIRUnitNameForStackTrace< Module > | ( | raw_ostream & | OS, |
const Module & | IR | ||
) |
Definition at line 149 of file PassManager.cpp.
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 1436 of file MachineFunction.cpp.
Referenced by llvm::MachineJumpTableInfo::print(), and llvm::MachineOperand::print().
|
inline |
Create Printable object to print LaneBitmasks on a raw_ostream.
Definition at line 92 of file LaneBitmask.h.
References format(), llvm::LaneBitmask::FormatStr, llvm::LaneBitmask::getAsInteger(), and OS.
Referenced by llvm::DeadLaneDetector::computeSubRegisterLaneBitInfo(), llvm::RegisterPressure::dump(), llvm::rdf::operator<<(), llvm::MIPrinter::print(), llvm::LiveInterval::SubRange::print(), llvm::MachineBasicBlock::print(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
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 382 of file AsmWriter.cpp.
References assert(), llvm::CallingConv::C, Name, and OS.
Referenced by llvm::MachineOperand::print(), llvm::MachineMemOperand::print(), printIRBlockReference(), llvm::MIRFormatter::printIRValue(), and PrintLLVMName().
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::SmallVectorBase< Size_T >::empty(), forcePrintFuncIR(), forcePrintModuleIR(), and OS.
Referenced by llvm::PrintLoopPass::run().
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 122 of file MachineBasicBlock.cpp.
References MBB, OS, and llvm::MachineBasicBlock::printAsOperand().
Referenced by llvm::HexagonInstrInfo::analyzeBranch(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::rdf::Liveness::computeLiveIns(), llvm::MIRPrinter::convert(), 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::MIPrinter::print(), llvm::MachineTraceMetrics::TraceBlockInfo::print(), llvm::MachineTraceMetrics::Trace::print(), llvm::ARMConstantPoolMBB::print(), llvm::MachineJumpTableInfo::print(), llvm::SplitAnalysis::BlockInfo::print(), llvm::MachineBasicBlock::print(), llvm::MachineOperand::print(), llvm::MachineBranchProbabilityInfo::printEdgeProbability(), printRegion(), ProfitableToMerge(), llvm::HexagonInstrInfo::removeBranch(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::SplitEditor::splitRegInBlock(), llvm::SplitEditor::splitRegOutBlock(), llvm::MachineBasicBlock::updateTerminator(), verifyCTRBranch(), VerifyPHIs(), and WriteGraph().
|
static |
Definition at line 27 of file Error.cpp.
References llvm::SourceMgr::DK_Error, llvm::SourceMgr::DK_Note, llvm::ArrayRef< T >::empty(), ErrorsPrinted, llvm::ArrayRef< T >::front(), llvm::SourceMgr::PrintMessage(), llvm::ArrayRef< T >::size(), and SrcMgr.
Referenced by PrintError(), PrintNote(), and PrintWarning().
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 1060 of file MIRPrinter.cpp.
References llvm::MachineFunction::getFunction(), OS, llvm::Metadata::print(), Printer, and WriteNewDbgInfoFormat.
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 1052 of file MIRPrinter.cpp.
References OS, and WriteNewDbgInfoFormat.
Referenced by llvm::PrintMIRPass::run(), and llvm::PrintMIRPreparePass::run().
Definition at line 60 of file Error.cpp.
References llvm::SourceMgr::DK_Note, and PrintMessage().
Definition at line 52 of file Error.cpp.
References llvm::WithColor::note().
Referenced by dumpMessage(), and PrintFatalNote().
void llvm::PrintNote | ( | function_ref< void(raw_ostream &OS)> | PrintMsg | ) |
Definition at line 56 of file Error.cpp.
References llvm::WithColor::note().
cl::opt< bool > llvm::PrintPipelinePasses | ( | "print-pipeline-passes" | , |
cl::desc("Print a '-passes' compatible string describing the pipeline " "(best-effort only).") | |||
) |
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.
Referenced by llvm::Recycler< T, Size, Align >::PrintStats().
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 if(), llvm::Register::isStackSlot(), llvm_unreachable, MRI, OS, llvm::Register::stackSlot2Index(), 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(), llvm::DeadLaneDetector::computeSubRegisterLaneBitInfo(), convertArgumentInfo(), llvm::HexagonInstrInfo::copyPhysReg(), llvm::VEInstrInfo::copyPhysReg(), createCFAOffset(), createDefCFAExpression(), createDefCFAOffset(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::SDep::dump(), dump_registers(), llvm::TargetRegisterInfo::dumpReg(), emitDebugValueComment(), llvm::LiveDebugVariables::LDVImpl::emitDebugValues(), emitFakeUse(), llvm::AsmPrinter::emitImplicitDef(), llvm::AMDGPUAsmPrinter::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::MIPrinter::print(), llvm::LiveInterval::print(), llvm::LivePhysRegs::print(), llvm::RegisterBankInfo::OperandsMapper::print(), llvm::PhysicalRegisterUsageInfo::print(), llvm::VirtRegMap::print(), llvm::MachineFunction::print(), llvm::LiveIntervalUnion::print(), llvm::MachineBasicBlock::print(), llvm::MachineOperand::print(), llvm::rdf::PhysicalRegisterInfo::print(), llvm::BitTracker::print_cells(), llvm::SDNode::print_details(), llvm::SystemZAsmPrinter::PrintAsmMemoryOperand(), printCFIRegister(), printCustomRegMask(), PrintNodeInfo(), printOperand(), printRegMIR(), regToString(), llvm::RegBankSelect::repairReg(), replaceFrameIndex(), llvm::PPCRegisterInfo::requiresFrameIndexScavenging(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::RegScavenger::scavengeRegisterBackwards(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::ARCInstrInfo::storeRegToStackSlot(), tryToFindRegisterToRename(), llvm::LiveRegMatrix::unassign(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::MachineRegisterInfo::verifyUseList().
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 llvm::RegisterBank::getName(), llvm::MachineRegisterInfo::getRegBankOrNull(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineRegisterInfo::getRegClassOrNull(), if(), llvm::StringRef::lower(), OS, and TRI.
Referenced by llvm::MIRPrinter::convert(), llvm::MachineOperand::print(), printRegClassOrBank(), and llvm::RegBankSelect::repairReg().
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(), OS, and TRI.
Referenced by llvm::LiveRegMatrix::assign(), llvm::LiveIntervals::print(), llvm::rdf::PhysicalRegisterInfo::print(), printVRegOrUnit(), and llvm::LiveRegMatrix::unassign().
void llvm::printRelativeBlockFreq | ( | raw_ostream & | OS, |
BlockFrequency | EntryFreq, | ||
BlockFrequency | Freq | ||
) |
Definition at line 51 of file BlockFrequency.cpp.
References Block, llvm::BlockFrequency::getFrequency(), and OS.
Referenced by printBlockFreq().
void llvm::PrintStatistics | ( | ) |
Print statistics to the file returned by CreateInfoOutputFile().
Definition at line 229 of file Statistic.cpp.
References CreateInfoOutputFile(), EnableStats, PrintStatistics(), PrintStatisticsJSON(), StatInfo, StatLock, Stats, and StatsAsJSON.
Referenced by llvm::LTOCodeGenerator::compileOptimized(), PrintStatistics(), and llvm::ThinLTOCodeGenerator::run().
void llvm::PrintStatistics | ( | raw_ostream & | OS | ) |
Print statistics to the given output stream.
Definition at line 176 of file Statistic.cpp.
References llvm::raw_ostream::flush(), format(), OS, StatInfo, and Stats.
void llvm::PrintStatisticsJSON | ( | raw_ostream & | OS | ) |
Print statistics in JSON format.
This does include all global timers (
Definition at line 203 of file Statistic.cpp.
References assert(), llvm::raw_ostream::flush(), OS, llvm::TimerGroup::printAllJSONValues(), StatInfo, StatLock, and Stats.
Referenced by llvm::LTOCodeGenerator::compileOptimized(), PrintStatistics(), and llvm::lto::LTO::run().
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(), OS, printRegUnit(), TRI, and llvm::Register::virtReg2Index().
Referenced by llvm::RegisterPressure::dump(), llvm::SIScheduleBlock::printDebug(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
Definition at line 94 of file Error.cpp.
References llvm::SourceMgr::DK_Warning, and PrintMessage().
Definition at line 98 of file Error.cpp.
References llvm::SourceMgr::DK_Warning, llvm::SMLoc::getFromPointer(), llvm::SourceMgr::PrintMessage(), and SrcMgr.
Definition at line 92 of file Error.cpp.
References llvm::WithColor::warning().
Referenced by llvm::Record::checkUnusedTemplateArgs().
void llvm::processInstr | ( | MachineInstr & | MI, |
MachineIRBuilder & | MIB, | ||
MachineRegisterInfo & | MRI, | ||
SPIRVGlobalRegistry * | GR | ||
) |
Definition at line 466 of file SPIRVPreLegalizer.cpp.
References llvm::MachineInstrBuilder::addDef(), llvm::MachineInstrBuilder::addUse(), llvm::MachineIRBuilder::buildInstr(), createNewIdReg(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), MI, MRI, and llvm::MachineIRBuilder::setInsertPt().
Referenced by processInstrsWithTypeFolding(), and processNewInstrs().
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.
Mask | Original shuffle mask. |
NumOfSrcRegs | Number of source registers. |
NumOfDestRegs | Number of destination registers. |
NumOfUsedRegs | Number of actually used destination registers. |
Definition at line 556 of file VectorUtils.cpp.
References llvm::SmallVectorImpl< T >::assign(), I, Idx, and PoisonMaskElem.
Referenced by llvm::X86TTIImpl::getShuffleCost(), and lowerShuffleViaVRegSplitting().
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.") | |||
) |
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.") | |||
) |
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.") | |||
) |
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 | |||
) |
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") | |||
) |
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.") | |||
) |
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.") | |||
) |
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") | |||
) |
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.") | |||
) |
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.") | |||
) |
bool llvm::programUndefinedIfPoison | ( | const Instruction * | Inst | ) |
Definition at line 8259 of file ValueTracking.cpp.
Referenced by llvm::ScalarEvolution::canReuseInstruction(), and combineIRFlags().
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 8255 of file ValueTracking.cpp.
Referenced by isGuaranteedNotToBeUndefOrPoison().
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 llvm::AttrBuilder::addByValAttr(), llvm::AttrBuilder::addInAllocaAttr(), assert(), llvm::CastInst::CreateBitOrPointerCast(), createRetBitCast(), llvm::AttributeList::get(), llvm::AttributeSet::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::AttrBuilder::getByValType(), llvm::CallBase::getCalledFunction(), llvm::AttributeList::getFnAttrs(), llvm::CallBase::getFunctionType(), llvm::AttrBuilder::getInAllocaType(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::AttributeList::getParamAttrs(), llvm::AttributeList::getRetAttrs(), llvm::Value::getType(), llvm::Type::isVoidTy(), llvm::CallBase::mutateFunctionType(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AttrBuilder::remove(), llvm::CallBase::setArgOperand(), llvm::CallBase::setAttributes(), llvm::CallBase::setCalledOperand(), llvm::Instruction::setMetadata(), and llvm::AttributeFuncs::typeIncompatible().
Referenced by promoteCallWithIfThenElse(), promoteCallWithVTableCmp(), and tryPromoteCall().
CallBase * llvm::promoteCallWithIfThenElse | ( | CallBase & | CB, |
Function & | Callee, | ||
PGOContextualProfile & | CtxProf | ||
) |
Definition at line 579 of file CallPromotionUtils.cpp.
References _, llvm::PGOContextualProfile::allocateNextCallsiteIndex(), llvm::PGOContextualProfile::allocateNextCounterIndex(), assert(), DirectCall, llvm::CtxProfAnalysis::getBBInstrumentation(), llvm::CtxProfAnalysis::getCallsiteInstrumentation(), llvm::Instruction::getFunction(), llvm::AssignGUIDPass::getGUID(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::PGOContextualProfile::isFunctionKnown(), llvm::CallBase::isIndirectCall(), promoteCall(), llvm::PGOContextualProfile::update(), and versionCallSite().
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 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().
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::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateOr(), llvm::ArrayRef< T >::empty(), promoteCall(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and versionCallSiteWithCond().
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 1969 of file LICM.cpp.
References all_of(), llvm::ICFLoopSafetyInfo::anyBlockMayThrow(), assert(), llvm::SetVector< T, Vector, Set, N >::begin(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::MemorySSAUpdater::createMemoryAccessInBB(), dbgs(), DEBUG_TYPE, DL, llvm::DominatorTree::dominates(), llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorBase< Size_T >::empty(), llvm::MemorySSA::End, eraseInstruction(), llvm::PoisonValue::get(), llvm::Instruction::getAAMetadata(), llvm::BasicBlock::getDataLayout(), llvm::ilist_node_impl< OptionsT >::getIterator(), getLoadStoreType(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::DILocation::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::MemorySSA::verifyMemorySSA(), and VerifyMemorySSA.
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 1240 of file PromoteMemoryToRegister.cpp.
References llvm::ArrayRef< T >::empty().
Referenced by doPromotion(), eliminateSwiftError(), promoteMemoryToRegister(), and relocationViaAlloca().
Definition at line 75 of file NVPTXUtilities.h.
References size().
Referenced by llvm::NVPTXTargetLowering::getPrototype(), and llvm::NVPTXTargetLowering::LowerCall().
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 1368 of file LoopUtils.cpp.
References I.
Referenced by generateNewInstTree().
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.
I
after propagating metadata from VL
. Definition at line 942 of file VectorUtils.cpp.
References llvm::MMRAMetadata::combine(), llvm::ArrayRef< T >::empty(), llvm::Instruction::getAllMetadataOtherThanDebugLoc(), llvm::Value::getContext(), llvm::Instruction::getMetadata(), 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< InstTy >::addMetadata(), llvm::VPTransformState::addMetadata(), and propagateMetadata().
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 7997 of file ValueTracking.cpp.
References llvm::Use::getOperandNo(), llvm::Use::getUser(), I, and II.
Referenced by programUndefinedIfUndefOrPoison().
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, 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().
|
inline |
Definition at line 49 of file GenericValue.h.
References P.
Referenced by llvm::ExecutionEngine::getConstantValue(), lle_X_fprintf(), lle_X_printf(), llvm::MCJIT::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), and llvm::Interpreter::visitAllocaInst().
|
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 1722 of file STLExtras.h.
References adl_begin(), adl_end(), adl_size(), and Range.
Referenced by append_values(), enumerate(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::sandboxir::Value::getNumUses(), zip_equal(), and zip_first().
|
static |
NameStrings
is a string composed of one of more possibly encoded sub-strings.
The substrings are separated by 0 or more zero bytes. This method decodes the string and calls NameCallback
for each substring.
Definition at line 539 of file InstrProf.cpp.
References llvm::StringRef::bytes_begin(), llvm::StringRef::bytes_end(), consumeError(), decodeULEB128(), llvm::compression::zlib::decompress(), getInstrProfNameSeparator(), llvm::compression::zlib::isAvailable(), N, Name, P, llvm::StringRef::split(), llvm::Error::success(), uncompress_failed, and zlib_unavailable.
Referenced by llvm::InstrProfSymtab::create(), and llvm::InstrProfSymtab::initVTableNamesFromCompressedStrings().
Constant * llvm::ReadByteArrayFromGlobal | ( | const GlobalVariable * | GV, |
uint64_t | Offset | ||
) |
Definition at line 648 of file ConstantFolding.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), DL, llvm::ConstantDataArray::get(), llvm::Value::getContext(), llvm::GlobalValue::getDataLayout(), llvm::GlobalVariable::getInitializer(), llvm::GlobalVariable::hasDefinitiveInitializer(), llvm::GlobalVariable::isConstant(), and Offset.
Referenced by getConstantDataArrayInfo().
|
static |
Definition at line 418 of file APFloat.cpp.
References createError(), decDigitValue(), and value.
Referenced by interpretDecimal().
|
static |
Definition at line 53 of file NVPTXUtilities.cpp.
References llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), and llvm::ConstantInt::getZExtValue().
Referenced by cacheAnnotationFromMD().
Error llvm::readModuleSummaryIndex | ( | MemoryBufferRef | Buffer, |
ModuleSummaryIndex & | CombinedIndex | ||
) |
Parse the specified bitcode buffer and merge the index into CombinedIndex.
Definition at line 8754 of file BitcodeReader.cpp.
References getSingleModule(), and llvm::Expected< T >::takeError().
Definition at line 3188 of file BitcodeReader.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::ArrayRef< T >::size(), and transform().
bool llvm::recognizeBSwapOrBitReverseIdiom | ( | Instruction * | I, |
bool | MatchBSwaps, | ||
bool | MatchBitReversals, | ||
SmallVectorImpl< Instruction * > & | InsertedInsts | ||
) |
Try to match a bswap or bitreverse idiom.
If an idiom is matched, an intrinsic call is inserted before I
. Any added instructions are returned in InsertedInsts
. They will all have been added to a basic block.
A bitreverse idiom normally requires around 2*BW nodes to be searched (where BW is the bitwidth of the integer type). A bswap idiom requires anywhere up to BW / 4 nodes to be searched, so is significantly faster.
This function returns true on a successful match or false otherwise.
Definition at line 4096 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(), llvm::ArrayRef< T >::empty(), F, 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().
|
inlinestatic |
Convenience function for recomputing live-in's for a MBB.
Returns true if any changes were made.
Definition at line 200 of file LivePhysRegs.h.
References llvm::MachineBasicBlock::clearLiveIns(), computeAndAddLiveIns(), llvm::MachineBasicBlock::getLiveIns(), MBB, and llvm::MachineBasicBlock::sortUniqueLiveIns().
Referenced by fullyRecomputeLiveIns().
void llvm::recomputeLivenessFlags | ( | MachineBasicBlock & | MBB | ) |
Recomputes dead and kill flags in MBB
.
Definition at line 276 of file LivePhysRegs.cpp.
References llvm::LivePhysRegs::addLiveOutsNoPristines(), llvm::LivePhysRegs::addUses(), assert(), llvm::LivePhysRegs::available(), llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), Info, llvm::LivePhysRegs::init(), llvm::MachineFrameInfo::isCalleeSavedInfoValid(), llvm::MIBundleOperandIteratorBase< ValueT >::isValid(), MBB, MI, MRI, llvm::LivePhysRegs::removeDefs(), reverse(), and TRI.
Recomputes the LTO cache key for a given key with an extra identifier.
Definition at line 349 of file LTO.cpp.
References llvm::SHA1::result(), and llvm::SHA1::update().
void llvm::recomputeVPTBlockMask | ( | MachineInstr & | Instr | ) |
Definition at line 818 of file Thumb2InstrInfo.cpp.
References assert(), End, expandPredBlockMask(), getVPTInstrPredicate(), llvm::MachineOperand::isImm(), isVPTOpcode(), llvm::ARMVCC::None, llvm::MachineOperand::setImm(), llvm::ARM::T, and llvm::ARMVCC::Then.
Definition at line 285 of file SPIRVUtils.h.
References F, llvm::FunctionType::get(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
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.
Definition at line 657 of file Local.cpp.
References areAllUsesEqual(), llvm::PoisonValue::get(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), and RecursivelyDeleteTriviallyDeadInstructions().
Referenced by CanWidenIV(), and DeleteDeadPHIs().
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 580 of file Local.cpp.
References assert(), llvm::SmallVectorBase< Size_T >::empty(), I, isInstructionTriviallyDead(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MemorySSAUpdater::removeMemoryAccess(), salvageDebugInfo(), and llvm::Value::use_empty().
bool llvm::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.
RecursivelyDeleteTriviallyDeadInstructions - If the specified value is a trivially dead instruction, delete it.
If that makes any of its operands trivially dead, delete them too, recursively. Return true if any instructions were deleted.
Definition at line 546 of file Local.cpp.
References I, isInstructionTriviallyDead(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and RecursivelyDeleteTriviallyDeadInstructions().
Referenced by buildClonedLoopBlocks(), ConstantFoldTerminator(), llvm::objcarc::EraseInstruction(), eraseTerminatorAndDCECond(), foldFCmpToFPClassTest(), RecursivelyDeleteDeadPHINode(), RecursivelyDeleteTriviallyDeadInstructions(), RecursivelyDeleteTriviallyDeadInstructionsPermissive(), runImpl(), simplifyLoopAfterUnroll(), simplifyLoopInst(), SRAGlobal(), stripDebugDeclareImpl(), UnrollRuntimeLoopRemainder(), and llvm::slpvectorizer::BoUpSLP::~BoUpSLP().
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.
Definition at line 561 of file Local.cpp.
References I, isInstructionTriviallyDead(), RecursivelyDeleteTriviallyDeadInstructions(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by CleanupConstantGlobalUsers(), doPromotion(), and ReduceLoopStrength().
|
static |
Try to use Inst's
value range from Solver
to infer the NUW flag.
Definition at line 87 of file SCCPSolver.cpp.
References all_of(), llvm::ValueLatticeElement::asConstantRange(), llvm::SmallPtrSetImpl< PtrType >::contains(), GEP, llvm::ConstantRange::getActiveBits(), llvm::SCCPSolver::getLatticeValueFor(), llvm::ConstantRange::getMinSignedBits(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Instruction::hasNonNeg(), llvm::Instruction::hasNoSignedWrap(), llvm::Instruction::hasNoUnsignedWrap(), llvm::ConstantRange::isAllNonNegative(), llvm::ConstantRange::makeGuaranteedNoWrapRegion(), llvm::OverflowingBinaryOperator::NoSignedWrap, llvm::GEPNoWrapFlags::noUnsignedWrap(), llvm::OverflowingBinaryOperator::NoUnsignedWrap, Range, llvm::Instruction::setHasNoSignedWrap(), llvm::Instruction::setHasNoUnsignedWrap(), and llvm::Instruction::setNonNeg().
Referenced by llvm::SCCPSolver::simplifyInstsInBlock().
llvm::RegionGraphTraits | ( | MachineRegion | , |
MachineRegionNode | |||
) |
llvm::RegionGraphTraits | ( | Region | , |
RegionNode | |||
) |
llvm::RegionNodeGraphTraits | ( | MachineRegionNode | , |
MachineBasicBlock | , | ||
MachineRegion | |||
) |
llvm::RegionNodeGraphTraits | ( | RegionNode | , |
BasicBlock | , | ||
Region | |||
) |
void llvm::registerCodeGenCallback | ( | PassInstrumentationCallbacks & | PIC, |
TargetMachine & | TM | ||
) |
Definition at line 519 of file TargetPassConfig.cpp.
References DISABLE_PASS, DisableBlockPlacement, DisableBranchFold, DisableCopyProp, DisableEarlyIfConversion, DisableEarlyTailDup, DisableMachineCSE, DisableMachineDCE, DisableMachineLICM, DisableMachineSink, DisablePostRAMachineLICM, DisablePostRAMachineSink, DisablePostRASched, DisableSSC, DisableTailDuplicate, P, PIC, and llvm::PassInstrumentationCallbacks::registerShouldRunOptionalPassCallback().
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 5609 of file ARMBaseInstrInfo.cpp.
Referenced by findCMPToFoldIntoCBZ(), and findVCMPToFoldIntoVPST().
|
inline |
Remap the Values used in the DbgRecord DR using the value map VM.
Definition at line 272 of file ValueMapper.h.
References llvm::ValueMapper::remapDbgRecord().
Referenced by performBranchToCommonDestFolding().
|
inline |
Remap the Values used in the DbgRecords Range using the value map VM.
Definition at line 281 of file ValueMapper.h.
References Range, and llvm::ValueMapper::remapDbgRecordRange().
Referenced by buildClonedLoopBlocks(), CloneAndPruneIntoFromInst(), CloneFunctionBodyInto(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), remapInstructionsInBlocks(), and UnrollRuntimeLoopRemainder().
void llvm::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.
Definition at line 3787 of file Local.cpp.
References llvm::ValueMap< KeyT, ValueT, Config >::end(), filterDbgVars(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::Instruction::getDbgRecordRange(), and I.
Referenced by llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), and DuplicateInstructionsInSplitBetween().
|
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 297 of file ValueMapper.h.
References F, and llvm::ValueMapper::remapFunction().
|
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 263 of file ValueMapper.h.
References I, and llvm::ValueMapper::remapInstruction().
Referenced by buildClonedLoopBlocks(), buildPartialInvariantUnswitchConditionalBranch(), CloneAndPruneIntoFromInst(), CloneFunctionBodyInto(), cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses(), remapInstructionsInBlocks(), and UnrollRuntimeLoopRemainder().
void llvm::remapInstructionsInBlocks | ( | ArrayRef< BasicBlock * > | Blocks, |
ValueToValueMapTy & | VMap | ||
) |
Remaps instructions in Blocks
using the mapping in VMap
.
Definition at line 1018 of file CloneFunction.cpp.
References Blocks, RemapDbgRecordRange(), RemapInstruction(), RF_IgnoreMissingLocals, and RF_NoModuleLevelChanges.
Referenced by generateReproducer(), peelLoop(), splitLoopBound(), UnrollAndJamLoop(), UnrollLoop(), and llvm::LoopVersioning::versionLoop().
|
static |
Definition at line 2441 of file DWARFLinker.cpp.
References llvm::sys::path::replace_path_prefix().
Referenced by getPCMFile(), and getPCMFile().
void llvm::remove_bad_alloc_error_handler | ( | ) |
Restores default bad alloc error handling behavior.
Definition at line 140 of file ErrorHandling.cpp.
References BadAllocErrorHandler, and BadAllocErrorHandlerUserData.
void llvm::remove_fatal_error_handler | ( | ) |
Restores default error handling behaviour.
Definition at line 75 of file ErrorHandling.cpp.
References ErrorHandler, and ErrorHandlerUserData.
Referenced by LLVMResetFatalErrorHandler(), and llvm::ScopedFatalErrorHandler::~ScopedFatalErrorHandler().
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 1778 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< T, Vector, Set, N >::remove_if(), and llvm::PHINode::removeIncomingValueIf().
std::pair< unsigned, unsigned > llvm::removeAllNonTerminatorAndEHPadInstructions | ( | BasicBlock * | BB | ) |
Remove all instructions from a basic block other than its terminator and any present EH pad instructions.
Returns a pair where the first element is the number of instructions (excluding debug info intrinsics) that have been removed, and the second element is the number of debug info intrinsics that have been removed.
Definition at line 2877 of file Local.cpp.
References llvm::Instruction::dropDbgRecords(), llvm::Instruction::eraseFromParent(), llvm::BasicBlock::front(), llvm::PoisonValue::get(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), handleUnreachableTerminator(), llvm::Instruction::isEHPad(), llvm::Type::isTokenTy(), llvm::Value::replaceAllUsesWith(), llvm::Value::use_empty(), and Uses.
Referenced by llvm::InstCombinerImpl::prepareWorklist().
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 195 of file ModuleUtils.cpp.
References removeFromUsedList().
Referenced by removeUnreachableFunctions().
bool llvm::RemoveRedundantDbgInstrs | ( | BasicBlock * | BB | ) |
Try to remove redundant dbg.value instructions from given basic block.
Returns true if at least one instruction was removed. Remove redundant pseudo ops when RemovePseudoOp is true.
Definition at line 685 of file BasicBlockUtils.cpp.
References dbgs(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), isAssignmentTrackingEnabled(), llvm::BasicBlock::isEntryBlock(), LLVM_DEBUG, removeRedundantDbgInstrsUsingBackwardScan(), removeRedundantDbgInstrsUsingForwardScan(), and removeUndefDbgAssignsFromEntryBlock().
Referenced by LowerDbgDeclare(), llvm::RedundantDbgInstEliminationPass::run(), llvm::LoopVectorizePass::run(), llvm::JumpThreadingPass::runImpl(), and simplifyLoopAfterUnroll().
bool llvm::removeUnreachableBlocks | ( | Function & | F, |
DomTreeUpdater * | DTU = nullptr , |
||
MemorySSAUpdater * | MSSAU = nullptr |
||
) |
Remove all blocks that can not be reached from the function's entry.
removeUnreachableBlocks - Remove blocks that are not reachable, even if they are in a dead cycle.
Returns true if any basic block was removed.
Return true if a change was made, false otherwise.
Definition at line 3274 of file Local.cpp.
References assert(), llvm::SmallPtrSetImpl< PtrType >::count(), DeleteDeadBlocks(), llvm::SetVector< T, Vector, Set, N >::empty(), F, llvm::SetVector< T, Vector, Set, N >::insert(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::isBBPendingDeletion(), markAliveBlocks(), llvm::MemorySSAUpdater::removeBlocks(), llvm::SetVector< T, Vector, Set, N >::size(), llvm::SmallPtrSetImplBase::size(), and llvm::SetVector< T, Vector, Set, N >::takeVector().
Referenced by lowerConstantIntrinsics(), OptimizeFunctions(), postSplitCleanup(), llvm::FlattenCFGPass::run(), llvm::CoroSplitPass::run(), llvm::PlaceSafepointsPass::runImpl(), llvm::RewriteStatepointsForGC::runOnFunction(), and simplifyFunctionCFGImpl().
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.
BB | Block whose terminator will be replaced. Its terminator must have an unwind successor. |
Definition at line 3236 of file Local.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), changeToCall(), llvm::CleanupReturnInst::Create(), llvm::CatchSwitchInst::Create(), 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().
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 336 of file FunctionImportUtils.cpp.
References llvm::FunctionImportGlobalProcessing::run().
Referenced by doImportingForModuleForTest(), llvm::FunctionImporter::importFunctions(), promoteModule(), and llvm::lto::thinBackend().
|
static |
Reorders the list of scalars in accordance with the given Mask
.
Definition at line 1238 of file SLPVectorizer.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::PoisonValue::get(), I, PoisonMaskElem, llvm::SmallVectorBase< Size_T >::size(), and llvm::SmallVectorImpl< T >::swap().
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::adjustExtracts(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), and llvm::slpvectorizer::BoUpSLP::transformNodes().
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 2130 of file STLExtras.h.
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 2149 of file STLExtras.h.
References replace().
void llvm::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.
Definition at line 1866 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by llvm::HvxSelector::getPerfectCompletions(), LLVMOrcMaterializationResponsibilityReplace(), replace(), and updateRegisterMapForDbgValueListAfterMove().
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 1857 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by TransferTracker::clobberMloc().
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 1848 of file STLExtras.h.
References adl_begin(), adl_end(), P, and Range.
bool llvm::replaceAllDbgUsesWith | ( | Instruction & | From, |
Value & | To, | ||
Instruction & | DomPoint, | ||
DominatorTree & | DT | ||
) |
Point debug users of From
to To
or salvage them.
Use this function only when replacing all uses of From
with To
, with a guarantee that From
is going to be deleted.
Follow these rules to prevent use-before-def of To:
. If To
is a linked Instruction, set DomPoint
to To
. . If To
is an unlinked Instruction, set DomPoint
to the Instruction To
will be inserted after. . If To
is not an Instruction (e.g a Constant), the choice of DomPoint
is arbitrary. Pick From
for simplicity.
If a debug user cannot be preserved without reordering variable updates or introducing a use-before-def, it is either salvaged (salvageDebugInfo) or deleted. Returns true if any debug users were updated.
Definition at line 2787 of file Local.cpp.
References llvm::DIExpression::appendExt(), assert(), DL, From, llvm::DbgVariableIntrinsic::getExpression(), llvm::Type::getPrimitiveSizeInBits(), llvm::DIVariable::getSignedness(), llvm::Value::getType(), llvm::DbgVariableIntrinsic::getVariable(), isBitCastSemanticsPreserving(), llvm::Type::isIntegerTy(), rewriteDebugUsers(), and Signed.
Referenced by llvm::InstCombinerImpl::commonCastTransforms(), llvm::InstCombinerImpl::foldOpIntoPhi(), simplifyAllocaArraySize(), and llvm::InstCombinerImpl::visitZExt().
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 7310 of file InstructionSimplify.cpp.
References assert(), I, and replaceAndRecursivelySimplifyImpl().
Referenced by replaceConditionalBranchesOnConstant(), and replaceWithConstant().
|
static |
Definition at line 829 of file PredicateInfo.cpp.
References F, llvm::PredicateInfo::getPredicateInfoFor(), II, instructions, and make_early_inc_range().
Referenced by llvm::PredicateInfoPrinterPass::run().
bool llvm::replaceDbgDeclare | ( | Value * | Address, |
Value * | NewAddress, | ||
DIBuilder & | Builder, | ||
uint8_t | DIExprFlags, | ||
int | Offset | ||
) |
Replaces llvm.dbg.declare instruction when the address it describes is replaced with a new value.
If Deref is true, an additional DW_OP_deref is prepended to the expression. If Offset is non-zero, a constant displacement is added to the expression (between the optional Deref operations). Offset can be negative.
Definition at line 2204 of file Local.cpp.
References Address, assert(), llvm::TinyPtrVector< EltTy >::empty(), findDbgDeclares(), findDVRDeclares(), for_each(), Offset, and llvm::DIExpression::prepend().
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.
Definition at line 623 of file Local.cpp.
References llvm::SmallVectorBase< Size_T >::empty(), findDbgUsers(), and I.
void llvm::replaceDbgValueForAlloca | ( | AllocaInst * | AI, |
Value * | NewAllocaAddress, | ||
DIBuilder & | Builder, | ||
int | Offset = 0 |
||
) |
Replaces multiple llvm.dbg.value instructions when the alloca it describes is replaced with a new value.
If Offset is non-zero, a constant displacement is added to the expression (after the mandatory Deref). Offset can be negative. New llvm.dbg.value instructions are inserted at the locations of the instructions they replace.
Definition at line 2253 of file Local.cpp.
References findDbgValues(), Offset, and updateOneDbgValueForAlloca().
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 3589 of file Local.cpp.
References llvm::DominatorTree::dominates(), and From.
unsigned llvm::replaceDominatedUsesWith | ( | Value * | From, |
Value * | To, | ||
DominatorTree & | DT, | ||
const BasicBlockEdge & | Edge | ||
) |
Replace each use of 'From' with 'To' if that use is dominated by the given edge.
Returns the number of replacements made.
Definition at line 3580 of file Local.cpp.
References llvm::DominatorTree::dominates(), and From.
Referenced by sinkInstruction().
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 3608 of file Local.cpp.
References llvm::DominatorTree::dominates(), and From.
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.
Definition at line 3598 of file Local.cpp.
References llvm::DominatorTree::dominates(), and From.
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 723 of file BasicBlockUtils.cpp.
References assert(), I, and ReplaceInstWithValue().
Referenced by llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::VPBranchOnMaskRecipe::execute(), llvm::InsertCFGStrategy::mutate(), ReplaceInstWithInst(), and SplitBlockAndInsertIfThenElse().
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 757 of file BasicBlockUtils.cpp.
References From, and ReplaceInstWithInst().
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 710 of file BasicBlockUtils.cpp.
References I.
Referenced by ReplaceInstWithInst().
unsigned llvm::replaceNonLocalUsesWith | ( | Instruction * | From, |
Value * | To | ||
) |
Definition at line 3565 of file Local.cpp.
References assert(), From, llvm::Value::getType(), I, and make_early_inc_range().
Referenced by replaceFoldableUses().
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 255 of file TypeMetadataUtils.cpp.
References llvm::CallingConv::C, replaceRelativePointerUsersWithZero(), and replaceRelativePointerUserWithZero().
Referenced by replaceRelativePointerUsersWithZero(), and llvm::GlobalDCEPass::run().
|
static |
Try to replace signed instructions with their unsigned equivalent.
Definition at line 166 of file SCCPSolver.cpp.
References assert(), llvm::CallingConv::C, llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BinaryOperator::Create(), llvm::CastInst::Create(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getDebugLoc(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::SCCPSolver::getLatticeValueFor(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Value::getType(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Instruction::isExact(), IV, llvm::SCCPSolver::removeLatticeValueFor(), llvm::Value::replaceAllUsesWith(), llvm::Instruction::setDebugLoc(), llvm::Instruction::setIsExact(), llvm::Instruction::setNonNeg(), and llvm::Value::takeName().
Referenced by llvm::SCCPSolver::simplifyInstsInBlock().
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 154 of file LoopAccessAnalysis.cpp.
References llvm::PredicatedScalarEvolution::addPredicate(), assert(), dbgs(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::ScalarEvolution::getEqualPredicate(), llvm::ScalarEvolution::getOne(), llvm::PredicatedScalarEvolution::getSCEV(), llvm::PredicatedScalarEvolution::getSE(), llvm::SCEV::getType(), LLVM_DEBUG, and Ptr.
Referenced by findForkedPointer(), and getPtrStride().
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 148 of file ErrorHandling.cpp.
References BadAllocErrorHandler, BadAllocErrorHandlerUserData, llvm_unreachable, and write().
Referenced by operator new(), out_of_memory_new_handler(), safe_calloc(), safe_malloc(), and safe_realloc().
Reports a serious error, calling any installed error handler.
These functions are intended to be used for error conditions which are outside the control of the compiler (I/O errors, invalid user input, etc.)
If no error handler is installed the default is to print the message to standard error, followed by a newline. After the error handler is called this function will call abort(), it does not return. NOTE: The std::string variant was removed to avoid a <string> dependency.
Definition at line 83 of file ErrorHandling.cpp.
References report_fatal_error().
Definition at line 91 of file ErrorHandling.cpp.
References llvm::StringRef::data(), ErrorHandler, ErrorHandlerUserData, OS, llvm::sys::RunInterruptHandlers(), llvm::StringRef::size(), llvm::Twine::str(), and write().
Report a serious error, calling any installed error handler.
See ErrorHandling.h.
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(), llvm::TargetPassConfig::addPass(), llvm::TargetPassConfig::addRegAssignAndRewriteFast(), addressSpaceToStorageClass(), llvm::NVPTX::AddressSpaceToString(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::RISCVRegisterInfo::adjustReg(), llvm::AMDGPUMachineFunction::allocateLDSGlobal(), allocateSGPR32InputImpl(), llvm::SITargetLowering::allocateSpecialInputVGPRsFixed(), llvm::RuntimeDyld::MemoryManager::allocateTLSSection(), llvm::AMDGPUDisassembler::AMDGPUDisassembler(), llvm::coro::Shape::analyze(), llvm::CCState::AnalyzeFormalArguments(), llvm::CCState::AnalyzeReturn(), llvm::RuntimeDyldImpl::applyExternalSymbolRelocations(), ARM64EmitUnwindInfo(), ARM64EmitUnwindInfoForSegment(), ARMEmitUnwindInfo(), AVRDAGToDAGISel::select< ISD::LOAD >(), basicCheckForEHAndSjLj(), llvm::yaml::Stream::begin(), llvm::MachObjectWriter::bindIndirectSymbols(), buildBarrierInst(), llvm::SPIRVGlobalRegistry::buildConstantSampler(), buildFrameType(), buildModuleSummaryIndex(), buildOpBitcast(), buildOpSpirvDecorations(), buildScratchExecCopy(), llvm::SIRegisterInfo::buildSpillLoadStore(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::Interpreter::callExternalFunction(), CC_AIX(), CC_LoongArch(), CC_LoongArch_GHC(), CC_RISCV_GHC(), CC_SystemZ_GHC_Error(), CC_X86_Intr(), CC_Xtensa_Custom(), llvm::AMDGPUCallLowering::CCAssignFnForCall(), llvm::AArch64TargetLowering::CCAssignFnForCall(), llvm::R600TargetLowering::CCAssignFnForCall(), llvm::AMDGPUCallLowering::CCAssignFnForReturn(), llvm::MCELFStreamer::changeSection(), checkAddrSpaceIsValidForLibcall(), CheckBundleSubtargets(), checkMachOComdat(), llvm::object::XCOFFObjectFile::checkSymbolEntryPointer(), codegen(), codegenModule(), llvm::coro::collectSpillsAndAllocasFromInsts(), combineInstructionsOverFunction(), computeDeadSymbolsAndUpdateIndirectCalls(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), llvm::DwarfFile::computeSizeAndOffsets(), llvm::object::computeSymbolSizes(), llvm::RISCVABI::computeTargetABI(), computeUnrollCount(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::XtensaInstrInfo::copyPhysReg(), llvm::X86InstrInfo::copyPhysReg(), llvm::ThinLTOCodeGeneratorImpl::TargetMachineBuilder::create(), llvm::MCAsmBackend::createDwoObjectWriter(), llvm::SpecialCaseList::createOrDie(), CreateZ3Solver(), crossImportIntoModule(), llvm::DataLayout::DataLayout(), llvm::thread::detach(), determineSVEStackObjectOffsets(), doImportingForModuleForTest(), llvm::BasicBlockSectionsProfileReaderWrapperPass::doInitialization(), llvm::AMDGPUAsmPrinter::doInitialization(), llvm::NVPTXAsmPrinter::doInitialization(), doInsertBitcast(), llvm::DwarfDebug::DwarfDebug(), llvm::dxil::DXILOpBuilder::DXILOpBuilder(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::CSKYRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::AMDGPUTargetELFStreamer::emitAMDGPULDS(), llvm::MCELFStreamer::emitBundleAlignMode(), llvm::MCELFStreamer::emitBundleLock(), llvm::MCELFStreamer::emitBundleUnlock(), llvm::MCELFStreamer::emitCommonSymbol(), llvm::MCWinCOFFStreamer::emitCommonSymbol(), llvm::RuntimeDyldImpl::emitCommonSymbols(), llvm::MipsTargetStreamer::emitDirectiveModuleOddSPReg(), llvm::MCStreamer::emitDTPRel32Value(), llvm::MCStreamer::emitDTPRel64Value(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::SIFrameLowering::emitEpilogue(), llvm::EHStreamer::emitExceptionTable(), llvm::AMDGPUAsmPrinter::emitFunctionBodyStart(), llvm::AsmPrinter::emitFunctionEntryLabel(), emitGlobalConstantVector(), llvm::ExecutionEngine::emitGlobals(), llvm::AMDGPUAsmPrinter::emitGlobalVariable(), llvm::MCStreamer::emitGPRel32Value(), llvm::MCStreamer::emitGPRel64Value(), llvm::ThinLTOCodeGenerator::emitImports(), EmitInlineAsmStr(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitKCFICheck(), llvm::TargetLoweringObjectFileELF::emitLinkerDirectives(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), llvm::MCJIT::emitObject(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::SystemZELFFrameLowering::emitPrologue(), llvm::VEFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), emitPrologueEpilogueSPUpdate(), llvm::MCStreamer::emitRawTextImpl(), llvm::RuntimeDyldImpl::emitSection(), llvm::AsmPrinter::emitSpecialLLVMGlobal(), llvm::MCXCOFFStreamer::emitSymbolAttribute(), llvm::RISCVTargetStreamer::emitTargetAttributes(), llvm::MCStreamer::emitTPRel32Value(), llvm::MCStreamer::emitTPRel64Value(), llvm::MCELFStreamer::emitValueImpl(), llvm::MCELFStreamer::emitValueToAlignment(), llvm::MCObjectStreamer::emitWeakReference(), llvm::MCStreamer::emitXCOFFExceptDirective(), llvm::MCXCOFFStreamer::emitXCOFFRefDirective(), llvm::MCXCOFFStreamer::emitXCOFFRenameDirective(), llvm::MCXCOFFStreamer::emitZerofill(), llvm::AArch64AuthMCExpr::evaluateAsRelocatableImpl(), llvm::WinCOFFWriter::executePostLayoutBinding(), expandCrossIntrinsic(), expandFloatDotIntrinsic(), llvm::TargetLowering::expandFMINNUM_FMAXNUM(), expandNormalizeIntrinsic(), llvm::AArch64InstrInfo::expandPostRAPseudo(), expandPseudoVFMK(), llvm::TargetLowering::expandVecReduce(), 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::GCOVOptions::getDefault(), llvm::TargetLoweringBase::getDefaultSafeStackPointerLocation(), llvm::HexagonInstrInfo::getDotNewOp(), llvm::SIInstrInfo::getDSShaderTypeValue(), getDXILArchNameFromShaderModel(), getEffectiveAArch64CodeModel(), getEffectiveCodeModel(), getEffectiveLoongArchCodeModel(), getEffectivePPCCodeModel(), getEffectiveRelocModel(), getEffectiveSparcCodeModel(), getEffectiveSystemZCodeModel(), getEffectiveX86CodeModel(), 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(), getFixedObjectSize(), getGCStrategy(), getGlobalVariable(), getHiPELiteral(), getLabelOffset(), getLeastCommonType(), llvm::RISCVSubtarget::getMaxRVVVectorSizeInBits(), llvm::WebAssemblyAsmPrinter::getMCSymbolForFunction(), llvm::RISCVSubtarget::getMinRVVVectorSizeInBits(), llvm::XtensaConstantPoolValue::getModifierText(), getModifierVariantKind(), getNumComponentsForDim(), getOperandAsUnsigned(), getPassInfo(), getPassNameAndInstanceNum(), getPointerOperandIndex(), llvm::RTDyldMemoryManager::getPointerToNamedFunction(), llvm::MCJIT::getPointerToNamedFunction(), GetPromotionOpcode(), GetPromotionOpcodeStrict(), getRegClassForSVT(), llvm::NVPTXTargetLowering::getRegForInlineAsmConstraint(), llvm::PPCTargetLowering::getRegForInlineAsmConstraint(), llvm::TargetLowering::getRegisterByName(), llvm::SITargetLowering::getRegisterByName(), llvm::AVRTargetLowering::getRegisterByName(), llvm::HexagonTargetLowering::getRegisterByName(), llvm::LanaiTargetLowering::getRegisterByName(), llvm::LoongArchTargetLowering::getRegisterByName(), llvm::MipsTargetLowering::getRegisterByName(), llvm::PPCTargetLowering::getRegisterByName(), llvm::RISCVTargetLowering::getRegisterByName(), llvm::SparcTargetLowering::getRegisterByName(), llvm::SystemZTargetLowering::getRegisterByName(), llvm::VETargetLowering::getRegisterByName(), llvm::X86TargetLowering::getRegisterByName(), llvm::object::ELFObjectFile< ELFT >::getRel(), llvm::object::ELFObjectFile< ELFT >::getRela(), llvm::object::ELFObjectFile< ELFT >::getRelSection(), llvm::M68kRegisterInfo::getReservedRegs(), llvm::RISCVRegisterInfo::getReservedRegs(), getSamplerAddressingModeFromBitmask(), GetScratchRegister(), 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(), getSymbolOffsetImpl(), llvm::object::ELFObjectFile< ELFT >::getSymbolOther(), llvm::object::ELFObjectFile< ELFT >::getSymbolValueImpl(), llvm::OpenMPIRBuilder::getTargetEntryUniqueInfo(), llvm::AMDGPU::getTransitiveUsesOfLDS(), 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::SwitchABI::init(), llvm::coro::AnyRetconABI::init(), llvm::GCNSchedStrategy::initCandidate(), llvm::MipsSubtarget::initializeSubtargetDependencies(), llvm::XtensaInstrInfo::insertBranchAtInst(), insertCall(), llvm::XtensaInstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::LoongArchInstrInfo::insertIndirectBranch(), llvm::RISCVInstrInfo::insertIndirectBranch(), insertInlineAsm(), insertSEH(), insertSignalHandler(), insertSpills(), isArchiveSymbol(), llvm::AArch64RegisterInfo::isArgumentRegister(), isGPRShadowAligned(), isThumbFunc(), llvm::SingleThreadExecutor::isWorkerThread(), llvm::MCAssembler::layoutBundle(), LLVMGetSectionContents(), LLVMGetSectionName(), LLVMGetSymbolAddress(), LLVMGetSymbolName(), LLVMMoveToContainingSection(), LLVMVerifyFunction(), LLVMVerifyModule(), loadFile(), llvm::XtensaInstrInfo::loadImmediate(), llvm::cgdata::loadModuleForTwoRounds(), loadModuleFromInput(), llvm::RuntimeDyld::loadObject(), llvm::OpenMPIRBuilder::loadOffloadInfoMetadata(), llvm::VEInstrInfo::loadRegFromStackSlot(), llvm::ExecutionEngine::LoadValueFromMemory(), localCache(), llvm::SPIRVMCInstLower::lower(), lowerAddrSpaceCast(), LowerADDRSPACECAST(), llvm::X86TargetLowering::LowerAsmOutputForConstraint(), llvm::SPIRV::lowerBuiltinType(), llvm::SITargetLowering::LowerCall(), llvm::NVPTXTargetLowering::LowerCall(), llvm::XtensaTargetLowering::LowerCall(), llvm::SPIRVCallLowering::lowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCallResult(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AsmPrinter::lowerConstant(), llvm::AsmPrinter::lowerConstantPtrAuth(), llvm::LoongArchTargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::RISCVTargetLowering::LowerFormalArguments(), llvm::XtensaTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerInterruptReturn(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerLoongArchMachineOperandToMCOperand(), LowerOperand(), llvm::XtensaAsmPrinter::lowerOperand(), llvm::BPFTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::LowerOperation(), llvm::XtensaTargetLowering::LowerOperation(), LowerPtrAuthGlobalAddressStatically(), llvm::LoongArchTargetLowering::LowerReturn(), llvm::RISCVTargetLowering::LowerReturn(), llvm::SystemZTargetLowering::LowerReturn(), llvm::XtensaAsmPrinter::LowerSymbolOperand(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::TargetLowering::makeLibCall(), mapArchToCVCPUType(), mapToSinitPriority(), MarkEHGuard(), MarkEHRegistrationNode(), llvm::MCContext::MCContext(), llvm::MFPropsModifier< PassT >::MFPropsModifier(), llvm::MipsSubtarget::MipsSubtarget(), llvm::LoongArchInstrInfo::movImm(), llvm::RISCVInstrInfo::movImm(), llvm::CSKYInstrInfo::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::SITargetLowering::passSpecialInputs(), llvm::AMDGPUCallLowering::passSpecialInputs(), patchMatchingInput(), llvm::sys::fs::recursive_directory_iterator::pop(), postSplitCleanup(), llvm::PPCXCOFFMCAsmInfo::PPCXCOFFMCAsmInfo(), prepareDumpIRFileDescriptor(), llvm::AsmPrinter::preprocessXXStructorList(), llvm::MCSymbol::print(), printExpr(), llvm::NVPTXInstPrinter::printLdStCode(), llvm::XtensaInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printRegName(), llvm::AsmPrinter::PrintSpecial(), llvm::MCSectionXCOFF::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(), readString(), readUint32(), readUint8(), readULEB128(), readVarint32(), readVaruint1(), readVaruint32(), llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), llvm::VerifyInstrumentation::registerCallbacks(), RegisterPassPlugins(), llvm::ConcurrentHashTableByPtr< KeyTy, KeyDataTy, AllocatorTy, Info >::RehashBucket(), llvm::ARMAsmBackend::relaxInstruction(), llvm::RegBankSelect::repairReg(), report_at_maximum_capacity(), report_fatal_error(), llvm::PrintCrashIRInstrumentation::reportCrashIR(), ReportErrnumFatal(), reportFastISelFailure(), reportFatalOnTokenType(), reportGISelDiagnostic(), reportInvalidSizeRequest(), ReportLastErrorFatal(), reportTranslationError(), reservePrivateMemoryRegs(), llvm::RuntimeDyldCOFFX86_64::resolveRelocation(), llvm::XtensaInstrInfo::reverseBranchCondition(), rewriteAccessChain(), llvm::RISCVTargetLowering::RISCVTargetLowering(), llvm::RISCVTargetMachine::RISCVTargetMachine(), llvm::ThinLTOCodeGenerator::run(), llvm::DAGTypeLegalizer::run(), llvm::LintPass::run(), llvm::FunctionToLoopPassAdaptor::run(), llvm::SafeStackPass::run(), llvm::DevirtSCCRepeatedPass::run(), llvm::LICMPass::run(), llvm::LNICMPass::run(), llvm::SelectionDAGISelPass::run(), llvm::EmbedBitcodePass::run(), llvm::ForceFunctionAttrsPass::run(), llvm::VerifierPass::run(), llvm::MCJIT::runFunction(), llvm::ExecutionEngine::runFunctionAsMain(), runNewPMPasses(), llvm::SelectionDAGISelLegacy::runOnMachineFunction(), 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::MCSection::setBundleLockState(), llvm::AMDGPUMachineFunction::setDynLDSAlign(), setOptionalCodeModel(), llvm::OptPassGateInstrumentation::shouldRun(), llvm::fuzzerop::SourcePred::SourcePred(), splitCodeGen(), storageClassToAddressSpace(), llvm::VEInstrInfo::storeRegToStackSlot(), llvm::cgdata::StreamCacheData::StreamCacheData(), llvm::TargetPassConfig::TargetPassConfig(), tocDataChecks(), tryARM64PackedUnwind(), typeToAddressSpace(), UpgradeDebugInfo(), llvm::SystemZELFFrameLowering::usePackedStack(), llvm::PPCSubtarget::useSoftFloat(), llvm::RISCVFeatures::validate(), 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(), WorkloadImportsManager::WorkloadImportsManager(), writeFragment(), llvm::MCAssembler::writeFragmentPadding(), llvm::ThinLTOCodeGenerator::writeGeneratedObject(), llvm::XtensaMCAsmBackend::writeNopData(), llvm::MachObjectWriter::writeObject(), and llvm::raw_fd_ostream::~raw_fd_ostream().
Definition at line 87 of file ErrorHandling.cpp.
References report_fatal_error().
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 161 of file PassTimingInfo.cpp.
Referenced by llvm::LTOCodeGenerator::compileOptimized(), and llvm::ThinLTOCodeGenerator::run().
void llvm::reportGISelFailure | ( | MachineFunction & | MF, |
const TargetPassConfig & | TPC, | ||
MachineOptimizationRemarkEmitter & | MORE, | ||
const char * | PassName, | ||
StringRef | Msg, | ||
const MachineInstr & | MI | ||
) |
Definition at line 266 of file Utils.cpp.
References llvm::TargetPassConfig::isGlobalISelAbortEnabled(), MI, MORE, PassName, and reportGISelFailure().
void llvm::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.
Set the FailedISel MachineFunction property.
Definition at line 259 of file Utils.cpp.
References DS_Error, llvm::MachineFunction::getProperties(), MORE, reportGISelDiagnostic(), and llvm::MachineFunctionProperties::set().
Referenced by llvm::RegBankSelect::assignRegisterBanks(), llvm::RegBankSelect::checkFunctionIsLegal(), reportGISelFailure(), llvm::Legalizer::runOnMachineFunction(), and llvm::InstructionSelect::selectMachineFunction().
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().
Reports a diagnostic message to indicate an invalid size request has been done on a scalable vector.
This function may not return.
Definition at line 39 of file TypeSize.cpp.
References report_fatal_error(), ScalableErrorAsWarning, and llvm::WithColor::warning().
Referenced by llvm::LLT::getNumElements(), llvm::EVT::getVectorNumElements(), llvm::MVT::getVectorNumElements(), and llvm::TypeSize::operator ScalarTy().
Definition at line 72 of file WindowsSupport.h.
References MakeErrMsg(), and report_fatal_error().
Printable llvm::reportMismatch | ( | const GCNRPTracker::LiveRegSet & | LISLR, |
const GCNRPTracker::LiveRegSet & | TrackedL, | ||
const TargetRegisterInfo * | TRI, | ||
StringRef | Pfx = " " |
||
) |
Definition at line 629 of file GCNRegPressure.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), I, if(), OS, P, and TRI.
Referenced by llvm::GCNUpwardRPTracker::isValid(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().
|
static |
Report successful vectorization of the loop.
In case an outer loop is vectorized, prepend "outer" to the vectorization remark.
Definition at line 915 of file LoopVectorize.cpp.
References debugVectorizationMessage(), llvm::OptimizationRemarkEmitter::emit(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::Loop::getStartLoc(), llvm::LoopBase< BlockT, LoopT >::isInnermost(), LLVM_DEBUG, LV_NAME, and llvm::VectorizationFactor::Width.
Referenced by llvm::LoopVectorizePass::processLoop(), and processLoopInVPlanNativePath().
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 887 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().
|
inline |
Same as above, but the debug message and optimization remark are identical.
Definition at line 174 of file LoopVectorize.h.
References I, and reportVectorizationFailure().
|
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 902 of file LoopVectorize.cpp.
Referenced by llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), and llvm::LoopVectorizationPlanner::plan().
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.
|
static |
Resolve the relative path to a build artifact referenced by DWARF by applying DW_AT_comp_dir.
Definition at line 185 of file DWARFLinker.cpp.
References llvm::sys::path::append(), and llvm::dwarf::toString().
Referenced by analyzeImportedModule(), and llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::loadClangModule().
Find a common type that T1 and T2 convert to.
Return 0 if no such type exists.
Definition at line 344 of file Record.cpp.
References assert(), llvm::RecTy::getListTy(), resolveRecordTypes(), resolveTypes(), T1, and llvm::RecTy::typeIsConvertibleTo().
Referenced by resolveTypes().
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 316 of file PrettyStackTrace.cpp.
|
static |
Definition at line 137 of file AVRFrameLowering.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), BuildMI(), DL, llvm::MachineFunction::getInfo(), llvm::AVRSubtarget::getInstrInfo(), llvm::AVRSubtarget::getIORegSREG(), llvm::MachineBasicBlock::getLastNonDebugInstr(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), llvm::AVRSubtarget::getTmpRegister(), llvm::AVRSubtarget::getZeroRegister(), llvm::AVRMachineFunctionInfo::isInterruptOrSignalHandler(), llvm::RegState::Kill, MBB, MBBI, MRI, and TII.
Referenced by llvm::AVRFrameLowering::emitEpilogue().
|
static |
Definition at line 44 of file CSKYCallingConv.h.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), ArgGPRs, llvm::CCValAssign::getReg(), and Reg.
bool llvm::RetCC_AArch64_AAPCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForReturn().
bool llvm::RetCC_AArch64_Arm64EC_CFGuard_Check | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForReturn().
bool llvm::RetCC_AArch64_Arm64EC_Thunk | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::AArch64TargetLowering::CCAssignFnForReturn().
bool llvm::RetCC_ARM_AAPCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::RetCC_ARM_AAPCS_VFP | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::RetCC_ARM_APCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::RetCC_PPC | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::PPCCallLowering::lowerReturn().
bool llvm::RetCC_PPC64_ELF_FIS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::RetCC_PPC_Cold | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
Referenced by llvm::PPCTargetLowering::ccAssignFnForCall().
|
inline |
Definition at line 216 of file SystemZCallingConv.h.
References llvm_unreachable.
bool llvm::RetCC_X86 | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
bool llvm::RetFastCC_ARM_APCS | ( | unsigned | ValNo, |
MVT | ValVT, | ||
MVT | LocVT, | ||
CCValAssign::LocInfo | LocInfo, | ||
ISD::ArgFlagsTy | ArgFlags, | ||
CCState & | State | ||
) |
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 644 of file Analysis.cpp.
References attributesPermitTailCall(), llvm::SmallVectorTemplateCommon< T, typename >::back(), F, firstRealType(), llvm::UndefValue::get(), llvm::ExtractValueInst::getIndexedType(), llvm::Value::getType(), I, nextRealType(), reverse(), and slotOnlyDiscardsData().
Referenced by isInTailCallPosition().
auto llvm::reverse | ( | ContainerTy && | C | ) |
Definition at line 420 of file STLExtras.h.
References adl_begin(), adl_end(), adl_rbegin(), adl_rend(), llvm::CallingConv::C, and make_range().
Referenced by addLoopIntoQueue(), llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder::addParentName(), AlignBlocks(), llvm::X86InstrInfo::analyzeBranchPredicate(), analyzeContextInfo(), llvm::AArch64InstrInfo::analyzeLoopForPipelining(), llvm::DebugLoc::appendInlinedAt(), appendLoopsToWorklist(), 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(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTeams(), DbgVariableRecordsRemoveRedundantDbgInstrsUsingBackwardScan(), 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::OpenMPIRBuilder::emitTargetTask(), llvm::EHStreamer::emitTypeInfos(), llvm::TimeTraceProfiler::end(), llvm::codeview::ContinuationRecordBuilder::end(), llvm::sandboxir::EraseFromParent::EraseFromParent(), llvm::SMSchedule::finalizeSchedule(), findBestInsertionSet(), llvm::HexagonInstrInfo::findLoopInstr(), findMemType(), findPotentialBlockers(), findPrologueEnd(), llvm::SIRegisterInfo::findUnusedRegister(), llvm::ScheduleDAGInstrs::fixupKills(), foldUnusualPatterns(), formatNestedName(), llvm::rdf::Liveness::getAllReachingDefs(), getBitcodeFileContents(), llvm::ScalarEvolution::getBlockDisposition(), llvm::TargetInstrInfo::getCallFrameSizeAt(), 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(), llvm::FastISel::handleDbgInfo(), handlePhiDef(), llvm::SCEVExpander::hoistIVInc(), hoistRegion(), incorporateNewSCCRange(), inferInitializes(), llvm::HexagonSubtarget::initializeSubtargetDependencies(), 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(), mergeEltWithShuffle(), mergeReplicateRegionsIntoSuccessors(), moveInstructionsToTheBeginning(), orderModule(), llvm::vfs::OverlayFileSystem::overlays_range(), parseBraceExpansions(), llvm::PeelingModuloScheduleExpander::peelPrologAndEpilogs(), predictUseListOrder(), llvm::InstCombinerImpl::prepareWorklist(), llvm::xray::profileFromTrace(), llvm::SyntheticCountsUtils< CallGraphType >::propagate(), pushRegsToStack(), llvm::LiveVariables::recomputeForSingleDefVirtReg(), recomputeLivenessFlags(), reduceDbgValsBackwardScan(), llvm::orc::EPCGenericRTDyldMemoryManager::registerEHFrames(), llvm::MCContext::remapDebugPath(), llvm::VPlanTransforms::removeDeadRecipes(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::SIInstrInfo::removeModOperands(), removeRedundantDbgInstrsUsingBackwardScan(), removeRedundantDbgLocsUsingBackwardScan(), removeRedundantInductionCasts(), replaceFoldableUses(), llvm::DebugLoc::replaceInlinedAtSubprogram(), replaceTypedBufferAccess(), llvm::rdf::Liveness::resetKills(), llvm::CSKYFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), returnTypeIsEligibleForTailCall(), llvm::detail::reverse_if_helper(), llvm::sandboxir::Tracker::revert(), llvm::GenericCycleInfoCompute< ContextT >::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor::run(), runImpl(), runMoveAutoInit(), llvm::LPPassManager::runOnFunction(), RemoveLoadsIntoFakeUses::runOnMachineFunction(), 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(), splitEndLoopBB(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToRef(), llvm::JumpThreadingPass::threadGuard(), LiveDebugValues::MLocTracker::trackRegister(), llvm::slpvectorizer::BoUpSLP::transformNodes(), transformRecipestoEVLRecipes(), llvm::DbgValueHistoryMap::trimLocationRanges(), tryFoldSPUpdateIntoPushPop(), llvm::InstCombinerImpl::tryToSinkInstructionDbgValues(), llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(), llvm::MCJIT::UnregisterJITEventListener(), unswitchTrivialSwitch(), updateCGAndAnalysisManagerForPass(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), verifyKeepChain(), and llvm::MachObjectWriter::writeObject().
Reverse the bits in Val
.
Definition at line 124 of file MathExtras.h.
References BitReverseTable256.
|
inline |
Definition at line 135 of file MVETailPredUtils.h.
References llvm::MachineInstrBuilder::add(), llvm::ARMCC::AL, BuildMI(), MBB, MI, predOps(), and TII.
|
inline |
Definition at line 145 of file MVETailPredUtils.h.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, BuildMI(), llvm::MachineInstr::getOperand(), MBB, MI, llvm::MachineOperand::setIsDef(), and TII.
|
inline |
Definition at line 167 of file MVETailPredUtils.h.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, BuildMI(), MBB, MI, llvm::ARMCC::NE, and TII.
|
inline |
Definition at line 98 of file MVETailPredUtils.h.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, assert(), BuildMI(), llvm::RegState::Define, llvm::ARMCC::EQ, getWhileLoopStartTargetBB(), MBB, MI, and TII.
Referenced by llvm::ARMBlockPlacement::revertWhileToDoLoop().
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 6213 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().
bool llvm::rewriteARMFrameIndex | ( | MachineInstr & | MI, |
unsigned | FrameRegIdx, | ||
Register | FrameReg, | ||
int & | Offset, | ||
const ARMBaseInstrInfo & | TII | ||
) |
rewriteARMFrameIndex / rewriteT2FrameIndex - 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 2647 of file ARMBaseInstrInfo.cpp.
References llvm::ARMII::AddrMode2, llvm::ARMII::AddrMode3, llvm::ARMII::AddrMode4, llvm::ARMII::AddrMode5, llvm::ARMII::AddrMode5FP16, llvm::ARMII::AddrMode6, llvm::ARMII::AddrMode_i12, llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeT2_i7, llvm::ARMII::AddrModeT2_i7s2, llvm::ARMII::AddrModeT2_i7s4, assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::ARM_AM::getAM2Offset(), llvm::ARM_AM::getAM2Op(), llvm::ARM_AM::getAM3Offset(), llvm::ARM_AM::getAM3Op(), llvm::ARM_AM::getAM5Offset(), llvm::ARM_AM::getAM5Op(), llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getSOImmValRotate(), llvm_unreachable, MI, Offset, llvm::ARM_AM::sub, and TII.
Referenced by llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), and llvm::ARMBaseRegisterInfo::resolveFrameIndex().
int llvm::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.
Return the number of loop exit values that have been replaced, and the corresponding phi node will be added to DeadInsts.
Definition at line 1549 of file LoopUtils.cpp.
References AlwaysRepl, any_of(), assert(), B, canLoopBeDeleted(), checkIsIndPhi(), dbgs(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::Instruction::eraseFromParent(), llvm::ScalarEvolution::forgetValue(), llvm::ScalarEvolution::getExitCount(), llvm::PHINode::getIncomingBlock(), llvm::PHINode::getIncomingValue(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::PHINode::getNumIncomingValues(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSCEVAtScope(), llvm::Value::getType(), hasHardUserWithinLoop(), isInstructionTriviallyDead(), llvm::ScalarEvolution::isLoopInvariant(), llvm::ScalarEvolution::isSCEVable(), LLVM_DEBUG, OnlyCheapRepl, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), ReplaceExitValue, llvm::LoopInfo::replacementPreservesLCSSAForm(), Rewriter, SCEVCheapExpansionBudget, llvm::PHINode::setIncomingValue(), UnusedIndVarInLoop, llvm::Value::use_empty(), and llvm::Value::users().
Referenced by ReduceLoopStrength().
bool llvm::rewriteT2FrameIndex | ( | MachineInstr & | MI, |
unsigned | FrameRegIdx, | ||
Register | FrameReg, | ||
int & | Offset, | ||
const ARMBaseInstrInfo & | TII, | ||
const TargetRegisterInfo * | TRI | ||
) |
Definition at line 554 of file Thumb2InstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), llvm::ARMII::AddrMode4, llvm::ARMII::AddrMode5, llvm::ARMII::AddrMode5FP16, llvm::ARMII::AddrMode6, llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeT2_i12, llvm::ARMII::AddrModeT2_i7, llvm::ARMII::AddrModeT2_i7s2, llvm::ARMII::AddrModeT2_i7s4, llvm::ARMII::AddrModeT2_i8neg, llvm::ARMII::AddrModeT2_i8s4, llvm::ARMII::AddrModeT2_ldrex, llvm::ARMII::AddrModeT2_so, llvm::ARMCC::AL, assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::TargetRegisterClass::contains(), llvm::MachineOperand::CreateReg(), llvm::ARM_AM::getAM5FP16Offset(), llvm::ARM_AM::getAM5FP16Op(), llvm::ARM_AM::getAM5Offset(), llvm::ARM_AM::getAM5Op(), llvm::MachineOperand::getImm(), getInstrPredicate(), llvm::MachineFunction::getRegInfo(), llvm::ARM_AM::getT2SOImmVal(), immediateOffsetOpcode(), llvm::Register::isVirtual(), llvm_unreachable, MI, MRI, negativeOffsetOpcode(), Offset, positiveOffsetOpcode(), predOps(), llvm::ARM_AM::sub, TII, and TRI.
Referenced by llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), and llvm::ARMBaseRegisterInfo::resolveFrameIndex().
|
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 153 of file Format.h.
References llvm::FormattedString::JustifyRight.
Referenced by llvm::ScheduleDAGMI::dumpScheduleTraceBottomUp(), llvm::ScheduleDAGMI::dumpScheduleTraceTopDown(), llvm::dxil::UAVResource::print(), llvm::dxil::ConstantBuffer::print(), llvm::dxil::ResourceBase::print(), llvm::dxil::ResourceBase::printElementType(), llvm::dxil::ResourceBase::printKind(), and printSymbolizedStackTrace().
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().
bool llvm::RunningWindows11OrGreater | ( | ) |
Determines if the program is running on Windows 11 or Windows Server 2022.
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.
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 956 of file WholeProgramDevirt.cpp.
Referenced by llvm::ThinLTOCodeGenerator::run().
char * llvm::rustDemangle | ( | std::string_view | MangledName | ) |
Definition at line 151 of file RustDemangle.cpp.
References D, and starts_with().
Referenced by nonMicrosoftDemangle().
|
inline |
Definition at line 38 of file MemAlloc.h.
References report_bad_alloc_error(), and safe_malloc().
Referenced by AllocateBuckets(), createTable(), llvm::PressureDiffs::init(), llvm::OnDiskChainedHashTableGenerator< Info >::OnDiskChainedHashTableGenerator(), llvm::InterferenceCache::reinitPhysRegEntries(), llvm::SparseMultiSet< ValueT, KeyFunctorT, SparseT >::setUniverse(), and llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::setUniverse().
|
inline |
Definition at line 25 of file MemAlloc.h.
References report_bad_alloc_error(), and safe_malloc().
Referenced by llvm::SmallPtrSetImplBase::copyFrom(), llvm::DataLayout::getStructLayout(), llvm::SmallVectorBase< Size_T >::grow_pod(), llvm::LiveIntervalUnion::Array::init(), llvm_getMetadata(), LLVMCopyModuleFlagsMetadata(), LLVMGetRelocationTypeName(), LLVMOrcMaterializationResponsibilityGetRequestedSymbols(), LLVMOrcMaterializationResponsibilityGetSymbols(), llvm::SmallVectorBase< Size_T >::mallocForGrow(), replaceAllocation(), safe_calloc(), safe_malloc(), safe_realloc(), llvm::SmallPtrSetImplBase::SmallPtrSetImplBase(), and llvm::Interpreter::visitAllocaInst().
|
inline |
Definition at line 52 of file MemAlloc.h.
References Ptr, report_bad_alloc_error(), and safe_malloc().
Referenced by llvm::SmallPtrSetImplBase::copyFrom(), and llvm::SmallVectorBase< Size_T >::grow_pod().
void llvm::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.
Definition at line 1683 of file Utils.cpp.
References assert(), llvm::SmallVectorBase< Size_T >::empty(), MI, MRI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and salvageDebugInfoForDbgValue().
Referenced by bitTrackingDCE(), DCEInstruction(), llvm::InstCombinerImpl::eraseInstFromFunction(), llvm::Legalizer::legalizeMachineFunction(), OptimizeExtractBits(), llvm::InstCombinerImpl::prepareWorklist(), RecursivelyDeleteTriviallyDeadInstructions(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), rewriteDebugUsers(), llvm::InstructionSelect::selectInstr(), simplifyAndDCEInstruction(), llvm::InstCombinerImpl::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedFPClass(), SinkCast(), and sinkRegion().
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 2274 of file Local.cpp.
References findDbgUsers(), I, and salvageDebugInfoForDbgValues().
void llvm::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.
Definition at line 257 of file CodeGenCommonISel.cpp.
References llvm::DIExpression::appendOpsToArg(), assert(), dbgs(), llvm::MachineInstr::findRegisterUseOperandIdx(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugExpressionOp(), llvm::DIExpression::getNumElements(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineInstr::hasDebugOperandForReg(), llvm::MachineInstr::isIndirectDebugValue(), LLVM_DEBUG, MI, MRI, salvageDebugInfoImpl(), llvm::MachineOperand::setMetadata(), and llvm::MachineOperand::setReg().
Referenced by salvageDebugInfo().
void llvm::salvageDebugInfoForDbgValues | ( | Instruction & | I, |
ArrayRef< DbgVariableIntrinsic * > | Insns, | ||
ArrayRef< DbgVariableRecord * > | DPInsns | ||
) |
Implementation of salvageDebugInfo, applying only to instructions in Insns
, rather than all debug users from findDbgUsers( I
).
Mark undef if salvaging cannot be completed.
Definition at line 2316 of file Local.cpp.
References llvm::DIExpression::appendOpsToArg(), assert(), dbgs(), llvm::SmallVectorBase< Size_T >::empty(), find(), llvm::DIExpression::foldConstantMath(), llvm::DIExpression::getNumElements(), llvm::DIExpression::getNumLocationOperands(), I, is_contained(), LLVM_DEBUG, salvageDbgAssignAddress(), salvageDebugInfoImpl(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by salvageDebugInfo(), llvm::InstCombinerImpl::tryToSinkInstructionDbgValues(), and llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords().
Value * llvm::salvageDebugInfoImpl | ( | Instruction & | I, |
uint64_t | CurrentLocOps, | ||
SmallVectorImpl< uint64_t > & | Ops, | ||
SmallVectorImpl< Value * > & | AdditionalValues | ||
) |
Definition at line 2617 of file Local.cpp.
References llvm::SmallVectorImpl< T >::append(), DL, GEP, llvm::DIExpression::getExtOps(), getSalvageOpsForBinOp(), getSalvageOpsForGEP(), getSalvageOpsForIcmpOp(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), I, llvm::Type::isPointerTy(), and llvm::Type::isVectorTy().
Referenced by salvageDbgAssignAddress(), salvageDebugInfoForDbgValue(), salvageDebugInfoForDbgValues(), salvageDebugInfoImpl(), and llvm::SelectionDAGBuilder::salvageUnresolvedDbgValue().
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 293 of file AssumeBundleBuilder.cpp.
References EnableKnowledgeRetention, I, Intr, and llvm::AssumptionCache::registerAssumption().
Referenced by DCEInstruction(), InlineFunction(), llvm::AssumeBuilderPass::run(), and sinkRegion().
cl::opt< int > llvm::SampleColdCallSiteThreshold | ( | "sample-profile-cold-inline-threshold" | , |
cl::Hidden | , | ||
cl::init(45) | , | ||
cl::desc("Threshold for inlining cold callsites") | |||
) |
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.") | |||
) |
const std::error_category & llvm::sampleprof_category | ( | ) |
Definition at line 100 of file SampleProf.cpp.
Referenced by make_error_code().
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.") | |||
) |
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.") | |||
) |
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.") | |||
) |
cl::opt< bool > llvm::SampleProfileUseProfi | ( | "sample-profile-use-profi" | , |
cl::Hidden | , | ||
cl::desc("Use profi to infer block and edge counts.") | |||
) |
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 611 of file MathExtras.h.
Referenced by annotateValueSite(), foldOperationIfPossible(), runCGProfilePass(), SaturatingAdd(), SaturatingMultiply(), and SaturatingMultiplyAdd().
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 626 of file MathExtras.h.
References SaturatingAdd(), T, X, and Y.
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 640 of file MathExtras.h.
References Log2_64(), SaturatingAdd(), X, and Y.
Referenced by foldOperationIfPossible(), llvm::BlockFrequency::mul(), SaturatingMultiplyAdd(), llvm::InstrProfValueSiteRecord::scale(), and llvm::InstrProfRecord::scale().
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 686 of file MathExtras.h.
References A, SaturatingAdd(), SaturatingMultiply(), X, and Y.
Referenced by llvm::sampleprof::SampleRecord::addCalledTarget(), llvm::sampleprof::FunctionSamples::addHeadSamples(), llvm::sampleprof::SampleRecord::addSamples(), llvm::sampleprof::FunctionSamples::addTotalSamples(), convertStrToInt(), llvm::InstrProfRecord::merge(), and llvm::InstrProfValueSiteRecord::merge().
llvm::SaveAndRestore | ( | T & | ) | -> SaveAndRestore< T > |
llvm::SaveAndRestore | ( | T & | , |
const T & | |||
) | -> SaveAndRestore< T > |
llvm::SaveAndRestore | ( | T & | , |
T && | |||
) | -> SaveAndRestore< T > |
const void * llvm::SavePrettyStackState | ( | ) |
Returns the topmost element of the "pretty" stack state.
Definition at line 308 of file PrettyStackTrace.cpp.
void llvm::saveUsesAndErase | ( | MachineInstr & | MI, |
MachineRegisterInfo & | MRI, | ||
LostDebugLocObserver * | LocObserver, | ||
SmallInstListTy & | DeadInstChain | ||
) |
Definition at line 1649 of file Utils.cpp.
References llvm::LostDebugLocObserver::checkpoint(), dbgs(), llvm::GISelWorkList< N >::insert(), LLVM_DEBUG, MI, MRI, and llvm::GISelWorkList< N >::remove().
Referenced by eraseInstrs().
|
inline |
Definition at line 1514 of file APFloat.h.
References llvm_unreachable, scalbn(), and X.
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), and scalbn().
Scale an individual branch count.
Scale a 64-bit weight down to 32-bits using Scale
.
Definition at line 183 of file Instrumentation.h.
References assert(), and Scaled.
Referenced by createBranchWeights(), and setProfMetadata().
void llvm::scaleProfData | ( | Instruction & | I, |
uint64_t | S, | ||
uint64_t | T | ||
) |
Scaling the profile data attached to 'I' using the ratio of S/T.
Definition at line 242 of file ProfDataUtils.cpp.
References assert(), llvm::CallingConv::C, llvm::MDBuilder::createConstant(), llvm::MDNode::get(), getBranchWeightOffset(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::APInt::getLimitedValue(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), hasCountTypeMD(), I, NOMORE_ICP_MAGICNUM, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::APInt::udiv().
Referenced by updateProfileCallee(), llvm::CallInst::updateProfWeight(), and llvm::InvokeInst::updateProfWeight().
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 517 of file VectorUtils.cpp.
References assert(), llvm::SmallVectorImpl< T >::assign(), narrowShuffleMaskElts(), and widenShuffleMaskElts().
Referenced by llvm::X86TTIImpl::instCombineIntrinsic(), and llvm::InstCombinerImpl::visitShuffleVectorInst().
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 465 of file RegisterScavenging.cpp.
References dbgs(), llvm::MachineBasicBlock::empty(), llvm::MachineBasicBlock::getName(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getRegInfo(), LLVM_DEBUG, MBB, MRI, llvm::MachineFunctionProperties::NoVRegs, report_fatal_error(), scavengeFrameVirtualRegsInBlock(), and llvm::MachineFunctionProperties::set().
scc_iterator< T > llvm::scc_begin | ( | const T & | G | ) |
Construct the begin iterator for a deduced graph type T.
Definition at line 233 of file SCCIterator.h.
References llvm::scc_iterator< GraphT, GT >::begin(), and G.
Referenced by addArgumentAttrs(), llvm::BlockFrequencyInfoImplBase::analyzeIrreducible(), llvm::DataDependenceGraph::DataDependenceGraph(), llvm::dxil::ModuleShaderFlags::initialize(), llvm::MLInlineAdvisor::MLInlineAdvisor(), llvm::SyntheticCountsUtils< CallGraphType >::propagate(), llvm::CFGSCCPrinterPass::run(), llvm::CallGraphSCCsPrinterPass::run(), llvm::BranchProbabilityInfo::SccInfo::SccInfo(), and thinLTOPropagateFunctionAttrs().
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(), and G.
Referenced by llvm::DataDependenceGraph::DataDependenceGraph().
Return true if any node in Root
satisfies the predicate Pred
.
Definition at line 720 of file ScalarEvolutionExpressions.h.
References visitAll().
Referenced by containsAddRecDependentOnLoop(), llvm::ScalarEvolution::containsAddRecurrence(), llvm::ScalarEvolution::containsErasedValue(), containsParameters(), containsUndefs(), llvm::ScalarEvolution::containsUndefs(), and llvm::ScalarEvolution::hasOperand().
llvm::ScopedDbgInfoFormatSetter | ( | T & | Obj, |
bool | NewState | ||
) | -> ScopedDbgInfoFormatSetter< T > |
|
inline |
Definition at line 536 of file ScopedPrinter.h.
Definition at line 154 of file DynamicLibrary.cpp.
Referenced by llvm::sys::DynamicLibrary::SearchForAddressOfSymbol().
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 End.
Referenced by CompareValueComplexity(), llvm::yaml::SequenceTraits< ArrayRef< T > >::element(), isReplicationMaskWithParams(), legalizeCallAttributes(), llvm::yaml::SequenceTraits< ArrayRef< T > >::size(), and llvm::jitlink::splitCompactUnwindBlocks().
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 Size.
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 End.
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().
set_difference(A, B) - Return A - B
Definition at line 93 of file SetOperations.h.
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, and S1.
Referenced by CheckLargerCands(), llvm::SetState< BaseTy >::SetContents::getIntersection(), and mergeConditionalStores().
set_intersection(A, B) - Return A ^ B
Definition at line 83 of file SetOperations.h.
References S1, and set_intersection_impl().
S1Ty llvm::set_intersection_impl | ( | const S1Ty & | S1, |
const S2Ty & | S2 | ||
) |
Definition at line 73 of file SetOperations.h.
Referenced by set_intersection().
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::DenseMapInfo< const AA::InstExclusionSetTy * >::isEqual(), llvm::ReachingDefAnalysis::isSafeToDefRegAt(), and sinkInstruction().
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::HasMemberRemoveIf, and S1.
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.
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.
SetThreadPriorityResult llvm::set_thread_priority | ( | ThreadPriority | Priority | ) |
set_union(A, B) - Compute A := A u B, return whether A changed.
Definition at line 43 of file SetOperations.h.
Referenced by checkNode(), llvm::AMDGPU::getTransitiveUsesOfLDS(), llvm::SetState< BaseTy >::SetContents::getUnion(), and llvm::AAPointerInfo::OffsetInfo::merge().
|
inline |
A helper function that sets an atomic operation's sync scope.
Definition at line 5066 of file Instructions.h.
References assert(), I, and llvm_unreachable.
Referenced by LLVMSetAtomicSingleThread(), and LLVMSetAtomicSyncScopeID().
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
.
I | the Instruction to set branch weights on. |
Weights | an array of weights to set on instruction I. |
IsExpected | were these weights added from an llvm.expect* intrinsic. |
Definition at line 235 of file ProfDataUtils.cpp.
References llvm::MDBuilder::createBranchWeights(), and I.
Referenced by ConstantFoldTerminator(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::LoopVectorizationPlanner::executePlan(), handleSwitchExpect(), peelLoop(), llvm::pgo::promoteIndirectCall(), setProfMetadata(), updateBranchWeights(), and updatePredecessorProfileMetadata().
Replaces the generic bug report message that is output upon a crash.
Definition at line 207 of file PrettyStackTrace.cpp.
References BugReportMsg.
setCurrentDebugType - Set the current debug type, as if the -debug-only=X option were specified.
Note that DebugFlag also needs to be set to true for debug output to be produced.
Definition at line 70 of file Debug.cpp.
References setCurrentDebugTypes().
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 74 of file Debug.cpp.
References CurrentDebugType.
Referenced by setCurrentDebugType().
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.
|
inlinestatic |
Replace the address used in the instruction with the direct memory reference.
Definition at line 132 of file X86InstrBuilder.h.
Referenced by llvm::X86TargetLowering::EmitInstrWithCustomInserter().
void llvm::setGlobalVariableLargeSection | ( | const Triple & | TargetTriple, |
GlobalVariable & | GV | ||
) |
Definition at line 112 of file Instrumentation.cpp.
References llvm::Triple::ELF, llvm::Triple::getArch(), llvm::Module::getCodeModel(), llvm::Triple::getObjectFormat(), llvm::GlobalValue::getParent(), llvm::CodeModel::Large, llvm::CodeModel::Medium, llvm::GlobalVariable::setCodeModel(), and llvm::Triple::x86_64.
Set the inline-remark attribute.
Definition at line 364 of file InlineAdvisor.cpp.
References llvm::CallBase::addFnAttr(), llvm::Attribute::get(), llvm::Value::getContext(), and InlineRemarkAttribute.
Referenced by llvm::InlinerPass::run(), llvm::ModuleInlinerPass::run(), and shouldInline().
void llvm::setIrrLoopHeaderMetadata | ( | Module * | M, |
Instruction * | TI, | ||
uint64_t | Count | ||
) |
Definition at line 2432 of file PGOInstrumentation.cpp.
References llvm::MDBuilder::createIrrLoopHeaderWeight(), and llvm::Instruction::setMetadata().
Sets the KCFI type for the function.
Used for compiler-generated functions that are indirectly called in instrumented code.
Definition at line 201 of file ModuleUtils.cpp.
References llvm::MDBuilder::createConstant(), F, llvm::MDNode::get(), llvm::Type::getInt32Ty(), Offset, llvm::StringRef::str(), and xxHash64().
Referenced by createSanitizerCtor().
A helper function that set the alignment of load or store instruction.
Definition at line 5019 of file Instructions.h.
Referenced by tryToImproveAlign().
bool llvm::setLoopEstimatedTripCount | ( | Loop * | L, |
unsigned | EstimatedTripCount, | ||
unsigned | EstimatedLoopInvocationWeight | ||
) |
Set a loop's branch weight metadata to reflect that loop has EstimatedTripCount
iterations and EstimatedLoopInvocationWeight
exits through latch.
Returns true if metadata is successfully updated, false otherwise. Note that loop must have a latch block which controls loop exit in order to succeed.
Definition at line 868 of file LoopUtils.cpp.
References llvm::MDBuilder::createBranchWeights(), llvm::Value::getContext(), getExpectedExitLoopLatchBranch(), llvm::BranchInst::getSuccessor(), llvm::Instruction::setMetadata(), and std::swap().
Referenced by setProfileInfoAfterUnrolling(), and UnrollLoop().
void llvm::setPGOFuncVisibility | ( | Module & | M, |
GlobalVariable * | FuncNameVar | ||
) |
Definition at line 445 of file InstrProf.cpp.
References llvm::GlobalValue::getLinkage(), llvm::GlobalValue::HiddenVisibility, isGPUProfTarget(), llvm::GlobalValue::isLocalLinkage(), llvm::GlobalValue::ProtectedVisibility, and llvm::GlobalValue::setVisibility().
Referenced by createPGOFuncNameVar().
void llvm::setProbeDistributionFactor | ( | Instruction & | Inst, |
float | Factor | ||
) |
Definition at line 76 of file PseudoProbe.cpp.
References assert(), llvm::DILocation::cloneWithDiscriminator(), llvm::PseudoProbeDwarfDiscriminator::extractDwarfBaseDiscriminator(), llvm::PseudoProbeDwarfDiscriminator::extractProbeAttributes(), llvm::PseudoProbeDwarfDiscriminator::extractProbeIndex(), llvm::PseudoProbeDwarfDiscriminator::extractProbeType(), llvm::PseudoProbeDwarfDiscriminator::FullDistributionFactor, llvm::Instruction::getDebugLoc(), llvm::IRBuilderBase::getInt64(), II, llvm::DILocation::isPseudoProbeDiscriminator(), llvm::PseudoProbeDwarfDiscriminator::packProbeData(), PseudoProbeFullDistributionFactor, and llvm::Instruction::setDebugLoc().
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 1761 of file LoopUtils.cpp.
References assert(), getLoopEstimatedTripCount(), and setLoopEstimatedTripCount().
Referenced by llvm::InnerLoopVectorizer::fixVectorizedLoop().
void llvm::setProfMetadata | ( | Module * | M, |
Instruction * | TI, | ||
ArrayRef< uint64_t > | EdgeCounts, | ||
uint64_t | MaxCount | ||
) |
Definition at line 2387 of file PGOInstrumentation.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::ArrayRef< T >::begin(), calculateCountScale(), llvm::misexpect::checkExpectAnnotations(), dbgs(), DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), EmitBranchProbability, llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::ArrayRef< T >::end(), F, getBranchCondString(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), LLVM_DEBUG, OS, llvm::SmallVectorTemplateBase< T, bool >::push_back(), scaleBranchCount(), and setBranchWeights().
|
static |
Definition at line 594 of file SPIRVBuiltins.cpp.
References llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getSPIRVTypeForVReg(), MRI, and Reg.
Referenced by generateGroupInst().
void llvm::setRegClassType | ( | Register | Reg, |
const MachineInstr * | SpvType, | ||
SPIRVGlobalRegistry * | GR, | ||
MachineRegisterInfo * | MRI, | ||
const MachineFunction & | MF, | ||
bool | Force = false |
||
) |
void llvm::setRegClassType | ( | Register | Reg, |
const Type * | Ty, | ||
SPIRVGlobalRegistry * | GR, | ||
MachineIRBuilder & | MIRBuilder, | ||
bool | Force | ||
) |
Definition at line 740 of file SPIRVUtils.cpp.
References llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVType(), Reg, and setRegClassType().
void llvm::setRegClassType | ( | Register | Reg, |
SPIRVType * | SpvType, | ||
SPIRVGlobalRegistry * | GR, | ||
MachineRegisterInfo * | MRI, | ||
const MachineFunction & | MF, | ||
bool | Force | ||
) |
Definition at line 727 of file SPIRVUtils.cpp.
References llvm::SPIRVGlobalRegistry::assignSPIRVTypeToVReg(), llvm::SPIRVGlobalRegistry::getRegClass(), llvm::SPIRVGlobalRegistry::getRegType(), MRI, and Reg.
Referenced by llvm::SPIRVCallLowering::lowerCall(), processNewInstrs(), and setRegClassType().
void llvm::setUnwindEdgeTo | ( | Instruction * | TI, |
BasicBlock * | Succ | ||
) |
Sets the unwind edge of an instruction to a particular successor.
Definition at line 800 of file BasicBlockUtils.cpp.
References II, and llvm_unreachable.
Referenced by ehAwareSplitEdge(), and rewritePHIsForCleanupPad().
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, llvm::LLVMContext::getMainRemarkStreamer(), OS, llvm::remarks::parseFormat(), RemarksFormat, RemarksHotnessThreshold, RemarksPasses, RemarksWithHotness, llvm::remarks::Separate, llvm::LLVMContext::setDiagnosticsHotnessRequested(), llvm::LLVMContext::setDiagnosticsHotnessThreshold(), llvm::remarks::RemarkStreamer::setFilter(), llvm::LLVMContext::setLLVMRemarkStreamer(), llvm::LLVMContext::setMainRemarkStreamer(), llvm::Error::success(), and llvm::Expected< T >::takeError().
Expected< std::unique_ptr< ToolOutputFile > > llvm::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.
Definition at line 95 of file LLVMRemarkStreamer.cpp.
References llvm::remarks::createRemarkSerializer(), errorCodeToError(), Format, llvm::LLVMContext::getMainRemarkStreamer(), llvm::sys::fs::OF_None, llvm::sys::fs::OF_TextWithCRLF, llvm::remarks::parseFormat(), RemarksFilename, RemarksFormat, RemarksHotnessThreshold, RemarksPasses, RemarksWithHotness, llvm::remarks::Separate, llvm::LLVMContext::setDiagnosticsHotnessRequested(), llvm::LLVMContext::setDiagnosticsHotnessThreshold(), llvm::remarks::RemarkStreamer::setFilter(), llvm::LLVMContext::setLLVMRemarkStreamer(), llvm::LLVMContext::setMainRemarkStreamer(), llvm::Expected< T >::takeError(), and llvm::remarks::YAML.
Referenced by llvm::lto::setupLLVMOptimizationRemarks().
|
static |
Definition at line 25 of file CodeGenDataReader.cpp.
References errorCodeToError(), and llvm::MemoryBuffer::getSTDIN().
Referenced by llvm::CodeGenDataReader::create(), llvm::InstrProfReader::create(), llvm::IndexedInstrProfReader::create(), llvm::sampleprof::SampleProfileReader::create(), and llvm::sampleprof::SampleProfileReaderItaniumRemapper::create().
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, llvm::BranchInst::getCondition(), isWidenableBranch(), llvm::Instruction::moveBefore(), parseWidenableBranch(), and llvm::BranchInst::setCondition().
|
static |
Definition at line 678 of file APFloat.cpp.
References lostFractionThroughTruncation(), and llvm::APInt::tcShiftRight().
Referenced by llvm::detail::IEEEFloat::convert().
Definition at line 89 of file DOTGraphTraitsPass.h.
References nameObj.
Referenced by printGraphForFunction(), llvm::DOTGraphTraitsModulePrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), and WriteDOTGraphToFile().
bool llvm::shouldEmitPTXNoReturn | ( | const Value * | V, |
const TargetMachine & | TM | ||
) |
Definition at line 367 of file NVPTXUtilities.cpp.
References assert(), F, and isKernelFunction().
Referenced by llvm::NVPTXTargetLowering::getPrototype().
bool llvm::shouldFuncOptimizeForSizeImpl | ( | const FuncT * | F, |
ProfileSummaryInfo * | PSI, | ||
BFIT * | BFI, | ||
PGSOQueryType | QueryType | ||
) |
Definition at line 51 of file SizeOpts.h.
References assert(), EnablePGSO, F, ForcePGSO, llvm::ProfileSummaryInfo::hasProfileSummary(), llvm::ProfileSummaryInfo::hasSampleProfile(), llvm::ProfileSummaryInfo::isFunctionColdInCallGraph(), llvm::ProfileSummaryInfo::isFunctionColdInCallGraphNthPercentile(), llvm::ProfileSummaryInfo::isFunctionHotInCallGraphNthPercentile(), isPGSOColdCodeOnly(), PgsoCutoffInstrProf, and PgsoCutoffSampleProf.
Referenced by shouldOptimizeForSize().
Definition at line 246 of file PassTimingInfo.cpp.
References isSpecialPass().
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 377 of file InlineAdvisor.cpp.
References 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().
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().
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().
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(), llvm::MachineFunction::getFunction(), llvm::MachineBasicBlock::getParent(), llvm::Function::hasOptSize(), MBB, and shouldOptimizeForSizeImpl().
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::MachineFunction::getFunction(), llvm::MBFIWrapper::getMBFI(), llvm::MachineBasicBlock::getParent(), llvm::Function::hasOptSize(), MBB, and shouldOptimizeForSizeImpl().
bool llvm::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.
Definition at line 27 of file MachineSizeOpts.cpp.
References llvm::MachineFunction::getFunction(), llvm::Function::hasOptSize(), and shouldFuncOptimizeForSizeImpl().
Referenced by FindAllMemoryUses(), gatherUnrollingPreferences(), getScalarEpilogueLowering(), llvm::LiveIntervals::getSpillWeight(), llvm::InnerLoopVectorizer::InnerLoopVectorizer(), llvm::LoopVectorizationLegality::isConsecutivePtr(), llvm::TargetLoweringBase::isSuitableForJumpTable(), ProfitableToMerge(), llvm::ConstantHoistingPass::runImpl(), llvm::SelectionDAG::shouldOptForSize(), llvm::GIMatchTableExecutor::shouldOptForSize(), and llvm::TailDuplicator::shouldTailDuplicate().
bool llvm::shouldOptimizeForSizeImpl | ( | BlockTOrBlockFreq | BBOrBlockFreq, |
ProfileSummaryInfo * | PSI, | ||
BFIT * | BFI, | ||
PGSOQueryType | QueryType | ||
) |
Definition at line 72 of file SizeOpts.h.
References EnablePGSO, ForcePGSO, llvm::ProfileSummaryInfo::hasProfileSummary(), llvm::ProfileSummaryInfo::hasSampleProfile(), llvm::ProfileSummaryInfo::isColdBlock(), llvm::ProfileSummaryInfo::isColdBlockNthPercentile(), llvm::ProfileSummaryInfo::isHotBlockNthPercentile(), isPGSOColdCodeOnly(), PgsoCutoffInstrProf, and PgsoCutoffSampleProf.
Referenced by shouldOptimizeForSize().
bool llvm::shouldPrintAfterAll | ( | ) |
Definition at line 130 of file PrintPasses.cpp.
References PrintAfterAll.
Definition at line 136 of file PrintPasses.cpp.
References PrintAfter, PrintAfterAll, and shouldPrintBeforeOrAfterPass().
Referenced by llvm::PMTopLevelManager::schedulePass().
bool llvm::shouldPrintAfterSomePass | ( | ) |
Definition at line 119 of file PrintPasses.cpp.
References PrintAfter, and PrintAfterAll.
Referenced by llvm::PrintIRInstrumentation::registerCallbacks().
bool llvm::shouldPrintBeforeAll | ( | ) |
Definition at line 128 of file PrintPasses.cpp.
References PrintBeforeAll.
Definition at line 132 of file PrintPasses.cpp.
References PrintBefore, PrintBeforeAll, and shouldPrintBeforeOrAfterPass().
Referenced by llvm::PMTopLevelManager::schedulePass().
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().
Definition at line 356 of file PredicateInfo.cpp.
Definition at line 10 of file ReverseIteration.h.
Referenced by llvm::SmallPtrSetImpl< PtrType >::begin(), llvm::StringMapImpl::FindKey(), llvm::StringMapImpl::LookupBucketFor(), llvm::SmallPtrSetIterator< PtrTy >::operator*(), llvm::SmallPtrSetIterator< PtrTy >::operator++(), and llvm::SmallPtrSetIteratorImpl::SmallPtrSetIteratorImpl().
|
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(), and isLiteralsPair().
Referenced by createAMDGPUMacroFusionDAGMutation(), createARMMacroFusionDAGMutation(), createPowerPCMacroFusionDAGMutation(), and createX86MacroFusionDAGMutation().
|
static |
Definition at line 1651 of file DWARFLinker.cpp.
References llvm::DWARFAbbreviationDeclaration::AttributeSpec::Attr.
void llvm::shuffle | ( | Iterator | first, |
Iterator | last, | ||
RNG && | g | ||
) |
Definition at line 1558 of file STLExtras.h.
Referenced by llvm::InstrProfWriter::addTemporalProfileTraces(), and llvm::HexagonEvaluator::evaluate().
wasm::WasmSignature * llvm::signatureFromMVTs | ( | MCContext & | Ctx, |
const SmallVectorImpl< MVT > & | Results, | ||
const SmallVectorImpl< MVT > & | Params | ||
) |
Definition at line 116 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::MCContext::createWasmSignature(), Results, and valTypesFromMVTs().
Referenced by llvm::WebAssemblyAsmPrinter::emitDecls(), and llvm::WebAssemblyAsmPrinter::emitFunctionBodyStart().
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.
Referenced by llvm::PPC::get_VSPLTI_elt().
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.
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::RuntimeDyldMachOAArch64::decodeAddend(), DecodeAddiGroupBranch(), DecodeBgtzGroupBranch(), DecodeBgtzGroupBranchMMR6(), DecodeBgtzlGroupBranch(), DecodeBlezGroupBranch(), DecodeBlezGroupBranchMMR6(), DecodeBlezlGroupBranch(), DecodeDaddiGroupBranch(), DecodePOP35GroupBranchMMR6(), DecodePOP37GroupBranchMMR6(), DecodePOP65GroupBranchMMR6(), DecodePOP75GroupBranchMMR6(), llvm::GIMatchTableExecutor::executeMatchTable(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::SelectionDAG::getGlobalAddress(), llvm::APInt::getSExtValue(), llvm::RISCVInstrInfo::isBranchOffsetInRange(), llvm::jitlink::isInRangeForImm(), llvm::SystemZVectorConstantInfo::isVectorConstantLegal(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::AArch64InstPrinter::printInst(), llvm::RuntimeDyldMachOAArch64::processRelocationRef(), llvm::APInt::roundToDouble(), s32_0ImmDecoder(), selectI64Imm(), llvm::RISCVDAGToDAGISel::selectRVVSimm5(), and llvm::APInt::sext().
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.
std::string llvm::SimpleNodeLabelString | ( | const BasicBlockT * | Node | ) |
Definition at line 128 of file CFGPrinter.h.
References OS, and Node::printAsOperand().
Referenced by llvm::DOTGraphTraits< DOTFuncInfo * >::getSimpleNodeLabel(), and llvm::DOTGraphTraits< DOTMachineFuncInfo * >::getSimpleNodeLabel().
Value * llvm::simplifyAddInst | ( | Value * | LHS, |
Value * | RHS, | ||
bool | IsNSW, | ||
bool | IsNUW, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an Add, fold the result or return null.
Definition at line 656 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by dropRedundantMaskingOfLeftShiftInput(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldURemOfLoopIncrement(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), llvm::InstCombinerImpl::visitAdd(), and llvm::InstCombinerImpl::visitGEPOfGEP().
Value * llvm::simplifyAndInst | ( | Value * | LHS, |
Value * | RHS, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an And, fold the result or return null.
Definition at line 2203 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitAnd().
Given operands for a AShr, fold the result or return nulll.
Definition at line 1499 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitAShr().
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 6465 of file InstructionSimplify.cpp.
References assert(), BitWidth, llvm::CallingConv::C, llvm::ICmpInst::compare(), computeKnownBits(), ConstantFoldBinaryOpOperands(), llvm::SimplifyQuery::DL, fcAllFlags, foldMinimumMaximumSharedOp(), foldMinMaxSharedOp(), llvm::ConstantStruct::get(), llvm::UndefValue::get(), llvm::PoisonValue::get(), llvm::Constant::getAllOnesValue(), llvm::DataLayout::getIndexTypeSizeInBits(), getInverseMinMaxIntrinsic(), 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, 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_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().
Given operands for a BinaryOperator, fold the result or return null.
Definition at line 6116 of file InstructionSimplify.cpp.
References LHS, RecursionLimit, and RHS.
Referenced by constantFoldUser(), llvm::InstSimplifyFolder::FoldBinOp(), llvm::InstSimplifyFolder::FoldBinOpFMF(), llvm::InstSimplifyFolder::FoldExactBinOp(), llvm::InstSimplifyFolder::FoldNoWrapBinOp(), llvm::InstCombinerImpl::foldUsingDistributiveLaws(), getValueOnFirstIteration(), simplifyAndOrWithOpReplaced(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), and tryFactorization().
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 6121 of file InstructionSimplify.cpp.
References LHS, RecursionLimit, and RHS.
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 7005 of file InstructionSimplify.cpp.
References assert(), F, llvm::PoisonValue::get(), simplifyIntrinsic(), and tryConstantFoldCall().
Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitCallInst().
Given operands for a CastInst, fold the result or return null.
Definition at line 5399 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by constantFoldUser(), and llvm::InstSimplifyFolder::FoldCast().
bool llvm::simplifyCFG | ( | BasicBlock * | BB, |
const TargetTransformInfo & | TTI, | ||
DomTreeUpdater * | DTU = nullptr , |
||
const SimplifyCFGOptions & | Options = {} , |
||
ArrayRef< WeakVH > | LoopHeaders = {} |
||
) |
Definition at line 8470 of file SimplifyCFG.cpp.
References llvm::BasicBlock::getDataLayout(), and Options.
Referenced by iterativelySimplifyCFG().
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 6134 of file InstructionSimplify.cpp.
References LHS, RecursionLimit, and RHS.
Referenced by CanProveNotTakenFirstIteration(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), and llvm::InstSimplifyFolder::FoldCmp().
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 7031 of file InstructionSimplify.cpp.
References assert(), simplifyIntrinsic(), and tryConstantFoldCall().
Referenced by llvm::InstCombinerImpl::visitCallInst().
Value * llvm::simplifyExtractElementInst | ( | Value * | Vec, |
Value * | Idx, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an ExtractElementInst, fold the result or return null.
Definition at line 5299 of file InstructionSimplify.cpp.
References Idx, and RecursionLimit.
Referenced by llvm::InstSimplifyFolder::FoldExtractElement(), and llvm::InstCombinerImpl::visitExtractElementInst().
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 5247 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstSimplifyFolder::FoldExtractValue(), and llvm::InstCombinerImpl::visitExtractValueInst().
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 5880 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitFAdd().
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 4289 of file InstructionSimplify.cpp.
References LHS, RecursionLimit, and RHS.
Referenced by llvm::InstCombinerImpl::visitFCmpInst().
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 5963 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitFDiv().
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 5904 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitCallInst().
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 5896 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitFMul().
Value * llvm::simplifyFNegInst | ( | Value * | Op, |
FastMathFlags | FMF, | ||
const SimplifyQuery & | Q | ||
) |
Given operand for an FNeg, fold the result or return null.
Definition at line 5596 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitFNeg().
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 7050 of file InstructionSimplify.cpp.
Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitFreeze().
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 6001 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitFRem().
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 5888 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitFSub().
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 5138 of file InstructionSimplify.cpp.
References Ptr, and RecursionLimit.
Referenced by llvm::InstSimplifyFolder::FoldGEP(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
Value * llvm::simplifyICmpInst | ( | CmpPredicate | Pred, |
Value * | LHS, | ||
Value * | RHS, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an ICmpInst, fold the result or return null.
Definition at line 4055 of file InstructionSimplify.cpp.
References LHS, RecursionLimit, and RHS.
Referenced by foldAndOrOfICmpsWithConstEq(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpWithMinMax(), llvm::InstCombinerImpl::foldSelectICmp(), getValueOnFirstIteration(), llvm::InstCombinerImpl::visitICmpInst(), and llvm::InstCombinerImpl::visitURem().
Value * llvm::simplifyInsertElementInst | ( | Value * | Vec, |
Value * | Elt, | ||
Value * | Idx, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an InsertElement, fold the result or return null.
Definition at line 5183 of file InstructionSimplify.cpp.
References llvm::PoisonValue::get(), llvm::ConstantExpr::getInsertElement(), llvm::Value::getType(), Idx, isGuaranteedNotToBePoison(), llvm::SimplifyQuery::isUndefValue(), llvm::PatternMatch::m_ExtractElt(), llvm::PatternMatch::m_Specific(), and llvm::PatternMatch::match().
Referenced by llvm::InstSimplifyFolder::FoldInsertElement(), simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitInsertElementInst().
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 5177 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstSimplifyFolder::FoldInsertValue(), and llvm::InstCombinerImpl::visitInsertValueInst().
Value * llvm::simplifyInstruction | ( | Instruction * | I, |
const SimplifyQuery & | Q | ||
) |
See if we can compute a simplified version of this instruction.
If not, return null.
If called on unreachable code, the instruction may simplify to itself. Make life easier for users by detecting that case here, and returning a safe value instead.
Definition at line 7234 of file InstructionSimplify.cpp.
References llvm::PoisonValue::get(), I, RecursionLimit, and simplifyInstructionWithOperands().
Referenced by CloneAndPruneIntoFromInst(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), findPHIToPartitionLoops(), foldCondBranchOnValueKnownInPredecessorImpl(), foldTwoEntryPHINode(), llvm::SSAUpdater::GetValueInMiddleOfBlock(), InlineFunction(), isZeroSize(), processPHI(), replaceAndRecursivelySimplifyImpl(), llvm::SCEVExpander::replaceCongruentIVs(), replaceLoopPHINodesWithPreheaderValues(), runImpl(), simplifyAndDCEInstruction(), simplifyLoopAfterUnroll(), simplifyLoopInst(), simplifyOneLoop(), UnrollRuntimeLoopRemainder(), and llvm::InstCombinerImpl::visitPHINode().
bool llvm::SimplifyInstructionsInBlock | ( | BasicBlock * | BB, |
const TargetLibraryInfo * | TLI = nullptr |
||
) |
Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.
SimplifyInstructionsInBlock - Scan the specified basic block and try to simplify any instructions in it and recursively delete dead instructions.
This returns true if it changed the code, note that it can delete instructions in other blocks as well in this block.
Definition at line 737 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().
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 7226 of file InstructionSimplify.cpp.
References assert(), I, RecursionLimit, and llvm::ArrayRef< T >::size().
Referenced by simplifyInstructionWithPHI(), and simplifyOperationIntoSelectOperand().
Value * llvm::simplifyLoadInst | ( | LoadInst * | LI, |
Value * | PtrOp, | ||
const SimplifyQuery & | Q | ||
) |
Given a load instruction and its pointer operand, fold the result or return null.
Definition at line 7054 of file InstructionSimplify.cpp.
References llvm::CallingConv::C, ConstantFoldLoadFromConstPtr(), ConstantFoldLoadFromUniformValue(), llvm::SimplifyQuery::DL, llvm::DataLayout::getIndexTypeSizeInBits(), llvm::Value::getType(), getUnderlyingObject(), llvm::LoadInst::isVolatile(), Offset, and llvm::Value::stripAndAccumulateConstantOffsets().
Referenced by simplifyInstructionWithOperands(), and llvm::InstCombinerImpl::visitLoadInst().
bool llvm::simplifyLoop | ( | Loop * | L, |
DominatorTree * | DT, | ||
LoopInfo * | LI, | ||
ScalarEvolution * | SE, | ||
AssumptionCache * | AC, | ||
MemorySSAUpdater * | MSSAU, | ||
bool | PreserveLCSSA | ||
) |
Simplify each loop in a loop nest recursively.
This takes a potentially un-simplified loop L (and its children) and turns it into a simplified loop nest with preheaders and single backedges. It will update DominatorTree
, LoopInfo
, ScalarEvolution
and MemorySSA
analyses if they're non-null, and LCSSA if PreserveLCSSA
is true.
Definition at line 697 of file LoopSimplify.cpp.
References llvm::SmallVectorImpl< T >::append(), assert(), llvm::LoopBase< BlockT, LoopT >::begin(), llvm::SmallVectorBase< Size_T >::empty(), llvm::LoopBase< BlockT, LoopT >::end(), llvm::ScalarEvolution::forgetTopmostLoop(), Idx, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), simplifyOneLoop(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by eliminateLoadsAcrossLoops(), peelLoop(), llvm::LoopConstrainer::run(), llvm::IRCEPass::run(), llvm::LoopFusePass::run(), llvm::LoopUnrollPass::run(), llvm::LoopSimplifyPass::run(), llvm::LoopVectorizePass::runImpl(), splitLoopBound(), and UnrollLoop().
void llvm::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.
It is useful to simplify the IV's in the new loop, as well as do a quick simplify/dce pass of the instructions.
Definition at line 342 of file LoopUnroll.cpp.
References DL, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase< Size_T >::empty(), isInstructionTriviallyDead(), loadCSE(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_APInt(), llvm::PatternMatch::m_Value(), make_early_inc_range(), llvm::PatternMatch::match(), llvm::SmallVectorImpl< T >::pop_back_val(), RecursivelyDeleteTriviallyDeadInstructions(), RemoveRedundantDbgInstrs(), llvm::LoopInfo::replacementPreservesLCSSAForm(), llvm::APInt::sadd_ov(), simplifyInstruction(), simplifyLoopIVs(), and X.
Referenced by tryToUnrollLoop(), UnrollAndJamLoop(), and UnrollLoop().
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 1023 of file SimplifyIndVar.cpp.
References _, llvm::CallingConv::C, DEBUG_TYPE, llvm::ScalarEvolution::getDataLayout(), I, Rewriter, and simplifyUsersOfIV().
Referenced by simplifyLoopAfterUnroll().
Given operands for a LShr, fold the result or return null.
Definition at line 1466 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitLShr().
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 957 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitMul().
Value * llvm::simplifyOrInst | ( | Value * | LHS, |
Value * | RHS, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an Or, fold the result or return null.
Definition at line 2477 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitOr().
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 319 of file AssumeBundleBuilder.cpp.
References llvm::RetainedKnowledge::none().
Referenced by llvm::InstCombinerImpl::visitCallInst().
Given operands for an SDiv, fold the result or return null.
Definition at line 1215 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitSDiv().
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 4997 of file InstructionSimplify.cpp.
References Cond, and RecursionLimit.
Referenced by llvm::InstSimplifyFolder::FoldSelect().
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 1429 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitShl().
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 5568 of file InstructionSimplify.cpp.
References RecursionLimit, and RetTy.
Referenced by llvm::InstSimplifyFolder::FoldShuffleVector(), and llvm::InstCombinerImpl::visitShuffleVectorInst().
Value * llvm::simplifySRemInst | ( | Value * | LHS, |
Value * | RHS, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an SRem, fold the result or return null.
Definition at line 1249 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitSRem().
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 885 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by dropRedundantMaskingOfLeftShiftInput(), and llvm::InstCombinerImpl::visitSub().
Given operands for a UDiv, fold the result or return null.
Definition at line 1227 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitUDiv().
Value * llvm::simplifyUnOp | ( | unsigned | Opcode, |
Value * | Op, | ||
const SimplifyQuery & | Q | ||
) |
Given operand for a UnaryOperator, fold the result or return null.
Definition at line 6037 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstSimplifyFolder::FoldUnOpFMF().
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 6041 of file InstructionSimplify.cpp.
References RecursionLimit.
Value * llvm::simplifyURemInst | ( | Value * | LHS, |
Value * | RHS, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for a URem, fold the result or return null.
Definition at line 1260 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by foldURemOfLoopIncrement(), and llvm::InstCombinerImpl::visitURem().
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 1010 of file SimplifyIndVar.cpp.
References llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), and Rewriter.
Referenced by simplifyLoopIVs().
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 4487 of file InstructionSimplify.cpp.
References llvm::SimplifyQuery::getWithoutUndef(), and RecursionLimit.
Value * llvm::simplifyXorInst | ( | Value * | LHS, |
Value * | RHS, | ||
const SimplifyQuery & | Q | ||
) |
Given operands for an Xor, fold the result or return null.
Definition at line 2562 of file InstructionSimplify.cpp.
References RecursionLimit.
Referenced by llvm::InstCombinerImpl::visitXor().
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 555 of file LICM.cpp.
References assert(), canSinkOrHoistInst(), collectChildrenInLoop(), dbgs(), eraseInstruction(), llvm::MemorySSAUpdater::getMemorySSA(), I, II, inSubLoop(), isInstructionTriviallyDead(), isNotUsedOrFoldableInLoop(), LLVM_DEBUG, N, reverse(), salvageDebugInfo(), salvageKnowledge(), sink(), llvm::MemorySSA::verifyMemorySSA(), and VerifyMemorySSA.
Referenced by 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 | ||
) |
Call sinkRegion on loops contained within the specified loop in order from innermost to outermost.
Definition at line 622 of file LICM.cpp.
References appendLoopsToWorklist(), llvm::PriorityWorklist< T, VectorT, MapT >::empty(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getNode(), llvm::PriorityWorklist< T, VectorT, MapT >::insert(), llvm::PriorityWorklist< T, VectorT, MapT >::pop_back_val(), and sinkRegion().
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 1697 of file STLExtras.h.
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::ArrayRef< T >::ArrayRef(), llvm::CanonicalLoopInfo::assertOK(), llvm::AttributeListImpl::AttributeListImpl(), llvm::MutableArrayRef< T >::back(), llvm::StringRef::back(), llvm::BinaryStreamRef::BinaryStreamRef(), llvm::mca::CodeEmitter::CodeEmitter(), llvm::StringRef::compare(), llvm::objcopy::elf::CompressedSection::CompressedSection(), llvm::LoopVectorizationPlanner::computeBestVF(), llvm::ValueEnumerator::computeBitsRequiredForTypeIndices(), llvm::LegacyLegalizerInfo::computeTables(), llvm::ConstantRangeListAttributeImpl::ConstantRangeListAttributeImpl(), llvm::StringRef::consume_back(), llvm::StringRef::consume_back_insensitive(), llvm::gsym::ObjectFileTransformer::convert(), convertUTF8Sequence(), llvm::StringRef::copy(), llvm::StringRef::count(), 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::StringRef::detectEOL(), llvm::CSKYFrameLowering::determineCalleeSaves(), llvm::ArrayRef< T >::drop_back(), llvm::MutableArrayRef< T >::drop_back(), llvm::StringRef::drop_back(), llvm::ArrayRef< T >::drop_front(), llvm::MutableArrayRef< T >::drop_front(), llvm::StringRef::drop_front(), 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::StringRef::empty(), llvm::EnumeratedArray< ValueType, Enumeration, LargestEnum, IndexType, Size >::end(), llvm::MutableArrayRef< T >::end(), llvm::StringRef::end(), llvm::StringRef::ends_with(), llvm::StringRef::equals_insensitive(), llvm::VPIRBasicBlock::execute(), llvm::LegalizerHelper::fewerElementsVectorMultiEltType(), llvm::StringRef::find_if(), FindInsertedValue(), llvm::sampleprof::FunctionId::FunctionId(), llvm::lto::generateModulesOrdering(), llvm::AAPotentialConstantValues::getAssumedConstant(), getDataAlignmentFactor(), llvm::LTOModule::getDependentLibrary(), llvm::RuntimeDyldCOFF::getDLLImportOffset(), llvm::MCLOHDirective::getEmitSize(), llvm::dwarf_linker::parallel::SectionDescriptor::getIntVal(), llvm::object::MinidumpFile::getMemory64List(), llvm::cl::generic_parser_base::getOptionWidth(), llvm::cl::list< DataType, StorageClass, ParserClass >::getPosition(), 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::ShuffleVectorInst::isReplicationMask(), isSafeToUnrollAndJam(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), LowerCMP_SWAP(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), llvm::SPIRVCallLowering::lowerFormalArguments(), llvm::X86CallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArgumentsKernel(), llvm::StringRef::ltrim(), llvm::RuntimeDyldChecker::MemoryRegionInfo::MemoryRegionInfo(), llvm::GlobalMergeFunc::merge(), llvm::PBQP::Graph< SolverT >::NodeItr::NodeItr(), llvm::NoInferenceModelRunner::NoInferenceModelRunner(), llvm::MachO::ArchitectureSet::operator std::string(), llvm::StringRef::operator std::string_view(), operator+=(), llvm::StringMap< ValueTy, AllocatorTy >::operator==(), llvm::MutableArrayRef< T >::operator[](), llvm::StringRef::operator[](), llvm::ELFAttributeParser::parseSubsection(), llvm::PGOCtxProfileReader::PGOCtxProfileReader(), llvm::SSAUpdaterTraits< LDVSSAUpdater >::PHI_iterator::PHI_iterator(), llvm::R600SchedStrategy::pickNode(), llvm::AArch64InstPrinter::printGPRSeqPairsClassOperand(), promoteScalarArgumentSize(), readImmediate(), readOpcodeRegister(), ReadSignature(), llvm::RegsForValue::RegsForValue(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdges(), llvm::slpvectorizer::BoUpSLP::VLOperands::reorder(), llvm::RegBankSelect::repairReg(), llvm::LoopBase< BlockT, LoopT >::reserveBlocks(), llvm::StringRef::rfind(), llvm::AArch64_AM::ror(), llvm::StringRef::rtrim(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::SchedDFSImpl::SchedDFSImpl(), llvm::SDDbgValue::SDDbgValue(), llvm::SectionEntry::SectionEntry(), llvm::SplitEditor::selectIntv(), separateNestedLoop(), llvm::LegacyLegalizerInfo::setAction(), llvm::ARMFunctionInfo::setArgumentStackSize(), llvm::M68kMachineFunctionInfo::setArgumentStackSize(), llvm::X86MachineFunctionInfo::setArgumentStackSize(), llvm::LegacyLegalizerInfo::setLegalizeScalarToDifferentSizeStrategy(), llvm::LegacyLegalizerInfo::setLegalizeVectorElementToDifferentSizeStrategy(), llvm::PPCFunctionInfo::setMinReservedArea(), llvm::DIELoc::setSize(), llvm::DIEBlock::setSize(), llvm::PPCFunctionInfo::setTailCallSPDelta(), llvm::InlineAsmIdentifierInfo::setVar(), llvm::AAMDNodes::shiftTBAAStruct(), llvm::SmallDenseMap< KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT >::shrink_and_clear(), shuffle(), llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::SIRegisterInfo::SIRegisterInfo(), llvm::orc::shared::SPSSerializationTraits< SPSTuple< SPSTagTs... >, std::tuple< Ts... > >::size(), size(), llvm::adl_detail::size_impl(), llvm::DWARFFormValue::skipValue(), llvm::ArrayRef< T >::slice(), llvm::MutableArrayRef< T >::slice(), llvm::StringRef::slice(), llvm::StackLifetime::StackLifetime(), llvm::StringRef::starts_with(), llvm::StringRef::str(), llvm::StringAttributeImpl::StringAttributeImpl(), llvm::StringMap< ValueTy, AllocatorTy >::StringMap(), llvm::StringRef::StringRef(), llvm::StringRef::substr(), llvm::ArrayRef< T >::take_back(), llvm::MutableArrayRef< T >::take_back(), llvm::StringRef::take_back(), llvm::ArrayRef< T >::take_front(), llvm::MutableArrayRef< T >::take_front(), llvm::StringRef::take_front(), llvm::orc::DLLImportDefinitionGenerator::tryToGenerate(), llvm::coverage::mcdc::TVIdxBuilder::TVIdxBuilder(), upgradeArmOrAarch64IntrinsicFunction(), llvm::WritableBinaryStreamRef::WritableBinaryStreamRef(), llvm::objcopy::wasm::Writer::write(), and write32AArch64Ldr().
|
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 287 of file BitcodeReader.h.
References BWH_OffsetField, BWH_SizeField, Offset, llvm::support::endian::read32le(), and Size.
Referenced by analyzeHeader(), and initStream().
|
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 1429 of file MachineBasicBlock.h.
Referenced by llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), getLastMIForRegion(), llvm::X86FrameLowering::mergeSPUpdates(), prev_nodbg(), and llvm::MachineBasicBlock::rfindDebugLoc().
|
inline |
Increment It
until it points to a non-debug instruction or to End
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 1416 of file MachineBasicBlock.h.
References End.
Referenced by llvm::GCNDownwardRPTracker::advanceToNext(), llvm::GCNDownwardRPTracker::bumpDownwardPressure(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::LiveDebugVariables::LDVImpl::emitDebugValues(), llvm::MachineBasicBlock::findDebugLoc(), findInsertLocation(), llvm::RegPressureTracker::getCurrSlot(), llvm::MachineBasicBlock::getFirstNonDebugInstr(), llvm::SlotIndexes::getInstructionIndex(), llvm::X86FrameLowering::mergeSPUpdates(), next_nodbg(), ProfitableToMerge(), llvm::GCNDownwardRPTracker::reset(), and verifySameBranchInstructions().
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 698 of file BasicBlock.cpp.
Referenced by llvm::objcarc::BottomUpPtrState::HandlePotentialUse().
|
static |
Definition at line 515 of file APFloat.cpp.
References createError().
Referenced by interpretDecimal().
Definition at line 155 of file SampleProfileLoaderBaseImpl.h.
References F.
Referenced by buildTopDownFuncOrder(), and llvm::SampleProfileMatcher::runOnModule().
|
inline |
Definition at line 1677 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and sort().
|
inline |
Definition at line 1690 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and sort().
|
inline |
Definition at line 1664 of file STLExtras.h.
References array_pod_sort(), and End.
Referenced by llvm::TargetLibraryInfoImpl::addVectorizableFunctions(), adjustCostForPairing(), llvm::orc::AllocGroupSmallMap< T >::AllocGroupSmallMap(), llvm::GenericUniformityAnalysisImpl< ContextT >::analyzeControlDivergence(), llvm::jitlink::BasicLayout::BasicLayout(), llvm::BlockToIndexMapping::BlockToIndexMapping(), llvm::memprof::CallStackRadixTreeBuilder< FrameIdTy >::build(), llvm::MCPseudoProbeDecoder::buildAddress2ProbeMap(), llvm::SwitchCG::SwitchLowering::buildBitTests(), buildClonedLoops(), llvm::MCPseudoProbeDecoder::buildGUID2FuncDescMap(), buildVRegToDbgValueMap(), checkVectorTypesForPromotion(), 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(), llvm::MIRPrinter::convertCalledGlobals(), llvm::MIRPrinter::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::MCPseudoProbeSections::emit(), llvm::MCPseudoProbeInlineTree::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(), findIrreducibleHeaders(), findPartitions(), llvm::jitlink::EHFrameCFIBlockInspector::FromEdgeScan(), 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::HexagonSubtarget::getIntrinsicId(), getLiveRegMap(), llvm::IndexedMemProfReader::getMemProfCallerCalleePairs(), llvm::MemoryDependenceResults::getNonLocalCallDependency(), llvm::StackSafetyInfo::getParamAccesses(), llvm::HvxSelector::getPerfectCompletions(), llvm::FunctionImporter::ImportMapTy::getSourceModules(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), GetSpillList(), getStableIndexOperandHashes(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), hoistPreviousBeforeFORUsers(), inferInitializes(), llvm::mca::initializeUsedResources(), llvm::jitlink::initRelaxAux(), llvm::SlotIndexes::insertMBBInMaps(), llvm::AttributeList::intersectWith(), llvm::mca::ResourceManager::issueInstructionImpl(), 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< const InterfaceFile * >::NormalizedTBD::NormalizedTBD(), llvm::yaml::MappingTraits< const InterfaceFile * >::NormalizedTBD_V4::NormalizedTBD_V4(), llvm::orc::BlockFreqQuery::operator()(), llvm::jitlink::DWARFRecordSectionSplitter::operator()(), llvm::jitlink::EHFrameEdgeFixer::operator()(), operator<<(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeNonTrivialIFuncs(), parallelSort(), llvm::DWARFDebugLine::LineTable::parse(), predictValueUseListOrder(), predictValueUseListOrderImpl(), PrefixMatcher::PrefixMatcher(), llvm::CallGraph::print(), llvm::DebugCounter::print(), llvm::sandboxir::DependencyGraph::print(), llvm::PhysicalRegisterUsageInfo::print(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::printStatistic(), llvm::Pattern::printVariableDefs(), promoteSingleBlockAlloca(), llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps(), reduceSwitchRange(), relocationViaAlloca(), llvm::MemoryDependenceResults::removeInstruction(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), 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(), simplifySwitchOfPowersOfTwo(), sinkInstruction(), sinkRecurrenceUsersAfterPrevious(), llvm::coro::sinkSpillUsesAfterCoroBegin(), llvm::SMDiagnostic::SMDiagnostic(), llvm::simple_ilist< T, Options >::sort(), sort(), llvm::SwitchCG::sortAndRangeify(), llvm::orc::SymbolLookupSet::sortByAddress(), llvm::orc::SymbolLookupSet::sortByName(), llvm::InstrProfValueSiteRecord::sortByTargetValues(), 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::InstCombinerImpl::tryToSinkInstructionDbgValues(), llvm::coverage::mcdc::TVIdxBuilder::TVIdxBuilder(), llvm::HexagonBlockRanges::RangeList::unionize(), updateIDTMetaData(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::VerifyDFSNumbers(), llvm::OutlinedHashTree::walkGraph(), llvm::VirtRegAuxInfo::weightCalcHelper(), llvm::vfs::YAMLVFSWriter::write(), llvm::sampleprof::ProfileSymbolList::write(), llvm::TimeTraceProfiler::write(), writeMemProfFrameArray(), and llvm::InstrProfWriter::writeText().
|
inline |
Definition at line 1682 of file STLExtras.h.
References End.
void llvm::sortBasicBlocksAndUpdateBranches | ( | MachineFunction & | MF, |
MachineBasicBlockComparator | MBBCmp | ||
) |
Definition at line 242 of file BasicBlockSections.cpp.
References assert(), llvm::MachineFunction::assignBeginEndSections(), llvm::MachineFunction::front(), llvm::MachineBasicBlock::getFallThrough(), llvm::MachineBasicBlock::getNumber(), llvm::MachineFunction::getNumBlockIDs(), MBB, llvm::MachineFunction::sort(), and updateBranches().
Referenced by finishAdjustingBasicBlocksAndLandingPads().
Definition at line 679 of file SPIRVUtils.cpp.
References assert(), F, llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), Modified, and llvm::BasicBlock::moveAfter().
Referenced by llvm::SPIRVStructurizer::runOnFunction().
cl::opt< bool > llvm::SortProfiledSCC | ( | "sort-profiled-scc-member" | , |
cl::init(true) | , | ||
cl::Hidden | , | ||
cl::desc("Sort profiled recursion by edge weights.") | |||
) |
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 1610 of file LoopAccessAnalysis.cpp.
References all_of(), assert(), llvm::SmallVectorImpl< T >::clear(), DL, drop_begin(), enumerate(), getPointersDiff(), Idx, isPointerTy(), Offset, Ptr, llvm::SmallVectorImpl< T >::resize(), and llvm::ArrayRef< T >::size().
Referenced by llvm::slpvectorizer::BoUpSLP::canVectorizeLoads().
|
inlinestatic |
Definition at line 106 of file Sparc.h.
References CC, llvm::SPCC::CPCC_0, llvm::SPCC::CPCC_01, llvm::SPCC::CPCC_012, llvm::SPCC::CPCC_013, llvm::SPCC::CPCC_02, llvm::SPCC::CPCC_023, llvm::SPCC::CPCC_03, llvm::SPCC::CPCC_1, llvm::SPCC::CPCC_12, llvm::SPCC::CPCC_123, llvm::SPCC::CPCC_13, llvm::SPCC::CPCC_2, llvm::SPCC::CPCC_23, llvm::SPCC::CPCC_3, llvm::SPCC::CPCC_A, llvm::SPCC::CPCC_N, llvm::SPCC::FCC_A, llvm::SPCC::FCC_E, llvm::SPCC::FCC_G, llvm::SPCC::FCC_GE, llvm::SPCC::FCC_L, llvm::SPCC::FCC_LE, llvm::SPCC::FCC_LG, llvm::SPCC::FCC_N, llvm::SPCC::FCC_NE, llvm::SPCC::FCC_O, llvm::SPCC::FCC_U, llvm::SPCC::FCC_UE, llvm::SPCC::FCC_UG, llvm::SPCC::FCC_UGE, llvm::SPCC::FCC_UL, llvm::SPCC::FCC_ULE, llvm::SPCC::ICC_A, llvm::SPCC::ICC_CC, llvm::SPCC::ICC_CS, llvm::SPCC::ICC_E, llvm::SPCC::ICC_G, llvm::SPCC::ICC_GE, llvm::SPCC::ICC_GU, llvm::SPCC::ICC_L, llvm::SPCC::ICC_LE, llvm::SPCC::ICC_LEU, llvm::SPCC::ICC_N, llvm::SPCC::ICC_NE, llvm::SPCC::ICC_NEG, llvm::SPCC::ICC_POS, llvm::SPCC::ICC_VC, llvm::SPCC::ICC_VS, llvm_unreachable, llvm::SPCC::REG_BEGIN, llvm::SPCC::REG_GEZ, llvm::SPCC::REG_GZ, llvm::SPCC::REG_LEZ, llvm::SPCC::REG_LZ, llvm::SPCC::REG_NZ, and llvm::SPCC::REG_Z.
Referenced by llvm::SparcInstPrinter::printCCOperand().
|
inline |
Returns text representation of the given rounding mode.
Definition at line 51 of file FloatingPointMode.h.
References Dynamic, NearestTiesToAway, NearestTiesToEven, TowardNegative, TowardPositive, and TowardZero.
Referenced by operator<<().
bool llvm::SPIRVTranslateModule | ( | Module * | M, |
std::string & | SpirvObj, | ||
std::string & | ErrMsg, | ||
const std::vector< std::string > & | AllowExtNames, | ||
const std::vector< std::string > & | Opts | ||
) |
Definition at line 81 of file SPIRVAPI.cpp.
References llvm::legacy::PassManager::add(), llvm::SPIRVSubtarget::addExtensionsToClOpt(), llvm::SPIRVExtensionsParser::checkExtensions(), llvm::Target::createTargetMachine(), llvm::StringRef::empty(), llvm::Expected< T >::get(), llvm::Triple::getTriple(), llvm::TargetRegistry::lookupTarget(), llvm::Triple::normalize(), ObjectFile, Options, llvm::DataLayout::parse(), llvm::CodeGenOpt::parseLevel(), llvm::legacy::PassManager::run(), llvm::Triple::setTriple(), llvm::SmallString< InternalLen >::str(), llvm::StringRef::str(), llvm::Expected< T >::takeError(), and toString().
void llvm::spliceBB | ( | IRBuilder<> & | Builder, |
BasicBlock * | New, | ||
bool | CreateBranch | ||
) |
Splice a BasicBlock at an IRBuilder's current insertion point.
Its new insert location will stick to after the instruction before the insertion point (instead of moving with the instruction the InsertPoint stores internally).
Definition at line 328 of file OMPIRBuilder.cpp.
References llvm::IRBuilderBase::getCurrentDebugLocation(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getTerminator(), llvm::IRBuilderBase::saveIP(), llvm::IRBuilderBase::SetCurrentDebugLocation(), llvm::IRBuilderBase::SetInsertPoint(), and spliceBB().
void llvm::spliceBB | ( | IRBuilderBase::InsertPoint | IP, |
BasicBlock * | New, | ||
bool | CreateBranch | ||
) |
Move the instruction after an InsertPoint to the beginning of another BasicBlock.
The instructions after IP
are moved to the beginning of New
which must not have any PHINodes. If CreateBranch
is true, a branch instruction to New
will be added such that there is no semantic change. Otherwise, the IP
insert block remains degenerate and it is up to the caller to insert a terminator.
Definition at line 315 of file OMPIRBuilder.cpp.
References assert(), llvm::BranchInst::Create(), llvm::BasicBlock::end(), llvm::IRBuilderBase::InsertPoint::getBlock(), and llvm::IRBuilderBase::InsertPoint::getPoint().
Referenced by llvm::OpenMPIRBuilder::createCanonicalLoop(), spliceBB(), and splitBB().
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 1015 of file BasicBlockUtils.cpp.
References F, llvm::Instruction::getNumSuccessors(), Options, and SplitCriticalEdge().
BasicBlock * llvm::splitBB | ( | IRBuilder<> & | Builder, |
bool | CreateBranch, | ||
llvm::Twine | Name | ||
) |
Split a BasicBlock at Builder's
insertion point, even if the block is degenerate (missing the terminator).
Its new insert location will stick to after the instruction before the insertion point (instead of moving with the instruction the InsertPoint stores internally).
Definition at line 368 of file OMPIRBuilder.cpp.
References llvm::IRBuilderBase::getCurrentDebugLocation(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getTerminator(), Name, llvm::IRBuilderBase::saveIP(), llvm::IRBuilderBase::SetCurrentDebugLocation(), llvm::IRBuilderBase::SetInsertPoint(), and splitBB().
BasicBlock * llvm::splitBB | ( | IRBuilderBase & | Builder, |
bool | CreateBranch, | ||
llvm::Twine | Name = {} |
||
) |
Split a BasicBlock at Builder's
insertion point, even if the block is degenerate (missing the terminator).
Its new insert location will stick to after the instruction before the insertion point (instead of moving with the instruction the InsertPoint stores internally).
Definition at line 354 of file OMPIRBuilder.cpp.
References llvm::IRBuilderBase::getCurrentDebugLocation(), llvm::IRBuilderBase::GetInsertBlock(), llvm::BasicBlock::getTerminator(), Name, llvm::IRBuilderBase::saveIP(), llvm::IRBuilderBase::SetCurrentDebugLocation(), llvm::IRBuilderBase::SetInsertPoint(), and splitBB().
BasicBlock * llvm::splitBB | ( | IRBuilderBase::InsertPoint | IP, |
bool | CreateBranch, | ||
llvm::Twine | Name = {} |
||
) |
Split a BasicBlock at an InsertPoint, even if the block is degenerate (missing the terminator).
llvm::SplitBasicBlock and BasicBlock::splitBasicBlock require a well-formed BasicBlock. Name
is used for the new successor block. If CreateBranch
is true, a branch to the new successor will new created such that semantically there is no change; otherwise the block of the insertion point remains degenerate and it is the caller's responsibility to insert a terminator. Returns the new successor block.
Definition at line 343 of file OMPIRBuilder.cpp.
References llvm::BasicBlock::Create(), llvm::IRBuilderBase::InsertPoint::getBlock(), llvm::BasicBlock::getContext(), llvm::Value::getName(), llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), llvm::BasicBlock::getParent(), Name, and spliceBB().
Referenced by createOutlinedFunction(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTaskgroup(), llvm::OpenMPIRBuilder::createTeams(), llvm::OpenMPIRBuilder::emitTargetTask(), splitBB(), and splitBBWithSuffix().
BasicBlock * llvm::splitBBWithSuffix | ( | IRBuilderBase & | Builder, |
bool | CreateBranch, | ||
llvm::Twine | Suffix = ".split" |
||
) |
Like splitBB, but reuses the current block's name for the new name.
Definition at line 382 of file OMPIRBuilder.cpp.
References llvm::IRBuilderBase::GetInsertBlock(), llvm::Value::getName(), and splitBB().
Referenced by llvm::OpenMPIRBuilder::createSections().
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 1084 of file BasicBlockUtils.cpp.
References Before, and SplitBlockImpl().
Referenced by addReplicateRegions(), buildClonedLoopBlocks(), changeToInvokeAndSplitBasicBlock(), llvm::EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton(), llvm::OpenMPIRBuilder::createParallel(), llvm::InnerLoopVectorizer::createVectorLoopSkeleton(), llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), expandToSwitch(), foldMemChr(), peelLoop(), llvm::VPBasicBlock::splitAt(), SplitBlock(), SplitBlockAndInsertSimpleForLoop(), splitCallSite(), SplitEdge(), UnrollRuntimeLoopRemainder(), unswitchTrivialBranch(), unswitchTrivialSwitch(), and llvm::LoopVersioning::versionLoop().
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 1091 of file BasicBlockUtils.cpp.
References Before, and SplitBlockImpl().
|
inline |
Definition at line 287 of file BasicBlockUtils.h.
References Before, llvm::ilist_node_impl< OptionsT >::getIterator(), and SplitBlock().
|
inline |
Definition at line 306 of file BasicBlockUtils.h.
References Before, llvm::ilist_node_impl< OptionsT >::getIterator(), and SplitBlock().
void llvm::SplitBlockAndInsertForEachLane | ( | ElementCount | EC, |
Type * | IndexTy, | ||
Instruction * | 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 1758 of file BasicBlockUtils.cpp.
References llvm::IRBuilderBase::CreateElementCount(), Idx, llvm::IRBuilderBase::SetInsertPoint(), and SplitBlockAndInsertSimpleForLoop().
void llvm::SplitBlockAndInsertForEachLane | ( | Value * | End, |
Instruction * | 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 1782 of file BasicBlockUtils.cpp.
References llvm::Value::getType(), Idx, llvm::IRBuilderBase::SetInsertPoint(), and SplitBlockAndInsertSimpleForLoop().
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 1622 of file BasicBlockUtils.cpp.
References Cond, llvm::BasicBlock::getTerminator(), and SplitBlockAndInsertIfThenElse().
Referenced by SplitBlockAndInsertIfElse().
|
inline |
Definition at line 443 of file BasicBlockUtils.h.
References Cond, llvm::ilist_node_impl< OptionsT >::getIterator(), and SplitBlockAndInsertIfElse().
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 1609 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().
|
inline |
Definition at line 423 of file BasicBlockUtils.h.
References Cond, llvm::ilist_node_impl< OptionsT >::getIterator(), and SplitBlockAndInsertIfThen().
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 1650 of file BasicBlockUtils.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::CallingConv::C, Cond, llvm::BranchInst::Create(), llvm::BasicBlock::Create(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::BasicBlock::getContext(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), llvm::SmallPtrSetImpl< PtrType >::insert(), ReplaceInstWithInst(), llvm::SmallVectorImpl< T >::reserve(), llvm::Instruction::setDebugLoc(), llvm::Instruction::setMetadata(), llvm::SmallPtrSetImplBase::size(), llvm::BasicBlock::splitBasicBlock(), succ_begin(), succ_end(), and llvm::CallingConv::Tail.
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 1635 of file BasicBlockUtils.cpp.
References Cond, llvm::BasicBlock::getTerminator(), and SplitBlockAndInsertIfThenElse().
Referenced by llvm::OpenMPIRBuilder::createCancel(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), llvm::OpenMPIRBuilder::createTask(), rewriteMemOpOfSelect(), SplitBlockAndInsertIfElse(), SplitBlockAndInsertIfThen(), SplitBlockAndInsertIfThenElse(), and versionCallSiteWithCond().
|
inline |
Definition at line 526 of file BasicBlockUtils.h.
References Cond, llvm::ilist_node_impl< OptionsT >::getIterator(), and SplitBlockAndInsertIfThenElse().
|
inline |
Definition at line 478 of file BasicBlockUtils.h.
References Cond, llvm::ilist_node_impl< OptionsT >::getIterator(), and SplitBlockAndInsertIfThenElse().
std::pair< Instruction *, Value * > llvm::SplitBlockAndInsertSimpleForLoop | ( | Value * | End, |
Instruction * | 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 1732 of file BasicBlockUtils.cpp.
References llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreatePHI(), DL, End, llvm::Instruction::eraseFromParent(), llvm::Instruction::getDataLayout(), llvm::BasicBlock::getFirstNonPHI(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getTerminator(), IV, and SplitBlock().
Referenced by SplitBlockAndInsertForEachLane().
BasicBlock * llvm::splitBlockBefore | ( | BasicBlock * | Old, |
BasicBlock::iterator | SplitPt, | ||
DomTreeUpdater * | DTU, | ||
LoopInfo * | LI, | ||
MemorySSAUpdater * | MSSAU, | ||
const Twine & | BBName = "" |
||
) |
Split the specified block at the specified instruction SplitPt
.
All instructions before SplitPt
are moved to a new block and all instructions after SplitPt
stay in the old block. The new block and the old block are joined by inserting an unconditional branch to the end of the new block. The new block with name BBName
is returned.
Definition at line 1099 of file BasicBlockUtils.cpp.
References llvm::MemorySSAUpdater::applyUpdates(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::getDomTree(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::MemorySSAUpdater::getMemorySSA(), llvm::Value::getName(), llvm::SmallPtrSetImpl< PtrType >::insert(), Name, pred_size(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase< Size_T >::size(), llvm::BasicBlock::splitBasicBlock(), llvm::Twine::str(), llvm::MemorySSA::verifyMemorySSA(), and VerifyMemorySSA.
Referenced by splitBlockBefore(), and SplitBlockImpl().
|
inline |
Definition at line 321 of file BasicBlockUtils.h.
References llvm::ilist_node_impl< OptionsT >::getIterator(), and splitBlockBefore().
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 1419 of file BasicBlockUtils.cpp.
References SplitBlockPredecessorsImpl().
Referenced by ConnectEpilog(), ConnectProlog(), ehAwareSplitEdge(), foldCondBranchOnValueKnownInPredecessorImpl(), formDedicatedExitBlocks(), InsertPreheaderForLoop(), mergeConditionalStoreToAddress(), normalizeForInvokeSafepoint(), separateNestedLoop(), sinkCommonCodeFromPredecessors(), SplitKnownCriticalEdge(), splitPredecessorsOfLoopExit(), and UnrollRuntimeLoopRemainder().
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 1427 of file BasicBlockUtils.cpp.
References SplitBlockPredecessorsImpl().
|
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 230 of file BasicBlockUtils.h.
References assert(), llvm::Instruction::getNumSuccessors(), llvm::Instruction::getSuccessor(), Options, and SplitCriticalEdge().
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().
BasicBlock * llvm::SplitEdge | ( | 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
.
Definition at line 762 of file BasicBlockUtils.cpp.
References assert(), ehAwareSplitEdge(), llvm::BasicBlock::front(), llvm::Instruction::getNumSuccessors(), llvm::BasicBlock::getSinglePredecessor(), GetSuccessorNumber(), llvm::BasicBlock::getTerminator(), isCriticalEdge(), llvm::BasicBlock::isEHPad(), Options, llvm::CriticalEdgeSplittingOptions::setPreserveLCSSA(), SplitBlock(), and SplitKnownCriticalEdge().
Referenced by breakLoopBackedge(), createRetBitCast(), llvm::JumpThreadingPass::duplicateCondBranchOnPHIIntoPred(), DuplicateInstructionsInSplitBetween(), ehAwareSplitEdge(), llvm::coro::getSpillInsertionPt(), peelLoop(), replaceConstantExprOp(), llvm::PlaceSafepointsPass::runImpl(), splitLoopBound(), UnrollRuntimeLoopRemainder(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), and unswitchTrivialSwitch().
bool llvm::SplitIndirectBrCriticalEdges | ( | Function & | F, |
bool | IgnoreBlocksWithoutPHI, | ||
BranchProbabilityInfo * | BPI = nullptr , |
||
BlockFrequencyInfo * | BFI = nullptr |
||
) |
Definition at line 338 of file BreakCriticalEdges.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::BasicBlock::begin(), CloneBasicBlock(), llvm::PHINode::Create(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SetVector< T, Vector, Set, N >::empty(), llvm::SmallVectorBase< Size_T >::empty(), End, llvm::BranchProbabilityInfo::eraseBlock(), llvm::Instruction::eraseFromParent(), F, findIBRPredecessor(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::BasicBlock::getFirstInsertionPt(), llvm::PHINode::getIncomingValueForBlock(), llvm::Value::getType(), I, llvm::SetVector< T, Vector, Set, N >::insert(), llvm::Instruction::insertBefore(), llvm::Instruction::isEHPad(), llvm::PHINode::removeIncomingValue(), llvm::Value::replaceAllUsesWith(), llvm::SmallVectorImpl< T >::reserve(), llvm::BranchProbabilityInfo::setEdgeProbability(), and successors().
Referenced by annotateAllFunctions().
BasicBlock * llvm::SplitKnownCriticalEdge | ( | 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.
Definition at line 111 of file BreakCriticalEdges.cpp.
References any_of(), llvm::DominatorTreeBase< NodeT, IsPostDom >::applyUpdates(), assert(), llvm::BasicBlock::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::BranchInst::Create(), llvm::BasicBlock::Create(), createPHIsForSplitLoopExit(), llvm::DominatorTreeBase< BasicBlock, false >::Delete, llvm::SmallVectorBase< Size_T >::empty(), F, llvm::PHINode::getBasicBlockIndex(), llvm::Value::getContext(), llvm::Instruction::getDebugLoc(), llvm::BasicBlock::getFirstNonPHIOrDbgOrLifetime(), llvm::PHINode::getIncomingBlock(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Value::getName(), llvm::Instruction::getNumSuccessors(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getParent(), llvm::Instruction::getSuccessor(), llvm::BasicBlock::getTerminator(), I, llvm::DominatorTreeBase< BasicBlock, false >::Insert, is_contained(), llvm::BasicBlock::isEHPad(), Options, P, predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::BasicBlock::removePredecessor(), llvm::Instruction::setDebugLoc(), llvm::PHINode::setIncomingBlock(), llvm::Instruction::setSuccessor(), SplitBlockPredecessors(), llvm::Twine::str(), and successors().
Referenced by SplitCriticalEdge(), SplitCriticalEdges(), and SplitEdge().
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 1539 of file BasicBlockUtils.cpp.
References SplitLandingPadPredecessorsImpl().
|
static |
Definition at line 287 of file LoopBoundSplit.cpp.
References llvm::PHINode::addIncoming(), llvm::BasicBlock::begin(), canSplitLoopBound(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), cloneLoopWithPreheader(), Cond, llvm::IRBuilderBase::CreateCondBr(), llvm::IRBuilderBase::CreateICmp(), llvm::IRBuilderBase::CreatePHI(), llvm::Instruction::eraseFromParent(), llvm::SCEVExpander::expandCodeFor(), findSplitCandidate(), llvm::ScalarEvolution::forgetLoop(), llvm::BasicBlock::front(), llvm::BasicBlock::getContext(), llvm::LoopBase< BlockT, LoopT >::getExitBlock(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::ConstantInt::getFalse(), llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopBase< BlockT, LoopT >::getLoopPreheader(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSMinExpr(), llvm::BasicBlock::getTerminator(), llvm::ConstantInt::getTrue(), llvm::SCEV::getType(), llvm::ScalarEvolution::getUMinExpr(), llvm::CmpInst::ICMP_NE, isProfitableToTransform(), llvm::ScalarEvolution::isSCEVable(), llvm::CmpInst::isSigned(), llvm::BasicBlock::phis(), remapInstructionsInBlocks(), llvm::BranchInst::setCondition(), llvm::Instruction::setDebugLoc(), llvm::PHINode::setIncomingValueForBlock(), llvm::IRBuilderBase::SetInsertPoint(), llvm::Value::setName(), simplifyLoop(), and SplitEdge().
Referenced by llvm::LoopBoundSplitPass::run().
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):
Definition at line 254 of file SplitModule.cpp.
References CloneModule(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), externalize(), F, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), findPartitions(), I, isInPartition(), N, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by splitCodeGen().
Definition at line 28 of file VECustomDAG.cpp.
References llvm::MVT::getVectorElementType(), llvm::MVT::getVectorVT(), llvm::MVT::isVector(), and StandardVectorWidth.
Referenced by llvm::VETargetLowering::splitPackedLoadStore(), and llvm::VETargetLowering::splitVectorOp().
|
inline |
Definition at line 30 of file StableHashing.h.
References llvm::ArrayRef< T >::data(), Ptr, llvm::ArrayRef< T >::size(), Size, and xxh3_64bits().
Referenced by hash_value(), llvm::CodeGenDataReader::mergeFromObjectFile(), stable_hash_combine(), and stableHashValue().
|
inline |
Definition at line 36 of file StableHashing.h.
References A, B, and stable_hash_combine().
|
inline |
Definition at line 41 of file StableHashing.h.
References A, B, llvm::CallingConv::C, and stable_hash_combine().
|
inline |
Definition at line 47 of file StableHashing.h.
References A, B, llvm::CallingConv::C, D, and stable_hash_combine().
|
inline |
Definition at line 72 of file StableHashing.h.
References get_stable_name(), Name, and xxh3_64bits().
Referenced by stableHashValue().
void llvm::stable_sort | ( | R && | Range | ) |
Definition at line 2037 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by clusterSortPtrAccesses(), collectMultiplyFactors(), 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(), findExtractedOutputToOverallOutputMapping(), llvm::MDAttachments::getAll(), getCodeExtractorArguments(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), getSortedConstantKeys(), GroupByComplexity(), layoutSections(), layoutSectionsForOnlyKeepDebug(), llvm::xray::loadTrace(), optimizeGlobalCtorsList(), llvm::AArch64FrameLowering::orderFrameObjects(), llvm::HexagonFrameLowering::orderFrameObjects(), llvm::X86FrameLowering::orderFrameObjects(), orderSegments(), llvm::gsym::GsymCreator::prepareMergedFunctions(), llvm::AsmPrinter::preprocessXXStructorList(), llvm::BitcodeAnalyzer::printStats(), rebuildLoopAfterUnswitch(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::BalancedPartitioning::run(), llvm::sampleprof::SampleSorter< LocationT, SampleT >::SampleSorter(), llvm::SwingSchedulerDAG::schedule(), sinkLoopInvariantInstructions(), llvm::InstrProfValueSiteRecord::sortByCount(), llvm::sampleprof::sortFuncProfiles(), llvm::object::ELFFile< ELFT >::toMappedAddr(), llvm::HexagonShuffler::tryAuction(), llvm::InstCombinerImpl::tryToSinkInstructionDbgVariableRecords(), tryToVectorizeSequence(), llvm::HexagonShuffler::ValidResourceUsage(), llvm::objcopy::elf::BinaryWriter::write(), llvm::mcdxbc::Signature::write(), and llvm::coverage::CoverageMappingWriter::write().
void llvm::stable_sort | ( | R && | Range, |
Compare | C | ||
) |
Definition at line 2042 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
stable_hash llvm::stableHashValue | ( | const MachineBasicBlock & | MBB | ) |
Definition at line 227 of file MachineStableHash.cpp.
References MBB, MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), stable_hash_combine(), and stableHashValue().
stable_hash llvm::stableHashValue | ( | const MachineFunction & | MF | ) |
Definition at line 235 of file MachineStableHash.cpp.
References MBB, llvm::SmallVectorTemplateBase< T, bool >::push_back(), stable_hash_combine(), and stableHashValue().
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().
stable_hash llvm::stableHashValue | ( | const MachineOperand & | MO | ) |
Definition at line 59 of file MachineStableHash.cpp.
References assert(), llvm::APFloat::bitcastToAPInt(), 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::Value::getName(), llvm::MCSymbol::getName(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::getParent(), llvm::MachineBasicBlock::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::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, Name, llvm::SmallVectorTemplateBase< T, bool >::push_back(), stable_hash_combine(), stable_hash_name(), StructuralHash(), transform(), and TRI.
Referenced by getMatchedEntries(), and stableHashValue().
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 | |||
) |
llvm::STATISTIC | ( | NumAllocas | , |
"Total number of allocas" | |||
) |
llvm::STATISTIC | ( | NumFunctions | , |
"Total number of functions" | |||
) |
llvm::STATISTIC | ( | NumUnsafeByValArguments | , |
"Number of unsafe byval arguments" | |||
) |
llvm::STATISTIC | ( | NumUnsafeDynamicAllocas | , |
"Number of unsafe dynamic allocas" | |||
) |
llvm::STATISTIC | ( | NumUnsafeStackFunctions | , |
"Number of functions with unsafe stack" | |||
) |
llvm::STATISTIC | ( | NumUnsafeStackRestorePoints | , |
"Number of setjmps and landingpads" | |||
) |
llvm::STATISTIC | ( | NumUnsafeStackRestorePointsFunctions | , |
"Number of functions that use setjmp or exceptions" | |||
) |
llvm::STATISTIC | ( | NumUnsafeStaticAllocas | , |
"Number of unsafe static allocas" | |||
) |
|
constexpr |
Definition at line 163 of file SPIRVUtils.h.
References report_fatal_error().
Referenced by buildBuiltinVariableLoad(), buildEnqueueKernel(), getAS(), getOrCreateSPIRVDeviceEventPointer(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVPointerType(), and propagateSPIRVType().
StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst with the integer held in IntVal.
Definition at line 3024 of file APInt.cpp.
References assert(), and llvm::sys::IsLittleEndianHost.
Referenced by llvm::MCStreamer::emitIntValue(), and llvm::ExecutionEngine::StoreValueToMemory().
|
static |
Returns true if A and B have same pointer operands or same SCEVs addresses.
Definition at line 438 of file LoopVectorizationLegality.cpp.
References A, B, and llvm::ScalarEvolution::getSCEV().
Definition at line 20 of file OptionStrCmp.cpp.
Referenced by StrCmpOptionPrefixes().
Definition at line 35 of file OptionStrCmp.cpp.
References StrCmpOptionName(), and zip().
bool llvm::streamFile | ( | HTTPServerRequest & | Request, |
StringRef | FilePath | ||
) |
Sets the response to stream the file at FilePath, if available, and otherwise an HTTP 404 error response.
Definition at line 37 of file HTTPServer.cpp.
References llvm::sys::fs::closeFile(), consumeError(), errorCodeToError(), llvm::MemoryBuffer::getBuffer(), llvm::MemoryBuffer::getBufferSize(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getOpenFile(), Length, Offset, llvm::sys::fs::openNativeFileForRead(), llvm::HTTPServerRequest::setResponse(), substr(), Success, and llvm::Expected< T >::takeError().
|
inlinestatic |
Definition at line 128 of file VE.h.
References llvm::StringSwitch< T, R >::Case(), llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, llvm::StringSwitch< T, R >::Default(), and llvm::VECC::UNKNOWN.
Referenced by parseCC().
|
inlinestatic |
Definition at line 114 of file VE.h.
References llvm::StringSwitch< T, R >::Case(), llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm::StringSwitch< T, R >::Default(), and llvm::VECC::UNKNOWN.
Referenced by parseCC().
|
inlinestatic |
Definition at line 283 of file VE.h.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), llvm::VERD::RD_NONE, llvm::VERD::RD_RA, llvm::VERD::RD_RM, llvm::VERD::RD_RN, llvm::VERD::RD_RP, llvm::VERD::RD_RZ, and llvm::VERD::UNKNOWN.
Referenced by parseRD().
Strip out all of the metadata and debug info inserted by debugify.
If no llvm.debugify module-level named metadata is present, this is a no-op. Returns true if any change was made.
Definition at line 244 of file Debugify.cpp.
References llvm::NamedMDNode::addOperand(), assert(), llvm::NamedMDNode::clearOperands(), llvm::Function::eraseFromParent(), llvm::NamedMDNode::eraseFromParent(), llvm::NamedMDNode::getNumOperands(), llvm::GlobalValue::isDeclaration(), llvm::NamedMDNode::operands(), StripDebugInfo(), and llvm::Value::use_empty().
Definition at line 569 of file DebugInfo.cpp.
References F, I, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), make_early_inc_range(), and stripDebugLocFromLoopID().
Referenced by fixupDebugInfoPostExtraction(), and StripDebugInfo().
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 608 of file DebugInfo.cpp.
References F, make_early_inc_range(), and stripDebugInfo().
Referenced by LLVMStripModuleDebugInfo(), llvm::StripSymbolsPass::run(), stripDebugifyMetadata(), UpgradeDebugInfo(), and verifyLoadedModule().
Definition at line 287 of file InstrProf.cpp.
References llvm::sys::path::is_separator(), and llvm::StringRef::substr().
Referenced by getStrippedSourceFileName().
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 843 of file DebugInfo.cpp.
References DL, F, get(), llvm::MDNode::get(), llvm::NamedMDNode::getName(), I, Name, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and updateLoopMetadataDebugLocations().
Referenced by llvm::StripNonLineTableDebugInfoPass::run().
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.
References Name.
Referenced by getNames(), and llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::save().
stable_hash llvm::StructuralHash | ( | const Function & | F, |
bool | DetailedHash = false |
||
) |
Returns a hash of the function F
.
F | The function to hash. |
DetailedHash | Whether 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.
Referenced by llvm::PreservedCFGCheckerInstrumentation::registerCallbacks(), PreservedFunctionHashAnalysis::run(), PreservedModuleHashAnalysis::run(), llvm::StructuralHashPrinterPass::run(), and stableHashValue().
stable_hash llvm::StructuralHash | ( | const GlobalVariable & | G | ) |
Returns a hash of the global variable G
.
Definition at line 335 of file StructuralHash.cpp.
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.
M | The module to hash. |
DetailedHash | Whether 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.
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.
F | The function to hash. |
IgnoreOp | A callable that takes an instruction and an operand index, and returns true if the operand should be ignored in the hash computation. |
Definition at line 346 of file StructuralHash.cpp.
Referenced by llvm::GlobalMergeFunc::analyze(), llvm::GlobalMergeFunc::merge(), and llvm::StructuralHashPrinterPass::run().
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 ocurred.
Definition at line 729 of file MathExtras.h.
Referenced by llvm::detail::CheckedInt::operator-(), llvm::DynamicAPInt::operator-(), llvm::DynamicAPInt::operator-=(), llvm::InstructionCost::operator-=(), and llvm::ConstraintSystem::toStrictLessThan().
|
inline |
Definition at line 268 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
Definition at line 271 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
|
inline |
Definition at line 1382 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::succ_begin().
|
inline |
|
inline |
Definition at line 249 of file RegionIterator.h.
Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::BlkSucc_begin(), CanPropagatePredecessorsForPHIs(), llvm::GraphTraits< BlockFrequencyInfo * >::child_begin(), llvm::GraphTraits< PGOUseFunc * >::child_begin(), llvm::GraphTraits< BasicBlock * >::child_begin(), llvm::GraphTraits< const BasicBlock * >::child_begin(), llvm::LoopBodyTraits::child_begin(), llvm::LoopBodyTraits::child_end(), createFoldedExitCond(), createInvariantCond(), eraseDeadBBsAndChildren(), FindFunctionBackedges(), llvm::FunctionPropertiesUpdater::finish(), llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::DOTGraphTraits< DOTFuncInfo * >::getEdgeSourceLabel(), hasPartialIVCondition(), isPotentiallyReachable(), isReachableImpl(), IsValueFullyAvailableInBlock(), MergeBlockIntoPredecessor(), safeToMergeTerminators(), SplitBlockAndInsertIfThenElse(), succ_empty(), succ_size(), successors(), and tryToMergeLandingPad().
|
inline |
Definition at line 280 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 255 of file CFG.h.
References I, succ_begin(), and succ_end().
Referenced by FindFunctionBackedges(), getOutliningPenalty(), isFullDominator(), MergeBlockIntoPredecessor(), llvm::InstCombinerImpl::run(), llvm::SelectionDAGISel::runOnMachineFunction(), tailMergeBlocksWithSimilarFunctionTerminators(), TryToSimplifyUncondBranchFromEmptyBlock(), and tryWidenCondBranchToCondBranch().
|
inline |
Definition at line 274 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
Definition at line 277 of file CFG.h.
References llvm::BasicBlock::getTerminator().
|
inline |
|
inline |
Definition at line 1384 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::succ_end().
|
inline |
|
inline |
Definition at line 254 of file RegionIterator.h.
Referenced by llvm::SSAUpdaterTraits< SSAUpdater >::BlkSucc_end(), llvm::LoopBodyTraits::child_begin(), llvm::GraphTraits< BlockFrequencyInfo * >::child_end(), llvm::GraphTraits< PGOUseFunc * >::child_end(), llvm::GraphTraits< BasicBlock * >::child_end(), llvm::GraphTraits< const BasicBlock * >::child_end(), llvm::LoopBodyTraits::child_end(), eraseDeadBBsAndChildren(), FindFunctionBackedges(), llvm::FunctionPropertiesUpdater::finish(), llvm::FunctionPropertiesUpdater::FunctionPropertiesUpdater(), llvm::BranchProbabilityInfo::getEdgeProbability(), hasPartialIVCondition(), isPotentiallyReachable(), isReachableImpl(), IsValueFullyAvailableInBlock(), MergeBlockIntoPredecessor(), llvm::RNSuccIterator< FlatIt< NodeRef >, BlockT, RegionT >::operator++(), safeToMergeTerminators(), SplitBlockAndInsertIfThenElse(), succ_empty(), succ_size(), successors(), and tryToMergeLandingPad().
|
inline |
Definition at line 283 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 258 of file CFG.h.
References I, succ_begin(), and succ_end().
|
inline |
Definition at line 1380 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::succ_size().
Referenced by llvm::GenericCycle< ContextT >::getCyclePreheader(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::GenericSyncDependenceAnalysis< ContextT >::getJoinBlocks(), MergeBlockIntoPredecessor(), and SplitBlockImpl().
|
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().
|
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::FailureOr< T >::operator LogicalResult(), and llvm::ParseResult::ParseResult().
|
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 Y.
|
inline |
Definition at line 286 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 289 of file CFG.h.
References succ_begin(), and succ_end().
|
inline |
Definition at line 264 of file CFG.h.
References I, succ_begin(), and succ_end().
|
inline |
Definition at line 1376 of file MachineBasicBlock.h.
References llvm::MachineBasicBlock::successors().
Referenced by llvm::LoopSafetyInfo::allLoopPathsLeadToBlock(), allPathsGoThroughCold(), analyzeLoopUnrollCost(), llvm::CanonicalLoopInfo::assertOK(), buildClonedLoopBlocks(), calculateCXXStateForAsynchEH(), calculateSEHStateForAsynchEH(), CalculateUnswitchCostMultiplier(), canProveExitOnFirstIteration(), canReturn(), llvm::PreservedCFGCheckerInstrumentation::CFG::CFG(), llvm::MemorySSAUpdater::changeToUnreachable(), changeToUnreachable(), CloneAndPruneIntoFromInst(), llvm::OpenMPIRBuilder::OutlineInfo::collectBlocks(), collectInstructionsInBetween(), colorEHFunclets(), llvm::InstCombiner::computeBackEdges(), computeEHOnlyBlocks(), llvm::DivergencePropagator< ContextT >::computeJoinPoints(), computeLiveInValues(), computeLiveOutSeed(), computeUnlikelySuccessors(), ConnectEpilog(), ConnectProlog(), ConstantFoldTerminator(), llvm::VPRecipeBuilder::createSwitchEdgeMasks(), createUnreachableSwitchDefault(), 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(), llvm::GenericCycle< ContextT >::getExitingBlocks(), llvm::MachineLoop::getLoopID(), 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(), remapIndices(), llvm::MemorySSAUpdater::removeBlocks(), llvm::SCCPSolver::removeNonFeasibleEdges(), rewriteMemOpOfSelect(), llvm::PlaceSafepointsPass::runImpl(), runMoveAutoInit(), safeToMergeTerminators(), scanOneBB(), simplifyOneLoop(), llvm::VPBasicBlock::splitAt(), SplitBlockImpl(), SplitIndirectBrCriticalEdges(), SplitKnownCriticalEdge(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), UnrollLoop(), UnrollRuntimeLoopRemainder(), updateSuccessor(), llvm::GenericConvergenceVerifier< ContextT >::verify(), and willLeaveFunctionImmediatelyAfter().
|
inline |
Definition at line 261 of file CFG.h.
References I, succ_begin(), and succ_end().
cl::opt< bool > llvm::SupportsHotColdNew | ( | "supports-hot-cold-new" | , |
cl::init(false) | , | ||
cl::Hidden | , | ||
cl::desc("Linking with hot/cold operator new interfaces") | |||
) |
Definition at line 101 of file VECustomDAG.cpp.
References isMaskType(), isPackedVectorType(), and llvm::VEISD::VEC_BROADCAST.
Referenced by llvm::VETargetLowering::legalizeInternalVectorOp().
cl::opt< bool > llvm::SwpEnableCopyToPhi | ( | "pipeliner-enable-copytophi" | , |
cl::ReallyHidden | , | ||
cl::init(true) | , | ||
cl::desc("Enable CopyToPhi DAG Mutation") | |||
) |
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.
|
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 568 of file ARMBaseInstrInfo.h.
References llvm::MachineOperand::CreateReg(), and isDead().
Referenced by emitPostLd(), emitPostSt(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), and insertSEH().
int llvm::TableGenMain | ( | const char * | argv0, |
std::function< TableGenMainFn > | MainFn = nullptr |
||
) |
Definition at line 99 of file Main.cpp.
References llvm::SourceMgr::AddNewSourceBuffer(), llvm::TableGen::Emitter::ApplyCallback(), createDependencyFile(), DependFilename, ErrorsPrinted, llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), llvm::MemoryBuffer::getFileOrSTDIN(), IncludeDirs, InputFilename, llvm::ToolOutputFile::keep(), MacroNames, NoWarnOnUnusedTemplateArgs, llvm::sys::fs::OF_Text, llvm::ToolOutputFile::os(), OutputFilename, llvm::TGParser::ParseFile(), reportError(), llvm::SourceMgr::setIncludeDirs(), SrcMgr, llvm::Timer::startTimer(), llvm::Timer::stopTimer(), TimePhases, and WriteIfChanged.
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(), llvm::SourceMgr::getMainFileID(), llvm::SourceMgr::getMemoryBuffer(), llvm::SourceMgr::setDiagHandler(), llvm::SourceMgr::setIncludeDirs(), SrcMgr, and llvm::SourceMgr::takeSourceBuffersFrom().
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.
void llvm::thinLTOFinalizeInModule | ( | Module & | TheModule, |
const GVSummaryMapTy & | DefinedGlobals, | ||
bool | PropagateAttrs | ||
) |
Based on the information recorded in the summaries during global summary-based analysis:
TheModule
TheModule
if PropagateAttrs is true Definition at line 1615 of file FunctionImport.cpp.
References llvm::Module::aliases(), assert(), llvm::GlobalValue::AvailableExternallyLinkage, llvm::CallingConv::C, llvm::GlobalValue::canBeOmittedFromSymbolTable(), convertToDeclaration(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), dbgs(), llvm::GlobalValue::DefaultVisibility, 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().
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 541 of file LTO.cpp.
References I, and thinLTOInternalizeAndPromoteGUID().
Referenced by llvm::ThinLTOCodeGenerator::internalize(), llvm::ThinLTOCodeGenerator::promote(), and llvm::ThinLTOCodeGenerator::run().
void llvm::thinLTOInternalizeModule | ( | Module & | TheModule, |
const GVSummaryMapTy & | DefinedGlobals | ||
) |
Internalize TheModule
based on the information recorded in the summaries during global summary-based analysis.
Run internalization on TheModule
based on symmary analysis.
Definition at line 1743 of file FunctionImport.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::GlobalValue::getGlobalIdentifier(), llvm::GlobalValue::getGUID(), llvm::ModuleSummaryIndex::getOriginalNameBeforePromote(), llvm::Module::getSourceFileName(), internalizeModule(), llvm::GlobalValue::InternalLinkage, and llvm::GlobalValue::isLocalLinkage().
Referenced by llvm::ThinLTOCodeGenerator::internalize(), ProcessThinLTOModule(), and llvm::lto::thinBackend().
bool llvm::thinLTOPropagateFunctionAttrs | ( | ModuleSummaryIndex & | Index, |
function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> | isPrevailing | ||
) |
Propagate function attributes for function summaries along the index's callgraph during thinlink.
Definition at line 406 of file FunctionAttrs.cpp.
References calculatePrevailingSummary(), llvm::FunctionSummary::calls(), dbgs(), DisableThinLTOPropagation, llvm::FunctionSummary::fflags(), I, LLVM_DEBUG, llvm::FunctionSummary::FFlags::MayThrow, llvm::FunctionSummary::FFlags::NoRecurse, llvm::FunctionSummary::FFlags::NoUnwind, and scc_begin().
Referenced by llvm::ThinLTOCodeGenerator::run().
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 440 of file LTO.cpp.
References llvm::CallingConv::C, I, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), and thinLTOResolvePrevailingGUID().
Referenced by resolvePrevailingInIndex().
void llvm::timeTraceAddInstantEvent | ( | StringRef | Name, |
llvm::function_ref< std::string()> | Detail | ||
) |
Definition at line 485 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::insert(), Name, and TimeTraceProfilerInstance.
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 llvm::TimeTraceProfiler::begin(), Name, and TimeTraceProfilerInstance.
TimeTraceProfilerEntry * llvm::timeTraceProfilerBegin | ( | StringRef | Name, |
llvm::function_ref< std::string()> | Detail | ||
) |
Definition at line 459 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::begin(), Name, and TimeTraceProfilerInstance.
TimeTraceProfilerEntry * llvm::timeTraceProfilerBegin | ( | StringRef | Name, |
llvm::function_ref< TimeTraceMetadata()> | MetaData | ||
) |
Definition at line 468 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::begin(), Name, and TimeTraceProfilerInstance.
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 llvm::TimeTraceProfiler::begin(), Name, and TimeTraceProfilerInstance.
Referenced by llvm::ThinLTOCodeGenerator::run().
void llvm::timeTraceProfilerCleanup | ( | ) |
Cleanup the time trace profiler, if it was initialized.
Definition at line 403 of file TimeProfiler.cpp.
References TimeTraceProfilerInstance.
|
inline |
Is the time trace profiler enabled, i.e. initialized?
Definition at line 129 of file TimeProfiler.h.
References getTimeTraceProfilerInstance().
Referenced by llvm::ThinLTOCodeGenerator::run().
void llvm::timeTraceProfilerEnd | ( | ) |
Manually end the last time section.
Definition at line 491 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::end(), and TimeTraceProfilerInstance.
Referenced by llvm::ThinLTOCodeGenerator::run(), and llvm::TimeTraceScope::~TimeTraceScope().
void llvm::timeTraceProfilerEnd | ( | TimeTraceProfilerEntry * | E | ) |
Definition at line 496 of file TimeProfiler.cpp.
References llvm::TimeTraceProfiler::end(), and TimeTraceProfilerInstance.
void llvm::timeTraceProfilerFinishThread | ( | ) |
Finish a time trace profiler running on a worker thread.
Definition at line 416 of file TimeProfiler.cpp.
References TimeTraceProfilerInstance.
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.
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(), OS, TimeTraceProfilerInstance, and llvm::TimeTraceProfiler::write().
Referenced by timeTraceProfilerWrite().
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, OS, llvm::StringRef::str(), llvm::Error::success(), TimeTraceProfilerInstance, and timeTraceProfilerWrite().
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 2586 of file STLExtras.h.
References P.
Definition at line 2587 of file STLExtras.h.
References P.
Definition at line 85 of file ScopedPrinter.h.
Referenced by ComputeASanStackFrameDescription(), llvm::CodeGenCoverage::emit(), llvm::object::WindowsResourceParser::TreeNode::print(), llvm::ScopedPrinter::printList(), llvm::ScopedPrinter::printNumber(), llvm::ScopedPrinter::printObject(), and readSection().
|
constexpr |
Returns underlying integer value of an enum.
Backport of C++23 std::to_underlying.
Definition at line 66 of file STLForwardCompat.h.
References E.
Referenced by llvm::dxil::ResourceTypeInfo::createElementStruct(), llvm::memprof::PortableMemInfoBlock::deserialize(), llvm::pdb::formatTypeLeafKind(), llvm::pdb::formatUnknownEnum(), llvm::dxil::ResourceBindingInfo::getAnnotateProps(), llvm::dxil::ResourceBindingInfo::getAsMetadata(), llvm::sys::getSwappedBytes(), llvm::memprof::PortableMemInfoBlock::PortableMemInfoBlock(), llvm::FoldingSetTrait< T, std::enable_if_t< std::is_enum< T >::value > >::Profile(), llvm::dxil::DXILOpBuilder::tryCreateOp(), and llvm::BitmaskEnumDetail::Underlying().
SmallVector< ValueTypeFromRangeType< R >, Size > llvm::to_vector | ( | R && | Range | ) |
Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector.
This is useful, for example, when you want to iterate a range and then sort the results.
Definition at line 1299 of file SmallVector.h.
References Range, and to_vector().
Referenced by llvm::ARMTargetLowering::createComplexDeinterleavingIR(), filter_to_vector(), llvm::VPBlockUtils::insertBlockBefore(), map_to_vector(), MergeBlockIntoPredecessor(), mergeBlocksIntoPredecessors(), llvm::VPBlockUtils::reassociateBlocks(), to_vector(), transformRecipestoEVLRecipes(), and UnrollLoop().
SmallVector< ValueTypeFromRangeType< R > > llvm::to_vector | ( | R && | Range | ) |
Definition at line 1303 of file SmallVector.h.
References Range, and to_vector().
SmallVector< Out, Size > llvm::to_vector_of | ( | R && | Range | ) |
Definition at line 1308 of file SmallVector.h.
References Range, and to_vector_of().
Referenced by to_vector_of().
SmallVector< Out > llvm::to_vector_of | ( | R && | Range | ) |
Definition at line 1312 of file SmallVector.h.
References Range, and to_vector_of().
|
inline |
Definition at line 147 of file AtomicOrdering.h.
References acq_rel, acquire, consume, lookup(), relaxed, release, and seq_cst.
Referenced by llvm::AtomicInfo::EmitAtomicLoadLibcall().
|
inline |
String used by LLVM IR to represent atomic ordering.
Definition at line 82 of file AtomicOrdering.h.
Referenced by llvm::MachineMemOperand::print().
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().
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 64 of file VectorTypeUtils.h.
References llvm::Type::getScalarType(), and toScalarizedStructTy().
|
inline |
Definition at line 67 of file DWARFUnitIndex.h.
References DW_SECT_EXT_LOC, DW_SECT_EXT_MACINFO, DW_SECT_EXT_TYPES, DW_SECT_EXT_unknown, and llvm_unreachable.
Referenced by addConstantComments(), llvm::ThinLTOCodeGenerator::addModule(), llvm::SpecialCaseList::addSection(), APIntToHexString(), llvm::DWARFUnit::collectAddressRanges(), llvm::RuntimeDyldImpl::computeSectionStubBufSize(), createError(), llvm::LTOModule::createInputFile(), decodeBBAddrMapImpl(), dumpResult(), llvm::DWARFYAML::emitDebugAddr(), llvm::DWARFYAML::emitDebugAranges(), llvm::DWARFYAML::emitDebugRanges(), llvm::AMDGPUTargetELFStreamer::EmitISAVersion(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), llvm::cl::expandResponseFiles(), llvm::cl::ExpandResponseFiles(), llvm::DWARFDebugNames::Header::extract(), llvm::DWARFDebugPubTable::extract(), llvm::DWARFDebugArangeSet::extract(), llvm::DWARFListTableHeader::extract(), llvm::DWARFDebugAddrTable::extractV5(), llvm::RuntimeDyldELF::finalizeLoad(), llvm::orc::EPCGenericRTDyldMemoryManager::finalizeMemory(), 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(), localCache(), llvm::LTOCodeGenerator::optimize(), llvm::SpecialCaseList::parse(), llvm::DWARFDebugLine::Prologue::parse(), parseInfoSectionUnitHeader(), parseModule(), parseV5EntryFormat(), llvm::SpillPlacement::BlockConstraint::print(), llvm::object::WasmSymbol::print(), llvm::WebAssemblyInstPrinter::printOperand(), promoteIndirectCalls(), readBBAddrMapImpl(), readDynsymVersionsImpl(), llvm::BitstreamCursor::readRecord(), llvm::object::XCOFFObjectFile::relocations(), llvm::orc::EPCGenericRTDyldMemoryManager::reserveAllocationSpace(), llvm::RuntimeDyldImpl::resolveRelocations(), llvm::ThinLTOCodeGenerator::run(), llvm::CtxProfAnalysis::run(), runNewPMPasses(), llvm::object::ELFObjectFile< ELFT >::section_rel_begin(), SPIRVTranslateModule(), llvm::lto::thinBackend(), llvm::TensorSpec::toJSON(), llvm::orc::shared::detail::toSPSSerializable(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), llvm::DWARFVerifier::verifyDebugStrOffsets(), llvm::objcopy::elf::ELFSectionWriter< ELFT >::visit(), writeDIE(), llvm::ifs::writeELFBinaryToFile(), writeListEntryAddress(), and llvm::yaml::yaml2ObjectFile().
std::string llvm::toString | ( | Error | E | ) |
StringRef llvm::toString | ( | TensorType | TT | ) |
Definition at line 46 of file TensorSpec.cpp.
References TensorTypeNames.
Like toString(), but does not consume the error.
This can be used to print a warning while retaining the original error object.
|
static |
Definition at line 463 of file APFloat.cpp.
References createError(), decDigitValue(), and value.
|
inline |
Definition at line 362 of file SPIRVUtils.h.
References llvm::FunctionType::get(), llvm::FunctionType::getReturnType(), isUntypedPointerTy(), llvm::FunctionType::isVarArg(), llvm::FunctionType::params(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RetTy, and toTypedPointer().
Referenced by unifyPtrType().
Definition at line 353 of file SPIRVUtils.h.
References applyWrappers(), llvm::TypedPointerType::get(), llvm::Type::getContext(), llvm::Type::getInt8Ty(), getPointerAddressSpace(), and isUntypedPointerTy().
Referenced by getArgSPIRVType(), getMDOperandAsType(), llvm::SPIRVCallLowering::lowerFormalArguments(), propagateSPIRVType(), toTypedFunPointer(), and unifyPtrType().
Type * llvm::toVectorizedStructTy | ( | StructType * | StructTy, |
ElementCount | EC | ||
) |
A helper for converting structs of scalar types to structs of vector types.
Note:
EC
is scalar, StructTy
is returned unchangedNote: 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(), and map_to_vector().
Referenced by toVectorizedTy().
|
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:
EC
is scalar, Ty
is returned unchangedDefinition at line 54 of file VectorTypeUtils.h.
References toVectorizedStructTy(), and toVectorTy().
Referenced by llvm::VFABI::createFunctionType().
|
inline |
A helper function for converting Scalar types to vector types.
If the incoming type is void, we return void. If the EC represents a scalar, we return the scalar type.
Definition at line 19 of file VectorTypeUtils.h.
References llvm::VectorType::get().
Referenced by llvm::VPWidenRecipe::computeCost(), llvm::VPWidenCastRecipe::computeCost(), llvm::VPWidenIntrinsicRecipe::computeCost(), llvm::VPWidenSelectRecipe::computeCost(), llvm::VPFirstOrderRecurrencePHIRecipe::computeCost(), llvm::VPBlendRecipe::computeCost(), llvm::VPInterleaveRecipe::computeCost(), llvm::VPReductionRecipe::computeCost(), llvm::VPWidenMemoryRecipe::computeCost(), llvm::VPWidenLoadEVLRecipe::computeCost(), llvm::VPWidenStoreEVLRecipe::computeCost(), llvm::LoopVectorizationCostModel::getDivRemSpeculationCost(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::LoopVectorizationCostModel::isOptimizableIVTruncate(), llvm::LoopVectorizationCostModel::setVectorizedCallDecision(), toVectorizedTy(), toVectorTy(), and willGenerateVectors().
Definition at line 25 of file VectorTypeUtils.h.
References llvm::ElementCount::getFixed(), and toVectorTy().
|
static |
Definition at line 625 of file APFloat.cpp.
References createError(), lfExactlyHalf, lfExactlyZero, lfLessThanHalf, and lfMoreThanHalf.
OutputIt llvm::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.
Definition at line 1952 of file STLExtras.h.
References adl_begin(), adl_end(), F, and Range.
Referenced by analyzeLoopUnrollCost(), APIntToHexString(), expandBounds(), llvm::MemoryDepChecker::getInstructionsForAccess(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), llvm::RISCVTTIImpl::getShuffleCost(), lowerBuildVectorViaDominantValues(), LowerVectorArith(), tomp::makeList(), llvm::xray::profileFromTrace(), readWideAPInt(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), simplifyInstructionWithOperands(), and stableHashValue().
void llvm::transformGlobalCtors | ( | Module & | M, |
const GlobalCtorTransformFn & | Fn | ||
) |
Definition at line 117 of file ModuleUtils.cpp.
References transformGlobalArray().
void llvm::transformGlobalDtors | ( | Module & | M, |
const GlobalCtorTransformFn & | Fn | ||
) |
Definition at line 121 of file ModuleUtils.cpp.
References transformGlobalArray().
auto llvm::transformOptional | ( | const std::optional< T > & | O, |
const Function & | F | ||
) | -> std::optional<decltype(F(*O))> |
Definition at line 46 of file STLForwardCompat.h.
References F.
auto llvm::transformOptional | ( | std::optional< T > && | O, |
const Function & | F | ||
) | -> std::optional<decltype(F(*std::move(O)))> |
Definition at line 56 of file STLForwardCompat.h.
References F.
|
static |
Definition at line 181 of file SectionMemoryManager.cpp.
References llvm::sys::MemoryBlock::allocatedSize(), assert(), llvm::sys::MemoryBlock::base(), llvm::sys::Process::getPageSizeEstimate(), and PageSize.
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 521 of file Delinearization.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), getIndexExpressionsFromGEP(), getLoadStorePointerOperand(), llvm::ScalarEvolution::getPointerBase(), llvm::SCEVUnknown::getValue(), llvm::SmallVectorBase< Size_T >::size(), and llvm::Value::stripPointerCasts().
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.
Definition at line 1532 of file Local.cpp.
References DL.
Referenced by getOrEnforceKnownAlignment(), and inferAlignment().
bool llvm::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.
This can save a few bytes per function in code-size, but obviously generates more memory traffic. As such, it only takes effect in functions being optimised for size.
Definition at line 2525 of file ARMBaseInstrInfo.cpp.
References llvm::MachineInstrBuilder::add(), assert(), llvm::MachineOperand::CreateReg(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::TargetRegisterClass::getRegister(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::ARMSubtarget::hasMinSize(), isCalleeSavedRegister(), llvm::MachineOperand::isImplicit(), isPopOpcode(), isPushOpcode(), llvm::MachineOperand::isReg(), llvm::MachineBasicBlock::LQR_Dead, MI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), reverse(), and TRI.
Referenced by llvm::ARMFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitPrologue(), and llvm::Thumb1FrameLowering::emitPrologue().
bool llvm::tryGreater | ( | int | TryVal, |
int | CandVal, | ||
GenericSchedulerBase::SchedCandidate & | TryCand, | ||
GenericSchedulerBase::SchedCandidate & | Cand, | ||
GenericSchedulerBase::CandReason | Reason | ||
) |
Definition at line 3186 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::SchedCandidate::Reason.
Referenced by llvm::PostGenericScheduler::tryCandidate(), llvm::PPCPostRASchedStrategy::tryCandidate(), llvm::GenericScheduler::tryCandidate(), llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), llvm::PPCPreRASchedStrategy::tryCandidate(), tryLatency(), and tryPressure().
bool llvm::tryLatency | ( | GenericSchedulerBase::SchedCandidate & | TryCand, |
GenericSchedulerBase::SchedCandidate & | Cand, | ||
SchedBoundary & | Zone | ||
) |
Definition at line 3202 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::BotHeightReduce, llvm::GenericSchedulerBase::BotPathReduce, llvm::SUnit::getDepth(), llvm::SUnit::getHeight(), llvm::SchedBoundary::getScheduledLatency(), llvm::SchedBoundary::isTop(), llvm::GenericSchedulerBase::SchedCandidate::SU, llvm::GenericSchedulerBase::TopDepthReduce, llvm::GenericSchedulerBase::TopPathReduce, tryGreater(), and tryLess().
Referenced by llvm::PostGenericScheduler::tryCandidate(), llvm::PPCPostRASchedStrategy::tryCandidate(), llvm::GenericScheduler::tryCandidate(), llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), and llvm::PPCPreRASchedStrategy::tryCandidate().
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 3170 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::SchedCandidate::Reason.
Referenced by llvm::PostGenericScheduler::tryCandidate(), llvm::PPCPostRASchedStrategy::tryCandidate(), llvm::GenericScheduler::tryCandidate(), llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), llvm::PPCPreRASchedStrategy::tryCandidate(), tryLatency(), and tryPressure().
bool llvm::tryPressure | ( | const PressureChange & | TryP, |
const PressureChange & | CandP, | ||
GenericSchedulerBase::SchedCandidate & | TryCand, | ||
GenericSchedulerBase::SchedCandidate & | Cand, | ||
GenericSchedulerBase::CandReason | Reason, | ||
const TargetRegisterInfo * | TRI, | ||
const MachineFunction & | MF | ||
) |
Definition at line 3389 of file MachineScheduler.cpp.
References llvm::GenericSchedulerBase::SchedCandidate::AtTop, llvm::PressureChange::getPSetOrMax(), llvm::PressureChange::getUnitInc(), llvm::PressureChange::isValid(), std::swap(), TRI, tryGreater(), and tryLess().
Referenced by llvm::GenericScheduler::tryCandidate(), llvm::GCNMaxILPSchedStrategy::tryCandidate(), llvm::GCNMaxMemoryClauseSchedStrategy::tryCandidate(), and llvm::PPCPreRASchedStrategy::tryCandidate().
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, 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(), llvm::GlobalVariable::isConstant(), isLegalToPromote(), llvm::Type::isPointerTy(), promoteCall(), and llvm::Value::stripAndAccumulateConstantOffsets().
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.
Definition at line 1156 of file Local.cpp.
References llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::BasicBlock::back(), llvm::BasicBlock::begin(), CanPropagatePredecessorsForPHIs(), CanRedirectPredsOfEmptyBBToSucc(), llvm::SmallPtrSetImplBase::clear(), llvm::SmallPtrSetImpl< PtrType >::contains(), dbgs(), DeleteDeadBlock(), llvm::Instruction::eraseFromParent(), 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::SmallPtrSetImpl< PtrType >::insert(), introduceTooManyPhiEntries(), LLVM_DEBUG, pred_begin(), pred_end(), pred_size(), predecessors(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), redirectValuesFromPredecessorsToPhi(), llvm::Value::replaceAllUsesWith(), llvm::Value::replaceUsesWithIf(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase< Size_T >::size(), llvm::BasicBlock::splice(), succ_empty(), and llvm::Value::takeName().
Referenced by llvm::JumpThreadingPass::runImpl().
|
static |
Definition at line 726 of file APFloat.cpp.
References assert(), count(), and llvm::APFloatBase::integerPartWidth.
Return a uniformly distributed random value between Min
and Max
.
Definition at line 21 of file Random.h.
Referenced by llvm::RandomIRBuilder::newSink().
Definition at line 380 of file SPIRVUtils.h.
References toTypedFunPointer(), and toTypedPointer().
Referenced by llvm::SPIRVGeneralDuplicatesTracker::add(), and llvm::SPIRVGeneralDuplicatesTracker::find().
Wrapper function around std::unique to allow calling unique on a container without having to specify the begin/end iterators.
Definition at line 2061 of file STLExtras.h.
References adl_begin(), and adl_end().
Definition at line 2055 of file STLExtras.h.
References adl_begin(), adl_end(), and P.
Referenced by checkVectorTypesForPromotion(), collectContributionData(), llvm::mca::RegisterFile::collectWrites(), llvm::AccelTableBase::computeBucketCount(), llvm::IntervalTree< PointT, ValueT, DataT >::create(), llvm::memprof::extractCallsFromIR(), llvm::AccelTableBase::finalize(), findArrayDimensions(), llvm::IndexedMemProfReader::getMemProfCallerCalleePairs(), llvm::coverage::CoverageMapping::getUniqueSourceFiles(), lowerV16I8Shuffle(), lowerV8I16GeneralSingleInputShuffle(), relocationViaAlloca(), llvm::orc::SymbolLookupSet::removeDuplicates(), replaceConstantExprOp(), llvm::PlaceSafepointsPass::runImpl(), sortGlobalExprs(), and llvm::DebugLocEntry::sortUniqueValues().
|
inline |
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.
|
inline |
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 874 of file VectorUtils.cpp.
References addToAccessGroupList(), llvm::MDNode::get(), and llvm::MDNode::getContext().
Referenced by PropagateCallSiteMetadata().
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 - Return the worst case padding that could result from unknown offset bits.
This does not include alignment padding caused by known offset bits.
Alignment | alignment |
KnownBits | Number of known low offset bits. |
Definition at line 33 of file ARMBasicBlockInfo.h.
References Log2(), and llvm::Align::value().
Referenced by llvm::BasicBlockInfo::postOffset().
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::BasicBlock::back(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::LoopBlocksDFS::beginRPO(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, 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(), 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(), llvm::Loop::isLoopSimplifyForm(), llvm::Loop::isRecursivelyLCSSAForm(), llvm::BranchInst::isUnconditional(), LLVM_DEBUG, llvm_unreachable, MergeBlockSuccessorsIntoGivenBlocks(), moveHeaderPhiOperandsToForeBlocks(), partitionOuterLoopBlocks(), llvm::LoopBlocksDFS::perform(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstructionsInBlocks(), SCEVCheapExpansionBudget, llvm::BranchInst::setSuccessor(), simplifyLoopAfterUnroll(), UnrollRuntimeLoopRemainder(), llvm::ScalarEvolution::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by tryToUnrollAndJamLoop().
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 458 of file LoopUnroll.cpp.
References addClonedBlockToLoopInfo(), llvm::DominatorTreeBase< NodeT, IsPostDom >::addNewBlock(), llvm::UnrollLoopOptions::AllowExpensiveTripCount, any_of(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::applyUpdates(), assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin(), llvm::BasicBlock::begin(), llvm::ValueMap< KeyT, ValueT, Config >::begin(), llvm::LoopBlocksDFS::beginRPO(), llvm::CallingConv::C, canHaveUnrollRemainder(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), changeToUnreachable(), llvm::DomTreeNodeBase< NodeT >::children(), cloneAndAdaptNoAliasScopes(), CloneBasicBlock(), llvm::LoopBase< BlockT, LoopT >::contains(), llvm::UnrollLoopOptions::Count, llvm::BranchInst::Create(), dbgs(), DEBUG_TYPE, llvm::OptimizationRemarkEmitter::emit(), llvm::SmallVectorImpl< T >::emplace_back(), EnableFSDiscriminator, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::ValueMap< KeyT, ValueT, Config >::end(), llvm::LoopBlocksDFS::endRPO(), llvm::ValueMap< KeyT, ValueT, Config >::erase(), erase(), llvm::LoopInfo::erase(), llvm::Instruction::eraseFromParent(), llvm::ValueMap< KeyT, ValueT, Config >::find(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::DominatorTree::findNearestCommonDominator(), llvm::UnrollLoopOptions::Force, llvm::ScalarEvolution::forgetAllLoops(), llvm::UnrollLoopOptions::ForgetAllSCEV, llvm::ScalarEvolution::forgetBlockAndLoopDispositions(), llvm::ScalarEvolution::forgetLcssaPhiWithNewPredecessor(), llvm::ScalarEvolution::forgetTopmostLoop(), formLCSSARecursively(), llvm::GenericDomTreeUpdater< DerivedT, DomTreeT, PostDomTreeT >::getDomTree(), 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::cl::Option::getNumOccurrences(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::BasicBlock::getSingleSuccessor(), llvm::ScalarEvolution::getSmallConstantMaxTripCount(), llvm::ScalarEvolution::getSmallConstantTripCount(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::BasicBlock::getTerminator(), llvm::BasicBlock::getUniquePredecessor(), llvm::UnrollLoopOptions::Heart, I, identifyNoAliasScopesToClone(), Idx, II, Info, llvm::SetVector< T, Vector, Set, N >::insert(), llvm::ScalarEvolution::isBackedgeTakenCountMaxOrZero(), isEpilogProfitable(), llvm::Loop::isLCSSAForm(), LLVM_DEBUG, MergeBlockIntoPredecessor(), needToInsertPhisForLCSSA(), llvm::LoopBlocksDFS::perform(), PHI, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::AssumptionCache::registerAssumption(), remapInstructionsInBlocks(), llvm::BasicBlock::removePredecessor(), llvm::UnrollLoopOptions::Runtime, llvm::UnrollLoopOptions::SCEVExpansionBudget, llvm::ValueMapIterator< DenseMapT, KeyT >::ValueTypeProxy::second, setLoopEstimatedTripCount(), simplifyLoop(), simplifyLoopAfterUnroll(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), llvm::SmallVectorBase< Size_T >::size(), successors(), to_vector(), llvm::UnrollLoopOptions::UnrollRemainder, UnrollRuntimeEpilog, UnrollRuntimeLoopRemainder(), UnrollVerifyDomtree, UnrollVerifyLoopInfo, llvm::LoopInfoBase< BlockT, LoopT >::verify(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by tryToUnrollLoop(), and 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, | ||
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 581 of file LoopUnrollRuntime.cpp.
References llvm::PHINode::addIncoming(), llvm::UnrollLoopOptions::AllowExpensiveTripCount, assert(), B, breakLoopBackedge(), canProfitablyUnrollMultiExitLoop(), llvm::DominatorTreeBase< NodeT, IsPostDom >::changeImmediateDominator(), CloneLoopBlocks(), ConnectEpilog(), ConnectProlog(), llvm::UnrollLoopOptions::Count, llvm::PHINode::Create(), llvm::IRBuilderBase::CreateAdd(), llvm::MDBuilder::createBranchWeights(), llvm::IRBuilderBase::CreateICmp(), llvm::IRBuilderBase::CreateSub(), CreateTripRemainder(), dbgs(), DL, llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorBase< Size_T >::empty(), EpilogHeaderWeights, llvm::Instruction::eraseFromParent(), llvm::SCEVExpander::expandCodeFor(), F, llvm::UnrollLoopOptions::Force, llvm::UnrollLoopOptions::ForgetAllSCEV, llvm::ScalarEvolution::forgetTopmostLoop(), formDedicatedExitBlocks(), llvm::ScalarEvolution::getAddExpr(), llvm::Constant::getAllOnesValue(), llvm::DomTreeNodeBase< NodeT >::getBlock(), 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::Instruction::insertBefore(), is_contained(), 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::LoopBlocksDFS::perform(), 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::SmallVectorBase< Size_T >::size(), SplitBlock(), SplitBlockPredecessors(), SplitEdge(), successors(), UnrollLoop(), llvm::UnrollLoopOptions::UnrollRemainder, llvm::LoopInfoBase< BlockT, LoopT >::verify(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by UnrollAndJamLoop(), and UnrollLoop().
|
inline |
Definition at line 335 of file Attributes.h.
References llvm::Attribute::fromRawPointer().
Referenced by LLVMAddGlobalMapping(), LLVMAddModule(), LLVMCloneModule(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateExecutionEngineForModule(), LLVMCreateGenericValueOfFloat(), LLVMCreateInterpreterForModule(), LLVMCreateJITCompilerForModule(), LLVMCreateMCJITCompilerForModule(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateEnumerator(), 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(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTempMacroFile(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderFinalize(), LLVMDIBuilderFinalizeSubprogram(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueRecordAtEnd(), LLVMDIBuilderInsertDbgValueRecordBefore(), LLVMDIBuilderInsertDeclareRecordAtEnd(), LLVMDIBuilderInsertDeclareRecordBefore(), LLVMDIBuilderInsertLabelAtEnd(), LLVMDIBuilderInsertLabelBefore(), LLVMDisposeDIBuilder(), LLVMDisposeExecutionEngine(), LLVMDisposeGenericValue(), LLVMDisposeMCJITMemoryManager(), LLVMExecutionEngineGetErrMsg(), LLVMFindFunction(), LLVMGenericValueIntWidth(), LLVMGenericValueToFloat(), LLVMGenericValueToInt(), LLVMGenericValueToPointer(), LLVMGetBitcodeModuleInContext(), LLVMGetBitcodeModuleInContext2(), LLVMGetComdatSelectionKind(), LLVMGetExecutionEngineTargetData(), LLVMGetExecutionEngineTargetMachine(), LLVMGetFunctionAddress(), LLVMGetGlobalValueAddress(), LLVMGetMetadataKind(), LLVMGetModuleDebugMetadataVersion(), LLVMGetOrInsertComdat(), LLVMGetPointerToGlobal(), LLVMLinkModules2(), LLVMMetadataReplaceAllUsesWith(), LLVMOrcLLJITEnableDebugSupport(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMRemarkDebugLocGetSourceColumn(), LLVMRemarkDebugLocGetSourceFilePath(), LLVMRemarkDebugLocGetSourceLine(), LLVMRemarkEntryDispose(), LLVMRemarkEntryGetDebugLoc(), LLVMRemarkEntryGetFirstArg(), LLVMRemarkEntryGetFunctionName(), LLVMRemarkEntryGetHotness(), LLVMRemarkEntryGetNextArg(), LLVMRemarkEntryGetNumArgs(), LLVMRemarkEntryGetPassName(), LLVMRemarkEntryGetRemarkName(), LLVMRemarkEntryGetType(), LLVMRemarkParserDispose(), LLVMRemarkParserGetErrorMessage(), LLVMRemarkParserGetNext(), LLVMRemarkParserHasError(), LLVMRemarkStringGetData(), LLVMRemarkStringGetLen(), LLVMRemoveModule(), LLVMRunFunction(), LLVMRunFunctionAsMain(), LLVMRunStaticConstructors(), LLVMRunStaticDestructors(), LLVMSetComdat(), LLVMSetComdatSelectionKind(), LLVMStripModuleDebugInfo(), LLVMTemporaryMDNode(), LLVMVerifyModule(), LLVMWriteBitcodeToFD(), LLVMWriteBitcodeToFile(), LLVMWriteBitcodeToMemoryBuffer(), parallelForEachError(), and llvm::orc::CAPIDefinitionGenerator::tryToGenerate().
|
inline |
Definition at line 25 of file CodeGenCWrappers.h.
References llvm::CodeModel::Kernel, llvm::CodeModel::Large, LLVMCodeModelDefault, LLVMCodeModelJITDefault, LLVMCodeModelKernel, LLVMCodeModelLarge, LLVMCodeModelMedium, LLVMCodeModelSmall, LLVMCodeModelTiny, llvm::CodeModel::Medium, llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
inline |
Definition at line 355 of file LLVMContext.h.
|
inline |
|
inline |
Definition at line 151 of file Metadata.h.
|
inline |
|
inline |
Definition at line 557 of file DataLayout.h.
References P.
|
inline |
|
inline |
|
inline |
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 1183 of file CGSCCPassManager.cpp.
References FAM, G, N, and updateCGAndAnalysisManagerForPass().
Referenced by llvm::CallGraphUpdater::reanalyzeFunction(), llvm::CoroAnnotationElidePass::run(), and updateCallGraphAfterCoroutineSplit().
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 1176 of file CGSCCPassManager.cpp.
References FAM, G, N, and updateCGAndAnalysisManagerForPass().
Referenced by llvm::CGSCCToFunctionPassAdaptor::run(), and updateCallGraphAfterCoroutineSplit().
|
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 648 of file DWARFLinker.cpp.
References llvm::DWARFDie::getTag(), llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Incomplete, and llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Prune.
|
static |
Definition at line 290 of file DWARFLinker.cpp.
References Info, and llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Prune.
Referenced by analyzeContextInfo().
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().
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 2454 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().
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 962 of file WholeProgramDevirt.cpp.
References assert(), and llvm::ModuleSummaryIndex::getGlobalNameForLocal().
Referenced by llvm::ThinLTOCodeGenerator::run().
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 1384 of file FunctionImport.cpp.
References updateValueInfoForIndirectCalls().
Referenced by computeDeadSymbolsAndUpdateIndirectCalls().
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 439 of file DebugInfo.cpp.
References I, and updateLoopMetadataDebugLocationsImpl().
Referenced by fixupDebugInfoPostExtraction(), fixupLineNumbers(), moveFunctionData(), and stripNonLineTableDebugInfo().
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 811 of file BasicBlockUtils.cpp.
References assert(), and llvm::BasicBlock::phis().
Referenced by ehAwareSplitEdge(), and rewritePHIsForCleanupPad().
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 2053 of file InlineFunction.cpp.
References llvm::ValueMap< KeyT, ValueT, Config >::count(), I, II, scaleProfData(), and llvm::PGOIndirectCallVisitor::tryGetVTableInstruction().
Referenced by updateCallProfile().
|
static |
Definition at line 268 of file DWARFLinker.cpp.
References llvm::DWARFDie::find(), llvm::DWARFDie::getTag(), Info, isTypeTag(), and llvm::dwarf::toUnsigned().
Referenced by analyzeContextInfo().
Definition at line 886 of file WholeProgramDevirt.cpp.
References llvm::CallInst::Create(), llvm::Intrinsic::getDeclarationIfExists(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::ConstantInt::getTrue(), hasWholeProgramVisibility(), make_early_inc_range(), and llvm::Value::uses().
Referenced by llvm::LTOCodeGenerator::optimize(), ProcessThinLTOModule(), and llvm::lto::thinBackend().
|
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 668 of file DWARFLinker.cpp.
References llvm::DWARFDie::getTag(), and llvm::dwarf_linker::classic::CompileUnit::DIEInfo::Incomplete.
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 929 of file WholeProgramDevirt.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), hasWholeProgramVisibility(), P, llvm::GlobalObject::VCallVisibilityLinkageUnit, and llvm::GlobalObject::VCallVisibilityPublic.
Referenced by llvm::ThinLTOCodeGenerator::run().
void llvm::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).
Definition at line 860 of file WholeProgramDevirt.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), llvm::GlobalValue::getGUID(), llvm::GlobalObject::getVCallVisibility(), llvm::GlobalObject::hasMetadata(), hasWholeProgramVisibility(), llvm::GlobalObject::setVCallVisibilityMetadata(), skipUpdateDueToValidation(), llvm::GlobalObject::VCallVisibilityLinkageUnit, and llvm::GlobalObject::VCallVisibilityPublic.
Referenced by llvm::LTOCodeGenerator::optimize().
void llvm::UpgradeARCRuntime | ( | Module & | M | ) |
Convert calls to ARC runtime functions to intrinsic calls and upgrade the old retain release marker to new module flag format.
Definition at line 5048 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::CastInst::castIsValid(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateCall(), llvm::Function::eraseFromParent(), llvm::Instruction::eraseFromParent(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getFunctionType(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::FunctionType::getParamType(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::FunctionType::getReturnType(), llvm::Value::getType(), I, make_early_inc_range(), llvm::Value::replaceAllUsesWith(), llvm::CallInst::setTailCallKind(), llvm::Value::takeName(), upgradeRetainReleaseMarker(), llvm::Value::use_empty(), and llvm::Value::users().
void llvm::UpgradeAttributes | ( | AttrBuilder & | B | ) |
Upgrade attributes that changed format or kind.
Definition at line 5607 of file AutoUpgrade.cpp.
References A, B, and llvm::StringRef::empty().
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 4955 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::Type::getInt64Ty(), llvm::ConstantExpr::getIntToPtr(), llvm::Type::getPointerAddressSpace(), llvm::ConstantExpr::getPtrToInt(), and llvm::Type::isPtrOrPtrVectorTy().
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 4933 of file AutoUpgrade.cpp.
References llvm::CastInst::Create(), llvm::Type::getInt64Ty(), llvm::Type::getPointerAddressSpace(), and llvm::Type::isPtrOrPtrVectorTy().
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 4889 of file AutoUpgrade.cpp.
References assert(), F, make_early_inc_range(), UpgradeIntrinsicCall(), and UpgradeIntrinsicFunction().
Upgrade the datalayout string by adding a section for address space pointers.
Definition at line 5490 of file AutoUpgrade.cpp.
References contains(), DL, llvm::MachineBasicBlock::empty(), Groups, I, llvm::StringRef::npos, and Ref.
Check the debug info version number, if it is out-dated, drop the debug info.
Return true if module is modified.
Definition at line 4977 of file AutoUpgrade.cpp.
References DEBUG_METADATA_VERSION, DisableAutoUpgradeDebugInfo, errs(), find_if(), Modified, report_fatal_error(), StripDebugInfo(), and verifyModule().
Referenced by llvm::FunctionImporter::importFunctions(), parseAssemblyFileWithIndex(), parseAssemblyInto(), parseAssemblyWithIndex(), and llvm::LLParser::Run().
void llvm::UpgradeFunctionAttributes | ( | Function & | F | ) |
Correct any IR that is relying on old function attribute behavior.
Definition at line 5386 of file AutoUpgrade.cpp.
References A, F, and llvm::AttributeFuncs::typeIncompatible().
GlobalVariable * llvm::UpgradeGlobalVariable | ( | GlobalVariable * | GV | ) |
This checks for global variables which should be upgraded.
If it requires upgrading, returns a pointer to the upgraded variable.
Definition at line 1518 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::ConstantArray::get(), llvm::StructType::get(), llvm::ConstantStruct::get(), llvm::Value::getContext(), llvm::ArrayType::getElementType(), llvm::StructType::getElementType(), llvm::GlobalVariable::getInitializer(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::StructType::getNumElements(), llvm::IRBuilderBase::getPtrTy(), llvm::Value::getType(), llvm::GlobalValue::getValueType(), llvm::GlobalVariable::hasInitializer(), llvm::Value::hasName(), and N.
void llvm::UpgradeInlineAsmString | ( | std::string * | AsmStr | ) |
Upgrade comment in call to inline asm that represents an objc retain release marker.
Definition at line 2286 of file AutoUpgrade.cpp.
Upgrade the loop attachment metadata node.
Definition at line 5474 of file AutoUpgrade.cpp.
References llvm::MDTuple::get(), isOldLoopArgument(), N, none_of(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and upgradeLoopArgument().
Referenced by llvm::MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment().
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 4329 of file AutoUpgrade.cpp.
References llvm::DIExpression::append(), applyX86MaskOn1BitsVec(), llvm::CallBase::arg_size(), llvm::CallBase::args(), assert(), llvm::CallingConv::C, llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateExtractValue(), llvm::IRBuilderBase::CreateInsertValue(), llvm::IRBuilderBase::CreateInsertVector(), llvm::IRBuilderBase::CreateIntCast(), llvm::IRBuilderBase::CreateTrunc(), llvm::StringSwitch< T, R >::Default(), Dynamic, llvm::Instruction::eraseFromParent(), F, llvm::AttributeList::get(), llvm::ConstantTokenNone::get(), llvm::MetadataAsValue::get(), llvm::FixedVectorType::get(), llvm::PoisonValue::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getAttributes(), llvm::IRBuilderBase::getBFloatTy(), llvm::Type::getBFloatTy(), llvm::CallBase::getCalledFunction(), llvm::CallBase::getCalledOperand(), llvm::Value::getContext(), llvm::IRBuilderBase::getFalse(), llvm::Type::getFloatTy(), llvm::AttributeList::getFnAttrs(), llvm::Function::getFunctionType(), llvm::CallBase::getFunctionType(), llvm::IRBuilderBase::getInt16Ty(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Type::getInt8Ty(), llvm::Function::getIntrinsicID(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getModule(), llvm::Value::getName(), llvm::Constant::getNullValue(), llvm::User::getNumOperands(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::ConstantExpr::getPointerCast(), llvm::Type::getPrimitiveSizeInBits(), llvm::IRBuilderBase::getPtrTy(), llvm::AttributeList::getRetAttrs(), llvm::Function::getReturnType(), llvm::Value::getType(), getType(), getX86MaskVec(), I, Idx, llvm::Type::isIntegerTy(), llvm::Module::IsNewDbgInfoFormat, llvm_unreachable, N, Name, Offset, llvm::Value::replaceAllUsesWith(), RetTy, llvm::CallBase::setAttributes(), llvm::CallBase::setCalledFunction(), llvm::CallBase::setCalledOperand(), llvm::IRBuilderBase::SetInsertPoint(), llvm::StringSwitch< T, R >::StartsWith(), llvm::Value::takeName(), upgradeAArch64IntrinsicCall(), upgradeAMDGCNIntrinsicCall(), upgradeARMIntrinsicCall(), upgradeDbgIntrinsicToDbgRecord(), upgradeIntrinsicFunction1(), upgradeNVVMIntrinsicCall(), and upgradeX86IntrinsicCall().
Referenced by UpgradeCallsToIntrinsic().
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 1503 of file AutoUpgrade.cpp.
References assert(), F, llvm::Intrinsic::getAttributes(), and upgradeIntrinsicFunction1().
Referenced by UpgradeCallsToIntrinsic().
This checks for module flags which should be upgraded.
It returns true if module is modified.
Definition at line 5170 of file AutoUpgrade.cpp.
References assert(), B, llvm::Module::Error, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::MDString::get(), llvm::Type::getInt32Ty(), llvm::Type::getInt8Ty(), llvm::DWARFExpression::Operation::getNumOperands(), llvm::NamedMDNode::getNumOperands(), llvm::NamedMDNode::getOperand(), I, llvm::Module::Max, llvm::Module::Min, llvm::Module::Override, llvm::NamedMDNode::setOperand(), and llvm::SmallVectorBase< Size_T >::size().
void llvm::UpgradeOperandBundles | ( | std::vector< OperandBundleDef > & | OperandBundles | ) |
Upgrade operand bundles (without knowing about their user instruction).
Definition at line 5634 of file AutoUpgrade.cpp.
References erase_if(), llvm::OperandBundleDefT< InputTy >::getTag(), and llvm::OperandBundleDefT< InputTy >::inputs().
void llvm::UpgradeSectionAttributes | ( | Module & | M | ) |
Definition at line 5313 of file AutoUpgrade.cpp.
References OS.
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 4907 of file AutoUpgrade.cpp.
References llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::MDNode::getContext(), llvm::Type::getInt64Ty(), llvm::Constant::getNullValue(), llvm::MDNode::getNumOperands(), and llvm::MDNode::getOperand().
Referenced by llvm::MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment().
Provide wrappers to std::upper_bound which take ranges instead of having to pass begin/end explicitly.
Definition at line 1991 of file STLExtras.h.
References adl_begin(), adl_end(), and Range.
Referenced by llvm::pdb::UDTLayoutBase::addChildToLayout(), llvm::SIMachineFunctionInfo::addToPrologEpilogSGPRSpills(), llvm::DWARFUnitVector::addUnit(), getUnitForOffset(), llvm::AddressRanges::insert(), llvm::RISCVISAInfo::parseArchString(), SortNonLocalDepInfoCache(), and llvm::object::ELFFile< ELFT >::toMappedAddr().
auto llvm::upper_bound | ( | R && | Range, |
T && | Value, | ||
Compare | C | ||
) |
Definition at line 1997 of file STLExtras.h.
References adl_begin(), adl_end(), llvm::CallingConv::C, and Range.
|
inline |
Definition at line 1307 of file MemorySSA.h.
References make_range(), upward_defs_begin(), and upward_defs_end().
|
inline |
Definition at line 1300 of file MemorySSA.h.
Referenced by checkClobberSanity(), and upward_defs().
|
inline |
Definition at line 1304 of file MemorySSA.h.
Referenced by checkClobberSanity(), and upward_defs().
cl::opt< bool > llvm::UseContextLessSummary | ( | "profile-summary-contextless" | , |
cl::Hidden | , | ||
cl::desc("Merge context profiles before calculating thresholds.") | |||
) |
cl::opt< bool > llvm::UseIterativeBFIInference | ( | "use-iterative-bfi-inference" | , |
cl::Hidden | , | ||
cl::desc("Apply an iterative post-processing to infer correct BFI counts") | |||
) |
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.") | |||
) |
bool llvm::useUniversalCRT | ( | ToolsetLayout | VSLayout, |
const std::string & | VCToolChainPath, | ||
llvm::Triple::ArchType | TargetArch, | ||
llvm::vfs::FileSystem & | VFS | ||
) |
Definition at line 393 of file MSVCPaths.cpp.
References llvm::sys::path::append(), llvm::vfs::FileSystem::exists(), getSubDirectoryPath(), and Include.
val2MImm - Convert an integer immediate value to target MImm immediate.
Definition at line 358 of file VE.h.
References countl_one(), and countl_zero().
Referenced by llvm::VEInstrInfo::foldImmediate().
void llvm::valTypesFromMVTs | ( | ArrayRef< MVT > | In, |
SmallVectorImpl< wasm::ValType > & | Out | ||
) |
Definition at line 109 of file WebAssemblyMachineFunctionInfo.cpp.
References llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::WebAssembly::toValType().
Referenced by llvm::WebAssemblyAsmPrinter::emitFunctionBodyStart(), getFunctionReturns(), and signatureFromMVTs().
Definition at line 98 of file PredicateInfo.cpp.
Referenced by llvm::ValueDFS_Compare::localComesBefore().
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.
|
static |
Definition at line 40 of file ASanStackFrameLayout.cpp.
References alignTo(), and Size.
Referenced by ComputeASanStackFrameLayout().
Definition at line 598 of file ARMBaseInstrInfo.h.
Referenced by findVCMPToFoldIntoVPST(), and IsVCMP().
Definition at line 25 of file MVETailPredUtils.h.
References llvm_unreachable.
|
inlinestatic |
Definition at line 85 of file VE.h.
References CC, llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, and llvm_unreachable.
Referenced by llvm::VEInstPrinter::printCCOperand().
|
inlinestatic |
Definition at line 154 of file VE.h.
References CC, llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, and llvm_unreachable.
|
inlinestatic |
Definition at line 264 of file VE.h.
References llvm_unreachable, llvm::VERD::RD_NONE, llvm::VERD::RD_RA, llvm::VERD::RD_RM, llvm::VERD::RD_RN, llvm::VERD::RD_RP, and llvm::VERD::RD_RZ.
Referenced by llvm::VEInstPrinter::printRDOperand().
|
inlinestatic |
Definition at line 294 of file VE.h.
References llvm_unreachable, llvm::VERD::RD_NONE, llvm::VERD::RD_RA, llvm::VERD::RD_RM, llvm::VERD::RD_RN, llvm::VERD::RD_RP, and llvm::VERD::RD_RZ.
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 7299 of file Verifier.cpp.
References F, OS, and Verifier.
Referenced by llvm::CodeExtractor::extractCodeRegion(), generateReproducer(), llvm::ScalarEvolution::isBasicBlockEntryGuardedByCond(), llvm::ScalarEvolution::isLoopBackedgeGuardedByCond(), LLVMVerifyFunction(), postSplitCleanup(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::VerifierAnalysis::run(), and llvm::slpvectorizer::BoUpSLP::~BoUpSLP().
|
static |
Definition at line 2270 of file X86IntrinsicsInfo.h.
References assert(), IntrinsicsWithChain, IntrinsicsWithoutChain, and is_sorted().
Referenced by llvm::X86TargetLowering::X86TargetLowering().
|
static |
Verify the keep chain by looking for DIEs that are kept but who's parent isn't.
Definition at line 963 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().
void llvm::verifyMachineFunction | ( | const std::string & | Banner, |
const MachineFunction & | MF | ||
) |
Definition at line 419 of file MachineVerifier.cpp.
References errs().
Referenced by llvm::VerifyInstrumentation::registerCallbacks().
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.
Definition at line 7310 of file Verifier.cpp.
References F, OS, and Verifier.
Referenced by LLVMVerifyModule(), parseAndVerify(), llvm::VerifyInstrumentation::registerCallbacks(), llvm::VerifierAnalysis::run(), UpgradeDebugInfo(), and verifyLoadedModule().
void llvm::verifySafepointIR | ( | Function & | F | ) |
Run the safepoint verifier over a single function. Crashes on failure.
Definition at line 236 of file SafepointIRVerifier.cpp.
cl::opt< bool > llvm::VerifyScheduling | ( | "verify-misched" | , |
cl::Hidden | , | ||
cl::desc("Verify machine instrs before and after machine scheduling") | |||
) |
Verify invariants for general VPlans.
Currently it checks the following:
Definition at line 416 of file VPlanVerifier.cpp.
References llvm::DominatorTreeBase< NodeT, IsPostDom >::recalculate(), and Verifier.
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::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::CallBase::getCalledOperand(), llvm::Value::getType(), and versionCallSiteWithCond().
Referenced by promoteCallWithIfThenElse().
|
inlinestatic |
Definition at line 205 of file VE.h.
References llvm::VECC::CC_AF, llvm::VECC::CC_AT, llvm::VECC::CC_EQ, llvm::VECC::CC_EQNAN, llvm::VECC::CC_G, llvm::VECC::CC_GE, llvm::VECC::CC_GENAN, llvm::VECC::CC_GNAN, llvm::VECC::CC_IEQ, llvm::VECC::CC_IG, llvm::VECC::CC_IGE, llvm::VECC::CC_IL, llvm::VECC::CC_ILE, llvm::VECC::CC_INE, llvm::VECC::CC_L, llvm::VECC::CC_LE, llvm::VECC::CC_LENAN, llvm::VECC::CC_LNAN, llvm::VECC::CC_NAN, llvm::VECC::CC_NE, llvm::VECC::CC_NENAN, llvm::VECC::CC_NUM, and llvm_unreachable.
Referenced by DecodeBranchCondition(), and DecodeCCOperand().
|
inlinestatic |
Definition at line 309 of file VE.h.
References llvm_unreachable, llvm::VERD::RD_NONE, llvm::VERD::RD_RA, llvm::VERD::RD_RM, llvm::VERD::RD_RN, llvm::VERD::RD_RP, and llvm::VERD::RD_RZ.
Referenced by DecodeRDOperand().
void llvm::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.
For use from the debugger.
Definition at line 427 of file GraphWriter.h.
References DisplayGraph(), G, Name, and WriteGraph().
Referenced by annotateAllFunctions(), llvm::DOTGraphTraitsModuleViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), llvm::EdgeBundles::view(), llvm::MachineBlockFrequencyInfo::view(), llvm::BlockFrequencyInfo::view(), llvm::MachineFunction::viewCFG(), llvm::Function::viewCFG(), viewCFG(), llvm::MachineFunction::viewCFGOnly(), llvm::AADepGraph::viewGraph(), llvm::SelectionDAG::viewGraph(), llvm::ScheduleDAG::viewGraph(), llvm::DominatorTree::viewGraph(), llvm::ScheduleDAGMI::viewGraph(), viewGraphForFunction(), and viewRegionInfo().
void llvm::viewGraphForFunction | ( | Function & | F, |
GraphT | Graph, | ||
StringRef | Name, | ||
bool | IsSimple | ||
) |
Definition at line 34 of file DOTGraphTraitsPass.h.
References F, llvm::DefaultDOTGraphTraits::getGraphName(), Name, and ViewGraph().
Referenced by llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::run(), and llvm::DOTGraphTraitsViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction().
cl::opt< bool > llvm::ViewMISchedDAGs | ( | "view-misched-dags" | , |
cl::Hidden | , | ||
cl::desc("Pop up a window to show MISched dags after they are processed") | |||
) |
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.
F | Function to analyze. |
Definition at line 246 of file RegionPrinter.cpp.
References createRegionViewerPass(), F, and invokeFunctionPass().
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.
RI | The analysis to display. |
Definition at line 244 of file RegionPrinter.cpp.
References viewRegionInfo().
Referenced by llvm::RegionInfo::view().
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.
F | Function to analyze. |
Definition at line 252 of file RegionPrinter.cpp.
References createRegionOnlyViewerPass(), F, and invokeFunctionPass().
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.
RI | The analysis to display. |
Definition at line 250 of file RegionPrinter.cpp.
References viewRegionInfo().
Referenced by llvm::RegionInfo::viewOnly().
Use SCEVTraversal to visit all nodes in the given expression tree.
Definition at line 713 of file ScalarEvolutionExpressions.h.
References T.
Referenced by collectParametricTerms(), llvm::ScalarEvolution::forgetLcssaPhiWithNewPredecessor(), llvm::ScalarEvolution::getPoisonGeneratingValues(), impliesPoison(), llvm::SCEVExpander::isSafeToExpand(), SCEVExprContains(), and SCEVMinMaxExprContains().
|
inline |
Definition at line 232 of file VPlanCFG.h.
References depth_first(), and G.
|
inline |
Returns an iterator range to traverse the graph starting at G
in depth-first order while traversing through region blocks.
Definition at line 227 of file VPlanCFG.h.
References depth_first(), and G.
Referenced by addReplicateRegions(), collectEphemeralRecipesForVPlan(), llvm::VPlanTransforms::convertToConcreteRecipes(), llvm::LoopVectorizationPlanner::emitInvalidCostRemarks(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), mergeBlocksIntoPredecessors(), mergeReplicateRegionsIntoSuccessors(), planContainsAdditionalSimplifications(), sinkScalarOperands(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), and llvm::VPlanTransforms::unrollByUF().
|
inline |
Definition at line 220 of file VPlanCFG.h.
References depth_first(), and G.
|
inline |
Returns an iterator range to traverse the graph starting at G
in depth-first order.
The iterator won't traverse through region blocks.
Definition at line 215 of file VPlanCFG.h.
References depth_first(), and G.
Referenced by llvm::VPRegionBlock::clone(), cloneFrom(), llvm::VPRegionBlock::cost(), llvm::VPlanPrinter::dump(), llvm::VPlan::duplicate(), llvm::VPlan::getExitBlocks(), llvm::VPlan::getVectorLoopRegion(), licm(), llvm::VPlanTransforms::optimizeForVFAndUF(), llvm::VPRegionBlock::print(), and willGenerateVectors().
void llvm::warnToStderr | ( | Error | Err | ) |
Definition at line 1300 of file ArchiveWriter.cpp.
References errs(), and logAllUnhandledErrors().
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 482 of file VectorUtils.cpp.
References assert(), llvm::SmallVectorImpl< T >::clear(), M0(), M1(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorBase< Size_T >::size().
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 431 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::SmallVectorBase< Size_T >::size().
Referenced by combineShuffleOfBitcast(), getShuffleMaskWithWidestElts(), scaleShuffleMaskElts(), and tryWidenMaskForShuffle().
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, llvm::BranchInst::getCondition(), isWidenableBranch(), llvm::Instruction::moveBefore(), parseWidenableBranch(), and llvm::BranchInst::setCondition().
bool llvm::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.
This is equivalent to checking whether isInstructionTriviallyDead would be true if the use count was 0.
Definition at line 425 of file Local.cpp.
References all_of(), llvm::CallingConv::C, Cond, llvm::fp::ebStrict, getFreedOperand(), I, II, isAssumeWithEmptyBundle(), isMathLibCallNoop(), and isRemovableAlloc().
Referenced by bitTrackingDCE(), llvm::LoopVectorizationCostModel::collectValuesToIgnore(), isInstructionTriviallyDead(), llvm::slpvectorizer::BoUpSLP::removeInstructionsAndOperands(), llvm::SCCPSolver::simplifyInstsInBlock(), llvm::SCCPSolver::tryToReplaceWithConstant(), wouldInstructionBeTriviallyDeadOnUnusedPaths(), and llvm::slpvectorizer::BoUpSLP::~BoUpSLP().
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).
Definition at line 413 of file Local.cpp.
References I, II, and wouldInstructionBeTriviallyDead().
|
inline |
Definition at line 330 of file Attributes.h.
References llvm::Attribute::getRawPointer().
Referenced by getMDNodeOperandImpl(), if(), llvm_getMetadata(), LLVMAddAlias2(), LLVMAddFunction(), LLVMAddGlobal(), LLVMAddGlobalIFunc(), LLVMAddGlobalInAddressSpace(), LLVMAliasGetAliasee(), LLVMAlignOf(), LLVMAppendBasicBlockInContext(), LLVMArrayType(), LLVMArrayType2(), LLVMBasicBlockAsValue(), 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(), LLVMConstExtractElement(), LLVMConstGEP2(), LLVMConstGEPWithNoWrapFlags(), LLVMConstInBoundsGEP2(), LLVMConstInlineAsm(), LLVMConstInsertElement(), LLVMConstInt(), LLVMConstIntOfArbitraryPrecision(), LLVMConstIntOfString(), LLVMConstIntOfStringAndSize(), LLVMConstIntToPtr(), LLVMConstMul(), LLVMConstNamedStruct(), LLVMConstNeg(), LLVMConstNot(), LLVMConstNSWAdd(), LLVMConstNSWMul(), LLVMConstNSWNeg(), LLVMConstNSWSub(), LLVMConstNull(), LLVMConstNUWAdd(), LLVMConstNUWMul(), LLVMConstNUWNeg(), LLVMConstNUWSub(), LLVMConstPointerCast(), LLVMConstPointerNull(), LLVMConstPtrToInt(), LLVMConstReal(), LLVMConstRealOfString(), LLVMConstRealOfStringAndSize(), LLVMConstShuffleVector(), LLVMConstStringInContext(), LLVMConstStringInContext2(), LLVMConstStructInContext(), LLVMConstSub(), LLVMConstTrunc(), LLVMConstTruncOrBitCast(), LLVMConstVector(), LLVMConstXor(), LLVMContextCreate(), LLVMCopyModuleFlagsMetadata(), LLVMCreateBasicBlockInContext(), LLVMCreateBuilderInContext(), LLVMCreateConstantRangeAttribute(), LLVMCreateDIBuilder(), LLVMCreateDIBuilderDisallowUnresolved(), LLVMCreateEnumAttribute(), LLVMCreateFunctionPassManagerForModule(), LLVMCreateGDBRegistrationListener(), LLVMCreateIntelJITEventListener(), LLVMCreateMemoryBufferWithContentsOfFile(), LLVMCreateMemoryBufferWithMemoryRange(), LLVMCreateMemoryBufferWithMemoryRangeCopy(), LLVMCreateMemoryBufferWithSTDIN(), LLVMCreateOperandBundle(), LLVMCreateOProfileJITEventListener(), LLVMCreatePassBuilderOptions(), LLVMCreatePassManager(), LLVMCreatePerfJITEventListener(), LLVMCreateStringAttribute(), LLVMCreateTypeAttribute(), LLVMDIBuilderCreateArrayType(), LLVMDIBuilderCreateArtificialType(), LLVMDIBuilderCreateAutoVariable(), LLVMDIBuilderCreateBasicType(), LLVMDIBuilderCreateBitFieldMemberType(), LLVMDIBuilderCreateClassType(), LLVMDIBuilderCreateCompileUnit(), LLVMDIBuilderCreateConstantValueExpression(), LLVMDIBuilderCreateDebugLocation(), LLVMDIBuilderCreateEnumerationType(), LLVMDIBuilderCreateEnumerator(), 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(), LLVMDIBuilderCreateStaticMemberType(), LLVMDIBuilderCreateStructType(), LLVMDIBuilderCreateSubroutineType(), LLVMDIBuilderCreateTempGlobalVariableFwdDecl(), LLVMDIBuilderCreateTempMacroFile(), LLVMDIBuilderCreateTypedef(), LLVMDIBuilderCreateUnionType(), LLVMDIBuilderCreateUnspecifiedType(), LLVMDIBuilderCreateVectorType(), LLVMDIBuilderGetOrCreateArray(), LLVMDIBuilderGetOrCreateSubrange(), LLVMDIBuilderGetOrCreateTypeArray(), LLVMDIBuilderInsertDbgValueRecordAtEnd(), LLVMDIBuilderInsertDbgValueRecordBefore(), LLVMDIBuilderInsertDeclareRecordAtEnd(), LLVMDIBuilderInsertDeclareRecordBefore(), LLVMDIBuilderInsertLabelAtEnd(), LLVMDIBuilderInsertLabelBefore(), LLVMDIGlobalVariableExpressionGetExpression(), LLVMDIGlobalVariableExpressionGetVariable(), LLVMDILocationGetInlinedAt(), LLVMDILocationGetScope(), LLVMDIScopeGetFile(), LLVMDIVariableGetFile(), LLVMDIVariableGetScope(), 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(), LLVMGetFirstBasicBlock(), LLVMGetFirstDbgRecord(), LLVMGetFirstFunction(), LLVMGetFirstGlobal(), LLVMGetFirstGlobalAlias(), LLVMGetFirstGlobalIFunc(), LLVMGetFirstInstruction(), LLVMGetFirstNamedMetadata(), LLVMGetFirstParam(), 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(), LLVMGetModuleFlag(), LLVMGetNamedFunction(), LLVMGetNamedFunctionWithLength(), LLVMGetNamedGlobal(), LLVMGetNamedGlobalAlias(), LLVMGetNamedGlobalIFunc(), LLVMGetNamedGlobalWithLength(), LLVMGetNamedMetadata(), LLVMGetNamedMetadataOperands(), LLVMGetNextBasicBlock(), LLVMGetNextDbgRecord(), LLVMGetNextFunction(), LLVMGetNextGlobal(), LLVMGetNextGlobalAlias(), LLVMGetNextGlobalIFunc(), LLVMGetNextInstruction(), LLVMGetNextNamedMetadata(), LLVMGetNextParam(), 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(), LLVMGetReturnType(), LLVMGetStringAttributeAtIndex(), LLVMGetStructElementTypes(), LLVMGetSubprogram(), LLVMGetSubtypes(), LLVMGetSuccessor(), LLVMGetSwitchDefaultDest(), LLVMGetTargetExtTypeTypeParam(), LLVMGetTypeAttributeValue(), LLVMGetTypeByName(), LLVMGetTypeByName2(), LLVMGetTypeContext(), LLVMGetUndef(), LLVMGetUnwindDest(), LLVMGetUsedValue(), LLVMGetUser(), LLVMGetValueContext(), LLVMGlobalGetValueType(), LLVMInsertBasicBlockInContext(), LLVMInstructionClone(), LLVMInstructionGetDebugLoc(), LLVMIntrinsicGetType(), LLVMIntTypeInContext(), LLVMIsATerminatorInst(), LLVMLabelTypeInContext(), LLVMMDNodeInContext(), LLVMMDNodeInContext2(), LLVMMDStringInContext(), LLVMMDStringInContext2(), LLVMMetadataAsValue(), LLVMMetadataTypeInContext(), LLVMModuleCreateWithName(), LLVMModuleCreateWithNameInContext(), LLVMOrcLLJITEnableDebugSupport(), LLVMParseBitcodeInContext(), LLVMParseBitcodeInContext2(), LLVMParseIRInContext(), LLVMPointerType(), LLVMPointerTypeInContext(), LLVMRemarkArgGetDebugLoc(), LLVMRemarkArgGetKey(), LLVMRemarkArgGetValue(), LLVMRemarkDebugLocGetSourceFilePath(), LLVMRemarkEntryGetDebugLoc(), LLVMRemarkEntryGetFunctionName(), LLVMRemarkEntryGetPassName(), LLVMRemarkEntryGetRemarkName(), LLVMRemarkParserCreateBitstream(), LLVMRemarkParserCreateYAML(), LLVMRemarkParserGetNext(), LLVMScalableVectorType(), LLVMSizeOf(), LLVMStructCreateNamed(), LLVMStructGetTypeAtIndex(), LLVMStructTypeInContext(), LLVMTargetExtTypeInContext(), LLVMTemporaryMDNode(), LLVMTokenTypeInContext(), LLVMTypeOf(), LLVMValueAsBasicBlock(), LLVMValueAsMetadata(), LLVMVectorType(), LLVMVoidTypeInContext(), LLVMWriteBitcodeToMemoryBuffer(), LLVMOrcLazyCallThroughManagerRef::OrcCAPIMaterializationUnit::materialize(), parallelForEachError(), and llvm::orc::CAPIDefinitionGenerator::tryToGenerate().
|
inline |
Definition at line 47 of file CodeGenCWrappers.h.
References llvm::CodeModel::Kernel, llvm::CodeModel::Large, llvm_unreachable, LLVMCodeModelKernel, LLVMCodeModelLarge, LLVMCodeModelMedium, LLVMCodeModelSmall, LLVMCodeModelTiny, llvm::CodeModel::Medium, llvm::CodeModel::Small, and llvm::CodeModel::Tiny.
|
inline |
Definition at line 561 of file DataLayout.h.
References P.
|
inline |
Definition at line 359 of file LLVMContext.h.
|
inline |
|
inline |
|
inline |
Error llvm::write | ( | MCStreamer & | Out, |
ArrayRef< std::string > | Inputs, | ||
OnCuIndexOverflow | OverflowOptValue | ||
) |
Definition at line 625 of file DWP.cpp.
References addAllTypesFromDWP(), addAllTypesFromTypesSection(), buildDuplicateError(), llvm::CallingConv::C, llvm::UnitIndexEntry::Contributions, createFileError(), llvm::object::ObjectFile::createObjectFile(), DW_SECT_EXT_LOC, DW_SECT_EXT_TYPES, llvm::MCStreamer::emitBytes(), llvm::StringRef::empty(), llvm::StringRef::front(), llvm::DWARFUnitIndex::getColumnKinds(), llvm::MCStreamer::getContext(), getContributionIndex(), getCUIdentifiers(), llvm::DWARFUnitIndex::Entry::SectionContribution::getLength32(), llvm::MCContext::getObjectFileInfo(), llvm::DWARFUnitIndex::getRows(), getSubsection(), llvm::DWARFUnitIndex::getVersion(), handleErrors(), handleSection(), I, Info, llvm::MapVector< KeyT, ValueT, MapType, VectorType >::insert(), isSupportedSectionKind(), P, llvm::DWARFUnitIndex::parse(), parseInfoSectionUnitHeader(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), sectionOverflowErrorOrWarning(), llvm::DWARFUnitIndex::Entry::SectionContribution::setLength(), llvm::DWARFUnitIndex::Entry::SectionContribution::setOffset(), llvm::ArrayRef< T >::size(), llvm::Error::success(), llvm::MCStreamer::switchSection(), llvm::Expected< T >::takeError(), Version, writeIndex(), and writeStringsAndOffsets().
Referenced by llvm::object::BigArchive::BigArchive(), llvm::sys::fs::copy_file_internal(), report_bad_alloc_error(), report_fatal_error(), and llvm::ListeningSocket::shutdown().
Definition at line 65 of file RuntimeDyldCOFFAArch64.h.
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
Definition at line 43 of file RuntimeDyldCOFFAArch64.h.
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation(), and write32AArch64Ldr().
Definition at line 51 of file RuntimeDyldCOFFAArch64.h.
References assert(), size(), and write32AArch64Imm().
Referenced by llvm::RuntimeDyldCOFFAArch64::resolveRelocation().
void llvm::write_double | ( | raw_ostream & | S, |
double | D, | ||
FloatStyle | Style, | ||
std::optional< size_t > | Precision = std::nullopt |
||
) |
Definition at line 164 of file NativeFormatting.cpp.
References format(), getDefaultPrecision(), N, and NegativeZero.
Referenced by llvm::format_provider< T, std::enable_if_t< support::detail::use_double_formatter< T >::value > >::format(), and llvm::raw_ostream::operator<<().
void llvm::write_hex | ( | raw_ostream & | S, |
uint64_t | N, | ||
HexPrintStyle | Style, | ||
std::optional< size_t > | Width = std::nullopt |
||
) |
Definition at line 134 of file NativeFormatting.cpp.
References bit_width(), N, Upper, and llvm::raw_ostream::write().
Referenced by llvm::format_provider< codeview::GloballyHashedType >::format(), llvm::format_provider< codeview::LocallyHashedType >::format(), llvm::format_provider< T, std::enable_if_t< support::detail::use_integral_formatter< T >::value > >::format(), llvm::format_provider< T, std::enable_if_t< support::detail::use_pointer_formatter< T >::value > >::format(), getIRFileDisplayName(), llvm::raw_ostream::operator<<(), llvm::json::quote(), and llvm::raw_ostream::write_hex().
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().
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().
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().
void llvm::write_integer | ( | raw_ostream & | S, |
unsigned int | N, | ||
size_t | MinDigits, | ||
IntegerStyle | Style | ||
) |
Definition at line 104 of file NativeFormatting.cpp.
References N, and write_unsigned().
Referenced by llvm::format_provider< T, std::enable_if_t< support::detail::use_integral_formatter< T >::value > >::format(), and llvm::raw_ostream::operator<<().
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().
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().
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 |
||
) |
Definition at line 1304 of file ArchiveWriter.cpp.
References llvm::sys::fs::TempFile::create(), joinErrors(), llvm::Expected< T >::takeError(), and writeArchiveToStream().
Referenced by llvm::objcopy::deepWriteArchive(), libDriverMain(), and llvm::object::writeImportLibrary().
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 |
||
) |
Definition at line 1338 of file ArchiveWriter.cpp.
References writeArchiveToStream().
Referenced by llvm::objcopy::macho::executeObjcopyOnMachOUniversalBinary().
Error llvm::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 |
||
) |
Definition at line 1030 of file ArchiveWriter.cpp.
References alignTo(), assert(), BigArchive32, BigArchive64, computeHeadersSize(), computeMemberData(), computeStringTable(), Data, SymMap::ECMap, llvm::SmallVectorBase< Size_T >::empty(), llvm::raw_ostream::flush(), llvm::StringRef::getAsInteger(), getSymbols(), I, is64BitKind(), is64BitSymbolicFile(), isAIXBigArchive(), isBSDLike(), isCOFFArchive(), llvm::object::Archive::K_DARWIN, llvm::object::Archive::K_DARWIN64, llvm::object::Archive::K_GNU, llvm::object::Archive::K_GNU64, NoSymtab, printBigArchiveMemberHeader(), printWithSpacePadding(), llvm::ArrayRef< T >::size(), llvm::SmallVectorBase< Size_T >::size(), Size, llvm::Error::success(), llvm::Expected< T >::takeError(), llvm::sys::toTimePoint(), writeECSymbols(), writeSymbolMap(), and writeSymbolTable().
Referenced by writeArchive(), and writeArchiveToBuffer().
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 5371 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::SmallVectorBase< Size_T >::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().
void llvm::WriteDOTGraphToFile | ( | Function & | F, |
GraphT && | Graph, | ||
std::string | FileNamePrefix, | ||
bool | IsSimple | ||
) |
Definition at line 320 of file DOTGraphTraitsPass.h.
References errs(), F, llvm::DefaultDOTGraphTraits::getGraphName(), llvm::sys::fs::OF_TextWithCRLF, shortenFileName(), and WriteGraph().
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.
Definition at line 378 of file GraphWriter.h.
References llvm::sys::fs::CD_CreateAlways, createGraphFilename(), errs(), G, Name, llvm::sys::fs::OF_Text, llvm::sys::fs::openFileForWrite(), and WriteGraph().
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, llvm::MachineBasicBlock::getNumber(), MBB, printMBBReference(), and llvm::MachineBasicBlock::successors().
raw_ostream & llvm::WriteGraph | ( | raw_ostream & | O, |
const GraphType & | G, | ||
bool | ShortNames = false , |
||
const Twine & | Title = "" |
||
) |
Definition at line 359 of file GraphWriter.h.
References G.
Referenced by annotateAllFunctions(), dumpDotGraphToFile(), llvm::AADepGraph::dumpGraph(), llvm::AttributorCallGraph::print(), printGraphForFunction(), llvm::MemorySSAPrinterPass::run(), llvm::DOTGraphTraitsModulePrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnModule(), llvm::BlockCoverageInference::viewBlockCoverageGraph(), ViewGraph(), writeCFGToDotFile(), writeDDGToDotFile(), WriteDOTGraphToFile(), writeGadgetGraph(), WriteGraph(), and writeMCFGToDotFile().
void llvm::writeIndex | ( | MCStreamer & | Out, |
MCSection * | Section, | ||
ArrayRef< unsigned > | ContributionOffsets, | ||
const MapVector< uint64_t, UnitIndexEntry > & | IndexEntries, | ||
uint32_t | IndexVersion | ||
) |
Definition at line 493 of file DWP.cpp.
References assert(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::begin(), llvm::CallingConv::C, llvm::MCStreamer::emitIntValue(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::empty(), getOnDiskSectionId(), H, I, Length, NextPowerOf2(), Offset, P, llvm::ArrayRef< T >::size(), llvm::MapVector< KeyT, ValueT, MapType, VectorType >::size(), llvm::MCStreamer::switchSection(), and writeIndexTable().
Referenced by write().
void llvm::writeIndexTable | ( | MCStreamer & | Out, |
ArrayRef< unsigned > | ContributionOffsets, | ||
const MapVector< uint64_t, UnitIndexEntry > & | IndexEntries, | ||
const AccessField & | Field | ||
) |
Definition at line 481 of file DWP.cpp.
References llvm::MCStreamer::emitIntValue(), I, and Offset.
Referenced by writeIndex().
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 5418 of file BitcodeWriter.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase< Size_T >::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().
Fuzzer friendly interface for the llvm bitcode printer.
M | Module to print |
Dest | Location to store serialized module |
MaxSize | Size of the destination buffer |
Definition at line 687 of file IRMutator.cpp.
References OS, and WriteBitcodeToFile().
|
static |
Definition at line 418 of file DWP.cpp.
References Data, llvm::MCStreamer::emitIntValue(), Offset, and Size.
Referenced by writeStringsAndOffsets().
Definition at line 873 of file APFloat.cpp.
References value, and writeUnsignedDecimal().
void llvm::writeStringsAndOffsets | ( | MCStreamer & | Out, |
DWPStringPool & | Strings, | ||
MCSection * | StrOffsetSection, | ||
StringRef | CurStrSection, | ||
StringRef | CurStrOffsetSection, | ||
uint16_t | Version | ||
) |
Definition at line 429 of file DWP.cpp.
References assert(), Data, debugStrOffsetsHeaderSize(), llvm::MCStreamer::emitBytes(), llvm::StringRef::empty(), Offset, llvm::StringRef::size(), Size, llvm::MCStreamer::switchSection(), Version, and writeNewOffsetsTo().
Referenced by write().
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 5579 of file BitcodeWriter.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase< Size_T >::size(), llvm::raw_ostream::write(), llvm::BitcodeWriter::writeStrtab(), llvm::BitcodeWriter::writeSymtab(), and llvm::BitcodeWriter::writeThinLinkBitcode().
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 1012 of file raw_ostream.cpp.
References llvm::sys::fs::all_read, llvm::sys::fs::all_write, llvm::sys::fs::TempFile::create(), createFileError(), E, llvm::raw_ostream::flush(), joinErrors(), Mode, outs(), llvm::Expected< T >::takeError(), and Write.
Definition at line 855 of file APFloat.cpp.
Referenced by writeSignedDecimal().
llvm::XXH128_hash_t llvm::xxh3_128bits | ( | ArrayRef< uint8_t > | data | ) |
XXH3's 128-bit variant.
Definition at line 1023 of file xxhash.cpp.
References data, kSecret, XXH3_hashLong_128b(), XXH3_len_0to16_128b(), XXH3_len_129to240_128b(), XXH3_len_17to128_128b(), and XXH3_MIDSIZE_MAX.
Definition at line 553 of file xxhash.cpp.
References data, kSecret, XXH3_hashLong_64b(), XXH3_len_0to16_64b(), XXH3_len_129to240_64b(), XXH3_len_17to128_64b(), and XXH3_MIDSIZE_MAX.
Referenced by llvm::pdb::PDBFileBuilder::commit(), llvm::FoldingSetNodeIDRef::computeStableHash(), getCallStackHash(), getDebuginfodCacheKey(), llvm::pdb::SymbolDenseMapInfo::getHashValue(), llvm::ConcurrentHashTableInfoByPtr< KeyTy, KeyDataTy, AllocatorTy >::getHashValue(), llvm::dwarf_linker::StringPoolEntryInfo::getHashValue(), llvm::dwarf_linker::parallel::TypeEntryInfo::getHashValue(), getIRFileDisplayName(), llvm::StringMapImpl::hash(), llvm::CodeGenDataReader::mergeFromObjectFile(), stable_hash_combine(), stable_hash_name(), and xxh3_64bits().
Definition at line 50 of file xxhash.h.
References data, and xxh3_64bits().
uint64_t llvm::xxHash64 | ( | llvm::ArrayRef< uint8_t > | Data | ) |
Definition at line 163 of file xxhash.cpp.
References xxHash64().
uint64_t llvm::xxHash64 | ( | llvm::StringRef | Data | ) |
Definition at line 103 of file xxhash.cpp.
References mergeRound(), P, PRIME64_1, PRIME64_2, PRIME64_3, PRIME64_4, PRIME64_5, llvm::support::endian::read32le(), llvm::support::endian::read64le(), rotl64(), round(), Seed, and XXH64_avalanche().
Referenced by setKCFIType(), and xxHash64().
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 854 of file STLExtras.h.
Referenced by llvm::InstrProfWriter::addTemporalProfileTraces(), llvm::detail::all_of_zip_predicate_first(), areLoadedOffsetButOtherwiseSame(), CC_AArch64_Custom_Block(), CC_ARM_AAPCS_Custom_Aggregate(), cloneFrom(), combineConcatVectorOfShuffleAndItsOperands(), combineShuffleToZeroExtendVectorInReg(), llvm::IRSimilarity::IRSimilarityCandidate::compareStructure(), createOutlinedFunction(), llvm::mcdxbc::PSVRuntimeInfo::finalize(), 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(), remapOperands(), scalarizeBinOpOfSplats(), simplifyUsingControlFlow(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), and StrCmpOptionPrefixes().
detail::zippy< detail::zip_first, T, U, Args... > llvm::zip_equal | ( | T && | t, |
U && | u, | ||
Args &&... | args | ||
) |
zip iterator that assumes that all iteratees have the same length.
In builds with assertions on, this assumption is checked before the iteration starts.
Definition at line 864 of file STLExtras.h.
References all_equal(), args, assert(), range_size(), and T.
Referenced by llvm::SITargetLowering::isEligibleForTailCallOptimization(), llvm::AppleAcceleratorTable::Entry::lookup(), and llvm::coro::AnyRetconABI::splitCoroutine().
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 877 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().
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 1005 of file STLExtras.h.
|
static |
Referenced by llvm::DevirtSCCRepeatedPass::run().
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 |
Referenced by llvm::sandboxir::BottomUpVec::runOnFunction().
|
extern |
Definition at line 55 of file AMDGPUAnnotateKernelFeatures.cpp.
|
extern |
|
extern |
Definition at line 112 of file AMDGPUAtomicOptimizer.cpp.
|
extern |
|
extern |
Definition at line 189 of file AMDGPUCtorDtorLowering.cpp.
|
extern |
|
extern |
Definition at line 203 of file AMDGPUGlobalISelDivergenceLowering.cpp.
|
extern |
|
extern |
Definition at line 461 of file AMDGPUInsertDelayAlu.cpp.
|
extern |
|
extern |
Definition at line 2393 of file AMDGPULowerBufferFatPointers.cpp.
|
extern |
|
extern |
|
extern |
Definition at line 1529 of file AMDGPULowerModuleLDSPass.cpp.
|
extern |
Definition at line 135 of file AMDGPUMarkLastScratchLoad.cpp.
|
extern |
Definition at line 71 of file AMDGPUOpenCLEnqueuedBlockLowering.cpp.
|
extern |
Definition at line 468 of file AMDGPUPerfHintAnalysis.cpp.
|
extern |
|
extern |
Definition at line 77 of file AMDGPUPrintfRuntimeBinding.cpp.
|
extern |
Definition at line 217 of file AMDGPUPromoteAlloca.cpp.
|
extern |
Definition at line 218 of file AMDGPUPromoteAlloca.cpp.
|
extern |
|
extern |
Definition at line 66 of file AMDGPURegBankLegalize.cpp.
|
extern |
Definition at line 63 of file AMDGPURegBankSelect.cpp.
|
extern |
|
extern |
|
extern |
Definition at line 34 of file AMDGPUResourceUsageAnalysis.cpp.
|
extern |
|
extern |
|
extern |
Definition at line 1281 of file AMDGPUSwLowerLDS.cpp.
|
extern |
Definition at line 88 of file AMDGPUUnifyDivergentExitNodes.cpp.
|
extern |
Definition at line 127 of file AMDGPUUnifyMetadata.cpp.
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) |
|
static |
Definition at line 1082 of file MasmParser.cpp.
Definition at line 49 of file MCTargetAsmParser.h.
Referenced by rewritesSort().
|
constexpr |
The key we use for assumption attributes.
Definition at line 28 of file Assumptions.h.
Referenced by getAssumptions(), and hasAssumption().
|
extern |
AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.
Definition at line 166 of file AtomicExpandPass.cpp.
Definition at line 29 of file AVRTargetMachine.cpp.
Definition at line 70 of file Discriminator.h.
Referenced by getBaseFSBitEnd(), and getFSPassBitEnd().
|
extern |
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.") | |||
) |
Macro compressed bit reversal table for 256 bits.
http://graphics.stanford.edu/~seander/bithacks.html#BitReverseTable
Definition at line 113 of file MathExtras.h.
Referenced by reverseBits().
|
constexpr |
Definition at line 217 of file BitmaskEnum.h.
Referenced by llvm::SCEVAAResult::alias(), llvm::BasicTTIImplBase< T >::allowsMisalignedMemoryAccesses(), llvm::TargetTransformInfo::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(), calculateByteProvider(), calculateUpperBound(), llvm::ARMTargetLowering::canCombineStoreAndExtract(), canEvaluateTruncated(), canNarrowShiftAmt(), cannotBeMaxInLoop(), cannotBeMinInLoop(), collectBitParts(), llvm::GetElementPtrInst::collectOffset(), llvm::GEPOperator::collectOffset(), collectOffsets(), combineBT(), combineCMP(), combinePredicateReduction(), combineShiftAnd1ToBitTest(), combineSIntToFP(), combineVSelectToBLENDV(), llvm::InstCombinerImpl::commonShiftTransforms(), computeConstantRange(), llvm::KnownBits::computeForAddSub(), computeForSatAddSub(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::RISCVTargetLowering::computeKnownBitsForTargetNode(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), llvm::LanaiTargetLowering::computeKnownBitsForTargetNode(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), computeKnownBitsFromCmp(), computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsFromRangeMetadata(), llvm::GISelKnownBits::computeKnownBitsImpl(), computeKnownFPClass(), llvm::SelectionDAG::ComputeNumSignBits(), computeOverflowForSignedMul(), llvm::SelectionDAG::computeOverflowForSignedMul(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computeShlNSW(), computeShlNSWWithNegLHS(), computeShlNSWWithNNegLHS(), computeShlNUW(), ConstantFoldCastInstruction(), ConstantFoldCastOperand(), llvm::StringRef::consumeInteger(), llvm::ifs::convertELFBitWidthToIFS(), llvm::ifs::convertIFSBitWidthToELF(), ConvertShiftToMul(), copyRangeMetadata(), createMaskedBitTest(), llvm::ConstantRange::ctpop(), llvm::ConstantRange::cttz(), llvm::TargetLowering::CTTZTableLookup(), despeculateCountZeros(), emitConstantRange(), emitGlobalConstantLargeInt(), estimateBitMaskedAndLowerBound(), llvm::TargetLowering::expandAddSubSat(), llvm::TargetLowering::expandDIVREMByConstant(), expandFPToI(), expandIToFP(), extractBits(), extractConstantWithoutWrapping(), llvm::SwitchCG::SwitchLowering::findBitTestClusters(), 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(), getAlignedVectorSuperClassForBitWidth(), getAlignedVGPRClassForBitWidth(), getAnyAGPRClassForBitWidth(), getAnyVectorSuperClassForBitWidth(), getAnyVGPRClassForBitWidth(), getBitWidth(), llvm::BuildVectorSDNode::getConstantFPSplatPow2ToLog2Int(), llvm::ExecutionEngine::getConstantValue(), llvm::DemandedBits::getDemandedBits(), getDemandedBitsLHSMask(), getElementIndex(), getExactInteger(), llvm::EVT::getFloatingPointVT(), llvm::SMTSolver::getFloatSort(), llvm::SelectionDAG::getGlobalAddress(), getIdentityValueForAtomicOp(), llvm::EVT::getIntegerVT(), getIntToFPVal(), getKnownBitsFromAndXorOr(), getLeftShift(), llvm::FunctionLoweringInfo::GetLiveOutRegInfo(), getMaxShiftAmount(), getMinMaxLimit(), llvm::SCEVAddRecExpr::getNumIterationsInRange(), llvm::TargetLoweringBase::getNumRegisters(), llvm::SPIRVGlobalRegistry::getOrCreateConstFP(), llvm::SPIRVGlobalRegistry::getOrCreateConstInt(), llvm::SPIRVGlobalRegistry::getOrCreateSPIRVFloatType(), 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::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::getTypeName(), getUnsignedCountTrailingZerosRange(), getUnsignedOverflowLimitForStep(), getUnsignedPopCountRange(), 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::Type::isIntOrIntVectorTy(), llvm::sandboxir::Type::isIntOrIntVectorTy(), isKnownNonZeroFromOperator(), isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isNonZeroAdd(), isNonZeroMul(), isSafeDecreasingBound(), isSafeIncreasingBound(), isSignExtendedW(), llvm::SelectionDAG::isSplatValue(), isTypeLegalForLookupTable(), knownBitsMapHelper(), LowerADDSAT_SUBSAT(), lowerAddSubToHorizontalOp(), LowerAndToBT(), LowerAndToBTST(), lowerFunnelShifts(), LowerVSETCC(), llvm::KnownBits::lshr(), makeExactMulNSWRegion(), makeExactMulNUWRegion(), llvm::ConstantRange::makeGuaranteedNoWrapRegion(), llvm::ConstantRange::makeMaskNotEqualRange(), llvm::VPlanPatternMatch::specific_intval< BitWidth >::match(), matchBinaryOp(), MatchBinaryOp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::SIInstrInfo::moveToVALUImpl(), llvm::KnownBits::mul(), llvm::KnownBits::mulhs(), llvm::KnownBits::mulhu(), nextAPIntBitWidth(), llvm::DataLayout::PointerSpec::operator==(), 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(), shouldTransformMulToShiftsAddsSubs(), llvm::TargetLowering::ShrinkDemandedOp(), llvm::GISelKnownBits::signBitIsZero(), llvm::SelectionDAG::SignBitIsZero(), simplifyBinaryIntrinsic(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::X86TargetLowering::SimplifyDemandedBitsForTargetNode(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), 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(), llvm::APInt::udivrem(), unaryOpKnownBitsMapHelper(), 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(), llvm::KnownBits::zext(), and llvm::KnownBits::zextOrTrunc().
|
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 117 of file BranchFolding.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and overridePass().
|
extern |
BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.
Definition at line 132 of file BranchRelaxation.cpp.
|
extern |
|
static |
Definition at line 64 of file MLRegAllocEvictAdvisor.h.
Definition at line 16 of file XCoreTargetObjectFile.h.
Referenced by IsSmallObject(), and llvm::XCoreTargetObjectFile::SelectSectionForGlobal().
|
static |
Definition at line 47 of file Debug.cpp.
Referenced by isCurrentDebugType(), and setCurrentDebugTypes().
|
extern |
DeadMachineInstructionElim - This pass removes dead machine instructions.
Definition at line 76 of file DeadMachineInstructionElim.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().
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 45 of file Debug.cpp.
Referenced by llvm::CSKYInstPrinter::applyTargetSpecificCLOption(), dbgs(), and isDebug().
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)) |
Referenced by createIRLevelProfileFlagVar().
Definition at line 121 of file MLInlineAdvisor.cpp.
Referenced by INITIALIZE_PASS().
|
static |
Definition at line 80 of file MLRegAllocPriorityAdvisor.cpp.
Referenced by INITIALIZE_PASS().
Definition at line 124 of file MLInlineAdvisor.cpp.
|
extern |
Definition at line 125 of file MLInlineAdvisor.cpp.
Referenced by getReleaseModeAdvisor().
|
constexpr |
Definition at line 39 of file SIInstrInfo.h.
Referenced by llvm::yaml::MappingTraits< SIMachineFunctionInfo >::mapping(), llvm::SIInstrInfo::shouldClusterMemOps(), and llvm::SIMachineFunctionInfo::SIMachineFunctionInfo().
|
static |
Definition at line 580 of file MachinePipeliner.h.
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().
|
extern |
This pass adds dead/undef flags after analyzing subregister lanes.
Definition at line 413 of file DetectDeadLanes.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
int llvm::DisableABIBreakingChecks |
Definition at line 20 of file ABIBreak.cpp.
cl::opt< bool > llvm::DisableBasicAA("disable-basic-aa", cl::Hidden, cl::init(false)) | ( | "disable-basic-aa" | , |
cl::Hidden | , | ||
cl::init(false) | |||
) |
Allow disabling BasicAA from the AA results.
This is particularly useful when testing to isolate a single AA implementation.
Referenced by llvm::AAResultsWrapperPass::runOnFunction().
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.") | |||
) |
Definition at line 38 of file IROutliner.cpp.
Referenced by llvm::IRSimilarityIdentifierWrapperPass::doInitialization(), and llvm::IRSimilarityAnalysis::run().
cl::opt< bool > llvm::DisableIndirectCalls | ( | "no-ir-sim-indirect-calls" | , |
cl::init(false) | , | ||
cl::ReallyHidden | , | ||
cl::desc("disable outlining indirect calls.") | |||
) |
Definition at line 42 of file IROutliner.cpp.
Referenced by llvm::IRSimilarityIdentifierWrapperPass::doInitialization(), and llvm::IRSimilarityAnalysis::run().
cl::opt< bool > llvm::DisableIntrinsics | ( | "no-ir-sim-intrinsics" | , |
cl::init(false) | , | ||
cl::ReallyHidden | , | ||
cl::desc("Don't match or outline intrinsics") | |||
) |
Definition at line 46 of file IROutliner.cpp.
Referenced by llvm::IRSimilarityIdentifierWrapperPass::doInitialization(), and llvm::IRSimilarityAnalysis::run().
cl::opt< bool > llvm::DoInstrProfNameCompression("enable-name-compression", cl::desc("Enable name/filename string compression"), cl::init(true)) |
Referenced by llvm::coverage::CoverageFilenamesSectionWriter::write().
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") | |||
) |
Referenced by llvm::GenericScheduler::registerRoots(), and llvm::PostGenericScheduler::registerRoots().
|
static |
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::end().
|
extern |
EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.
Definition at line 800 of file EarlyIfConversion.cpp.
Referenced by overridePass().
|
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 1183 of file EarlyIfConversion.cpp.
|
extern |
This pass performs loop invariant code motion on machine instructions.
This variant works before register allocation.
Definition at line 340 of file MachineLICM.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().
|
extern |
Duplicate blocks with unconditional branches into tails of their predecessors.
Variant that works before register allocation.
Definition at line 80 of file TailDuplication.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().
|
extern |
EdgeBundles analysis - Bundle machine CFG edges.
|
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 196 of file Debug.cpp.
Referenced by dbgs().
cl::opt< bool > llvm::EnableDetailedFunctionProperties("enable-detailed-function-properties", cl::Hidden, cl::init(false), cl::desc("Whether or not to compute detailed function properties.")) | ( | "enable-detailed-function-properties" | , |
cl::Hidden | , | ||
cl::init(false) | , | ||
cl::desc("Whether or not to compute detailed function properties.") | |||
) |
Referenced by llvm::FunctionPropertiesInfo::print().
Definition at line 340 of file SampleProfile.cpp.
Definition at line 392 of file TargetPassConfig.cpp.
Referenced by llvm::TargetPassConfig::addBlockPlacement(), addDiscriminators(), llvm::TargetPassConfig::addMachinePasses(), llvm::DILocation::cloneByMultiplyingDuplicationFactor(), llvm::DILocation::cloneWithBaseDiscriminator(), llvm::PseudoProbeHandler::emitPseudoProbe(), llvm::DILocation::getBaseDiscriminator(), llvm::DILocation::getDuplicationFactorFromDiscriminator(), llvm::SampleProfileLoaderBaseImpl< FT >::getInstWeightImpl(), llvm::VPTransformState::setDebugLocFrom(), UnrollAndJamLoop(), and UnrollLoop().
cl::opt< bool > llvm::EnableKnowledgeRetention("enable-knowledge-retention", cl::init(false), cl::Hidden, cl::desc( "enable preservation of attributes throughout code transformation")) |
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().
Enable MemProf context disambiguation for thin link.
Definition at line 311 of file PassBuilderPipelines.cpp.
Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildThinLTODefaultPipeline(), and llvm::FunctionImporter::importFunctions().
Referenced by shouldFuncOptimizeForSizeImpl(), and shouldOptimizeForSizeImpl().
|
static |
|
static |
cl::opt< bool > llvm::EnableVPlanNativePath | ( | "enable-vplan-native-path" | , |
cl::Hidden | , | ||
cl::desc("Enable VPlan-native vectorization path with " "support for outer loop vectorization.") | |||
) |
Definition at line 53 of file VPlan.cpp.
Referenced by collectSupportedLoops(), llvm::InnerLoopVectorizer::emitMemRuntimeChecks(), llvm::VPWidenPHIRecipe::execute(), llvm::InnerLoopVectorizer::fixVectorizedLoop(), llvm::LoopVectorizationPlanner::planInVPlanNativePath(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), and llvm::LoopVectorizationCostModel::setTailFoldingStyles().
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().
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 69 of file InstrProfiling.cpp.
Referenced by InstrumentAllFunctions().
unsigned llvm::ErrorsPrinted = 0 |
Definition at line 25 of file Error.cpp.
Referenced by PrintMessage(), and TableGenMain().
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)) |
|
extern |
ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.
Definition at line 54 of file ExpandPostRAPseudos.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
extern |
Definition at line 110 of file MLInlineAdvisor.cpp.
Referenced by getReleaseModeAdvisor().
|
extern |
This pass inserts FEntry calls.
Definition at line 48 of file FEntryInserter.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
extern |
This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.
Definition at line 84 of file FinalizeISel.cpp.
Referenced by llvm::TargetPassConfig::addCoreISelPasses().
|
extern |
FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g.
during pre-RA scheduling).
Definition at line 98 of file MachineInstrBundle.cpp.
Definition at line 145 of file ConvertUTF.cpp.
Referenced by ConvertUTF16toUTF8(), and ConvertUTF32toUTF8().
|
extern |
The pass fixups statepoint machine instruction to replace usage of caller saved registers with stack slots.
Definition at line 84 of file FixupStatepointCallerSaved.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
inlineconstexpr |
Definition at line 108 of file Sequence.h.
Referenced by llvm::MVT::all_valuetypes(), 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::TargetLoweringBase::initActions(), llvm::MVT::integer_fixedlen_vector_valuetypes(), llvm::MVT::integer_scalable_vector_valuetypes(), llvm::MVT::integer_valuetypes(), llvm::MemoryEffectsBase< LocationEnum >::locations(), llvm::MVT::scalable_vector_valuetypes(), and llvm::MVT::vector_valuetypes().
Referenced by shouldFuncOptimizeForSizeImpl(), and shouldOptimizeForSizeImpl().
FunctionSummary::ForceSummaryHotnessType llvm::ForceSummaryEdgesCold |
Definition at line 67 of file ModuleSummaryAnalysis.cpp.
Referenced by computeFunctionSummary().
Referenced by llvm::PipelineTuningOptions::PipelineTuningOptions().
Definition at line 73 of file Discriminator.h.
Referenced by getFSPassBitEnd().
|
extern |
This pass lays out funclets contiguously.
Definition at line 39 of file FuncletLayout.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses(), llvm::TargetPassConfig::addMachinePasses(), and llvm::AMDGPUPassConfig::AMDGPUPassConfig().
|
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(), and llvm::AMDGPUPassConfig::AMDGPUPassConfig().
|
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().
|
extern |
Definition at line 170 of file GCNCreateVOPD.cpp.
|
extern |
|
extern |
Definition at line 106 of file GCNNSAReassign.cpp.
|
extern |
|
extern |
Definition at line 79 of file GCNPreRAOptimizations.cpp.
|
extern |
Definition at line 760 of file GCNRegPressure.cpp.
|
extern |
Definition at line 494 of file GCNRewritePartialRegUses.cpp.
|
inline |
get_array_pod_sort_comparator - This is an internal helper function used to get type deduction of T right.
Definition at line 1587 of file STLExtras.h.
Referenced by array_pod_sort().
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." | |||
) |
|
inlineconstexpr |
Definition at line 46 of file GlobalValue.h.
Referenced by llvm::InstrProfReaderItaniumRemapper< HashTableImpl >::extractName(), llvm::GlobalValue::getGlobalIdentifier(), and getParsedIRPGOName().
|
constexpr |
Indicate whether a GraphTraits<NodeT>::getNumber() is supported.
Definition at line 106 of file GraphTraits.h.
Definition at line 102 of file ConvertUTF.cpp.
Referenced by ConvertUTF16toUTF32(), ConvertUTF16toUTF8(), ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().
Definition at line 103 of file ConvertUTF.cpp.
Referenced by ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().
|
static |
Definition at line 100 of file ConvertUTF.cpp.
Referenced by ConvertUTF16toUTF32(), ConvertUTF16toUTF8(), ConvertUTF32toUTF16(), and ConvertUTF8toUTF16().
Definition at line 23 of file HeatUtils.cpp.
Referenced by getHeatColor().
Definition at line 22 of file HeatUtils.cpp.
Referenced by getHeatColor().
char & llvm::HexagonCopyHoistingID = HexagonCopyHoisting::ID |
Definition at line 77 of file HexagonCopyHoisting.cpp.
char & llvm::HexagonExpandCondsetsID = HexagonExpandCondsets::ID |
Definition at line 251 of file HexagonExpandCondsets.cpp.
|
extern |
char & llvm::HexagonTfrCleanupID = HexagonTfrCleanup::ID |
Definition at line 78 of file HexagonTfrCleanup.cpp.
Definition at line 826 of file APFloat.cpp.
Definition at line 827 of file APFloat.cpp.
cl::opt< bool > llvm::HintsAllowReordering("hints-allow-reordering", cl::init(true), cl::Hidden, cl::desc("Allow enabling loop hints to reorder " "FP operations during vectorization.")) | ( | "hints-allow-reordering" | , |
cl::init(true) | , | ||
cl::Hidden | , | ||
cl::desc("Allow enabling loop hints to reorder " "FP operations during vectorization.") | |||
) |
Referenced by llvm::LoopVectorizeHints::allowReordering().
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().
|
extern |
IfConverter - This pass performs machine code if conversion.
Definition at line 431 of file IfConversion.cpp.
|
constexpr |
Tag in operand bundle indicating that this bundle should be ignored.
Definition at line 134 of file AssumeBundleQueries.h.
Referenced by findAffectedValues().
|
extern |
ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.
Definition at line 812 of file ImplicitNullChecks.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
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().
|
extern |
Definition at line 828 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
Definition at line 829 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
|
extern |
Definition at line 98 of file InitUndef.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
|
extern |
Definition at line 122 of file MLInlineAdvisor.cpp.
Referenced by getReleaseModeAdvisor().
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") | |||
) |
Definition at line 67 of file InlineAdvisor.cpp.
Referenced by llvm::InlineAdvisor::InlineAdvisor(), and llvm::InlineAdvisor::~InlineAdvisor().
|
static |
Definition at line 116 of file MLRegAllocPriorityAdvisor.cpp.
Referenced by INITIALIZE_PASS().
|
staticconstexpr |
Definition at line 28 of file InstCombine.h.
|
static |
Definition at line 1135 of file InstrProf.cpp.
|
static |
Definition at line 82 of file MLRegAllocEvictAdvisor.h.
|
static |
Definition at line 80 of file MLRegAllocEvictAdvisor.h.
|
static |
Definition at line 102 of file X86IntrinsicsInfo.h.
Referenced by getIntrinsicWithChain(), and verifyIntrinsicTables().
|
static |
Definition at line 358 of file X86IntrinsicsInfo.h.
Referenced by getIntrinsicWithoutChain(), and verifyIntrinsicTables().
|
constexpr |
Detects when type T
is incomplete.
This is true for forward declarations and false for types with a full definition.
Definition at line 2597 of file STLExtras.h.
|
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:
|
inlineconstexpr |
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")) |
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")) |
|
static |
Definition at line 23 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytes().
|
static |
Definition at line 24 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytes().
|
static |
Definition at line 25 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytes().
|
static |
Definition at line 26 of file ASanStackFrameLayout.h.
|
static |
Definition at line 27 of file ASanStackFrameLayout.h.
Referenced by GetShadowBytesAfterScope().
Definition at line 35 of file ASanStackFrameLayout.cpp.
Referenced by ComputeASanStackFrameLayout().
|
extern |
A set of known assumption strings that are accepted without warning and which can be recommended as typo correction.
Referenced by llvm::KnownAssumptionString::KnownAssumptionString().
|
inlineconstexpr |
Definition at line 34 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 30 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 43 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 41 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 36 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 31 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 38 of file SanitizerBinaryMetadata.h.
|
inlineconstexpr |
Definition at line 32 of file SanitizerBinaryMetadata.h.
|
extern |
Definition at line 542 of file LCSSA.cpp.
Referenced by getLoopAnalysisUsage().
|
extern |
LiveDebugValues pass.
Definition at line 91 of file LiveDebugValues.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
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().
|
extern |
LiveRangeShrink pass.
Move instruction close to its definition to shrink the definition's live range.
Definition at line 65 of file LiveRangeShrink.cpp.
|
extern |
LiveStacks pass. An analysis keeping track of the liveness of stack slots.
Definition at line 30 of file LiveStacks.cpp.
|
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 61 of file LiveVariables.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
Metadata attribute names
Definition at line 44 of file UnrollLoop.h.
Referenced by CloneLoopBlocks(), and tryToUnrollLoop().
Definition at line 47 of file UnrollLoop.h.
Referenced by CloneLoopBlocks(), and tryToUnrollLoop().
Definition at line 45 of file UnrollLoop.h.
Referenced by tryToUnrollLoop().
Definition at line 151 of file RISCVBaseInfo.cpp.
Referenced by llvm::RISCVLoadFPImm::getFPImm(), and llvm::RISCVLoadFPImm::getLoadFPImm().
|
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(), and llvm::TargetPassConfig::addMachineSSAOptimization().
|
extern |
Definition at line 784 of file LoopSimplify.cpp.
Referenced by getLoopAnalysisUsage().
char & llvm::LowerInvokePassID = LowerInvokeLegacyPass::ID |
Definition at line 82 of file LowerInvoke.cpp.
|
extern |
Definition at line 582 of file LowerSwitch.cpp.
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") | |||
) |
Referenced by llvm::LTOCodeGenerator::LTOCodeGenerator().
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 | |||
) |
Definition at line 79 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::LTOCodeGenerator(), llvm::LTOCodeGenerator::optimize(), and llvm::ThinLTOCodeGenerator::run().
|
static |
Referenced by llvm::lto::LTO::LTO().
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") | |||
) |
Referenced by llvm::LTOCodeGenerator::LTOCodeGenerator().
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 | |||
) |
Referenced by llvm::LTOCodeGenerator::LTOCodeGenerator(), and llvm::LTOCodeGenerator::optimize().
|
extern |
MachineBlockPlacement - This pass places basic blocks based on branch probabilities.
Definition at line 641 of file MachineBlockPlacement.cpp.
Referenced by llvm::TargetPassConfig::addBlockPlacement(), and overridePass().
|
extern |
MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.
Definition at line 3807 of file MachineBlockPlacement.cpp.
Referenced by llvm::TargetPassConfig::addBlockPlacement().
|
extern |
MachineCFGPrinter pass.
Definition at line 77 of file MachineCFGPrinter.cpp.
|
extern |
This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.
Definition at line 128 of file MachineCombiner.cpp.
|
extern |
MachineCopyPropagation - This pass performs copy propagation on machine instructions.
Definition at line 517 of file MachineCopyPropagation.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), llvm::TargetPassConfig::addOptimizedRegAlloc(), and overridePass().
|
extern |
MachineCSE - This pass performs global CSE on machine instructions.
Definition at line 164 of file MachineCSE.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().
|
extern |
MachineDominanaceFrontier - This pass is a machine dominators analysis.
Definition at line 37 of file MachineDominanceFrontier.cpp.
|
extern |
MachineDominators - This pass is a machine dominators analysis pass.
Definition at line 98 of file MachineDominators.cpp.
Referenced by llvm::LiveIntervalsWrapperPass::getAnalysisUsage().
|
extern |
MachineFunctionPrinterPass - This pass prints out MachineInstr's.
Definition at line 59 of file MachineFunctionPrinterPass.cpp.
|
extern |
MachineLateInstrsCleanup - This pass removes redundant identical instructions after register allocation and rematerialization.
Definition at line 86 of file MachineLateInstrsCleanup.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization().
|
extern |
This pass performs loop invariant code motion on machine instructions.
Definition at line 339 of file MachineLICM.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and overridePass().
|
extern |
MachineLoopInfo - This pass is a loop analysis pass.
Definition at line 60 of file MachineLoopInfo.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::LiveIntervalsWrapperPass::getAnalysisUsage().
|
extern |
This pass performs software pipelining on machine instructions.
Definition at line 229 of file MachinePipeliner.cpp.
|
extern |
MachineRegionInfo - This pass computes SESE regions for machine functions.
|
extern |
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
extern |
MachineScheduler - This pass schedules machine instructions.
Definition at line 264 of file MachineScheduler.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
|
extern |
MachineSinking - This pass performs sinking on machine instructions.
Definition at line 285 of file MachineSink.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization(), and overridePass().
|
extern |
MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.
Definition at line 57 of file MachineTraceMetrics.cpp.
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.") | |||
) |
const unsigned llvm::MAX_SUBTARGET_FEATURES = MAX_SUBTARGET_WORDS * 64 |
Definition at line 35 of file SubtargetFeature.h.
Referenced by llvm::FeatureBitset::size().
Definition at line 34 of file SubtargetFeature.h.
|
constexpr |
Definition at line 44 of file ValueTracking.h.
Referenced by computeConstantRange(), computeKnownBits(), computeKnownBitsFromCond(), computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownFPClass(), computeKnownFPClassFromCond(), ComputeNumSignBitsImpl(), llvm::InstCombiner::getFreelyInvertedImpl(), isGEPKnownNonNull(), isGuaranteedNotToBeUndefOrPoison(), isImpliedCondAndOr(), isImpliedCondICmps(), isImpliedCondition(), isKnownNonEqual(), isKnownNonZero(), isKnownNonZeroFromOperator(), isKnownToBeAPowerOfTwo(), isMaskOrZero(), isSplatValue(), matchSelectPattern(), llvm::InstCombinerImpl::SimplifyDemandedBits(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), and llvm::InstCombinerImpl::takeLog2().
cl::opt< unsigned > llvm::MaxDevirtIterations | ( | "max-devirt-iterations" | , |
cl::ReallyHidden | , | ||
cl::init(4) | |||
) |
Definition at line 330 of file PassBuilderPipelines.cpp.
Referenced by llvm::PassBuilder::buildInlinerPipeline(), and llvm::ModuleInlinerWrapperPass::printPipeline().
Definition at line 308 of file APFloat.cpp.
Referenced by powerOf5().
|
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().
|
static |
Definition at line 56 of file MLRegAllocEvictAdvisor.h.
const unsigned int llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1 |
Definition at line 310 of file APFloat.cpp.
Definition at line 311 of file APFloat.cpp.
Referenced by powerOf5().
Definition at line 309 of file APFloat.cpp.
|
static |
Definition at line 91 of file MLRegAllocEvictAdvisor.h.
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.") | |||
) |
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") | |||
) |
Definition at line 18 of file MipsMCNaCl.h.
Referenced by createMipsNaClELFStreamer(), and llvm::MipsAsmPrinter::emitFunctionEntryLabel().
|
extern |
This pass adds flow sensitive discriminators.
|
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.
|
extern |
Definition at line 69 of file MIRNamerPass.cpp.
|
extern |
MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.
Definition at line 81 of file MIRPrintingPass.cpp.
|
extern |
This pass reads flow sensitive profile.
Definition at line 81 of file MIRSampleProfile.cpp.
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.") | |||
) |
Referenced by llvm::SchedBoundary::getNextResourceCycle().
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.") | |||
) |
Referenced by llvm::SchedBoundary::dumpScheduledState().
|
static |
|
static |
Definition at line 73 of file MLRegAllocEvictAdvisor.h.
Referenced by extractInstructionFeatures().
|
static |
Definition at line 90 of file MLRegAllocEvictAdvisor.h.
Referenced by extractMBBFrequency().
|
static |
Mark the MMO of a load as the last use.
Definition at line 47 of file SIInstrInfo.h.
Referenced by llvm::SIRegisterInfo::buildSpillLoadStore(), llvm::SIInstrInfo::getSerializableMachineMemOperandTargetFlags(), and llvm::SITargetLowering::getTargetMMOFlags().
|
static |
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.
Definition at line 43 of file SIInstrInfo.h.
Referenced by llvm::SIInstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::SITargetLowering::getTargetMMOFlags(), llvm::SITargetLowering::isMemOpHasNoClobberedMemOperand(), and llvm::AMDGPURegisterBankInfo::isScalarLoadLegal().
|
static |
Definition at line 30 of file RISCVInstrInfo.h.
Referenced by llvm::RISCVInstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::RISCVTargetLowering::getTargetMMOFlags(), and llvm::RISCVDAGToDAGISel::Select().
|
static |
Definition at line 32 of file RISCVInstrInfo.h.
Referenced by llvm::RISCVInstrInfo::getSerializableMachineMemOperandTargetFlags(), llvm::RISCVTargetLowering::getTargetMMOFlags(), and llvm::RISCVDAGToDAGISel::Select().
|
static |
Definition at line 31 of file AArch64InstrInfo.h.
Referenced by llvm::AArch64InstrInfo::getSerializableMachineMemOperandTargetFlags(), and llvm::AArch64TargetLowering::getTargetMMOFlags().
|
static |
Definition at line 29 of file AArch64InstrInfo.h.
Referenced by llvm::AArch64InstrInfo::getSerializableMachineMemOperandTargetFlags(), and llvm::AArch64InstrInfo::suppressLdStPair().
Definition at line 830 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
Definition at line 831 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::convertToHexString().
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 57 of file Metadata.h.
Referenced by doesHistoryAllowICP(), getValueProfDataFromInst(), scaleProfData(), and updateIDTMetaData().
Definition at line 57 of file MemProfiler.cpp.
Referenced by readMemprof(), and runNewPMPasses().
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().
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. ")) |
Referenced by llvm::SampleProfileLoaderBaseImpl< FT >::getFunctionLoc().
|
constexpr |
Definition at line 153 of file InlineModelFeatureMaps.h.
|
static |
Definition at line 65 of file MLRegAllocEvictAdvisor.h.
Referenced by INITIALIZE_PASS().
|
extern |
Definition at line 287 of file NVPTXCtorDtorLowering.cpp.
Definition at line 135 of file ConvertUTF.cpp.
Referenced by ConvertUTF8toUTF16(), and ConvertUTF8toUTF32Impl().
|
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().
|
static |
Referenced by llvm::sandboxir::BottomUpVec::runOnFunction().
Definition at line 379 of file VE.h.
Referenced by getLegalVectorType().
Referenced by llvm::BasicTTIImplBase< T >::getUnrollingPreferences().
|
extern |
This pass implements the "patchable-function" attribute.
Definition at line 66 of file PatchableFunction.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses(), and llvm::TargetPassConfig::addMachinePasses().
|
extern |
PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.
Definition at line 778 of file PeepholeOptimizer.cpp.
Referenced by llvm::TargetPassConfig::addMachineSSAOptimization().
Definition at line 27 of file AArch64PerfectShuffle.h.
Referenced by GeneratePerfectShuffle(), getPerfectShuffleCost(), llvm::ARMTargetLowering::isShuffleMaskLegal(), and LowerVECTOR_SHUFFLE().
|
static |
Definition at line 72 of file MLRegAllocPriorityAdvisor.cpp.
Referenced by INITIALIZE_PASS().
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 346 of file PGOInstrumentation.cpp.
Referenced by annotateAllFunctions(), and getGVDT().
|
static |
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().
Referenced by isPGSOColdCodeOnly().
Referenced by isPGSOColdCodeOnly().
Referenced by isPGSOColdCodeOnly().
Referenced by isPGSOColdCodeOnly().
|
extern |
Referenced by shouldFuncOptimizeForSizeImpl(), and shouldOptimizeForSizeImpl().
|
extern |
Referenced by shouldFuncOptimizeForSizeImpl(), and shouldOptimizeForSizeImpl().
Referenced by isPGSOColdCodeOnly().
|
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 186 of file PHIElimination.cpp.
Referenced by llvm::TargetPassConfig::addFastRegAlloc(), and llvm::TargetPassConfig::addOptimizedRegAlloc().
|
constexpr |
Definition at line 1889 of file Instructions.h.
Referenced by llvm::slpvectorizer::BoUpSLP::ShuffleCostEstimator::add(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::add(), addMask(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::adjustExtracts(), buildUseMask(), calculateShufflevectorMask(), canCreateUndefOrPoison(), canonicalizeInsertSplat(), llvm::ShuffleVectorInst::commute(), ConstantFoldShuffleVectorInstruction(), llvm::ShuffleVectorInst::convertShuffleMaskForBitcode(), 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::RISCVTTIImpl::getShuffleCost(), llvm::X86TTIImpl::getShuffleCost(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), inversePermutation(), isFixedVectorShuffle(), llvm::ShuffleVectorInst::isOneUseSingleSourceMask(), llvm::ShuffleVectorInst::isReplicationMask(), isReplicationMaskWithParams(), llvm::ShuffleVectorInst::isValidOperands(), LLVMGetUndefMaskElem(), lookThroughShuffles(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), performExtractsShuffleAction(), PrintShuffleMask(), processShuffleMasks(), llvm::slpvectorizer::BoUpSLP::reorderBottomToTop(), reorderOrder(), reorderReuses(), reorderScalars(), llvm::slpvectorizer::BoUpSLP::reorderTopToBottom(), scalarizeMaskedExpandLoad(), llvm::InstCombinerImpl::SimplifyDemandedVectorElts(), simplifyReductionOperand(), simplifyShuffleVectorInst(), transformScalarShuffleIndiciesToVector(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), and llvm::InstCombinerImpl::visitCallInst().
|
extern |
PostMachineScheduler - This pass schedules machine instructions postRA.
Definition at line 295 of file MachineScheduler.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
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")) | |||
) |
Referenced by llvm::PostGenericScheduler::initPolicy().
|
extern |
PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.
Definition at line 61 of file PostRAHazardRecognizer.cpp.
|
extern |
This pass perform post-ra machine sink for COPY instructions.
Definition at line 1939 of file MachineSink.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), and overridePass().
|
extern |
PostRAScheduler - This pass performs post register allocation scheduling.
Definition at line 191 of file PostRASchedulerList.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses(), and overridePass().
|
extern |
Definition at line 139 of file PPCGenScalarMASSEntries.cpp.
|
extern |
Definition at line 192 of file PPCLowerMASSVEntries.cpp.
|
extern |
Definition at line 372 of file PPCVSXFMAMutate.cpp.
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"))) |
|
static |
Referenced by llvm::BlockFrequencyInfo::calculate().
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.") | |||
) |
Definition at line 78 of file MachineBlockFrequencyInfo.cpp.
Referenced by llvm::BlockFrequencyInfo::calculate(), and llvm::MachineBlockFrequencyInfo::calculate().
|
extern |
cl::opt< bool > llvm::PrintDAGs("misched-print-dags", cl::Hidden, cl::desc("Print schedule DAGs")) |
|
static |
Referenced by llvm::MachineBlockFrequencyInfo::calculate().
cl::opt< bool > llvm::PrintPipelinePasses("print-pipeline-passes", cl::desc("Print a '-passes' compatible string describing the pipeline " "(best-effort only).")) |
Common option used by multiple tools to print pipeline passes.
Referenced by runNewPMPasses().
|
extern |
ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
Definition at line 58 of file ProcessImplicitDefs.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
cl::opt< InstrProfCorrelator::ProfCorrelatorKind > llvm::ProfileCorrelate | ( | "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")) | |||
) |
Definition at line 356 of file PGOInstrumentation.cpp.
Referenced by createIRLevelProfileFlagVar().
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.")) |
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.")) |
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.")) |
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) |
Referenced by getLayoutSuccessorProbThreshold().
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")) |
Referenced by llvm::ProfileSummaryBuilder::getColdCountThreshold().
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.")) |
Referenced by llvm::ProfileSummaryBuilder::getColdCountThreshold().
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.")) |
Referenced by llvm::ProfileSummaryBuilder::getHotCountThreshold().
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")) |
Referenced by llvm::ProfileSummaryBuilder::getHotCountThreshold().
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.")) |
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.")) |
|
extern |
PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.
Definition at line 146 of file PrologEpilogInserter.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
Definition at line 25 of file PseudoProbe.h.
Referenced by llvm::AsmPrinter::doInitialization(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::SampleProfileProber::instrumentOneFunc(), llvm::PseudoProbeManager::moduleIsProbed(), llvm::PseudoProbeManager::PseudoProbeManager(), and llvm::SampleProfileProbePass::run().
|
staticconstexpr |
Definition at line 38 of file PseudoProbe.h.
Referenced by extractProbe(), llvm::SampleProfileProber::instrumentOneFunc(), and setProbeDistributionFactor().
|
extern |
Definition at line 74 of file R600ClauseMergePass.cpp.
|
extern |
Definition at line 683 of file R600ControlFlowFinalizer.cpp.
|
extern |
Definition at line 57 of file R600ExpandSpecialInstrs.cpp.
|
extern |
Definition at line 399 of file R600Packetizer.cpp.
|
extern |
Definition at line 134 of file R600OptimizeVectorRegisters.cpp.
|
extern |
Basic register allocator.
Definition at line 130 of file RegAllocBasic.cpp.
|
extern |
Greedy register allocator.
Definition at line 150 of file RegAllocGreedy.cpp.
|
extern |
RegisterCoalescer - This pass merges live ranges to eliminate copies.
Definition at line 405 of file RegisterCoalescer.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
|
extern |
|
extern |
Definition at line 1198 of file AVRISelLowering.cpp.
Referenced by analyzeArguments(), and analyzeReturnValues().
Definition at line 1203 of file AVRISelLowering.cpp.
Referenced by analyzeArguments(), and analyzeReturnValues().
Registers for calling conventions, ordered in reverse as required by ABI.
Both arrays must be of the same length.
Definition at line 1192 of file AVRISelLowering.cpp.
Referenced by analyzeArguments(), and analyzeReturnValues().
Definition at line 1196 of file AVRISelLowering.cpp.
Referenced by analyzeArguments(), and analyzeReturnValues().
cl::opt< std::string > llvm::RemarksFilename | ( | "lto-pass-remarks-output" | , |
cl::desc("Output filename for pass remarks") | , | ||
cl::value_desc("filename") | |||
) |
Definition at line 80 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), setupLLVMOptimizationRemarks(), and llvm::lto::setupLLVMOptimizationRemarks().
cl::opt< std::string > llvm::RemarksFormat | ( | "lto-pass-remarks-format" | , |
cl::desc("The format used for serializing remarks (default: YAML)") | , | ||
cl::value_desc("format") | , | ||
cl::init("yaml") | |||
) |
Definition at line 85 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::remarks::createRemarkSerializer(), llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), llvm::remarks::RemarkLinker::serialize(), setupLLVMOptimizationRemarks(), and llvm::lto::setupLLVMOptimizationRemarks().
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 | |||
) |
Definition at line 84 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), setupLLVMOptimizationRemarks(), and llvm::lto::setupLLVMOptimizationRemarks().
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") | |||
) |
Definition at line 81 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), setupLLVMOptimizationRemarks(), and llvm::lto::setupLLVMOptimizationRemarks().
cl::opt< bool > llvm::RemarksWithHotness | ( | "lto-pass-remarks-with-hotness" | , |
cl::desc("With PGO, include profile count in optimization remarks") | , | ||
cl::Hidden | |||
) |
Definition at line 82 of file ThinLTOCodeGenerator.cpp.
Referenced by llvm::LTOCodeGenerator::optimize(), llvm::ThinLTOCodeGenerator::run(), setupLLVMOptimizationRemarks(), and llvm::lto::setupLLVMOptimizationRemarks().
|
extern |
RemoveLoadsIntoFakeUses pass.
Definition at line 69 of file RemoveLoadsIntoFakeUses.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
extern |
RemoveRedundantDebugValues pass.
Definition at line 61 of file RemoveRedundantDebugValues.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
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 113 of file RenameIndependentSubregs.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc().
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.
Referenced by llvm::SimplifyCFGPass::run(), llvm::AMDGPUUnifyDivergentExitNodesPass::run(), and simplifyFunctionCFG().
Definition at line 127 of file MLInlineAdvisor.cpp.
|
extern |
Definition at line 24 of file RISCVBaseInfo.cpp.
Referenced by llvm::RISCVFeatures::parseFeatureBits().
|
extern |
Definition at line 965 of file RISCVInsertVSETVLI.cpp.
cl::opt< int > llvm::SampleColdCallSiteThreshold("sample-profile-cold-inline-threshold", cl::Hidden, cl::init(45), cl::desc("Threshold for inlining cold callsites")) |
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.")) |
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.")) |
Referenced by llvm::SampleProfileLoaderBaseImpl< FT >::propagateWeights().
Referenced by canFoldTermCondOfLoop(), gatherUnrollingPreferences(), rewriteLoopExitValues(), and UnrollAndJamLoop().
|
staticconstexpr |
Definition at line 131 of file APFloat.cpp.
Referenced by llvm::APFloatBase::BFloat(), and llvm::detail::IEEEFloat::bitcastToAPInt().
|
staticconstexpr |
Definition at line 158 of file APFloat.cpp.
Referenced by llvm::APFloatBase::Bogus(), llvm::detail::DoubleAPFloat::DoubleAPFloat(), and llvm::detail::IEEEFloat::operator=().
|
staticconstexpr |
Definition at line 155 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float4E2M1FN().
|
staticconstexpr |
Definition at line 153 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float6E2M3FN().
|
staticconstexpr |
Definition at line 151 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float6E3M2FN().
|
staticconstexpr |
Definition at line 145 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E3M4().
|
staticconstexpr |
Definition at line 138 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E4M3().
|
staticconstexpr |
Definition at line 143 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E4M3B11FNUZ().
|
staticconstexpr |
Definition at line 139 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E4M3FN().
|
staticconstexpr |
Definition at line 141 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E4M3FNUZ().
|
staticconstexpr |
Definition at line 135 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E5M2().
|
staticconstexpr |
Definition at line 136 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E5M2FNUZ().
|
staticconstexpr |
Definition at line 147 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::Float8E8M0FNU().
|
staticconstexpr |
Definition at line 146 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::FloatTF32().
|
staticconstexpr |
Definition at line 133 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), llvm::detail::IEEEFloat::convertToDouble(), llvm::APFloat::convertToDouble(), llvm::detail::DoubleAPFloat::DoubleAPFloat(), llvm::APFloatBase::IEEEdouble(), llvm::detail::IEEEFloat::IEEEFloat(), llvm::detail::DoubleAPFloat::makeLargest(), and llvm::detail::DoubleAPFloat::makeSmallestNormalized().
|
staticconstexpr |
Definition at line 130 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::IEEEhalf().
|
staticconstexpr |
Definition at line 134 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), and llvm::APFloatBase::IEEEquad().
|
staticconstexpr |
Definition at line 132 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), llvm::detail::IEEEFloat::convertToFloat(), llvm::APFloat::convertToFloat(), llvm::detail::IEEEFloat::IEEEFloat(), and llvm::APFloatBase::IEEEsingle().
|
staticconstexpr |
Definition at line 159 of file APFloat.cpp.
Referenced by llvm::detail::DoubleAPFloat::bitcastToAPInt(), llvm::APFloat::convert(), llvm::detail::DoubleAPFloat::convertFromAPInt(), llvm::detail::DoubleAPFloat::convertFromSignExtendedInteger(), llvm::detail::DoubleAPFloat::convertFromString(), llvm::detail::DoubleAPFloat::convertFromZeroExtendedInteger(), llvm::detail::DoubleAPFloat::convertToHexString(), llvm::detail::DoubleAPFloat::convertToInteger(), llvm::detail::DoubleAPFloat::divide(), llvm::detail::DoubleAPFloat::DoubleAPFloat(), llvm::detail::frexp(), llvm::detail::DoubleAPFloat::fusedMultiplyAdd(), llvm::detail::DoubleAPFloat::getExactInverse(), llvm::detail::DoubleAPFloat::isInteger(), llvm::detail::DoubleAPFloat::makeLargest(), llvm::detail::DoubleAPFloat::makeSmallest(), llvm::detail::DoubleAPFloat::makeSmallestNormalized(), llvm::detail::DoubleAPFloat::mod(), llvm::detail::DoubleAPFloat::next(), llvm::APFloatBase::PPCDoubleDouble(), llvm::detail::DoubleAPFloat::remainder(), llvm::detail::DoubleAPFloat::roundToIntegral(), llvm::detail::scalbn(), and llvm::detail::DoubleAPFloat::toString().
|
staticconstexpr |
Definition at line 160 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), llvm::APFloat::convert(), llvm::detail::DoubleAPFloat::convertFromAPInt(), llvm::detail::DoubleAPFloat::convertFromSignExtendedInteger(), llvm::detail::DoubleAPFloat::convertFromString(), llvm::detail::DoubleAPFloat::convertFromZeroExtendedInteger(), llvm::detail::DoubleAPFloat::convertToHexString(), llvm::detail::DoubleAPFloat::convertToInteger(), llvm::detail::DoubleAPFloat::divide(), llvm::detail::DoubleAPFloat::fusedMultiplyAdd(), llvm::detail::DoubleAPFloat::getExactInverse(), llvm::detail::DoubleAPFloat::mod(), llvm::detail::DoubleAPFloat::next(), llvm::APFloatBase::PPCDoubleDoubleLegacy(), llvm::detail::DoubleAPFloat::remainder(), llvm::detail::DoubleAPFloat::roundToIntegral(), and llvm::detail::DoubleAPFloat::toString().
|
staticconstexpr |
Definition at line 157 of file APFloat.cpp.
Referenced by llvm::detail::IEEEFloat::bitcastToAPInt(), llvm::detail::IEEEFloat::convert(), llvm::detail::IEEEFloat::makeNaN(), and llvm::APFloatBase::x87DoubleExtended().
Referenced by llvm::PipelineTuningOptions::PipelineTuningOptions().
Referenced by llvm::PipelineTuningOptions::PipelineTuningOptions().
|
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(), and llvm::AMDGPUPassConfig::AMDGPUPassConfig().
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")) | ( | "assume-preserve-all" | , |
cl::init(false) | , | ||
cl::Hidden | , | ||
cl::desc("enable preservation of all attributes. even those that are " "unlikely to be useful") | |||
) |
|
extern |
ShrinkWrap pass. Look for the best place to insert save and restore.
Definition at line 287 of file ShrinkWrap.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().
|
extern |
|
extern |
Definition at line 194 of file SIFixSGPRCopies.cpp.
|
extern |
|
extern |
|
extern |
Definition at line 91 of file SIFormMemoryClauses.cpp.
|
extern |
Definition at line 272 of file SIInsertHardClauses.cpp.
|
extern |
Definition at line 1131 of file SIInsertWaitcnts.cpp.
|
extern |
Definition at line 66 of file SILateBranchLowering.cpp.
|
extern |
Definition at line 898 of file SILoadStoreOptimizer.cpp.
|
extern |
Definition at line 183 of file SILowerControlFlow.cpp.
|
extern |
Definition at line 934 of file SILowerI1Copies.cpp.
|
extern |
Definition at line 102 of file SILowerSGPRSpills.cpp.
|
extern |
Definition at line 84 of file SILowerWWMCopies.cpp.
|
extern |
Definition at line 2839 of file SIMemoryLegalizer.cpp.
|
extern |
|
extern |
Definition at line 112 of file SIOptimizeExecMasking.cpp.
|
extern |
Definition at line 75 of file SIOptimizeExecMaskingPreRA.cpp.
|
extern |
Definition at line 634 of file SIOptimizeVGPRLiveRange.cpp.
|
extern |
|
extern |
Definition at line 69 of file SIPostRABundler.cpp.
|
extern |
Definition at line 90 of file SIPreAllocateWWMRegs.cpp.
|
extern |
|
extern |
|
extern |
Definition at line 268 of file SIWholeQuadMode.cpp.
const int llvm::SIZE_LONG = 4 |
Definition at line 22 of file AVRMCELFStreamer.h.
Referenced by llvm::AVRMCELFStreamer::emitValueForModiferKind().
const int llvm::SIZE_WORD = 2 |
Definition at line 23 of file AVRMCELFStreamer.h.
Referenced by llvm::AVRMCELFStreamer::emitValueForModiferKind().
Forward declaration of SmallVector so that calculateSmallVectorDefaultInlinedElements can reference sizeof(SmallVector<T, 0>)
.
Definition at line 1122 of file SmallVector.h.
cl::opt< bool > llvm::SortProfiledSCC("sort-profiled-scc-member", cl::init(true), cl::Hidden, cl::desc("Sort profiled recursion by edge weights.")) |
|
extern |
SpillPlacement analysis.
Suggest optimal placement of spill code between basic blocks.
Definition at line 49 of file SpillPlacement.cpp.
SourceMgr llvm::SrcMgr |
Definition at line 24 of file Error.cpp.
Referenced by createAMDGPUCustomBehaviour(), llvm::Target::createCustomBehaviour(), llvm::mca::Context::createDefaultPipeline(), llvm::mca::Context::createInOrderPipeline(), llvm::MachineModuleInfoWrapperPass::doInitialization(), getLocCookie(), llvm::MCContext::getSourceManager(), initializeRecordStreamer(), llvm::MCGenDwarfLabelEntry::Make(), PrintError(), PrintMessage(), PrintWarning(), llvm::MachineModuleAnalysis::run(), TableGenMain(), TableGenParseFile(), and llvm::SourceMgr::takeSourceBuffersFrom().
|
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().
|
extern |
StackFramePrinter - This pass prints the stack frame layout and variable mappings.
Definition at line 284 of file StackFrameLayoutAnalysisPass.cpp.
|
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 86 of file StackMapLivenessAnalysis.cpp.
Referenced by llvm::AMDGPUPassConfig::addIRPasses(), llvm::TargetPassConfig::addMachinePasses(), and llvm::AMDGPUPassConfig::AMDGPUPassConfig().
|
extern |
StackSlotColoring - This pass performs stack slot coloring.
Definition at line 183 of file StackSlotColoring.cpp.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and overridePass().
Definition at line 378 of file VE.h.
Referenced by getLegalVectorType(), isPackedVectorType(), and splitVectorType().
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) |
Referenced by getLayoutSuccessorProbThreshold(), and llvm::MachineBranchProbabilityInfo::isEdgeHot().
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().
cl::opt< bool > llvm::SwpEnableCopyToPhi("pipeliner-enable-copytophi", cl::ReallyHidden, cl::init(true), cl::desc("Enable CopyToPhi DAG Mutation")) |
Referenced by llvm::SwingSchedulerDAG::SwingSchedulerDAG().
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().
|
extern |
TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.
Definition at line 79 of file TailDuplication.cpp.
Referenced by llvm::TargetPassConfig::addMachineLateOptimization(), and overridePass().
|
static |
Definition at line 40 of file TensorSpec.cpp.
Referenced by toString().
|
extern |
Definition at line 23 of file XtensaTargetMachine.h.
Referenced by getTheXtensaTarget().
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().
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.
Definition at line 119 of file ConvertUTF.cpp.
Referenced by ConvertUTF8toUTF16(), ConvertUTF8toUTF32Impl(), getNumBytesForUTF8(), getUTF8SequenceSize(), isLegalUTF8Sequence(), and isLegalUTF8String().
|
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(), and llvm::TargetPassConfig::addOptimizedRegAlloc().
|
extern |
UnpackMachineBundles - This pass unpack machine instruction bundles.
Definition at line 42 of file MachineInstrBundle.cpp.
|
extern |
UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.
Referenced by llvm::TargetPassConfig::addOptimizedRegAlloc(), and llvm::LiveVariablesWrapperPass::getAnalysisUsage().
cl::opt< bool > llvm::UseContextLessSummary("profile-summary-contextless", cl::Hidden, cl::desc("Merge context profiles before calculating thresholds.")) |
cl::opt< bool > llvm::UseIterativeBFIInference("use-iterative-bfi-inference", cl::Hidden, cl::desc("Apply an iterative post-processing to infer correct BFI counts")) |
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) | |||
) |
Definition at line 16 of file MCAsmInfoXCOFF.cpp.
Referenced by llvm::MCAsmInfo::MCAsmInfo(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().
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.")) |
Referenced by llvm::LiveIntervals::getRegUnit().
|
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 40 of file Dominators.cpp.
Referenced by llvm::FunctionToLoopPassAdaptor::run(), llvm::PostDominatorTreeWrapperPass::verifyAnalysis(), and llvm::DominatorTreeWrapperPass::verifyAnalysis().
|
static |
Referenced by llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::end().
|
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().
bool llvm::VerifyMachineDomInfo = false |
Definition at line 30 of file MachineDominators.cpp.
Referenced by llvm::MachineDominatorTreeWrapperPass::verifyAnalysis(), and llvm::MachinePostDominatorTreeWrapperPass::verifyAnalysis().
|
extern |
Enables verification of MemorySSA.
The checks which this flag enables is exensive and disabled by default unless EXPENSIVE_CHECKS
is defined. The flag -verify-memoryssa
can be used to selectively enable the verification without re-compilation.
Definition at line 84 of file MemorySSA.cpp.
Referenced by deleteDeadLoop(), ehAwareSplitEdge(), hoistRegion(), injectPendingInvariantConditions(), mergeBlocksIntoPredecessors(), promoteLoopAccessesToScalars(), llvm::FunctionToLoopPassAdaptor::run(), llvm::LoopSinkPass::run(), llvm::LoopInstSimplifyPass::run(), llvm::LoopRotatePass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::LoopFlattenPass::run(), llvm::MemCpyOptPass::runImpl(), runMoveAutoInit(), simplifyLoopInst(), simplifyOneLoop(), sinkRegion(), splitBlockBefore(), turnGuardIntoBranch(), turnSelectIntoBranch(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), unswitchTrivialSwitch(), and llvm::MemorySSAWrapperPass::verifyAnalysis().
|
extern |
Definition at line 151 of file ScalarEvolution.cpp.
Referenced by llvm::FunctionToLoopPassAdaptor::run(), llvm::LoopVectorizePass::runImpl(), and llvm::ScalarEvolutionWrapperPass::verifyAnalysis().
cl::opt< bool > llvm::VerifyScheduling("verify-misched", cl::Hidden, cl::desc("Verify machine instrs before and after machine scheduling")) |
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.") | |||
) |
Definition at line 66 of file MachineBlockFrequencyInfo.cpp.
Referenced by annotateAllFunctions(), llvm::BlockFrequencyInfo::calculate(), and llvm::MachineBlockFrequencyInfo::calculate().
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 235 of file MachineBlockPlacement.cpp.
Referenced by getGVDT().
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.") | |||
) |
Definition at line 70 of file MachineBlockFrequencyInfo.cpp.
Referenced by llvm::DOTGraphTraits< BlockFrequencyInfo * >::getEdgeAttributes(), llvm::DOTGraphTraits< MachineBlockFrequencyInfo * >::getEdgeAttributes(), llvm::DOTGraphTraits< BlockFrequencyInfo * >::getNodeAttributes(), and llvm::DOTGraphTraits< MachineBlockFrequencyInfo * >::getNodeAttributes().
|
static |
Referenced by llvm::MachineBlockFrequencyInfo::calculate(), and getGVDT().
cl::opt< bool > llvm::ViewMISchedDAGs("view-misched-dags", cl::Hidden, cl::desc("Pop up a window to show MISched dags after they are processed")) |
|
extern |
VirtRegRewriter pass.
Rewrite virtual registers to physical registers as assigned in VirtRegMap.
Definition at line 250 of file VirtRegMap.cpp.
Referenced by llvm::TargetPassConfig::addRegAssignAndRewriteOptimized().
|
extern |
Referenced by llvm::WebAssemblyAsmPrinter::EmitTargetFeatures().
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.")) | |||
) |
A command line argument to set the window scheduling option.
|
extern |
This pass inserts the XRay instrumentation sleds if they are supported by the target platform.
Definition at line 276 of file XRayInstrumentation.cpp.
Referenced by llvm::TargetPassConfig::addMachinePasses().