diff options
| author | Tobias Grosser <tobias@grosser.es> | 2018-03-10 18:07:03 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2018-03-10 18:07:03 +0000 |
| commit | a1da86b2242682dacd337705e66f3095de98cf1b (patch) | |
| tree | 7e2bb33f596d8799e7b21cfa875b0c57bff4144d /polly/lib/Support/SCEVAffinator.cpp | |
| parent | 7948738673607fa28c9604c278a61e0eedc71872 (diff) | |
| download | bcm5719-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.cpp | 4 |
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 { |

