class SCEVLoopGuardRewriter

Declaration

class SCEVLoopGuardRewriter : public SCEVRewriteVisitor { /* full declaration omitted */ };

Description

A rewriter to replace SCEV expressions in Map with the corresponding entry in the map. It skips AddRecExpr because we cannot guarantee that the replacement is loop invariant in the loop of the AddRec. At the moment only rewriting SCEVUnknown and SCEVZeroExtendExpr is supported.

Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14540

Inherits from: SCEVRewriteVisitor

Member Variables

private const DenseMap<const llvm::SCEV*, const llvm::SCEV*>& Map

Method Overview

  • public SCEVLoopGuardRewriter(llvm::ScalarEvolution & SE, DenseMap<const llvm::SCEV *, const llvm::SCEV *> & M)
  • public const llvm::SCEV * visitAddRecExpr(const llvm::SCEVAddRecExpr * Expr)
  • public const llvm::SCEV * visitUnknown(const llvm::SCEVUnknown * Expr)
  • public const llvm::SCEV * visitZeroExtendExpr(const llvm::SCEVZeroExtendExpr * Expr)

Methods

SCEVLoopGuardRewriter(
    llvm::ScalarEvolution& SE,
    DenseMap<const llvm::SCEV*,
             const llvm::SCEV*>& M)

Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14544

Parameters

llvm::ScalarEvolution& SE
DenseMap<const llvm::SCEV*, const llvm::SCEV*>& M

const llvm::SCEV* visitAddRecExpr(
    const llvm::SCEVAddRecExpr* Expr)

Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14548

Parameters

const llvm::SCEVAddRecExpr* Expr

const llvm::SCEV* visitUnknown(
    const llvm::SCEVUnknown* Expr)

Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14550

Parameters

const llvm::SCEVUnknown* Expr

const llvm::SCEV* visitZeroExtendExpr(
    const llvm::SCEVZeroExtendExpr* Expr)

Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14557

Parameters

const llvm::SCEVZeroExtendExpr* Expr