clang 20.0.0git
Public Member Functions | List of all members
clang::CodeGen::CodeGenPGO Class Reference

Per-function PGO state. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CodeGenPGO.h"

Public Member Functions

 CodeGenPGO (CodeGenModule &CGModule)
 
bool haveRegionCounts () const
 Whether or not we have PGO region data for the current function.
 
uint64_t getCurrentRegionCount () const
 Return the counter value of the current region.
 
void setCurrentRegionCount (uint64_t Count)
 Set the counter value for the current region.
 
std::optional< uint64_t > getStmtCount (const Stmt *S) const
 Check if an execution count is known for a given statement.
 
void setCurrentStmt (const Stmt *S)
 If the execution count for the current statement is known, record that as the current count.
 
void assignRegionCounters (GlobalDecl GD, llvm::Function *Fn)
 Assign counters to regions and configure them for PGO of a given function.
 
void emitEmptyCounterMapping (const Decl *D, StringRef FuncName, llvm::GlobalValue::LinkageTypes Linkage)
 Emit a coverage mapping range with a counter zero for an unused declaration.
 
void valueProfile (CGBuilderTy &Builder, uint32_t ValueKind, llvm::Instruction *ValueSite, llvm::Value *ValuePtr)
 
void setValueProfilingFlag (llvm::Module &M)
 
void setProfileVersion (llvm::Module &M)
 
void emitCounterSetOrIncrement (CGBuilderTy &Builder, const Stmt *S, llvm::Value *StepV)
 
void emitMCDCTestVectorBitmapUpdate (CGBuilderTy &Builder, const Expr *S, Address MCDCCondBitmapAddr, CodeGenFunction &CGF)
 
void emitMCDCParameters (CGBuilderTy &Builder)
 
void emitMCDCCondBitmapReset (CGBuilderTy &Builder, const Expr *S, Address MCDCCondBitmapAddr)
 
void emitMCDCCondBitmapUpdate (CGBuilderTy &Builder, const Expr *S, Address MCDCCondBitmapAddr, llvm::Value *Val, CodeGenFunction &CGF)
 
uint64_t getRegionCount (const Stmt *S)
 Return the region count for the counter at the given index.
 

Detailed Description

Per-function PGO state.

Definition at line 29 of file CodeGenPGO.h.

Constructor & Destructor Documentation

◆ CodeGenPGO()

clang::CodeGen::CodeGenPGO::CodeGenPGO ( CodeGenModule CGModule)
inline

Definition at line 46 of file CodeGenPGO.h.

Member Function Documentation

◆ assignRegionCounters()

void CodeGenPGO::assignRegionCounters ( GlobalDecl  GD,
llvm::Function *  Fn 
)

◆ emitCounterSetOrIncrement()

void CodeGenPGO::emitCounterSetOrIncrement ( CGBuilderTy Builder,
const Stmt S,
llvm::Value *  StepV 
)

◆ emitEmptyCounterMapping()

void CodeGenPGO::emitEmptyCounterMapping ( const Decl D,
StringRef  FuncName,
llvm::GlobalValue::LinkageTypes  Linkage 
)

◆ emitMCDCCondBitmapReset()

void CodeGenPGO::emitMCDCCondBitmapReset ( CGBuilderTy Builder,
const Expr S,
Address  MCDCCondBitmapAddr 
)

Definition at line 1272 of file CodeGenPGO.cpp.

◆ emitMCDCCondBitmapUpdate()

void CodeGenPGO::emitMCDCCondBitmapUpdate ( CGBuilderTy Builder,
const Expr S,
Address  MCDCCondBitmapAddr,
llvm::Value *  Val,
CodeGenFunction CGF 
)

Definition at line 1286 of file CodeGenPGO.cpp.

References clang::CodeGen::CodeGenFunction::stripCond().

◆ emitMCDCParameters()

void CodeGenPGO::emitMCDCParameters ( CGBuilderTy Builder)

◆ emitMCDCTestVectorBitmapUpdate()

void CodeGenPGO::emitMCDCTestVectorBitmapUpdate ( CGBuilderTy Builder,
const Expr S,
Address  MCDCCondBitmapAddr,
CodeGenFunction CGF 
)

◆ getCurrentRegionCount()

uint64_t clang::CodeGen::CodeGenPGO::getCurrentRegionCount ( ) const
inline

Return the counter value of the current region.

Definition at line 56 of file CodeGenPGO.h.

◆ getRegionCount()

uint64_t clang::CodeGen::CodeGenPGO::getRegionCount ( const Stmt S)
inline

Return the region count for the counter at the given index.

Definition at line 126 of file CodeGenPGO.h.

References haveRegionCounts().

◆ getStmtCount()

std::optional< uint64_t > clang::CodeGen::CodeGenPGO::getStmtCount ( const Stmt S) const
inline

Check if an execution count is known for a given statement.

If so, return true and put the value in Count; else return false.

Definition at line 65 of file CodeGenPGO.h.

Referenced by setCurrentStmt().

◆ haveRegionCounts()

bool clang::CodeGen::CodeGenPGO::haveRegionCounts ( ) const
inline

Whether or not we have PGO region data for the current function.

This is false both when we have no data at all and when our data has been discarded.

Definition at line 53 of file CodeGenPGO.h.

Referenced by getRegionCount(), and valueProfile().

◆ setCurrentRegionCount()

void clang::CodeGen::CodeGenPGO::setCurrentRegionCount ( uint64_t  Count)
inline

Set the counter value for the current region.

This is used to keep track of changes to the most recent counter from control flow and non-local exits.

Definition at line 61 of file CodeGenPGO.h.

Referenced by setCurrentStmt().

◆ setCurrentStmt()

void clang::CodeGen::CodeGenPGO::setCurrentStmt ( const Stmt S)
inline

If the execution count for the current statement is known, record that as the current count.

Definition at line 76 of file CodeGenPGO.h.

References getStmtCount(), and setCurrentRegionCount().

◆ setProfileVersion()

void CodeGenPGO::setProfileVersion ( llvm::Module &  M)

◆ setValueProfilingFlag()

void CodeGenPGO::setValueProfilingFlag ( llvm::Module &  M)

◆ valueProfile()

void CodeGenPGO::valueProfile ( CGBuilderTy Builder,
uint32_t  ValueKind,
llvm::Instruction *  ValueSite,
llvm::Value *  ValuePtr 
)

The documentation for this class was generated from the following files: