LLVM 20.0.0git
Functions
CoverageMappingWriter.cpp File Reference
#include "llvm/ProfileData/Coverage/CoverageMappingWriter.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ProfileData/InstrProf.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <limits>
#include <vector>

Go to the source code of this file.

Functions

static unsigned encodeCounter (ArrayRef< CounterExpression > Expressions, Counter C)
 Encode the counter.
 
static void writeCounter (ArrayRef< CounterExpression > Expressions, Counter C, raw_ostream &OS)
 

Function Documentation

◆ encodeCounter()

static unsigned encodeCounter ( ArrayRef< CounterExpression Expressions,
Counter  C 
)
static

Encode the counter.

The encoding uses the following format: Low 2 bits - Tag: Counter::Zero(0) - A Counter with kind Counter::Zero Counter::CounterValueReference(1) - A counter with kind Counter::CounterValueReference Counter::Expression(2) + CounterExpression::Subtract(0) - A counter with kind Counter::Expression and an expression with kind CounterExpression::Subtract Counter::Expression(2) + CounterExpression::Add(1) - A counter with kind Counter::Expression and an expression with kind CounterExpression::Add Remaining bits - Counter/Expression ID.

Definition at line 138 of file CoverageMappingWriter.cpp.

References assert(), llvm::CallingConv::C, and llvm::coverage::Counter::EncodingTagBits.

Referenced by writeCounter().

◆ writeCounter()

static void writeCounter ( ArrayRef< CounterExpression Expressions,
Counter  C,
raw_ostream OS 
)
static