Add support for SPIRV decorations
This works in a single pass, and supports both toplevel and member
decorations. Includes support for 5 new opcodes:
- OpDecorate introduces a single decoration for a toplevel id.
- OpMemberDecorate introduces a single decoration for a <id,
memberIndex> pair.
- OpDecorationGroup introduces a new value category which has no
representation downstream at all. This is safely implemented by
doing nothing at all [we don't need to be able to introspect later].
- OpGroupDecorate applies all decorations in a decoration group to each
of a list of other ids.
- OpGroupMemberDecorate applies all decorations in a decoration group to
each of a list of members (<id>, memberIndex pairs).
Bug: b/
120799499
Change-Id: Iaea970b23348e70d57ddb96a4df0726cfb511e03
Reviewed-on: https://swiftshader-review.googlesource.com/c/23174
Tested-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>