Revert r247278 "Disable support for modulo expressions"
This reverts commit 00c5b6ca8832439193036aadaaaee92a43236219.
We can handle modulo expressions in the domain again.
llvm-svn: 247542
diff --git a/polly/lib/Support/SCEVValidator.cpp b/polly/lib/Support/SCEVValidator.cpp
index 4514219..85bda18 100644
--- a/polly/lib/Support/SCEVValidator.cpp
+++ b/polly/lib/Support/SCEVValidator.cpp
@@ -350,23 +350,17 @@
}
ValidatorResult visitSRemInstruction(Instruction *SRem, const SCEV *S) {
- // TODO: FIXME: SRem instructions in the domain description are currently
- // not compatible with the domain generation. Once this is
- // fixed we need to enable this handling again.
- return ValidatorResult(SCEVType::INVALID);
-#if 0
- assert(SRem->getOpcode() == Instruction::SRem &&
- "Assumed SRem instruction!");
+ assert(SRem->getOpcode() == Instruction::SRem &&
+ "Assumed SRem instruction!");
- auto *Divisor = SRem->getOperand(1);
- auto *CI = dyn_cast<ConstantInt>(Divisor);
- if (!CI)
- return visitGenericInst(SRem, S);
+ auto *Divisor = SRem->getOperand(1);
+ auto *CI = dyn_cast<ConstantInt>(Divisor);
+ if (!CI)
+ return visitGenericInst(SRem, S);
- auto *Dividend = SRem->getOperand(0);
- auto *DividendSCEV = SE.getSCEV(Dividend);
- return visit(DividendSCEV);
-#endif
+ auto *Dividend = SRem->getOperand(0);
+ auto *DividendSCEV = SE.getSCEV(Dividend);
+ return visit(DividendSCEV);
}
ValidatorResult visitUnknown(const SCEVUnknown *Expr) {