summaryrefslogtreecommitdiffstats
path: root/polly/lib/Exchange/JSONExporter.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2018-04-10 01:20:51 +0000
committerMichael Kruse <llvm@meinersbur.de>2018-04-10 01:20:51 +0000
commit4485ae0890d8ce9c3cd0a050178d2479f8a7599a (patch)
treeb47848e295de50dbb7f074064ca383bab12f26d9 /polly/lib/Exchange/JSONExporter.cpp
parent388730c9e068ba2b5f936c8e717b32961c5d2ffa (diff)
downloadbcm5719-llvm-4485ae0890d8ce9c3cd0a050178d2479f8a7599a.tar.gz
bcm5719-llvm-4485ae0890d8ce9c3cd0a050178d2479f8a7599a.zip
[CodeGen] Allow undefined loads in statement instances outside context.
A check in assert-builds was meant to verify that a load provides a value in all statement instances (i.e. its domain). The domain is commonly gist'ed within the parameter context to contain fewer constraints. However, statement instances outside the context are no valid executions, hence the value provided can be undefined. Refine the check for valid loads to only needed to be defined within the SCoP context. In addition, the JSONImporter had to be changed to allow importing access relations that are broader than the current access relation, but still defined over all statement instances. This should fix the compiler crash in test-suite's oggenc of the -polly-process-unprofitable buildbot. llvm-svn: 329655
Diffstat (limited to 'polly/lib/Exchange/JSONExporter.cpp')
-rw-r--r--polly/lib/Exchange/JSONExporter.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/polly/lib/Exchange/JSONExporter.cpp b/polly/lib/Exchange/JSONExporter.cpp
index 512c51558c6..943d1b2d983 100644
--- a/polly/lib/Exchange/JSONExporter.cpp
+++ b/polly/lib/Exchange/JSONExporter.cpp
@@ -512,6 +512,8 @@ importAccesses(Scop &S, Json::Value &JScop, const DataLayout &DL,
isl_set_intersect_params(NewAccessDomain, S.getContext().release());
CurrentAccessDomain = isl_set_intersect_params(CurrentAccessDomain,
S.getContext().release());
+ CurrentAccessDomain =
+ isl_set_intersect(CurrentAccessDomain, Stmt.getDomain().release());
if (MA->isRead() &&
isl_set_is_subset(CurrentAccessDomain, NewAccessDomain) ==
OpenPOWER on IntegriCloud