Skip to content

Commit

Permalink
[ScopInfo] Update Scop::addUserContext() to C++ interface
Browse files Browse the repository at this point in the history
Summary: This patch updates `Scop::addUserContext()` function to the new C++ interface and replaces the `auto` keyword with explicit type wherever used in this function.

Reviewers: grosser, bollu, philip.pfaffe, chelini, Meinersbur

Reviewed By: grosser

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D47438

llvm-svn: 333366
  • Loading branch information
tobiasgrosser committed May 28, 2018
1 parent 26bc848 commit 9b9c701
Showing 1 changed file with 10 additions and 21 deletions.
31 changes: 10 additions & 21 deletions polly/lib/Analysis/ScopInfo.cpp
Expand Up @@ -2112,49 +2112,38 @@ void Scop::addUserContext() {
if (UserContextStr.empty())
return;

isl_set *UserContext =
isl_set_read_from_str(getIslCtx().get(), UserContextStr.c_str());
isl_space *Space = getParamSpace().release();
if (isl_space_dim(Space, isl_dim_param) !=
isl_set_dim(UserContext, isl_dim_param)) {
auto SpaceStr = isl_space_to_str(Space);
isl::set UserContext = isl::set(getIslCtx(), UserContextStr.c_str());
isl::space Space = getParamSpace();
if (Space.dim(isl::dim::param) != UserContext.dim(isl::dim::param)) {
std::string SpaceStr = Space.to_str();
errs() << "Error: the context provided in -polly-context has not the same "
<< "number of dimensions than the computed context. Due to this "
<< "mismatch, the -polly-context option is ignored. Please provide "
<< "the context in the parameter space: " << SpaceStr << ".\n";
free(SpaceStr);
isl_set_free(UserContext);
isl_space_free(Space);
return;
}

for (unsigned i = 0; i < isl_space_dim(Space, isl_dim_param); i++) {
for (unsigned i = 0; i < Space.dim(isl::dim::param); i++) {
std::string NameContext = Context.get_dim_name(isl::dim::param, i);
std::string NameUserContext =
isl_set_get_dim_name(UserContext, isl_dim_param, i);
std::string NameUserContext = UserContext.get_dim_name(isl::dim::param, i);

if (NameContext != NameUserContext) {
auto SpaceStr = isl_space_to_str(Space);
std::string SpaceStr = Space.to_str();
errs() << "Error: the name of dimension " << i
<< " provided in -polly-context "
<< "is '" << NameUserContext << "', but the name in the computed "
<< "context is '" << NameContext
<< "'. Due to this name mismatch, "
<< "the -polly-context option is ignored. Please provide "
<< "the context in the parameter space: " << SpaceStr << ".\n";
free(SpaceStr);
isl_set_free(UserContext);
isl_space_free(Space);
return;
}

UserContext =
isl_set_set_dim_id(UserContext, isl_dim_param, i,
isl_space_get_dim_id(Space, isl_dim_param, i));
UserContext = UserContext.set_dim_id(isl::dim::param, i,
Space.get_dim_id(isl::dim::param, i));
}

Context = Context.intersect(isl::manage(UserContext));
isl_space_free(Space);
Context = Context.intersect(UserContext);
}

void Scop::buildInvariantEquivalenceClasses() {
Expand Down

0 comments on commit 9b9c701

Please sign in to comment.