Skip to content
Snippets Groups Projects
Commit 3c090707 authored by René Heß's avatar René Heß
Browse files

Merge branch 'feature/kernel-query-language' into 'master'

Use kernel query language to specify dependencies on writes!

This fixes #52

See merge request !67
parents d36d10f8 bd92f755
No related branches found
No related tags found
No related merge requests found
diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py
index d9cd76c..a95cc1e 100644
--- a/loopy/kernel/creation.py
+++ b/loopy/kernel/creation.py
@@ -1518,7 +1518,7 @@ def apply_single_writer_depencency_heuristic(kernel, warn_if_used=True):
"temporary variable '%s' is read, but never written."
% var)
- if len(var_writers) == 1:
+ if len(var_writers) >= 1:
auto_deps.update(
var_writers
- set([insn.id]))
......@@ -21,6 +21,8 @@ from ufl.algorithms import MultiFunction
from pymbolic.primitives import Variable
from pymbolic.primitives import Expression as PymbolicExpression
from loopy.match import Writes
import numpy as np
......@@ -205,6 +207,7 @@ def apply_in_cell_transformation(name, local, restriction):
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(local)}),
depends_on=frozenset({Writes(get_pymbolic_basename(local))}),
)
......@@ -240,6 +243,7 @@ def evaluate_unit_outer_normal(name):
return quadrature_preamble("{} = {}.unitOuterNormal({});".format(name, ig, qp),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(qp)}),
depends_on=frozenset({Writes(get_pymbolic_basename(qp))}),
)
......@@ -318,6 +322,7 @@ def define_jacobian_inverse_transposed(name, restriction):
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
......@@ -353,6 +358,7 @@ def define_jacobian_determinant(name):
return quadrature_preamble(code,
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
......
......@@ -24,6 +24,8 @@ from dune.perftool.pdelab.localoperator import (class_type_from_cache,
localoperator_basename,
)
from loopy.match import Writes
@class_basename(classtag="parameterclass")
def parameterclass_basename(formdata, data):
......@@ -177,6 +179,7 @@ def evaluate_cell_parameter_function(name, restriction):
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
......@@ -197,6 +200,7 @@ def evaluate_intersection_parameter_function(name):
),
assignees=frozenset({name}),
read_variables=frozenset({get_pymbolic_basename(pos)}),
depends_on=frozenset({Writes(get_pymbolic_basename(pos))}),
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment