FunctionPass adapter for passes that operate on a MachineFunction.
Declared in <llvm/CodeGen/MachineFunctionPass.h>
class MachineFunctionPass
: public FunctionPass
This class adapts the FunctionPass interface to allow convenient creation of passes that operate on the MachineFunction representation. Instead of overriding runOnFunction, subclasses override runOnMachineFunction.
| Name | Description |
|---|---|
FunctionPass | FunctionPass class - This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints: |
| Name | Description |
|---|---|
operator= [deleted] | Passes are not assignable. |
assignPassManager | assignPassManager overloads |
createPrinterPass [virtual] | createPrinterPass - Get a function printer pass. |
doFinalization [virtual] | Perform any cleanup needed after all passes have run. |
doInitialization [virtual] | Cache this pass's MachineFunctionProperties at module initialization. |
dump | Print this pass's state to stderr for debugging. |
dumpPassStructure [virtual] | Print the pass nesting structure for -debug-passes=PassStructure. |
getAnalysis | getAnalysis overloads |
getAnalysisID | getAnalysisID overloads |
getAnalysisIfAvailable | Get an optional analysis result that may already be available. |
getAnalysisUsage [virtual] | Declare which analyses this pass requires and preserves. |
getAsImmutablePass [virtual] | Return this pass as an ImmutablePass, or null if it is not one. |
getAsPMDataManager [virtual] | Return this pass as a PMDataManager when it is a nested pass manager. |
getPassArgument | Return a nice clean name for a pass corresponding to that used to enable the pass in opt. |
getPassID | getPassID - Return the PassID number that corresponds to this pass. |
getPassKind | Return the kind of pass (module, function, loop, etc.). |
getPassName [virtual] | Return a human-readable name for this pass. |
getPotentialPassManagerType [virtual] | Return what kind of Pass Manager can manage this pass. |
getResolver | Return the analysis resolver installed for this pass. |
mustPreserveAnalysisID | Report whether the analysis identified by AID must be preserved. |
preparePassManager [virtual] | Check whether available pass managers are suitable for this pass. |
print [virtual] | Print the internal state of this pass for analysis dumping. |
printIRUnit [virtual] | Serialize the IR unit this pass operates on for --print-changed. |
releaseMemory [virtual] | Release memory held by this pass when it is no longer needed. |
runOnFunction [virtual] | runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass. |
setResolver | Install the analysis resolver used to satisfy this pass's dependencies. |
verifyAnalysis [virtual] | verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. |
| Name | Description |
|---|---|
createPass | Construct a new instance of the pass identified by ID. |
lookupPassInfo | lookupPassInfo overloads |
| Name | Description |
|---|---|
MachineFunctionPass [constructor] | Construct a MachineFunctionPass with the given pass identifier. |
getAnalysisUsage [virtual] | getAnalysisUsage - Subclasses that override getAnalysisUsage must call this. |
getClearedProperties [virtual] | Return the MachineFunctionProperties this pass clears when it runs. |
getRequiredProperties [virtual] | Return the MachineFunctionProperties this pass requires before running. |
getSetProperties [virtual] | Return the MachineFunctionProperties this pass sets after running. |
runOnMachineFunction [virtual] | runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis. |
skipFunction | Check whether this optional pass should be skipped for F. |
| Name | Description |
|---|---|
createBasicBlockMatchingAndInferencePass | createBasicBlockMatchingAndInferencePass - This pass enables matching and inference when using propeller. |
createBasicBlockPathCloningPass | Create a pass that clones machine basic-block paths for BB sections. |
createBasicBlockSectionsPass | createBasicBlockSections Pass - This pass assigns sections to machine basic blocks and is enabled with -fbasic-block-sections. |
createGCEmptyBasicBlocksLegacyPass | Create a pass that garbage-collects empty machine basic blocks. |
createInsertCodePrefetchPass | createInsertCodePrefetchPass - This pass enables inserting code prefetch hints based on the basic block section profile. |
createMIR2VecPrinterLegacyPass | MIR2VecPrinter pass - This pass prints out the MIR2Vec embeddings for machine functions, basic blocks and instructions. |
createMIR2VecVocabPrinterLegacyPass | MIR2VecVocabPrinter pass - This pass prints out the MIR2Vec vocabulary contents to the given stream as a debugging tool. |
createMachineBlockHashInfoPass | createMachineBlockHashInfoPass - This pass computes basic block hashes. |
createMachineCopyPropagationPass | Create a pass that performs copy propagation on machine instructions. |
createMachineFunctionPrinterPass | MachineFunctionPrinter pass - This pass prints out the machine function to the given stream as a debugging tool. |
createMachineFunctionSplitterPass | createMachineFunctionSplitterPass - This pass splits machine functions using profile information. |
createPrintMIRPass | MIRPrinting pass - this pass prints out the LLVM IR into the given stream using the MIR serialization format. |
createPrologEpilogInserterPass | Create a pass that inserts prolog/epilog code and eliminates frame refs. |
createResetMachineFunctionPass | Create a pass that resets MachineFunctions that failed ISel. |
createStackFrameLayoutAnalysisPass | StackFramePrinter pass - This pass prints out the machine function's stack frame to the given stream as a debugging tool. |
createStaticDataSplitterLegacyPass | createStaticDataSplitterPass - This is a machine-function pass that categorizes static data hotness using profile information. |
getBestSimplifyQuery | Build a SimplifyQuery from analyses currently valid in a pass. |
getPassTimer | Request the timer for this legacy-pass-manager's pass instance. |
isBitcodeWriterPass | Check whether a pass is a BitcodeWriterPass. |
isIRPrintingPass | Return true if a pass is for IR printing. |
| Name | Description |
|---|---|
AsmPrinter | This class is intended to be used as a driving class for all asm writers. |
BasicBlockMatchingAndInference | Pass that matches Propeller profile basic blocks and infers their weights. |
CFIFixupLegacy | Legacy MachineFunctionPass that inserts CFI remember/restore instructions. |
EdgeBundlesWrapperLegacy | Legacy MachineFunctionPass wrapper that computes and owns EdgeBundles. |
ExecutionDomainFix | Machine function pass that rewrites variant instructions to minimize execution domain crossings. |
GISelCSEAnalysisWrapperPass | The actual analysis pass wrapper. |
GISelValueTrackingAnalysisLegacy | Legacy MachineFunctionPass that owns a GISelValueTracking instance. |
IRTranslatorLegacy | Legacy pass that translates LLVM IR into MachineInstr for GlobalISel. |
InstructionSelectLegacy | Legacy pass that selects generic machine instructions to target instructions. |
LazyMachineBlockFrequencyInfoPass | Alternative analysis pass that computes machine block frequencies on demand. |
LegalizerLegacy | Legacy pass that legalizes generic machine instructions for GlobalISel. |
LiveDebugVariablesWrapperLegacy | Legacy pass wrapper for LiveDebugVariables. |
LiveIntervalsWrapperPass | Legacy MachineFunctionPass wrapper around LiveIntervals. |
LiveRegMatrixWrapperLegacy | Legacy MachineFunctionPass wrapper that computes and owns LiveRegMatrix. |
LiveStacksWrapperLegacy | Legacy pass wrapper for LiveStacks. |
LiveVariablesWrapperPass | Legacy pass wrapper for LiveVariables. |
LoadStoreOptLegacy | Legacy pass that merges consecutive GlobalISel loads and stores. |
LocalizerLegacy | Legacy pass that localizes constant-like instructions near their uses. |
MIR2VecPrinterLegacyPass | This pass prints the MIR2Vec embeddings for machine functions, basic blocks, and instructions |
MIR2VecVocabPrinterLegacyPass | This pass prints the embeddings in the MIR2Vec vocabulary |
MIRAddFSDiscriminators | MIR pass that adds flow-sensitive discriminators to instruction debug info. |
MIRProfileLoaderPass | Machine function pass that loads SampleFDO profile data into MIR. |
MachineBlockFrequencyInfoWrapperPass | Legacy analysis pass which computes MachineBlockFrequencyInfo. |
MachineBlockHashInfo | Legacy MachineFunctionPass for MachineBlockHashInfo. |
MachineCycleInfoWrapperPass | Legacy analysis pass which computes a MachineCycleInfo. |
MachineDominanceFrontierWrapperPass | Legacy analysis pass which computes a MachineDominanceFrontier. |
MachineDominatorTreeWrapperPass | Analysis pass which computes a MachineDominatorTree. |
MachineLoopInfoWrapperPass | The legacy pass manager's analysis pass to compute machine loop information. |
MachineOptimizationRemarkEmitterPass | The analysis pass |
MachinePipeliner | The main class in the implementation of the target independent software pipeliner pass. |
MachinePostDominatorTreeWrapperPass | Analysis pass which computes a MachinePostDominatorTree. |
MachineRegionInfoPass | Legacy MachineFunctionPass wrapper that computes MachineRegionInfo. |
MachineRegisterClassInfoWrapperPass | Legacy machine function pass wrapping RegisterClassInfo. |
MachineTraceMetricsWrapperPass | Legacy pass manager wrapper around MachineTraceMetrics. |
MachineUniformityAnalysisPass | Legacy analysis pass which computes a MachineUniformityInfo. |
ReachingDefInfoWrapperPass | Legacy pass wrapper for ReachingDefInfo. |
RegBankSelectLegacy | Legacy pass that assigns register banks to generic virtual registers. |
SelectionDAGISelLegacy | Legacy pass-manager wrapper that owns a SelectionDAGISel and runs it. |
SlotIndexesWrapperPass | Legacy MachineFunctionPass wrapper around SlotIndexes. |
SpillPlacementWrapperLegacy | Legacy machine function pass wrapping SpillPlacement. |
ThunkInserterPass | Basic implementation of MachineFunctionPass wrapping one or more ThunkInserters passed as type parameters. |
VirtRegMapWrapperLegacy | Legacy MachineFunctionPass wrapper that owns a VirtRegMap. |