Writing untyped temporaries leads to warnings
The following kernel issues a DeprecationWarning:
import loopy as lp
from loopy.version import LOOPY_USE_LANGUAGE_VERSION_2018_2
knl = lp.make_kernel("{[i]: i = 0}", "<>t = i")
The warning (executing with python -Wd
) is:
DeprecationWarning: Argument/temporary data type should be None if
unspecified, not auto. This usage will be disallowed in 2018.
The root cause is that in the kernel creation stage, the code assigns lp.auto as the dtype for t before creating the variable. It doesn't assign None, because None means that the instruction that creates the temporary doesn't return a value (in the temp_var_type field of the instruction). On the other hand, in the type system (since !200 (merged)), lp.auto is deprecated and None should be used.