llvm::SCEVDivision

SCEV visitor that divides a numerator expression by a fixed denominator.

Synopsis

Declared in <llvm/Analysis/ScalarEvolutionDivision.h>

struct SCEVDivision
    : SCEVVisitor<SCEVDivision, void>

Base Classes

NameDescription
SCEVVisitor<SCEVDivision, void>This class defines a simple visitor class that may be used for various SCEV analysis purposes.

Member Functions

NameDescription
visit Dispatch to the typed visit method for S.
visitAddExpr Divide an add SCEV by the denominator when possible.
visitAddRecExpr Divide an add-recurrence SCEV by the denominator when possible.
visitConstant Divide a constant SCEV by the denominator when possible.
visitCouldNotCompute visitCouldNotCompute overloads
visitMulExpr Divide a multiply SCEV by the denominator when possible.
visitPtrToAddrExpr Leave the trivial quotient/remainder for a pointer-to-address numerator.
visitSMaxExpr Leave the trivial quotient/remainder for a signed-max numerator.
visitSMinExpr Leave the trivial quotient/remainder for a signed-min numerator.
visitSequentialUMinExpr Leave the trivial quotient/remainder for a sequential unsigned-min.
visitSignExtendExpr Leave the trivial quotient/remainder for a sign-extend numerator.
visitTruncateExpr Leave the trivial quotient/remainder for a truncate numerator.
visitUDivExpr Leave the trivial quotient/remainder for an unsigned-divide numerator.
visitUMaxExpr Leave the trivial quotient/remainder for an unsigned-max numerator.
visitUMinExpr Leave the trivial quotient/remainder for an unsigned-min numerator.
visitUnknown Leave the trivial quotient/remainder for an unknown SCEV numerator.
visitVScale Divide a vscale SCEV by the denominator when possible.
visitZeroExtendExpr Leave the trivial quotient/remainder for a zero-extend numerator.

Static Member Functions

NameDescription
divide Compute quotient and remainder SCEVs for dividing Numerator by Denominator.