struct SCEVDivision
Declaration
struct SCEVDivision : public SCEVVisitor { /* full declaration omitted */ };
Description
This class defines a simple visitor class that may be used for various SCEV analysis purposes.
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:26
Inherits from: SCEVVisitor
Member Variables
- private llvm::ScalarEvolution& SE
- private const llvm::SCEV* Denominator
- private const llvm::SCEV* Quotient
- private const llvm::SCEV* Remainder
- private const llvm::SCEV* Zero
- private const llvm::SCEV* One
Method Overview
- private SCEVDivision(llvm::ScalarEvolution & S, const llvm::SCEV * Numerator, const llvm::SCEV * Denominator)
- private void cannotDivide(const llvm::SCEV * Numerator)
- public static void divide(llvm::ScalarEvolution & SE, const llvm::SCEV * Numerator, const llvm::SCEV * Denominator, const llvm::SCEV ** Quotient, const llvm::SCEV ** Remainder)
- public void visitAddExpr(const llvm::SCEVAddExpr * Numerator)
- public void visitAddRecExpr(const llvm::SCEVAddRecExpr * Numerator)
- public void visitConstant(const llvm::SCEVConstant * Numerator)
- public void visitCouldNotCompute(const llvm::SCEVCouldNotCompute * Numerator)
- public void visitMulExpr(const llvm::SCEVMulExpr * Numerator)
- public void visitPtrToIntExpr(const llvm::SCEVPtrToIntExpr * Numerator)
- public void visitSMaxExpr(const llvm::SCEVSMaxExpr * Numerator)
- public void visitSMinExpr(const llvm::SCEVSMinExpr * Numerator)
- public void visitSequentialUMinExpr(const llvm::SCEVSequentialUMinExpr * Numerator)
- public void visitSignExtendExpr(const llvm::SCEVSignExtendExpr * Numerator)
- public void visitTruncateExpr(const llvm::SCEVTruncateExpr * Numerator)
- public void visitUDivExpr(const llvm::SCEVUDivExpr * Numerator)
- public void visitUMaxExpr(const llvm::SCEVUMaxExpr * Numerator)
- public void visitUMinExpr(const llvm::SCEVUMinExpr * Numerator)
- public void visitUnknown(const llvm::SCEVUnknown * Numerator)
- public void visitZeroExtendExpr(const llvm::SCEVZeroExtendExpr * Numerator)
Methods
¶SCEVDivision(llvm::ScalarEvolution& S,
const llvm::SCEV* Numerator,
const llvm::SCEV* Denominator)
SCEVDivision(llvm::ScalarEvolution& S,
const llvm::SCEV* Numerator,
const llvm::SCEV* Denominator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:58
Parameters
- llvm::ScalarEvolution& S
- const llvm::SCEV* Numerator
- const llvm::SCEV* Denominator
¶void cannotDivide(const llvm::SCEV* Numerator)
void cannotDivide(const llvm::SCEV* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:63
Parameters
- const llvm::SCEV* Numerator
¶static void divide(llvm::ScalarEvolution& SE,
const llvm::SCEV* Numerator,
const llvm::SCEV* Denominator,
const llvm::SCEV** Quotient,
const llvm::SCEV** Remainder)
static void divide(llvm::ScalarEvolution& SE,
const llvm::SCEV* Numerator,
const llvm::SCEV* Denominator,
const llvm::SCEV** Quotient,
const llvm::SCEV** Remainder)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:30
Parameters
- llvm::ScalarEvolution& SE
- const llvm::SCEV* Numerator
- const llvm::SCEV* Denominator
- const llvm::SCEV** Quotient
- const llvm::SCEV** Remainder
¶void visitAddExpr(
const llvm::SCEVAddExpr* Numerator)
void visitAddExpr(
const llvm::SCEVAddExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:53
Parameters
- const llvm::SCEVAddExpr* Numerator
¶void visitAddRecExpr(
const llvm::SCEVAddRecExpr* Numerator)
void visitAddRecExpr(
const llvm::SCEVAddRecExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:51
Parameters
- const llvm::SCEVAddRecExpr* Numerator
¶void visitConstant(
const llvm::SCEVConstant* Numerator)
void visitConstant(
const llvm::SCEVConstant* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:49
Parameters
- const llvm::SCEVConstant* Numerator
¶void visitCouldNotCompute(
const llvm::SCEVCouldNotCompute* Numerator)
void visitCouldNotCompute(
const llvm::SCEVCouldNotCompute* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:47
Parameters
- const llvm::SCEVCouldNotCompute* Numerator
¶void visitMulExpr(
const llvm::SCEVMulExpr* Numerator)
void visitMulExpr(
const llvm::SCEVMulExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:55
Parameters
- const llvm::SCEVMulExpr* Numerator
¶void visitPtrToIntExpr(
const llvm::SCEVPtrToIntExpr* Numerator)
void visitPtrToIntExpr(
const llvm::SCEVPtrToIntExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:36
Parameters
- const llvm::SCEVPtrToIntExpr* Numerator
¶void visitSMaxExpr(
const llvm::SCEVSMaxExpr* Numerator)
void visitSMaxExpr(
const llvm::SCEVSMaxExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:41
Parameters
- const llvm::SCEVSMaxExpr* Numerator
¶void visitSMinExpr(
const llvm::SCEVSMinExpr* Numerator)
void visitSMinExpr(
const llvm::SCEVSMinExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:43
Parameters
- const llvm::SCEVSMinExpr* Numerator
¶void visitSequentialUMinExpr(
const llvm::SCEVSequentialUMinExpr* Numerator)
void visitSequentialUMinExpr(
const llvm::SCEVSequentialUMinExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:45
Parameters
- const llvm::SCEVSequentialUMinExpr* Numerator
¶void visitSignExtendExpr(
const llvm::SCEVSignExtendExpr* Numerator)
void visitSignExtendExpr(
const llvm::SCEVSignExtendExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:39
Parameters
- const llvm::SCEVSignExtendExpr* Numerator
¶void visitTruncateExpr(
const llvm::SCEVTruncateExpr* Numerator)
void visitTruncateExpr(
const llvm::SCEVTruncateExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:37
Parameters
- const llvm::SCEVTruncateExpr* Numerator
¶void visitUDivExpr(
const llvm::SCEVUDivExpr* Numerator)
void visitUDivExpr(
const llvm::SCEVUDivExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:40
Parameters
- const llvm::SCEVUDivExpr* Numerator
¶void visitUMaxExpr(
const llvm::SCEVUMaxExpr* Numerator)
void visitUMaxExpr(
const llvm::SCEVUMaxExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:42
Parameters
- const llvm::SCEVUMaxExpr* Numerator
¶void visitUMinExpr(
const llvm::SCEVUMinExpr* Numerator)
void visitUMinExpr(
const llvm::SCEVUMinExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:44
Parameters
- const llvm::SCEVUMinExpr* Numerator
¶void visitUnknown(
const llvm::SCEVUnknown* Numerator)
void visitUnknown(
const llvm::SCEVUnknown* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:46
Parameters
- const llvm::SCEVUnknown* Numerator
¶void visitZeroExtendExpr(
const llvm::SCEVZeroExtendExpr* Numerator)
void visitZeroExtendExpr(
const llvm::SCEVZeroExtendExpr* Numerator)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionDivision.h:38
Parameters
- const llvm::SCEVZeroExtendExpr* Numerator