spirv: Handle most execution modes earlier
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Tue, 7 Jul 2020 05:58:25 +0000 (22:58 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 27 Jul 2020 17:10:23 +0000 (17:10 +0000)
commit12dd5455f43c8fe24f50c78a880270cf8cc023c5
tree3383ec7ea5ee529bf1f44151221a3b092bcd62b4
parentef781880eb3969620e19ba118410456e3ca300f6
spirv: Handle most execution modes earlier

For convenience in e68871f6a44 ("spirv: Handle constants and types
before execution modes") we moved all execution mode parsing after the
constants and types, so that those using OpExecutionModeId could be
handled together.

Later in 84781e1f1d8 ("spirv/nir: keep track of SPV_KHR_float_controls
execution modes") we had to parse certain non-ID execution modes
before handling constants.

Instead of handling just the float controls related execution modes
early, handle all modes that don't need an ID.  This is a more
"natural" split and will allow other type handling to rely on
execution mode in the future.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6062>
src/compiler/spirv/spirv_to_nir.c