Spencer Fricke
7b8f00f00a
spirv-opt: Fix OpCompositeInsert with Null Constant ( #5008 )
...
* spirv-opt: Unify GetConstId function names
* spirv-opt: Fix OpCompositeInsert with Null Constant
* spirv-opt: Improve GetNullCompositeConstant description
2022-12-06 09:00:10 -05:00
Nathan Gauër
1a7f71afb4
clean: constexpr-ify and unify anon namespace use ( #4991 )
...
Constexpr guaranteed no runtime init in addition to const semantics.
Moving all opt/ to constexpr.
Moving all compile-unit statics to anonymous namespaces to uniformize
the method used (anonymous namespace vs static has the same behavior
here AFAIK).
Signed-off-by: Nathan Gauër <brioche@google.com >
2022-11-17 19:02:50 +01:00
alan-baker
d35a78db57
Switch SPIRV-Tools to use spirv.hpp11 internally ( #4981 )
...
Fixes #4960
* Switches to using enum classes with an underlying type to avoid
undefined behaviour
2022-11-04 17:27:10 -04:00
Daniele Vettorel
f7a6e3b9d5
Handle chains of OpAccessChain in replacing variable index access for flattened resources. ( #4797 )
2022-05-10 11:41:43 -04:00
Natalie Chouinard
72e4475b41
Handle propagation of arrays with decorations ( #4717 )
...
When copy propagating, OpDecorate instructions can be copied as is. For
array flattening, they should be ignored.
2022-02-11 16:13:14 -05:00
Jaebaek Seo
d997c83b10
Add spirv-opt pass to replace descriptor accesses based on variable indices ( #4574 )
...
This commit adds a spirv-opt pass to replace accesses to
descriptor array based on variable indices with constant
elements.
Before:
```
%descriptor = OpVariable %_ptr_array_Image Uniform
...
%ac = OpAccessChain %_ptr_Image %descriptor %variable_index
(some image instructions using %ac)
```
After:
```
%descriptor = OpVariable %_ptr_array_Image Uniform
...
OpSwitch %variable_index 0 %case0 1 %case1 ...
...
%case0 = OpLabel
%ac = OpAccessChain %_ptr_Image %descriptor %uint_0
...
%case1 = OpLabel
%ac = OpAccessChain %_ptr_Image %descriptor %uint_1
...
(use OpPhi for value with concrete type)
```
2021-10-26 17:20:58 -04:00