SPIRV-Tools/CHANGES
David Neto c978b72477 Fix infinite loop in dominance calculation.
Ensure the dominance calculation visits all nodes in the CFG.
The successor list of the pseudo-entry node is augmented with
a single node in each cycle that otherwise would not be visited.
Similarly, the predecssors list of the pseduo-exit node is augmented
with the a single node in each cycle that otherwise would not
be visited.

Pulls DepthFirstSearch out so it's accessible outside of the dominator
calculation.

Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/279
2016-07-28 16:40:55 -04:00

51 lines
2.0 KiB
Plaintext

Revision history for SPIRV-Tools
v2016.2-dev 2016-07-19
- Start v2016.2
- Validator is incomplete
- Checks ID use block is dominated by definition block
- Add optimization passes (in API and spirv-opt command)
- Strip debug info instructions
- Freeze spec constant to their default values
- Fixes bugs:
#270: validator: crash when continue construct is unreachable
#279: validator: infinite loop when analyzing some degenerate control
flow graphs
v2016.1 2016-07-19
- Fix https://github.com/KhronosGroup/SPIRV-Tools/issues/261
Turn off ClipDistance and CullDistance capability checks for Vulkan.
- The disassembler can emit friendly names based on debug info (OpName
instructions), and will infer somewhat friendly names for most types.
This is turned on by default for the spirv-dis command line tool.
- Updated to support SPIR-V 1.1 rev 2
- Input StorageClass, Sampled1D capability, and SampledBuffer capability
do not require Shader capability anymore.
v2016.0 2016-07-04
- Adds v<year>.<index> versioning, with "-dev" indicating
work in progress. The intent is to more easly report
and summarize functionality when SPIRV-Tools is incorporated
in downstream projects.
- Summary of functionality (See the README.md for more):
- Supports SPIR-V 1.1 Rev 1
- Supports SPIR-V 1.0 Rev 5
- Supports GLSL std450 extended instructions 1.0 Rev 3
- Supports OpenCL extended instructions 1.0 Rev 2
- Assembler, disassembler are complete
- Supports floating point widths of 16, 32, 64 bits
- Supports integer widths up to 64 bits
- Validator is incomplete
- Checks capability requirements in most cases
- Checks module layout constraints
- Checks ID use-definition ordering constraints,
ignoring control flow
- Checks some control flow graph rules
- Optimizer is introduced, with few available transforms.
- Supported on Linux, OSX, Android, Windows
- Fixes bugs:
- #143: OpenCL pow and pown arguments