[llvm-commits] [polly] r144642 - /polly/trunk/lib/Exchange/JSONExporter.cpp
Tobias Grosser
grosser at fim.uni-passau.de
Tue Nov 15 03:38:59 PST 2011
Author: grosser
Date: Tue Nov 15 05:38:59 2011
New Revision: 144642
URL: http://llvm.org/viewvc/llvm-project?rev=144642&view=rev
Log:
JSONImporter: Fix parameter ids when importing new access functions
The new isl_id support for parmeters created problems when importing new
access functions. Even though the parameters had the same names,
they were mapped to different ids and where therefore incompatible.
We copy the ids now from the old parameter dimensions. This fixes the
problem.
Modified:
polly/trunk/lib/Exchange/JSONExporter.cpp
Modified: polly/trunk/lib/Exchange/JSONExporter.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Exchange/JSONExporter.cpp?rev=144642&r1=144641&r2=144642&view=diff
==============================================================================
--- polly/trunk/lib/Exchange/JSONExporter.cpp (original)
+++ polly/trunk/lib/Exchange/JSONExporter.cpp Tue Nov 15 05:38:59 2011
@@ -285,6 +285,25 @@
isl_map *newAccessMap = isl_map_read_from_str(S->getIslCtx(),
accesses.asCString());
isl_map *currentAccessMap = (*MI)->getAccessRelation();
+
+ if (isl_map_dim(newAccessMap, isl_dim_param) !=
+ isl_map_dim(currentAccessMap, isl_dim_param)) {
+ errs() << "JScop file changes the number of parameter dimensions\n";
+ isl_map_free(currentAccessMap);
+ isl_map_free(newAccessMap);
+ return false;
+
+ }
+
+ // We need to copy the isl_ids for the parameter dimensions to the new
+ // map. Without doing this the current map would have different
+ // ids then the new one, even though both are named identically.
+ for (unsigned i = 0; i < isl_map_dim(currentAccessMap, isl_dim_param);
+ i++) {
+ isl_id *id = isl_map_get_dim_id(currentAccessMap, isl_dim_param, i);
+ newAccessMap = isl_map_set_dim_id(newAccessMap, isl_dim_param, i, id);
+ }
+
if (!isl_map_has_equal_space(currentAccessMap, newAccessMap)) {
errs() << "JScop file contains access function with incompatible "
<< "dimensions\n";
More information about the llvm-commits
mailing list