LLVM: include/llvm/Analysis/Trace.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17#ifndef LLVM_ANALYSIS_TRACE_H

18#define LLVM_ANALYSIS_TRACE_H

19

20#include

21#include

22

23namespace llvm {

24

29

31 using BasicBlockListType = std::vector<BasicBlock *>;

32

33 BasicBlockListType BasicBlocks;

34

35public:

36

37

38

39 Trace(const std::vector<BasicBlock *> &vBB) : BasicBlocks (vBB) {}

40

41

42

44

45

48

49

51

52

53

55

56

57

59 for (unsigned i = 0, e = BasicBlocks.size(); i != e; ++i)

60 if (BasicBlocks[i] == X)

61 return i;

62 return -1;

63 }

64

65

66

70

71

72

75 assert(B1Idx != -1 && B2Idx != -1 && "Block is not in the trace!");

76 return B1Idx <= B2Idx;

77 }

78

79

84

89

94

95 unsigned size() const { return BasicBlocks.size(); }

96 bool empty() const { return BasicBlocks.empty(); }

97

100

101

103

104

105

106 void dump() const;

107};

108

109}

110

111#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")

LLVM Basic Block Representation.

A Module instance is used to store all the information related to an LLVM module.

std::reverse_iterator< iterator > reverse_iterator

Definition Trace.h:82

BasicBlock * operator[](unsigned i) const

operator[]/getBlock - Return basic block N in the trace.

Definition Trace.h:46

void dump() const

dump - Debugger convenience method; writes trace to standard error output stream.

bool empty() const

Definition Trace.h:96

BasicBlockListType::const_iterator const_iterator

Definition Trace.h:81

iterator begin()

Definition Trace.h:85

reverse_iterator rend()

Definition Trace.h:92

bool dominates(const BasicBlock *B1, const BasicBlock *B2) const

Returns true if B1 occurs before B2 in the trace, or if it is the same block as B2.

Definition Trace.h:73

iterator erase(iterator q1, iterator q2)

Definition Trace.h:99

const_iterator end() const

Definition Trace.h:88

const_iterator begin() const

Definition Trace.h:86

const_reverse_iterator rbegin() const

Definition Trace.h:91

unsigned size() const

Definition Trace.h:95

const_reverse_iterator rend() const

Definition Trace.h:93

BasicBlock * getBlock(unsigned i) const

Definition Trace.h:47

std::reverse_iterator< const_iterator > const_reverse_iterator

Definition Trace.h:83

BasicBlock * getEntryBasicBlock() const

getEntryBasicBlock - Return the entry basic block (first block) of the trace.

Definition Trace.h:43

Function * getFunction() const

getFunction - Return this trace's parent function.

int getBlockIndex(const BasicBlock *X) const

getBlockIndex - Return the index of the specified basic block in the trace, or -1 if it is not in the...

Definition Trace.h:58

reverse_iterator rbegin()

Definition Trace.h:90

bool contains(const BasicBlock *X) const

contains - Returns true if this trace contains the given basic block.

Definition Trace.h:67

iterator end()

Definition Trace.h:87

iterator erase(iterator q)

Definition Trace.h:98

void print(raw_ostream &O) const

print - Write trace to output stream.

BasicBlockListType::iterator iterator

Definition Trace.h:80

Module * getModule() const

getModule - Return this Module that contains this trace's parent function.

Trace(const std::vector< BasicBlock * > &vBB)

Trace ctor - Make a new trace from a vector of basic blocks, residing in the function which is the pa...

Definition Trace.h:39

This class implements an extremely fast bulk output stream that can only output to a stream.

This is an optimization pass for GlobalISel generic memory operations.