nir/search: Add support for matching unknown constants
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 22 Jan 2015 22:15:27 +0000 (14:15 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 30 Jan 2015 01:07:45 +0000 (17:07 -0800)
commitd8999bcdce6a3c8ab63f06c7028fd6e927bb9acb
tree6230d336d20d51c99af44b788093ceb31fd1659f
parent5ab1489ae62fa68e45664588d8809b3d667d7425
nir/search: Add support for matching unknown constants

There are some algebraic transformations that we want to do but only if
certain things are constants.  For instance, we may want to replace
a * (b + c) with (a * b) + (a * c) as long as a and either b or c is constant.
While this generates more instructions, some of it will get constant
folded.

nir_algebraic.py doesn't handle this yet, but that's ok because the C
language will make sure that false is the default for now.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/nir/nir_search.c
src/glsl/nir/nir_search.h