Refactor Type Handling and Typification
- Add a `dtype` member to all expression nodes - Make the `Typifier` apply `dtype`s to all expressions - Adapt transformations and IterationSpace to set data types on created expressions - Refactor TypeContext and contextual typing interface to be more intuitive - Refactor the Typifier to apply more operations through the TypeContext Squashed commit of the following: commit 3e81188a318aa1dc294cf0cd11bf2ec7f62a9b55 Author: Frederik Hennig <frederik.hennig@fau.de> Date: Wed Mar 27 17:00:17 2024 +0100 Improve typification of integer expressions - Check integer type constraint in `_apply_target_type` to correctly catch deferred expressions commit 63d0cfa5ea1b8a41c9a74bbfcf0618fad03ffa48 Merge: 671f057 075ae357 Author: Frederik Hennig <frederik.hennig@fau.de> Date: Wed Mar 27 16:46:28 2024 +0100 Merge branch 'backend-rework' into b_refactor_typing commit 671f0578a39e452504243019dab28d93f0114082 Author: Frederik Hennig <frederik.hennig@fau.de> Date: Tue Mar 26 16:39:43 2024 +0100 Fix documentation for Typifier and PsExpression commit 3ec258517ad8a510118265184b5dc7805128dcd3 Author: Frederik Hennig <frederik.hennig@fau.de> Date: Mon Mar 25 17:14:21 2024 +0100 Typing refactor: - Annotate all expressions with types - Refactor Typifier for cleaner information flow and better readability - Have iteration space and transformers typify newly created AST nodes
Showing
- src/pystencils/backend/ast/expressions.py 47 additions, 12 deletionssrc/pystencils/backend/ast/expressions.py
- src/pystencils/backend/ast/logical_expressions.py 1 addition, 0 deletionssrc/pystencils/backend/ast/logical_expressions.py
- src/pystencils/backend/kernelcreation/iteration_space.py 5 additions, 1 deletionsrc/pystencils/backend/kernelcreation/iteration_space.py
- src/pystencils/backend/kernelcreation/typification.py 150 additions, 121 deletionssrc/pystencils/backend/kernelcreation/typification.py
- src/pystencils/backend/platforms/__init__.py 1 addition, 1 deletionsrc/pystencils/backend/platforms/__init__.py
- src/pystencils/backend/platforms/generic_gpu.py 29 additions, 12 deletionssrc/pystencils/backend/platforms/generic_gpu.py
- src/pystencils/backend/transformations/erase_anonymous_structs.py 6 additions, 1 deletion...encils/backend/transformations/erase_anonymous_structs.py
- src/pystencils/backend/transformations/select_intrinsics.py 2 additions, 2 deletionssrc/pystencils/backend/transformations/select_intrinsics.py
- tests/nbackend/types/test_types.py 0 additions, 2 deletionstests/nbackend/types/test_types.py