1fd4e5da5Sopenharmony_ciRevision history for SPIRV-Tools 2fd4e5da5Sopenharmony_ci 3fd4e5da5Sopenharmony_civ2023.6 2023-12-18 4fd4e5da5Sopenharmony_ci - General 5fd4e5da5Sopenharmony_ci - update_build_version.py produce deterministic header. (#5426) 6fd4e5da5Sopenharmony_ci - Support missing git in update_build_version.py (#5473) 7fd4e5da5Sopenharmony_ci - Optimizer 8fd4e5da5Sopenharmony_ci - Add ComputeDerivativeGroup*NV capabilities to trim capabilities pass. (#5430) 9fd4e5da5Sopenharmony_ci - Do not crash when tryingto fold unsupported spec constant (#5496) 10fd4e5da5Sopenharmony_ci - instrument: Fix handling of gl_InvocationID (#5493) 11fd4e5da5Sopenharmony_ci - Fix nullptr argument in MarkInsertChain (#5465) 12fd4e5da5Sopenharmony_ci - opt: support 64-bit OpAccessChain index in FixStorageClass (#5446) 13fd4e5da5Sopenharmony_ci - opt: add StorageImageReadWithoutFormat to cap trim (#5475) 14fd4e5da5Sopenharmony_ci - opt: add PhysicalStorageBufferAddresses to trim (#5476) 15fd4e5da5Sopenharmony_ci - Fix array size calculation (#5463 16fd4e5da5Sopenharmony_ci - Validator 17fd4e5da5Sopenharmony_ci - spirv-val: Loosen restriction on base type of DebugTypePointer and DebugTypeQualifier (#5479) 18fd4e5da5Sopenharmony_ci - spirv-val: Add WorkgroupMemoryExplicitLayoutKHR check for Block (#5461) 19fd4e5da5Sopenharmony_ci 20fd4e5da5Sopenharmony_civ2023.5 2023-10-15 21fd4e5da5Sopenharmony_ci - General 22fd4e5da5Sopenharmony_ci - Support 2 Intel extensions (#5357) 23fd4e5da5Sopenharmony_ci - SPV_QCOM_image_processing support (#5223) 24fd4e5da5Sopenharmony_ci - Optimizer 25fd4e5da5Sopenharmony_ci - opt: fix StorageInputOutput16 trimming. (#5359) 26fd4e5da5Sopenharmony_ci - opt: add StoragePushConstant16 to trim pass (#5366) 27fd4e5da5Sopenharmony_ci - opt: enable StorageUniform16 (#5371) 28fd4e5da5Sopenharmony_ci - opt: add bitmask support for capability trimming (#5372) 29fd4e5da5Sopenharmony_ci - opt: Add SwitchDescriptorSetPass (#5375) 30fd4e5da5Sopenharmony_ci - opt: add FragmentShader*InterlockEXT to capability trim pass (#5390) 31fd4e5da5Sopenharmony_ci - opt: add Int64 capability to trim pass (#5398) 32fd4e5da5Sopenharmony_ci - opt: add Float64 capability to trim pass (#5428) 33fd4e5da5Sopenharmony_ci - opt: add raytracing/rayquery to trim pass (#5397) 34fd4e5da5Sopenharmony_ci - opt: add ImageMSArray capability to trim pass. (#5395) 35fd4e5da5Sopenharmony_ci - Add SPV_KHR_physical_storage_buffer to allowlists (#5402) 36fd4e5da5Sopenharmony_ci - Add SPV_EXT_fragment_shader_interlock to allow lists (#5393) 37fd4e5da5Sopenharmony_ci - Make sure that fragment shader interlock instructions are not removed by DCE (#5400) 38fd4e5da5Sopenharmony_ci - instrument: Use Import linkage for instrumentation functions (#5355) 39fd4e5da5Sopenharmony_ci - Add a new legalization pass to dedupe invocation interlock instructions (#5409) 40fd4e5da5Sopenharmony_ci - instrument: Ensure linking works even of nothing is changed (#5419) 41fd4e5da5Sopenharmony_ci - Validator 42fd4e5da5Sopenharmony_ci - Move token version/cap/ext checks from parsing to validation (#5370) 43fd4e5da5Sopenharmony_ci - val: re-add ImageMSArray validation (#5394) 44fd4e5da5Sopenharmony_ci - Linker 45fd4e5da5Sopenharmony_ci - linker: Add --use-highest-version option 46fd4e5da5Sopenharmony_ci 47fd4e5da5Sopenharmony_civ2023.4 2023-07-17 48fd4e5da5Sopenharmony_ci - General 49fd4e5da5Sopenharmony_ci - Set cmake_policy CMP0128 (#5341) 50fd4e5da5Sopenharmony_ci - Add python3 requirement for the script (#5326) 51fd4e5da5Sopenharmony_ci - Add support for LiteralFloat type (#5323) 52fd4e5da5Sopenharmony_ci - SPV_KHR_cooperative_matrix (#5286) 53fd4e5da5Sopenharmony_ci - Allow OpTypeBool in UniformConstant (#5237) 54fd4e5da5Sopenharmony_ci - Allow physical storage buffer pointer in IO (#5251) 55fd4e5da5Sopenharmony_ci - Remove const zero image operands (#5232) 56fd4e5da5Sopenharmony_ci - Optimizer 57fd4e5da5Sopenharmony_ci - Enable vector constant folding (#4913) (#5272) 58fd4e5da5Sopenharmony_ci - Fold negation of integer vectors (#5269) 59fd4e5da5Sopenharmony_ci - Add folding rule for OpTranspose (#5241) 60fd4e5da5Sopenharmony_ci - Add SPV_NV_bindless_texture to spirv optimizations (#5231) 61fd4e5da5Sopenharmony_ci - Fix incorrect half float conversion (#5349) 62fd4e5da5Sopenharmony_ci - Add SPV_EXT_shader_atomic_float_add to allow lists (#5348) 63fd4e5da5Sopenharmony_ci - Instrument 64fd4e5da5Sopenharmony_ci - instrument: Cast gl_VertexIndex and InstanceIndex to uint (#5319) 65fd4e5da5Sopenharmony_ci - instrument: Fix buffer address length calculations (#5257) 66fd4e5da5Sopenharmony_ci - instrument: Reduce number of inst_bindless_stream_write_6 calls (#5327) 67fd4e5da5Sopenharmony_ci - Validator 68fd4e5da5Sopenharmony_ci - Validate GroupNonUniform instructions (#5296) 69fd4e5da5Sopenharmony_ci - spirv-val: Label SPV_KHR_cooperative_matrix VUID (#5301) 70fd4e5da5Sopenharmony_ci - Validate layouts for PhysicalStorageBuffer pointers (#5291) 71fd4e5da5Sopenharmony_ci - spirv-val: Remove VUID from 1.3.251 spec (#5244) 72fd4e5da5Sopenharmony_ci - Diff 73fd4e5da5Sopenharmony_ci - spirv-diff: Update test expectations (#5264) 74fd4e5da5Sopenharmony_ci - spirv-diff: Leave undefined ids unpaired. (#5262) 75fd4e5da5Sopenharmony_ci - spirv-diff: Properly match SPV_KHR_ray_query types. (#5259) 76fd4e5da5Sopenharmony_ci - diff: Don't give up entry point matching too early. (#5224) 77fd4e5da5Sopenharmony_ci 78fd4e5da5Sopenharmony_civ2023.3 2023-05-15 79fd4e5da5Sopenharmony_ci - General 80fd4e5da5Sopenharmony_ci - Update spirv_headers to include SPV_KHR_ray_tracing_position_fetch (#5205) 81fd4e5da5Sopenharmony_ci - spirv-tools: Add support for QNX (#5211) 82fd4e5da5Sopenharmony_ci - build: set std=c++17 for BUILD.gn (#5162) 83fd4e5da5Sopenharmony_ci - Optimizer 84fd4e5da5Sopenharmony_ci - Run ADCE when the printf extension is used. (#5215) 85fd4e5da5Sopenharmony_ci - Don't convert struct members to half (#5201) 86fd4e5da5Sopenharmony_ci - Apply scalar replacement on vars with Pointer decorations (#5208) 87fd4e5da5Sopenharmony_ci - opt: Fix null deref in OpMatrixTimesVector and OpVectorTimesMatrix (#5199) 88fd4e5da5Sopenharmony_ci - instrument: Add set and binding to bindless error records (#5204) 89fd4e5da5Sopenharmony_ci - instrument: Change descriptor state storage format (#5178) 90fd4e5da5Sopenharmony_ci - Fix LICMPass (#5087) 91fd4e5da5Sopenharmony_ci - Add Vulkan memory model to allow lists (#5173) 92fd4e5da5Sopenharmony_ci - Do not remove control barrier after spv1.3 (#5174) 93fd4e5da5Sopenharmony_ci - Validator 94fd4e5da5Sopenharmony_ci - spirv-val: Label Interface Location/Component VUIDs (#5221) 95fd4e5da5Sopenharmony_ci - Add support for SPV_EXT_shader_tile_image (#5188) 96fd4e5da5Sopenharmony_ci - Fix vector OpConstantComposite type validation (#5191) 97fd4e5da5Sopenharmony_ci - spirv-val: Label new Vulkan VUID 07951 (#5154) 98fd4e5da5Sopenharmony_ci - Fuzz 99fd4e5da5Sopenharmony_ci - Do not define GOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE if it is already defined. (#5200) 100fd4e5da5Sopenharmony_ci 101fd4e5da5Sopenharmony_civ2023.2 2023-03-10 102fd4e5da5Sopenharmony_ci - General 103fd4e5da5Sopenharmony_ci - build: move from c++11 to c++17 (#4983) 104fd4e5da5Sopenharmony_ci - tools: refactorize tools flags parsing. (#5111) 105fd4e5da5Sopenharmony_ci - Add C interface for Optimizer (#5030) 106fd4e5da5Sopenharmony_ci - libspirv.cpp: adds c++ api for spvBinaryParse (#5109) 107fd4e5da5Sopenharmony_ci - build: change the way we set cxx version for bazel. (#5114) 108fd4e5da5Sopenharmony_ci - Optimizer 109fd4e5da5Sopenharmony_ci - Fix null pointer in FoldInsertWithConstants. (#5093) 110fd4e5da5Sopenharmony_ci - Fix removal of dependent non-semantic instructions (#5122) 111fd4e5da5Sopenharmony_ci - Remove duplicate lists of constant and type opcodes (#5106) 112fd4e5da5Sopenharmony_ci - opt: fix spirv ABI on Linux again. (#5113) 113fd4e5da5Sopenharmony_ci - Validator 114fd4e5da5Sopenharmony_ci - Validate decoration of structs with RuntimeArray (#5094) 115fd4e5da5Sopenharmony_ci - Validate operand type before operating on it (#5092) 116fd4e5da5Sopenharmony_ci - spirv-val: Conditional Branch without an exit is invalid in loop header (#5069) 117fd4e5da5Sopenharmony_ci - spirv-val: Initial SPV_EXT_mesh_shader builtins (#5080) 118fd4e5da5Sopenharmony_ci 119fd4e5da5Sopenharmony_civ2023.1 2023-01-17 120fd4e5da5Sopenharmony_ci - General 121fd4e5da5Sopenharmony_ci - Renamed "master" to "main" (issue#5051) 122fd4e5da5Sopenharmony_ci - Validate version 5 of clspv reflection (#5050) 123fd4e5da5Sopenharmony_ci - Remove testing support for VS2015 (#5027) 124fd4e5da5Sopenharmony_ci - Fix undef behaviour in hex float parsing (#5025) 125fd4e5da5Sopenharmony_ci - Require C++11 *or later* (#5020) 126fd4e5da5Sopenharmony_ci - Instrument 127fd4e5da5Sopenharmony_ci - Instrument: Fix bindless checking for BufferDeviceAddress (#5049) 128fd4e5da5Sopenharmony_ci - Optimizer 129fd4e5da5Sopenharmony_ci - Optimize allocation of spvtools::opt::Instruction::operands_ (#5024) 130fd4e5da5Sopenharmony_ci - spirv-opt: Fix OpCompositeInsert with Null Constant (#5008) 131fd4e5da5Sopenharmony_ci - spirv-opt: Handle null CompositeInsert (#4998) 132fd4e5da5Sopenharmony_ci - Add option to ADCE to remove output variables from interface. (#4994) 133fd4e5da5Sopenharmony_ci - Add support for tesc, tese and geom to EliminateDead*Components (#4990) 134fd4e5da5Sopenharmony_ci - Add pass to eliminate dead output components (#4982) 135fd4e5da5Sopenharmony_ci - spirv-opt: Add const folding for CompositeInsert (#4943) 136fd4e5da5Sopenharmony_ci - Add passes to eliminate dead output stores (#4970) 137fd4e5da5Sopenharmony_ci - Prevent eliminating case constructs in block merging (#4976) 138fd4e5da5Sopenharmony_ci - Validator 139fd4e5da5Sopenharmony_ci - Fix layout validation (#5015) 140fd4e5da5Sopenharmony_ci - Fix use of invalid analysis (#5013) 141fd4e5da5Sopenharmony_ci - Fix infinite loop in validator (#5006) 142fd4e5da5Sopenharmony_ci - Add validation support for SPV_NV_shader_invocation_reorder. (#4979) 143fd4e5da5Sopenharmony_ci - Only validate full layout in Vulkan environments (#4972) 144fd4e5da5Sopenharmony_ci - spirv-val: Label new Vulkan OpPtrAccessChain VUs (#4975) 145fd4e5da5Sopenharmony_ci - spirv-val: Add OpPtrAccessChain Base checks (#4965) 146fd4e5da5Sopenharmony_ci 147fd4e5da5Sopenharmony_ci 148fd4e5da5Sopenharmony_civ2022.4 2022-10-12 149fd4e5da5Sopenharmony_ci - General 150fd4e5da5Sopenharmony_ci - Support Narrow Types in BitCast Folding Rule (#4941) 151fd4e5da5Sopenharmony_ci - spirv-diff: Allow no SpecId (#4904) 152fd4e5da5Sopenharmony_ci - build: cmake: Add support for GNU/Hurd (#4895) 153fd4e5da5Sopenharmony_ci - Implement tool changes for SPV_EXT_mesh_shader. (#4915) 154fd4e5da5Sopenharmony_ci - Validator 155fd4e5da5Sopenharmony_ci - spirv-val: Add SPV_ARM_core_builtins validation (#4958) 156fd4e5da5Sopenharmony_ci - spirv-val: Add an option to use friendly names or not (#4951) 157fd4e5da5Sopenharmony_ci - spirv-val: Consistently quote ids in messages (#4950) 158fd4e5da5Sopenharmony_ci - spirv-val: Add initial SPV_EXT_mesh_shader validation (#4924) 159fd4e5da5Sopenharmony_ci - spirv-val: Make it legal to use arrays of ray queries (#4938) 160fd4e5da5Sopenharmony_ci - spirv-val: Better message for using OpTypeBool in input/output (#4901) 161fd4e5da5Sopenharmony_ci - spirv-val: Add SPV_KHR_ray_tracing storage class (#4868) 162fd4e5da5Sopenharmony_ci - Optimizer 163fd4e5da5Sopenharmony_ci - spirv-opt: Fix stacked CompositeExtract constant folds (#4932) 164fd4e5da5Sopenharmony_ci - Improve time to build dominators (#4916) 165fd4e5da5Sopenharmony_ci - Fix ADCE to mark scope and inlined_at of line instructions as live. (#4910) 166fd4e5da5Sopenharmony_ci - Improve algorithm to reorder blocks in a function (#4911) 167fd4e5da5Sopenharmony_ci - Add structs to eliminate dead input components (#4894) 168fd4e5da5Sopenharmony_ci - spirv-opt: fix copy-propagate-arrays index opti on structs. (#4891) 169fd4e5da5Sopenharmony_ci - Fix ADCE to not eliminate top level DebugInfo instructions (#4889) 170fd4e5da5Sopenharmony_ci - Fix array copy propagation (#4890) 171fd4e5da5Sopenharmony_ci 172fd4e5da5Sopenharmony_civ2022.3 2022-08-08 173fd4e5da5Sopenharmony_ci - General 174fd4e5da5Sopenharmony_ci - Add SPV_KHR_fragment_shader_barycentric support (#4805) 175fd4e5da5Sopenharmony_ci - Add support for SPV_KHR_subgroup_rotate (#4786) 176fd4e5da5Sopenharmony_ci - use exec_tools instead of tools for better RBE compatibility (#4837) 177fd4e5da5Sopenharmony_ci - Write binary files to stdout in binary on windows. (#4834) 178fd4e5da5Sopenharmony_ci - Allow spirv-opt print-all to show pretty IDs (#4888) 179fd4e5da5Sopenharmony_ci - Validator 180fd4e5da5Sopenharmony_ci - spirv-val: Add PerVertexKHR (#4807) 181fd4e5da5Sopenharmony_ci - spirv-opt : Add FixFuncCallArgumentsPass (#4775) 182fd4e5da5Sopenharmony_ci - spirv-val: Add CullMaskKHR support (#4792) 183fd4e5da5Sopenharmony_ci - Require ColMajor or RowMajor for matrices (#4878) 184fd4e5da5Sopenharmony_ci - spirv-val: Add SPV_KHR_ray_query (#4848) 185fd4e5da5Sopenharmony_ci - spirv-val: Add SPV_KHR_ray_tracing instructions (#4871) 186fd4e5da5Sopenharmony_ci - Implement SPV_NV_bindless_texture related changes (#4847) 187fd4e5da5Sopenharmony_ci - spirv-val: Add OpConvertUToAccelerationStructureKHR (#4838) 188fd4e5da5Sopenharmony_ci - spirv-val: Add support for SPV_AMD_shader_early_and_late_fragment_tests (#4812) 189fd4e5da5Sopenharmony_ci - Optimizer 190fd4e5da5Sopenharmony_ci - Fold multiply and subtraction into FMA with negation (#4808) 191fd4e5da5Sopenharmony_ci - Add more folding for composite instructions (#4802) 192fd4e5da5Sopenharmony_ci - spirv-opt: add pass for interface variable scalar replacement (#4779) 193fd4e5da5Sopenharmony_ci - Don't try to unroll loop with step count 0. (#4769) 194fd4e5da5Sopenharmony_ci - spirv-opt: SPV_NV_bindless_texture related changes (#4870) 195fd4e5da5Sopenharmony_ci - Linker 196fd4e5da5Sopenharmony_ci - linker: Recalculate interface variables (#4784) 197fd4e5da5Sopenharmony_ci 198fd4e5da5Sopenharmony_civ2022.2 2022-04-07 199fd4e5da5Sopenharmony_ci - General 200fd4e5da5Sopenharmony_ci - Add OpModuleProcessed to debug opcode (#4694) 201fd4e5da5Sopenharmony_ci - Optimizer 202fd4e5da5Sopenharmony_ci - Complete handling of RayQueryKHR type (#4690) 203fd4e5da5Sopenharmony_ci - Have scalar replacement use undef instead of null (#4691) 204fd4e5da5Sopenharmony_ci - Optimize Instruction::Instruction (#4705) 205fd4e5da5Sopenharmony_ci - Handle propagation of arrays with decorations (#4717) 206fd4e5da5Sopenharmony_ci - spirv-opt: Add OpExecutionModeId support (#4719) 207fd4e5da5Sopenharmony_ci - Optimize Type::HashValue (#4707) 208fd4e5da5Sopenharmony_ci - Optimize DefUseManager allocations (#4709) 209fd4e5da5Sopenharmony_ci - Add pass to remove DontInline function control (#4747) 210fd4e5da5Sopenharmony_ci - Better handling of 0xFFFFFFFF when folding vector shuffle (#4743) 211fd4e5da5Sopenharmony_ci - Reset the id bound on the module in compact ids (#4744) 212fd4e5da5Sopenharmony_ci - spirv-opt: (WIP) Eliminate Dead Input Component Pass (#4720) 213fd4e5da5Sopenharmony_ci - Support SPV_KHR_uniform_group_instructions (#4734) 214fd4e5da5Sopenharmony_ci - Handle shaders without execution model in spread-volatile-semantics (#4766) 215fd4e5da5Sopenharmony_ci - Validator 216fd4e5da5Sopenharmony_ci - Fix handling of Nontemporal image operand (#4692) 217fd4e5da5Sopenharmony_ci - [spirv-val] Allow 0 Component Count for DebugTypeArray for Shader (#4706) 218fd4e5da5Sopenharmony_ci - spirv-val: Validate DebugTypeMatrix (#4732) 219fd4e5da5Sopenharmony_ci - spirv-val: Label Vulkan VUID 04734 (#4739) 220fd4e5da5Sopenharmony_ci - spirv-val: Label VUID 06491 (#4745) 221fd4e5da5Sopenharmony_ci - spirv-val: Disallow array of push constants (#4742) 222fd4e5da5Sopenharmony_ci - spirv-val: Label Vulkan RuntimeArray VUID (#4749) 223fd4e5da5Sopenharmony_ci - spirv-val: Add Vulkan Image VUID 06214 (#4750) 224fd4e5da5Sopenharmony_ci - spirv-val: Add Vulkan Dref not allowed 3D dim VUID (#4751) 225fd4e5da5Sopenharmony_ci - spirv-val: Label and add test for PSB Aligned (#4756) 226fd4e5da5Sopenharmony_ci - spirv-val: Add Vulkan 32-bit bit op Base (#4758) 227fd4e5da5Sopenharmony_ci - spirv-val: Add more Vulkan VUID labels (#4764) 228fd4e5da5Sopenharmony_ci - Diff 229fd4e5da5Sopenharmony_ci - Introduce spirv-diff (#4611) 230fd4e5da5Sopenharmony_ci - Stabilize the output of spirv-diff (#4698) 231fd4e5da5Sopenharmony_ci - spirv-diff: Handle OpSpecConstant array sizes (#4700) 232fd4e5da5Sopenharmony_ci - spirv-diff: Match OpSpecConstantComposite correctly (#4704) 233fd4e5da5Sopenharmony_ci - spirv-diff: Use GetSingleWord*Operand (#4768) 234fd4e5da5Sopenharmony_ci - spirv-diff: Basic support for OpTypeForwardPointer (#4761) 235fd4e5da5Sopenharmony_ci - spirv-diff: Fix OpTypeFunction matching w.r.t operand count (#4771) 236fd4e5da5Sopenharmony_ci 237fd4e5da5Sopenharmony_civ2022.1 2022-01-26 238fd4e5da5Sopenharmony_ci - General 239fd4e5da5Sopenharmony_ci - Add SPIR-V 1.6 support to wasm build (#4674) 240fd4e5da5Sopenharmony_ci - Improvements to disassembly within PassManager (#4677) 241fd4e5da5Sopenharmony_ci - Basic support for SPIR-V 1.6 (#4663) 242fd4e5da5Sopenharmony_ci - reflect debug (#4662) 243fd4e5da5Sopenharmony_ci - Fix endianness of string literals (#4622) 244fd4e5da5Sopenharmony_ci - Optimizer 245fd4e5da5Sopenharmony_ci - spirv-opt: add pass to Spread Volatile semantics (#4667) 246fd4e5da5Sopenharmony_ci - Fix constant propagation and folding of FClamp instructions (#4651) 247fd4e5da5Sopenharmony_ci - Manually fold floating point division by zero (#4637) 248fd4e5da5Sopenharmony_ci - Allow ADCE to remove dead inputs (#4629) 249fd4e5da5Sopenharmony_ci - Linker 250fd4e5da5Sopenharmony_ci - Linker improvements (#4679) 251fd4e5da5Sopenharmony_ci * test/linker: Code factorisation and small tweaks 252fd4e5da5Sopenharmony_ci * linker: Do not fail when going over limits 253fd4e5da5Sopenharmony_ci - Validator 254fd4e5da5Sopenharmony_ci - val: interface struct with builtins must be Block (#4665) 255fd4e5da5Sopenharmony_ci - Fuzzer 256fd4e5da5Sopenharmony_ci - Avoid id bound errors during opt fuzzing (#4658) 257fd4e5da5Sopenharmony_ci - Avoid uninitialised read when parsing hex float (#4646) 258fd4e5da5Sopenharmony_ci 259fd4e5da5Sopenharmony_civ2021.4 2021-11-11 260fd4e5da5Sopenharmony_ci - General 261fd4e5da5Sopenharmony_ci - Add a WebAssembly build (#3752) 262fd4e5da5Sopenharmony_ci - Make cxx exceptions controllable (#4591) 263fd4e5da5Sopenharmony_ci - Validator 264fd4e5da5Sopenharmony_ci - Improve decoration validation (#4490) 265fd4e5da5Sopenharmony_ci - Optimizer 266fd4e5da5Sopenharmony_ci - Add spirv-opt pass to replace descriptor accesses based on variable indices (#4574) 267fd4e5da5Sopenharmony_ci - Do not fold snegate feeding sdiv (#4600) 268fd4e5da5Sopenharmony_ci - Handle overflowing id in merge return (#4606) 269fd4e5da5Sopenharmony_ci - Fuzzer 270fd4e5da5Sopenharmony_ci - Add libFuzzer target for spirv-fuzz (#4434) 271fd4e5da5Sopenharmony_ci - Linter 272fd4e5da5Sopenharmony_ci 273fd4e5da5Sopenharmony_civ2021.3 2021-08-24 274fd4e5da5Sopenharmony_ci - General 275fd4e5da5Sopenharmony_ci - Initial support for SPV_KHR_integer_dot_product (#4327) 276fd4e5da5Sopenharmony_ci - Add non-semantic vulkan extended instruction set (#4362) 277fd4e5da5Sopenharmony_ci - Add common enum for debug info instructions from either opencl or vulkan (#4377) 278fd4e5da5Sopenharmony_ci - Validator 279fd4e5da5Sopenharmony_ci - Add validation for SPV_EXT_shader_atomic_float16_add (#4325) 280fd4e5da5Sopenharmony_ci - Disallow loading a runtime-sized array (#4473) 281fd4e5da5Sopenharmony_ci - spirv-val: Validate vulkan debug info similarly to opencl debug info (#4466) 282fd4e5da5Sopenharmony_ci - Optimizer 283fd4e5da5Sopenharmony_ci - spirv-opt: support SPV_EXT_shader_image_int64 (#4379) 284fd4e5da5Sopenharmony_ci - spirv-opt: Add dataflow analysis framework (#4402) 285fd4e5da5Sopenharmony_ci - Add control dependence analysis to opt (#4380) 286fd4e5da5Sopenharmony_ci - Add spirv-opt convert-to-sampled-image pass (#4340) 287fd4e5da5Sopenharmony_ci - spirv-opt: Add handling of vulkan debug info to DebugInfoManager (#4423) 288fd4e5da5Sopenharmony_ci - Fuzz 289fd4e5da5Sopenharmony_ci - spirv-fuzz: support AtomicLoad (#4330) 290fd4e5da5Sopenharmony_ci - spirv-fuzz: Support AtomicStore (#4440) 291fd4e5da5Sopenharmony_ci - spirv-fuzz: TransformationWrapVectorSynonym that rewrites scalar operations using vectors (#4376) 292fd4e5da5Sopenharmony_ci - spirv-fuzz: Add minimal SPIR-V example to test shaders (#4415) 293fd4e5da5Sopenharmony_ci - spirv-fuzz: support building using gn (#4365) 294fd4e5da5Sopenharmony_ci - Linter 295fd4e5da5Sopenharmony_ci - Add new target for spirv-lint (#4446) 296fd4e5da5Sopenharmony_ci - spirv-lint: add basic CLI argument handling (#4478) 297fd4e5da5Sopenharmony_ci - Add divergence analysis to linter (#4465) 298fd4e5da5Sopenharmony_ci 299fd4e5da5Sopenharmony_civ2021.2 2021-06-18 300fd4e5da5Sopenharmony_ci - General 301fd4e5da5Sopenharmony_ci - Support SPV_KHR_subgroup_uniform_control_flow (#4318) 302fd4e5da5Sopenharmony_ci - Support Intel extensions for fixed point and hls-float (#4321) 303fd4e5da5Sopenharmony_ci - Fix crash when optimizing shaders with DebugPrintf (#4280) 304fd4e5da5Sopenharmony_ci 305fd4e5da5Sopenharmony_ci - Validator 306fd4e5da5Sopenharmony_ci - Support Vulkan Storage Class for Execution Model (#4212) 307fd4e5da5Sopenharmony_ci 308fd4e5da5Sopenharmony_ci - Optimizer 309fd4e5da5Sopenharmony_ci - Handle SPV_KHR_vulkan_memory_model in dead-code elimination (#4320) 310fd4e5da5Sopenharmony_ci - Support folding OpBitcast with numeric constants (#4247) 311fd4e5da5Sopenharmony_ci 312fd4e5da5Sopenharmony_ci - Fuzz 313fd4e5da5Sopenharmony_ci - Add tests for MaybeGet* functions in fuzzerutil (#4284) 314fd4e5da5Sopenharmony_ci - Fix OutlineFunction in presence of unreachable blocks (#4308) 315fd4e5da5Sopenharmony_ci - Fix def-use update in PermutePhiOperands (#4309) 316fd4e5da5Sopenharmony_ci - Swap positions of two functions in a module (#4236) 317fd4e5da5Sopenharmony_ci 318fd4e5da5Sopenharmony_civ2021.1 2021-04-19 319fd4e5da5Sopenharmony_ci - General 320fd4e5da5Sopenharmony_ci - Support SPV_KHR_linkonce_odr, SPV_KHR_expect_assume (#4161) 321fd4e5da5Sopenharmony_ci - Fixes for the vscode language server extension (#4150) 322fd4e5da5Sopenharmony_ci - Validator 323fd4e5da5Sopenharmony_ci - Add validation for SPV_EXT_shader_atomic_float_min_max (#4105) 324fd4e5da5Sopenharmony_ci - Add Vulkan Execution Scope checks (#4183) 325fd4e5da5Sopenharmony_ci - Vulkan 64-bit OpAtomicStore check (#4163) 326fd4e5da5Sopenharmony_ci - Optimizer 327fd4e5da5Sopenharmony_ci - Add interpolate legalization pass (#4220) 328fd4e5da5Sopenharmony_ci - Fuzz 329fd4e5da5Sopenharmony_ci - Various performance optimizations 330fd4e5da5Sopenharmony_ci - Do not add too many dead blocks (#4217) 331fd4e5da5Sopenharmony_ci - Add WGSL compatibility flag to context (#4193) 332fd4e5da5Sopenharmony_ci - Add persistent state to the fuzzer (#4137) 333fd4e5da5Sopenharmony_ci 334fd4e5da5Sopenharmony_civ2020.7 2021-02-16 335fd4e5da5Sopenharmony_ci - General 336fd4e5da5Sopenharmony_ci - Support pending Intel extensions (#4116) 337fd4e5da5Sopenharmony_ci - Remove WebGPU support (#4108) 338fd4e5da5Sopenharmony_ci - Validator 339fd4e5da5Sopenharmony_ci - Vulkan image gather constant component (#4133) 340fd4e5da5Sopenharmony_ci - Add Vulkan PSB64 convert VUID (#4122) 341fd4e5da5Sopenharmony_ci - Validate SPV_KHR_workgroup_memory_explicit_layout (#4128) 342fd4e5da5Sopenharmony_ci - Validate VK_KHR_zero_initialize_workgroup_memory (#4124) 343fd4e5da5Sopenharmony_ci - Add Vulkan image gather offset VUID (#4118) 344fd4e5da5Sopenharmony_ci - Label Vulkan atomic semantics VUIDs (#4120) 345fd4e5da5Sopenharmony_ci - Label VUID 04662 (#4123) 346fd4e5da5Sopenharmony_ci - Label VUID 04683 (#4121) 347fd4e5da5Sopenharmony_ci - Add Vulkan EXT builtins (#4115) 348fd4e5da5Sopenharmony_ci - Validate Sampled=1 for Vulkan ImageQuerySizeLod, ImageQueryLevels, ImageQueryLod (#4103) 349fd4e5da5Sopenharmony_ci - Add Vulkan Memory Scope VUs (#4106) 350fd4e5da5Sopenharmony_ci - Add Vulkan Addressing Model check (#4107) 351fd4e5da5Sopenharmony_ci - Vulkan atomic storage class (#4079) 352fd4e5da5Sopenharmony_ci - Label standalone Vulkan VUID (#4091) 353fd4e5da5Sopenharmony_ci - Add Vulkan decroation VUID (#4090) 354fd4e5da5Sopenharmony_ci - Add Vulkan FP Mode VUID (#4088) 355fd4e5da5Sopenharmony_ci - Fix Vulkan image sampled check (#4085) 356fd4e5da5Sopenharmony_ci - Add Vulkan ForwardPointer VUID (#4089) 357fd4e5da5Sopenharmony_ci - Add Vulkan ImageTexelPointer format check (#4087) 358fd4e5da5Sopenharmony_ci - Add Vulkan Group Operation VUID (#4086) 359fd4e5da5Sopenharmony_ci - Add first StandAlone VUID 04633 (#4077) 360fd4e5da5Sopenharmony_ci - Add Subgroup VUIDs (#4074) 361fd4e5da5Sopenharmony_ci - validate return type of OpImageRead (#4072) 362fd4e5da5Sopenharmony_ci - tighter validation of multisampled images (#4059) 363fd4e5da5Sopenharmony_ci - validate OpTypeImage Sampled values for environemnts (#4064) 364fd4e5da5Sopenharmony_ci - validate StorageImageMultisampled capability (#4062) 365fd4e5da5Sopenharmony_ci - Add last TessLevelOuter and TessLevelInner VUID (#4055) 366fd4e5da5Sopenharmony_ci - Add last ClipDistance and CullDistance VUID (#4054) 367fd4e5da5Sopenharmony_ci - Add last ViewportIndex and Layer VUID (#4053) 368fd4e5da5Sopenharmony_ci - Add last Position VUID (#4052) 369fd4e5da5Sopenharmony_ci - Allow forward pointer to be used in types generally (#4044) 370fd4e5da5Sopenharmony_ci - Optimizer 371fd4e5da5Sopenharmony_ci - Mark module as modified if convert-to-half removes decorations (#4127) 372fd4e5da5Sopenharmony_ci - Fix binding number calculation in desc sroa (#4095) 373fd4e5da5Sopenharmony_ci - Run DCE when SPV_KHR_shader_clock is used (#4049) 374fd4e5da5Sopenharmony_ci - Debug Info 375fd4e5da5Sopenharmony_ci - Set correct scope and line info for DebugValue (#4125) 376fd4e5da5Sopenharmony_ci - Avoid integrity check failures caused by propagating line instructions (#4096) 377fd4e5da5Sopenharmony_ci - Linker 378fd4e5da5Sopenharmony_ci - Linker usability improvements (#4084) 379fd4e5da5Sopenharmony_ci - Instrumentation 380fd4e5da5Sopenharmony_ci - Generate differentiated error codes for buffer oob checking (#4097) 381fd4e5da5Sopenharmony_ci - Fuzz 382fd4e5da5Sopenharmony_ci - Fix OpPhi handling in DuplicateRegionWithSelection (#4065) 383fd4e5da5Sopenharmony_ci 384fd4e5da5Sopenharmony_civ2020.6 2020-12-07 385fd4e5da5Sopenharmony_ci - General 386fd4e5da5Sopenharmony_ci CMake: Add SPIRV_TOOLS_BUILD_STATIC flag (#3910) 387fd4e5da5Sopenharmony_ci - Disassembler 388fd4e5da5Sopenharmony_ci Add some context comments to disassembly. (#3847) 389fd4e5da5Sopenharmony_ci - Optimizer 390fd4e5da5Sopenharmony_ci - Take new (raytracing) termination instructions into account. (#4050) 391fd4e5da5Sopenharmony_ci - Do run DCE if SPV_KHR_ray_query is used. (#4047) 392fd4e5da5Sopenharmony_ci - Handle 8-bit index in elim dead member (#4043) 393fd4e5da5Sopenharmony_ci - Add texel buffer out-of-bounds checking instrumentation (#4038) 394fd4e5da5Sopenharmony_ci - Update MeshShadingNV dependencies (and land Ray tracing updates) (#4028) 395fd4e5da5Sopenharmony_ci - Fix buffer oob instrumentation for matrix refs (#4025) 396fd4e5da5Sopenharmony_ci - Fix SSA re-writing in the presence of variable pointers. (#4010) 397fd4e5da5Sopenharmony_ci - Add support to prevent functions from being inlined if they have 398fd4e5da5Sopenharmony_ci DontInline flag (#3858) 399fd4e5da5Sopenharmony_ci - Add SPV_EXT_shader_image_int64 (#3852) 400fd4e5da5Sopenharmony_ci - Support SPV_KHR_fragment_shading_rate (#3943) 401fd4e5da5Sopenharmony_ci - Fix use-after-move in val/validate.cpp (#3848) 402fd4e5da5Sopenharmony_ci - Debug Info 403fd4e5da5Sopenharmony_ci - properly preserve DebugValue indexes operand (#4022) 404fd4e5da5Sopenharmony_ci - Add DebugValue for invisible store in single_store_elim (#4002) 405fd4e5da5Sopenharmony_ci - Propagate OpLine to all applied instructions in spirv-opt (#3951) 406fd4e5da5Sopenharmony_ci - Add DebugValue for DebugDecl invisible to value assignment (#3973) 407fd4e5da5Sopenharmony_ci - Add DebugValue for function param regardless of scope (#3923) 408fd4e5da5Sopenharmony_ci - Debug info preservation in convert-local-access-chains pass (#3835) 409fd4e5da5Sopenharmony_ci - Debug info preservation in redundancy-elimination pass (#3839) 410fd4e5da5Sopenharmony_ci - Debug info preservation in if-conversion pass (#3861) 411fd4e5da5Sopenharmony_ci - Validator 412fd4e5da5Sopenharmony_ci - Add validation support for the ray tracing built-in variables (#4041) 413fd4e5da5Sopenharmony_ci - Use less stack space when validating Vulkan builtins (#4019) 414fd4e5da5Sopenharmony_ci - Fix SPV_KHR_fragment_shading_rate VUID label (#4014) 415fd4e5da5Sopenharmony_ci - Label Layer and ViewportIndex VUIDs (#4013) 416fd4e5da5Sopenharmony_ci - Allow the ViewportIndex and Layer built-ins on SPIR-V 1.5 (#3986) 417fd4e5da5Sopenharmony_ci - Fix validation of OpPhi instructions (#3919) 418fd4e5da5Sopenharmony_ci - Fuzz 419fd4e5da5Sopenharmony_ci - Fix facts arising from CompositeConstruct (#4034) 420fd4e5da5Sopenharmony_ci - Do not flatten conditionals that create synonyms (#4030) 421fd4e5da5Sopenharmony_ci - Add support for reining in rogue fuzzer passes (#3987) 422fd4e5da5Sopenharmony_ci - Fix assertion failure in FuzzerPassAddCompositeExtract (#3995) 423fd4e5da5Sopenharmony_ci - Fix invalid equation facts (#4009) 424fd4e5da5Sopenharmony_ci - Fix bugs in TransformationFlattenConditionalBranch (#4006) 425fd4e5da5Sopenharmony_ci - Fix bug related to transformation applicability (#3990) 426fd4e5da5Sopenharmony_ci - Add expand vector reduction transformation (#3869) 427fd4e5da5Sopenharmony_ci - Add FuzzerPassAddCompositeExtract (#3904) 428fd4e5da5Sopenharmony_ci - Fix mismatch with shrinker step limit (#3985) 429fd4e5da5Sopenharmony_ci - Fix off-by-one error in replayer (#3982) 430fd4e5da5Sopenharmony_ci - Get order right for OpSelect arguments (#3974) 431fd4e5da5Sopenharmony_ci - Do not add synonym-creating loops in dead blocks (#3975) 432fd4e5da5Sopenharmony_ci - Skip OpTypeSampledImage when propagating up (#3976) 433fd4e5da5Sopenharmony_ci - Pass OpUndef in function call if needed (#3978) 434fd4e5da5Sopenharmony_ci - Fix off-by-one in TransformationCompositeConstruct (#3979) 435fd4e5da5Sopenharmony_ci - Tolerate absent ids in data synonym fact management (#3966) 436fd4e5da5Sopenharmony_ci - Fix to id availability (#3971) 437fd4e5da5Sopenharmony_ci - Fix operand types (#3962) 438fd4e5da5Sopenharmony_ci - Don't flatten conditional if condition is irrelevant (#3944) 439fd4e5da5Sopenharmony_ci - Do not produce OpPhis of type OpTypeSampledImage (#3964) 440fd4e5da5Sopenharmony_ci - Restrict fuzzer pass to reachable blocks (#3970) 441fd4e5da5Sopenharmony_ci - Handle more types when extending OpPhi instructions (#3969) 442fd4e5da5Sopenharmony_ci - Skip early terminator wrappers when merging returns (#3968) 443fd4e5da5Sopenharmony_ci - Avoid irrelevant constants in synonym-creating loops (#3967) 444fd4e5da5Sopenharmony_ci - Skip dead blocks in FuzzerPassAddOpPhiSynonyms (#3965) 445fd4e5da5Sopenharmony_ci - Avoid the type manager when looking for struct types (#3963) 446fd4e5da5Sopenharmony_ci - Fix to TransformationDuplicateRegionWithSelection (#3941) 447fd4e5da5Sopenharmony_ci - Skip OpFunction when replacing irrelevant ids (#3932) 448fd4e5da5Sopenharmony_ci - Use component-wise selectors when flattening conditional branches (#3921) 449fd4e5da5Sopenharmony_ci - Avoid void struct member when outlining functions (#3936) 450fd4e5da5Sopenharmony_ci - Do not allow Block-decorated structs when adding parameters (#3931) 451fd4e5da5Sopenharmony_ci - Fix to operand id type (#3937) 452fd4e5da5Sopenharmony_ci - Handle dead blocks in TransformationEquationInstruction (#3933) 453fd4e5da5Sopenharmony_ci - Do not allow sampled image load when flattening conditionals (#3930) 454fd4e5da5Sopenharmony_ci - Take care of OpPhi instructions when inlining (#3939) 455fd4e5da5Sopenharmony_ci - Fix to TransformationInlineFunction (#3913) 456fd4e5da5Sopenharmony_ci - Wrap early terminators before merging returns (#3925) 457fd4e5da5Sopenharmony_ci - Lower probability of adding bit instruction synonyms (#3917) 458fd4e5da5Sopenharmony_ci - Fix handling of OpPhi in FlattenConditionalBranch (#3916) 459fd4e5da5Sopenharmony_ci - Avoid creating blocks without parents (#3908) 460fd4e5da5Sopenharmony_ci - Do not allow creation of constants of block-decorated structs (#3903) 461fd4e5da5Sopenharmony_ci - Fixes related to irrelevant ids (#3901) 462fd4e5da5Sopenharmony_ci - Fix to transformation that adds a synonym via a loop (#3898) 463fd4e5da5Sopenharmony_ci - Fix to duplicate region with selection (#3896) 464fd4e5da5Sopenharmony_ci - Do not expose synonym facts for non-existent ids (#3891) 465fd4e5da5Sopenharmony_ci - Do not add synonyms involving irrelevant ids (#3890) 466fd4e5da5Sopenharmony_ci - Do not replace irrelevant ids that are not in blocks (#3892) 467fd4e5da5Sopenharmony_ci - Wrap OpKill and similar in function calls (#3884) 468fd4e5da5Sopenharmony_ci - Integrate spirv-reduce with shrinker (#3849) 469fd4e5da5Sopenharmony_ci - Report fresh ids in transformations (#3856) 470fd4e5da5Sopenharmony_ci - Support OpNot bit instruction case (#3841) 471fd4e5da5Sopenharmony_ci - Return IR and transformation context after replay (#3846) 472fd4e5da5Sopenharmony_ci 473fd4e5da5Sopenharmony_civ2020.5 2020-09-22 474fd4e5da5Sopenharmony_ci - General 475fd4e5da5Sopenharmony_ci - Enable building with BUILD_SHARED_LIBS=1 (#3490) 476fd4e5da5Sopenharmony_ci - Avoid using /MP4 for clang on windows. (#3662) 477fd4e5da5Sopenharmony_ci - Fix compiler error on macOS with XCode12. (#3836) 478fd4e5da5Sopenharmony_ci - Optimizer 479fd4e5da5Sopenharmony_ci - Preserve OpenCL.DebugInfo.100 through private-to-local pass (#3571) 480fd4e5da5Sopenharmony_ci - Preserve debug info in scalar replacement pass (#3461) 481fd4e5da5Sopenharmony_ci - Debug info preservation in loop-unroll pass (#3548) 482fd4e5da5Sopenharmony_ci - Preserve debug info in dead-insert-elim pass (#3652) 483fd4e5da5Sopenharmony_ci - Improve non-semantic instruction handling in the optimizer (#3693) 484fd4e5da5Sopenharmony_ci - Let ADCE pass check DebugScope (#3703) 485fd4e5da5Sopenharmony_ci - Add undef for inlined void function (#3720) 486fd4e5da5Sopenharmony_ci - Fix SSA-rewrite to remove DebugDeclare for variables without loads (#3719) 487fd4e5da5Sopenharmony_ci - Handle DebugScope in compact-ids pass (#3724) 488fd4e5da5Sopenharmony_ci - Add buffer oob check to bindless instrumentation (#3800) 489fd4e5da5Sopenharmony_ci - Validator 490fd4e5da5Sopenharmony_ci - Update OpenCL capabilities validation (#3149) 491fd4e5da5Sopenharmony_ci - Validator support for non-semantic clspv reflection (#3618) 492fd4e5da5Sopenharmony_ci - OpenCL.DebugInfo.100 DebugTypeArray with variable size (#3549) 493fd4e5da5Sopenharmony_ci - Only validation locations for appropriate execution models (#3656) 494fd4e5da5Sopenharmony_ci - Validate more OpenCL.DebugInfo.100 instructions (#3684) 495fd4e5da5Sopenharmony_ci - Allow DebugTypeTemplate for Type operand (#3702) 496fd4e5da5Sopenharmony_ci - spirv-val: Add Vulkan VUID labels to BuiltIn (#3756) 497fd4e5da5Sopenharmony_ci - Allow SPV_KHR_8bit_storage extension. (#3780) 498fd4e5da5Sopenharmony_ci - Validate SPIRV Version number when parsing binary header (#3834) 499fd4e5da5Sopenharmony_ci - Reduce 500fd4e5da5Sopenharmony_ci - Support reducing a specific function (#3774) 501fd4e5da5Sopenharmony_ci - Fuzz 502fd4e5da5Sopenharmony_ci - adds TransformationReplaceCopyObjectWithStoreLoad (#3567) 503fd4e5da5Sopenharmony_ci - adds TransformationReplaceCopyMemoryWithLoadStore (#3575) 504fd4e5da5Sopenharmony_ci - adds TransformationReplaceLoadStoreWithCopyMemory (#3586) 505fd4e5da5Sopenharmony_ci - Implement the OpOuterProduct linear algebra case (#3617) 506fd4e5da5Sopenharmony_ci - Pass to replace int operands with ints of opposite signedness (#3612) 507fd4e5da5Sopenharmony_ci - TransformationMoveInstructionDown (#3477) 508fd4e5da5Sopenharmony_ci - Add TransformationMakeVectorOperationDynamic (#3597) 509fd4e5da5Sopenharmony_ci - TransformationReplaceAddSubMulWithCarryingExtended (#3598) 510fd4e5da5Sopenharmony_ci - FuzzerPassPropagateInstructionsUp (#3478) 511fd4e5da5Sopenharmony_ci - add FuzzerPassAddCompositeInserts (#3606) 512fd4e5da5Sopenharmony_ci - Add inline function transformation (#3517) 513fd4e5da5Sopenharmony_ci - Transformation to replace the use of an irrelevant id (#3697) 514fd4e5da5Sopenharmony_ci - Add SPIRV_FUZZ_PROTOC_COMMAND (#3789) 515fd4e5da5Sopenharmony_ci - Add TransformationDuplicateRegionWithSelection (#3773) 516fd4e5da5Sopenharmony_ci - Transformation to flatten conditional branch (#3667) 517fd4e5da5Sopenharmony_ci - Handle OpPhis in TransformationInlineFunction (#3833) 518fd4e5da5Sopenharmony_ci - Create synonym of int constant using a loop (#3790) 519fd4e5da5Sopenharmony_ci - Support dead blocks in TransformationAddSynonym (#3832) 520fd4e5da5Sopenharmony_ci - Linker 521fd4e5da5Sopenharmony_ci 522fd4e5da5Sopenharmony_civ2020.4 2020-07-22 523fd4e5da5Sopenharmony_ci - General 524fd4e5da5Sopenharmony_ci - Changed variable names to be more descriptive (#3433) 525fd4e5da5Sopenharmony_ci - Add support to GPU-AV instrumentation for Task and Mesh shaders (#3512) 526fd4e5da5Sopenharmony_ci - Permit Simple and GLSL450 memory model in WEBGPU_0 (#3463) 527fd4e5da5Sopenharmony_ci - Support SPV_KHR_terminate_invocation (#3568) 528fd4e5da5Sopenharmony_ci - Optimizer 529fd4e5da5Sopenharmony_ci - Preserving debug information in optimizations 530fd4e5da5Sopenharmony_ci (#3389,#3420,#3425,#3356,#3459,#3444,#3492,#3451,#3497i,#3498,#3542) 531fd4e5da5Sopenharmony_ci - Eliminate branches with condition of OpConstantNull (#3438) 532fd4e5da5Sopenharmony_ci - Use structured order to unroll loops. (#3443) 533fd4e5da5Sopenharmony_ci - Updated desc_sroa to support flattening structures (#3448) 534fd4e5da5Sopenharmony_ci - Support OpCompositeExtract pattern in desc_sroa (#3456) 535fd4e5da5Sopenharmony_ci - Fix ADCE pass bug for mulitple entries (#3470) 536fd4e5da5Sopenharmony_ci - Sink pointer instructions in merge return (#3569) 537fd4e5da5Sopenharmony_ci - Validator 538fd4e5da5Sopenharmony_ci - Validate location assignments (#3308) 539fd4e5da5Sopenharmony_ci - Fix reachability in the validator (#3541) 540fd4e5da5Sopenharmony_ci - Reduce 541fd4e5da5Sopenharmony_ci - Fuzz 542fd4e5da5Sopenharmony_ci - Add support for OpSpecConstant* (#3373) 543fd4e5da5Sopenharmony_ci - Add replace linear algebra instruction transformation (#3402) 544fd4e5da5Sopenharmony_ci - Implement vector shuffle fuzzer pass (#3412) 545fd4e5da5Sopenharmony_ci - Swap operands in OpBranchConditional (#3423) 546fd4e5da5Sopenharmony_ci - Permute OpPhi instruction operands (#3421) 547fd4e5da5Sopenharmony_ci - Add FuzzerPassAddCopyMemoryInstructions (#3391) 548fd4e5da5Sopenharmony_ci - TransformationInvertComparisonOperator (#3475) 549fd4e5da5Sopenharmony_ci - Add variables with workgroup storage class (#3485) 550fd4e5da5Sopenharmony_ci - Add image sample unused components transformation (#3439) 551fd4e5da5Sopenharmony_ci - TransformationReplaceParameterWithGlobal (#3434) 552fd4e5da5Sopenharmony_ci - Support adding dead break from back-edge block (#3519) 553fd4e5da5Sopenharmony_ci - Fuzzer pass to interchange zero-like constants (#3524) 554fd4e5da5Sopenharmony_ci - Linker 555fd4e5da5Sopenharmony_ci 556fd4e5da5Sopenharmony_civ2020.3 2020-05-27 557fd4e5da5Sopenharmony_ci - General 558fd4e5da5Sopenharmony_ci - Prevent Effcee from installing things when building spirv-tools with testing enabled (#3256) 559fd4e5da5Sopenharmony_ci - Update acorn version (#3294) 560fd4e5da5Sopenharmony_ci - If SPIRV-Headers is in our tree, include it as subproject (#3299) 561fd4e5da5Sopenharmony_ci - allow cross compiling for Windows Store, UWP, etc. (#3330) 562fd4e5da5Sopenharmony_ci - Optimizer 563fd4e5da5Sopenharmony_ci - Remove deprecated interfaces from instrument passes (#3361) 564fd4e5da5Sopenharmony_ci - Preserve debug info in inline pass (#3349) 565fd4e5da5Sopenharmony_ci - Handle more cases in dead member elim (#3289) 566fd4e5da5Sopenharmony_ci - Preserve debug info in eliminate-dead-functions (#3251) 567fd4e5da5Sopenharmony_ci - Fix Struct CFG analysis for single block loop (#3293) 568fd4e5da5Sopenharmony_ci - Add tests for recently added command line option (#3297) 569fd4e5da5Sopenharmony_ci - Consider sampled images as read-only storage (#3295) 570fd4e5da5Sopenharmony_ci - Allow various validation options to be passed to spirv-opt (#3314) 571fd4e5da5Sopenharmony_ci - Add debug information analysis (#3305) 572fd4e5da5Sopenharmony_ci - Preserve debug info for wrap-opkill (#3331) 573fd4e5da5Sopenharmony_ci - refactor inlining pass (#3328) 574fd4e5da5Sopenharmony_ci - Add unrolling to performance passes (#3082) 575fd4e5da5Sopenharmony_ci - Validator 576fd4e5da5Sopenharmony_ci - Add validation support for ImageGatherBiasLodAMD (#3363) 577fd4e5da5Sopenharmony_ci - Validate ShaderCallKHR memory scope (#3332) 578fd4e5da5Sopenharmony_ci - Validate Buffer and BufferBlock apply only to struct types (#3259) 579fd4e5da5Sopenharmony_ci - Reduce 580fd4e5da5Sopenharmony_ci - increase default step limit (#3327) 581fd4e5da5Sopenharmony_ci - Remove unused uniforms and similar (#3321) 582fd4e5da5Sopenharmony_ci - Fuzz 583fd4e5da5Sopenharmony_ci - Add support for StorageBuffer (#3348) 584fd4e5da5Sopenharmony_ci - Add validator options (#3254) 585fd4e5da5Sopenharmony_ci - Limit adding of new variables to 'basic' types (#3257) 586fd4e5da5Sopenharmony_ci - Transformation to add OpConstantNull (#3273) 587fd4e5da5Sopenharmony_ci - Handling of more fuzzing opportunities (#3277, #3280, #3281, #3290, #3292) 588fd4e5da5Sopenharmony_ci - Respect rules for OpSampledImage (#3287) 589fd4e5da5Sopenharmony_ci - Do not outline regions that produce pointer outputs (#3291) 590fd4e5da5Sopenharmony_ci - Linker 591fd4e5da5Sopenharmony_ci 592fd4e5da5Sopenharmony_civ2020.2 2020-03-26 593fd4e5da5Sopenharmony_ci - General: 594fd4e5da5Sopenharmony_ci - Support extended instructions in the vscode language server 595fd4e5da5Sopenharmony_ci - Make spvOpcodeString part of the public API (#3174) 596fd4e5da5Sopenharmony_ci - Added guide to writing a spirv-fuzz fuzzer pass (#3190) 597fd4e5da5Sopenharmony_ci - Add support for KHR_ray_{query,tracing} extensions (#3235) 598fd4e5da5Sopenharmony_ci - Optimizer 599fd4e5da5Sopenharmony_ci - Debug Printf support (#3215) 600fd4e5da5Sopenharmony_ci - Add data structure for DebugScope, DebugDeclare in spirv-opt (#3183) 601fd4e5da5Sopenharmony_ci - Fix identification of Vulkan images and buffers (#3253) 602fd4e5da5Sopenharmony_ci - Validator 603fd4e5da5Sopenharmony_ci - Add support for SPV_AMD_shader_image_load_store_lod (#3186) 604fd4e5da5Sopenharmony_ci - Add validation rules for OpenCL.DebugInfo.100 extension (#3133) 605fd4e5da5Sopenharmony_ci - Adding WebGPU specific Workgroup scope rule (#3204) 606fd4e5da5Sopenharmony_ci - Disallow phis of images, samplers and sampled images (#3246) 607fd4e5da5Sopenharmony_ci - Reduce 608fd4e5da5Sopenharmony_ci - Fuzz 609fd4e5da5Sopenharmony_ci - Fuzzer passes to add local and global variables (#3175) 610fd4e5da5Sopenharmony_ci - Add fuzzer passes to add loads/stores (#3176) 611fd4e5da5Sopenharmony_ci - Fuzzer pass to add function calls (#3178) 612fd4e5da5Sopenharmony_ci - Fuzzer pass that adds access chains (#3182) 613fd4e5da5Sopenharmony_ci - Fuzzer pass to add equation instructions (#3202) 614fd4e5da5Sopenharmony_ci - Add swap commutable operands transformation (#3205) 615fd4e5da5Sopenharmony_ci - Add fuzzer pass to permute function parameters (#3212) 616fd4e5da5Sopenharmony_ci - Allow OpPhi operand to be replaced with a composite synonym (#3221) 617fd4e5da5Sopenharmony_ci - Linker 618fd4e5da5Sopenharmony_ci 619fd4e5da5Sopenharmony_civ2020.1 2020-02-03 620fd4e5da5Sopenharmony_ci - General: 621fd4e5da5Sopenharmony_ci - Add support for SPV_KHR_non_semantic_info (#3110) 622fd4e5da5Sopenharmony_ci - Support OpenCL.DebugInfo.100 extended instruction set (#3080) 623fd4e5da5Sopenharmony_ci - Added support for Vulkan 1.2 624fd4e5da5Sopenharmony_ci - Add API function to better handle getting the necessary environment (#3142) 625fd4e5da5Sopenharmony_ci - Clarify mapping of target env to SPIR-V version (#3150) 626fd4e5da5Sopenharmony_ci - Implement constant folding for many transcendentals (#3166) 627fd4e5da5Sopenharmony_ci - Optimizer 628fd4e5da5Sopenharmony_ci - Change default version for CreatInstBindlessCheckPass to 2 (#3096, #3119) 629fd4e5da5Sopenharmony_ci - Better handling of OpLine on merge blocks (#3130) 630fd4e5da5Sopenharmony_ci - Use placeholder switch instead of placeholder loop in MergeReturn pass. (#3151) 631fd4e5da5Sopenharmony_ci - Handle TimeAMD in AmdExtensionToKhrPass. (#3168) 632fd4e5da5Sopenharmony_ci - Validator 633fd4e5da5Sopenharmony_ci - Fix structured exit validation (#3141) 634fd4e5da5Sopenharmony_ci - Reduce 635fd4e5da5Sopenharmony_ci - Fuzz 636fd4e5da5Sopenharmony_ci - Fuzzer pass to merge blocks (#3097) 637fd4e5da5Sopenharmony_ci - Transformation to add a new function to a module (#3114) 638fd4e5da5Sopenharmony_ci - Add fuzzer pass to perform module donation (#3117) 639fd4e5da5Sopenharmony_ci - Fuzzer passes to create and branch to new dead blocks (#3135) 640fd4e5da5Sopenharmony_ci - Fuzzer pass to add composite types (#3171) 641fd4e5da5Sopenharmony_ci - Linker: 642fd4e5da5Sopenharmony_ci - Remove names and decorations of imported symbols (#3081) 643fd4e5da5Sopenharmony_ci 644fd4e5da5Sopenharmony_civ2019.5 2019-12-11 645fd4e5da5Sopenharmony_ci - General: 646fd4e5da5Sopenharmony_ci - Export SPIRV-Tools targets on installation 647fd4e5da5Sopenharmony_ci - SPIRV-Tools support for SPIR-V 1.5 (#2865) 648fd4e5da5Sopenharmony_ci - Add WebGPU SPIR-V Assembler in JavaScript. (#2876) 649fd4e5da5Sopenharmony_ci - Add Bazel build configuration. (#2891) 650fd4e5da5Sopenharmony_ci - Add support for building with emscripten (#2948) 651fd4e5da5Sopenharmony_ci - Update SPIR-V binary header test for SPIR-V 1.5 (#2967) 652fd4e5da5Sopenharmony_ci - Add fuzzer for spirv-as call path (#2976) 653fd4e5da5Sopenharmony_ci - Improved CMake install step. (#2963) 654fd4e5da5Sopenharmony_ci - Add fuzzer for spirv-dis call path (#2977) 655fd4e5da5Sopenharmony_ci - Ensure timestamp does not vary with timezone. (#2982) 656fd4e5da5Sopenharmony_ci - Add a vscode extension for SPIR-V disassembly files (#2987) 657fd4e5da5Sopenharmony_ci - Add iOS as a supported platform (#3001) 658fd4e5da5Sopenharmony_ci - utils/vscode: Add SPIR-V language server support 659fd4e5da5Sopenharmony_ci - Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054) 660fd4e5da5Sopenharmony_ci - Permit the debug instructions in WebGPU SPIR-V (#3063) 661fd4e5da5Sopenharmony_ci - Add support for Fuchsia. (#3062) 662fd4e5da5Sopenharmony_ci - Optimizer 663fd4e5da5Sopenharmony_ci - Add descriptor array scalar replacement (#2742) 664fd4e5da5Sopenharmony_ci - Add pass to wrap OpKill in a function call (#2790) 665fd4e5da5Sopenharmony_ci - Fold FMix during constant folding. (#2818) 666fd4e5da5Sopenharmony_ci - Add pass to replace AMD shader ballot extension (#2811) 667fd4e5da5Sopenharmony_ci - Add pass to make Float32 operation relax precision (#2808) 668fd4e5da5Sopenharmony_ci - Add pass to make relax precision operation Float16 (#2808) 669fd4e5da5Sopenharmony_ci - Add pass to replace uses of 3 AMD extensions (#2814) 670fd4e5da5Sopenharmony_ci - Fold Min, Max, and Clamp instructions. (#2836) 671fd4e5da5Sopenharmony_ci - Better handling of OpKill in continues (#2842,#2922,#2933) 672fd4e5da5Sopenharmony_ci - Enable OpTypeCooperativeMatrix specialization (#2927) 673fd4e5da5Sopenharmony_ci - Support constant-folding UConvert and SConvert (#2960) 674fd4e5da5Sopenharmony_ci - Update Offset to ConstOffset bitmask if operand is constant. (#3024) 675fd4e5da5Sopenharmony_ci - Improve RegisterSizePasses (#3059) 676fd4e5da5Sopenharmony_ci - Folding: perform add and sub on mismatched integer types (#3084) 677fd4e5da5Sopenharmony_ci - Graphics robust access: use signed clamp (#3073) 678fd4e5da5Sopenharmony_ci Fixes: 679fd4e5da5Sopenharmony_ci - Instrument: Fix version 2 output record write for tess eval shaders. (#2782) 680fd4e5da5Sopenharmony_ci - Instrument: Add support for Buffer Device Address extension (#2792) 681fd4e5da5Sopenharmony_ci - Fix check for changed binary in API call. (#2798) 682fd4e5da5Sopenharmony_ci - For WebGPU<->Vulkan optimization, set correct execution environment (#2834) 683fd4e5da5Sopenharmony_ci - Handle OpConstantNull in copy-prop-arrays. (#2870) 684fd4e5da5Sopenharmony_ci - Use OpReturn* in wrap-opkill (#2886) 685fd4e5da5Sopenharmony_ci - Validator 686fd4e5da5Sopenharmony_ci - Add generic builtin validation of target (#2843) 687fd4e5da5Sopenharmony_ci - Extra resource interface validation (#2864) 688fd4e5da5Sopenharmony_ci - Adding valilidation checks for OpEntryPoint duplicate names and execution mode (#2862) 689fd4e5da5Sopenharmony_ci - Relaxed bitcast with pointers (#2878) 690fd4e5da5Sopenharmony_ci - Validate physical storage buffer restrictions (#2930) 691fd4e5da5Sopenharmony_ci - Add SPV_KHR_shader_clock validation (#2879, #3013) 692fd4e5da5Sopenharmony_ci - Validate that selections are structured (#2962) 693fd4e5da5Sopenharmony_ci - Disallow use of OpCompositeExtract/OpCompositeInsert with no indices (#2980) 694fd4e5da5Sopenharmony_ci - Check that derivatives operate on 32-bit values (#2983) 695fd4e5da5Sopenharmony_ci - Validate array stride does not cause overlap (#3028) 696fd4e5da5Sopenharmony_ci - Validate nested constructs (#3068) 697fd4e5da5Sopenharmony_ci Fixes: 698fd4e5da5Sopenharmony_ci - Fix validation of constant matrices (#2794) 699fd4e5da5Sopenharmony_ci - Update "remquor" validation 700fd4e5da5Sopenharmony_ci - Only allow previously declared forward refs in structs (#2920) 701fd4e5da5Sopenharmony_ci - Reduce 702fd4e5da5Sopenharmony_ci - Remove relaxed precision decorations (#2797) 703fd4e5da5Sopenharmony_ci - Reduce/fuzz: improve command line args (#2932) 704fd4e5da5Sopenharmony_ci - Improve remove unref instr pass (#2945) 705fd4e5da5Sopenharmony_ci Fixes: 706fd4e5da5Sopenharmony_ci - Fuzz 707fd4e5da5Sopenharmony_ci - Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 708fd4e5da5Sopenharmony_ci - Add fuzzer pass to copy objects (#2853) 709fd4e5da5Sopenharmony_ci - Add fuzzer pass to replace ids with synonyms (#2857) 710fd4e5da5Sopenharmony_ci - Allow validation during spirv-fuzz replay (#2873) 711fd4e5da5Sopenharmony_ci - Employ the "swarm testing" idea in spirv-fuzz (#2890) 712fd4e5da5Sopenharmony_ci - reduce/fuzz: improve command line args (#2932) 713fd4e5da5Sopenharmony_ci - option to convert shader into a form that renders red (#2934) 714fd4e5da5Sopenharmony_ci - Add fuzzer pass to change selection controls (#2944) 715fd4e5da5Sopenharmony_ci - add transformation and pass to construct composites (#2941) 716fd4e5da5Sopenharmony_ci - Add fuzzer pass to change loop controls (#2949) 717fd4e5da5Sopenharmony_ci - Add fuzzer pass to change function controls (#2951) 718fd4e5da5Sopenharmony_ci - Add fuzzer pass to add NoContraction decorations (#2950) 719fd4e5da5Sopenharmony_ci - Add missing functionality for matrix composites (#2974) 720fd4e5da5Sopenharmony_ci - Fuzzer pass to adjust memory access operands (#2968) 721fd4e5da5Sopenharmony_ci - Transformation to extract from a composite object (#2991) 722fd4e5da5Sopenharmony_ci - Vector shuffle transformation (#3015) 723fd4e5da5Sopenharmony_ci - Improve debugging facilities (#3074) 724fd4e5da5Sopenharmony_ci - Function outlining fuzzer pass (#3078) 725fd4e5da5Sopenharmony_ci 726fd4e5da5Sopenharmony_ci 727fd4e5da5Sopenharmony_civ2019.4 2019-08-08 728fd4e5da5Sopenharmony_ci - General: 729fd4e5da5Sopenharmony_ci - Memory model support for SPIR-V 1.4 730fd4e5da5Sopenharmony_ci - Add new spirv-fuzz tool 731fd4e5da5Sopenharmony_ci - Add option for base branch in check_code_format.sh 732fd4e5da5Sopenharmony_ci - Removed MarkV and Stats code. (#2576) 733fd4e5da5Sopenharmony_ci - Instrument: Add version 2 of record formats (#2630) 734fd4e5da5Sopenharmony_ci - Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580) 735fd4e5da5Sopenharmony_ci - Optimizer 736fd4e5da5Sopenharmony_ci - Bindless Validation: Instrument descriptor-based loads and stores (#2583) 737fd4e5da5Sopenharmony_ci - Better folding for OpSpecConstantOp (#2585, #2614) 738fd4e5da5Sopenharmony_ci - Add in individual flags for Vulkan <-> WebGPU passes (#2615) 739fd4e5da5Sopenharmony_ci - Handle nested breaks from switches. (#2624) 740fd4e5da5Sopenharmony_ci - Optimizer: Handle array type with OpSpecConstantOp length (#2652) 741fd4e5da5Sopenharmony_ci - Perform merge return with single return in loop. (#2714) 742fd4e5da5Sopenharmony_ci - Add --preserve-bindings and --preserve-spec-constants (#2693) 743fd4e5da5Sopenharmony_ci - Remove Common Uniform Elimination Pass (#2731) 744fd4e5da5Sopenharmony_ci - Allow ray tracing shaders in inst bindle check pass. (#2733) 745fd4e5da5Sopenharmony_ci - Add pass to inject code for robust-buffer-access semantics (#2771) 746fd4e5da5Sopenharmony_ci - Treat access chain indexes as signed in SROA (#2776) 747fd4e5da5Sopenharmony_ci - Handle RelaxedPrecision in SROA (#2788) 748fd4e5da5Sopenharmony_ci - Add descriptor array scalar replacement (#2742) 749fd4e5da5Sopenharmony_ci Fixes: 750fd4e5da5Sopenharmony_ci - Handle decorations better in some optimizations (#2716) 751fd4e5da5Sopenharmony_ci - Change the order branches are simplified in dead branch elim (#2728) 752fd4e5da5Sopenharmony_ci - Fix bug in merge return (#2734) 753fd4e5da5Sopenharmony_ci - SSA rewriter: Don't use trivial phis (#2757) 754fd4e5da5Sopenharmony_ci - Record correct dominators in merge return (#2760) 755fd4e5da5Sopenharmony_ci - Process OpDecorateId in ADCE (#2761) 756fd4e5da5Sopenharmony_ci - Fix check for unreachable blocks in merge-return (#2762) 757fd4e5da5Sopenharmony_ci - Handle out-of-bounds scalar replacements. (#2767) 758fd4e5da5Sopenharmony_ci - Don't move debug or decorations when folding (#2772) 759fd4e5da5Sopenharmony_ci - Protect against out-of-bounds references when folding OpCompositeExtract (#2774) 760fd4e5da5Sopenharmony_ci - Validator 761fd4e5da5Sopenharmony_ci - Validate loop merge (#2579) 762fd4e5da5Sopenharmony_ci - Validate construct exits (#2459) 763fd4e5da5Sopenharmony_ci - Validate OpenCL memory and addressing model environment rules (#2589) 764fd4e5da5Sopenharmony_ci - Validate OpenCL environment rules for OpTypeImage (#2606) 765fd4e5da5Sopenharmony_ci - Allow breaks to switch merge from nested construct (#2604) 766fd4e5da5Sopenharmony_ci - Validate OpenCL environment rules for OpImageWrite (#2619) 767fd4e5da5Sopenharmony_ci - Allow arrays of out per-primitive builtins for mesh shaders (#2617) 768fd4e5da5Sopenharmony_ci - Validate OpenCL rules for ImageRead and OpImageSampleExplicitLod (#2643) 769fd4e5da5Sopenharmony_ci - Add validation for SPV_EXT_fragment_shader_interlock (#2650) 770fd4e5da5Sopenharmony_ci - Add builtin validation for SPV_NV_shader_sm_builtins (#2656) 771fd4e5da5Sopenharmony_ci - Add validation for Subgroup builtins (#2637) 772fd4e5da5Sopenharmony_ci - Validate variable initializer type (#2668) 773fd4e5da5Sopenharmony_ci - Disallow stores to UBOs (#2651)A 774fd4e5da5Sopenharmony_ci - Validate Volatile memory semantics bit (#2672) 775fd4e5da5Sopenharmony_ci - Basic validation for Component decorations (#2679) 776fd4e5da5Sopenharmony_ci - Validate that in OpenGL env block variables have Binding (#2685) 777fd4e5da5Sopenharmony_ci - Validate usage of 8- and 16-bit types with only storage capabilities (#2704) 778fd4e5da5Sopenharmony_ci - Add validation for SPV_EXT_demote_to_helper_invocation (#2707) 779fd4e5da5Sopenharmony_ci - Extra small storage validation (#2732) 780fd4e5da5Sopenharmony_ci - For Vulkan, disallow structures containing opaque types (#2546) 781fd4e5da5Sopenharmony_ci - Validate storage class OpenCL environment rules for atomics (#2750) 782fd4e5da5Sopenharmony_ci - Update OpControlBarriers rules for WebGPU (#2769) 783fd4e5da5Sopenharmony_ci - Update OpMemoryBarriers rules for WebGPU (#2775) 784fd4e5da5Sopenharmony_ci - Update WebGPU validation rules of OpAtomic*s (#2777) 785fd4e5da5Sopenharmony_ci Fixes: 786fd4e5da5Sopenharmony_ci - Disallow merge targeting block with OpLoopMerge (#2610) 787fd4e5da5Sopenharmony_ci - Update vloadn and vstoren validation to match the OpenCL Extended 788fd4e5da5Sopenharmony_ci Instruction Set Specification (#2599) 789fd4e5da5Sopenharmony_ci - Update memory scope rules for WebGPU (#2725) 790fd4e5da5Sopenharmony_ci - Allow LOD ops in compute shaders with derivative group execution modes (#2752) 791fd4e5da5Sopenharmony_ci - Reduce 792fd4e5da5Sopenharmony_ci Fixes: 793fd4e5da5Sopenharmony_ci 794fd4e5da5Sopenharmony_civ2019.3 2019-05-14 795fd4e5da5Sopenharmony_ci - General: 796fd4e5da5Sopenharmony_ci - Require Python 3 since Python 2 will out of service soon. 797fd4e5da5Sopenharmony_ci - Add a continuous test that does memory checks using the address sanitizer. 798fd4e5da5Sopenharmony_ci - Fix the build files so the SPIRV_USE_SANITIZER=address build works. 799fd4e5da5Sopenharmony_ci - Packaging top of tree build artifacts again. 800fd4e5da5Sopenharmony_ci - Added support for SPIR-V 1.4. (#2550) 801fd4e5da5Sopenharmony_ci - Optimizer 802fd4e5da5Sopenharmony_ci - Remove duplicates from list of interface IDs in OpEntryPoint instruction (#2449) 803fd4e5da5Sopenharmony_ci - Bindless Validation: Descriptor Initialization Check (#2419) 804fd4e5da5Sopenharmony_ci - Add option to validate after each pass (#2462) 805fd4e5da5Sopenharmony_ci - Add legalization pass to fix mismatched pointer (#2430, #2535) 806fd4e5da5Sopenharmony_ci - Add error messages when the input contains unknown instructions. (#2487) 807fd4e5da5Sopenharmony_ci - Add pass to convert from WebGPU Spir-V to Vulkan Spir-V and back. (#2495) 808fd4e5da5Sopenharmony_ci Fixes: 809fd4e5da5Sopenharmony_ci - #2412: Dead memeber elimination should not change input and output variables. 810fd4e5da5Sopenharmony_ci - #2405: Fix OpDot folding of half float vectors. 811fd4e5da5Sopenharmony_ci - #2391: Dead branch elim should not fold away back edges. 812fd4e5da5Sopenharmony_ci - #2441: Removing decorations when doing constant propagation. 813fd4e5da5Sopenharmony_ci - #2455: Maintain inst to block mapping in merge return. 814fd4e5da5Sopenharmony_ci - #2453: Fix merge return in the face of breaks. 815fd4e5da5Sopenharmony_ci - #2456: Handle dead infinite loops in DCE. 816fd4e5da5Sopenharmony_ci - #2458: Handle variable pointer in some optimizations. 817fd4e5da5Sopenharmony_ci - #2452: Fix dead branch elimination to handle unreachable blocks better. 818fd4e5da5Sopenharmony_ci - #2528: Fix undefined bit shift in sroa. 819fd4e5da5Sopenharmony_ci - #2539: Change implementation of post order CFG traversal. 820fd4e5da5Sopenharmony_ci - Validator 821fd4e5da5Sopenharmony_ci - Add validation of storage classes for WebGPU (#2446) 822fd4e5da5Sopenharmony_ci - Add validation for ExecutionMode in WebGPU (#2443) 823fd4e5da5Sopenharmony_ci - Implement WebGPU specific CFG validation (#2386) 824fd4e5da5Sopenharmony_ci - Allow NonWritable to target struct members. (#2420) 825fd4e5da5Sopenharmony_ci - Allow storage type mismatch for parameter in relaxed addressing mode. 826fd4e5da5Sopenharmony_ci - Allow non memory objects as parameter in relaxed addressing mode. 827fd4e5da5Sopenharmony_ci - Disallow nested Blocks and buffer blocks (#2410). 828fd4e5da5Sopenharmony_ci - Add validation for SPV_NV_cooperative_matrix (#2404) 829fd4e5da5Sopenharmony_ci - Add --strip-atomic-counter-memory (#2413) 830fd4e5da5Sopenharmony_ci - Check OpSampledImage is only passed into valid instructions (#2467) 831fd4e5da5Sopenharmony_ci - Handle function decls in Structured CFG analysis (#2474) 832fd4e5da5Sopenharmony_ci - Validate that OpUnreacahble is not statically reachable (#2473) 833fd4e5da5Sopenharmony_ci - Add pass to generate needed initializers for WebGPU (#2481) 834fd4e5da5Sopenharmony_ci - Allow images without format for OpenCL. (#2470) 835fd4e5da5Sopenharmony_ci - Remove unreachable block validation (#2525) 836fd4e5da5Sopenharmony_ci - Reduce runtime of array layout checks (#2534) 837fd4e5da5Sopenharmony_ci - Add validation specific to OpExecutionModeId (#2536) 838fd4e5da5Sopenharmony_ci - Validate sign of int types. (#2549) 839fd4e5da5Sopenharmony_ci - VK_KHR_uniform_buffer_standard_layout validation (#2562) 840fd4e5da5Sopenharmony_ci Fixes: 841fd4e5da5Sopenharmony_ci - #2439: Add missing DepthGreater case to Fragment only check. 842fd4e5da5Sopenharmony_ci - #2168: Disallow BufferBlock on StorageBuffer variables for Vulkan. 843fd4e5da5Sopenharmony_ci - #2408: Restrict and Aliased decorations cannot be applied to the same id. 844fd4e5da5Sopenharmony_ci - #2447: Improve function call parameter check. 845fd4e5da5Sopenharmony_ci - Reduce 846fd4e5da5Sopenharmony_ci - Add Pass to remove unreferenced blocks. (#2398) 847fd4e5da5Sopenharmony_ci - Allows passing options to the validator. (#2401) 848fd4e5da5Sopenharmony_ci - Improve reducer algorithm and other changes (#2472) 849fd4e5da5Sopenharmony_ci - Add Pass to remove selections (#2485) 850fd4e5da5Sopenharmony_ci - Add passes to simplify branches (#2507) 851fd4e5da5Sopenharmony_ci Fixes: 852fd4e5da5Sopenharmony_ci - #2478: fix loop to selection pass for loops with combined header/continue block 853fd4e5da5Sopenharmony_ci 854fd4e5da5Sopenharmony_civ2019.2 2019-02-20 855fd4e5da5Sopenharmony_ci - General: 856fd4e5da5Sopenharmony_ci - Support SPV_EXT_physical_storage_buffer 857fd4e5da5Sopenharmony_ci - A number of memory leak have been fixed. 858fd4e5da5Sopenharmony_ci - Removed use of deprecated Google test macro: 859fd4e5da5Sopenharmony_ci - Changed the BUILD.gn to only build tests in Chromium. 860fd4e5da5Sopenharmony_ci - Optimizer 861fd4e5da5Sopenharmony_ci - Upgrade memory model improvments for modf and frexp. 862fd4e5da5Sopenharmony_ci - Add a new pass to move loads closer to their uses: code sinking. 863fd4e5da5Sopenharmony_ci - Invalidating the type manager now invalidates the constnat manager. 864fd4e5da5Sopenharmony_ci - Expand instrumentation pass for bindless bounds checking to runtime-sized descriptor arrays. 865fd4e5da5Sopenharmony_ci - Add a new pass that removes members from structs that are not used: dead member elimination. 866fd4e5da5Sopenharmony_ci Fixes: 867fd4e5da5Sopenharmony_ci - #2292: Remove undefined behaviour when folding bit shifts. 868fd4e5da5Sopenharmony_ci - #2294: Fixes for instrumentation code. 869fd4e5da5Sopenharmony_ci - #2293: Fix overflow when folding -INT_MIN. 870fd4e5da5Sopenharmony_ci - #2374: Don't merge unreachable blocks when merging blocks. 871fd4e5da5Sopenharmony_ci - Validator 872fd4e5da5Sopenharmony_ci - Support SPV_KHR_no_integer_wrap and related decorations. 873fd4e5da5Sopenharmony_ci - Validate Vulkan rules for OpTypeRuntimeArray. 874fd4e5da5Sopenharmony_ci - Validate NonWritable decoration. 875fd4e5da5Sopenharmony_ci - Many WebGPU specific validation rules were added. 876fd4e5da5Sopenharmony_ci - Validate variable pointer related function call rules. 877fd4e5da5Sopenharmony_ci - Better error messages. 878fd4e5da5Sopenharmony_ci Fixes: 879fd4e5da5Sopenharmony_ci - #2307: Check forwards references in OpTypeArray. 880fd4e5da5Sopenharmony_ci - #2315, #2303: Fixed the layout check for relaxed layout. 881fd4e5da5Sopenharmony_ci - #1628: Emit an error when an OpSwitch target is not an OpLabel. 882fd4e5da5Sopenharmony_ci - Reduce 883fd4e5da5Sopenharmony_ci - Added more documentation for spirv-reduce. 884fd4e5da5Sopenharmony_ci - Add ability to remove OpPhi instructions. 885fd4e5da5Sopenharmony_ci - Add ability to merge two basic blocks. 886fd4e5da5Sopenharmony_ci - Add ability to remove unused functions and unused basic blocks. 887fd4e5da5Sopenharmony_ci Fixes: 888fd4e5da5Sopenharmony_ci 889fd4e5da5Sopenharmony_civ2019.1 2019-01-07 890fd4e5da5Sopenharmony_ci - General: 891fd4e5da5Sopenharmony_ci - Created a new tool called spirv-reduce. 892fd4e5da5Sopenharmony_ci - Add cmake option to turn off SPIRV_TIMER_ENABLED (#2103) 893fd4e5da5Sopenharmony_ci - New optimization pass to update the memory model from GLSL450 to VulkanKHR. 894fd4e5da5Sopenharmony_ci - Recognize OpTypeAccelerationStructureNV as a type instruction and ray tracing storage classes. 895fd4e5da5Sopenharmony_ci - Fix GCC8 build. 896fd4e5da5Sopenharmony_ci - Add --target-env flag to spirv-opt. 897fd4e5da5Sopenharmony_ci - Add --webgpu-mode flag to run optimizations for webgpu. 898fd4e5da5Sopenharmony_ci - The output disassembled line number stead of byte offset in validation errors. (#2091) 899fd4e5da5Sopenharmony_ci - Optimizer 900fd4e5da5Sopenharmony_ci - Added the instrumentation passes for bindless validation. 901fd4e5da5Sopenharmony_ci - Added passes to help preserve OpLine information (#2027) 902fd4e5da5Sopenharmony_ci - Add basic support for EXT_fragment_invocation_density (#2100) 903fd4e5da5Sopenharmony_ci - Fix invalid OpPhi generated by merge-return. (#2172) 904fd4e5da5Sopenharmony_ci - Constant and type manager have been turned into analysies. (#2251) 905fd4e5da5Sopenharmony_ci Fixes: 906fd4e5da5Sopenharmony_ci - #2018: Don't inline functions with a return in a structured CFG contstruct. 907fd4e5da5Sopenharmony_ci - #2047: Fix bug in folding when volatile stores are present. 908fd4e5da5Sopenharmony_ci - #2053: Fix check for when folding floating pointer values is allowed. 909fd4e5da5Sopenharmony_ci - #2130: Don't inline recursive functions. 910fd4e5da5Sopenharmony_ci - #2202: Handle multiple edges between two basic blocks in SSA-rewriter. 911fd4e5da5Sopenharmony_ci - #2205: Don't unswitch a latch condition during loop unswitch. 912fd4e5da5Sopenharmony_ci - #2245: Don't fold branch in loop unswitch. Run dead branch elimination to fold them. 913fd4e5da5Sopenharmony_ci - #2204: Fix eliminate common uniform to place OpPhi instructions correctly. 914fd4e5da5Sopenharmony_ci - #2247: Fix type mismatches caused by scalar replacement. 915fd4e5da5Sopenharmony_ci - #2248: Fix missing OpPhi after merge return. 916fd4e5da5Sopenharmony_ci - #2211: After merge return, fix invalid continue target. 917fd4e5da5Sopenharmony_ci - #2210: Fix loop invariant code motion to not place code between merge instruction and branch. 918fd4e5da5Sopenharmony_ci - #2258: Handle CompositeInsert with no indices in VDCE. 919fd4e5da5Sopenharmony_ci - #2261: Have replace load size handle extact with no index. 920fd4e5da5Sopenharmony_ci - Validator 921fd4e5da5Sopenharmony_ci - Changed the naming convention of outputing ids with names in diagnostic messages. 922fd4e5da5Sopenharmony_ci - Added validation rules for UniformConstant variables in Vulkan. 923fd4e5da5Sopenharmony_ci - #1949: Validate uniform variable type in Vulkan 924fd4e5da5Sopenharmony_ci - Ensure for OpVariable that result type and storage class operand agree (#2052) 925fd4e5da5Sopenharmony_ci - Validator: Support VK_EXT_scalar_block_layout 926fd4e5da5Sopenharmony_ci - Added Vulkan memory model semantics validation 927fd4e5da5Sopenharmony_ci - Added validation checkes spefic to WebGPU environment. 928fd4e5da5Sopenharmony_ci - Add support for VK_EXT_Transform_feedback capabilities (#2088) 929fd4e5da5Sopenharmony_ci - Add validation for OpArrayLength. (#2117) 930fd4e5da5Sopenharmony_ci - Ensure that function parameter's type is not void (#2118) 931fd4e5da5Sopenharmony_ci - Validate pointer variables (#2111) 932fd4e5da5Sopenharmony_ci - Add check for QueueFamilyKHMR memory scope (#2144) 933fd4e5da5Sopenharmony_ci - Validate PushConstants annotation and type (#2140) 934fd4e5da5Sopenharmony_ci - Allow Float16/Int8 for Vulkan 1.0 (#2153) 935fd4e5da5Sopenharmony_ci - Check binding annotations in resource variables (#2151, #2167) 936fd4e5da5Sopenharmony_ci - Validate OpForwardPointer (#2156) 937fd4e5da5Sopenharmony_ci - Validate operation for OpSpecConstantOp (#2260) 938fd4e5da5Sopenharmony_ci Fixes: 939fd4e5da5Sopenharmony_ci - #2049: Allow InstanceId for NV ray tracing 940fd4e5da5Sopenharmony_ci - Reduce 941fd4e5da5Sopenharmony_ci - Initial commit wit a few passes to reduce test cases. 942fd4e5da5Sopenharmony_ci - Validation is run after each reduction step. 943fd4e5da5Sopenharmony_ci Fixes: 944fd4e5da5Sopenharmony_ci 945fd4e5da5Sopenharmony_ci 946fd4e5da5Sopenharmony_civ2018.6 2018-11-07 947fd4e5da5Sopenharmony_ci - General: 948fd4e5da5Sopenharmony_ci - Added support for the Nvidia Turing and ray tracing extensions. 949fd4e5da5Sopenharmony_ci - Make C++11 the CXX standard in CMakeLists.txt. 950fd4e5da5Sopenharmony_ci - Enabled a parallel build for MSVC. 951fd4e5da5Sopenharmony_ci - Enable pre-compiled headers for MSVC. 952fd4e5da5Sopenharmony_ci - Added a code of conduct. 953fd4e5da5Sopenharmony_ci - EFFCEE and RE2 are now required when build the tests. 954fd4e5da5Sopenharmony_ci - Optimizer 955fd4e5da5Sopenharmony_ci - Unrolling loops marked for unrolling in the legalization passes. 956fd4e5da5Sopenharmony_ci - Improved the compile time of loop unrolling. 957fd4e5da5Sopenharmony_ci - Changee merge-return to create a placeholder loop around the function. 958fd4e5da5Sopenharmony_ci - Small improvement to merge-blocks to allow it to merge more often. 959fd4e5da5Sopenharmony_ci - Enforce an upper bound for the ids, and add option to set it. 960fd4e5da5Sopenharmony_ci - #1966: Report error if there are unreachable block before running merge return 961fd4e5da5Sopenharmony_ci Fixes: 962fd4e5da5Sopenharmony_ci - #1917: Allow 0 (meaning unlimited) as a parameter to --scalar-replacement 963fd4e5da5Sopenharmony_ci - #1915: Improve handling of group decorations. 964fd4e5da5Sopenharmony_ci - #1942: Fix incorrect uses of the constant manager. Avoids type mismatches in generated code. 965fd4e5da5Sopenharmony_ci - #1997: Fix dead branch elimination when there is a loop in folded selection. 966fd4e5da5Sopenharmony_ci - #1991: Fixes legality check in if-conversion. 967fd4e5da5Sopenharmony_ci - #1987: Add nullptr check to array copy propagation. 968fd4e5da5Sopenharmony_ci - #1984: Better handling of OpUnreachable in ADCE. 969fd4e5da5Sopenharmony_ci - #1983: Run merge return on reachable functions only. 970fd4e5da5Sopenharmony_ci - #1956: Handled atomic operations in ADCE. 971fd4e5da5Sopenharmony_ci - #1963: Fold integer divisions by 0 to 0. 972fd4e5da5Sopenharmony_ci - #2019: Handle MemberDecorateStringGOOGLE in ADCE and strip reflect. 973fd4e5da5Sopenharmony_ci - Validator 974fd4e5da5Sopenharmony_ci - Added validation for OpGroupNonUniformBallotBitCount. 975fd4e5da5Sopenharmony_ci - Added validation for the Vulkan memory model. 976fd4e5da5Sopenharmony_ci - Added support for VK_KHR_shader_atddomic_int64. 977fd4e5da5Sopenharmony_ci - Added validation for execution modes. 978fd4e5da5Sopenharmony_ci - Added validation for runtime array layouts. 979fd4e5da5Sopenharmony_ci - Added validation for 8-bit storage. 980fd4e5da5Sopenharmony_ci - Added validation of OpPhi instructions with pointer result type. 981fd4e5da5Sopenharmony_ci - Added checks for the Vulkan memory model. 982fd4e5da5Sopenharmony_ci - Validate MakeTexelAvailableKHR and MakeTexelVisibleKHR 983fd4e5da5Sopenharmony_ci - Allow atomic function pointer for OpenCL. 984fd4e5da5Sopenharmony_ci - FPRounding mode checks were implemented. 985fd4e5da5Sopenharmony_ci - Added validation for the id bound with an option to set the max id bound. 986fd4e5da5Sopenharmony_ci Fixes: 987fd4e5da5Sopenharmony_ci - #1882: Improve the validation of decorations to reduce memory usage. 988fd4e5da5Sopenharmony_ci - #1891: Fix an potential infinite loop in dead-branch-elimination. 989fd4e5da5Sopenharmony_ci - #1405: Validate the storage class of boolean objects. 990fd4e5da5Sopenharmony_ci - #1880: Identify arrays of type void as invalid. 991fd4e5da5Sopenharmony_ci - #487: Validate OpImageTexelPointer. 992fd4e5da5Sopenharmony_ci - #1922: Validate OpPhi instructions are at the start of a block correctly. 993fd4e5da5Sopenharmony_ci - #1923: Validate function scope variable are at the start of the entry block. 994fd4e5da5Sopenharmony_ci 995fd4e5da5Sopenharmony_civ2018.5 2018-09-07 996fd4e5da5Sopenharmony_ci - General: 997fd4e5da5Sopenharmony_ci - Support SPV_KHR_vulkan_memory_model 998fd4e5da5Sopenharmony_ci - Update Dim capabilities, to match SPIR-V 1.3 Rev 4 999fd4e5da5Sopenharmony_ci - Automated build bots no run tests for the VS2013 case 1000fd4e5da5Sopenharmony_ci - Support Chromium GN build 1001fd4e5da5Sopenharmony_ci - Use Kokoro bots: 1002fd4e5da5Sopenharmony_ci - Disable Travis-CI bots 1003fd4e5da5Sopenharmony_ci - Disable AppVeyor VisualStudio Release builds. Keep VS 2017 Debug build 1004fd4e5da5Sopenharmony_ci - Don't check export symbols on OSX (Darwin): some installations don't have 'objdump' 1005fd4e5da5Sopenharmony_ci - Reorganize source files and namespaces 1006fd4e5da5Sopenharmony_ci - Fixes for ClangTidy, and whitespace (passes 'git cl presumit --all -uf') 1007fd4e5da5Sopenharmony_ci - Fix unused param compile warnings/errors when Effcee not present 1008fd4e5da5Sopenharmony_ci - Avoid including time headers when timer functionality is disabled 1009fd4e5da5Sopenharmony_ci - Avoid too-stringent warnings flags for Clang on Windows 1010fd4e5da5Sopenharmony_ci - Internal refactoring 1011fd4e5da5Sopenharmony_ci - Add hooks for automated fuzzing 1012fd4e5da5Sopenharmony_ci - Add testing of command line executables 1013fd4e5da5Sopenharmony_ci - #1688: Use binary mode on stdin; fixes "spirv-dis <foo.spv" on Windows 1014fd4e5da5Sopenharmony_ci - Optimizer 1015fd4e5da5Sopenharmony_ci - The optimizer validates the module before it begins 1016fd4e5da5Sopenharmony_ci - Add API to register passes by string name 1017fd4e5da5Sopenharmony_ci - Fold a vector shuffle feeding a vector shuffle 1018fd4e5da5Sopenharmony_ci - Add -combine-access-chains transform 1019fd4e5da5Sopenharmony_ci - Refactor how IRContext is handled by passes 1020fd4e5da5Sopenharmony_ci - Improve bookkeeping for instruction result type and result id 1021fd4e5da5Sopenharmony_ci - Fix over-duplication of decorations 1022fd4e5da5Sopenharmony_ci - Fix handling of exits from selections in dead-branch elimination, and dead code 1023fd4e5da5Sopenharmony_ci elimination. 1024fd4e5da5Sopenharmony_ci - Fix handling of certain kinds of flow control in merge-return 1025fd4e5da5Sopenharmony_ci Fixes: 1026fd4e5da5Sopenharmony_ci - #1721: Fix size bug when folding vector shuffles 1027fd4e5da5Sopenharmony_ci - #1722: Fix size infinite loop when folding vector shuffles 1028fd4e5da5Sopenharmony_ci - #1724: Fix finding a constant of a specific type 1029fd4e5da5Sopenharmony_ci - #1727: Dead branch elim: Reorder blocks if needed to satisfy dominance rule 1030fd4e5da5Sopenharmony_ci - #1729: Handle VariablePointers cases in various optimizations 1031fd4e5da5Sopenharmony_ci - #1731: Fix vector shuffle with literal id indicating undef value 1032fd4e5da5Sopenharmony_ci - #1736: Fix handling of decorations and phis in merge-return 1033fd4e5da5Sopenharmony_ci - #1787: Fix handling of decorations related to access chains 1034fd4e5da5Sopenharmony_ci - #1865: Avoid leaking memory for SPIR-V constant values 1035fd4e5da5Sopenharmony_ci - Validator 1036fd4e5da5Sopenharmony_ci - Improve error messages 1037fd4e5da5Sopenharmony_ci - Avoid platform-dependent traversal ordering, to ensure consistent messages 1038fd4e5da5Sopenharmony_ci - Use libspirv::Instruction where possible 1039fd4e5da5Sopenharmony_ci - Add option to skip all block layout checks 1040fd4e5da5Sopenharmony_ci - Validate all type IDs 1041fd4e5da5Sopenharmony_ci - Validate uses of OpFunction 1042fd4e5da5Sopenharmony_ci - Validate uses of OpTypeFunction 1043fd4e5da5Sopenharmony_ci - Disallow a struct containing its own type https://crbug.com/874372 1044fd4e5da5Sopenharmony_ci - #1685: Vulkan permits non-monotonic offsets for block members 1045fd4e5da5Sopenharmony_ci - #1697: Enforce block layout rules even when using relaxed block layout option 1046fd4e5da5Sopenharmony_ci - #1719: Fix line number for vector shuffle valiation error 1047fd4e5da5Sopenharmony_ci - #1789: Avoid assertion failure when validating some functions 1048fd4e5da5Sopenharmony_ci - #1800: Fix validation of OpCopyMemorySized 1049fd4e5da5Sopenharmony_ci - #1822: Stop enforcing struct member offset montonicity 1050fd4e5da5Sopenharmony_ci - #1831: Disallow void members in structs 1051fd4e5da5Sopenharmony_ci 1052fd4e5da5Sopenharmony_civ2018.4 2018-07-08 1053fd4e5da5Sopenharmony_ci - General: 1054fd4e5da5Sopenharmony_ci - Support SPV_KHR_8bit_storage 1055fd4e5da5Sopenharmony_ci - Add gclient and presubmit configurations 1056fd4e5da5Sopenharmony_ci - Enable Kokoro build bots (#1625) 1057fd4e5da5Sopenharmony_ci - Group tests into fewer executables, reduces load on CI 1058fd4e5da5Sopenharmony_ci - Port test script to Python 3 1059fd4e5da5Sopenharmony_ci - Symbol export tests respect SPIRV_SKIP_TESTS 1060fd4e5da5Sopenharmony_ci - #1596: Operand lookup succeeds if enabled by a capability 1061fd4e5da5Sopenharmony_ci - #1624: Instruction lookup succeeds if enabled by a capability 1062fd4e5da5Sopenharmony_ci - Refactoring namespaces: 1063fd4e5da5Sopenharmony_ci - #1678: Change libspirv to spvtools 1064fd4e5da5Sopenharmony_ci - Code in source/utils moved into spvtools::utils 1065fd4e5da5Sopenharmony_ci - Code in source/comp moved into spvtools::comp 1066fd4e5da5Sopenharmony_ci - Optimizer: 1067fd4e5da5Sopenharmony_ci - Remove insert-extract-elim pass. Use simplification pass instead. 1068fd4e5da5Sopenharmony_ci - Preserve instruction-to-block mapping in most passes, to reduce runtime. 1069fd4e5da5Sopenharmony_ci - Small vector optimization for operands 1070fd4e5da5Sopenharmony_ci - Add pass to move Private variables to Function. Increase opportunity to optimize. 1071fd4e5da5Sopenharmony_ci - Fixes: 1072fd4e5da5Sopenharmony_ci #1120: Check static uses of entry point interfaces 1073fd4e5da5Sopenharmony_ci #1372: Avoid merging some structs, to preserve names for reflection 1074fd4e5da5Sopenharmony_ci #1577: Scalar replacement uses only undecorated types. 1075fd4e5da5Sopenharmony_ci #1578: Fix handling of forward-pointer types, and types embedding pointers 1076fd4e5da5Sopenharmony_ci to themselves. 1077fd4e5da5Sopenharmony_ci #1591: Inliner: Callee variable with initializer should have a store at the call site. 1078fd4e5da5Sopenharmony_ci #1634: Fix crash: Use type id in vector type lookup 1079fd4e5da5Sopenharmony_ci #1649: Fix assert in compact-ids pass 1080fd4e5da5Sopenharmony_ci Fix constant folder: ensure it uses the right type 1081fd4e5da5Sopenharmony_ci #1659: Folding rules added to IRContext. Avoids leak. 1082fd4e5da5Sopenharmony_ci - Validator 1083fd4e5da5Sopenharmony_ci - Add work-in-progress WebGPU environment. Disallows OpUndef 1084fd4e5da5Sopenharmony_ci - #670, #1581: Improve error messages; disassemble instruction 1085fd4e5da5Sopenharmony_ci - #491: Check structured switches 1086fd4e5da5Sopenharmony_ci - #937: Check layout rules for Block and BufferBlock in Uniform, StorageBuffer, PushConstant 1087fd4e5da5Sopenharmony_ci - #1281: Check invalid branches into structured constructs 1088fd4e5da5Sopenharmony_ci - #1522: Disallow array-of-arrays with DescriptorSets 1089fd4e5da5Sopenharmony_ci - #1577: Allow duplicate pointer types. 1090fd4e5da5Sopenharmony_ci - #1581: Better messages: output ID names along with numbers in more cases. 1091fd4e5da5Sopenharmony_ci - #1597: Check Vulkan 1.1 capabilities 1092fd4e5da5Sopenharmony_ci - #1618: Check invalid exit from structured case construct 1093fd4e5da5Sopenharmony_ci - #1622: Run IdPass before DataRulesPass 1094fd4e5da5Sopenharmony_ci - #1632: Reduce test time by artificially lowering limits in limit test 1095fd4e5da5Sopenharmony_ci - #1638: Block-decorated structs member order must respect offset order 1096fd4e5da5Sopenharmony_ci - #1657: Improve CFG validation diagnostics 1097fd4e5da5Sopenharmony_ci - Khronos SPIR-V #337: GLSL.std.450 Refract instruction Eta param can be any float scalar. 1098fd4e5da5Sopenharmony_ci - #1606: PushConstant Blocks follow storage-buffer layout rules 1099fd4e5da5Sopenharmony_ci - #1664: Check layout of StorageBuffer variables with Block decoration, using storage buffer 1100fd4e5da5Sopenharmony_ci rules 1101fd4e5da5Sopenharmony_ci - #1666: Layout validation should permit {vec3; float} packing 1102fd4e5da5Sopenharmony_ci - #1637, #1668: Layout validation uses RowMajor, ArrayStride, MatrixStride properly 1103fd4e5da5Sopenharmony_ci - Linker 1104fd4e5da5Sopenharmony_ci - Avoid buffer overrun when creating OpModuleProcessed 1105fd4e5da5Sopenharmony_ci 1106fd4e5da5Sopenharmony_civ2018.3 2018-05-25 1107fd4e5da5Sopenharmony_ci - General: 1108fd4e5da5Sopenharmony_ci - Support SPV_EXT_descriptor_indexing 1109fd4e5da5Sopenharmony_ci - Support SPV_GOOGLE_decorate_string 1110fd4e5da5Sopenharmony_ci - Support SPV_GOOGLE_hlsl_functionality1 1111fd4e5da5Sopenharmony_ci - Support SPV_NV_shader_subgroup_partitioned 1112fd4e5da5Sopenharmony_ci - Use "unified1" grammar from SPIRV-Headers 1113fd4e5da5Sopenharmony_ci - Simplify support for new extensions. Assembler, disassembler, and simple validation 1114fd4e5da5Sopenharmony_ci support is automatic if new tokens are introduced with appropriate extension 1115fd4e5da5Sopenharmony_ci attributes in the "unified1" SPIR-V core grammar. 1116fd4e5da5Sopenharmony_ci - Disassembler: Emit more digits on floating point, to reliably reproduce all 1117fd4e5da5Sopenharmony_ci significand bits. (Use std::max_digits10 instead of std::digits10) 1118fd4e5da5Sopenharmony_ci - Fix compilation for old XCode versions: Explicit construction required for std::set. 1119fd4e5da5Sopenharmony_ci - Optimizer: 1120fd4e5da5Sopenharmony_ci - Add --strip-reflect 1121fd4e5da5Sopenharmony_ci - Add --time-report 1122fd4e5da5Sopenharmony_ci - Add --loop-fission 1123fd4e5da5Sopenharmony_ci - Add lop fusion. 1124fd4e5da5Sopenharmony_ci - Add loop peeling pass and internal utility. 1125fd4e5da5Sopenharmony_ci - Improve optimizer runtime. 1126fd4e5da5Sopenharmony_ci - Merge-return now works with structured control flow. 1127fd4e5da5Sopenharmony_ci - New (faster) SSA rewriter to convert local loads and stores to SSA IDs and phis. 1128fd4e5da5Sopenharmony_ci Can replace load/store elimination passes. 1129fd4e5da5Sopenharmony_ci - Fix instruction folding case: insertion that feeds and extract, when the extract 1130fd4e5da5Sopenharmony_ci remains. 1131fd4e5da5Sopenharmony_ci - Fold OpDot. 1132fd4e5da5Sopenharmony_ci - Fold OpFNegate. 1133fd4e5da5Sopenharmony_ci - Fold multply and divide of same value. 1134fd4e5da5Sopenharmony_ci - Fold FClamp feeding a compare. 1135fd4e5da5Sopenharmony_ci - Fold OpLoad feeding an extract, to reduce excessive copying. (#1547) 1136fd4e5da5Sopenharmony_ci - Fold Fmix feeding an extract. 1137fd4e5da5Sopenharmony_ci - Use simplification pass instead of insert-extract elimination. 1138fd4e5da5Sopenharmony_ci - Constant fold OpVectorTimesScalar. 1139fd4e5da5Sopenharmony_ci - Copy propagate arrays, in simple cases. 1140fd4e5da5Sopenharmony_ci - Aggressive dead code elimination: Can remove more instructions, e.g. derivatives. 1141fd4e5da5Sopenharmony_ci - Aggressive dead code elimination: Remove Workgroup variables that are written but not read. 1142fd4e5da5Sopenharmony_ci - Better handling of OpImageTexelPointer 1143fd4e5da5Sopenharmony_ci - Initial utilities for scalar evolution. 1144fd4e5da5Sopenharmony_ci - Add Vector dead code elimination. 1145fd4e5da5Sopenharmony_ci - Each pass can only run once. 1146fd4e5da5Sopenharmony_ci - Allow code hosting in if-conversion. 1147fd4e5da5Sopenharmony_ci - Add external interface for adding a PassToken, so external code can make their own 1148fd4e5da5Sopenharmony_ci passes. 1149fd4e5da5Sopenharmony_ci - Fixes: 1150fd4e5da5Sopenharmony_ci #1404: Don't optimize away the compute compute workgroup size constant. 1151fd4e5da5Sopenharmony_ci #1407: Remove a bad assertion 1152fd4e5da5Sopenharmony_ci #1456: Fix bug in SSA rewriter related to variables updated in loops. 1153fd4e5da5Sopenharmony_ci #1487: Fix long runtime in Dead insertion elimination: Don't revist select phi nodes. 1154fd4e5da5Sopenharmony_ci #1492: Aggressive dead code elimination can remove OpDecorateStringGOOGLE. 1155fd4e5da5Sopenharmony_ci #1527: Fix inlining of functions having OpKill and OpUnreachable. 1156fd4e5da5Sopenharmony_ci #1559: Fix assert failure in reduce-load-size pass. 1157fd4e5da5Sopenharmony_ci #1556: Aggressive dead code elimination: Fix handling of OpCopyMemory. 1158fd4e5da5Sopenharmony_ci - Validator: 1159fd4e5da5Sopenharmony_ci - Check Vulkan built-in variables 1160fd4e5da5Sopenharmony_ci - Check Vulkan-specific atomic result type rule. 1161fd4e5da5Sopenharmony_ci - Relax control barrier check for SPIR-V 1.3. Fixes #1427 1162fd4e5da5Sopenharmony_ci - Check OpPhi. 1163fd4e5da5Sopenharmony_ci - Check OpMemoryModel. 1164fd4e5da5Sopenharmony_ci - Stop checking sizes derived from spec-constants. 1165fd4e5da5Sopenharmony_ci - Re-enable checks for OpUConvert. 1166fd4e5da5Sopenharmony_ci - Vulkan: Fix check for PrimitiveId: Permit as Input in fragment shader. 1167fd4e5da5Sopenharmony_ci - Validate binary version for the given target environment. 1168fd4e5da5Sopenharmony_ci - Add tests for OpBranch checks. 1169fd4e5da5Sopenharmony_ci - Vulkan 1.1: Check scope for non-uniform subgroup operations. 1170fd4e5da5Sopenharmony_ci - Fix checks for SPV_AMD_gpu_shader_int16. 1171fd4e5da5Sopenharmony_ci - Fix logical layout check for OpDecorateId. 1172fd4e5da5Sopenharmony_ci - Fix checks for ViewportIndex & Layer for Vulkan and SPV_EXT_shader_viewport_index_layer. 1173fd4e5da5Sopenharmony_ci - Fixes: 1174fd4e5da5Sopenharmony_ci #1470: Vulkan: Don't restrict WorkgroupSize to Input storage class. 1175fd4e5da5Sopenharmony_ci #1469: Vulkan: Permit Subgroup memory scope for Vulkan 1.1. 1176fd4e5da5Sopenharmony_ci #1472: Per-vertex variable validation fixes. 1177fd4e5da5Sopenharmony_ci #1483: Valdiate barrier execution scopes for Vulkan 1.1. 1178fd4e5da5Sopenharmony_ci - Fixes: 1179fd4e5da5Sopenharmony_ci #898: Linker properly removes FuncParamAttr from imported symbols. 1180fd4e5da5Sopenharmony_ci #924, #1174: Fix handling of decoration groups in optimizer, linker. 1181fd4e5da5Sopenharmony_ci 1182fd4e5da5Sopenharmony_civ2018.2 2018-03-07 1183fd4e5da5Sopenharmony_ci - General: 1184fd4e5da5Sopenharmony_ci - Support SPIR-V 1.3 and Vulkan 1.1. 1185fd4e5da5Sopenharmony_ci - Default target environment is now SPIR-V 1.3. For command-line tools, 1186fd4e5da5Sopenharmony_ci use the --target-env option to override the default. Examples: 1187fd4e5da5Sopenharmony_ci # Generate a SPIR-V 1.0 binary instead of SPIR-V 1.3 1188fd4e5da5Sopenharmony_ci spirv-as --target-env spv1.0 a.spvasm -o a.spv 1189fd4e5da5Sopenharmony_ci spirv-as --target-env vulkan1.0 a.spvasm -o a.spv 1190fd4e5da5Sopenharmony_ci # Validate as Vulkan 1.0 1191fd4e5da5Sopenharmony_ci spirv-val --target-env vulkan1.0 a.spv 1192fd4e5da5Sopenharmony_ci - Support SPV_GOOGLE_decorate_string and SPV_GOOGLE_hlsl_functionality1 1193fd4e5da5Sopenharmony_ci - Fixes: 1194fd4e5da5Sopenharmony_ci - Fix Android.mk build. Compilation was failing due to missing definitions of 1195fd4e5da5Sopenharmony_ci SpvCapabilityFloat16ImageAMD and other enumerated values. 1196fd4e5da5Sopenharmony_ci - Optimizer: Avoid generating duplicate names when merging types. 1197fd4e5da5Sopenharmony_ci - #1375: Validator: SPV_AMD_gpu_shaer_half_float implicitly allows declaration 1198fd4e5da5Sopenharmony_ci of the 16-bit floating point type. 1199fd4e5da5Sopenharmony_ci - #1376: Optimizer: Avoid folding half-precision float. 1200fd4e5da5Sopenharmony_ci 1201fd4e5da5Sopenharmony_civ2018.1 2018-03-02 1202fd4e5da5Sopenharmony_ci - General: 1203fd4e5da5Sopenharmony_ci - Support Visual Studio 2013 again. (Continue support for VS 2015 and VS 2017.) 1204fd4e5da5Sopenharmony_ci - Support building SPIRV-Tools as a shared library. 1205fd4e5da5Sopenharmony_ci - Improve the HLSL legalization optimization recipe. #1311 1206fd4e5da5Sopenharmony_ci - Optimizer: 1207fd4e5da5Sopenharmony_ci - General speedups. 1208fd4e5da5Sopenharmony_ci - Remove generic dead code elimination functionality from transforms: 1209fd4e5da5Sopenharmony_ci --eliminate-local-single-block 1210fd4e5da5Sopenharmony_ci --eliminate-local-single-store 1211fd4e5da5Sopenharmony_ci --eliminate-local-multi-store 1212fd4e5da5Sopenharmony_ci To recover the previous behaviour, a recipe using those transforms should now 1213fd4e5da5Sopenharmony_ci also invoke the --eliminate-dead-code-aggressive transform. 1214fd4e5da5Sopenharmony_ci - Improve folding, including coverage for floating point, OpSelect, and arithmetic 1215fd4e5da5Sopenharmony_ci with non-trivial constant operands. 1216fd4e5da5Sopenharmony_ci - Add loop-invariant code motion pass. 1217fd4e5da5Sopenharmony_ci - Add loop-unrolling pass, for honouring unroll hits. 1218fd4e5da5Sopenharmony_ci - Add loop-unswitch pass. 1219fd4e5da5Sopenharmony_ci - Add instruction simplification pass. 1220fd4e5da5Sopenharmony_ci - Aggressive dead code elimination: Understands capability hierarchy when finding 1221fd4e5da5Sopenharmony_ci instructions it can eliminate (combinators). (PR #1268) 1222fd4e5da5Sopenharmony_ci - CCP can now fold floating point arithmetic. #1311 1223fd4e5da5Sopenharmony_ci - Validator: 1224fd4e5da5Sopenharmony_ci - Validate barrier instructions. 1225fd4e5da5Sopenharmony_ci - Check Vulkan-specific rules for atomics. 1226fd4e5da5Sopenharmony_ci - Check Vulkan prohibition of Location or Component decorations on BuiltIn variables. 1227fd4e5da5Sopenharmony_ci - Linker: 1228fd4e5da5Sopenharmony_ci - Add --verify-ids option 1229fd4e5da5Sopenharmony_ci - Add option to allow a resulting module to be partially linked. 1230fd4e5da5Sopenharmony_ci - Handle OpModuleProcessed (instructions in SPIR-V layout section 7c) 1231fd4e5da5Sopenharmony_ci - Fixes: 1232fd4e5da5Sopenharmony_ci - #1265: Optimizer: Fix use-after free bug in if-conversion. (Fix object lifecycle bug 1233fd4e5da5Sopenharmony_ci in type manager.) 1234fd4e5da5Sopenharmony_ci - #1282: Fix new warnings found by GCC 8.0.1. 1235fd4e5da5Sopenharmony_ci - #1285: Optimizer: Fix random failures during inlining. (Dangling references in DefUseManager) 1236fd4e5da5Sopenharmony_ci - #1295: Optimizer: Fix incorrect handling of Phi nodes in CCP. 1237fd4e5da5Sopenharmony_ci - #1300: Fix CCP: avoid bad CCP transitions and unsettled values. 1238fd4e5da5Sopenharmony_ci - #1304: Avoid static-duration variables of class type (with constructors). 1239fd4e5da5Sopenharmony_ci - #1323: Fix folding of an insert composite feeding a composite extract. 1240fd4e5da5Sopenharmony_ci - #1339: Fix CCP: Handle OpConstantNull boolean values as conditions. 1241fd4e5da5Sopenharmony_ci - #1341: DCEInst: Keep atomic instructions (and some others with side effects). 1242fd4e5da5Sopenharmony_ci - #1354: Don't fold integer division. 1243fd4e5da5Sopenharmony_ci - #1357: Support OpConstantNull in folding. 1244fd4e5da5Sopenharmony_ci - #1361: CCP: Fix handling of non-constant module-scope values 1245fd4e5da5Sopenharmony_ci 1246fd4e5da5Sopenharmony_civ2018.0 2018-02-02 1247fd4e5da5Sopenharmony_ci - General 1248fd4e5da5Sopenharmony_ci - VisualStudio 2013 is no longer supported. VisualStudio 2015 is supported. 1249fd4e5da5Sopenharmony_ci - Use "include/unified1" directory from SPIRV-Headers. Requires recent SPIRV-Headers source. 1250fd4e5da5Sopenharmony_ci - Disassembler: spirv-dis adds --color option to force color disassembly. 1251fd4e5da5Sopenharmony_ci - Optimizer: 1252fd4e5da5Sopenharmony_ci - Add pass to eliminate dead insertions. 1253fd4e5da5Sopenharmony_ci - Aggressive dead code elimination now removes OpSwitch constructs. 1254fd4e5da5Sopenharmony_ci - Block merging occurs in more cases. 1255fd4e5da5Sopenharmony_ci - Add driver workaround transform: replace OpUnreachable with harmless branch to merge. 1256fd4e5da5Sopenharmony_ci - Improve instruction folding framework. 1257fd4e5da5Sopenharmony_ci - Add loop analysis. 1258fd4e5da5Sopenharmony_ci - Add scalar replacement of aggregates to size-optimization recipe. 1259fd4e5da5Sopenharmony_ci - Add pass to replace instructions invalid for a shader stage, with a harmless value. 1260fd4e5da5Sopenharmony_ci This changes the semantics of the program! Not for general use! 1261fd4e5da5Sopenharmony_ci - Rearragne and add passes to performance-optimization recipe, to produce better results. 1262fd4e5da5Sopenharmony_ci - Validator: 1263fd4e5da5Sopenharmony_ci - Validate OpenCL extended instructions. 1264fd4e5da5Sopenharmony_ci - Shaders can't perform atomics on floats. 1265fd4e5da5Sopenharmony_ci - Validate memory semantics values in atomics. 1266fd4e5da5Sopenharmony_ci - Validate instruction-adjacency constraints, e.g. OpPhi predecessors, merge instructions 1267fd4e5da5Sopenharmony_ci immediately precede branches. 1268fd4e5da5Sopenharmony_ci - Fixes: 1269fd4e5da5Sopenharmony_ci - PR 1198: Optimizer: Fix CCP in presence of matrix constants. 1270fd4e5da5Sopenharmony_ci - #1199: Optimizer: Fix CCP: don't propagate spec constants. 1271fd4e5da5Sopenharmony_ci - #1203: Optimizer: Fix common uniform elim bug introduced by refactoring. 1272fd4e5da5Sopenharmony_ci - #1210: Optimizer: Aggressive dead code elimination: Fix 'break' identification. 1273fd4e5da5Sopenharmony_ci - #1212: Optimizer: Aggressive dead code elimination: Was skipping too many instructions. 1274fd4e5da5Sopenharmony_ci - #1214: Optimizer: Aggressive dead code elimination: Fix infinite loop. 1275fd4e5da5Sopenharmony_ci - #1228: Optimizer: Fix CCP: Handling of varying Phi nodes; was resulting in infinite loop. 1276fd4e5da5Sopenharmony_ci - #1245: Optimizer: Dead branch elimination: Avoid a null pointer dereference. 1277fd4e5da5Sopenharmony_ci - #1250: Optimizer: Dead branch elimination: Avoid spuriously reporting a change. 1278fd4e5da5Sopenharmony_ci 1279fd4e5da5Sopenharmony_civ2017.3 2018-01-12 1280fd4e5da5Sopenharmony_ci - General: 1281fd4e5da5Sopenharmony_ci - Support DebugInfo extended instruction set, targeted at OpenCL environments. 1282fd4e5da5Sopenharmony_ci See the SPIR-V Registry. 1283fd4e5da5Sopenharmony_ci - Generate a SPIRV-Tools.pc file for pkg-config. 1284fd4e5da5Sopenharmony_ci - Optimizer: 1285fd4e5da5Sopenharmony_ci - Progress for legalization of code generated from HLSL (issue #1118): 1286fd4e5da5Sopenharmony_ci - Add --legalize-hlsl option to run transforms used to transform intermediate 1287fd4e5da5Sopenharmony_ci code generated by HLSL to SPIR-V for Vulkan compilers. Those compilers 1288fd4e5da5Sopenharmony_ci normally run these transforms automatically. This option is used for developing 1289fd4e5da5Sopenharmony_ci those transforms. 1290fd4e5da5Sopenharmony_ci - Add Private-to-Function variable conversion for modules with logical 1291fd4e5da5Sopenharmony_ci addressing. 1292fd4e5da5Sopenharmony_ci - Add --ccp: SSA Conditional Constant Propagation (CCP) 1293fd4e5da5Sopenharmony_ci - Add --print-all to show disassembly for each optimization pass. 1294fd4e5da5Sopenharmony_ci - Internal: Add loop descriptors and post-order tree iterator. 1295fd4e5da5Sopenharmony_ci - Generalized dead branch elimination 1296fd4e5da5Sopenharmony_ci - Aggressive dead code elimination (ADCE) now removes dead functions and 1297fd4e5da5Sopenharmony_ci module-scope variables. 1298fd4e5da5Sopenharmony_ci - Vector extract/insert elimination now optimizes through some cases of 1299fd4e5da5Sopenharmony_ci VectorShuffle, and GLSL.std.450 Mix extended instruction. 1300fd4e5da5Sopenharmony_ci - Validator: 1301fd4e5da5Sopenharmony_ci - Add validation for GLSL.std.450 extended instruction set. 1302fd4e5da5Sopenharmony_ci - Check out of bounds composite accesses, where that's statically computable. 1303fd4e5da5Sopenharmony_ci Fixes #1112. 1304fd4e5da5Sopenharmony_ci - Check upper bits of literal numbers that aren't a multiple of 32-bits wide. 1305fd4e5da5Sopenharmony_ci - More validation of primitive instructions 1306fd4e5da5Sopenharmony_ci - Add optional "relaxed" checking logical addressing mode to permit some 1307fd4e5da5Sopenharmony_ci cases of pointer-to-pointer. Contributes to HLSL legalization (issue #1118). 1308fd4e5da5Sopenharmony_ci - Fixes: 1309fd4e5da5Sopenharmony_ci #1100: Validator: Image operand Sample can be used with OpImageSparseFetch, 1310fd4e5da5Sopenharmony_ci OpImageSparseRead. 1311fd4e5da5Sopenharmony_ci #1108: Remove duplicates transform was incorrectly removing non-duplicate 1312fd4e5da5Sopenharmony_ci decorations. 1313fd4e5da5Sopenharmony_ci #1111: Optimizer's type manager could reference deleted memory. 1314fd4e5da5Sopenharmony_ci #1112: Fix decoration equality check, e.g. it is now symmetric. 1315fd4e5da5Sopenharmony_ci #1129: Validator now disallows Dim=SupbassData for OpImageSparseRead. 1316fd4e5da5Sopenharmony_ci #1143: Fix CCP: Was generating incorrect code for loops. 1317fd4e5da5Sopenharmony_ci #1153: Fix CCP crash. 1318fd4e5da5Sopenharmony_ci #1154: Optimizer's internal instruction-to-block mappings were sometimes 1319fd4e5da5Sopenharmony_ci inconsistent. 1320fd4e5da5Sopenharmony_ci #1159: Fix CCP infinite loop. 1321fd4e5da5Sopenharmony_ci #1168: Fix dead branch elimination intermittently generating incorrect code. 1322fd4e5da5Sopenharmony_ci Fixes https://github.com/KhronosGroup/glslang/issues/1205 1323fd4e5da5Sopenharmony_ci #1186: Fix validation of PackDouble2x32 and UnpackDouble2x32 1324fd4e5da5Sopenharmony_ci 1325fd4e5da5Sopenharmony_civ2017.2 2017-12-15 1326fd4e5da5Sopenharmony_ci - General: 1327fd4e5da5Sopenharmony_ci - Support OpenCL 1.2, 2.0 target environments, including embedded profiles 1328fd4e5da5Sopenharmony_ci - Add CONTRIBUTING.md 1329fd4e5da5Sopenharmony_ci - Fix exit status code for spirv-link 1330fd4e5da5Sopenharmony_ci - Disassember: Enable emitting ANSI colour codes to a string 1331fd4e5da5Sopenharmony_ci - Library avoids polluting global namespace. The libraries can export C and C++ 1332fd4e5da5Sopenharmony_ci symbols starting with "spv", or in a C++ namespace. Add a test for this. 1333fd4e5da5Sopenharmony_ci - Linux release builds include debug information, for easier profiling 1334fd4e5da5Sopenharmony_ci - Build bots no longer test VisualStudio 2013 1335fd4e5da5Sopenharmony_ci - Testing dependency RE2 requires VisualStudio 2015 or later 1336fd4e5da5Sopenharmony_ci - Build bots check code formatting 1337fd4e5da5Sopenharmony_ci - Optimizer: 1338fd4e5da5Sopenharmony_ci - Add --skip-validation to spirv-opt 1339fd4e5da5Sopenharmony_ci - Add dominance tree analysis 1340fd4e5da5Sopenharmony_ci - Add generic value propagation engine 1341fd4e5da5Sopenharmony_ci - Add global redundancy elimination within a function 1342fd4e5da5Sopenharmony_ci - Add scalar replacement of function-scope variables of composite type 1343fd4e5da5Sopenharmony_ci - Aggressive dead code elimination: Remove empty loops 1344fd4e5da5Sopenharmony_ci - Killing an instruction notifies the IRContext 1345fd4e5da5Sopenharmony_ci - IRContext::KillInst deletes the instruction 1346fd4e5da5Sopenharmony_ci - Move CFG analysis to IRContext 1347fd4e5da5Sopenharmony_ci - Add constant manager 1348fd4e5da5Sopenharmony_ci - Fix: Don't consider derivative instructions as combinators. 1349fd4e5da5Sopenharmony_ci - Fix: Don't delete an instruction twice in local dead-code-elimination 1350fd4e5da5Sopenharmony_ci - Fix: Don't consider derivative instructions as combinators. 1351fd4e5da5Sopenharmony_ci - Validator: 1352fd4e5da5Sopenharmony_ci - Finish checking of image instructions (Section 3.32.10) 1353fd4e5da5Sopenharmony_ci - Check sparse image instructions 1354fd4e5da5Sopenharmony_ci - Check OpTypeImage, OpTypeSampleImage 1355fd4e5da5Sopenharmony_ci - Check composite instructions (Section 3.32.12) 1356fd4e5da5Sopenharmony_ci - Check atomic instructions (Section 3.32.18) 1357fd4e5da5Sopenharmony_ci - Check OpEmitStreamVertex, OpEndStreamPrimitive instructions 1358fd4e5da5Sopenharmony_ci - Re-enable validation of OpCopyObject 1359fd4e5da5Sopenharmony_ci - OpKill, image ImplicitLod and QueryLod instructions can only be used in Fragment 1360fd4e5da5Sopenharmony_ci shaders. 1361fd4e5da5Sopenharmony_ci - Fixes for image instruction validation: 1362fd4e5da5Sopenharmony_ci - Lod image operand only usable with ExplicitLod and OpImageFetch 1363fd4e5da5Sopenharmony_ci - ExplicitLod Lod image operand must be float scalar 1364fd4e5da5Sopenharmony_ci - OpImageFectch Lod image operand must be int scalar 1365fd4e5da5Sopenharmony_ci - OpImageGather component operand must be 32-bits (integer scalar) 1366fd4e5da5Sopenharmony_ci - OpImageQuerySizeLod Lod must be integer scalar 1367fd4e5da5Sopenharmony_ci - Fixes: 1368fd4e5da5Sopenharmony_ci #622: Remove names and decorations when inlining 1369fd4e5da5Sopenharmony_ci #989: Aggressive dead code elim: Don't optimize away live breaks from a loop 1370fd4e5da5Sopenharmony_ci #991: Fix validation of SPV_AMD_shader_ballot 1371fd4e5da5Sopenharmony_ci #1004: Use after free of an instruction, in remove-duplicates transform 1372fd4e5da5Sopenharmony_ci #1007: OpImageRead not required to return 4-component vector 1373fd4e5da5Sopenharmony_ci #1009: OpImageRead can return scalar int/float types 1374fd4e5da5Sopenharmony_ci #1011: OpImageWrite should allow scalar int/float texel types 1375fd4e5da5Sopenharmony_ci #1012: Fix validat Dref type check 1376fd4e5da5Sopenharmony_ci #1017: Load-store elimination considers variable initializations 1377fd4e5da5Sopenharmony_ci #1034: Fix Windows debug build: operator< should be a weak ordering 1378fd4e5da5Sopenharmony_ci #1083: Inlining: Set parent (function) for each inlined basic block. 1379fd4e5da5Sopenharmony_ci #1075: Aggressive dead code elimination: Was leaving dangling references to 1380fd4e5da5Sopenharmony_ci removed blocks. 1381fd4e5da5Sopenharmony_ci 1382fd4e5da5Sopenharmony_civ2017.1 2017-11-23 1383fd4e5da5Sopenharmony_ci - Update README with details on the public_spirv_tools_dev@khronos.org mailing list. 1384fd4e5da5Sopenharmony_ci - General: 1385fd4e5da5Sopenharmony_ci - Automatically deploy built artifacts to GitHub Releases 1386fd4e5da5Sopenharmony_ci - Add a Linker (module combiner). Under development. 1387fd4e5da5Sopenharmony_ci - Add Android.mk for Android NDK builds. 1388fd4e5da5Sopenharmony_ci - Add the 'effcee' library as an optional dependency for use in tests. 1389fd4e5da5Sopenharmony_ci Eventually it will be a required dependency, once downstream projects have 1390fd4e5da5Sopenharmony_ci a chance to adjust. Requires 're2' library. 1391fd4e5da5Sopenharmony_ci - Avoid static-duration variables of class type (with constructors). 1392fd4e5da5Sopenharmony_ci - Hack around bugs in gcc-4.8.1 template handling 1393fd4e5da5Sopenharmony_ci - Faster opcode lookup 1394fd4e5da5Sopenharmony_ci - Validator: 1395fd4e5da5Sopenharmony_ci - Recognize extensions listed on SPIR-V registry, 1396fd4e5da5Sopenharmony_ci through #25 SPV_AMD_shader_fragment_mask 1397fd4e5da5Sopenharmony_ci - Validator issues an info message when it sees an unrecognized extension. 1398fd4e5da5Sopenharmony_ci - Type check basic arithmetic operations 1399fd4e5da5Sopenharmony_ci - Type check carry/extended arithmetic operations 1400fd4e5da5Sopenharmony_ci - Type check vector arithmetic operations 1401fd4e5da5Sopenharmony_ci - Type check Relational and Logical instructions 1402fd4e5da5Sopenharmony_ci - Type check Bit instructions 1403fd4e5da5Sopenharmony_ci - Check type uniqueness rules 1404fd4e5da5Sopenharmony_ci - Check conversion instructions 1405fd4e5da5Sopenharmony_ci - Check image instructions 1406fd4e5da5Sopenharmony_ci - Check derivative instructions 1407fd4e5da5Sopenharmony_ci - Check OpVectorShuffle 1408fd4e5da5Sopenharmony_ci - Check OpBranchConditional 1409fd4e5da5Sopenharmony_ci - OpModuleProcessed is only allowed after debug names section and before annotations 1410fd4e5da5Sopenharmony_ci section. 1411fd4e5da5Sopenharmony_ci - Checks the right kind of return is called for each function (void or non-void). 1412fd4e5da5Sopenharmony_ci - Add option to relax type check when storing structs (--relax-store-struct) 1413fd4e5da5Sopenharmony_ci - Optimizer: 1414fd4e5da5Sopenharmony_ci - Refactoring internal representation of the module, including: 1415fd4e5da5Sopenharmony_ci - IRContext: owns a module and manages analyses 1416fd4e5da5Sopenharmony_ci - Instructions are owned by intrusive lists, and have unique IDs 1417fd4e5da5Sopenharmony_ci - BasicBlock owns its instruction list. 1418fd4e5da5Sopenharmony_ci - DefUseManager: change representation of uses, for faster processing 1419fd4e5da5Sopenharmony_ci on large modules. 1420fd4e5da5Sopenharmony_ci - Add high level recipes: -O, -Os, and -Oconfig 1421fd4e5da5Sopenharmony_ci Recipes for -O and -Os are under development. 1422fd4e5da5Sopenharmony_ci - Add eliminate-dead-function transform 1423fd4e5da5Sopenharmony_ci - Add strength reduction transform: For now, convert multiply by power of 2 1424fd4e5da5Sopenharmony_ci to a bit shift. 1425fd4e5da5Sopenharmony_ci - Add CFG cleanup transform 1426fd4e5da5Sopenharmony_ci - Add removal of dead module-scope variables 1427fd4e5da5Sopenharmony_ci - Add merge-return transform for modules without structured control flow 1428fd4e5da5Sopenharmony_ci - Add redundancy elimination within a basic block (local value numbering) 1429fd4e5da5Sopenharmony_ci - Extract-insert elimination: 1430fd4e5da5Sopenharmony_ci - Recognize the case where the first instruction in the sequence is an 1431fd4e5da5Sopenharmony_ci OpCompositeConstruct or OpConstantComposite 1432fd4e5da5Sopenharmony_ci - Handle some cases of nested structs 1433fd4e5da5Sopenharmony_ci - Dead branch elimination now can eliminate entire selection constructs 1434fd4e5da5Sopenharmony_ci when all arms are dead. 1435fd4e5da5Sopenharmony_ci - Compressing codec: 1436fd4e5da5Sopenharmony_ci - Updated algorithm to 1.01, 1.02, 1.03 1437fd4e5da5Sopenharmony_ci - Not built by default. Use -DSPIRV_BUILD_COMPRESSION=ON to build. 1438fd4e5da5Sopenharmony_ci - Codec can be parameterized by a customized model. 1439fd4e5da5Sopenharmony_ci - Fixes: 1440fd4e5da5Sopenharmony_ci #728: Fix decoration of inlined functions 1441fd4e5da5Sopenharmony_ci #798: spirv-as should fail when given unrecognized long option 1442fd4e5da5Sopenharmony_ci #800: Inliner: Fix inlining function into header of multi-block loop 1443fd4e5da5Sopenharmony_ci #824: Eliminate-local-multi-store: Fix a crash 1444fd4e5da5Sopenharmony_ci #826: Elimiante-local-multi-store: Fix a crash 1445fd4e5da5Sopenharmony_ci #827: Fix crash when compact-ids transform runs before another transform. 1446fd4e5da5Sopenharmony_ci #834: Add Cmake option to build the compressing codec. Off by default. 1447fd4e5da5Sopenharmony_ci #911: Fix classification of Line and NoLine instructions 1448fd4e5da5Sopenharmony_ci 1449fd4e5da5Sopenharmony_civ2017.0 2017-09-01 1450fd4e5da5Sopenharmony_ci - Update README to describe that assembler, disassembler, and binary parser support 1451fd4e5da5Sopenharmony_ci are based on grammar files from the SPIRV-Headers repository. 1452fd4e5da5Sopenharmony_ci 1453fd4e5da5Sopenharmony_civ2016.7 2017-09-01 1454fd4e5da5Sopenharmony_ci - Add SPIR-V 1.2 1455fd4e5da5Sopenharmony_ci - OpenCL 2.2 support is now based on SPIR-V 1.2 1456fd4e5da5Sopenharmony_ci - Support AMD extensions in assembler, disassembler: 1457fd4e5da5Sopenharmony_ci SPV_AMD_gcn_shader 1458fd4e5da5Sopenharmony_ci SPV_AMD_shader_ballot 1459fd4e5da5Sopenharmony_ci SPV_AMD_shader_explicit_vertex_parameter 1460fd4e5da5Sopenharmony_ci SPV_AMD_shader_trinary_minmax 1461fd4e5da5Sopenharmony_ci SPV_AMD_gpu_shader_half_float 1462fd4e5da5Sopenharmony_ci SPV_AMD_texture_gather_bias_lod 1463fd4e5da5Sopenharmony_ci SPV_AMD_gpu_shader_int16 1464fd4e5da5Sopenharmony_ci - Optimizer: Add support for: 1465fd4e5da5Sopenharmony_ci - Inline all function calls in entry points. 1466fd4e5da5Sopenharmony_ci - Flatten decoration groups. Fixes #602 1467fd4e5da5Sopenharmony_ci - Id compaction (minimize Id bound). Fixes #624 1468fd4e5da5Sopenharmony_ci - Eliminate redundant composite insert followed by extract 1469fd4e5da5Sopenharmony_ci - Simplify access chains to local variables 1470fd4e5da5Sopenharmony_ci - Eliminate local variables with a single store, if possible 1471fd4e5da5Sopenharmony_ci - Eliminate local variables with a several stores, if possible 1472fd4e5da5Sopenharmony_ci - Eliminate loads and stores in same block to local variables 1473fd4e5da5Sopenharmony_ci - Eliminate redundant insert/extract to composite values 1474fd4e5da5Sopenharmony_ci - Aggressive dead instruction elimination 1475fd4e5da5Sopenharmony_ci - Eliminate dead branches 1476fd4e5da5Sopenharmony_ci - Merge blocks when the second can only be preceded by the first 1477fd4e5da5Sopenharmony_ci - Eliminate ommon uniform loads 1478fd4e5da5Sopenharmony_ci - Assembler: Add option to preserve numeric ids. Fixes #625 1479fd4e5da5Sopenharmony_ci - Add build target spirv-tools-vimsyntax to generate spvasm.vim, a SPIR-V 1480fd4e5da5Sopenharmony_ci assembly syntax file for Vim. 1481fd4e5da5Sopenharmony_ci - Version string: Allow overriding of wall clock timestamp with contents 1482fd4e5da5Sopenharmony_ci of environment variable SOURCE_DATE_EPOCH. 1483fd4e5da5Sopenharmony_ci - Validator implements relaxed rules for SPV_KHR_16bit_storage. 1484fd4e5da5Sopenharmony_ci - CMake installation rules use GNUInstallDirs. For example, libraries 1485fd4e5da5Sopenharmony_ci will be installed into a lib64 directory if that's the norm for the 1486fd4e5da5Sopenharmony_ci current system. 1487fd4e5da5Sopenharmony_ci - Fixes: 1488fd4e5da5Sopenharmony_ci #500: Parameterize validator limit checks 1489fd4e5da5Sopenharmony_ci #508: Support compilation under CYGWIN 1490fd4e5da5Sopenharmony_ci #517: Fix validation when continue (or case) contstruct is also the head of a 1491fd4e5da5Sopenharmony_ci nested control construct. 1492fd4e5da5Sopenharmony_ci #551: If a merge block is reachable, it must be *strictly* dominated by its 1493fd4e5da5Sopenharmony_ci header. 1494fd4e5da5Sopenharmony_ci #548: Validator: Error when the reserved OpImageSparseSampleProj* opcodes 1495fd4e5da5Sopenharmony_ci are used. 1496fd4e5da5Sopenharmony_ci #611: spvtools::Optimizer was failing to save the module to the output 1497fd4e5da5Sopenharmony_ci binary vector when all passes succeded without changes. 1498fd4e5da5Sopenharmony_ci #629: The inline-entry-points-all optimization could generate invalidly 1499fd4e5da5Sopenharmony_ci structured code when the inlined function had early returns. 1500fd4e5da5Sopenharmony_ci #697: Optimizer's Instruction::ForEachInId method was skipping semantics-id 1501fd4e5da5Sopenharmony_ci and scope-id. 1502fd4e5da5Sopenharmony_ci #755: Inliner: Fix inlining of callee with single Return appearing before 1503fd4e5da5Sopenharmony_ci the end of the function. 1504fd4e5da5Sopenharmony_ci #776: Fix dead branch elimination in presence of complex but dead control 1505fd4e5da5Sopenharmony_ci flow. 1506fd4e5da5Sopenharmony_ci #781: SPV_KHR_variable_pointers allows duplicate pointer types 1507fd4e5da5Sopenharmony_ci #782: Inliner: Fix remapping of non-label forward references in callee 1508fd4e5da5Sopenharmony_ci #787: Inliner: Fix remapping of inlined entry block when called from 1509fd4e5da5Sopenharmony_ci single block loop. 1510fd4e5da5Sopenharmony_ci #790: Inliner: Fix remapping of inlined entry block when callee has 1511fd4e5da5Sopenharmony_ci multiple returns. 1512fd4e5da5Sopenharmony_ci 1513fd4e5da5Sopenharmony_civ2016.6 2016-12-13 1514fd4e5da5Sopenharmony_ci - Published the C++ interface for assembling, disassembling, validation, and 1515fd4e5da5Sopenharmony_ci optimization. 1516fd4e5da5Sopenharmony_ci - Support SPV_KHR_shader_draw_parameters in assembler, disassembler, parser. 1517fd4e5da5Sopenharmony_ci - Validator: 1518fd4e5da5Sopenharmony_ci - Add validator API accepting raw binary words 1519fd4e5da5Sopenharmony_ci - Increased coverage: 1520fd4e5da5Sopenharmony_ci - Checks "Data rules" in Universal Validation Rules, section 2.16.1 1521fd4e5da5Sopenharmony_ci - WIP: Universal Limits. 1522fd4e5da5Sopenharmony_ci - The minimum mandated upper bounds are checked. 1523fd4e5da5Sopenharmony_ci - TODO: Parameterize the validator to allow larger limits accepted by 1524fd4e5da5Sopenharmony_ci a more than minimally capable implementation. 1525fd4e5da5Sopenharmony_ci - OpSampledImage checks 1526fd4e5da5Sopenharmony_ci - OpConstantComposite checks 1527fd4e5da5Sopenharmony_ci - Id bound check 1528fd4e5da5Sopenharmony_ci - Disasssembler: 1529fd4e5da5Sopenharmony_ci - Generates friendly GLSL-based names for more builtin variables 1530fd4e5da5Sopenharmony_ci - Generates friendly names for numeric OpConstant values 1531fd4e5da5Sopenharmony_ci - Vendor tool info extracted from SPIR-V XML registry file. 1532fd4e5da5Sopenharmony_ci - Fixes issues: 1533fd4e5da5Sopenharmony_ci #429: Validator: Allow OpTypeForwardPointer and OpTypeStruct to reference 1534fd4e5da5Sopenharmony_ci undefined IDs 1535fd4e5da5Sopenharmony_ci #482: Validator: OpVariable initializer can be an ID of a module-scope variable 1536fd4e5da5Sopenharmony_ci 1537fd4e5da5Sopenharmony_civ2016.5 2016-09-16 1538fd4e5da5Sopenharmony_ci - Support SPV_KHR_shader_ballot in assembler, disassembler, parser. 1539fd4e5da5Sopenharmony_ci - Disassembler: Generate friendly names for built-in variables. 1540fd4e5da5Sopenharmony_ci - Partial fixes: 1541fd4e5da5Sopenharmony_ci #359: Add Emacs helper for automatically diassembling/assembling a SPIR-V 1542fd4e5da5Sopenharmony_ci binary on file load/save. 1543fd4e5da5Sopenharmony_ci - Fixes: 1544fd4e5da5Sopenharmony_ci #414: Validator: Allow OpUndef for composite constants 1545fd4e5da5Sopenharmony_ci #415: Validator: Phi can use its own value in some cases. 1546fd4e5da5Sopenharmony_ci 1547fd4e5da5Sopenharmony_civ2016.4 2016-09-01 1548fd4e5da5Sopenharmony_ci - Relicensed under Apache 2.0 1549fd4e5da5Sopenharmony_ci - Add optimization passes (in API and spirv-opt command) 1550fd4e5da5Sopenharmony_ci - Fold spec constants defined with OpSpecConstantOp and 1551fd4e5da5Sopenharmony_ci OpSpecConstantComposite to normal constants with fixed value(s). 1552fd4e5da5Sopenharmony_ci - Fixes issues: 1553fd4e5da5Sopenharmony_ci #318: Relicensed under Apache 2.0 1554fd4e5da5Sopenharmony_ci 1555fd4e5da5Sopenharmony_civ2016.3 2016-08-24 1556fd4e5da5Sopenharmony_ci - Add target environment enums for OpenCL 2.1, OpenCL 2.2, 1557fd4e5da5Sopenharmony_ci OpenGL 4.0, OpenGL 4.1, OpenGL 4.2, OpenGL 4.3, OpenGL 4.5. 1558fd4e5da5Sopenharmony_ci - Add spirv-cfg, an experimental tool to dump the control flow graph 1559fd4e5da5Sopenharmony_ci as a GraphiViz "dot" graph 1560fd4e5da5Sopenharmony_ci - Add optimization pass: Eliminate dead constants. 1561fd4e5da5Sopenharmony_ci - Add spirv-lesspipe.sh filter utility 1562fd4e5da5Sopenharmony_ci - Fixes issues: 1563fd4e5da5Sopenharmony_ci #288: Check def-use dominance rules for OpPhi (variable,parent) operands 1564fd4e5da5Sopenharmony_ci #339: Allow OpUndef in types-constants-global-vars section, as required 1565fd4e5da5Sopenharmony_ci by SPIR-V 1.0 Rev7, 1.1 Rev 3. 1566fd4e5da5Sopenharmony_ci #340: Avoid race on mkdir during build 1567fd4e5da5Sopenharmony_ci #365: Relax PointSize, ClipDistance, CullDistance capability check in all 1568fd4e5da5Sopenharmony_ci environments not just Vulkan 1.0. 1569fd4e5da5Sopenharmony_ci 1570fd4e5da5Sopenharmony_civ2016.2 2016-08-05 1571fd4e5da5Sopenharmony_ci - Validator is incomplete 1572fd4e5da5Sopenharmony_ci - Checks ID use block is dominated by definition block 1573fd4e5da5Sopenharmony_ci - Add optimization passes (in API and spirv-opt command) 1574fd4e5da5Sopenharmony_ci - Strip debug info instructions 1575fd4e5da5Sopenharmony_ci - Freeze spec constant to their default values 1576fd4e5da5Sopenharmony_ci - Allow INotEqual as operation for OpSpecConstantOp 1577fd4e5da5Sopenharmony_ci - Fixes bugs: 1578fd4e5da5Sopenharmony_ci #270: validator: crash when continue construct is unreachable 1579fd4e5da5Sopenharmony_ci #279: validator: infinite loop when analyzing some degenerate control 1580fd4e5da5Sopenharmony_ci flow graphs 1581fd4e5da5Sopenharmony_ci #286: validator: don't incorrectly generate def-use error for 1582fd4e5da5Sopenharmony_ci (variable,parent) parameters to OpPhi 1583fd4e5da5Sopenharmony_ci #290: disassembler: never generate bare % for an identifier 1584fd4e5da5Sopenharmony_ci #295: validator: def-use dominance check should ignore unreachable uses 1585fd4e5da5Sopenharmony_ci #276: validator: allow unreachable continue constructs 1586fd4e5da5Sopenharmony_ci #297: validator: allow an unreachable block to branch to a reachable 1587fd4e5da5Sopenharmony_ci merge block 1588fd4e5da5Sopenharmony_ci 1589fd4e5da5Sopenharmony_civ2016.1 2016-07-19 1590fd4e5da5Sopenharmony_ci - Fix https://github.com/KhronosGroup/SPIRV-Tools/issues/261 1591fd4e5da5Sopenharmony_ci Turn off ClipDistance and CullDistance capability checks for Vulkan. 1592fd4e5da5Sopenharmony_ci - The disassembler can emit friendly names based on debug info (OpName 1593fd4e5da5Sopenharmony_ci instructions), and will infer somewhat friendly names for most types. 1594fd4e5da5Sopenharmony_ci This is turned on by default for the spirv-dis command line tool. 1595fd4e5da5Sopenharmony_ci - Updated to support SPIR-V 1.1 rev 2 1596fd4e5da5Sopenharmony_ci - Input StorageClass, Sampled1D capability, and SampledBuffer capability 1597fd4e5da5Sopenharmony_ci do not require Shader capability anymore. 1598fd4e5da5Sopenharmony_ci 1599fd4e5da5Sopenharmony_civ2016.0 2016-07-04 1600fd4e5da5Sopenharmony_ci 1601fd4e5da5Sopenharmony_ci - Adds v<year>.<index> versioning, with "-dev" indicating 1602fd4e5da5Sopenharmony_ci work in progress. The intent is to more easly report 1603fd4e5da5Sopenharmony_ci and summarize functionality when SPIRV-Tools is incorporated 1604fd4e5da5Sopenharmony_ci in downstream projects. 1605fd4e5da5Sopenharmony_ci 1606fd4e5da5Sopenharmony_ci - Summary of functionality (See the README.md for more): 1607fd4e5da5Sopenharmony_ci - Supports SPIR-V 1.1 Rev 1 1608fd4e5da5Sopenharmony_ci - Supports SPIR-V 1.0 Rev 5 1609fd4e5da5Sopenharmony_ci - Supports GLSL std450 extended instructions 1.0 Rev 3 1610fd4e5da5Sopenharmony_ci - Supports OpenCL extended instructions 1.0 Rev 2 1611fd4e5da5Sopenharmony_ci - Assembler, disassembler are complete 1612fd4e5da5Sopenharmony_ci - Supports floating point widths of 16, 32, 64 bits 1613fd4e5da5Sopenharmony_ci - Supports integer widths up to 64 bits 1614fd4e5da5Sopenharmony_ci - Validator is incomplete 1615fd4e5da5Sopenharmony_ci - Checks capability requirements in most cases 1616fd4e5da5Sopenharmony_ci - Checks module layout constraints 1617fd4e5da5Sopenharmony_ci - Checks ID use-definition ordering constraints, 1618fd4e5da5Sopenharmony_ci ignoring control flow 1619fd4e5da5Sopenharmony_ci - Checks some control flow graph rules 1620fd4e5da5Sopenharmony_ci - Optimizer is introduced, with few available transforms. 1621fd4e5da5Sopenharmony_ci - Supported on Linux, OSX, Android, Windows 1622fd4e5da5Sopenharmony_ci 1623fd4e5da5Sopenharmony_ci - Fixes bugs: 1624fd4e5da5Sopenharmony_ci - #143: OpenCL pow and pown arguments 1625