LLVM: include/llvm/CodeGen/EdgeBundles.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_CODEGEN_EDGEBUNDLES_H
16#define LLVM_CODEGEN_EDGEBUNDLES_H
17
22
23namespace llvm {
26
27class EdgeBundles {
30
32
33
34
35
37
38
40
41 void init();
43
44public:
45
46
47 unsigned getBundle(unsigned N, bool Out) const { return EC[2 * N + Out]; }
48
49
50 unsigned getNumBundles() const { return EC.getNumClasses(); }
51
52
54
55
57
58
59 void view() const;
60
61
63 MachineFunctionAnalysisManager::Invalidator &Inv);
64};
65
67public:
70
73
74private:
75 std::unique_ptr Impl;
77 void getAnalysisUsage(AnalysisUsage&) const override;
78};
79
88
89}
90
91#endif
This header defines various interfaces for pass management in LLVM.
Equivalence classes for small integers.
Represent the analysis usage information of a pass.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition EdgeBundles.h:80
EdgeBundles run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
EdgeBundles Result
Definition EdgeBundles.h:85
Definition EdgeBundles.h:66
EdgeBundles & getEdgeBundles()
Definition EdgeBundles.h:71
static char ID
Definition EdgeBundles.h:68
const EdgeBundles & getEdgeBundles() const
Definition EdgeBundles.h:72
EdgeBundlesWrapperLegacy()
Definition EdgeBundles.h:69
Definition EdgeBundles.h:27
bool invalidate(MachineFunction &MF, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &Inv)
ArrayRef< unsigned > getBlocks(unsigned Bundle) const
getBlocks - Return an array of blocks that are connected to Bundle.
Definition EdgeBundles.h:53
const MachineFunction * getMachineFunction() const
getMachineFunction - Return the last machine function computed.
Definition EdgeBundles.h:56
unsigned getBundle(unsigned N, bool Out) const
getBundle - Return the ingoing (Out = false) or outgoing (Out = true) bundle number for basic block N
Definition EdgeBundles.h:47
unsigned getNumBundles() const
getNumBundles - Return the total number of bundles in the CFG.
Definition EdgeBundles.h:50
void view() const
view - Visualize the annotated bipartite CFG with Graphviz.
friend class EdgeBundlesWrapperLegacy
Definition EdgeBundles.h:28
friend class EdgeBundlesAnalysis
Definition EdgeBundles.h:29
MachineFunctionPass(char &ID)
A set of analyses that are preserved following a run of a transformation pass.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< MachineFunction > MachineFunctionAnalysisManager
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...