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.
Synopsis
Declared in <llvm/Analysis/ScalarEvolutionExpressions.h>
template<typename SC>
class SCEVRewriteVisitor
: public SCEVVisitor<SC, SCEV const*>
Base Classes
Name |
Description |
This class defines a simple visitor class that may be used for various SCEV analysis purposes. |
Member Functions
Name |
Description |
|
Construct a rewrite visitor using scalar evolution |
Rewrite |
|
Rewrite an add by rewriting each operand. |
|
Rewrite an add‐recurrence by rewriting each operand. |
|
Return |
|
|
|
Rewrite a mul by rewriting each operand. |
|
Rewrite a pointer‐to‐address cast by rewriting its operand. |
|
Rewrite a signed max by rewriting each operand. |
|
Rewrite a signed min by rewriting each operand. |
|
Rewrite a sequential unsigned min by rewriting each operand. |
|
Rewrite a sign‐extend by rewriting its operand. |
|
Rewrite a truncate by rewriting its operand. |
|
Rewrite an unsigned division by rewriting both operands. |
|
Rewrite an unsigned max by rewriting each operand. |
|
Rewrite an unsigned min by rewriting each operand. |
|
Return |
|
Return |
|
Rewrite a zero‐extend by rewriting its operand. |
Protected Data Members
Name |
Description |
Memoized rewrite results keyed by the original SCEV. |
|
Scalar evolution used to rebuild rewritten expressions. |
Derived Classes
Name |
Description |
The SCEVLoopAddRecRewriter takes a scalar evolution expression and applies the Map (Loop ‐> SCEV) to all AddRecExprs. |
|
The SCEVParameterRewriter takes a scalar evolution expression and updates the SCEVUnknown components following the Map (Value ‐> SCEV). |
Created with MrDocs