Finalize v2017.2
diff --git a/CHANGES b/CHANGES
index 7162ffe..4816c3b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,14 +1,61 @@
Revision history for SPIRV-Tools
-v2017.2-dev 2017-11-23
- - Start v2017.2-dev
+v2017.2 2017-12-15
+ - General:
+ - Support OpenCL 1.2, 2.0 target environments, including embedded profiles
+ - Add CONTRIBUTING.md
+ - Fix exit status code for spirv-link
+ - Disassember: Enable emitting ANSI colour codes to a string
+ - Library avoids polluting global namespace. The libraries can export C and C++
+ symbols starting with "spv", or in a C++ namespace. Add a test for this.
+ - Linux release builds include debug information, for easier profiling
+ - Build bots no longer test VisualStudio 2013
+ - Testing dependency RE2 requires VisualStudio 2015 or later
+ - Build bots check code formatting
- Optimizer:
- - Adding dominance analysis
+ - Add --skip-validation to spirv-opt
+ - Add dominance tree analysis
+ - Add generic value propagation engine
+ - Add global redundancy elimination within a function
+ - Add scalar replacement of function-scope variables of composite type
+ - Aggressive dead code elimination: Remove empty loops
+ - Killing an instruction notifies the IRContext
+ - IRContext::KillInst deletes the instruction
+ - Move CFG analysis to IRContext
+ - Add constant manager
+ - Fix: Don't consider derivative instructions as combinators.
+ - Fix: Don't delete an instruction twice in local dead-code-elimination
+ - Fix: Don't consider derivative instructions as combinators.
+ - Validator:
+ - Finish checking of image instructions (Section 3.32.10)
+ - Check sparse image instructions
+ - Check OpTypeImage, OpTypeSampleImage
+ - Check composite instructions (Section 3.32.12)
+ - Check atomic instructions (Section 3.32.18)
+ - Check OpEmitStreamVertex, OpEndStreamPrimitive instructions
+ - Re-enable validation of OpCopyObject
+ - OpKill, image ImplicitLod and QueryLod instructions can only be used in Fragment
+ shaders.
+ - Fixes for image instruction validation:
+ - Lod image operand only usable with ExplicitLod and OpImageFetch
+ - ExplicitLod Lod image operand must be float scalar
+ - OpImageFectch Lod image operand must be int scalar
+ - OpImageGather component operand must be 32-bits (integer scalar)
+ - OpImageQuerySizeLod Lod must be integer scalar
- Fixes:
+ #622: Remove names and decorations when inlining
+ #989: Aggressive dead code elim: Don't optimize away live breaks from a loop
+ #991: Fix validation of SPV_AMD_shader_ballot
#1004: Use after free of an instruction, in remove-duplicates transform
#1007: OpImageRead not required to return 4-component vector
#1009: OpImageRead can return scalar int/float types
- #1011: OpImageRead should allow scalar int/float texel types
+ #1011: OpImageWrite should allow scalar int/float texel types
+ #1012: Fix validat Dref type check
+ #1017: Load-store elimination considers variable initializations
+ #1034: Fix Windows debug build: operator< should be a weak ordering
+ #1083: Inlining: Set parent (function) for each inlined basic block.
+ #1075: Aggressive dead code elimination: Was leaving dangling references to
+ removed blocks.
v2017.1 2017-11-23
- Update README with details on the public_spirv_tools_dev@khronos.org mailing list.