|
Polly 23.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 | visitPtrToAddrExpr (const SCEVPtrToAddrExpr *Expr) |
| 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 |
|
inline |
Definition at line 179 of file SCEVValidator.cpp.
References SCEVType::INT, ValidatorResult::isValid(), and ValidatorResult::merge().
|
inline |
Definition at line 230 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 381 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, POLLY_DEBUG, and visitGenericInst().
Referenced by visitSDivInstruction(), and visitUDivExpr().
|
inline |
Definition at line 362 of file SCEVValidator.cpp.
References SCEVType::INVALID, SCEVType::PARAM, POLLY_DEBUG, and R.
Referenced by visitDivision(), visitLoadInstruction(), visitSRemInstruction(), and visitUnknown().
|
inline |
Definition at line 372 of file SCEVValidator.cpp.
References ILS, SCEVType::PARAM, R, and visitGenericInst().
Referenced by visitUnknown().
|
inline |
Definition at line 194 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 163 of file SCEVValidator.cpp.
|
inline |
Definition at line 415 of file SCEVValidator.cpp.
References assert, SE, and visitDivision().
Referenced by visitUnknown().
|
inline |
Definition at line 345 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 175 of file SCEVValidator.cpp.
|
inline |
Definition at line 285 of file SCEVValidator.cpp.
References SCEVType::INT, ValidatorResult::isValid(), and ValidatorResult::merge().
|
inline |
Definition at line 300 of file SCEVValidator.cpp.
References SCEVType::INT, ValidatorResult::isValid(), and ValidatorResult::merge().
|
inline |
Definition at line 424 of file SCEVValidator.cpp.
References assert, SE, and visitGenericInst().
Referenced by visitUnknown().
|
inline |
Definition at line 167 of file SCEVValidator.cpp.
References visitZeroExtendOrTruncateExpr().
|
inline |
Definition at line 406 of file SCEVValidator.cpp.
References SCEVType::INVALID, polly::PollyAllowUnsignedOperations, and visitDivision().
|
inline |
Definition at line 315 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 330 of file SCEVValidator.cpp.
References SCEVType::INVALID, ValidatorResult::isConstant(), SCEVType::PARAM, and POLLY_DEBUG.
|
inline |
Definition at line 438 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 171 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 SCEVValidator(), and visitLoadInstruction().
|
private |
Definition at line 124 of file SCEVValidator.cpp.
Referenced by SCEVValidator(), visitAddRecExpr(), visitGenericInst(), and visitLoadInstruction().
|
private |
Definition at line 125 of file SCEVValidator.cpp.
Referenced by SCEVValidator(), visitAddRecExpr(), and visitUnknown().
|
private |
Definition at line 126 of file SCEVValidator.cpp.
Referenced by SCEVValidator(), visitAddRecExpr(), visitSDivInstruction(), visitSRemInstruction(), and visitUnknown().