Polly 20.0.0git
|
Check if a SCEV is valid in a SCoP. More...
Public Member Functions | |
SCEVValidator (const Region *R, Loop *Scope, ScalarEvolution &SE, InvariantLoadsSetTy *ILS) | |
ValidatorResult | visitConstant (const SCEVConstant *Constant) |
ValidatorResult | visitVScale (const SCEVVScale *VScale) |
ValidatorResult | visitZeroExtendOrTruncateExpr (const SCEV *Expr, const SCEV *Operand) |
ValidatorResult | visitPtrToIntExpr (const SCEVPtrToIntExpr *Expr) |
ValidatorResult | visitTruncateExpr (const SCEVTruncateExpr *Expr) |
ValidatorResult | visitZeroExtendExpr (const SCEVZeroExtendExpr *Expr) |
ValidatorResult | visitSignExtendExpr (const SCEVSignExtendExpr *Expr) |
ValidatorResult | visitAddExpr (const SCEVAddExpr *Expr) |
ValidatorResult | visitMulExpr (const SCEVMulExpr *Expr) |
ValidatorResult | visitAddRecExpr (const SCEVAddRecExpr *Expr) |
ValidatorResult | visitSMaxExpr (const SCEVSMaxExpr *Expr) |
ValidatorResult | visitSMinExpr (const SCEVSMinExpr *Expr) |
ValidatorResult | visitUMaxExpr (const SCEVUMaxExpr *Expr) |
ValidatorResult | visitUMinExpr (const SCEVUMinExpr *Expr) |
ValidatorResult | visitSequentialUMinExpr (const SCEVSequentialUMinExpr *Expr) |
ValidatorResult | visitGenericInst (Instruction *I, const SCEV *S) |
ValidatorResult | visitLoadInstruction (Instruction *I, const SCEV *S) |
ValidatorResult | visitDivision (const SCEV *Dividend, const SCEV *Divisor, const SCEV *DivExpr, Instruction *SDiv=nullptr) |
ValidatorResult | visitUDivExpr (const SCEVUDivExpr *Expr) |
ValidatorResult | visitSDivInstruction (Instruction *SDiv, const SCEV *Expr) |
ValidatorResult | visitSRemInstruction (Instruction *SRem, const SCEV *S) |
ValidatorResult | visitUnknown (const SCEVUnknown *Expr) |
Private Attributes | |
const Region * | R |
Loop * | Scope |
ScalarEvolution & | SE |
InvariantLoadsSetTy * | ILS |
Check if a SCEV is valid in a SCoP.
Definition at line 122 of file SCEVValidator.cpp.
|
inline |
Definition at line 130 of file SCEVValidator.cpp.
|
inline |
Definition at line 175 of file SCEVValidator.cpp.
References SCEVType::INT, ValidatorResult::isValid(), and ValidatorResult::merge().
|
inline |
Definition at line 226 of file SCEVValidator.cpp.
References ValidatorResult::addParamsFrom(), assert, SCEVType::INVALID, ValidatorResult::isConstant(), ValidatorResult::isINT(), ValidatorResult::isValid(), SCEVType::IV, SCEVType::PARAM, POLLY_DEBUG, R, Scope, and SE.
|
inline |
Definition at line 134 of file SCEVValidator.cpp.
References SCEVType::INT.
|
inline |
Definition at line 377 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, POLLY_DEBUG, and visitGenericInst().
Referenced by visitSDivInstruction(), and visitUDivExpr().
|
inline |
Definition at line 358 of file SCEVValidator.cpp.
References SCEVType::INVALID, SCEVType::PARAM, POLLY_DEBUG, and R.
Referenced by visitDivision(), visitLoadInstruction(), visitSRemInstruction(), and visitUnknown().
|
inline |
Definition at line 368 of file SCEVValidator.cpp.
References ILS, SCEVType::PARAM, R, and visitGenericInst().
Referenced by visitUnknown().
|
inline |
Definition at line 190 of file SCEVValidator.cpp.
References SCEVType::INT, SCEVType::INVALID, ValidatorResult::isINT(), ValidatorResult::isIV(), ValidatorResult::isPARAM(), ValidatorResult::isValid(), ValidatorResult::merge(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 159 of file SCEVValidator.cpp.
|
inline |
Definition at line 411 of file SCEVValidator.cpp.
References assert, SE, and visitDivision().
Referenced by visitUnknown().
|
inline |
Definition at line 341 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 171 of file SCEVValidator.cpp.
|
inline |
Definition at line 281 of file SCEVValidator.cpp.
References SCEVType::INT, ValidatorResult::isValid(), and ValidatorResult::merge().
|
inline |
Definition at line 296 of file SCEVValidator.cpp.
References SCEVType::INT, ValidatorResult::isValid(), and ValidatorResult::merge().
|
inline |
Definition at line 420 of file SCEVValidator.cpp.
References assert, SE, and visitGenericInst().
Referenced by visitUnknown().
|
inline |
Definition at line 163 of file SCEVValidator.cpp.
References visitZeroExtendOrTruncateExpr().
|
inline |
Definition at line 402 of file SCEVValidator.cpp.
References SCEVType::INVALID, polly::PollyAllowUnsignedOperations, and visitDivision().
|
inline |
Definition at line 311 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 326 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 434 of file SCEVValidator.cpp.
References SCEVType::INT, SCEVType::INVALID, SCEVType::PARAM, POLLY_DEBUG, Scope, SE, polly::Value, visitGenericInst(), visitLoadInstruction(), visitSDivInstruction(), and visitSRemInstruction().
|
inline |
Definition at line 138 of file SCEVValidator.cpp.
References SCEVType::INVALID, and POLLY_DEBUG.
|
inline |
Definition at line 167 of file SCEVValidator.cpp.
References visitZeroExtendOrTruncateExpr().
|
inline |
Definition at line 144 of file SCEVValidator.cpp.
References ValidatorResult::getType(), SCEVType::INVALID, SCEVType::IV, SCEVType::PARAM, and polly::PollyAllowUnsignedOperations.
Referenced by visitTruncateExpr(), and visitZeroExtendExpr().
|
private |
Definition at line 127 of file SCEVValidator.cpp.
Referenced by visitLoadInstruction().
|
private |
Definition at line 124 of file SCEVValidator.cpp.
Referenced by visitAddRecExpr(), visitGenericInst(), and visitLoadInstruction().
|
private |
Definition at line 125 of file SCEVValidator.cpp.
Referenced by visitAddRecExpr(), and visitUnknown().
|
private |
Definition at line 126 of file SCEVValidator.cpp.
Referenced by visitAddRecExpr(), visitSDivInstruction(), visitSRemInstruction(), and visitUnknown().