SPIRV-Tools/include/spirv-tools
Nathan Gauër 35d8b05de4
opt: add capability trimming pass (not default). (#5278)
This commit adds a new optimization which tries to remove unnecessary
capabilities from a SPIR-V module.

When compiling a SPIR-V module, you may have some dead-code using
features gated by a capability.
DCE will remove this code, but the capability will remain. This means
your module would still require some capability, even if it doesn't
require it. Calling this pass on your module would remove obsolete
capabilities.

This pass wouldn't be enabled by default, and would only be usable
from the API (at least for now).

NOTE: this commit only adds the basic skeleton/structure, and
doesn't mark as supported many capabilities it could support.
I'll add them as supported as I write tests.

Signed-off-by: Nathan Gauër <brioche@google.com>
2023-07-25 16:52:41 +02:00
..
instrument.hpp instrument: Combine descriptor length and init state checking (#5274) 2023-06-22 09:39:49 -06:00
libspirv.h Add support for LiteralFloat type (#5323) 2023-07-17 11:16:01 -04:00
libspirv.hpp libspirv.cpp: adds c++ api for spvBinaryParse (#5109) 2023-02-14 14:08:20 -05:00
linker.hpp Rewrite include guards (#1793) 2018-08-03 08:05:33 -04:00
linter.hpp spirv-lint: Add lint based on divergence analysis (#4488) 2021-08-27 14:43:23 -04:00
optimizer.hpp opt: add capability trimming pass (not default). (#5278) 2023-07-25 16:52:41 +02:00