Skip to content

Commit

Permalink
IR: Move expression.expr_visitors to ir.expr_visitors
Browse files Browse the repository at this point in the history
  • Loading branch information
mlange05 committed Sep 5, 2024
1 parent 9d38dec commit b9a815f
Show file tree
Hide file tree
Showing 34 changed files with 102 additions and 102 deletions.
6 changes: 4 additions & 2 deletions loki/analyse/analyse_dataflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@
"""

from contextlib import contextmanager
from loki.expression import FindVariables, Array, FindInlineCalls, ProcedureSymbol, FindTypedSymbols
from loki.expression import Array, ProcedureSymbol
from loki.tools import as_tuple, flatten
from loki.types import BasicType
from loki.ir import Visitor, Transformer
from loki.ir import (
Visitor, Transformer, FindVariables, FindInlineCalls, FindTypedSymbols
)
from loki.subroutine import Subroutine
from loki.tools.util import CaseInsensitiveDict

Expand Down
9 changes: 3 additions & 6 deletions loki/analyse/util_polyhedron.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,10 @@

from typing import List
import numpy as np
from loki.ir import Loop
from loki.ir import Loop, FindVariables
from loki.expression import (
symbols as sym,
FindVariables,
simplify,
is_constant,
accumulate_polynomial_terms,
symbols as sym, simplify, is_constant,
accumulate_polynomial_terms
)
from loki.tools import as_tuple

Expand Down
5 changes: 3 additions & 2 deletions loki/batch/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@
from loki.batch.configure import SchedulerConfig, ItemConfig
from loki.frontend import REGEX, RegexParserClass
from loki.expression import (
TypedSymbol, MetaSymbol, ProcedureSymbol, Variable, FindInlineCalls
TypedSymbol, MetaSymbol, ProcedureSymbol, Variable
)
from loki.ir import (
Import, CallStatement, TypeDef, ProcedureDeclaration, Interface, FindNodes
Import, CallStatement, TypeDef, ProcedureDeclaration, Interface,
FindNodes, FindInlineCalls
)
from loki.logging import warning
from loki.module import Module
Expand Down
1 change: 0 additions & 1 deletion loki/expression/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
<https://github.com/inducer/pymbolic>`_.
"""

from loki.expression.expr_visitors import * # noqa
from loki.expression.symbols import * # noqa
from loki.expression.operations import * # noqa
from loki.expression.mappers import * # noqa
Expand Down
7 changes: 3 additions & 4 deletions loki/expression/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,9 @@
except ImportError:
FORTRAN_INTRINSIC_PROCEDURES = ()

from loki.tools.util import CaseInsensitiveDict
import loki.expression.symbols as sym
import loki.expression.operations as sym_ops
from loki.expression.expr_visitors import AttachScopes
from loki.expression import symbols as sym, operations as sym_ops
from loki.scope import Scope
from loki.tools.util import CaseInsensitiveDict

__all__ = ['ExpressionParser', 'parse_expr', 'FORTRAN_INTRINSIC_PROCEDURES']

Expand Down Expand Up @@ -519,6 +517,7 @@ def __call__(self, expr_str, scope=None, evaluate=False, strict=False, context=N
:any:`Expression`
The expression tree corresponding to the expression
"""
from loki.ir import AttachScopes # pylint: disable=import-outside-toplevel,cyclic-import
result = super().__call__(expr_str)
context = context or {}
context = CaseInsensitiveDict(context)
Expand Down
5 changes: 3 additions & 2 deletions loki/frontend/fparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@
from loki import ir
from loki.ir import (
GenericVisitor, Transformer, FindNodes, attach_pragmas,
process_dimension_pragmas, detach_pragmas, pragmas_attached
process_dimension_pragmas, detach_pragmas, pragmas_attached,
AttachScopes
)
import loki.expression.symbols as sym
from loki.expression.operations import (
StringConcat, ParenthesisedAdd, ParenthesisedMul, ParenthesisedDiv, ParenthesisedPow
)
from loki.expression import ExpressionDimensionsMapper, AttachScopes, AttachScopesMapper
from loki.expression import ExpressionDimensionsMapper, AttachScopesMapper
from loki.logging import debug, perf, info, warning, error
from loki.tools import (
as_tuple, flatten, CaseInsensitiveDict, LazyNodeLookup, dict_override
Expand Down
1 change: 1 addition & 0 deletions loki/ir/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
The Loki internal representation (IR) and associated APIs for tree traversal.
"""

from loki.ir.expr_visitors import * # noqa
from loki.ir.find import * # noqa
from loki.ir.ir_graph import * # noqa
from loki.ir.nodes import * # noqa
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from loki.ir.visitor import Visitor
from loki.ir.transformer import Transformer
from loki.tools import flatten, as_tuple
from loki.expression.parser import parse_expr
from loki.expression.mappers import (
SubstituteExpressionsMapper, ExpressionRetriever, AttachScopesMapper
)
Expand Down Expand Up @@ -280,7 +281,6 @@ class SubstituteStringExpressions(SubstituteExpressions):
retain that information
"""
def __init__(self, str_map, scope, invalidate_source=True):
from loki.expression.parser import parse_expr # pylint: disable=import-outside-toplevel,cyclic-import
expr_map = {
parse_expr(k, scope=scope): parse_expr(v, scope=scope)
for k, v in str_map.items()
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion loki/scope.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ def rescope_symbols(self):
Make sure all symbols declared and used inside this node belong
to a scope in the scope hierarchy
"""
from loki.expression import AttachScopes # pylint: disable=import-outside-toplevel,cyclic-import
from loki.ir import AttachScopes # pylint: disable=import-outside-toplevel,cyclic-import
AttachScopes().visit(self, scope=self)

def make_complete(self, **frontend_args):
Expand Down
6 changes: 4 additions & 2 deletions loki/transformations/argument_shape.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@


from loki.batch import Transformation
from loki.expression import Array, FindVariables, SubstituteExpressions
from loki.ir import FindNodes, CallStatement, Transformer
from loki.expression import Array
from loki.ir import (
FindNodes, CallStatement, Transformer, FindVariables, SubstituteExpressions
)
from loki.tools import as_tuple, CaseInsensitiveDict
from loki.types import BasicType

Expand Down
8 changes: 3 additions & 5 deletions loki/transformations/array_indexing.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@
from loki.batch import Transformation, ProcedureItem
from loki.logging import info
from loki.analyse import dataflow_analysis_attached
from loki.expression import (
symbols as sym, simplify, symbolic_op, FindVariables, SubstituteExpressions,
is_constant
)
from loki.expression import symbols as sym, simplify, symbolic_op, is_constant
from loki.ir import (
Assignment, Loop, VariableDeclaration, FindNodes, Transformer, nodes as ir
nodes as ir, Assignment, Loop, VariableDeclaration, FindNodes,
Transformer, FindVariables, SubstituteExpressions
)
from loki.tools import as_tuple, CaseInsensitiveDict
from loki.types import SymbolAttributes, BasicType
Expand Down
4 changes: 2 additions & 2 deletions loki/transformations/block_index_transformations.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
# nor does it submit to any jurisdiction.

from loki.batch import Transformation, ProcedureItem
from loki.ir import nodes as ir, FindNodes
from loki.ir import nodes as ir, FindNodes, FindVariables, SubstituteExpressions
from loki.module import Module
from loki.tools import as_tuple
from loki.types import SymbolAttributes, BasicType
from loki.expression import Variable, Array, RangeIndex, FindVariables, SubstituteExpressions
from loki.expression import Variable, Array, RangeIndex
from loki.transformations.sanitise import resolve_associates
from loki.transformations.utilities import (
recursive_expression_map_update, get_integer_variable,
Expand Down
5 changes: 3 additions & 2 deletions loki/transformations/build_system/dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@

from loki.backend import fgen
from loki.batch import Transformation
from loki.expression import FindInlineCalls
from loki.ir import CallStatement, Import, Interface, FindNodes, Transformer
from loki.ir import (
CallStatement, Import, Interface, FindNodes, FindInlineCalls, Transformer
)
from loki.logging import warning
from loki.module import Module
from loki.scope import Scope
Expand Down
7 changes: 3 additions & 4 deletions loki/transformations/data_offload.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@

from loki.analyse import dataflow_analysis_attached
from loki.batch import Transformation, ProcedureItem, ModuleItem
from loki.expression import (
Scalar, Array, FindInlineCalls, SubstituteExpressions
)
from loki.expression import Scalar, Array
from loki.ir import (
FindNodes, PragmaRegion, CallStatement, Pragma, Import, Comment,
Transformer, pragma_regions_attached, get_pragma_parameters
Transformer, pragma_regions_attached, get_pragma_parameters,
FindInlineCalls, SubstituteExpressions
)
from loki.logging import warning
from loki.tools import as_tuple, flatten, CaseInsensitiveDict
Expand Down
8 changes: 4 additions & 4 deletions loki/transformations/extract.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
# nor does it submit to any jurisdiction.

from loki.subroutine import Subroutine
from loki.expression import (
FindVariables, FindInlineCalls, SubstituteExpressions,
DeferredTypeSymbol, Array
from loki.expression import DeferredTypeSymbol, Array
from loki.ir import (
CallStatement, Transformer, FindNodes, FindVariables,
FindInlineCalls, SubstituteExpressions
)
from loki.ir import CallStatement, Transformer, FindNodes
from loki.types import DerivedType


Expand Down
8 changes: 3 additions & 5 deletions loki/transformations/hoist_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,10 @@
from collections import defaultdict

from loki.batch import Transformation, ProcedureItem
from loki.expression import (
symbols as sym, FindVariables, FindInlineCalls,
SubstituteExpressions, is_dimension_constant
)
from loki.expression import symbols as sym, is_dimension_constant
from loki.ir import (
CallStatement, Allocation, Deallocation, Transformer, FindNodes, Comment, Import
CallStatement, Allocation, Deallocation, Transformer, FindNodes, Comment, Import,
FindVariables, FindInlineCalls, SubstituteExpressions
)
from loki.tools.util import is_iterable, as_tuple, CaseInsensitiveDict, flatten

Expand Down
8 changes: 3 additions & 5 deletions loki/transformations/inline.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@
from loki.ir import (
Import, Comment, Assignment, VariableDeclaration, CallStatement,
Transformer, FindNodes, pragmas_attached, is_loki_pragma, Interface,
StatementFunction
)
from loki.expression import (
symbols as sym, FindVariables, FindInlineCalls, FindLiterals,
SubstituteExpressions, LokiIdentityMapper
StatementFunction, FindVariables, FindInlineCalls, FindLiterals,
SubstituteExpressions
)
from loki.expression import symbols as sym, LokiIdentityMapper
from loki.types import BasicType
from loki.tools import as_tuple, CaseInsensitiveDict
from loki.logging import warning, error
Expand Down
14 changes: 7 additions & 7 deletions loki/transformations/pool_allocator.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@
from loki.batch import Transformation
from loki.analyse import dataflow_analysis_attached
from loki.expression import (
FindVariables, FindInlineCalls, Quotient, IntLiteral,
LogicLiteral, Variable, Array, Sum, Literal, Product, InlineCall,
Comparison, RangeIndex, Cast, ProcedureSymbol, LogicalNot,
simplify, SubstituteExpressions, is_dimension_constant,
Quotient, IntLiteral, LogicLiteral, Variable, Array, Sum, Literal,
Product, InlineCall, Comparison, RangeIndex, Cast,
ProcedureSymbol, LogicalNot, simplify, is_dimension_constant,
DetachScopesMapper
)
from loki.ir import (
FindNodes, Transformer, Intrinsic, Assignment, Conditional,
CallStatement, Import, Allocation, Deallocation, Loop, Pragma,
Interface, get_pragma_parameters
FindNodes, FindVariables, FindInlineCalls, Transformer, Intrinsic,
Assignment, Conditional, CallStatement, Import, Allocation,
Deallocation, Loop, Pragma, Interface, get_pragma_parameters,
SubstituteExpressions
)
from loki.logging import warning, debug
from loki.tools import as_tuple
Expand Down
2 changes: 1 addition & 1 deletion loki/transformations/raw_stack_allocator.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
)
from loki.expression.symbolic import is_dimension_constant, simplify
from loki.expression.mappers import DetachScopesMapper
from loki.expression.expr_visitors import FindVariables, SubstituteExpressions
from loki.ir.expr_visitors import FindVariables, SubstituteExpressions
from loki.ir.nodes import Assignment, CallStatement, Pragma
from loki.ir.find import FindNodes
from loki.ir.transformer import Transformer
Expand Down
7 changes: 5 additions & 2 deletions loki/transformations/sanitise.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@
"""

from loki.batch import Transformation
from loki.expression import FindVariables, SubstituteExpressions, Array, RangeIndex
from loki.ir import CallStatement, FindNodes, Transformer, NestedTransformer
from loki.expression import Array, RangeIndex
from loki.ir import (
CallStatement, FindNodes, Transformer, NestedTransformer,
FindVariables, SubstituteExpressions
)
from loki.tools import as_tuple, CaseInsensitiveDict
from loki.types import BasicType

Expand Down
8 changes: 3 additions & 5 deletions loki/transformations/single_column/annotate.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@
import re

from loki.batch import Transformation
from loki.expression import (
symbols as sym, FindVariables, is_dimension_constant
)
from loki.expression import symbols as sym, is_dimension_constant
from loki.ir import (
nodes as ir, FindNodes, Transformer, pragmas_attached,
pragma_regions_attached, is_loki_pragma
nodes as ir, FindNodes, FindVariables, Transformer,
pragmas_attached, pragma_regions_attached, is_loki_pragma
)
from loki.logging import info
from loki.tools import as_tuple, flatten
Expand Down
7 changes: 4 additions & 3 deletions loki/transformations/single_column/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
# nor does it submit to any jurisdiction.

from loki.batch import Transformation
from loki.expression import (
symbols as sym, FindExpressions, SubstituteExpressions
from loki.expression import symbols as sym
from loki.ir import (
nodes as ir, FindNodes, Transformer, FindExpressions,
SubstituteExpressions
)
from loki.ir import nodes as ir, FindNodes, Transformer
from loki.tools import as_tuple

from loki.transformations.sanitise import resolve_associates
Expand Down
7 changes: 2 additions & 5 deletions loki/transformations/single_column/claw.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,10 @@
from collections import OrderedDict

from loki.batch import Transformation
from loki.expression import (
FindVariables, SubstituteExpressions, Variable,
Array, LoopRange, RangeIndex
)
from loki.expression import Variable, Array, LoopRange, RangeIndex
from loki.ir import (
FindNodes, Transformer, Assignment, CallStatement, Loop, Pragma,
VariableDeclaration,
VariableDeclaration, FindVariables, SubstituteExpressions
)
from loki.logging import warning
from loki.tools import as_tuple, CaseInsensitiveDict
Expand Down
7 changes: 4 additions & 3 deletions loki/transformations/single_column/scc_cuf.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@
"""

from loki.batch import Transformation
from loki.expression import (
symbols as sym, FindVariables, SubstituteExpressions
from loki.expression import symbols as sym
from loki.ir import (
nodes as ir, FindNodes, Transformer, FindVariables,
SubstituteExpressions
)
from loki.ir import nodes as ir, FindNodes, Transformer
from loki.tools import CaseInsensitiveDict, as_tuple, flatten
from loki.types import BasicType, DerivedType
from loki.scope import SymbolAttributes
Expand Down
6 changes: 2 additions & 4 deletions loki/transformations/single_column/vector.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@

from loki.analyse import dataflow_analysis_attached
from loki.batch import Transformation
from loki.expression import (
symbols as sym, is_dimension_constant, FindVariables
)
from loki.expression import symbols as sym, is_dimension_constant
from loki.ir import (
nodes as ir, FindNodes, FindScopes, Transformer,
nodes as ir, FindNodes, FindScopes, FindVariables, Transformer,
NestedTransformer, is_loki_pragma, pragmas_attached
)
from loki.tools import as_tuple, flatten
Expand Down
5 changes: 3 additions & 2 deletions loki/transformations/split_read_write.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@


from loki.batch import Transformation, ProcedureItem
from loki.expression import Array, SubstituteExpressions
from loki.expression import Array
from loki.tools import as_tuple
from loki.ir import (
pragma_regions_attached, is_loki_pragma, nodes as ir, FindNodes, Transformer
nodes as ir, pragma_regions_attached, is_loki_pragma, FindNodes,
Transformer, SubstituteExpressions
)

__all__ = ['SplitReadWriteTransformation']
Expand Down
7 changes: 4 additions & 3 deletions loki/transformations/transform_derived_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@

from loki.batch import Transformation
from loki.expression import (
FindInlineCalls, FindVariables, InlineCall, Variable, RangeIndex,
ExpressionRetriever, SubstituteExpressionsMapper, SubstituteExpressions
InlineCall, Variable, RangeIndex, ExpressionRetriever,
SubstituteExpressionsMapper
)
from loki.ir import (
FindNodes, Import, CallStatement, ProcedureDeclaration, Transformer
Import, CallStatement, ProcedureDeclaration, Transformer,
FindNodes, FindInlineCalls, FindVariables, SubstituteExpressions
)
from loki.logging import warning, debug
from loki.module import Module
Expand Down
Loading

0 comments on commit b9a815f

Please sign in to comment.