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:

68 static char ID;

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...