From c6f260b73dbb6e4eed500d7fa77887a197669a8e Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Sun, 28 Jun 2015 16:35:23 -0500 Subject: [PATCH] Keep loopy's isl objects within the default context to avoid grief when unpickling and comparing --- loopy/frontend/fortran/translator.py | 3 +-- loopy/isl_helpers.py | 2 +- loopy/kernel/__init__.py | 3 +++ loopy/kernel/creation.py | 11 ++++------- loopy/version.py | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/loopy/frontend/fortran/translator.py b/loopy/frontend/fortran/translator.py index f34c69978..5ec4ff75a 100644 --- a/loopy/frontend/fortran/translator.py +++ b/loopy/frontend/fortran/translator.py @@ -203,7 +203,6 @@ class F2LoopyTranslator(FTreeWalkerBase): self.auto_dependencies = auto_dependencies self.scope_stack = [] - self.isl_context = isl.Context() self.insn_id_counter = 0 self.condition_id_counter = 0 @@ -544,7 +543,7 @@ class F2LoopyTranslator(FTreeWalkerBase): # }}} - space = isl.Space.create_from_names(self.isl_context, + space = isl.Space.create_from_names(isl.DEFAULT_CONTEXT, set=[loopy_loop_var], params=list(loop_bound_deps)) from loopy.isl_helpers import iname_rel_aff diff --git a/loopy/isl_helpers.py b/loopy/isl_helpers.py index 5c5298892..2533c0f2c 100644 --- a/loopy/isl_helpers.py +++ b/loopy/isl_helpers.py @@ -359,7 +359,7 @@ def simplify_via_aff(expr): from loopy.symbolic import aff_from_expr, aff_to_expr, get_dependencies deps = get_dependencies(expr) return aff_to_expr(aff_from_expr( - isl.Space.create_from_names(isl.Context(), list(deps)), + isl.Space.create_from_names(isl.DEFAULT_CONTEXT, list(deps)), expr)) diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py index f930df60c..24588976a 100644 --- a/loopy/kernel/__init__.py +++ b/loopy/kernel/__init__.py @@ -266,6 +266,9 @@ class LoopKernel(RecordWithoutPickling): ]: raise ValueError("invalid value for 'state'") + assert all(dom.get_ctx() == isl.DEFAULT_CONTEXT for dom in domains) + assert assumptions.get_ctx() == isl.DEFAULT_CONTEXT + RecordWithoutPickling.__init__(self, domains=domains, instructions=instructions, diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py index 1daa041c5..70f7069bc 100644 --- a/loopy/kernel/creation.py +++ b/loopy/kernel/creation.py @@ -362,7 +362,7 @@ def _find_existentially_quantified_inames(dom_str): return set(ex_quant.group(1) for ex_quant in EX_QUANT_RE.finditer(dom_str)) -def parse_domains(ctx, domains, defines): +def parse_domains(domains, defines): if isinstance(domains, str): domains = [domains] @@ -381,7 +381,7 @@ def parse_domains(ctx, domains, defines): dom = "[%s] -> %s" % (",".join(parameters), dom) try: - dom = isl.BasicSet.read_from_str(ctx, dom) + dom = isl.BasicSet.read_from_str(isl.DEFAULT_CONTEXT, dom) except: print("failed to parse domain '%s'" % dom) raise @@ -1149,16 +1149,13 @@ def make_kernel(domains, instructions, kernel_data=["..."], **kwargs): # {{{ find/create isl_context - isl_context = None for domain in domains: if isinstance(domain, isl.BasicSet): - isl_context = domain.get_ctx() - if isl_context is None: - isl_context = isl.Context() + assert domain.get_ctx() == isl.DEFAULT_CONTEXT # }}} - domains = parse_domains(isl_context, domains, defines) + domains = parse_domains(domains, defines) arg_guesser = ArgumentGuesser(domains, instructions, temporary_variables, substitutions, diff --git a/loopy/version.py b/loopy/version.py index a33061745..a60ac353f 100644 --- a/loopy/version.py +++ b/loopy/version.py @@ -27,4 +27,4 @@ VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS import islpy.version -DATA_MODEL_VERSION = "v8-islpy%s" % islpy.version.VERSION_TEXT +DATA_MODEL_VERSION = "v9-islpy%s" % islpy.version.VERSION_TEXT -- GitLab