The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop ‐> SCEV) to all AddRecExprs.

Synopsis

Declared in <llvm/Analysis/ScalarEvolutionExpressions.h>

class SCEVLoopAddRecRewriter
    : public SCEVRewriteVisitor<SCEVLoopAddRecRewriter>

Base Classes

Name

Description

SCEVRewriteVisitor<SCEVLoopAddRecRewriter>

This visitor recursively visits a SCEV expression and re‐writes it. The result from each visit is cached, so it will return the same SCEV for the same input.

Member Functions

Name

Description

SCEVLoopAddRecRewriter [constructor]

Construct a loop add‐rec rewriter using Map.

visit

Rewrite S, memoizing the result for repeated visits.

visitAddExpr

Rewrite an add by rewriting each operand.

visitAddRecExpr

Rewrite an add‐recurrence, evaluating it when its loop is mapped.

visitConstant

Return Constant unchanged.

visitCouldNotCompute

Return Expr unchanged.

visitMulExpr

Rewrite a mul by rewriting each operand.

visitPtrToAddrExpr

Rewrite a pointer‐to‐address cast by rewriting its operand.

visitSMaxExpr

Rewrite a signed max by rewriting each operand.

visitSMinExpr

Rewrite a signed min by rewriting each operand.

visitSequentialUMinExpr

Rewrite a sequential unsigned min by rewriting each operand.

visitSignExtendExpr

Rewrite a sign‐extend by rewriting its operand.

visitTruncateExpr

Rewrite a truncate by rewriting its operand.

visitUDivExpr

Rewrite an unsigned division by rewriting both operands.

visitUMaxExpr

Rewrite an unsigned max by rewriting each operand.

visitUMinExpr

Rewrite an unsigned min by rewriting each operand.

visitUnknown

Return Expr unchanged.

visitVScale

Return VScale unchanged.

visitZeroExtendExpr

Rewrite a zero‐extend by rewriting its operand.

Static Member Functions

Name

Description

rewrite

Rewrite Scev, evaluating add‐recs for loops found in Map.

Protected Data Members

Name

Description

RewriteResults

Memoized rewrite results keyed by the original SCEV.

SE

Scalar evolution used to rebuild rewritten expressions.

Created with MrDocs