#include "CodeGenPGO.h"
#include "CodeGenFunction.h"
#include "CoverageMappingGen.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/StmtVisitor.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MD5.h"
#include <optional>
Go to the source code of this file.
|
namespace | llvm |
| Diagnostic wrappers for TextAPI types for error reporting.
|
|
|
static llvm::cl::opt< bool > | EnableValueProfiling ("enable-value-profiling", llvm::cl::desc("Enable value profiling"), llvm::cl::Hidden, llvm::cl::init(false)) |
|
static uint64_t | calculateWeightScale (uint64_t MaxWeight) |
| Calculate what to divide by to scale weights.
|
|
static uint32_t | scaleBranchWeight (uint64_t Weight, uint64_t Scale) |
| Scale an individual branch weight (and add 1).
|
|
◆ DEFINE_NESTABLE_TRAVERSAL
#define DEFINE_NESTABLE_TRAVERSAL |
( |
|
N | ) |
|
Value: bool Traverse##N(N *S) { \
Base::Traverse##N(S); \
Hash.combine(PGOHash::EndOfScope); \
return true; \
}
Definition at line 482 of file CodeGenPGO.cpp.
◆ PGOHashVersion
The version of the PGO hash algorithm.
Enumerator |
---|
PGO_HASH_V1 | |
PGO_HASH_V2 | |
PGO_HASH_V3 | |
PGO_HASH_LATEST | |
Definition at line 59 of file CodeGenPGO.cpp.
◆ calculateWeightScale()
static uint64_t calculateWeightScale |
( |
uint64_t |
MaxWeight | ) |
|
|
static |
Calculate what to divide by to scale weights.
Given the maximum weight, calculate a divisor that will scale all the weights to strictly less than UINT32_MAX.
Definition at line 1429 of file CodeGenPGO.cpp.
◆ EnableValueProfiling()
static llvm::cl::opt< bool > EnableValueProfiling |
( |
"enable-value-profiling" |
, |
|
|
llvm::cl::desc("Enable value profiling") |
, |
|
|
llvm::cl::Hidden |
, |
|
|
llvm::cl::init(false) |
|
|
) |
| |
|
static |
◆ scaleBranchWeight()
static uint32_t scaleBranchWeight |
( |
uint64_t |
Weight, |
|
|
uint64_t |
Scale |
|
) |
| |
|
static |
Scale an individual branch weight (and add 1).
Scale a 64-bit weight down to 32-bits using Scale
.
According to Laplace's Rule of Succession, it is better to compute the weight based on the count plus 1, so universally add 1 to the value.
- Precondition
Scale
was calculated by calculateWeightScale() with a weight no greater than Weight
.
Definition at line 1442 of file CodeGenPGO.cpp.
◆ SystemHeadersCoverage
llvm::cl::opt<bool> SystemHeadersCoverage |
|
extern |