Add spirv-cfg to dump a GraphViz graph of the CFG
[platform/upstream/SPIRV-Tools.git] / CHANGES
1 Revision history for SPIRV-Tools
2
3 v2016.3-dev 2016-08-11
4  - Start v2016.3
5  - Add target environment enums for OpenCL 2.1, OpenCL 2.2,
6    OpenGL 4.0, OpenGL 4.1, OpenGL 4.2, OpenGL 4.3, OpenGL 4.5.
7  - Add spirv-cfg, an experimental tool to dump the control flow graph
8    as a GraphiViz "dot" graph
9  - Add optimization pass: Eliminate dead constants.
10  - Fixes issues:
11    #288: Check def-use dominance rules for OpPhi (variable,parent) operands
12
13 v2016.2 2016-08-05
14  - Validator is incomplete
15    - Checks ID use block is dominated by definition block
16  - Add optimization passes (in API and spirv-opt command)
17    - Strip debug info instructions
18    - Freeze spec constant to their default values
19  - Allow INotEqual as operation for OpSpecConstantOp
20  - Fixes bugs:
21    #270: validator: crash when continue construct is unreachable
22    #279: validator: infinite loop when analyzing some degenerate control
23      flow graphs
24    #286: validator: don't incorrectly generate def-use error for
25          (variable,parent) parameters to OpPhi
26    #290: disassembler: never generate bare % for an identifier
27    #295: validator: def-use dominance check should ignore unreachable uses
28    #276: validator: allow unreachable continue constructs
29    #297: validator: allow an unreachable block to branch to a reachable
30          merge block
31
32 v2016.1 2016-07-19
33  - Fix https://github.com/KhronosGroup/SPIRV-Tools/issues/261
34    Turn off ClipDistance and CullDistance capability checks for Vulkan.
35  - The disassembler can emit friendly names based on debug info (OpName
36    instructions), and will infer somewhat friendly names for most types.
37    This is turned on by default for the spirv-dis command line tool.
38  - Updated to support SPIR-V 1.1 rev 2
39    - Input StorageClass, Sampled1D capability, and SampledBuffer capability
40      do not require Shader capability anymore.
41
42 v2016.0 2016-07-04
43
44  - Adds v<year>.<index> versioning, with "-dev" indicating
45    work in progress.  The intent is to more easly report
46    and summarize functionality when SPIRV-Tools is incorporated
47    in downstream projects.
48
49  - Summary of functionality (See the README.md for more):
50    - Supports SPIR-V 1.1 Rev 1
51    - Supports SPIR-V 1.0 Rev 5
52    - Supports GLSL std450 extended instructions 1.0 Rev 3
53    - Supports OpenCL extended instructions 1.0 Rev 2
54    - Assembler, disassembler are complete
55      - Supports floating point widths of 16, 32, 64 bits
56      - Supports integer widths up to 64 bits
57    - Validator is incomplete
58      - Checks capability requirements in most cases
59      - Checks module layout constraints
60      - Checks ID use-definition ordering constraints,
61        ignoring control flow
62      - Checks some control flow graph rules
63    - Optimizer is introduced, with few available transforms.
64    - Supported on Linux, OSX, Android, Windows
65
66  - Fixes bugs:
67    - #143: OpenCL pow and pown arguments