spirv: Emit switch conditions on-the-fly
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 12 Jan 2019 03:36:28 +0000 (21:36 -0600)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 12 Jan 2019 23:55:49 +0000 (17:55 -0600)
commitb938d5fbefe09c67318e88eb869cab016fc6749b
treed1b0dcddf033d41c8080eeb4b6c07a0867449a89
parent821b6861ec7c267599e28d600a833e7a2a79ccd4
spirv: Emit switch conditions on-the-fly

Instead of emitting all of the conditions for the cases of a switch
statement up-front, emit them on-the-fly as we emit the code for each
case.  The original justification for this was that we were going to
have to build a default case anyway which would need them all.  However,
we can just trust CSE to clean up the mess in that case.  Emitting each
condition right before the if statement that uses it reduces register
pressure and, in one customer benchmark, reduces spilling and improves
performance by about 2x.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/compiler/spirv/vtn_cfg.c