summaryrefslogtreecommitdiffstats
path: root/polly/lib/Support/SCEVAffinator.cpp
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2018-03-10 18:07:03 +0000
committerTobias Grosser <tobias@grosser.es>2018-03-10 18:07:03 +0000
commita1da86b2242682dacd337705e66f3095de98cf1b (patch)
tree7e2bb33f596d8799e7b21cfa875b0c57bff4144d /polly/lib/Support/SCEVAffinator.cpp
parent7948738673607fa28c9604c278a61e0eedc71872 (diff)
downloadbcm5719-llvm-a1da86b2242682dacd337705e66f3095de98cf1b.tar.gz
bcm5719-llvm-a1da86b2242682dacd337705e66f3095de98cf1b.zip
Add isl operator overloads for isl::pw_aff
Piecewise affine expressions have directly corresponding mathematical operators. Introduce these operators as overloads as this makes writing code with isl::pw_aff expressions more directly readable. We can now write: A = B + C instead of A = B.add(C) llvm-svn: 327216
Diffstat (limited to 'polly/lib/Support/SCEVAffinator.cpp')
-rw-r--r--polly/lib/Support/SCEVAffinator.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/polly/lib/Support/SCEVAffinator.cpp b/polly/lib/Support/SCEVAffinator.cpp
index 14603e1aad9..02f13c18623 100644
--- a/polly/lib/Support/SCEVAffinator.cpp
+++ b/polly/lib/Support/SCEVAffinator.cpp
@@ -15,6 +15,7 @@
#include "polly/Options.h"
#include "polly/ScopInfo.h"
#include "polly/Support/GICHelper.h"
+#include "polly/Support/ISLOperators.h"
#include "polly/Support/SCEVValidator.h"
#include "polly/Support/ScopHelper.h"
#include "isl/aff.h"
@@ -162,7 +163,8 @@ isl::pw_aff SCEVAffinator::addModuloSemantic(isl::pw_aff PWA,
isl::set Domain = PWA.domain();
isl::pw_aff AddPW =
isl::manage(getWidthExpValOnDomain(Width - 1, Domain.take()));
- return PWA.add(AddPW).mod(ModVal).sub(AddPW);
+
+ return ((PWA + AddPW) % ModVal) - AddPW;
}
bool SCEVAffinator::hasNSWAddRecForLoop(Loop *L) const {
OpenPOWER on IntegriCloud