Squashed 'third_party/SPIRV-Tools/' changes from 9559cdbdf..65e362b7a
65e362b7a AggressiveDCEPass: Set modified to true when appending to to_kill_ (#2825)
d67130cac Replace SwizzleInvocationsAMD extended instruction. (#2823)
ad71c057c Replace SwizzleInvocationsMaskedAMD extended instruction. (#2822)
4ae9b7165 Fix gn check (#2821)
35d98be3b Amd ext to khr (#2811)
5a581e738 spvtools::Optimizer - don't assume original_binary and optimized_binary are aliased (#2799)
73422a0a5 Check feature mgr in context consistency check (#2818)
15fc19d09 Refactor instruction folders (#2815)
1eb89172a Add missing files to BUILD.gn (#2809)
8336d1925 Extend reducer to remove relaxed precision decorations (#2797)
b00ef0d26 Handle Id overflow in private-to-local (#2807)
aef8f92b2 Even more id overflow in sroa (#2806)
c5d1dab99 Add name for variables in desc sroa (#2805)
0cbdc7a2c Remove unimplemented method declaration (#2804)
bc62722b8 Handle overflow in wrap-opkill (#2801)
9cd07272a More handle overflow in sroa (#2800)
06407250a Instrument: Add support for Buffer Device Address extension (#2792)
7b4e5bd5e Update remquo validation to match the OpenCL Extended Instruction Set Specification (#2791)
dac9210dc Use ascii code based characters (#2796)
ff872dc6b Change the way to include header (#2795)
bbd80462f Fix validation of constant matrices (#2794)
60043edfa Replace OpKill With function call. (#2790)
f701237f2 Remove useless semi-colons (#2789)
95386f9e4 Instrument: Fix version 2 output record write for tess eval shaders. (#2782)
22ce39c8e Start SPIRV-Tools v2019.5
d65513e92 Finalize SPIRV-Tools v2019.4
4b64beb1a Add descriptor array scalar replacement (#2742)
c26c2615f Update CHANGES
29af42df1 Add SPV_EXT_physical_storage_buffer to opt whitelists (#2779)
b029d3697 Handle RelaxedPrecision in SROA (#2788)
370375d23 Add -fextra-semi to Clang builds (#2787)
698b56a8f Add 'copy object' transformation (#2766)
4f14b4c8c fuzz: change output extension and fix usage string (#2778)
0b70972a2 Remove extra ';' after member function definition. (#2780)
5ada98d0b Update WebGPU validation rules of OpAtomic*s (#2777)
3726b500b Treat access chain indexes as signed in SROA (#2776)
31590104e Add pass to inject code for robust-buffer-access semantics (#2771)
4a28259cc Update OpMemoryBarriers rules for WebGPU (#2775)
7621034aa Add opt test fixture method SinglePassRunAndFail (#2770)
ac3d13105 Element type is const for analysis::Vector,Matrix,RuntimeArray (#2765)
49797609b Protect against out-of-bounds references when folding OpCompositeExtract (#2774)
7fd2365b0 Don't move debug or decorations when folding (#2772)
7bafeda28 Update OpControlBarriers rules for WebGPU (#2769)
git-subtree-dir: third_party/SPIRV-Tools
git-subtree-split: 65e362b7ae2acb8aa5bd2ad516fb793961e673ee
diff --git a/CHANGES b/CHANGES
index 11ecac5..57afc63 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,7 +1,74 @@
Revision history for SPIRV-Tools
-v2019.4-dev 2019-05-15
- - Start v2019.4-dev
+v2019.5-dev 2019-08-08
+ - Start v2019.5-dev
+
+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: