LLVM: include/llvm/IR/ProfileSummary.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_IR_PROFILESUMMARY_H

14#define LLVM_IR_PROFILESUMMARY_H

15

17#include

18#include

19#include

20

21namespace llvm {

22

26

27

28

29

30

31

32

42

44

46public:

48

49private:

50 const Kind PSK;

52 const uint64_t TotalCount, MaxCount, MaxInternalCount, MaxFunctionCount;

53 const uint32_t NumCounts, NumFunctions;

54

55

56

57

58

59 bool Partial = false;

60

61

62

63

64 double PartialProfileRatio = 0.0;

65

67

68public:

69 static const int Scale = 1000000;

70

75 bool Partial = false, double PartialProfileRatio = 0)

76 : PSK(K), DetailedSummary(DetailedSummary), TotalCount(TotalCount),

77 MaxCount(MaxCount), MaxInternalCount(MaxInternalCount),

78 MaxFunctionCount(MaxFunctionCount), NumCounts(NumCounts),

79 NumFunctions(NumFunctions), Partial(Partial),

80 PartialProfileRatio(PartialProfileRatio) {}

81

83

85 bool AddPartialProfileRatioField = true);

86

100 PartialProfileRatio = R;

101 }

104};

105

106}

107

108#endif

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

This is an important class for using LLVM in a threaded context.

Definition ProfileSummary.h:45

uint64_t getTotalCount() const

Definition ProfileSummary.h:92

void setPartialProfileRatio(double R)

Definition ProfileSummary.h:98

uint64_t getMaxCount() const

Definition ProfileSummary.h:93

const SummaryEntryVector & getDetailedSummary()

Definition ProfileSummary.h:88

void setPartialProfile(bool PP)

Definition ProfileSummary.h:95

LLVM_ABI Metadata * getMD(LLVMContext &Context, bool AddPartialField=true, bool AddPartialProfileRatioField=true)

Return summary information as metadata.

uint32_t getNumCounts() const

Definition ProfileSummary.h:91

static const int Scale

Definition ProfileSummary.h:69

ProfileSummary(Kind K, const SummaryEntryVector &DetailedSummary, uint64_t TotalCount, uint64_t MaxCount, uint64_t MaxInternalCount, uint64_t MaxFunctionCount, uint32_t NumCounts, uint32_t NumFunctions, bool Partial=false, double PartialProfileRatio=0)

Definition ProfileSummary.h:71

LLVM_ABI void printDetailedSummary(raw_ostream &OS) const

Kind

Definition ProfileSummary.h:47

@ PSK_Sample

Definition ProfileSummary.h:47

@ PSK_CSInstr

Definition ProfileSummary.h:47

@ PSK_Instr

Definition ProfileSummary.h:47

uint64_t getMaxInternalCount() const

Definition ProfileSummary.h:94

bool isPartialProfile() const

Definition ProfileSummary.h:96

Kind getKind() const

Definition ProfileSummary.h:82

static LLVM_ABI ProfileSummary * getFromMD(Metadata *MD)

Construct profile summary from metdata.

uint64_t getMaxFunctionCount() const

Definition ProfileSummary.h:90

LLVM_ABI void printSummary(raw_ostream &OS) const

double getPartialProfileRatio() const

Definition ProfileSummary.h:97

uint32_t getNumFunctions() const

Definition ProfileSummary.h:89

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.

std::vector< ProfileSummaryEntry > SummaryEntryVector

Definition ProfileSummary.h:43

const uint32_t Cutoff

The required percentile of counts.

Definition ProfileSummary.h:34

const uint64_t MinCount

The minimum count for this percentile.

Definition ProfileSummary.h:35

ProfileSummaryEntry(uint32_t TheCutoff, uint64_t TheMinCount, uint64_t TheNumCounts)

Definition ProfileSummary.h:38

const uint64_t NumCounts

Number of counts >= the minimum count.

Definition ProfileSummary.h:36