LLVM 19.0.0git
Namespaces | Functions | Variables
Passes.h File Reference
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/Discriminator.h"
#include "llvm/CodeGen/RegAllocCommon.h"
#include <functional>
#include <string>

Go to the source code of this file.


namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::vfs


FunctionPassllvm::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 * 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?).
MachineFunctionPass * llvm::createGCEmptyBasicBlocksPass ()
 createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without real code) appear as the result of optimization passes removing instructions.
MachineFunctionPassllvm::createBasicBlockSectionsPass ()
 createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections.
MachineFunctionPass * llvm::createBasicBlockPathCloningPass ()
MachineFunctionPass * llvm::createMachineFunctionSplitterPass ()
 createMachineFunctionSplitterPass - This pass splits machine functions using profile information.
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.
MachineFunctionPass * llvm::createStackFrameLayoutAnalysisPass ()
 StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool.
MachineFunctionPassllvm::createPrintMIRPass (raw_ostream &OS)
 MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format.
MachineFunctionPass * llvm::createResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel)
 This pass resets a MachineFunction when it has the FailedISel property as if it was just created.
FunctionPassllvm::createCodeGenPrepareLegacyPass ()
 createCodeGenPrepareLegacyPass - Transform the code to expose more pattern matching during instruction selection.
FunctionPassllvm::createComplexDeinterleavingPass (const TargetMachine *TM)
 This pass implements generation of target-specific intrinsics to support handling of complex number arithmetic.
FunctionPassllvm::createVirtRegRewriter (bool ClearVirtRegs=true)
FunctionPassllvm::createFastRegisterAllocator ()
 FastRegisterAllocation Pass - This pass register allocates as fast as possible.
FunctionPassllvm::createFastRegisterAllocator (RegClassFilterFunc F, bool ClearVirtRegs)
FunctionPassllvm::createBasicRegisterAllocator ()
 BasicRegisterAllocation Pass - This pass implements a degenerate global register allocator using the basic regalloc framework.
FunctionPassllvm::createBasicRegisterAllocator (RegClassFilterFunc F)
FunctionPassllvm::createGreedyRegisterAllocator ()
 Greedy register allocation pass - This pass implements a global register allocator for optimized builds.
FunctionPassllvm::createGreedyRegisterAllocator (RegClassFilterFunc F)
FunctionPassllvm::createDefaultPBQPRegisterAllocator ()
 PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean Quadratic Prograaming (PBQP) based register allocator.
MachineFunctionPassllvm::createPrologEpilogInserterPass ()
FunctionPassllvm::createIfConverter (std::function< bool(const MachineFunction &)> Ftor)
FunctionPass * llvm::createGCLoweringPass ()
 GCLowering Pass - Used by gc.root to perform its default lowering operations.
FunctionPassllvm::createShadowStackGCLoweringPass ()
 ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.
MachineFunctionPassllvm::createMachineCopyPropagationPass (bool UseCopyInstr)
FunctionPassllvm::createStackProtectorPass ()
 createStackProtectorPass - This pass adds stack protectors to functions.
FunctionPass * llvm::createMachineVerifierPass (const std::string &Banner)
 createMachineVerifierPass - This pass verifies cenerated machine code instructions for correctness.
FunctionPassllvm::createDwarfEHPass (CodeGenOptLevel OptLevel)
 createDwarfEHPass - This pass mulches exception handling code into a form adapted to code generation.
FunctionPass * llvm::createWinEHPass (bool DemoteCatchSwitchPHIOnly=false)
 createWinEHPass - Prepares personality functions used by MSVC on Windows, in addition to the Itanium LSDA based personalities.
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.
FunctionPassllvm::createWasmEHPass ()
 createWasmEHPass - This pass adapts exception handling code to use WebAssembly's exception handling scheme.
FunctionPassllvm::createUnpackMachineBundles (std::function< bool(const MachineFunction &)> Ftor)
FunctionPassllvm::createInterleavedAccessPass ()
 InterleavedAccess Pass - This pass identifies and matches interleaved memory accesses to target specific intrinsics.
FunctionPassllvm::createInterleavedLoadCombinePass ()
 InterleavedLoadCombines Pass - This pass identifies interleaved loads and combines them into wide loads detectable by InterleavedAccessPass.
ModulePass * llvm::createLowerEmuTLSPass ()
 LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all TLS variables for the emulated TLS model.
ModulePassllvm::createPreISelIntrinsicLoweringPass ()
 This pass lowers the @llvm.load.relative and @llvm.objc.
Passllvm::createGlobalMergePass (const TargetMachine *TM, unsigned MaximalOffset, bool OnlyOptimizeForSize=false, bool MergeExternalByDefault=false)
 GlobalMerge - This pass merges internal (by default) globals into structs to enable reuse of a base pointer by indexed addressing modes.
FunctionPassllvm::createSafeStackPass ()
 This pass splits the stack into a safe stack and an unsafe stack to protect against stack-based overflow vulnerabilities.
FunctionPassllvm::createRegUsageInfoCollector ()
 This pass is executed POST-RA to collect which physical registers are preserved by given machine function.
FunctionPassllvm::createRegUsageInfoPropPass ()
 Return a MachineFunction pass that identifies call sites and propagates register usage information of callee to caller if available with PysicalRegisterUsageInfo pass.
FunctionPassllvm::createFreeMachineFunctionPass ()
 This pass frees the memory occupied by the MachineFunction.
ModulePassllvm::createMachineOutlinerPass (bool RunOnAllFunctions=true)
 This pass performs outlining on machine instructions directly before printing assembly.
FunctionPassllvm::createExpandReductionsPass ()
 This pass expands the reduction intrinsics into sequences of shuffles.
FunctionPassllvm::createReplaceWithVeclibLegacyPass ()
FunctionPassllvm::createExpandVectorPredicationPass ()
 This pass expands the vector predication intrinsics into unpredicated instructions with selects or just the explicit vector length into the predicate mask.
FunctionPassllvm::createExpandLargeDivRemPass ()
FunctionPassllvm::createExpandLargeFpConvertPass ()
FunctionPassllvm::createExpandMemCmpLegacyPass ()
FunctionPassllvm::createBreakFalseDeps ()
 Creates Break False Dependencies pass.
FunctionPassllvm::createIndirectBrExpandPass ()
FunctionPass * llvm::createCFIFixup ()
 Creates CFI Fixup pass.
FunctionPass * llvm::createCFIInstrInserter ()
 Creates CFI Instruction Inserter pass.
FunctionPass * llvm::createCFGuardLongjmpPass ()
 Creates CFGuard longjmp target identification pass.
FunctionPass * llvm::createEHContGuardCatchretPass ()
 Creates EHContGuard catchret target identification pass.
FunctionPassllvm::createHardwareLoopsLegacyPass ()
 Create Hardware Loop pass.
FunctionPassllvm::createPseudoProbeInserter ()
 This pass inserts pseudo probe annotation for callsite profiling.
FunctionPassllvm::createTypePromotionLegacyPass ()
 Create IR Type Promotion pass.
FunctionPass * llvm::createMIRAddFSDiscriminatorsPass (sampleprof::FSDiscriminatorPass P)
 Add Flow Sensitive Discriminators.
FunctionPassllvm::createMIRProfileLoaderPass (std::string File, std::string RemappingFile, sampleprof::FSDiscriminatorPass P, IntrusiveRefCntPtr< vfs::FileSystem > FS)
 Read Flow Sensitive Profile.
ModulePassllvm::createDebugifyMachineModulePass ()
 Creates MIR Debugify pass.
ModulePassllvm::createStripDebugMachineModulePass (bool OnlyDebugified)
 Creates MIR Strip Debug pass.
ModulePassllvm::createCheckDebugMachineModulePass ()
 Creates MIR Check Debug pass.
FunctionPassllvm::createX86LowerAMXTypePass ()
 The pass transforms load/store <256 x i32> to AMX load/store intrinsics or split the data to two <128 x i32>.
FunctionPassllvm::createX86LowerAMXIntrinsicsPass ()
 The pass transforms amx intrinsics to scalar operation if the function has optnone attribute or it is O0.
FunctionPassllvm::createRegAllocScoringPass ()
 When learning an eviction policy, extract score(reward) information, otherwise this does nothing.
ModulePass * llvm::createJMCInstrumenterPass ()
 JMC instrument pass.
FunctionPassllvm::createSelectOptimizePass ()
 This pass converts conditional moves to conditional jumps when profitable.
FunctionPassllvm::createCallBrPass ()
FunctionPassllvm::createKCFIPass ()
 Lowers KCFI operand bundles for indirect calls.


charllvm::AtomicExpandID = AtomicExpandLegacy::ID
 AtomicExpandID – Lowers atomic operations in terms of either cmpxchg load-linked/store-conditional loops.
charllvm::MachineLoopInfoID = MachineLoopInfo::ID
 MachineLoopInfo - This pass is a loop analysis pass.
charllvm::MachineDominatorsID = MachineDominatorTreeWrapperPass::ID
 MachineDominators - This pass is a machine dominators analysis pass.
charllvm::MachineDominanceFrontierID = MachineDominanceFrontier::ID
 MachineDominanaceFrontier - This pass is a machine dominators analysis.
 MachineRegionInfo - This pass computes SESE regions for machine functions.
 EdgeBundles analysis - Bundle machine CFG edges.
charllvm::LiveVariablesID = LiveVariables::ID
 LiveVariables pass - This pass computes the set of blocks in which each variable is life and sets machine operand kill flags.
charllvm::PHIEliminationID = PHIElimination::ID
 PHIElimination - This pass eliminates machine instruction PHI nodes by inserting copy instructions.
charllvm::LiveIntervalsID = LiveIntervals::ID
 LiveIntervals - This analysis keeps track of the live ranges of virtual and physical registers.
charllvm::LiveStacksID = LiveStacks::ID
 LiveStacks pass. An analysis keeping track of the liveness of stack slots.
charllvm::TwoAddressInstructionPassID = TwoAddressInstructionPass::ID
 TwoAddressInstruction - This pass reduces two-address instructions to use two operands.
charllvm::ProcessImplicitDefsID = ProcessImplicitDefs::ID
 ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
charllvm::RegisterCoalescerID = RegisterCoalescer::ID
 RegisterCoalescer - This pass merges live ranges to eliminate copies.
charllvm::MachineSchedulerID = MachineScheduler::ID
 MachineScheduler - This pass schedules machine instructions.
charllvm::PostMachineSchedulerID = PostMachineScheduler::ID
 PostMachineScheduler - This pass schedules machine instructions postRA.
charllvm::SpillPlacementID = SpillPlacement::ID
 SpillPlacement analysis.
charllvm::ShrinkWrapID = ShrinkWrap::ID
 ShrinkWrap pass. Look for the best place to insert save and restore.
charllvm::LiveRangeShrinkID = LiveRangeShrink::ID
 LiveRangeShrink pass.
charllvm::RAGreedyID = RAGreedy::ID
 Greedy register allocator.
charllvm::RABasicID = RABasic::ID
 Basic register allocator.
charllvm::VirtRegRewriterID = VirtRegRewriter::ID
 VirtRegRewriter pass.
 UnreachableMachineBlockElimination - This pass removes unreachable machine basic blocks.
charllvm::DeadMachineInstructionElimID = DeadMachineInstructionElim::ID
 DeadMachineInstructionElim - This pass removes dead machine instructions.
charllvm::DetectDeadLanesID = DetectDeadLanes::ID
 This pass adds dead/undef flags after analyzing subregister lanes.
charllvm::PostRAMachineSinkingID = PostRAMachineSinking::ID
 This pass perform post-ra machine sink for COPY instructions.
 This pass adds flow sensitive discriminators.
charllvm::MIRProfileLoaderPassID = MIRProfileLoaderPass::ID
 This pass reads flow sensitive profile.
charllvm::InitUndefID = InitUndef::ID
charllvm::PrologEpilogCodeInserterID = PEI::ID
 PrologEpilogCodeInserter - This pass inserts prolog and epilog code, and eliminates abstract frame references.
charllvm::ExpandPostRAPseudosID = ExpandPostRA::ID
 ExpandPostRAPseudos - This pass expands pseudo instructions after register allocation.
charllvm::PostRAHazardRecognizerID = PostRAHazardRecognizer::ID
 PostRAHazardRecognizer - This pass runs the post-ra hazard recognizer.
charllvm::PostRASchedulerID = PostRAScheduler::ID
 PostRAScheduler - This pass performs post register allocation scheduling.
charllvm::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.
charllvm::BranchRelaxationPassID = BranchRelaxation::ID
 BranchRelaxation - This pass replaces branches that need to jump further than is supported by a branch instruction.
charllvm::MachineFunctionPrinterPassID = MachineFunctionPrinterPass::ID
 MachineFunctionPrinterPass - This pass prints out MachineInstr's.
charllvm::MIRPrintingPassID = MIRPrintingPass::ID
 MIRPrintingPass - this pass prints out the LLVM IR using the MIR serialization format.
charllvm::TailDuplicateID = TailDuplicate::ID
 TailDuplicate - Duplicate blocks with unconditional branches into tails of their predecessors.
charllvm::EarlyTailDuplicateID = EarlyTailDuplicate::ID
 Duplicate blocks with unconditional branches into tails of their predecessors.
charllvm::MachineTraceMetricsID = MachineTraceMetrics::ID
 MachineTraceMetrics - This pass computes critical path and CPU resource usage in an ensemble of traces.
charllvm::EarlyIfConverterID = EarlyIfConverter::ID
 EarlyIfConverter - This pass performs if-conversion on SSA form by inserting cmov instructions.
charllvm::EarlyIfPredicatorID = EarlyIfPredicator::ID
 EarlyIfPredicator - This pass performs if-conversion on SSA form by predicating if/else block and insert select at the join point.
charllvm::MachineCombinerID = MachineCombiner::ID
 This pass performs instruction combining using trace metrics to estimate critical-path and resource depth.
charllvm::StackColoringID = StackColoring::ID
 StackSlotColoring - This pass performs stack coloring and merging.
charllvm::StackFrameLayoutAnalysisPassID = StackFrameLayoutAnalysisPass::ID
 StackFramePrinter - This pass prints the stack frame layout and variable mappings.
charllvm::IfConverterID = IfConverter::ID
 IfConverter - This pass performs machine code if conversion.
charllvm::MachineBlockPlacementID = MachineBlockPlacement::ID
 MachineBlockPlacement - This pass places basic blocks based on branch probabilities.
charllvm::MachineBlockPlacementStatsID = MachineBlockPlacementStats::ID
 MachineBlockPlacementStats - This pass collects statistics about the basic block placement using branch probabilities and block frequency information.
charllvm::GCLoweringID = LowerIntrinsics::ID
 GCLowering Pass - Used by gc.root to perform its default lowering operations.
charllvm::ShadowStackGCLoweringID = ShadowStackGCLowering::ID
 ShadowStackGCLowering - Implements the custom lowering mechanism used by the shadow stack GC.
charllvm::GCMachineCodeAnalysisID = GCMachineCodeAnalysis::ID
 GCMachineCodeAnalysis - Target-independent pass to mark safe points in machine code.
charllvm::MachineCSEID = MachineCSE::ID
 MachineCSE - This pass performs global CSE on machine instructions.
charllvm::MIRCanonicalizerID = MIRCanonicalizer::ID
 MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs according to the semantics of the instruction as well as hoists code.
charllvm::ImplicitNullChecksID = ImplicitNullChecks::ID
 ImplicitNullChecks - This pass folds null pointer checks into nearby memory operations.
charllvm::MachineLICMID = MachineLICM::ID
 This pass performs loop invariant code motion on machine instructions.
charllvm::EarlyMachineLICMID = EarlyMachineLICM::ID
 This pass performs loop invariant code motion on machine instructions.
charllvm::MachineSinkingID = MachineSinking::ID
 MachineSinking - This pass performs sinking on machine instructions.
charllvm::MachineCopyPropagationID = MachineCopyPropagation::ID
 MachineCopyPropagation - This pass performs copy propagation on machine instructions.
charllvm::MachineLateInstrsCleanupID = MachineLateInstrsCleanup::ID
 MachineLateInstrsCleanup - This pass removes redundant identical instructions after register allocation and rematerialization.
charllvm::PeepholeOptimizerID = PeepholeOptimizer::ID
 PeepholeOptimizer - This pass performs peephole optimizations - like extension and comparison eliminations.
charllvm::OptimizePHIsID = OptimizePHIs::ID
 OptimizePHIs - This pass optimizes machine instruction PHIs to take advantage of opportunities created during DAG legalization.
charllvm::StackSlotColoringID = StackSlotColoring::ID
 StackSlotColoring - This pass performs stack slot coloring.
charllvm::FuncletLayoutID = FuncletLayout::ID
 This pass lays out funclets contiguously.
charllvm::XRayInstrumentationID = XRayInstrumentation::ID
 This pass inserts the XRay instrumentation sleds if they are supported by the target platform.
charllvm::FEntryInserterID = FEntryInserter::ID
 This pass inserts FEntry calls.
charllvm::PatchableFunctionID = PatchableFunction::ID
 This pass implements the "patchable-function" attribute.
charllvm::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.
charllvm::FinalizeISelID = FinalizeISel::ID
 This pass expands pseudo-instructions, reserves registers and adjusts machine frame information.
charllvm::UnpackMachineBundlesID = UnpackMachineBundles::ID
 UnpackMachineBundles - This pass unpack machine instruction bundles.
charllvm::FinalizeMachineBundlesID = FinalizeMachineBundles::ID
 FinalizeMachineBundles - This pass finalize machine instruction bundles (created earlier, e.g.
charllvm::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.
charllvm::RemoveRedundantDebugValuesID = RemoveRedundantDebugValues::ID
 RemoveRedundantDebugValues pass.
charllvm::MachineCFGPrinterID = MachineCFGPrinter::ID
 MachineCFGPrinter pass.
charllvm::LiveDebugValuesID = LiveDebugValues::ID
 LiveDebugValues pass.
charllvm::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.
charllvm::MachinePipelinerID = MachinePipeliner::ID
 This pass performs software pipelining on machine instructions.
charllvm::FixupStatepointCallerSavedID = FixupStatepointCallerSaved::ID
 The pass fixups statepoint machine instruction to replace usage of caller saved registers with stack slots.