Revision history for SPIRV-Tools

v2020.1-dev 2019-12-11
 - Start v2020.1-dev

v2019.5 2019-12-11
 - General:
   - Export SPIRV-Tools targets on installation
   - SPIRV-Tools support for SPIR-V 1.5 (#2865)
   - Add WebGPU SPIR-V Assembler in JavaScript. (#2876)
   - Add Bazel build configuration. (#2891)
   - Add support for building with emscripten (#2948)
   - Update SPIR-V binary header test for SPIR-V 1.5 (#2967)
   - Add fuzzer for spirv-as call path (#2976)
   - Improved CMake install step. (#2963)
   - Add fuzzer for spirv-dis call path (#2977)
   - Ensure timestamp does not vary with timezone. (#2982)
   - Add a vscode extension for SPIR-V disassembly files (#2987)
   - Add iOS as a supported platform (#3001)
   - utils/vscode: Add SPIR-V language server support
   - Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054)
   - Permit the debug instructions in WebGPU SPIR-V (#3063)
   - Add support for Fuchsia. (#3062)
 - Optimizer
   - Add descriptor array scalar replacement (#2742)
   - Add pass to wrap OpKill in a function call (#2790)
   - Fold FMix during constant folding. (#2818)
   - Add pass to replace AMD shader ballot extension (#2811)
   - Add pass to make Float32 operation relax precision (#2808)
   - Add pass to make relax precision operation Float16 (#2808)
   - Add pass to replace uses of 3 AMD extensions (#2814)
   - Fold Min, Max, and Clamp instructions. (#2836)
   - Better handling of OpKill in continues (#2842,#2922,#2933)
   - Enable OpTypeCooperativeMatrix specialization (#2927)
   - Support constant-folding UConvert and SConvert (#2960)
   - Update Offset to ConstOffset bitmask if operand is constant. (#3024)
   - Improve RegisterSizePasses (#3059)
   - Folding: perform add and sub on mismatched integer types (#3084)
   - Graphics robust access: use signed clamp (#3073)
   Fixes:
   - Instrument: Fix version 2 output record write for tess eval shaders. (#2782)
   - Instrument: Add support for Buffer Device Address extension (#2792)
   - Fix check for changed binary in API call. (#2798)
   - For WebGPU<->Vulkan optimization, set correct execution environment (#2834)
   - Handle OpConstantNull in copy-prop-arrays. (#2870)
   - Use OpReturn* in wrap-opkill (#2886)
 - Validator
   - Add generic builtin validation of target (#2843)
   - Extra resource interface validation (#2864)
   - Adding valilidation checks for OpEntryPoint duplicate names and execution mode (#2862)
   - Relaxed bitcast with pointers (#2878)
   - Validate physical storage buffer restrictions (#2930)
   - Add SPV_KHR_shader_clock validation (#2879, #3013)
   - Validate that selections are structured (#2962)
   - Disallow use of OpCompositeExtract/OpCompositeInsert with no indices (#2980)
   - Check that derivatives operate on 32-bit values (#2983)
   - Validate array stride does not cause overlap (#3028)
   - Validate nested constructs (#3068)
   Fixes:
   - Fix validation of constant matrices (#2794)
   - Update "remquor" validation
   - Only allow previously declared forward refs in structs (#2920)
 - Reduce
   - Remove relaxed precision decorations (#2797)
   - Reduce/fuzz: improve command line args (#2932)
   - Improve remove unref instr pass (#2945)
   Fixes:
 - Fuzz
   - Fix add-dead-break and add-dead-continue passes to respect dominance (#2838)
   - Add fuzzer pass to copy objects (#2853)
   - Add fuzzer pass to replace ids with synonyms (#2857)
   - Allow validation during spirv-fuzz replay (#2873)
   - Employ the "swarm testing" idea in spirv-fuzz (#2890)
   - reduce/fuzz: improve command line args (#2932)
   - option to convert shader into a form that renders red (#2934)
   - Add fuzzer pass to change selection controls (#2944)
   - add transformation and pass to construct composites (#2941)
   - Add fuzzer pass to change loop controls (#2949)
   - Add fuzzer pass to change function controls (#2951)
   - Add fuzzer pass to add NoContraction decorations (#2950)
   - Add missing functionality for matrix composites (#2974)
   - Fuzzer pass to adjust memory access operands (#2968)
   - Transformation to extract from a composite object (#2991)
   - Vector shuffle transformation (#3015)
   - Improve debugging facilities (#3074)
   - Function outlining fuzzer pass (#3078)


v2019.4 2019-08-08
 - General:
   - Memory model support for SPIR-V 1.4
   - Add new spirv-fuzz tool
   - Add option for base branch in check_code_format.sh
   - Removed MarkV and Stats code. (#2576)
   - Instrument: Add version 2 of record formats (#2630)
   - Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580)
 - Optimizer
   - Bindless Validation: Instrument descriptor-based loads and stores (#2583)
   - Better folding for OpSpecConstantOp (#2585, #2614)
   - Add in individual flags for Vulkan <-> WebGPU passes (#2615)
   - Handle nested breaks from switches. (#2624)
   - Optimizer: Handle array type with OpSpecConstantOp length (#2652)
   - Perform merge return with single return in loop. (#2714)
   - Add --preserve-bindings and --preserve-spec-constants (#2693)
   - Remove Common Uniform Elimination Pass (#2731)
   - Allow ray tracing shaders in inst bindle check pass. (#2733)
   - Add pass to inject code for robust-buffer-access semantics (#2771)
   - Treat access chain indexes as signed in SROA (#2776)
   - Handle RelaxedPrecision in SROA (#2788)
   - Add descriptor array scalar replacement (#2742)
   Fixes:
   - Handle decorations better in some optimizations (#2716)
   - Change the order branches are simplified in dead branch elim (#2728)
   - Fix bug in merge return (#2734)
   - SSA rewriter: Don't use trivial phis (#2757)
   - Record correct dominators in merge return (#2760)
   - Process OpDecorateId in ADCE (#2761)
   - Fix check for unreachable blocks in merge-return (#2762)
   - Handle out-of-bounds scalar replacements. (#2767)
   - Don't move debug or decorations when folding (#2772)
   - Protect against out-of-bounds references when folding OpCompositeExtract (#2774)
 - Validator
   - Validate loop merge (#2579)
   - Validate construct exits (#2459)
   - Validate OpenCL memory and addressing model environment rules (#2589)
   - Validate OpenCL environment rules for OpTypeImage (#2606)
   - Allow breaks to switch merge from nested construct (#2604)
   - Validate OpenCL environment rules for OpImageWrite (#2619)
   - Allow arrays of out per-primitive builtins for mesh shaders (#2617)
   - Validate OpenCL rules for ImageRead and OpImageSampleExplicitLod (#2643)
   - Add validation for SPV_EXT_fragment_shader_interlock (#2650)
   - Add builtin validation for SPV_NV_shader_sm_builtins (#2656)
   - Add validation for Subgroup builtins (#2637)
   - Validate variable initializer type (#2668)
   - Disallow stores to UBOs (#2651)A
   - Validate Volatile memory semantics bit (#2672)
   - Basic validation for Component decorations (#2679)
   - Validate that in OpenGL env block variables have Binding (#2685)
   - Validate usage of 8- and 16-bit types with only storage capabilities (#2704)
   - Add validation for SPV_EXT_demote_to_helper_invocation (#2707)
   - Extra small storage validation (#2732)
   - For Vulkan, disallow structures containing opaque types (#2546)
   - Validate storage class OpenCL environment rules for atomics (#2750)
   - Update OpControlBarriers rules for WebGPU (#2769)
   - Update OpMemoryBarriers rules for WebGPU (#2775)
   - Update WebGPU validation rules of OpAtomic*s (#2777)
   Fixes:
   - Disallow merge targeting block with OpLoopMerge (#2610)
   - Update vloadn and vstoren validation to match the OpenCL Extended
     Instruction Set Specification (#2599)
   - Update memory scope rules for WebGPU (#2725)
   - Allow LOD ops in compute shaders with derivative group execution modes (#2752)
 - Reduce
   Fixes:

v2019.3 2019-05-14
 - General:
   - Require Python 3 since Python 2 will out of service soon.
   - Add a continuous test that does memory checks using the address sanitizer.
   - Fix the build files so the SPIRV_USE_SANITIZER=address build works.
   - Packaging top of tree build artifacts again.
   - Added support for SPIR-V 1.4. (#2550)
 - Optimizer
   - Remove duplicates from list of interface IDs in OpEntryPoint instruction (#2449)
   - Bindless Validation: Descriptor Initialization Check (#2419)
   - Add option to validate after each pass (#2462)
   - Add legalization pass to fix mismatched pointer (#2430, #2535)
   - Add error messages when the input contains unknown instructions. (#2487)
   - Add pass to convert from WebGPU Spir-V to Vulkan Spir-V and back. (#2495)
   Fixes:
   - #2412: Dead memeber elimination should not change input and output variables.
   - #2405: Fix OpDot folding of half float vectors.
   - #2391: Dead branch elim should not fold away back edges.
   - #2441: Removing decorations when doing constant propagation.
   - #2455: Maintain inst to block mapping in merge return.
   - #2453: Fix merge return in the face of breaks.
   - #2456: Handle dead infinite loops in DCE.
   - #2458: Handle variable pointer in some optimizations.
   - #2452: Fix dead branch elimination to handle unreachable blocks better.
   - #2528: Fix undefined bit shift in sroa.
   - #2539: Change implementation of post order CFG traversal.
 - Validator
   - Add validation of storage classes for WebGPU (#2446)
   - Add validation for ExecutionMode in WebGPU (#2443)
   - Implement WebGPU specific CFG validation (#2386)
   - Allow NonWritable to target struct members. (#2420)
   - Allow storage type mismatch for parameter in relaxed addressing mode.
   - Allow non memory objects as parameter in relaxed addressing mode.
   - Disallow nested Blocks and buffer blocks (#2410).
   - Add validation for SPV_NV_cooperative_matrix (#2404)
   - Add --strip-atomic-counter-memory (#2413)
   - Check OpSampledImage is only passed into valid instructions (#2467)
   - Handle function decls in Structured CFG analysis (#2474)
   - Validate that OpUnreacahble is not statically reachable (#2473)
   - Add pass to generate needed initializers for WebGPU (#2481)
   - Allow images without format for OpenCL. (#2470)
   - Remove unreachable block validation (#2525)
   - Reduce runtime of array layout checks (#2534)
   - Add validation specific to OpExecutionModeId (#2536)
   - Validate sign of int types. (#2549)
   - VK_KHR_uniform_buffer_standard_layout validation (#2562)
   Fixes:
   - #2439: Add missing DepthGreater case to Fragment only check.
   - #2168: Disallow BufferBlock on StorageBuffer variables for Vulkan.
   - #2408: Restrict and Aliased decorations cannot be applied to the same id.
   - #2447: Improve function call parameter check.
 - Reduce
   - Add Pass to remove unreferenced blocks. (#2398)
   - Allows passing options to the validator. (#2401)
   - Improve reducer algorithm and other changes (#2472)
   - Add Pass to remove selections (#2485)
   - Add passes to simplify branches (#2507)
   Fixes:
   - #2478: fix loop to selection pass for loops with combined header/continue block

v2019.2 2019-02-20
 - General:
   - Support SPV_EXT_physical_storage_buffer
   - A number of memory leak have been fixed.
   - Removed use of deprecated Google test macro:
   - Changed the BUILD.gn to only build tests in Chromium.
 - Optimizer
   - Upgrade memory model improvments for modf and frexp.
   - Add a new pass to move loads closer to their uses: code sinking.
   - Invalidating the type manager now invalidates the constnat manager.
   - Expand instrumentation pass for bindless bounds checking to runtime-sized descriptor arrays.
   - Add a new pass that removes members from structs that are not used: dead member elimination.
   Fixes:
   - #2292: Remove undefined behaviour when folding bit shifts.
   - #2294: Fixes for instrumentation code.
   - #2293: Fix overflow when folding -INT_MIN.
   - #2374: Don't merge unreachable blocks when merging blocks.
 - Validator
   - Support SPV_KHR_no_integer_wrap and related decorations.
   - Validate Vulkan rules for OpTypeRuntimeArray.
   - Validate NonWritable decoration.
   - Many WebGPU specific validation rules were added.
   - Validate variable pointer related function call rules.
   - Better error messages.
   Fixes:
   - #2307: Check forwards references in OpTypeArray.
   - #2315, #2303: Fixed the layout check for relaxed layout.
   - #1628: Emit an error when an OpSwitch target is not an OpLabel.
 - Reduce
   - Added more documentation for spirv-reduce.
   - Add ability to remove OpPhi instructions.
   - Add ability to merge two basic blocks.
   - Add ability to remove unused functions and unused basic blocks.
   Fixes:

v2019.1 2019-01-07
 - General:
   - Created a new tool called spirv-reduce.
   - Add cmake option to turn off SPIRV_TIMER_ENABLED (#2103)
   - New optimization pass to update the memory model from GLSL450 to VulkanKHR.
   - Recognize OpTypeAccelerationStructureNV as a type instruction and ray tracing storage classes.
   - Fix GCC8 build.
   - Add --target-env flag to spirv-opt.
   - Add --webgpu-mode flag to run optimizations for webgpu.
   - The output disassembled line number stead of byte offset in validation errors. (#2091)
 - Optimizer
   - Added the instrumentation passes for bindless validation.
   - Added passes to help preserve OpLine information (#2027)
   - Add basic support for EXT_fragment_invocation_density (#2100)
   - Fix invalid OpPhi generated by merge-return. (#2172)
   - Constant and type manager have been turned into analysies. (#2251)
   Fixes:
   - #2018: Don't inline functions with a return in a structured CFG contstruct.
   - #2047: Fix bug in folding when volatile stores are present.
   - #2053: Fix check for when folding floating pointer values is allowed.
   - #2130: Don't inline recursive functions.
   - #2202: Handle multiple edges between two basic blocks in SSA-rewriter.
   - #2205: Don't unswitch a latch condition during loop unswitch.
   - #2245: Don't fold branch in loop unswitch.  Run dead branch elimination to fold them.
   - #2204: Fix eliminate common uniform to place OpPhi instructions correctly.
   - #2247: Fix type mismatches caused by scalar replacement.
   - #2248: Fix missing OpPhi after merge return.
   - #2211: After merge return, fix invalid continue target.
   - #2210: Fix loop invariant code motion to not place code between merge instruction and branch.
   - #2258: Handle CompositeInsert with no indices in VDCE.
   - #2261: Have replace load size handle extact with no index.
 - Validator
   - Changed the naming convention of outputing ids with names in diagnostic messages.
   - Added validation rules for UniformConstant variables in Vulkan.
   - #1949: Validate uniform variable type in Vulkan
   - Ensure for OpVariable that result type and storage class operand agree (#2052)
   - Validator: Support VK_EXT_scalar_block_layout
   - Added Vulkan memory model semantics validation
   - Added validation checkes spefic to WebGPU environment.
   - Add support for VK_EXT_Transform_feedback capabilities (#2088)
   - Add validation for OpArrayLength. (#2117)
   - Ensure that function parameter's type is not void (#2118)
   - Validate pointer variables (#2111)
   - Add check for QueueFamilyKHMR memory scope (#2144)
   - Validate PushConstants annotation and type (#2140)
   - Allow Float16/Int8 for Vulkan 1.0 (#2153)
   - Check binding annotations in resource variables (#2151, #2167)
   - Validate OpForwardPointer (#2156)
   - Validate operation for OpSpecConstantOp (#2260)
   Fixes:
   - #2049: Allow InstanceId for NV ray tracing
 - Reduce
   - Initial commit wit a few passes to reduce test cases.
   - Validation is run after each reduction step.
   Fixes:


v2018.6 2018-11-07
 - General:
   - Added support for the Nvidia Turing and ray tracing extensions.
   - Make C++11 the CXX standard in CMakeLists.txt.
   - Enabled a parallel build for MSVC.
   - Enable pre-compiled headers for MSVC.
   - Added a code of conduct.
   - EFFCEE and RE2 are now required when build the tests.
 - Optimizer
   - Unrolling loops marked for unrolling in the legalization passes.
   - Improved the compile time of loop unrolling.
   - Changee merge-return to create a dummy loop around the function.
   - Small improvement to merge-blocks to allow it to merge more often.
   - Enforce an upper bound for the ids, and add option to set it.
   - #1966: Report error if there are unreachable block before running merge return
   Fixes:
   - #1917: Allow 0 (meaning unlimited) as a parameter to --scalar-replacement
   - #1915: Improve handling of group decorations.
   - #1942: Fix incorrect uses of the constant manager.  Avoids type mismatches in generated code.
   - #1997: Fix dead branch elimination when there is a loop in folded selection.
   - #1991: Fixes legality check in if-conversion.
   - #1987: Add nullptr check to array copy propagation.
   - #1984: Better handling of OpUnreachable in ADCE.
   - #1983: Run merge return on reachable functions only.
   - #1956: Handled atomic operations in ADCE.
   - #1963: Fold integer divisions by 0 to 0.
   - #2019: Handle MemberDecorateStringGOOGLE in ADCE and strip reflect.
 - Validator
   - Added validation for OpGroupNonUniformBallotBitCount.
   - Added validation for the Vulkan memory model.
   - Added support for VK_KHR_shader_atddomic_int64.
   - Added validation for execution modes.
   - Added validation for runtime array layouts.
   - Added validation for 8-bit storage.
   - Added validation of OpPhi instructions with pointer result type.
   - Added checks for the Vulkan memory model.
   - Validate MakeTexelAvailableKHR and MakeTexelVisibleKHR
   - Allow atomic function pointer for OpenCL.
   - FPRounding mode checks were implemented.
   - Added validation for the id bound with an option to set the max id bound.
   Fixes:
   - #1882: Improve the validation of decorations to reduce memory usage.
   - #1891: Fix an potential infinite loop in dead-branch-elimination.
   - #1405: Validate the storage class of boolean objects.
   - #1880: Identify arrays of type void as invalid.
   - #487: Validate OpImageTexelPointer.
   - #1922: Validate OpPhi instructions are at the start of a block correctly.
   - #1923: Validate function scope variable are at the start of the entry block.

v2018.5 2018-09-07
 - General:
   - Support SPV_KHR_vulkan_memory_model
   - Update Dim capabilities, to match SPIR-V 1.3 Rev 4
   - Automated build bots no run tests for the VS2013 case
   - Support Chromium GN build
   - Use Kokoro bots:
     - Disable Travis-CI bots
     - Disable AppVeyor VisualStudio Release builds. Keep VS 2017 Debug build
   - Don't check export symbols on OSX (Darwin): some installations don't have 'objdump'
   - Reorganize source files and namespaces
   - Fixes for ClangTidy, and whitespace (passes 'git cl presumit --all -uf')
   - Fix unused param compile warnings/errors when Effcee not present
   - Avoid including time headers when timer functionality is disabled
   - Avoid too-stringent warnings flags for Clang on Windows
   - Internal refactoring
   - Add hooks for automated fuzzing
   - Add testing of command line executables
   - #1688: Use binary mode on stdin; fixes "spirv-dis <foo.spv" on Windows
 - Optimizer
   - The optimizer validates the module before it begins
   - Add API to register passes by string name
   - Fold a vector shuffle feeding a vector shuffle
   - Add -combine-access-chains transform
   - Refactor how IRContext is handled by passes
   - Improve bookkeeping for instruction result type and result id
   - Fix over-duplication of decorations
   - Fix handling of exits from selections in dead-branch elimination, and dead code
     elimination.
   - Fix handling of certain kinds of flow control in merge-return
   Fixes:
   - #1721: Fix size bug when folding vector shuffles
   - #1722: Fix size infinite loop when folding vector shuffles
   - #1724: Fix finding a constant of a specific type
   - #1727: Dead branch elim: Reorder blocks if needed to satisfy dominance rule
   - #1729: Handle VariablePointers cases in various optimizations
   - #1731: Fix vector shuffle with literal id indicating undef value
   - #1736: Fix handling of decorations and phis in merge-return
   - #1787: Fix handling of decorations related to access chains
   - #1865: Avoid leaking memory for SPIR-V constant values
 - Validator
   - Improve error messages
   - Avoid platform-dependent traversal ordering, to ensure consistent messages
   - Use libspirv::Instruction where possible
   - Add option to skip all block layout checks
   - Validate all type IDs
   - Validate uses of OpFunction
   - Validate uses of OpTypeFunction
   - Disallow a struct containing its own type https://crbug.com/874372
   - #1685: Vulkan permits non-monotonic offsets for block members
   - #1697: Enforce block layout rules even when using relaxed block layout option
   - #1719: Fix line number for vector shuffle valiation error
   - #1789: Avoid assertion failure when validating some functions
   - #1800: Fix validation of OpCopyMemorySized
   - #1822: Stop enforcing struct member offset montonicity
   - #1831: Disallow void members in structs

v2018.4 2018-07-08
 - General:
   - Support SPV_KHR_8bit_storage
   - Add gclient and presubmit configurations
   - Enable Kokoro build bots (#1625)
   - Group tests into fewer executables, reduces load on CI
   - Port test script to Python 3
   - Symbol export tests respect SPIRV_SKIP_TESTS
   - #1596: Operand lookup succeeds if enabled by a capability
   - #1624: Instruction lookup succeeds if enabled by a capability
   - Refactoring namespaces:
     - #1678: Change libspirv to spvtools
     - Code in source/utils moved into spvtools::utils
     - Code in source/comp moved into spvtools::comp
 - Optimizer:
   - Remove insert-extract-elim pass. Use simplification pass instead.
   - Preserve instruction-to-block mapping in most passes, to reduce runtime.
   - Small vector optimization for operands
   - Add pass to move Private variables to Function. Increase opportunity to optimize.
   - Fixes:
     #1120: Check static uses of entry point interfaces
     #1372: Avoid merging some structs, to preserve names for reflection
     #1577: Scalar replacement uses only undecorated types.
     #1578: Fix handling of forward-pointer types, and types embedding pointers
       to themselves.
     #1591: Inliner: Callee variable with initializer should have a store at the call site.
     #1634: Fix crash: Use type id in vector type lookup
     #1649: Fix assert in compact-ids pass
     Fix constant folder: ensure it uses the right type
     #1659: Folding rules added to IRContext. Avoids leak.
 - Validator
   - Add work-in-progress WebGPU environment. Disallows OpUndef
   - #670, #1581: Improve error messages; disassemble instruction
   - #491: Check structured switches
   - #937: Check layout rules for Block and BufferBlock in Uniform, StorageBuffer, PushConstant
   - #1281: Check invalid branches into structured constructs
   - #1522: Disallow array-of-arrays with DescriptorSets
   - #1577: Allow duplicate pointer types.
   - #1581: Better messages: output ID names along with numbers in more cases.
   - #1597: Check Vulkan 1.1 capabilities
   - #1618: Check invalid exit from structured case construct
   - #1622: Run IdPass before DataRulesPass
   - #1632: Reduce test time by artificially lowering limits in limit test
   - #1638: Block-decorated structs member order must respect offset order
   - #1657: Improve CFG validation diagnostics
   - Khronos SPIR-V #337: GLSL.std.450 Refract instruction Eta param can be any float scalar.
   - #1606: PushConstant Blocks follow storage-buffer layout rules
   - #1664: Check layout of StorageBuffer variables with Block decoration, using storage buffer
     rules
   - #1666: Layout validation should permit {vec3; float} packing
   - #1637, #1668: Layout validation uses RowMajor, ArrayStride, MatrixStride properly
 - Linker
   - Avoid buffer overrun when creating OpModuleProcessed

v2018.3 2018-05-25
 - General:
   - Support SPV_EXT_descriptor_indexing
   - Support SPV_GOOGLE_decorate_string
   - Support SPV_GOOGLE_hlsl_functionality1
   - Support SPV_NV_shader_subgroup_partitioned
   - Use "unified1" grammar from SPIRV-Headers
   - Simplify support for new extensions. Assembler, disassembler, and simple validation
     support is automatic if new tokens are introduced with appropriate extension
     attributes in the "unified1" SPIR-V core grammar.
   - Disassembler: Emit more digits on floating point, to reliably reproduce all
     significand bits.  (Use std::max_digits10 instead of std::digits10)
   - Fix compilation for old XCode versions: Explicit construction required for std::set.
 - Optimizer:
   - Add --strip-reflect
   - Add --time-report
   - Add --loop-fission
   - Add lop fusion.
   - Add loop peeling pass and internal utility.
   - Improve optimizer runtime.
   - Merge-return now works with structured control flow.
   - New (faster) SSA rewriter to convert local loads and stores to SSA IDs and phis.
     Can replace load/store elimination passes.
   - Fix instruction folding case: insertion that feeds and extract, when the extract
     remains.
   - Fold OpDot.
   - Fold OpFNegate.
   - Fold multply and divide of same value.
   - Fold FClamp feeding a compare.
   - Fold OpLoad feeding an extract, to reduce excessive copying. (#1547)
   - Fold Fmix feeding an extract.
   - Use simplification pass instead of insert-extract elimination.
   - Constant fold OpVectorTimesScalar.
   - Copy propagate arrays, in simple cases.
   - Aggressive dead code elimination: Can remove more instructions, e.g. derivatives.
   - Aggressive dead code elimination: Remove Workgroup variables that are written but not read.
   - Better handling of OpImageTexelPointer
   - Initial utilities for scalar evolution.
   - Add Vector dead code elimination.
   - Each pass can only run once.
   - Allow code hosting in if-conversion.
   - Add external interface for adding a PassToken, so external code can make their own
     passes.
   - Fixes:
     #1404: Don't optimize away the compute compute workgroup size constant.
     #1407: Remove a bad assertion
     #1456: Fix bug in SSA rewriter related to variables updated in loops.
     #1487: Fix long runtime in Dead insertion elimination: Don't revist select phi nodes.
     #1492: Aggressive dead code elimination can remove OpDecorateStringGOOGLE.
     #1527: Fix inlining of functions having OpKill and OpUnreachable.
     #1559: Fix assert failure in reduce-load-size pass.
     #1556: Aggressive dead code elimination: Fix handling of OpCopyMemory.
 - Validator:
   - Check Vulkan built-in variables
   - Check Vulkan-specific atomic result type rule.
   - Relax control barrier check for SPIR-V 1.3.  Fixes #1427
   - Check OpPhi.
   - Check OpMemoryModel.
   - Stop checking sizes derived from spec-constants.
   - Re-enable checks for OpUConvert.
   - Vulkan: Fix check for PrimitiveId: Permit as Input in fragment shader.
   - Validate binary version for the given target environment.
   - Add tests for OpBranch checks.
   - Vulkan 1.1: Check scope for non-uniform subgroup operations.
   - Fix checks for SPV_AMD_gpu_shader_int16.
   - Fix logical layout check for OpDecorateId.
   - Fix checks for ViewportIndex & Layer for Vulkan and SPV_EXT_shader_viewport_index_layer.
   - Fixes:
     #1470: Vulkan: Don't restrict WorkgroupSize to Input storage class.
     #1469: Vulkan: Permit Subgroup memory scope for Vulkan 1.1.
     #1472: Per-vertex variable validation fixes.
     #1483: Valdiate barrier execution scopes for Vulkan 1.1.
 - Fixes:
   #898: Linker properly removes FuncParamAttr from imported symbols.
   #924, #1174: Fix handling of decoration groups in optimizer, linker.

v2018.2 2018-03-07
 - General:
   - Support SPIR-V 1.3 and Vulkan 1.1.
     - Default target environment is now SPIR-V 1.3.  For command-line tools,
       use the --target-env option to override the default.  Examples:
	  # Generate a SPIR-V 1.0 binary instead of SPIR-V 1.3
	  spirv-as --target-env spv1.0 a.spvasm -o a.spv
	  spirv-as --target-env vulkan1.0 a.spvasm -o a.spv
	  # Validate as Vulkan 1.0
	  spirv-val --target-env vulkan1.0 a.spv
   - Support SPV_GOOGLE_decorate_string and SPV_GOOGLE_hlsl_functionality1
 - Fixes:
   - Fix Android.mk build. Compilation was failing due to missing definitions of
     SpvCapabilityFloat16ImageAMD and other enumerated values.
   - Optimizer: Avoid generating duplicate names when merging types.
   - #1375: Validator: SPV_AMD_gpu_shaer_half_float implicitly allows declaration
     of the 16-bit floating point type.
   - #1376: Optimizer: Avoid folding half-precision float.

v2018.1 2018-03-02
 - General:
   - Support Visual Studio 2013 again. (Continue support for VS 2015 and VS 2017.)
   - Support building SPIRV-Tools as a shared library.
   - Improve the HLSL legalization optimization recipe. #1311
 - Optimizer:
   - General speedups.
   - Remove generic dead code elimination functionality from transforms:
       --eliminate-local-single-block
       --eliminate-local-single-store
       --eliminate-local-multi-store
     To recover the previous behaviour, a recipe using those transforms should now
     also invoke the --eliminate-dead-code-aggressive transform.
   - Improve folding, including coverage for floating point, OpSelect, and arithmetic
     with non-trivial constant operands.
   - Add loop-invariant code motion pass.
   - Add loop-unrolling pass, for honouring unroll hits.
   - Add loop-unswitch pass.
   - Add instruction simplification pass.
   - Aggressive dead code elimination: Understands capability hierarchy when finding
     instructions it can eliminate (combinators). (PR #1268)
   - CCP can now fold floating point arithmetic. #1311
 - Validator:
   - Validate barrier instructions.
   - Check Vulkan-specific rules for atomics.
   - Check Vulkan prohibition of Location or Component decorations on BuiltIn variables.
 - Linker:
   - Add --verify-ids option
   - Add option to allow a resulting module to be partially linked.
   - Handle OpModuleProcessed (instructions in SPIR-V layout section 7c)
 - Fixes:
   - #1265: Optimizer: Fix use-after free bug in if-conversion. (Fix object lifecycle bug
     in type manager.)
   - #1282: Fix new warnings found by GCC 8.0.1.
   - #1285: Optimizer: Fix random failures during inlining.  (Dangling references in DefUseManager)
   - #1295: Optimizer: Fix incorrect handling of Phi nodes in CCP.
   - #1300: Fix CCP: avoid bad CCP transitions and unsettled values.
   - #1304: Avoid static-duration variables of class type (with constructors).
   - #1323: Fix folding of an insert composite feeding a composite extract.
   - #1339: Fix CCP: Handle OpConstantNull boolean values as conditions.
   - #1341: DCEInst: Keep atomic instructions (and some others with side effects).
   - #1354: Don't fold integer division.
   - #1357: Support OpConstantNull in folding.
   - #1361: CCP: Fix handling of non-constant module-scope values

v2018.0 2018-02-02
 - General
   - VisualStudio 2013 is no longer supported.  VisualStudio 2015 is supported.
   - Use "include/unified1" directory from SPIRV-Headers.  Requires recent SPIRV-Headers source.
 - Disassembler: spirv-dis adds --color option to force color disassembly.
 - Optimizer:
   - Add pass to eliminate dead insertions.
   - Aggressive dead code elimination now removes OpSwitch constructs.
   - Block merging occurs in more cases.
   - Add driver workaround transform: replace OpUnreachable with harmless branch to merge.
   - Improve instruction folding framework.
   - Add loop analysis.
   - Add scalar replacement of aggregates to size-optimization recipe.
   - Add pass to replace instructions invalid for a shader stage, with a harmless value.
     This changes the semantics of the program!  Not for general use!
   - Rearragne and add passes to performance-optimization recipe, to produce better results.
 - Validator:
   - Validate OpenCL extended instructions.
   - Shaders can't perform atomics on floats.
   - Validate memory semantics values in atomics.
   - Validate instruction-adjacency constraints, e.g. OpPhi predecessors, merge instructions
     immediately precede branches.
 - Fixes:
   - PR 1198: Optimizer: Fix CCP in presence of matrix constants.
   - #1199: Optimizer: Fix CCP: don't propagate spec constants.
   - #1203: Optimizer: Fix common uniform elim bug introduced by refactoring.
   - #1210: Optimizer: Aggressive dead code elimination: Fix 'break' identification.
   - #1212: Optimizer: Aggressive dead code elimination: Was skipping too many instructions.
   - #1214: Optimizer: Aggressive dead code elimination: Fix infinite loop.
   - #1228: Optimizer: Fix CCP: Handling of varying Phi nodes; was resulting in infinite loop.
   - #1245: Optimizer: Dead branch elimination: Avoid a null pointer dereference.
   - #1250: Optimizer: Dead branch elimination: Avoid spuriously reporting a change.

v2017.3 2018-01-12
 - General:
   - Support DebugInfo extended instruction set, targeted at OpenCL environments.
     See the SPIR-V Registry.
   - Generate a SPIRV-Tools.pc file for pkg-config.
 - Optimizer:
   - Progress for legalization of code generated from HLSL (issue #1118):
     - Add --legalize-hlsl option to run transforms used to transform intermediate
       code generated by HLSL to SPIR-V for Vulkan compilers.  Those compilers
       normally run these transforms automatically.  This option is used for developing
       those transforms.
     - Add Private-to-Function variable conversion for modules with logical
       addressing.
   - Add --ccp: SSA Conditional Constant Propagation (CCP)
   - Add --print-all to show disassembly for each optimization pass.
   - Internal: Add loop descriptors and post-order tree iterator.
   - Generalized dead branch elimination
   - Aggressive dead code elimination (ADCE) now removes dead functions and
     module-scope variables.
   - Vector extract/insert elimination now optimizes through some cases of
     VectorShuffle, and GLSL.std.450 Mix extended instruction.
 - Validator:
   - Add validation for GLSL.std.450 extended instruction set.
   - Check out of bounds composite accesses, where that's statically computable.
     Fixes #1112.
   - Check upper bits of literal numbers that aren't a multiple of 32-bits wide.
   - More validation of primitive instructions
   - Add optional "relaxed" checking logical addressing mode to permit some
     cases of pointer-to-pointer.  Contributes to HLSL legalization (issue #1118).
 - Fixes:
   #1100: Validator: Image operand Sample can be used with OpImageSparseFetch,
     OpImageSparseRead.
   #1108: Remove duplicates transform was incorrectly removing non-duplicate
     decorations.
   #1111: Optimizer's type manager could reference deleted memory.
   #1112: Fix decoration equality check, e.g. it is now symmetric.
   #1129: Validator now disallows Dim=SupbassData for OpImageSparseRead.
   #1143: Fix CCP: Was generating incorrect code for loops.
   #1153: Fix CCP crash.
   #1154: Optimizer's internal instruction-to-block mappings were sometimes
       inconsistent.
   #1159: Fix CCP infinite loop.
   #1168: Fix dead branch elimination intermittently generating incorrect code.
       Fixes https://github.com/KhronosGroup/glslang/issues/1205
   #1186: Fix validation of PackDouble2x32 and UnpackDouble2x32

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:
   - 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: 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.
 - General:
   - Automatically deploy built artifacts to GitHub Releases
   - Add a Linker (module combiner). Under development.
   - Add Android.mk for Android NDK builds.
   - Add the 'effcee' library as an optional dependency for use in tests.
     Eventually it will be a required dependency, once downstream projects have
     a chance to adjust.  Requires 're2' library.
   - Avoid static-duration variables of class type (with constructors).
   - Hack around bugs in gcc-4.8.1 template handling
   - Faster opcode lookup
 - Validator:
   - Recognize extensions listed on SPIR-V registry,
     through #25 SPV_AMD_shader_fragment_mask
   - Validator issues an info message when it sees an unrecognized extension.
   - Type check basic arithmetic operations
   - Type check carry/extended arithmetic operations
   - Type check vector arithmetic operations
   - Type check Relational and Logical instructions
   - Type check Bit instructions
   - Check type uniqueness rules
   - Check conversion instructions
   - Check image instructions
   - Check derivative instructions
   - Check OpVectorShuffle
   - Check OpBranchConditional
   - OpModuleProcessed is only allowed after debug names section and before annotations
     section.
   - Checks the right kind of return is called for each function (void or non-void).
   - Add option to relax type check when storing structs (--relax-store-struct)
 - Optimizer:
   - Refactoring internal representation of the module, including:
     - IRContext: owns a module and manages analyses
     - Instructions are owned by intrusive lists, and have unique IDs
     - BasicBlock owns its instruction list.
     - DefUseManager: change representation of uses, for faster processing
       on large modules.
   - Add high level recipes: -O, -Os, and -Oconfig
     Recipes for -O and -Os are under development.
   - Add eliminate-dead-function transform
   - Add strength reduction transform: For now, convert multiply by power of 2
     to a bit shift.
   - Add CFG cleanup transform
   - Add removal of dead module-scope variables
   - Add merge-return transform for modules without structured control flow
   - Add redundancy elimination within a basic block (local value numbering)
   - Extract-insert elimination:
     - Recognize the case where the first instruction in the sequence is an
       OpCompositeConstruct or OpConstantComposite
     - Handle some cases of nested structs
   - Dead branch elimination now can eliminate entire selection constructs
     when all arms are dead.
 - Compressing codec:
   - Updated algorithm to 1.01, 1.02, 1.03
   - Not built by default.  Use -DSPIRV_BUILD_COMPRESSION=ON to build.
   - Codec can be parameterized by a customized model.
 - Fixes:
   #728: Fix decoration of inlined functions
   #798: spirv-as should fail when given unrecognized long option
   #800: Inliner: Fix inlining function into header of multi-block loop
   #824: Eliminate-local-multi-store: Fix a crash
   #826: Elimiante-local-multi-store: Fix a crash
   #827: Fix crash when compact-ids transform runs before another transform.
   #834: Add Cmake option to build the compressing codec. Off by default.
   #911: Fix classification of Line and NoLine instructions

v2017.0 2017-09-01
 - Update README to describe that assembler, disassembler, and binary parser support
   are based on grammar files from the SPIRV-Headers repository.

v2016.7 2017-09-01
 - Add SPIR-V 1.2
 - OpenCL 2.2 support is now based on SPIR-V 1.2
 - Support AMD extensions in assembler, disassembler:
    SPV_AMD_gcn_shader
    SPV_AMD_shader_ballot
    SPV_AMD_shader_explicit_vertex_parameter
    SPV_AMD_shader_trinary_minmax
    SPV_AMD_gpu_shader_half_float
    SPV_AMD_texture_gather_bias_lod
    SPV_AMD_gpu_shader_int16
 - Optimizer: Add support for:
   - Inline all function calls in entry points.
   - Flatten decoration groups.  Fixes #602
   - Id compaction (minimize Id bound).  Fixes #624
   - Eliminate redundant composite insert followed by extract
   - Simplify access chains to local variables
   - Eliminate local variables with a single store, if possible
   - Eliminate local variables with a several stores, if possible
   - Eliminate loads and stores in same block to local variables
   - Eliminate redundant insert/extract to composite values
   - Aggressive dead instruction elimination
   - Eliminate dead branches
   - Merge blocks when the second can only be preceded by the first
   - Eliminate ommon uniform loads
 - Assembler: Add option to preserve numeric ids. Fixes #625
 - Add build target spirv-tools-vimsyntax to generate spvasm.vim, a SPIR-V
   assembly syntax file for Vim.
 - Version string: Allow overriding of wall clock timestamp with contents
   of environment variable SOURCE_DATE_EPOCH.
 - Validator implements relaxed rules for SPV_KHR_16bit_storage.
 - CMake installation rules use GNUInstallDirs.  For example, libraries
   will be installed into a lib64 directory if that's the norm for the
   current system.
 - Fixes:
   #500: Parameterize validator limit checks
   #508: Support compilation under CYGWIN
   #517: Fix validation when continue (or case) contstruct is also the head of a
     nested control construct.
   #551: If a merge block is reachable, it must be *strictly* dominated by its
     header.
   #548: Validator: Error when the reserved OpImageSparseSampleProj* opcodes
     are used.
   #611: spvtools::Optimizer was failing to save the module to the output
     binary vector when all passes succeded without changes.
   #629: The inline-entry-points-all optimization could generate invalidly
     structured code when the inlined function had early returns.
   #697: Optimizer's Instruction::ForEachInId method was skipping semantics-id
     and scope-id.
   #755: Inliner: Fix inlining of callee with single Return appearing before
     the end of the function.
   #776: Fix dead branch elimination in presence of complex but dead control
     flow.
   #781: SPV_KHR_variable_pointers allows duplicate pointer types
   #782: Inliner: Fix remapping of non-label forward references in callee
   #787: Inliner: Fix remapping of inlined entry block when called from
     single block loop.
   #790: Inliner: Fix remapping of inlined entry block when callee has
     multiple returns.

v2016.6 2016-12-13
 - Published the C++ interface for assembling, disassembling, validation, and
   optimization.
 - Support SPV_KHR_shader_draw_parameters in assembler, disassembler, parser.
 - Validator:
   - Add validator API accepting raw binary words
   - Increased coverage:
     - Checks "Data rules" in Universal Validation Rules, section 2.16.1
     - WIP: Universal Limits.
       - The minimum mandated upper bounds are checked.
       - TODO: Parameterize the validator to allow larger limits accepted by
         a more than minimally capable implementation.
   - OpSampledImage checks
   - OpConstantComposite checks
   - Id bound check
 - Disasssembler:
   - Generates friendly GLSL-based names for more builtin variables
   - Generates friendly names for numeric OpConstant values
   - Vendor tool info extracted from SPIR-V XML registry file.
 - Fixes issues:
   #429: Validator: Allow OpTypeForwardPointer and OpTypeStruct to reference
     undefined IDs
   #482: Validator: OpVariable initializer can be an ID of a module-scope variable

v2016.5 2016-09-16
 - Support SPV_KHR_shader_ballot in assembler, disassembler, parser.
 - Disassembler: Generate friendly names for built-in variables.
 - Partial fixes:
   #359: Add Emacs helper for automatically diassembling/assembling a SPIR-V
     binary on file load/save.
 - Fixes:
   #414: Validator: Allow OpUndef for composite constants
   #415: Validator: Phi can use its own value in some cases.

v2016.4 2016-09-01
 - Relicensed under Apache 2.0
 - Add optimization passes (in API and spirv-opt command)
   - Fold spec constants defined with OpSpecConstantOp and
       OpSpecConstantComposite to normal constants with fixed value(s).
 - Fixes issues:
   #318: Relicensed under Apache 2.0

v2016.3 2016-08-24
 - Add target environment enums for OpenCL 2.1, OpenCL 2.2,
   OpenGL 4.0, OpenGL 4.1, OpenGL 4.2, OpenGL 4.3, OpenGL 4.5.
 - Add spirv-cfg, an experimental tool to dump the control flow graph
   as a GraphiViz "dot" graph
 - Add optimization pass: Eliminate dead constants.
 - Add spirv-lesspipe.sh filter utility
 - Fixes issues:
   #288: Check def-use dominance rules for OpPhi (variable,parent) operands
   #339: Allow OpUndef in types-constants-global-vars section, as required
     by SPIR-V 1.0 Rev7, 1.1 Rev 3.
   #340: Avoid race on mkdir during build
   #365: Relax PointSize, ClipDistance, CullDistance capability check in all
     environments not just Vulkan 1.0.

v2016.2 2016-08-05
 - 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
 - Allow INotEqual as operation for OpSpecConstantOp
 - Fixes bugs:
   #270: validator: crash when continue construct is unreachable
   #279: validator: infinite loop when analyzing some degenerate control
     flow graphs
   #286: validator: don't incorrectly generate def-use error for
         (variable,parent) parameters to OpPhi
   #290: disassembler: never generate bare % for an identifier
   #295: validator: def-use dominance check should ignore unreachable uses
   #276: validator: allow unreachable continue constructs
   #297: validator: allow an unreachable block to branch to a reachable
         merge block

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
