diff options
| author | Michael Kruse <llvm@meinersbur.de> | 2018-04-10 01:20:51 +0000 |
|---|---|---|
| committer | Michael Kruse <llvm@meinersbur.de> | 2018-04-10 01:20:51 +0000 |
| commit | 4485ae0890d8ce9c3cd0a050178d2479f8a7599a (patch) | |
| tree | b47848e295de50dbb7f074064ca383bab12f26d9 /polly/lib/CodeGen | |
| parent | 388730c9e068ba2b5f936c8e717b32961c5d2ffa (diff) | |
| download | bcm5719-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/CodeGen')
| -rw-r--r-- | polly/lib/CodeGen/BlockGenerators.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/polly/lib/CodeGen/BlockGenerators.cpp b/polly/lib/CodeGen/BlockGenerators.cpp index 1fe15e4fb28..9bff9d2a1b9 100644 --- a/polly/lib/CodeGen/BlockGenerators.cpp +++ b/polly/lib/CodeGen/BlockGenerators.cpp @@ -558,7 +558,8 @@ void BlockGenerator::generateScalarLoads( continue; #ifndef NDEBUG - auto StmtDom = Stmt.getDomain(); + auto StmtDom = + Stmt.getDomain().intersect_params(Stmt.getParent()->getContext()); auto AccDom = MA->getAccessRelation().domain(); assert(!StmtDom.is_subset(AccDom).is_false() && "Scalar must be loaded in all statement instances"); |

