mirror of
https://github.com/KhronosGroup/SPIRV-Tools
synced 2025-01-13 18:00:05 +00:00
Update README about the optimization library and tool.
This commit is contained in:
parent
dcd7fed5af
commit
53c84333f0
30
README.md
30
README.md
@ -8,10 +8,12 @@
|
|||||||
The SPIR-V Tools project provides an API and commands for processing SPIR-V
|
The SPIR-V Tools project provides an API and commands for processing SPIR-V
|
||||||
modules.
|
modules.
|
||||||
|
|
||||||
The project includes an assembler, binary module parser, disassembler, and
|
The project includes an assembler, binary module parser, disassembler,
|
||||||
validator for SPIR-V, all based on a common static library. The library contains
|
validator, and optimizer for SPIR-V. Except for the optimizer, all are based
|
||||||
all of the implementation details, and is used in the standalone tools whilst
|
on a common static library. The library contains all of the implementation
|
||||||
also enabling integration into other code bases directly.
|
details, and is used in the standalone tools whilst also enabling integration
|
||||||
|
into other code bases directly. The optimizer implementation resides in its
|
||||||
|
own library.
|
||||||
|
|
||||||
The interfaces are still under development, and are expected to change.
|
The interfaces are still under development, and are expected to change.
|
||||||
|
|
||||||
@ -55,6 +57,20 @@ See [`syntax.md`](syntax.md) for the assembly language syntax.
|
|||||||
|
|
||||||
*Warning:* The validator is incomplete.
|
*Warning:* The validator is incomplete.
|
||||||
|
|
||||||
|
### Optimizer
|
||||||
|
|
||||||
|
*Warning:* The optimizer is still under development and its library interface is
|
||||||
|
not yet published.
|
||||||
|
|
||||||
|
Currently supported optimizations:
|
||||||
|
* [Strip debug info](source/opt/strip_debug_info_pass.h)
|
||||||
|
* [Freeze spec constant](source/opt/freeze_spec_constant_value_pass.h)
|
||||||
|
* [Fold `OpSpecConstantOp` and `OpSpecConstantComposite`](source/opt/fold_spec_constant_op_and_composite_pass.h)
|
||||||
|
* [Unify constants](source/opt/unify_const_pass.h)
|
||||||
|
* [Eliminate dead constant](source/opt/eliminate_dead_constant_pass.h)
|
||||||
|
|
||||||
|
For the latest list, please refer to `spirv-opt --help`.
|
||||||
|
|
||||||
## Source code
|
## Source code
|
||||||
|
|
||||||
The SPIR-V Tools are maintained by members of the The Khronos Group Inc.,
|
The SPIR-V Tools are maintained by members of the The Khronos Group Inc.,
|
||||||
@ -108,7 +124,7 @@ The project uses [CMake][cmake] to generate platform-specific build
|
|||||||
configurations. Assume that `<spirv-dir>` is the root directory of the checked
|
configurations. Assume that `<spirv-dir>` is the root directory of the checked
|
||||||
out code:
|
out code:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
cd <spirv-dir>
|
cd <spirv-dir>
|
||||||
git clone https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
|
git clone https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
|
||||||
git clone https://github.com/google/googletest.git external/googletest # optional
|
git clone https://github.com/google/googletest.git external/googletest # optional
|
||||||
@ -125,8 +141,10 @@ development environment.
|
|||||||
The following CMake options are supported:
|
The following CMake options are supported:
|
||||||
|
|
||||||
* `SPIRV_COLOR_TERMINAL={ON|OFF}`, default `ON` - Enables color console output.
|
* `SPIRV_COLOR_TERMINAL={ON|OFF}`, default `ON` - Enables color console output.
|
||||||
|
* `SPIRV_SKIP_TESTS={ON|OFF}`, default `OFF`- Build only the library and
|
||||||
|
the command line tools. This will prevent the tests from being built.
|
||||||
* `SPIRV_SKIP_EXECUTABLES={ON|OFF}`, default `OFF`- Build only the library, not
|
* `SPIRV_SKIP_EXECUTABLES={ON|OFF}`, default `OFF`- Build only the library, not
|
||||||
the command line tools. This will also prevent the tests from being built.
|
the command line tools and tests.
|
||||||
* `SPIRV_USE_SANITIZER=<sanitizer>`, default is no sanitizing - On UNIX
|
* `SPIRV_USE_SANITIZER=<sanitizer>`, default is no sanitizing - On UNIX
|
||||||
platforms with an appropriate version of `clang` this option enables the use
|
platforms with an appropriate version of `clang` this option enables the use
|
||||||
of the sanitizers documented [here][clang-sanitizers].
|
of the sanitizers documented [here][clang-sanitizers].
|
||||||
|
Loading…
Reference in New Issue
Block a user