summaryrefslogtreecommitdiffstats
path: root/polly/lib/Exchange/JSONExporter.cpp
diff options
context:
space:
mode:
authorJohannes Doerfert <doerfert@cs.uni-saarland.de>2014-10-05 11:32:18 +0000
committerJohannes Doerfert <doerfert@cs.uni-saarland.de>2014-10-05 11:32:18 +0000
commit1a28a8938ef66d03fe1d29115853a5901df14b27 (patch)
tree05847dbd28ed615faa138713f53f500772b86077 /polly/lib/Exchange/JSONExporter.cpp
parenta00381fb739b38fe5cb646413d293b21c13bcd7e (diff)
downloadbcm5719-llvm-1a28a8938ef66d03fe1d29115853a5901df14b27.tar.gz
bcm5719-llvm-1a28a8938ef66d03fe1d29115853a5901df14b27.zip
Introduce the ScopArrayInfo class.
This class allows to store information about the arrays in the SCoP. For each base pointer in the SCoP one object is created storing the type and dimension sizes of the array. The objects can be obtained via the SCoP, a MemoryAccess or the isl_id associated with the output dimension of a MemoryAccess (the description of what is accessed). So far we use the information in the IslExprBuilder to create the right base type before indexing into the base array. This fixes the bug http://llvm.org/bugs/show_bug.cgi?id=21113 (both test cases are included). On top of that we can now build runtime alias checks for delinearized arrays as the dimension sizes are also part of the ScopArrayInfo objects. Differential Revision: http://reviews.llvm.org/D5613 llvm-svn: 219077
Diffstat (limited to 'polly/lib/Exchange/JSONExporter.cpp')
-rw-r--r--polly/lib/Exchange/JSONExporter.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/polly/lib/Exchange/JSONExporter.cpp b/polly/lib/Exchange/JSONExporter.cpp
index 36e302b1522..e462ece9791 100644
--- a/polly/lib/Exchange/JSONExporter.cpp
+++ b/polly/lib/Exchange/JSONExporter.cpp
@@ -277,6 +277,9 @@ bool JSONImporter::runOnScop(Scop &scop) {
return false;
}
+ isl_id *OutId = isl_map_get_tuple_id(currentAccessMap, isl_dim_out);
+ newAccessMap = isl_map_set_tuple_id(newAccessMap, isl_dim_out, OutId);
+
// We keep the old alignment, thus we cannot allow accesses to memory
// locations that were not accessed before.
isl_set *newAccessSet = isl_map_range(isl_map_copy(newAccessMap));
OpenPOWER on IntegriCloud