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)

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)

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)

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

Declared at: llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h:195

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)

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