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: