You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from dusk.script import *
@stencil
def temp_access_bug(
a: Field[K],
b: Field[Edge],
d: Field[Edge, K],
) -> None:
z: Field[Edge, K]
with domain.upward as k:
if (a):
z = b
d = z
fails with the following error:
Assertion failed: `exprStmt' first access of temp field to be demoted (i.e lifetime.Begin) is not an `ExprStmt`
Function: 'void dawn::demoteTemporaryFieldToLocalVariable(dawn::iir::StencilInstantiation*, dawn::iir::Stencil*, int, const dawn::iir::Stencil::Lifetime&)'
Location: /scratch-shared/meteoswiss/scratch/jenkins/spack-stages/admin-tsa/spack-stage-dawn4py-master-exy4bjidi4cwlilrflvsxs4x5rpwjjdi/spack-src/dawn/src/dawn/Optimizer/TemporaryHandling.cpp:157
Dawn is not able to properly look inside the conditional to figure out that the temporary is written before being read.
I encountered the problem when translating mo_velocity_advection_stencil_19 using temporaries. This is the simplest reproducible I could write.
The text was updated successfully, but these errors were encountered:
The work around to this is to first initialize the field like so:
@stencil
def temp_access_bug(
a: Field[K],
b: Field[Edge],
d: Field[Edge, K],
) -> None:
z: Field[Edge, K]
with domain.upward as k:
z = 0
if (a):
z = b
d = z
The following Dusk code
fails with the following error:
Dawn is not able to properly look inside the conditional to figure out that the temporary is written before being read.
I encountered the problem when translating
mo_velocity_advection_stencil_19
using temporaries. This is the simplest reproducible I could write.The text was updated successfully, but these errors were encountered: