diff --git a/code_gen/cgen.py b/code_gen/cgen.py index 8fccf2454abfe43318de3a86849fa6e9fe13ad6f..623572382e21d41760e8ce7d763d29f08c295918 100644 --- a/code_gen/cgen.py +++ b/code_gen/cgen.py @@ -1,19 +1,19 @@ -from ast.assign import Assign -from ast.arrays import ArrayAccess, ArrayDecl -from ast.block import Block -from ast.branches import Branch -from ast.cast import Cast -from ast.bin_op import BinOp, BinOpDef -from ast.data_types import Type_Int, Type_Float, Type_Vector -from ast.lit import Lit -from ast.loops import For, Iter, ParticleFor, While -from ast.math import Sqrt -from ast.memory import Malloc, Realloc -from ast.properties import Property -from ast.select import Select -from ast.sizeof import Sizeof -from ast.utils import Print -from ast.variables import Var, VarDecl +from ir.assign import Assign +from ir.arrays import ArrayAccess, ArrayDecl +from ir.block import Block +from ir.branches import Branch +from ir.cast import Cast +from ir.bin_op import BinOp, BinOpDef +from ir.data_types import Type_Int, Type_Float, Type_Vector +from ir.lit import Lit +from ir.loops import For, Iter, ParticleFor, While +from ir.math import Sqrt +from ir.memory import Malloc, Realloc +from ir.properties import Property +from ir.select import Select +from ir.sizeof import Sizeof +from ir.utils import Print +from ir.variables import Var, VarDecl from sim.timestep import Timestep from sim.vtk import VTKWrite from code_gen.printer import Printer diff --git a/graph/graphviz.py b/graph/graphviz.py index 7af2c1eae86b231e01c817e30e759d1be9ecd7d8..30c0df916ab1495300d8a5ba7965e68ab67f4b9e 100644 --- a/graph/graphviz.py +++ b/graph/graphviz.py @@ -1,10 +1,10 @@ -from ast.arrays import Array -from ast.bin_op import BinOp, BinOpDef -from ast.lit import Lit -from ast.loops import Iter -from ast.properties import Property -from ast.variables import Var -from ast.visitor import Visitor +from ir.arrays import Array +from ir.bin_op import BinOp, BinOpDef +from ir.lit import Lit +from ir.loops import Iter +from ir.properties import Property +from ir.variables import Var +from ir.visitor import Visitor from graphviz import Digraph diff --git a/ast/__init__.py b/ir/__init__.py similarity index 100% rename from ast/__init__.py rename to ir/__init__.py diff --git a/ast/arrays.py b/ir/arrays.py similarity index 94% rename from ast/arrays.py rename to ir/arrays.py index 1ea90143c4a2cd15fe0cbc4ac5b8d3c345bb0da7..27ffac1b21d6cf6db672b02dfa42f7896dde25d7 100644 --- a/ast/arrays.py +++ b/ir/arrays.py @@ -1,11 +1,11 @@ -from ast.assign import Assign -from ast.ast_node import ASTNode -from ast.bin_op import BinOp, ASTTerm -from ast.data_types import Type_Array -from ast.layouts import Layout_AoS, Layout_SoA -from ast.lit import as_lit_ast -from ast.memory import Realloc -from ast.variables import Var +from ir.assign import Assign +from ir.ast_node import ASTNode +from ir.bin_op import BinOp, ASTTerm +from ir.data_types import Type_Array +from ir.layouts import Layout_AoS, Layout_SoA +from ir.lit import as_lit_ast +from ir.memory import Realloc +from ir.variables import Var from functools import reduce diff --git a/ast/assign.py b/ir/assign.py similarity index 85% rename from ast/assign.py rename to ir/assign.py index 08f6a7200bc61d523a4e05375718342cd33a9130..388e79c41d29286853a10def0b636cd054804154 100644 --- a/ast/assign.py +++ b/ir/assign.py @@ -1,6 +1,6 @@ -from ast.ast_node import ASTNode -from ast.data_types import Type_Vector -from ast.lit import as_lit_ast +from ir.ast_node import ASTNode +from ir.data_types import Type_Vector +from ir.lit import as_lit_ast from functools import reduce @@ -14,7 +14,7 @@ class Assign(ASTNode): self.assignments = [] for i in range(0, sim.dimensions): - from ast.bin_op import BinOp + from ir.bin_op import BinOp dim_src = src if not isinstance(src, BinOp) or src.type() != Type_Vector else src[i] self.assignments.append((dest[i], dim_src)) else: diff --git a/ast/ast_node.py b/ir/ast_node.py similarity index 89% rename from ast/ast_node.py rename to ir/ast_node.py index aa1c2202daa09a30ee576d8e401cd128875036b6..cbfc0f44dfa7360ad0dbcd998ad6794183b24b48 100644 --- a/ast/ast_node.py +++ b/ir/ast_node.py @@ -1,4 +1,4 @@ -from ast.data_types import Type_Invalid +from ir.data_types import Type_Invalid class ASTNode: diff --git a/ast/bin_op.py b/ir/bin_op.py similarity index 97% rename from ast/bin_op.py rename to ir/bin_op.py index 993c3ba39237e25aa4759c8bb6d70e594e5429dc..237a8ccd77ee563e14246b04cc57297c7649328d 100644 --- a/ast/bin_op.py +++ b/ir/bin_op.py @@ -1,8 +1,8 @@ -from ast.ast_node import ASTNode -from ast.assign import Assign -from ast.data_types import Type_Float, Type_Bool, Type_Vector -from ast.lit import as_lit_ast -from ast.properties import Property +from ir.ast_node import ASTNode +from ir.assign import Assign +from ir.data_types import Type_Float, Type_Bool, Type_Vector +from ir.lit import as_lit_ast +from ir.properties import Property class BinOpDef(ASTNode): diff --git a/ast/block.py b/ir/block.py similarity index 98% rename from ast/block.py rename to ir/block.py index 58a90926edfa09168d54b535387a47a0db13bb03..89ffcd8b4d72bfd99aed60c346afaf4a65d8ab77 100644 --- a/ast/block.py +++ b/ir/block.py @@ -1,4 +1,4 @@ -from ast.ast_node import ASTNode +from ir.ast_node import ASTNode class Block(ASTNode): diff --git a/ast/branches.py b/ir/branches.py similarity index 93% rename from ast/branches.py rename to ir/branches.py index 209dd12b67fcb43c15015d628b682a40d6c8a9fc..224e67146f48d7f5367ae82567d25f0ad1616249 100644 --- a/ast/branches.py +++ b/ir/branches.py @@ -1,6 +1,6 @@ -from ast.ast_node import ASTNode -from ast.block import Block -from ast.lit import as_lit_ast +from ir.ast_node import ASTNode +from ir.block import Block +from ir.lit import as_lit_ast class Branch(ASTNode): diff --git a/ast/cast.py b/ir/cast.py similarity index 87% rename from ast/cast.py rename to ir/cast.py index 39a8538ae44163d61c110852dc4647bb7dd81ede..b85a596e82bcc23b0efa13b43574f33202b3ec82 100644 --- a/ast/cast.py +++ b/ir/cast.py @@ -1,5 +1,5 @@ -from ast.ast_node import ASTNode -from ast.data_types import Type_Int, Type_Float +from ir.ast_node import ASTNode +from ir.data_types import Type_Int, Type_Float class Cast(ASTNode): diff --git a/ast/data_types.py b/ir/data_types.py similarity index 100% rename from ast/data_types.py rename to ir/data_types.py diff --git a/ast/layouts.py b/ir/layouts.py similarity index 100% rename from ast/layouts.py rename to ir/layouts.py diff --git a/ast/lit.py b/ir/lit.py similarity index 89% rename from ast/lit.py rename to ir/lit.py index 8ad0d8392c4063c8c366048c9ab14fe9925ebcf4..89a55feb0e194e1d4112b5e8f355a162297c6dfb 100644 --- a/ast/lit.py +++ b/ir/lit.py @@ -1,5 +1,5 @@ -from ast.ast_node import ASTNode -from ast.data_types import Type_Invalid, Type_Int, Type_Float, Type_Bool, Type_Vector +from ir.ast_node import ASTNode +from ir.data_types import Type_Invalid, Type_Int, Type_Float, Type_Bool, Type_Vector def is_literal(a): diff --git a/ast/loops.py b/ir/loops.py similarity index 93% rename from ast/loops.py rename to ir/loops.py index 82d85ad534f7f26a50d3f794562721081a064e85..a1af262abc420a3a73a0ffb92da7705ce2c93acf 100644 --- a/ast/loops.py +++ b/ir/loops.py @@ -1,9 +1,9 @@ -from ast.ast_node import ASTNode -from ast.bin_op import BinOp, ASTTerm -from ast.block import Block -from ast.branches import Filter -from ast.data_types import Type_Int -from ast.lit import as_lit_ast +from ir.ast_node import ASTNode +from ir.bin_op import BinOp, ASTTerm +from ir.block import Block +from ir.branches import Filter +from ir.data_types import Type_Int +from ir.lit import as_lit_ast class Iter(ASTTerm): diff --git a/ast/math.py b/ir/math.py similarity index 81% rename from ast/math.py rename to ir/math.py index 4e610cb378277962039096f342acc553ece932d0..034f4faaf0d7ce5fc476a766a05f4ba6108e8410 100644 --- a/ast/math.py +++ b/ir/math.py @@ -1,5 +1,5 @@ -from ast.ast_node import ASTNode -from ast.data_types import Type_Int, Type_Float +from ir.ast_node import ASTNode +from ir.data_types import Type_Int, Type_Float class Sqrt(ASTNode): diff --git a/ast/memory.py b/ir/memory.py similarity index 89% rename from ast/memory.py rename to ir/memory.py index e853a0dd77b6df1827b6eeaf2dd0034409d0263d..21b0ace6c30b70c22b38e5158ade203b39fe5128 100644 --- a/ast/memory.py +++ b/ir/memory.py @@ -1,6 +1,6 @@ -from ast.ast_node import ASTNode -from ast.bin_op import BinOp -from ast.sizeof import Sizeof +from ir.ast_node import ASTNode +from ir.bin_op import BinOp +from ir.sizeof import Sizeof from functools import reduce import operator diff --git a/ast/mutator.py b/ir/mutator.py similarity index 100% rename from ast/mutator.py rename to ir/mutator.py diff --git a/ast/operators.py b/ir/operators.py similarity index 100% rename from ast/operators.py rename to ir/operators.py diff --git a/ast/properties.py b/ir/properties.py similarity index 93% rename from ast/properties.py rename to ir/properties.py index fee01512563cf3f16f738b4bd41348d4b16dfb6d..3adc4e28bccd82aff8bca4e8ccf6e36b350c49d6 100644 --- a/ast/properties.py +++ b/ir/properties.py @@ -1,5 +1,5 @@ -from ast.ast_node import ASTNode -from ast.layouts import Layout_AoS +from ir.ast_node import ASTNode +from ir.layouts import Layout_AoS class Properties: @@ -67,5 +67,5 @@ class Property(ASTNode): return self.sim.global_scope def __getitem__(self, expr): - from ast.bin_op import BinOp + from ir.bin_op import BinOp return BinOp(self.sim, self, expr, '[]', True) diff --git a/ast/select.py b/ir/select.py similarity index 79% rename from ast/select.py rename to ir/select.py index 1fe9d088b1bbb504279966769a7302897e701e6c..0079d2f5a7cd68e681f3f554e3658d9612bc72d1 100644 --- a/ast/select.py +++ b/ir/select.py @@ -1,6 +1,6 @@ -from ast.ast_node import ASTNode -from ast.bin_op import BinOp -from ast.lit import as_lit_ast +from ir.ast_node import ASTNode +from ir.bin_op import BinOp +from ir.lit import as_lit_ast class Select(ASTNode): diff --git a/ast/sizeof.py b/ir/sizeof.py similarity index 72% rename from ast/sizeof.py rename to ir/sizeof.py index 7a551066007ab0add9324b24d750d8b9c275440e..9d042bb110a53d5629d4fc8efd7980e42bbcf7d0 100644 --- a/ast/sizeof.py +++ b/ir/sizeof.py @@ -1,5 +1,5 @@ -from ast.bin_op import ASTTerm -from ast.data_types import Type_Int +from ir.bin_op import ASTTerm +from ir.data_types import Type_Int class Sizeof(ASTTerm): diff --git a/ast/transform.py b/ir/transform.py similarity index 93% rename from ast/transform.py rename to ir/transform.py index 428d372831d164864e81ef7de940c63a729b171b..a9c5eb00b4b1359e28df55e1f3c3147ae911c6fc 100644 --- a/ast/transform.py +++ b/ir/transform.py @@ -1,10 +1,10 @@ -from ast.arrays import ArrayAccess -from ast.bin_op import BinOp -from ast.data_types import Type_Int, Type_Vector -from ast.layouts import Layout_AoS, Layout_SoA -from ast.lit import Lit -from ast.loops import Iter -from ast.properties import Property +from ir.arrays import ArrayAccess +from ir.bin_op import BinOp +from ir.data_types import Type_Int, Type_Vector +from ir.layouts import Layout_AoS, Layout_SoA +from ir.lit import Lit +from ir.loops import Iter +from ir.properties import Property class Transform: diff --git a/ast/utils.py b/ir/utils.py similarity index 84% rename from ast/utils.py rename to ir/utils.py index 2bc3e43710663a915942cd43f99809418bb6a6f3..a4446f17274d6dded8a43e17335d4627846e4651 100644 --- a/ast/utils.py +++ b/ir/utils.py @@ -1,4 +1,4 @@ -from ast.ast_node import ASTNode +from ir.ast_node import ASTNode class Print(ASTNode): diff --git a/ast/variables.py b/ir/variables.py similarity index 94% rename from ast/variables.py rename to ir/variables.py index aed082141039cff05272564a9fd6112b3dad396c..b4b40dacf9b3f45d2a805250f5d74bfdddf607b5 100644 --- a/ast/variables.py +++ b/ir/variables.py @@ -1,6 +1,6 @@ -from ast.ast_node import ASTNode -from ast.assign import Assign -from ast.bin_op import ASTTerm +from ir.ast_node import ASTNode +from ir.assign import Assign +from ir.bin_op import ASTTerm class Variables: diff --git a/ast/visitor.py b/ir/visitor.py similarity index 100% rename from ast/visitor.py rename to ir/visitor.py diff --git a/new_syntax.py b/new_syntax.py new file mode 100644 index 0000000000000000000000000000000000000000..7f9003f7eedd4a38b8651bec024b4cf90b81160d --- /dev/null +++ b/new_syntax.py @@ -0,0 +1,192 @@ +import part_prot as pt +from ir.assign import Assign +from ir.bin_op import BinOp +import ast +import inspect + + +def delta(i, j): + return position[i] - position[j] + + +def rsq(i, j): + dp = delta(i, j) + return dp.x() * dp.x() + dp.y() * dp.y() + dp.z() * dp.z() + + +def lj(i, j): + sr2 = 1.0 / rsq + sr6 = sr2 * sr2 * sr2 * sigma6 + force[i] += delta * 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon + + +def euler(i): + velocity[i] += dt * force[i] / mass[i] + position[i] += dt * velocity[i] + + +class UndefinedSymbol(): + def __init__(self, symbol_id): + self.symbol_id = symbol_id + + +class FetchParticleFuncInfo(ast.NodeVisitor): + def __init__(self): + self._params = [] + + def visit_arg(self, node): + self._params.append(node.arg) + + def nparams(self): + return len(self._params) + + def params(self): + return self._params + + +class BuildParticleIR(ast.NodeVisitor): + def get_op(op): + if isinstance(op, ast.Add): + return '+' + + if isinstance(op, ast.Sub): + return '-' + + if isinstance(op, ast.Mult): + return '*' + + if isinstance(op, ast.Div): + return '/' + + raise Exception("Invalid operator: {}".format(ast.dump(op))) + + def parse_function_and_get_return_value(func, args): + return None + + def __init__(self, sim, ctx_symbols={}, ctx_calls=[]): + self.sim = sim + self.ctx_symbols = ctx_symbols + self.ctx_calls = ctx_calls + + def add_symbols(self, symbols): + self.ctx_symbols.update(symbols) + + def visit_Assign(self, node): + assert len(node.targets) == 1, "Only one target is allowed on assignments!" + lhs = self.visit(node.targets[0]) + rhs = self.visit(node.value) + + if isinstance(lhs, UndefinedSymbol): + self.add_symbols({lhs.symbol_id: rhs}) + else: + print(lhs) + lhs = rhs + + def visit_AugAssign(self, node): + lhs = self.visit(node.target) + rhs = self.visit(node.value) + + if isinstance(lhs, UndefinedSymbol): + self.add_symbols({lhs.symbol_id: rhs}) + else: + print(lhs) + lhs += rhs + + def visit_BinOp(self, node): + print(ast.dump(node)) + lhs = self.visit(node.left) + assert not isinstance(lhs, UndefinedSymbol), f"Undefined lhs used in BinOp: {lhs.symbol_id}" + rhs = self.visit(node.right) + assert not isinstance(rhs, UndefinedSymbol), f"Undefined rhs used in BinOp: {rhs.symbol_id}" + return BinOp(self.sim, lhs, rhs, BuildParticleIR.get_op(node.op)) + + def visit_Call(self, node): + func = self.visit(node.func) + args = [self.visit(a) for a in node.args] + + for c in self.ctx_calls: + if c['func'] == func and len(c['args']) == len(args) and all([c['args'][a] == args[a] for a in range(0, len(args))]): + return c['value'] + + value = BuildParticleIR.parse_function_and_get_return_value(func, args) + self.ctx_calls.append({'func': func, 'args': args, 'value': value}) + return value + + def visit_Index(self, node): + return self.visit(node.value) + + def visit_Name(self, node): + as_sym = self.ctx_symbols[node.id] if node.id in self.ctx_symbols else None + if as_sym is not None: + return as_sym + + as_array = self.sim.array(node.id) + if as_array is not None: + return as_array + + as_prop = self.sim.property(node.id) + if as_prop is not None: + return as_prop + + as_var = self.sim.var(node.id) + if as_var is not None: + return as_var + + return UndefinedSymbol(node.id) + + def visit_Num(self, node): + return node.n + + def visit_Subscript(self, node): + print(ast.dump(node)) + return self.visit(node.value)[self.visit(node.slice)] + + +def add_kernel(sim, func, cutoff_radius=None, position=None, symbols={}): + src = inspect.getsource(func) + tree = ast.parse(src, mode='exec') + print(ast.dump(ast.parse(src, mode='exec'))) + + # Fetch function info + info = FetchParticleFuncInfo() + info.visit(tree) + params = info.params() + nparams = info.nparams() + + # Start building IR + ir = BuildParticleIR(sim, symbols) + + if nparams == 1: + for i in sim.particles(): + ir.add_symbols({params[0]: i}) + ir.visit(tree) + + elif nparams == 2: + for i, j, delta, rsq in psim.particle_pairs(cutoff_radius, sim.property(position)): + ir.add_symbols({params[0]: i, params[1]: j, 'delta': delta, 'rsq': rsq}) + ir.visit(tree) + else: + raise Exception(f"Invalid number of parameters: {nparams}") + + +dt = 0.005 +cutoff_radius = 2.5 +skin = 0.3 +sigma = 1.0 +epsilon = 1.0 +sigma6 = sigma ** 6 + +psim = pt.simulation("lj_ns") +psim.add_real_property('mass', 1.0) +psim.add_vector_property('position') +psim.add_vector_property('velocity') +psim.add_vector_property('force', vol=True) +psim.from_file("data/minimd_setup_4x4x4.input", ['mass', 'position', 'velocity']) +psim.create_cell_lists(2.8, 2.8) +psim.periodic(2.8) +psim.vtk_output("output/test") + +add_kernel(psim, lj, cutoff_radius, 'position', {'sigma6': sigma6, 'epsilon': epsilon}) +add_kernel(psim, euler, symbols={'dt': dt}) + +psim.generate() diff --git a/new_syntax/test.py b/new_syntax/test.py deleted file mode 100644 index 48e25a32b021c25eef45fef2cb9d3e2fbb3ecd4d..0000000000000000000000000000000000000000 --- a/new_syntax/test.py +++ /dev/null @@ -1,36 +0,0 @@ -import ast -import inspect - - -def lj(i, j): - sr2 = 1.0 / rsq(i, j) - sr6 = sr2 * sr2 * sr2 * sigma6 - force[i] += delta(i, j) * 48.0 * sr6 * (sr6 - 0.5) * sr2 * epsilon - - -def euler(i): - velocity[i] += dt * force[i] / mass[i] - position[i] += dt * velocity[i] - - -class BuildParticleAST(ast.NodeVisitor): - def __init__(self, sim): - self.sim = sim - self.block = Block([]) - self.temp_values = {} - - def visit_Assign(self, node): - print(node.targets[0].id) - print(node.value) - - def visit_AugAssign(self, node): - print(node.targets[0].id) - print(node.value) - - -lj_src = inspect.getsource(lj) -#print(ast.dump(ast.parse(lj_src, mode='eval'), indent=4)) -tree = ast.parse(lj_src, mode='exec') -build = BuildParticleAST() -build.visit(tree) -#print(ast.dump(ast.parse(lj_src, mode='exec'))) diff --git a/particle.py b/particle.py index e3bd7897ad9beca13548bac4607745ae1c0a9c42..2dc621c61c851ec1c61f2be1f93c9471750aa41d 100644 --- a/particle.py +++ b/particle.py @@ -1,5 +1,5 @@ import part_prot as pt -from ast.layouts import Layout_SoA +from ir.layouts import Layout_SoA dt = 0.005 cutoff_radius = 2.5 diff --git a/sim/arrays.py b/sim/arrays.py index 0d019545305606cad2c318c6bd626fe8d79c411b..7406019480a38d11a4c0d73ed9119abff07220f1 100644 --- a/sim/arrays.py +++ b/sim/arrays.py @@ -1,5 +1,5 @@ -from ast.memory import Malloc -from ast.arrays import ArrayDecl +from ir.memory import Malloc +from ir.arrays import ArrayDecl class ArraysDecl: diff --git a/sim/cell_lists.py b/sim/cell_lists.py index 4fe79862d356b4f4c29c97c462a82af20b72017d..923c4defc16653320aea34721032b0c1efb6e7dd 100644 --- a/sim/cell_lists.py +++ b/sim/cell_lists.py @@ -1,9 +1,9 @@ -from ast.bin_op import BinOp -from ast.branches import Branch, Filter -from ast.cast import Cast -from ast.data_types import Type_Int -from ast.loops import For, ParticleFor -from ast.utils import Print +from ir.bin_op import BinOp +from ir.branches import Branch, Filter +from ir.cast import Cast +from ir.data_types import Type_Int +from ir.loops import For, ParticleFor +from ir.utils import Print from functools import reduce from sim.resize import Resize import math diff --git a/sim/kernel_wrapper.py b/sim/kernel_wrapper.py index d8146fb3960f2832dc0470d7eac914547d3da5fe..7ac32e36d74894bd5b5928883c8381440eba9fde 100644 --- a/sim/kernel_wrapper.py +++ b/sim/kernel_wrapper.py @@ -1,4 +1,4 @@ -from ast.block import Block +from ir.block import Block class KernelWrapper(): diff --git a/sim/lattice.py b/sim/lattice.py index 4ea51d1183377af42d2642bfdab1d7ad086b5d58..70671416e3ade33250cbd65dc878db1e32efbcf1 100644 --- a/sim/lattice.py +++ b/sim/lattice.py @@ -1,5 +1,5 @@ -from ast.data_types import Type_Vector -from ast.loops import For +from ir.data_types import Type_Vector +from ir.loops import For class ParticleLattice(): diff --git a/sim/particle_simulation.py b/sim/particle_simulation.py index b21b5e37a0a8ce693eec2b847aeab38da64e530e..3dfa57c2f276e1806861bc8a0a6451d0ae9b0961 100644 --- a/sim/particle_simulation.py +++ b/sim/particle_simulation.py @@ -1,11 +1,11 @@ -from ast.arrays import Arrays -from ast.block import Block -from ast.branches import Filter -from ast.data_types import Type_Int, Type_Float, Type_Vector -from ast.layouts import Layout_AoS -from ast.loops import ParticleFor, NeighborFor -from ast.properties import Properties -from ast.variables import Variables +from ir.arrays import Arrays +from ir.block import Block +from ir.branches import Filter +from ir.data_types import Type_Int, Type_Float, Type_Vector +from ir.layouts import Layout_AoS +from ir.loops import ParticleFor, NeighborFor +from ir.properties import Properties +from ir.variables import Variables from graph.graphviz import ASTGraph from sim.arrays import ArraysDecl from sim.cell_lists import CellLists, CellListsBuild, CellListsStencilBuild diff --git a/sim/pbc.py b/sim/pbc.py index f6e7f66d9d0702b4f5728e6c35c65541409743aa..e99694134b36d1819406cfcf95fe5a4908502f49 100644 --- a/sim/pbc.py +++ b/sim/pbc.py @@ -1,8 +1,8 @@ -from ast.branches import Branch, Filter -from ast.data_types import Type_Int -from ast.loops import For, ParticleFor -from ast.utils import Print -from ast.select import Select +from ir.branches import Branch, Filter +from ir.data_types import Type_Int +from ir.loops import For, ParticleFor +from ir.utils import Print +from ir.select import Select from sim.resize import Resize diff --git a/sim/properties.py b/sim/properties.py index 81901fb64217c142c7eb456be2c6bcfd54208e20..b9a87e91d6c3ba241ed1bba63c7631c33173d9b8 100644 --- a/sim/properties.py +++ b/sim/properties.py @@ -1,7 +1,7 @@ -from ast.data_types import Type_Float, Type_Vector -from ast.loops import ParticleFor -from ast.memory import Malloc, Realloc -from ast.utils import Print +from ir.data_types import Type_Float, Type_Vector +from ir.loops import ParticleFor +from ir.memory import Malloc, Realloc +from ir.utils import Print class PropertiesAlloc: diff --git a/sim/read_from_file.py b/sim/read_from_file.py index 42608a1161e3e4baa3011939ca3d3527e3875036..546966cd9fc6d532d641c10be7a368e866ec8b69 100644 --- a/sim/read_from_file.py +++ b/sim/read_from_file.py @@ -1,5 +1,5 @@ -from ast.data_types import Type_Int, Type_Float, Type_Vector -from ast.loops import For +from ir.data_types import Type_Int, Type_Float, Type_Vector +from ir.loops import For from sim.grid import Grid class ReadFromFile(): diff --git a/sim/resize.py b/sim/resize.py index 48a1f01ddc2ad5042263929148e3fcea9a402e64..afeb9cd99785ce51bc5c5860a5a172a70f7e3053 100644 --- a/sim/resize.py +++ b/sim/resize.py @@ -1,8 +1,8 @@ -from ast.branches import Filter -from ast.data_types import Type_Int, Type_Float, Type_Vector -from ast.loops import While -from ast.memory import Realloc -from ast.utils import Print +from ir.branches import Filter +from ir.data_types import Type_Int, Type_Float, Type_Vector +from ir.loops import While +from ir.memory import Realloc +from ir.utils import Print class Resize: def __init__(self, sim, capacity_var, grow_fn=None): diff --git a/sim/setup_wrapper.py b/sim/setup_wrapper.py index bce02812e39abbb063f049a6f60a93bdec9152be..bc0d5355cb3ee38595831e5a87d280ae3e61d211 100644 --- a/sim/setup_wrapper.py +++ b/sim/setup_wrapper.py @@ -1,4 +1,4 @@ -from ast.block import Block +from ir.block import Block class SetupWrapper(): diff --git a/sim/timestep.py b/sim/timestep.py index 74aa2419a8bd7d85338399807f6644ee3d593129..f15ee7c32ef6cd3bb1e83df037abd633c83d572e 100644 --- a/sim/timestep.py +++ b/sim/timestep.py @@ -1,7 +1,7 @@ -from ast.bin_op import BinOp -from ast.block import Block -from ast.branches import Branch -from ast.loops import For +from ir.bin_op import BinOp +from ir.block import Block +from ir.branches import Branch +from ir.loops import For class Timestep: diff --git a/sim/variables.py b/sim/variables.py index 2f616b1f19c5ac019e12b0ff11433cd180b5d516..4d37e32ca17bc2b2bc385f99437649b67fb1c91a 100644 --- a/sim/variables.py +++ b/sim/variables.py @@ -1,4 +1,4 @@ -from ast.variables import VarDecl +from ir.variables import VarDecl class VariablesDecl: diff --git a/sim/vtk.py b/sim/vtk.py index 284533abf61ef096865ab3161061a77809cd08bf..c6125c45d8a9573e817e639464a2c212b7069396 100644 --- a/sim/vtk.py +++ b/sim/vtk.py @@ -1,5 +1,5 @@ -from ast.lit import as_lit_ast -from ast.ast_node import ASTNode +from ir.lit import as_lit_ast +from ir.ast_node import ASTNode class VTKWrite(ASTNode): diff --git a/transformations/LICM.py b/transformations/LICM.py index ffa3327c80877cdc2217bc181530312d0893ac4b..74f9969a9b1ac12142cdb35942c9f4833d3993a2 100644 --- a/transformations/LICM.py +++ b/transformations/LICM.py @@ -1,7 +1,7 @@ -from ast.bin_op import BinOp -from ast.loops import For, While -from ast.mutator import Mutator -from ast.visitor import Visitor +from ir.bin_op import BinOp +from ir.loops import For, While +from ir.mutator import Mutator +from ir.visitor import Visitor class SetBlockVariants(Mutator): diff --git a/transformations/flatten.py b/transformations/flatten.py index b414079e8cc961fbfbaa9e282e9d40b3a50f53b7..d673c190419d8d1fbab362ac576b80d7d9f0f3d9 100644 --- a/transformations/flatten.py +++ b/transformations/flatten.py @@ -1,5 +1,5 @@ -from ast.layouts import Layout_AoS, Layout_SoA -from ast.mutator import Mutator +from ir.layouts import Layout_AoS, Layout_SoA +from ir.mutator import Mutator class FlattenPropertyAccesses(Mutator): diff --git a/transformations/simplify.py b/transformations/simplify.py index d59dd59123c2129d15886173c9f3c4d78826bfc6..83d6cac1d216553e149b84ded7239486a38749da 100644 --- a/transformations/simplify.py +++ b/transformations/simplify.py @@ -1,6 +1,6 @@ -from ast.data_types import Type_Int -from ast.lit import Lit -from ast.mutator import Mutator +from ir.data_types import Type_Int +from ir.lit import Lit +from ir.mutator import Mutator class SimplifyExpressions(Mutator):