class CounterExpressionBuilder
Declaration
class CounterExpressionBuilder { /* full declaration omitted */ };
Description
A Counter expression builder is used to construct the counter expressions. It avoids unnecessary duplication and simplifies algebraic expressions.
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:160
Member Variables
- private std::vector<CounterExpression> Expressions
- A list of all the counter expressions
- private DenseMap<llvm::coverage::CounterExpression, unsigned int> ExpressionIndices
- A lookup table for the index of a given expression.
Method Overview
- public llvm::coverage::Counter add(llvm::coverage::Counter LHS, llvm::coverage::Counter RHS, bool Simplify = true)
- private void extractTerms(llvm::coverage::Counter C, int Sign, SmallVectorImpl<llvm::coverage::CounterExpressionBuilder::Term> & Terms)
- private llvm::coverage::Counter get(const llvm::coverage::CounterExpression & E)
- public ArrayRef<llvm::coverage::CounterExpression> getExpressions() const
- private llvm::coverage::Counter simplify(llvm::coverage::Counter ExpressionTree)
- public llvm::coverage::Counter subtract(llvm::coverage::Counter LHS, llvm::coverage::Counter RHS, bool Simplify = true)
Methods
¶llvm::coverage::Counter add(
llvm::coverage::Counter LHS,
llvm::coverage::Counter RHS,
bool Simplify = true)
llvm::coverage::Counter add(
llvm::coverage::Counter LHS,
llvm::coverage::Counter RHS,
bool Simplify = true)
Description
Return a counter that represents the expression that adds LHS and RHS.
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:198
Parameters
- llvm::coverage::Counter LHS
- llvm::coverage::Counter RHS
- bool Simplify = true
¶void extractTerms(
llvm::coverage::Counter C,
int Sign,
SmallVectorImpl<
llvm::coverage::CounterExpressionBuilder::
Term>& Terms)
void extractTerms(
llvm::coverage::Counter C,
int Sign,
SmallVectorImpl<
llvm::coverage::CounterExpressionBuilder::
Term>& Terms)
Description
Gather the terms of the expression tree for processing. This collects each addition and subtraction referenced by the counter into a sequence that can be sorted and combined to build a simplified counter expression.
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:188
Parameters
- llvm::coverage::Counter C
- int Sign
- SmallVectorImpl< llvm::coverage::CounterExpressionBuilder:: Term>& Terms
¶llvm::coverage::Counter get(
const llvm::coverage::CounterExpression& E)
llvm::coverage::Counter get(
const llvm::coverage::CounterExpression& E)
Description
Return the counter which corresponds to the given expression. If the given expression is already stored in the builder, a counter that references that expression is returned. Otherwise, the given expression is added to the builder's collection of expressions.
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:172
Parameters
- const llvm::coverage::CounterExpression& E
¶ArrayRef<llvm::coverage::CounterExpression>
getExpressions() const
ArrayRef<llvm::coverage::CounterExpression>
getExpressions() const
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:195
¶llvm::coverage::Counter simplify(
llvm::coverage::Counter ExpressionTree)
llvm::coverage::Counter simplify(
llvm::coverage::Counter ExpressionTree)
Description
Simplifies the given expression tree by getting rid of algebraically redundant operations.
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:192
Parameters
- llvm::coverage::Counter ExpressionTree
¶llvm::coverage::Counter subtract(
llvm::coverage::Counter LHS,
llvm::coverage::Counter RHS,
bool Simplify = true)
llvm::coverage::Counter subtract(
llvm::coverage::Counter LHS,
llvm::coverage::Counter RHS,
bool Simplify = true)
Description
Return a counter that represents the expression that subtracts RHS from LHS.
Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:202
Parameters
- llvm::coverage::Counter LHS
- llvm::coverage::Counter RHS
- bool Simplify = true