class EdgeBundles
Declaration
class EdgeBundles : public MachineFunctionPass { /* full declaration omitted */ };
Description
MachineFunctionPass - 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.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:24
Inherits from: MachineFunctionPass
Member Variables
- private const llvm::MachineFunction* MF
- private llvm::IntEqClasses EC
- EC - Each edge bundle is an equivalence class. The keys are: 2*BB->getNumber() -> Ingoing bundle. 2*BB->getNumber()+1 -> Outgoing bundle.
- private SmallVector<SmallVector<unsigned int, 8>, 4> Blocks
- Blocks - Map each bundle to a list of basic block numbers.
- public static char ID
Method Overview
- public EdgeBundles()
- private void getAnalysisUsage(llvm::AnalysisUsage &) const
- public ArrayRef<unsigned int> getBlocks(unsigned int Bundle) const
- public unsigned int getBundle(unsigned int N, bool Out) const
- public const llvm::MachineFunction * getMachineFunction() const
- public unsigned int getNumBundles() const
- private bool runOnMachineFunction(llvm::MachineFunction &)
- public void view() const
Inherited from MachineFunctionPass:
- public doInitialization
- protected getAnalysisUsage
- protected getClearedProperties
- protected getRequiredProperties
- protected getSetProperties
- protected runOnMachineFunction
Inherited from FunctionPass:
- public assignPassManager
- public createPrinterPass
- public getPotentialPassManagerType
- public runOnFunction
- protected skipFunction
Inherited from Pass:
- public assignPassManager
- public createPass
- public createPrinterPass
- public doFinalization
- public doInitialization
- public dump
- public dumpPassStructure
- public getAdjustedAnalysisPointer
- public getAnalysis
- public getAnalysis
- public getAnalysisID
- public getAnalysisID
- public getAnalysisIfAvailable
- public getAnalysisUsage
- public getAsImmutablePass
- public getAsPMDataManager
- public getPassID
- public getPassKind
- public getPassName
- public getPotentialPassManagerType
- public getResolver
- public lookupPassInfo
- public lookupPassInfo
- public mustPreserveAnalysisID
- public preparePassManager
- public print
- public releaseMemory
- public setResolver
- public verifyAnalysis
Methods
¶EdgeBundles()
EdgeBundles()
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:37
¶void getAnalysisUsage(llvm::AnalysisUsage&) const
void getAnalysisUsage(llvm::AnalysisUsage&) const
Description
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this. For MachineFunctionPasses, calling AU.preservesCFG() indicates that the pass does not modify the MachineBasicBlock CFG.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:57
Parameters
¶ArrayRef<unsigned int> getBlocks(
unsigned int Bundle) const
ArrayRef<unsigned int> getBlocks(
unsigned int Bundle) const
Description
getBlocks - Return an array of blocks that are connected to Bundle.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:47
Parameters
- unsigned int Bundle
¶unsigned int getBundle(unsigned int N,
bool Out) const
unsigned int getBundle(unsigned int N,
bool Out) const
Description
getBundle - Return the ingoing (Out = false) or outgoing (Out = true) bundle number for basic block #N
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:41
Parameters
- unsigned int N
- bool Out
¶const llvm::MachineFunction* getMachineFunction()
const
const llvm::MachineFunction* getMachineFunction()
const
Description
getMachineFunction - Return the last machine function computed.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:50
¶unsigned int getNumBundles() const
unsigned int getNumBundles() const
Description
getNumBundles - Return the total number of bundles in the CFG.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:44
¶bool runOnMachineFunction(llvm::MachineFunction&)
bool runOnMachineFunction(llvm::MachineFunction&)
Description
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformation or analysis.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:56
Parameters
¶void view() const
void view() const
Description
view - Visualize the annotated bipartite CFG with Graphviz.
Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:53