FunctionPass adapter for passes that operate on a MachineFunction.
Synopsis
Declared in <llvm/CodeGen/MachineFunctionPass.h>
class MachineFunctionPass
: public FunctionPass
Description
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.
Base Classes
Name |
Description |
FunctionPass class ‐ This class is used to implement most global optimizations. Optimizations should subclass this class if they meet the following constraints: |
Member Functions
Name |
Description |
|
Passes are not assignable. |
|
|
|
createPrinterPass ‐ Get a function printer pass. |
|
Perform any cleanup needed after all passes have run. |
|
Cache this pass's MachineFunctionProperties at module initialization. |
Print this pass's state to stderr for debugging. |
|
|
Print the pass nesting structure for ‐debug‐passes=PassStructure. |
|
|
|
|
Get an optional analysis result that may already be available. |
|
|
Declare which analyses this pass requires and preserves. |
|
Return this pass as an ImmutablePass, or null if it is not one. |
|
Return this pass as a PMDataManager when it is a nested pass manager. |
Return a nice clean name for a pass corresponding to that used to enable the pass in opt. |
|
getPassID ‐ Return the PassID number that corresponds to this pass. |
|
Return the kind of pass (module, function, loop, etc.). |
|
|
Return a human‐readable name for this pass. |
|
Return what kind of Pass Manager can manage this pass. |
Return the analysis resolver installed for this pass. |
|
Report whether the analysis identified by |
|
|
Check whether available pass managers are suitable for this pass. |
|
Print the internal state of this pass for analysis dumping. |
|
Serialize the IR unit this pass operates on for ‐‐print‐changed. |
|
Release memory held by this pass when it is no longer needed. |
|
runOnFunction ‐ Virtual method overriden by subclasses to do the per‐function processing of the pass. |
Install the analysis resolver used to satisfy this pass's dependencies. |
|
|
verifyAnalysis() ‐ This member can be implemented by a analysis pass to check state of analysis information. |
Static Member Functions
Name |
Description |
Construct a new instance of the pass identified by |
|
|
Protected Member Functions
Name |
Description |
|
Construct a MachineFunctionPass with the given pass identifier. |
|
getAnalysisUsage ‐ Subclasses that override getAnalysisUsage must call this. |
|
Return the MachineFunctionProperties this pass clears when it runs. |
|
Return the MachineFunctionProperties this pass requires before running. |
|
Return the MachineFunctionProperties this pass sets after running. |
|
runOnMachineFunction ‐ This method must be overloaded to perform the desired machine code transformation or analysis. |
Check whether this optional pass should be skipped for |
Non-Member Functions
Name |
Description |
createBasicBlockMatchingAndInferencePass ‐ This pass enables matching and inference when using propeller. |
|
Create a pass that clones machine basic‐block paths for BB sections. |
|
createBasicBlockSections Pass ‐ This pass assigns sections to machine basic blocks and is enabled with ‐fbasic‐block‐sections. |
|
Create a pass that garbage‐collects empty machine basic blocks. |
|
createInsertCodePrefetchPass ‐ This pass enables inserting code prefetch hints based on the basic block section profile. |
|
MIR2VecPrinter pass ‐ This pass prints out the MIR2Vec embeddings for machine functions, basic blocks and instructions. |
|
MIR2VecVocabPrinter pass ‐ This pass prints out the MIR2Vec vocabulary contents to the given stream as a debugging tool. |
|
createMachineBlockHashInfoPass ‐ This pass computes basic block hashes. |
|
Create a pass that performs copy propagation on machine instructions. |
|
MachineFunctionPrinter pass ‐ This pass prints out the machine function to the given stream as a debugging tool. |
|
createMachineFunctionSplitterPass ‐ This pass splits machine functions using profile information. |
|
MIRPrinting pass ‐ this pass prints out the LLVM IR into the given stream using the MIR serialization format. |
|
Create a pass that inserts prolog/epilog code and eliminates frame refs. |
|
Create a pass that resets MachineFunctions that failed ISel. |
|
StackFramePrinter pass ‐ This pass prints out the machine function's stack frame to the given stream as a debugging tool. |
|
createStaticDataSplitterPass ‐ This is a machine‐function pass that categorizes static data hotness using profile information. |
|
Build a SimplifyQuery from analyses currently valid in a pass. |
|
Request the timer for this legacy‐pass‐manager's pass instance. |
|
Check whether a pass is a BitcodeWriterPass. |
|
Return true if a pass is for IR printing. |
Derived Classes
Name |
Description |
This class is intended to be used as a driving class for all asm writers. |
|
Pass that matches Propeller profile basic blocks and infers their weights. |
|
Legacy MachineFunctionPass that inserts CFI remember/restore instructions. |
|
Legacy MachineFunctionPass wrapper that computes and owns |
|
Machine function pass that rewrites variant instructions to minimize execution domain crossings. |
|
The actual analysis pass wrapper. |
|
Legacy MachineFunctionPass that owns a GISelValueTracking instance. |
|
Legacy pass that translates LLVM IR into MachineInstr for GlobalISel. |
|
Legacy pass that selects generic machine instructions to target instructions. |
|
Alternative analysis pass that computes machine block frequencies on demand. |
|
Legacy pass that legalizes generic machine instructions for GlobalISel. |
|
Legacy pass wrapper for LiveDebugVariables. |
|
Legacy MachineFunctionPass wrapper around LiveIntervals. |
|
Legacy MachineFunctionPass wrapper that computes and owns |
|
Legacy pass wrapper for LiveStacks. |
|
Legacy pass wrapper for LiveVariables. |
|
Legacy pass that merges consecutive GlobalISel loads and stores. |
|
Legacy pass that localizes constant‐like instructions near their uses. |
|
This pass prints the MIR2Vec embeddings for machine functions, basic blocks, and instructions |
|
This pass prints the embeddings in the MIR2Vec vocabulary |
|
MIR pass that adds flow‐sensitive discriminators to instruction debug info. |
|
Machine function pass that loads SampleFDO profile data into MIR. |
|
Legacy analysis pass which computes |
|
Legacy MachineFunctionPass for MachineBlockHashInfo. |
|
Legacy analysis pass which computes a |
|
Legacy analysis pass which computes a |
|
Analysis pass which computes a |
|
The legacy pass manager's analysis pass to compute machine loop information. |
|
The analysis pass |
|
The main class in the implementation of the target independent software pipeliner pass. |
|
Analysis pass which computes a |
|
Legacy MachineFunctionPass wrapper that computes MachineRegionInfo. |
|
Legacy machine function pass wrapping RegisterClassInfo. |
|
Legacy pass manager wrapper around MachineTraceMetrics. |
|
Legacy analysis pass which computes a |
|
Legacy pass wrapper for ReachingDefInfo. |
|
Legacy pass that assigns register banks to generic virtual registers. |
|
Legacy pass‐manager wrapper that owns a SelectionDAGISel and runs it. |
|
Legacy MachineFunctionPass wrapper around SlotIndexes. |
|
Legacy machine function pass wrapping SpillPlacement. |
|
Basic implementation of MachineFunctionPass wrapping one or more `ThunkInserter`s passed as type parameters. |
|
Legacy MachineFunctionPass wrapper that owns a |
Created with MrDocs