[polly] r246397 - [FIX] Keep a copy of the Domain set in the SCEVAffinator
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 30 12:52:06 PDT 2015
Author: jdoerfert
Date: Sun Aug 30 14:52:06 2015
New Revision: 246397
URL: http://llvm.org/viewvc/llvm-project?rev=246397&view=rev
Log:
[FIX] Keep a copy of the Domain set in the SCEVAffinator
Modified:
polly/trunk/lib/Support/SCEVAffinator.cpp
Modified: polly/trunk/lib/Support/SCEVAffinator.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/SCEVAffinator.cpp?rev=246397&r1=246396&r2=246397&view=diff
==============================================================================
--- polly/trunk/lib/Support/SCEVAffinator.cpp (original)
+++ polly/trunk/lib/Support/SCEVAffinator.cpp Sun Aug 30 14:52:06 2015
@@ -30,8 +30,10 @@ SCEVAffinator::SCEVAffinator(Scop *S)
: S(S), Ctx(S->getIslCtx()), R(S->getRegion()), SE(*S->getSE()) {}
SCEVAffinator::~SCEVAffinator() {
- for (const auto &CachedPair : CachedExpressions)
+ for (const auto &CachedPair : CachedExpressions) {
isl_pw_aff_free(CachedPair.second);
+ isl_set_free(CachedPair.first.second);
+ }
}
__isl_give isl_pw_aff *SCEVAffinator::getPwAff(const SCEV *Expr,
@@ -50,11 +52,12 @@ __isl_give isl_pw_aff *SCEVAffinator::ge
__isl_give isl_pw_aff *SCEVAffinator::visit(const SCEV *Expr) {
- auto Key = std::make_pair(Expr, Domain);
+ auto Key = std::make_pair(Expr, isl_set_copy(Domain));
isl_pw_aff *PWA = CachedExpressions[Key];
-
- if (PWA)
+ if (PWA) {
+ isl_set_free(Domain);
return isl_pw_aff_copy(PWA);
+ }
// In case the scev is a valid parameter, we do not further analyze this
// expression, but create a new parameter in the isl_pw_aff. This allows us
More information about the llvm-commits
mailing list