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

Inherited from MachineFunctionPass:

Inherited from FunctionPass:

Inherited from Pass:

Methods

EdgeBundles()

Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:37

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

llvm::AnalysisUsage&

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

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

Description

getMachineFunction - Return the last machine function computed.

Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:50

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&)

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

llvm::MachineFunction&

void view() const

Description

view - Visualize the annotated bipartite CFG with Graphviz.

Declared at: llvm/include/llvm/CodeGen/EdgeBundles.h:53