- 27 Mar, 2020 1 commit
-
-
Alexis Hetu authored
fd773eb50 Start SPIRV-Tools v2020.3 fd8e13051 Finalize SPIRV-Tools v2020.2 3ef8fe9a5 Update CHANGES 022da4d0e Fix identification of Vulkan images and buffers (#3253) 1346dd5de Disallow phis of images, samplers and sampled images (#3246) 1c8bda372 Add data structure for DebugScope, DebugDeclare in spirv-opt (#3183) e6f372c5c Whitelist SPV_KHR_ray_tracing (#3241) 7f341ffee Make file formatting comply with POSIX standards (#3242) 60104cd97 Add opt::Operand::AsCString and AsString (#3240) da52d0875 Add RayQueryProvisionalKHR to opt types (#3239) 18d3896a1 Whitelist SPV_EXT_demote_to_helper_invocation for opt passes (#3236) 5a97e3a39 Add support for KHR_ray_{query,tracing} extensions (#3235) 25ede1ced Roll external/spirv-headers/ 30ef660ce..a17e17e36 (1 commit) (#3230) 7a8f79762 Update dependencies (#3228) 1fe9bcc10 Instrument: Debug Printf support (#3215) 6428ad05e spirv-fuzz: Support OpPhi when adding dead break and continue (#3225) 1af1df3b2 spirv-fuzz: Fix vector width issue in 'add equation instructions' pass (#3223) dd3d91691 Allow sampledimage types as operand of OpCopyObject (#3222) 7c3de218f spirv-fuzz: Remove duplicated functionality (#3220) 659470446 spirv-fuzz: Allow OpPhi operand to be replaced with a composite synonym (#3221) 4c027048d spirv-fuzz: Add toggle access chain instruction transformation (#3211) 533af4981 spirv-fuzz: Add fuzzer pass to permute function parameters (#3212) da4cd2148 spirv-fuzz: Use better function name (#3207) 66a682b6a spirv-fuzz: Add swap commutable operands transformation (#3205) 044ecc0b2 spirv-fuzz: Fuzzer pass to add equation instructions (#3202) a6d3a2dd4 Refactor FuzzerPass::ApplyTransformation code duplication. (#3206) e1688b60c Avoid use of Python distutils.dir_util (#3203) 661e79eec Adding WebGPU specific Workgroup scope rule (#3204) 70f888131 Add validation rules for OpenCL.DebugInfo.100 extension (#3133) fb6e3e48d Combine extinst-name and extinst-output-base into one arg. (#3200) git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: fd773eb50d628c1981338addc093df879757c2cf
-
- 24 Feb, 2020 1 commit
-
-
Ben Clayton authored
8910ea5f1 Fix Wrange-loop-analysis warnings in SPIRV-Tools. (#3201) c316fb15f Add missing dependencies when generating spvtools_core_tables (#3199) 03c9effb5 Brief guide to writing a spirv-fuzz fuzzer pass (#3190) dea1040fa Fix ignored const qualifier warning in static_cast (#3197) 4a80497a8 Make spvOpcodeString part of the public API (#3174) 03794b8f5 Fix static libraries linking order (#3189) 79f8caf91 vscode: Add missing fields to schema.Opcode (#3169) 4d912f4e6 spirv-val: Add support for SPV_AMD_shader_image_load_store_lod (#3186) 77fefe765 spirvfuzz: Fix type-related bug, change undef to zero, and add assert (#3188) 6c218ec60 spirv-fuzz: Fuzzer pass that adds access chains (#3182) 77fb303e5 spirv-fuzz: Fuzzer pass to add function calls (#3178) 3d4a0dd48 spirv-fuzz: Ensure that donated variables are always initialized (#3181) fe10239f9 spirv-fuzz: Add fuzzer passes to add loads/stores (#3176) 1f03ac102 spirv-fuzz: Fuzzer passes to add local and global variables (#3175) 9e52bc0d0 utils/vscode: LSP - Support OpExtInst (#3140) a3b5ad909 Fix typos in opt's help. Update environment version. (#3170) da5457f6b Start SPIRV-Tools v2020.2 8dd174809 Finalize SPIRV-Tools v2020.1 76616bab6 Update CHANGES bb56e892f spirv-fuzz: Fuzzer pass to add composite types (#3171) fdd0c8776 Update script that checks copyright years. (#3173) b7e0998e3 spirv-fuzz: Disallow copying of null and undefined pointers (#3172) a9624b4d5 Handle TimeAMD in AmdExtensionToKhrPass. (#3168) ddcc11763 Update CHANGES 0265a9d4d Implement constant folding for many transcendentals (#3166) 7a2d408de Fix typo in comment. (#3163) 1fc7a9ec7 spirv-fuzz: Arbitrary variable facts (#3165) dd3f8d492 spirv-fuzz: Add outlining test (#3164) 521223b70 spirv-fuzz: Make functions "livesafe" during donation (#3146) 97f1d485b Dead branch elim fix (#3160) 1b3441036 Fix chromium build (#3152) 5d786f6cc Clarify mapping of target env to SPIR-V version (#3150) e7afeb060 Use dummy switch instead of dummy loop in MergeReturn pass. (#3151) 6729c4a7c Fix structured exit validation (#3141) bb236c326 Add spvParseVulkanEnv (#3142) dd37d73c5 Handle conflict between debug info and existing validation rule (#3104) b97057e7f Use spirv-headers' BUILD.gn (#3148) 6a1a1b326 Roll external/spirv-headers/ af64a9e82..dc77030ac (4 commits) (#3147) ab7ac60f1 spirv-fuzz: Refactoring and type-related fixes (#3144) 323a81fc5 Validate Vulkan 1.2 capabilities d46a1b048 Add basic support for Vulkan 1.2: SPV_ENV_VULKAN_1_2 f8d7df760 Fix OpLine bug of merge-blocks pass (#3130) 8013d477a spirv-fuzz: add dead blocks (#3135) 18b3b9456 Remove names and decorations of imported symbols (#3081) fb2e81981 Fix GN build for OpenCL.DebugInfo.100 update (#3134) c86dc0bcd Fix bad parameter names in error message (#3129) 899735f45 Revert PR #3093 (#3131) a466b99db Disallow forward references in arrays (#3093) 31acc7882 spirv-fuzz: Add fuzzer pass to perform module donation (#3117) c8bf14393 GetOperandConstants operand can be const (#3126) git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: 8910ea5f1c7bc38f79a8b70b265cd9d1571f4b56
-
- 06 Jan, 2020 1 commit
-
-
Ben Clayton authored
8aa423930 Avoid pessimizing std::move (#3124) fad92f1e7 Fix typo in validation message (#3122) 578c5ac13 Change default version for CreatInstBindlessCheckPass to 2 (#3119) 9215c1b7d Fix convert-relax-to-half invalid code (#3099) (#3106) 64f36ea52 Support OpenCL.DebugInfo.100 extended instruction set (#3080) e01bc6d4e spirv-fuzz: Always add new globals to entry point interfaces (#3113) dcb7169bb spirv-fuzz: Transformation to add a new function to a module (#3114) 2e41d5ece spirv-fuzz: Avoid passing access chains as parameters (#3112) e70b009b0 Add support for SPV_KHR_non_semantic_info (#3110) 38d7fbaad spirv-fuzz: Transformations to add types, constants and variables (#3101) fccbc00ac Make Instrumentation format version 2 the default (Step 1) (#3096) 96354f504 spirv-fuzz: Fuzzer pass to merge blocks (#3097) 5c019b592 Start SPIRV-Tools v2020.1 c413b982c Finalize SPIRV-Tools v2019.5 2afbe9051 Update CHANGES 00ca4e5bd Don't crash when folding construct of empty struct (#3092) 0a2b38d08 spirv-fuzz: function outlining fuzzer pass (#3078) 983b5b4fc spirv-fuzz: Use validator to check break/continue dominance conditions (#3089) e82a42860 WebGPU: Array size at most max signed int + 1 (#3077) 0a5d99d02 Permit the debug instructions in WebGPU SPIR-V - remove from the optimizer (#3083) af7410597 graphics robust access: use signed clamp (#3073) 3ed458604 Folding: perform add and sub on mismatched integer types (#3084) 47f3eb426 spirv-fuzz: Fix invalid tests (#3079) b334829a9 Validate nested constructs (#3068) 52e9cc930 spirv-fuzz: Improve debugging facilities (#3074) 54385458c Handle unreachable block when computing register pressure (#3070) 868ca3954 Improve RegisterSizePasses (#3059) f31f26f73 utils/vscode: Add install.bat (#3071) 03957e8a9 build: cmake: Add support for Fuchsia. (#3062) a62012ced Add test with explicit example of stripping reflection info (#3064) 8312c523e Permit the debug instructions in WebGPU SPIR-V (#3063) 85f3e93d1 Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054) 45dde9ad6 Add missing dealloc (#3061) 2ee9aaa28 Initialize binary for use as guard later (#3058) 0391d0823 Handle OpPhi with no in operands in value numbering (#3056) ca703c887 Kill the id-to-func map after wrap-opkill (#3055) 57b4cb40b Convert stderr and stdout in status to strings on assignment (#3049) git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: 8aa423930db37e37086665efcc55944d577c06e5
-
- 18 Nov, 2019 1 commit
-
-
Ben Clayton authored
c3f22f7cb Update README (#3047) 1f2af55f2 Update README (#3048) 3da910d55 Avoid uninit warning in GCC (#3044) cdd6829a3 utils/vscode: Add SPIR-V language server support b96c9a057 utils/vscode: Add go language server packages. ab3cdcaef Fix operand access of composite in upgrade memory model (#3021) 1a18d491f Validate array stride does not cause overlap (#3028) 12e54dae1 Update Offset to ConstOffset bitmask if operand is constant. (#3024) 3e4abc9ac Try to fix go linter: exported constant comment (#3026) c5e6761ac spirv-fuzz: Eliminate spurious semicolons (#3025) 041f0a024 spirv-fuzz: simplify transformation for replacing an id with a synonym (#3020) 528c00c01 Re-enable OpReadClockKHR validation (#3013) 8a35bf030 Python 3: remove deprecated U qualifier on 'open' (#3019) 989f62fb9 Remove semicolon (#3022) dc59b4b07 spirv-fuzz: vector shuffle transformation (#3015) 87efe0a8b Add basic documentation about spirv-fuzz (#3016) d9fbf0234 Fix Go lint issues: comment exported symbols (#3014) 3724cfbea spirv-fuzz: better computation of data synonym facts (#3010) fb6bac889 spirv-fuzz: make equivalence classes deterministic (#3011) e0d5544c9 Add missing headers to GN. (#3009) 178c4ddea Correct "environment" typo (#3007) f1e5cd73f spirv-fuzz: improvements to representation of data synonym facts (#3006) cdee051e2 Add iOS as a supported platform (#3001) 5f6fb2f34 Reset pointers before iterating in fuzzer to avoid double free (#3003) 618ee5094 Fix some clang-tidy issues in graphics_robust_access_pass (#2998) 466908b50 Add description of wrap-opkill. (#3000) f893d4d41 [opt] Do not compare optimized binary with an invalidated buffer (#2999) 7e2cba6a5 utils/vscode: Change assembly file ext to .spvasm (#2995) 42f885238 utils: Add a vscode extension for SPIR-V disassembly files (#2987) 5ea709937 Add two new simplifications. (#2984) fac166162 spirv-fuzz: Transformation to extract from a composite object (#2991) ec12de913 spirv-fuzz: rename class, and fix bug related to dominance (#2990) 0dbd4e358 spirv-fuzz: Rework management of data synonyms (#2989) b34fa7319 spirv-fuzz: add class to represent equivalence relation (#2988) 4517c7b88 Update DEPS (#2986) 570582d8d spirv-fuzz: fuzzer pass to adjust memory access operands (#2968) 02910ffdf Instrument: Add missing def-use analysis. (#2985) 8357b878d spirv-fuzz: add missing functionality for matrix composites (#2974) 615918c91 Update CHANGES e8c3f9b0b Ensure timestamp does not vary with timezone. (#2982) 6a9be627c Keep NOPs when comparing with original binary (#2931) 2a3cbe7c3 Check that derivatives operate on 32-bit values (#2983) 3cdd6444c Check text->str before destroying (#2981) e3da3143b Disallow use of OpCompositeExtract/OpCompositeInsert with no indices (#2980) 2ca4fcfdc Add fuzzer for spirv-dis call path (#2977) 024417d83 Check binary->code existence before destroying (#2979) 9c0ae6bb8 Improved CMake install step. (#2963) e99b91822 Support constant-folding UConvert and SConvert (#2960) 8e8977853 Add fuzzer for spirv-as call path (#2976) 00170cc5e spirv-fuzz: Refactor 'copy object' and 'construct composite' transformations (#2966) 964dc52df Update SPIR-V binary header test for SPIR-V 1.5 (#2967) 1b6fd37fa spirv-fuzz: Refactor 'split blocks' to identify instructions differently (#2961) 2276e5978 Validate that selections are structured (#2962) 3eda1b9ff spirv-fuzz: Rework id descriptors (#2959) eba98c4eb spirv-fuzz: Add fuzzer pass to add NoContraction decorations (#2950) 91232f7f7 spirv-fuzz: Add fuzzer pass to change function controls (#2951) feb154921 reduce: add large tests and fix (#2947) 253806adc spirv-fuzz: Add fuzzer pass to change loop controls (#2949) 1cea3b785 Fixed include paths and order according to Google style. (#2957) 82f84c4b8 Use a longer timeout for Bazel tests. (#2956) c705032b2 Remove non-existent files from BUILD.gn (#2955) c1d42038f Disable scope validation for OpReadClockKHR (#2953) df15a4a3c CMake: Add support for building with emscripten (#2948) c3ca04741 Update CHANGES 32f76efa6 Link cfg and dominator analysis in the context (#2946) 5910bb8e9 spirv-fuzz: add transformation and pass to construct composites (#2941) 2f6a87f61 reduce: improve remove unref instr pass (#2945) 81d227f36 spirv-fuzz: add disabled test to document known issue (#2942) 26dba32c4 spirv-fuzz: Add fuzzer pass to change selection controls (#2944) 3c7ff8d4f Enable OpTypeCooperativeMatrix specialization (#2927) c18c9ff6b Handle OpKill better (#2933) ad3d23f47 Generate null pointer by converting uint64 zero to pointer. (#2935) 8fa0f1a65 spirv-fuzz: option to convert shader into a form that renders red (#2934) bc37fd585 Add SPV_KHR_shader_clock validation (#2879) bd839ca6b reduce/fuzz: improve command line args (#2932) 9d7428b05 Validate physical storage buffer restrictions (#2930) 44b32176e fuzz: add shrinker-temp-file-prefix (#2928) 9eb1c9a4c Add continue construct analysis to struct cfg analysis (#2922) 85c67b5e0 Record trailing line dbg instructions (#2926) 4075b921f Add removing references to debug instructions when removing them (#2923) ef4679a58 spirv-fuzz: allow interestingness script arguments (#2925) bc84daff2 Add Kokoro bots for building with Bazel. (#2914) 10951a7c9 Refactor the InstructionPass (#2924) 84b197606 spirv-fuzz: do not allow a dead break to target an unreachable block (#2917) 27238bcca spirv-fuzz: preserve some analyses when permuting blocks (#2918) 510ca9d61 Only allow previously declared forward refs in structs (#2920) 2a11f365b Handle id overflow in wrap-opkill (#2916) 70097c776 spirv-fuzz: do not replace struct indices with synonyms (#2915) c1e03834e spirv-fuzz: Fixes to preconditions for adding dead break/continue edges (#2904) 7bc114ba2 spirv-fuzz: do not replace a pointer argument to a function call with a synonym (#2901) 290f6a820 spirv-fuzz: do not replace boolean constant argument to OpPhi instruction (#2903) 527a68930 Remove validate_datarules.cpp (#2911) 55ea57a78 Handle extract with no indexes (#2910) a03cd1f3e Add Bazel build configuration. (#2891) 6f26d9ad8 Handle id overflow in convert local access chains (#2908) 71e0ba606 Add OpCopyMemory test to SVA. (#2885) 3a762d54f Add missing GN dependency (#2899) 958f7e72a Employ the "swarm testing" idea in spirv-fuzz (#2890) b83535da5 Fix operand index in spirv-fuzz (#2895) f62ee4a4a Update DEPS: effcee, re2, googletest (#2881) 8d0ca43da Add method comment for opt::Function::WhileEachInst (#2867) 6b0721265 Use OpReturn* in wrap-opkill (#2886) 465312726 Fix to CMakeLists for spirv-fuzz tests (#2888) 7275a7165 Allow validation during spirv-fuzz replay (#2873) 4eee71e78 Disable long-running fuzzer tests by default (#2887) 61edde52a Revert "Use OpReturn* in wrap-opkill" 87f0fa432 Use OpReturn* in wrap-opkill 08fcf8a4a Fix header include syntax. (#2882) 248c80b04 Handle OpConstantNull in copy-prop-arrays. (#2870) d06fe0848 Fix comment typo found by protobufs linter (#2884) 47e354b0c Move docs into docs/ folder (#2872) 605c2e3c0 Add WebGPU SPIR-V Assembler in JavaScript. (#2876) acf20302c Android.mk: Add dependency from optimizer file to amd-shader-ballot-insts.inc (#2883) c02a6191a Update SPIRV-Headers in DEPS (#2880) e59b60de0 Fix detection of blocks bypassed by new edge (#2874) ccd7bf167 Fix CMake issue related to spirv-fuzz (#2877) 0a07cd1c9 Add fuzzer pass to replace ids with synonyms (#2857) bbb29870b Relaxed bitcast with pointers (#2878) 36c1c0e22 Fix Fuchsia build. (#2868) 99793fa67 Adding valilidation checks for OpEntryPoint duplicate names and execution mode (#2862) 932561935 Extra resource interface validation (#2864) 1e146e8a3 Split capability tests (#2866) 5a48c0da1 SPIRV-Tools support for SPIR-V 1.5 (#2865) ad7f2c5c4 Add fuzzer pass to copy objects (#2853) 67b87f22c Handle another case where creating a constant can fail (#2854) c7a39bc40 Don't inline function containing OpKill (#2842) 4f9256db3 Handle id overflow in wrap op kill. (#2851) 9f188e337 Assembler: Can't set an ID in instruction without result ID (#2852) c0e980709 Handle creating a new constant failing gracefully (#2848) e2e95172d Rework management of probabilities in spirv-fuzz (#2839) 7ee8f443e Fix add-dead-break and add-dead-continue passes to respect dominance (#2838) 35c9518c4 Handle id overflow in the ssa rewriter. (#2845) 7f7236f1e Handle id overflow in the constant manager. (#2844) a464ac1a2 Add generic builtin validation of target (#2843) 6797173cf Don't register duplicate decoration in validator. (#2841) 76261e2a7 Replace CubeFaceCoord and CubeFaceIndexAMD (#2840) b218ad199 Fold Min, Max, and Clamp instructions. (#2836) a41520eaa Replace uses of SPV_AMD_shader_trinary_minmax extension (#2835) 19b256616 For WebGPU<->Vulkan optimization, set correct execution environment (#2834) 1dfb5fc12 Export SPIRV-Tools targets on installation (#2785) 635b583cf GN: Add Chromium GoogleTest deps. (#2832) 9b3cc3e05 Upadate CHANGES c77045b4a Instrument: Be sure Float16 capability on when generating float16 null (#2831) d11725b1d Add --relax-float-ops and --convert-relaxed-to-half (#2808) 1c9ca422d GN: Make SPIRV-Tools target use public_deps. (#2828) b54d95029 Fold Fmix should accept vector operands. (#2826) 2c5ed16ba Fix end comments in header files (#2829) git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: c3f22f7cba60e55d178b8184851d17697a996143
-
- 30 Aug, 2019 1 commit
-
-
Ben Clayton authored
65e362b7a AggressiveDCEPass: Set modified to true when appending to to_kill_ (#2825) d67130cac Replace SwizzleInvocationsAMD extended instruction. (#2823) ad71c057c Replace SwizzleInvocationsMaskedAMD extended instruction. (#2822) 4ae9b7165 Fix gn check (#2821) 35d98be3b Amd ext to khr (#2811) 5a581e738 spvtools::Optimizer - don't assume original_binary and optimized_binary are aliased (#2799) 73422a0a5 Check feature mgr in context consistency check (#2818) 15fc19d09 Refactor instruction folders (#2815) 1eb89172a Add missing files to BUILD.gn (#2809) 8336d1925 Extend reducer to remove relaxed precision decorations (#2797) b00ef0d26 Handle Id overflow in private-to-local (#2807) aef8f92b2 Even more id overflow in sroa (#2806) c5d1dab99 Add name for variables in desc sroa (#2805) 0cbdc7a2c Remove unimplemented method declaration (#2804) bc62722b8 Handle overflow in wrap-opkill (#2801) 9cd07272a More handle overflow in sroa (#2800) 06407250a Instrument: Add support for Buffer Device Address extension (#2792) 7b4e5bd5e Update remquo validation to match the OpenCL Extended Instruction Set Specification (#2791) dac9210dc Use ascii code based characters (#2796) ff872dc6b Change the way to include header (#2795) bbd80462f Fix validation of constant matrices (#2794) 60043edfa Replace OpKill With function call. (#2790) f701237f2 Remove useless semi-colons (#2789) 95386f9e4 Instrument: Fix version 2 output record write for tess eval shaders. (#2782) 22ce39c8e Start SPIRV-Tools v2019.5 d65513e92 Finalize SPIRV-Tools v2019.4 4b64beb1a Add descriptor array scalar replacement (#2742) c26c2615f Update CHANGES 29af42df1 Add SPV_EXT_physical_storage_buffer to opt whitelists (#2779) b029d3697 Handle RelaxedPrecision in SROA (#2788) 370375d23 Add -fextra-semi to Clang builds (#2787) 698b56a8f Add 'copy object' transformation (#2766) 4f14b4c8c fuzz: change output extension and fix usage string (#2778) 0b70972a2 Remove extra ';' after member function definition. (#2780) 5ada98d0b Update WebGPU validation rules of OpAtomic*s (#2777) 3726b500b Treat access chain indexes as signed in SROA (#2776) 31590104e Add pass to inject code for robust-buffer-access semantics (#2771) 4a28259cc Update OpMemoryBarriers rules for WebGPU (#2775) 7621034aa Add opt test fixture method SinglePassRunAndFail (#2770) ac3d13105 Element type is const for analysis::Vector,Matrix,RuntimeArray (#2765) 49797609b Protect against out-of-bounds references when folding OpCompositeExtract (#2774) 7fd2365b0 Don't move debug or decorations when folding (#2772) 7bafeda28 Update OpControlBarriers rules for WebGPU (#2769) git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: 65e362b7ae2acb8aa5bd2ad516fb793961e673ee
-
- 29 Jul, 2019 1 commit
-
-
Ben Clayton authored
9559cdbdf Fix #2609 - Handle out-of-bounds scalar replacements. (#2767) f54b8653d Limit fuzzer tests so that they take less time to run (#2763) bb0e2f65b Fix check for unreachable blocks in merge-return (#2762) 1a89ac8b2 Transformation and fuzzer pass to add dead continues (#2758) 65f49dfc3 Remove unneeded future imports (#2739) c7fcb8c3b Process OpDecorateId in ADCE (#2761) fb83b6fbb Record correct dominators in merge return (#2760) c9190a54d SSA rewriter: Don't use trivial phis (#2757) aea4e6b1b Fix block depth rule priority (#2755) a94ddc267 Case validation with repeated labels (#2689) 3855447d9 Bindless Instrument: Make init check depend solely on input_init_enabled (#2753) 11516c0b9 Validate storage class OpenCL environment rules for atomics (#2750) bac82f49a Allow LOD ops in compute shaders with derivative group execution modes (#2752) 76b75c40a Document opt::Instruction::InsertBefore methods (#2751) aa9e8f538 Revert "Do not inline OpKill Instructions (#2713)" (#2749) 58e2ec25b For Vulkan, disallow structures containing opaque types (#2546) 230c9e437 Fix bug in merge return (#2734) 1fedf72e5 Allow ray tracing shaders in inst bindle check pass. (#2733) 032adc4d7 Correctly implement WebGPU related flag exclusions (#2737) 92c41ff1e Remove Common Uniform Elimination Pass (#2731) 59de04ad6 BUILD.gn: Add deps and move files for `gn check` (#2735) 55adf4cf7 Update execution scope rules for WebGPU (#2730) 1a2de48a1 Extra small storage validation (#2732) 327963765 Add validation for SPV_EXT_demote_to_helper_invocation (#2707) 508151250 BUILD.gn: Add targets to build all command-line tools (#2727) 5ce8cf781 Change the order branches are simplified in dead branch elim (#2728) cd153db8e Add —preserve-bindings and —preserve-spec-constants (#2693) 86e45efe1 Handle decorations better in some optimizations (#2716) 3a252a267 Update memory scope rules for WebGPU (#2725) 0c4feb643 Remove extra semis (#2717) 456cc598a Validate usage of 8- and 16-bit types with only storage capabilities (#2704) b8ab80843 Shrinker for spirv-fuzz (#2708) 37e8f7994 Perform merge return with single return in loop. (#2714) fe7cc9c61 Do not inline OpKill Instructions (#2713) 5a93e0739 Refactor reducer options (#2709) a6bfc26e5 Fix BUILD.gn for Fuchsia platform build. (#2692) 9702d47c6 Validate that in OpenGL env block variables have Binding (#2685) e6e3e2ccc Update type for loaded builtin GlobalInvocationID in pass instrumentation (#2705) 6ccb52b86 Warn when input facts are invalid. (#2699) 88183041d Got rid of redundant declaration. (#2698) efde68236 Disallow movement of unreachable blocks. (#2700) dfcb5a1e1 Refactor fuzzer transformations (#2694) 888aeef8a Fix Component decoration validation for arrays (#2697) df86bb44f Replace global static map with an array of pairs (#2691) 7c294608c Basic validation for Component decorations (#2679) 69b945992 Add infrastructure for maintaining and using DEPS (#2684) 2b84d25f1 Fix store to uniform Vulkan check (#2688) bec7e0393 Add all accepted target environments to the tools' help texts (#2687) 51b0d5ce5 Represent uniform facts via descriptor set and binding. (#2681) fa981bc24 Roll external/spirv-headers/ 8b911bd2b..de99d4d83 (8 commits) (#2682) a132c9b64 Whitelist SPV_GOOGLE_user_type. (#2673) 001e823b6 Add fuzzer pass to obfuscate constants. (#2671) 2090d7a2d Handle volatile memory semantics in upgrade (#2674) 3d5fb7b90 Validate Volatile memory semantics bit (#2672) 400dbde0b Disallow stores to UBOs (#2651) 6cc2c8f4a Another fix uint -> uint32_t (#2676) 59983a601 Validate variable initializer type (#2668) 9477c91de Fix uint -> uint32_t in fuzz.cpp (#2675) 42830e5a6 Add replayer tool for spirv-fuzz. (#2664) b4bf7bcf0 Add validation for Subgroup builtins (#2637) 9c0830133 Add constant == uniform facts. (#2660) 208d3132e Cast __LINE__ to size_t (#2661) a8ae579f7 Add transformation to replace a boolean constant with a numeric comparison (#2659) 0755d6ce8 Add builtin validation for SPV_NV_shader_sm_builtins (#2656) 43fb2403a Instrument: Fix code for version 2 output format. (#2655) 08cc49ec5 Fix bug in 'split blocks', and add tests for fuzzer. (#2658) d01a3c3b4 Optimizer: Handle array type with OpSpecConstantOp length (#2652) 4a00a80c4 Add fuzzer pass to add dead breaks. (#2654) 620197bd6 Add fuzzer pass that adds useful constructs to a module (#2647) 2c0111e6e Add validation for SPV_EXT_fragment_shader_interlock (#2650) 699e167d7 Remove asserts from GetUnderlyingType (#2646) 7919b877c Close opened file handles. (#2644) f99d7ad5c Validate OpenCL rules for ImageRead and OpImageSampleExplicitLod (#2643) 209ff0ce9 Add spirv-fuzz pass to permute blocks. (#2642) e7866de4b Linker: Better type comparison for OpTypeArray and OpTypeForwardPointer (#2580) 0125b28ed Add compact ids to WebGPU <-> Vulkan transformations (#2639) 3d62cb814 Instrument: Add version 2 of record formats (#2630) 1b71e4533 Add "split block" transformation. (#2633) f05181234 Add WebGPU specific fuzzer for validation (#2628) 5a06fa466 Add fuzzer for Vulkan->WebGPU spirv-opt passes (#2626) 78b2b1866 Add fuzzer for WebGPU->Vulkan spirv-opt passes (#2625) 6c7db9c63 Handle nested breaks from switches. (#2624) 37ae8671a Add spirv-fuzz tool. (#2631) fe9f87013 Add library for spirv-fuzz (#2618) 42abaa099 Remove MarkV and Stats code. (#2576) 3b5ab540c linker: Add tests for various type comparisons (#2613) 4c73ebc46 Enable the base branch to be overridden in the code format check script (#2607) b8fe7211c Allow arrays of out per-primitive builtins for mesh shaders (#2617) 07a101971 Validate OpenCL environment rules for OpImageWrite (#2619) b0504239a Added an external dependency on protobufs, included when SPIRV_BUILD_FUZZER is defined, so that they can be used by the (upcoming) spirv-fuzz tool. Also updated the kokoro build scripts, for relevant targets, to clone an appropriate tag of the protobufs repo, and to pass -DSPIRV_BUILD_FUZZER to the configurations for which we intend to ultimately build spirv-fuzz. (#2616) 4557d0858 Add in individual flags for Vulkan <-> WebGPU passes (#2615) 13f61bf85 Update vloadn and vstoren validation to match the OpenCL Extended Instruction Set Specification (#2599) d9c00e1d2 Add folding rules for OpQuantizeToF16 (#2614) 713da30b6 Disallow merge targeting block with OpLoopMerge (#2610) 60aaafbc7 Allows breaks selection breaks to switches (#2605) 0982f0212 Using the instruction folder to fold OpSpecConstantOp (#2598) 9f035269d Validate OpenCL environment rules for OpTypeImage (#2606) 47741f050 Validate OpenCL memory and addressing model environment rules (#2589) ff4feb44b Validate construct exits (#2459) 9dfd4b835 Bindless Validation: Instrument descriptor-based loads and stores (#2583) 7e7745fce Validate loop merge (#2579) fc7b5d8c6 Mem model spv 1.4 (#2565) 84aa4946e Start SPIRV-Tools v2019.4 ce19e217b Finalize SPIRV-Tools v2019.3 84503583c Handle id overflow in sroa better. (#2582) f815e6fe5 Update CHANGES e935dac9e Make pointers to isomorphic type interchangeable with option. (#2570) 2947e88f7 Update instrumentation passes to handle 1.4 interfaces (#2573) 06ce59b0b Instrument: Fix load type of pre-existing builtin (#2575) 87c4ef8a9 Do not fold floating point if float controls used (#2569) 45fb69666 Use last version (#2578) f6d9a1784 Add pass to fix some invalid unreachable blocks for WebGPU (#2563) 89fe836fe Fix clang-tidy warning about definition/declaration mismatch. (#2571) f2803c4a7 VK_KHR_uniform_buffer_standard_layout validation (#2562) cc3e93c4e Add tests for folding 1.4 selects (#2568) ea5e1b62e Update priv-to-local for SPIR-V 1.4 (#2567) d0a1f5a05 spvtest::Validate::CompileFailure: Don't leak the diagnostic (#2564) b74d92a8c ADCE support for SPIR-V 1.4 entry points (#2561) 2b65a71d4 Fix use of 'is' operator for comparison (#2547) 63f57d95d Support SPIR-V 1.4 (#2550) 106c98d0f Validate sign of int types. (#2549) eef11cdb7 Update README with links to build artifacts. (#2548) 5fc5303ee [spirv] Package and upload builds. (#2544) 6d04da22c Fix up type mismatches. (#2545) c8b09744c Add validation specific to OpExecutionModeId (#2536) a5da68d44 Remove stale comment (#2542) 32af42616 Change implementation of post order CFG traversal (#2543) 64faf6d9c Fix undefined bit shift in sroa. (#2532) dca3ea5e1 fix example.cpp (#2540) 2de3e3c02 Add spirv-lesspipe.sh into SPIRV_SKIP_EXECUTABLES umbrella (https://github.com/KhronosGroup/SPIRV-Tools/issues/2497) (#2504) fb08224f8 Fix spirv-headers link in the README. (#2516) b68af7ca8 Add support for Private & Output to initializer decompose flag (#2537) 736376dbf Remove Acquire, Release, and Relaxed from allowed Mem Sem bits for WebGPU (#2526) 07c4dd4b9 Reduce runtime of array layout checks (#2534) 7aad9653f Remove legacy utility functions (#2530) d754b7059 Shorten names of cmake targets (#2531) ac878fcbd Remove unreachable block validation (#2525) 21712068f Validate that SPIR-V binary is encoded as little endian for WebGPU (#2523) 3aad3e922 Change validation of memory semantics for OpAtomics* in WebGPU (#2519) 048dcd38c Implement WebGPU->Vulkan initializer conversion for 'Function' variables (#2513) 3335c6114 reduce: Add two branch reduction passes (#2507) 102e430a8 Add pass to legalize OpVectorShuffle for WebGPU (#2509) 07ac7dee5 SPIRV-Tools requires python3 (#2510) 98b3f26c2 Gate formatless checks on Vulkan env (#2486) 2b46521cd Add -fsantize to link flags. (#2506) 82ebbbba1 README: fix formatting of requiring Python 'future' (#2500) 9047de51c Accept OpBitCast in fix storage class. (#2505) d90aae9a5 reduce: miscellaneous fixes (#2494) 7ce37d66a Fix use of Logf to avoid format security warning (#2498) 0cb2d4079 Add WebGPU->Vulkan and Vulkan->WebGPU flags in spirv-opt (#2496) 9766b22b3 spirv-opt: Behave a bit better in the face of unknown instructions (#2487) 3a0bc9e72 Add fix storage class code. (#2434) e8c2d95ed Fix webgpu header file name in BUILD.gn (#2493) 26c1b8878 Update CHANGES 236bdc006 Change prioritization of unreachable merge and continue (#2460) 12e4a7b64 Handle variable pointer in some optimizations (#2490) 01964e325 Add pass to generate needed initializers for WebGPU (#2481) 4bd106b08 Handle dead infinite loops in DCE (#2471) 8129cf2f9 Remove merge assert in block calculation (#2489) e2ddb9371 reduce: add remove_selection_reduction_opportunity (#2485) c9874e509 Fix merge return in the face of breaks (#2466) 0300a464a Maintain inst to block mapping in merge return (#2469) 320a7de5c Validate that OpUnreacahble is not statically reachable (#2473) fcb845310 reduce: fix loop to selection pass for loops with combined header/continue block (#2480) 2ff54e34e Handle function decls in Structured CFG analysis (#2474) 42e6f1aa6 Add option to validate after each pass (#2462) fb0753640 reduce: fix loop to selection dominance query (#2477) 7d1b176c1 Improve reducer algorithm and other changes (#2472) ffbecae56 Check OpSampledImage is only passed into valid instructions (#2467) 2d52cbee4 Add some val options to reduce (#2401) 1f60f9896 reduce: remove unreferenced blocks pass (#2398) 08b54d9e4 Convert sampled consumers to being Instructions instead of IDs (#2464) e1a76269b Bindless Validation: Descriptor Initialization Check (#2419) 9244e6ff6 Reverting commit da5a780ff9fff7e226ca84728075adabc4d1608c da5a780ff Variable pointers cannot be an operand to OpArrayLength 2ac348b5c Repair test for unused storage buffer with descriptor (#2436) e54552214 Add --strip-atomic-counter-memory (#2413) bdcb15516 Relax function call parameter check (#2448) 5186ffedb Remove duplicates from list of interface IDs in OpEntryPoint instruction (#2449) 6df8a917a Add validation of storage classes for WebGPU (#2446) a5c06c903 Validator: no Storage comparison for pointer param (#2428) 9d29c37ac Removing decorations when doing constant propagation. (#2444) b75f4362f Add validation for ExecutionMode in WebGPU (#2443) b1ff15f22 Add missing DepthGreater case to Fragment only check (#2440) b12e7338e Implement WebGPU specific CFG validation (#2386) a2ef7be24 Add Linux ASAN bot configs. (#2427) 07f80c4df Fix python scripts to work with python3 (#2426) 86f6ac086 Add a test for two back-edges in a continue (#2418) 5fb83a970 Allow NonWritable to target struct members. (#2420) 32b0f6739 Use correct option in spvTextToBinary. (#2416) d800bbbac Handle back edges better in dead branch elim. (#2417) 002ef361c Add validation for SPV_NV_cooperative_matrix (#2404) fc3897b5f Validate: (data) Block can't appear within a Block (#2410) 37b584a73 Fixed undefined reference to 'clock_gettime' by linking rt library (#2409) a006cbc1d Non memory object as parameters. (#2415) 4c43afcad It is invalid to apply both Restrict and Aliased to the same <id> (#2408) fde69dcd8 Fix OpDot folding of half float vectors. (#2411) 8eddde2e7 Don't change type of input and output var in dead member elim (#2412) 76730a46a In Vulkan, disallow BufferBlock on StorageBuffer variables (#2380) 5994ae2a0 Start SPIRV-Tools 2019.3 61dfd8492 Finalize SPIRV-Tools 2019.2 bf23ed887 OpAtomicLoad, OpAtomicStore, OpAtomicExchange can operate on int or float value. Except for Vulkan environment that only operates on int value. (#2385) 80496f42a Update CHANGES 2f84b5de9 Bindless: Fix computation of set and binding for runtime bounds check (#2384) 528fea2b1 Fixup unused variables (#2402) 4b42cd19d BUILD.gn: Only build tests in Chromium. (#2392) 6d20f6257 Refactor webgpu-mode pass ran tests to be parameterized (#2395) 78ac954c4 Mark type id of unknown instructions at fully used. (#2399) 9540f2d98 Instrumentation: Fix instruction index when multiple functions (#2389) 1b0047f21 Add pass to remove dead members. (#2379) 0167a20b0 Move usage detection to after all instructions are registered (#2378) 0187c190b Fix BUILD.gn (#2381) 354205b3d Don't merge unreachable blocks (#2375) 40a7940e0 Fix merge blocks opportunity to check if still enabled (#2370) 12b3d7e9d Add strip-debug to webgpu-mode passes (#2368) a0ff7c512 Add better error message to ValidateInstructions (#2365) 34c5ac614 Fixes #2358. Added to the reducer the ability to remove a function t… (#2361) 10a7def6c Smoketest should use KhronosGroup glslang (#2363) 39bfb6b97 Make spvParseTargetEnv public (#2362) cf2114613 Expand bindless bounds checking to runtime-sized descriptor arrays (#2316) 9b6ba4d1c Allow arrayed storage images for NonWritable decoration (#2358) 117a1fd11 Validate variable pointer related function call rules (#2270) 0f4bf0720 Add flatten-decorations flag to webgpu-mode flags (#2348) 368567bc5 Convert deprecated GoogleTest fixture to the new version (#2357) adbbe2024 Mention the reducer tool and location in the README. (#2341) e3c64a374 Do not build spirv-reduce on iOS/tvOS/watchOS - it requires std::system which is not available on those platforms (#2355) 37861ac10 Merge blocks in reducer (#2353) 453b7c85c Fix up some test (#2351) 846d12afe Add whitelist for decorations in WebGPU (#2346) 63e032f91 Remove unused lambda capture (#2350) 3b6fee3da Fixes #2338. Added functionality to remove OpPhi instructions (replacing their uses) when merging blocks (#2339) 2acbf488b Add WebGPU specific validation for WorkgroupSize BuiltIn decoration (#2334) e2f462262 Add WebGPU specific validation for multiple BuiltIn decorations (#2333) 3d2afb78c Add whitelist of allowed BuiltIn decorations for WebGPU (#2337) d17fcf8ab Add WebGPU validation for LocalInvocationIndex BuiltIn decoration (#2335) 837153ccd Add WebGPU specific validation for FragDepth BuiltIn decoration (#2332) 0c14583f1 Add WebGPU specific validation for FragCoord BuiltIn decoration (#2331) b6698e0d8 Add WebGPU specific validation for FrontFacing BuiltIn decoration (#2330) 734def144 Add WebGPU specific validation for InstanceIndex BuiltIn decoration (#2329) b947ecfe7 Add WebGPU specific validation for VertexIndex BuiltIn decoration (#2328) 464111eae Remove use of deprecated googletest macro (#2286) 7f1a020ab Fix test_val_limits MSVC build (#2347) 5d6b4c4b1 Move CodeGenerator to be accessible by other validation tests (#2343) cf7834623 Add source/opt/block_merge_util.* to BUILD.gn (#2344) 7f3679a8b Validate NonWritable decoration (#2263) 9ab1c0ddd Remove code sinking for -O. (#2340) 98c67d385 Fixed names in ifdefs and GetName functions that had been forgotten in a previous refactoring. Also shortened names of test files as those files test both the new 'finder' classes introduced in the refactoring, as well as the 'reduction pass' class; the shorter names capture both. (#2336) 3345fe6a9 Extracted block merging functionality into its own utility file (#2325) cf011f990 More layout check fixes (#2315) e2279da71 Remove the static maps from CheckDecorationsCompatibility (#2327) 8915a7c8f spirv-val: Emit an error when an OpSwitch target is not an OpLabel (#2298) 1e3c589a6 Add WebGPU specific validation for Position BuiltIn decoration (#2309) 20b2e2b9f Add SpirvTools::IsValid(). (#2326) 86d0d9be2 Refactored reducer so that the 'finding' functionality of a reduction pass are separated from the generic functionality for tracking progress of a pass. With this change, we now have a ReductionOpportunityFinder abstract class, with many subclasses for each type of reduction, and just one ReductionPass class, which has an associated finder. (#2321) b1be6763f Add helper for 'is Vulkan or WebGPU' (#2324) 3d7102424 Added some documentation about the reducer. (#2318) 4a405eda5 Fix layout checks for nested struct in relaxed layout; and descriptor arrays (#2312) 3a3ad2ec5 Add utility to generate a logging string for a given environment (#2314) a64c651e1 Fix Constants Analyses bug inserted by #2302 (#2306) eab06d669 Check forward reference in OpTypeArray. (#2307) 8df947d2d Handle instructions not in blocks in code sinking. (#2308) git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: 9559cdbdf011c487f67f89e2d694bd4a18d5c1e0
-
- 30 Jan, 2019 1 commit
-
-
Chris Forbes authored
git-subtree-dir: third_party/SPIRV-Tools git-subtree-split: d14db341b834cfb3c574a258c331b3a6b1c2cbc5
-