1. 30 Oct, 2020 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from 8a5500656..82b378d67 · 3eb4dd81
      Alexis Hetu authored
      82b378d67 spirv-opt: Add support to prevent functions from being inlined if they have DontInline flag (#3858)
      56d0f5035 Propagate OpLine to all applied instructions in spirv-opt (#3951)
      7403dfafd CMake: Add SPIRV_TOOLS_BUILD_STATIC flag (#3910)
      25ee27576 Avoid copying a ref in a loop (#4000)
      5edb328e8 spirv-val: Allow the ViewportIndex and Layer built-ins on SPIR-V 1.5 (#3986)
      cbd1fa6c4 Simplify logic to decide whether CCP modified the IR (#3997)
      df4198e50 Add DebugValue for DebugDecl invisible to value assignment (#3973)
      34ae8a475 Fix bounds check instrumentation to handle 16-bit values (#3983)
      abe2eff36 spirv-fuzz: Add expand vector reduction transformation (#3869)
      99ad4f1e2 spirv-fuzz: Don't replace irrelevant indices in OpAccessChain (#3988)
      895dafcc1 spirv-fuzz: Add FuzzerPassAddCompositeExtract (#3904)
      69f07da41 spirv-fuzz: Fix mismatch with shrinker step limit (#3985)
      9223493f4 spirv-fuzz: Fix off-by-one error in replayer (#3982)
      4f5423187 spirv-fuzz: Get order right for OpSelect arguments (#3974)
      88f7bcb6a spirv-fuzz: Do not add synonym-creating loops in dead blocks (#3975)
      64eaa9832 spirv-fuzz: Skip OpTypeSampledImage when propagating up (#3976)
      53f2a69c1 spirv-fuzz: Pass OpUndef in function call if needed (#3978)
      de2c0ba20 spirv-fuzz: Fix off-by-one in TransformationCompositeConstruct (#3979)
      dc4a18228 spirv-fuzz: Tolerate absent ids in data synonym fact management (#3966)
      8496780f5 spirv-fuzz: Fix to id availability (#3971)
      3b7aebca4 spirv-fuzz: Fix operand types (#3962)
      6fe34cdf1 Update SPIRV-Headers revision in DEPS file (#3961)
      a8d7062fe spirv-fuzz: Don't flatten conditional if condition is irrelevant (#3944)
      a3d5378df spirv-fuzz: Do not produce OpPhis of type OpTypeSampledImage (#3964)
      7edd0525b spirv-fuzz: Restrict fuzzer pass to reachable blocks (#3970)
      f03779a1a spirv-fuzz: Handle more types when extending OpPhi instructions (#3969)
      c794b7046 spirv-fuzz: Skip early terminator wrappers when merging returns (#3968)
      dc9c6407d spirv-fuzz: Avoid irrelevant constants in synonym-creating loops (#3967)
      26954c281 spirv-fuzz: Skip dead blocks in FuzzerPassAddOpPhiSynonyms (#3965)
      5600fb85b spirv-fuzz: Avoid the type manager when looking for struct types (#3963)
      ba15b5886 spirv-fuzz: Fix to TransformationDuplicateRegionWithSelection (#3941)
      598435004 spirv-fuzz: Skip OpFunction when replacing irrelevant ids (#3932)
      8362eae55 spirv-fuzz: Use component-wise selectors when flattening conditional branches (#3921)
      ebe0ea09f Add SPV_EXT_shader_image_int64 (#3852)
      a1d38174b Support SPV_KHR_fragment_shading_rate (#3943)
      6fac705e7 spirv-val: Fix validation of OpPhi instructions (#3919)
      b1350659b spirv-fuzz: Avoid void struct member when outlining functions (#3936)
      fd0f295da spirv-fuzz: Do not allow Block-decorated structs when adding parameters (#3931)
      5d7893b37 spirv-fuzz: Fix to operand id type (#3937)
      cd1d3b6e0 spirv-fuzz: Handle dead blocks in TransformationEquationInstruction (#3933)
      6cdae9da7 spirv-fuzz: Do not allow sampled image load when flattening conditionals (#3930)
      7e1825a59 spirv-fuzz: Take care of OpPhi instructions when inlining (#3939)
      502e98295 spirv-fuzz: Fix to TransformationInlineFunction (#3913)
      bf1a11dab spirv-fuzz: Wrap early terminators before merging returns (#3925)
      fd3948e16 Add DebugValue for function param regardless of scope (#3923)
      663d050a9 Temporary fix to make GoogleTest compile. (#3922)
      dd534e877 spirv-fuzz: Lower probability of adding bit instruction synonyms (#3917)
      53aeba10c spirv-fuzz: Fix handling of OpPhi in FlattenConditionalBranch (#3916)
      5c64374dd spirv-fuzz: Avoid creating blocks without parents (#3908)
      57b3723c5 spirv-fuzz: Do not allow creation of constants of block-decorated structs (#3903)
      12ca825a6 spirv-fuzz: Fixes related to irrelevant ids (#3901)
      2e6cf706e spirv-fuzz: Fix to transformation that adds a synonym via a loop (#3898)
      4b884928d spirv-fuzz: Fix to duplicate region with selection (#3896)
      c2553a315 spirv-fuzz: Do not expose synonym facts for non-existent ids (#3891)
      360228785 spirv-fuzz: Do not add synonyms involving irrelevant ids (#3890)
      d52f79122 spirv-fuzz: Do not replace irrelevant ids that are not in blocks (#3892)
      e02265992 spirv-fuzz: Wrap OpKill and similar in function calls (#3884)
      11d592422 Update val to handle reversed instruction sections. (#3887)
      fc8264854 spirv-fuzz: Replace dead-block terminators with OpKill etc. (#3882)
      63cc22d64 spirv-fuzz: TransformationPropagateInstructionDown (#3692)
      65b2a9e81 spirv-fuzz: Transformation to add wrappers for OpKill and similar (#3881)
      624b16cd0 spirv-fuzz: Use overflow ids when duplicating regions (#3878)
      bd0dd9cef spirv-fuzz: Fix rvalue references (#3883)
      f15133788 spirv-fuzz: Avoid using block-decorated structs in transformations (#3877)
      0e8553072 spirv-fuzz: Use overflow ids when inlining functions (#3880)
      67f8e2edd Debug info preservation in convert-local-access-chains pass (#3835)
      d91afd8de spirv-fuzz: Refactor fact manager tests (#3879)
      b920b620a spirv-fuzz: Integrate spirv-reduce with shrinker (#3849)
      74a711a76 spirv-fuzz: Only recommend passes when a pass had an effect (#3863)
      fc7860e2d spirv-fuzz: Merge the return instructions in a function (#3838)
      57abfd88c Debug info preservation in redundancy-elimination pass (#3839)
      e24603836 Debug info preservation in if-conversion pass (#3861)
      16cc197c8 spirv-fuzz: Refactor conditions in the fact manager (#3867)
      615fbe6cb spirv-fuzz: TransformationWrapRegionInSelection (#3674)
      f2b8a4ee5 spirv-fuzz: Enable some passes with high probability (#3860)
      50e04f612 spirv-fuzz: Do not add constants for Block-decorated structs (#3862)
      8edd79ddc spirv-fuzz: Fix to FuzzerPassFlattenConditionalBranches (#3865)
      719bade4f spirv-fuzz: Fix TransformationRecordSynonymousConstants (#3868)
      009facc97 spirv-fuzz: Fix flatten conditional branch transformation (#3859)
      fcb22ecf0 spirv-fuzz: Report fresh ids in transformations (#3856)
      c6ca885c0 [spirv-dis] Add some context comments to disassembly. (#3847)
      446adb05f Fix use-after-move in val/validate.cpp (#3848)
      4b07d50cd spirv-fuzz: Fix bug in TransformationDuplicateRegionWithSelection (#3819)
      fec56146a spirv-fuzz: Support OpNot bit instruction case (#3841)
      9e17b9d07 spirv-fuzz: Return IR and transformation context after replay (#3846)
      e12087d6c spirv-fuzz: fix test (#3845)
      9edeeafdb spirv-fuzz: Use unique_ptr<FactManager> in TransformationContext (#3844)
      50dacda55 Start SPIRV-Tools v2020.6
      b27e039c6 Finalize SPIRV-Tools v2020.5
      a5903a969 Update CHANGES
      330c72549 spirv-fuzz: Support dead blocks in TransformationAddSynonym (#3832)
      36185f8b0 spirv-fuzz: Move IRContext parameter into constructor (#3837)
      0e7fe4d35 Add missing backticks around <result-id> (#3840)
      d1bb98fd4 Validate SPIRV Version number when parsing binary header (#3834)
      67525bded spirv-fuzz: Create synonym of int constant using a loop (#3790)
      7cc4b4d2c Fix compiler error on macOS with XCode12 (#3836)
      5a5b750aa spirv-fuzz: Handle OpPhis in TransformationInlineFunction (#3833)
      0a1fb588c Update CHANGES
      125b64241 spirv-fuzz: Refactor fuzzer, replayer and shrinker (#3818)
      60ce96e2f spirv-fuzz: Add pass recommendations (#3757)
      2945963cc spirv-fuzz: Consider all ids from dead blocks irrelevant (#3795)
      50ae4c5f4 Fix header guard macros (#3811)
      296e9c7bc spirv-fuzz: Fix TransformationDuplicateRegionWithSelection (#3815)
      937a757f0 spirv-val: Add DeviceIndex (#3812)
      34ef0c3fd Fix missed modification flagging (#3814)
      748edbf8c spirv-fuzz: Use an irrelevant id for the unused components (#3810)
      8d49fb2f4 spirv-fuzz: Improvements to random number generation (#3809)
      7e28d809c Add buffer oob check to bindless instrumentation (#3800)
      8fc504110 spirv-fuzz: Remove CanFindOrCreateZeroConstant (#3807)
      e8ce4355a spirv-fuzz: Add bit instruction synonym transformation (#3775)
      e7c84feda spirv-fuzz: Skip unreachable blocks (#3729)
      f20b523cb Fix build errors (#3804)
      3131686d2 spirv-fuzz: Handle invalid ids in fact manager (#3742)
      4c239bd81 spirv-fuzz: Support memory instructions MoveInstructionDown (#3700)
      1e1c308de spirv-fuzz: Pass submanagers to other submanagers when necessary (#3796)
      f62357e7b spirv-fuzz: Transformation to flatten conditional branch (#3667)
      5df930054 spirv-val: Add BaseInstance, BaseVertex, DrawIndex, and ViewIndex (#3782)
      286b3095d Properly mark IR changed if instruction folder creates more than one constant. (#3799)
      726af6f78 Add missing file to BUILD.gn (#3798)
      244e6c1be spirv-fuzz: Add TransformationDuplicateRegionWithSelection (#3773)
      5dcb576b6 spirv-reduce: Support reducing a specific function (#3774)
      de7d57984 spirv-reduce: Refactoring (#3793)
      ed9863e46 Favour 'integrity' over 'coherence' as a replacement for 'sanity'. (#3619)
      8743d385f spirv-fuzz: Fix header guards in transformations/fuzzer passes (#3784)
      2de7d3af0 spirv-fuzz: Add SPIRV_FUZZ_PROTOC_COMMAND (#3789)
      e589d0d57 Add missing include (#3788)
      a715b1b40 Improve spirv-fuzz CMake code (#3781)
      a187dd58a Allow SPV_KHR_8bit_storage extension. (#3780)
      1ab52e54a spirv-opt: Add function to compute nesting depth of a block (#3771)
      fd05605be spirv-fuzz: Transformation to convert OpSelect to conditional branch (#3681)
      2c60d16a6 spirv-val: Add Vulkan VUID labels to BuiltIn (#3756)
      c341f7a6c spirv-fuzz: Add support for BuiltIn decoration (#3736)
      c278dada9 spirv-fuzz: Fix GetIdEquivalenceClasses (#3767)
      788468408 spirv-fuzz: Replace id in OpPhi coming from a dead predecessor (#3744)
      3daabd321 spirv-fuzz: Transformation to replace the use of an irrelevant id (#3697)
      d7f078f27 spirv-fuzz: TransformationMutatePointer (#3737)
      43a518601 spirv-fuzz: Compute interprocedural loop nesting depth of blocks (#3753)
      8a0ebd40f Correctly replace debug lexical scope of instruction (#3718)
      f428aa39c spirv-fuzz: Remove opaque pointer design pattern (#3755)
      08291a3a9 spirv-fuzz: Create synonym via OpPhi and existing synonyms (#3701)
      7e4948b2a Add LoopNestingDepth function to StructuredCFGAnalysis (#3754)
      50cf38b8c spirv-fuzz: Do not make synonyms of void result ids (#3747)
      bceab9fab Do not register DebugFunction for functions optimized away. (#3749)
      e02f178a7 Handle DebugScope in compact-ids pass (#3724)
      9e26ae045 spirv-fuzz: Overflow ids (#3734)
      2205254cf Fix DebugNoScope to not output InlinedAt operand. (#3748)
      230f363e6 spirv-fuzz: Split the fact manager into multiple files (#3699)
      5adc5ae64 spirv-fuzz: Add inline function transformation (#3517)
      1341b58a8 spirv-fuzz: Fix MaybeGetZeroConstant (#3740)
      12df3cafe Fix SSA-rewrite to remove DebugDeclare for variables without loads (#3719)
      3f8501de9 Add undef for inlined void function (#3720)
      4dd122392 spirv-fuzz: Add words instead of logical operands (#3728)
      b79773a35 CCP should mark IR changed if it created new constants. (#3732)
      a711c594b spirv-fuzz: add FuzzerPassAddCompositeInserts (#3606)
      582c276d4 spirv-fuzz: Support pointer types in FuzzerPassAddParameters (#3627)
      3434cb0b0 Let ADCE pass check DebugScope (#3703)
      ee7f0c882 spirv-opt: Implement opt::Function::HasEarlyReturn function (#3711)
      e28436f2b spirv-fuzz: Check termination instructions when donating modules (#3710)
      1023dd7a0 Fix -Wrange-loop-analysis warning (#3712)
      82f4bf128 spirv-fuzz: Check header dominance when adding dead block (#3694)
      b8de4f57e Allow DebugTypeTemplate for Type operand (#3702)
      c20995ef8 spirv-fuzz: Improve code coverage of tests (#3686)
      eade36db2 spirv-fuzz: Fuzzer pass to randomly apply loop preheaders (#3668)
      72ea7bec4 spirv-fuzz: Support identical predecessors in TransformationPropagateInstructionUp (#3689)
      b4c4da3e7 Improve non-semantic instruction handling in the optimizer (#3693)
      948577c5d Fix the bug (#3680)
      df859f77d spirv-fuzz: Check integer and float width capabilities (#3670)
      2641d3351 spirv-fuzz: consider additional access chain instructions (#3672)
      5e5929455 spirv-fuzz: Ignore specialization constants (#3664)
      1435e427d Fix the bug (#3683)
      be099cde1 spirv-fuzz: Fix width in FuzzerPassAddEquationInstructions (#3685)
      f0ca96d12 Preserve debug info in dead-insert-elim pass (#3652)
      0d629b903 Validate more OpenCL.DebugInfo.100 instructions (#3684)
      13a65b1ae Only validation locations for appropriate execution models (#3656)
      fd3cabd8b spirv-fuzz: Fix in operand type assertion (#3666)
      f50553867 spirv-opt: Add spvOpcodeIsAccessChain (#3682)
      b7056e7e0 spirv-fuzz: FuzzerPassPropagateInstructionsUp (#3478)
      8e1380996 Handle no index access chain in local access chain convert (#3678)
      bdeeae78a Roll 2 dependencies (#3677)
      2990a2192 Avoid using /MP4 for clang on windows. (#3662)
      7b2dd11dd spirv-fuzz: TransformationReplaceAddSubMulWithCarryingExtended (#3598)
      6d7f34fbf spirv-fuzz: Add TransformationMakeVectorOperationDynamic (#3597)
      d29eac95a spirv-fuzz: iterate over blocks in replace linear algebra pass (#3654)
      efc85ff66 spirv-fuzz: make outliner pass use additional transformations (#3604)
      5fd92a7e0 OpenCL.DebugInfo.100 DebugTypeArray with variable size (#3549)
      3f33a9aa5 spirv-opt: Improve the code of the Instruction class (#3610)
      0419751b0 spirv-fuzz: Handle OpPhis in livesafe functions (#3642)
      a10e76059 spirv-fuzz: Handle OpPhi during constant obfuscation (#3640)
      28f32ca53 spirv-fuzz: Fix FuzzerPassCopyObjects (#3638)
      8bc27a1cf spirv-fuzz: Remove OpFunctionCall operands in correct order (#3630)
      d9c73ebd9 spirv-fuzz: Handle capabilities during module donation (#3651)
      9f2223602 spirv-fuzz: Refactor boilerplate in TransformationAddParameter (#3625)
      92a71657f spirv-fuzz: TransformationMoveInstructionDown (#3477)
      b78f4b151 Remove DebugDeclare only for target variables in ssa-rewrite (#3511)
      91cea06ab Fix typo in ASAN CI build (#3623)
      2aaa8653d spirv-fuzz: Transformation to add loop preheader (#3599)
      96bcc8274 spirv-fuzz: Pass to replace int operands with ints of opposite signedness (#3612)
      ebaefda66 Debug info preservation in loop-unroll pass (#3548)
      50300450a Validator support for non-semantic clspv reflection (#3618)
      ab4fe12a4 spirv-fuzz: Fix memory bugs (#3622)
      c6e6597c4 spirv-fuzz: Implement the OpOuterProduct linear algebra case (#3617)
      054f034ea spirv-fuzz: Compute corollary facts from OpBitcast (#3538)
      a1ea15c90 Update some language usage. (#3611)
      863b8e3d3 spirv-fuzz: Relax type constraints in DataSynonym facts (#3602)
      7e75fea9e spirv-fuzz: Remove non-deterministic behaviour (#3608)
      f9b088fe0 Avoid use of 'sanity' and 'sanity check' in the code base (#3585)
      150be20d4 spirv-fuzz: Add condition to make functions livesafe (#3587)
      ce16ccf38 Rolling 4 dependencies (#3601)
      1dfc6fc7e spirv-fuzz: Implement the OpTranspose linear algebra case (#3589)
      b63f0e5ed Fix SyntaxWarning in Python 3.8 (#3388)
      6aed7ffbc CMake: Enable building with BUILD_SHARED_LIBS=1 (#3490)
      31c821393 Avoid operand type range checks (#3379)
      6a3eb679b Preserve debug info in scalar replacement pass (#3461)
      2796840d2 Update OpenCL capabilities validation (#3149)
      b25ee93c2 build(deps): bump lodash from 4.17.15 to 4.17.19 in /tools/sva (#3596)
      
      git-subtree-dir: third_party/SPIRV-Tools
      git-subtree-split: 82b378d671836b51343b010ca9ec32db14485147
  2. 27 Jul, 2020 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from 55af3902f..8a5500656 · c00ee6cc
      Alexis Hetu authored
      8a5500656 spirv-fuzz: adds TransformationReplaceLoadStoreWithCopyMemory (#3586)
      7c901a49c Preserve OpenCL.DebugInfo.100 through private-to-local pass (#3571)
      767518e8e spirv-fuzz: Relax type checking for int contants (#3573)
      f8920bcfa spirv-fuzz: Generalise transformation access chain (#3546)
      98ac9fd6d spirv-fuzz: Split blocks starting with OpPhi before trying to outline (#3581)
      059ab0819 spirv-fuzz: Set message consumer in replayer when shrinking (#3591)
      d6306537d spirv-fuzz: Don't use default parameters (#3583)
      969f02864 Change DEPS rolling script to point at external/ (#3584)
      1aaf5c613 spirv-fuzz: Create a helper in fuzzerutil to reuse function type (#3572)
      89b3bc5a8 spirv-fuzz: Test usages of IdIsIrrelevant fact (#3578)
      9dc1bfa31 spirv-fuzz: adds TransformationReplaceCopyMemoryWithLoadStore (#3575)
      586a12b9d spirv-fuzz: adds TransformationReplaceCopyObjectWithStoreLoad (#3567)
      0b84727f2 Start SPIRV-Tools v2020.5
      895927bd3 Finalize SPIRV-Tools v2020.4
      bc2f78b7d spirv-fuzz: Fix usages of irrelevant constants (#3566)
      a0d8dc2b4 Update CHANGES
      f3cec9366 Support SPV_KHR_terminate_invocation (#3568)
      dca2c86bc Sink pointer instructions in merge return (#3569)
      cf7e922e7 Preserve OpenCL.DebugInfo.100 through elim-dead-code-aggressive (#3542)
      fe9e5db89 spirv-fuzz: TransformationReplaceParamsWithStruct (#3455)
      e4aebf99f Add changes for SPV_EXT_shader_atomic_float (#3562)
      5dc96d5d2 spirv-fuzz: Use irrelevant constants (#3565)
      98395b834 spirv-fuzz: Extend TransformationRecordSynonymousConstants to allow composite constants (#3537)
      a3b0adc30 spirv-fuzz: Add is_irrelevant parameter (#3563)
      8b5ed4448 spirv-fuzz: Add IdIsIrrelevant fact (#3561)
      c10d6cebb spirv-fuzz: refactor to use RemoveAtRandomIndex (#3560)
      0d8fe0fba spirv-fuzz: add TransformationAddRelaxedDecoration (#3545)
      717e7877c Store location values sparsely (#3488)
      d5766f280 Permit Simple and GLSL450 memory model in WEBGPU_0 (#3463)
      bcc78b3e9 spirv-fuzz: support floating-point in TransformationInvertComparisonOperator (#3551)
      fb32c4074 Change MaybeApplyTransformation to return a boolean (#3555)
      7dfd9b868 spirv-fuzz: Implement MaybeApplyTransformation helper function (#3540)
      de1ff50f2 spirv-fuzz: Assert false in IsApplicable method of TransformationAccessChain (#3528)
      680c77fa6 spirv-fuzz: Add support for OpBitcast to TransformationEquationInstruction (#3523)
      b0206b0f6 spirv-fuzz: Add support for OpConvert to TransformationEquationInstruction (#3472)
      7221ccf85 Fix reachability in the validator (#3541)
      2fa735dc0 spirv-fuzz: Remove TransformationCopyObject (#3531)
      8e0215afe spirv-opt: Add support for OpLabel to dominator analysis (#3516)
      f12c40f5a spirv-fuzz: Fuzzer pass to interchange zero-like constants (#3524)
      3e7238c68 spirv-fuzz: Add replay range option (#3535)
      4c33fb0d3 Rewrite KillDebugDeclares() (#3513)
      362276978 spirv-fuzz: Fix instruction insertion issue (#3521)
      91d921e89 spirv-fuzz: Implement the OpMatrixTimesMatrix linear algebra case (#3527)
      282392dda Add support to GPU-AV instrumentation for Task and Mesh shaders (#3512)
      c9b254d04 spirv-fuzz: Support adding dead break from back-edge block (#3519)
      fe4dca516 Support OpPhi when replacing boolean constant operand (#3518)
      40c3c1cac spirv-fuzz: TransformationAddSynonyms (#3447)
      13dc28ce7 spirv-fuzz: Remove unused functions (#3510)
      282962362 spirv-fuzz: Minor refactoring (#3507)
      cf8c86a2d Preserve OpenCL.DebugInfo.100 through elim-local-single-store (#3498)
      a687057a8 Preserve debug info in vector DCE pass (#3497)
      5f8cdd8b4 Implement transformation to record synonymous constants. (#3494)
      94667fbf6 Fix build failure (#3508)
      44428352b Upgrade elim-local-single-block for OpenCL.DebugInfo.100 (#3451)
      de56c34bd spirv-fuzz: TransformationReplaceParameterWithGlobal (#3434)
      11946e640 Implement the OpMatrixTimesVector linear algebra case (#3500)
      f8eddbbe5 Preserve OpenCL.100.DebugInfo in reduce-load-size pass (#3492)
      daa3b47ed spirv-fuzz: Add image sample unused components transformation (#3439)
      7afbc0c8b spirv-fuzz: Add variables with workgroup storage class (#3485)
      2fbeb04b6 spirv-fuzz: Implement the OpVectorTimesMatrix linear algebra case (#3489)
      6d61c1159 spirv-fuzz: fuzzerutil::MaybeGetConstant* #3487
      6a4da9da4 Debug info preservation in copy-prop-array pass (#3444)
      bd2a9ea85 spirv-fuzz: TransformationInvertComparisonOperator (#3475)
      2c1ff230c Fix regression (#3481)
      4a92579a4 spirv-fuzz: Add fuzzerutil::FindOrCreate* (#3479)
      fba90d6b0 spirv-fuzz: Add FuzzerPassAddCopyMemoryInstructions (#3391)
      ab10489a0 spirv-fuzz: Add one parameter at a time (#3469)
      fc0dc3a9c Fix ADCE pass bug for mulitple entries (#3470)
      91c50e3fc Add gl_BaseInstance to the name mapper. (#3462)
      c3680adbd Implement the OpMatrixTimesScalar linear algebra case (#3450)
      efaae24d0 Clear debug information for kill and replacement (#3459)
      a1fb255a2 Validate location assignments (#3308)
      7a1af5878 Support OpCompositeExtract pattern in desc_sroa (#3456)
      29ba53f2a spirv-fuzz: Implement FuzzerPassAddParameters (#3399)
      71a5b6770 spirv-fuzz: Add GetParameters (#3454)
      8e586e46a spirv-fuzz: Permute OpPhi instruction operands (#3421)
      36b5bb701 Add support for different default/trunks in roll-deps (#3442)
      d4b9f576e [spirv-opt] debug info preservation in ssa-rewrite (#3356)
      2a1b8c062 Updated desc_sroa to support flattening structures (#3448)
      33cf7c425 spirv-fuzz: Refactor variable creation (#3414)
      d5306c8e8 spirv-fuzz: Swap operands in OpBranchConditional (#3423)
      545d158a2 Use structured order to unroll loops. (#3443)
      5342930f9 Debug info preservation in dead branch elimination (#3425)
      99651228b Add RemoveParameter method (#3437)
      57d9e360c Fix return type (#3435)
      a7112d544 Eliminate branches with condition of OpConstantNull (#3438)
      949470354 spirv-fuzz: Implement vector shuffle fuzzer pass (#3412)
      12a4fb3bc spirv-fuzz: Add replace linear algebra instruction transformation (#3402)
      52a5f074e Update access control lists. (#3433)
      30bf46dbe Fix operand access (#3427)
      5543d5faa Debug info preservation in ccp pass (#3420)
      458140aed Fix round trip tests that weren't instantiated (#3417)
      e49896709 spirv-fuzz: Add a test (#3238)
      c01f826bc spirv-fuzz: Add support for OpSpecConstant* (#3373)
      7c213720b spirv-fuzz: Fix replayer bug (#3401)
      9ed0fef6e Add value instruction condition (#3385)
      ffaecad32 Fix instruction function use (#3390)
      94808bd0f spirv-fuzz: Fix regression (#3396)
      74130f2d3 Fix googletest inclusion (#3398)
      636f449e1 Add tests for merge-return debug info preservation (#3389)
      f050cca7e spirv-fuzz: Add push id through variable transformation (#3359)
      8dfdbeff8 Rolling 4 dependencies (#3380)
      20e7fc505 Start SPIRV-Tools v2020.4
      e128ab0d6 Finalize SPIRV-Tools v2020.3
      9b8a6a144 Update CHANGES
      d3d89bb90 spirv-fuzz: Support bit width argument for int and float types (#3378)
      
      git-subtree-dir: third_party/SPIRV-Tools
      git-subtree-split: 8a5500656ec0b495bb9d4f23257c3d21123225a9
  3. 26 May, 2020 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from fd773eb50d6..55af3902fc2 · 38e46911
      Ben Clayton authored
      55af3902fc2 Fix function use (#3372)
      9cb2571a184 spirv-val: allow DebugInfoNone for DebugTypeComposite.Size (#3374)
      4386ef4234e Add validation support for ImageGatherBiasLodAMD (#3363)
      b0264b87ffb Fix validation failure on OpDecorationGroup (#3365)
      4410272bdda Remove deprecated interfaces from instrument passes (#3361)
      50b15578866 Preserve debug info in inline pass (#3349)
      4dbe18b0c86 Reject folding comparisons with unfoldable types. (#3370)
      55193b06e5e Improve build instructions for fuzzer (#3364)
      3c47dac2820 Add unrolling to performance passes (#3082)
      2b987c49a4e Handle OpConstantNull in ssa-rewrite (#3362)
      95df4c9643c Add in a bunch of missed files to the BUILD.gn (#3360)
      90930cb3115 Remove stale entries from BUILD.gn (#3358)
      18ba3d9a353 allow cross compiling for Windows Store, UWP, etc. (#3330)
      2f69ea849aa spirv-fuzz: Remove FuzzerPassAddUsefulConstructs (#3341)
      522561619a9 Add support for StorageBuffer (#3348)
      b75dbf82a69 Prevent Effcee install his things when build spirv-tools with testing enabled (#3256)
      85c7e7956bf Don't register edges twice in merge return (#3350)
      bd0a2da946c Revert "Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)" (#3345)
      31182763704 spirv-reduce: Remove unused struct members (#3329)
      a6b0e132ecc Add adjust branch weights transformation (#3336)
      d4fac3451b7 Revert "[spirv-opt] refactor inlining pass (#3328)" (#3342)
      233246bc9c5 [spirv-opt] refactor inlining pass (#3328)
      2992386ebea spirv-reduce: Remove unused uniforms and similar (#3321)
      a9f2a145e65 spirv-fuzz: Fix to fact manager (#3339)
      045a26e6e37 spirv-fuzz: Get rid of unnecessary template method (#3340)
      63fa9114a93 Do merge return if the return is not at the end of the function. (#3337)
      c8590c18bd0 Preserve debug info for wrap-opkill (#3331)
      d2b48621949 Validate ShaderCallKHR memory scope (#3332)
      2e1d208ed9d spirv-fuzz: Do not allow adding stores to read-only pointers (#3316)
      54fb17b2d30 reduce: increase default step limit (#3327)
      49842b88eec Generalize IsReadOnlyVariable() to apply to pointers (#3325)
      49ca250b44c Delete nullptr in function bb list immedietly (#3326)
      d0a87194f7b Set DebugScope for termination instructions (#3323)
      f278b467dfd spirv-fuzz: Do not outline regions that end with a loop header (#3312)
      23d68608b00 vscode: Handle '|' chains on BitEnum / ValueEnum (#3309)
      42268740c95 Add debug information analysis (#3305)
      eed48ae479d Add spvtools::opt::Operand::AsLiteralUint64 (#3320)
      94d6002dc53 spirv-fuzz: Pass on validator options during shrinking (#3317)
      88faf63ad3c spirv-fuzz: Clamp statically out-of-bounds accesses in code donation (#3315)
      b74199a22d4 spirv-fuzz: Fix memory management in the fact manager (#3313)
      d158ffe5405 spirv-fuzz: Do not replace the Sample argument in OpImageTexelPointer (#3311)
      5547553a0c7 Allow various validation options to be passed to spirv-opt (#3314)
      30ffe62e257 typo fix: in README.md exectuable->executable (#3306)
      67f4838659f spirv-fuzz: Make handling of synonym facts more efficient (#3301)
      61b7de3c39f Remove unreachable code. (#3304)
      ed96301c6c4 spirv-fuzz: Fix to outliner (#3302)
      c018fc6ae66 spirv-fuzz: Do not outline regions that produce pointer outputs (#3291)
      f460cca9dca spirv-fuzz: Handle OpRuntimeArray when replacing ids with synonyms (#3292)
      2f180468a71 spirv-fuzz: Handle image storage class in donation (#3290)
      f82d47003e7 spirv-fuzz: Respect rules for OpSampledImage (#3287)
      7ce2db1763b spirv-fuzz: Fix comment. (#3300)
      7d65bce0bbe Sampled images as read-only storage (#3295)
      2a2bdbd5d72 Remove implicit fallthrough (#3298)
      49566448944 Add tests for recently added command line option (#3297)
      ca5751590ed If SPIRV-Headers is in our tree, include it as subproject (#3299)
      e70d25f6fa5 Struct CFG analysus and single block loop (#3293)
      000040e707a Preserve debug info in eliminate-dead-functions (#3251)
      c531099eb34 Update acorn version (#3294)
      34be23373b9 Handle more cases in dead member elim (#3289)
      d0490ef080c Fix pch macro to ignore clang-cl (#3283)
      538512e8e89 spirv-fuzz: Improve the handling of equation facts (#3281)
      183e3242a36 spirv-fuzz: Handle more general SPIR-V in donation (#3280)
      4af38c49bfe spirv-fuzz: Improve support for compute shaders in donation (#3277)
      e95fbfb1f50 spirv-fuzz: Transformation to add OpConstantNull (#3273)
      5d491a7ed66 spirv-fuzz: Handle isomorphic types property in composite construction (#3262)
      bfd25ace084 spirv-fuzz: Limit adding of new variables to 'basic' types (#3257)
      f28cdeff16f spirv-fuzz: Only replace regular ids with synonyms (#3255)
      8d4261bc440 spirv-fuzz: Introduce TransformationContext (#3272)
      2fdea57d19d spirv-fuzz: Add validator options (#3254)
      af01d57b5e3 Update dominates to check for null nodes (#3271)
      f20c0d7971c Set wrapped kill basic block's parent (#3269)
      c37c94929bf Validate Buffer and BufferBlock apply only to struct types (#3259)
      
      git-subtree-dir: third_party/SPIRV-Tools
      git-subtree-split: 55af3902fc24db889b0ef8010a83efca04a6352c
  4. 27 Mar, 2020 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from 8910ea5f1..fd773eb50 · b8a77463
      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
  5. 24 Feb, 2020 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from 8aa423930..8910ea5f1 · dc6b76af
      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
  6. 06 Jan, 2020 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from c3f22f7cb..8aa423930 · 0b54f13d
      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
  7. 18 Nov, 2019 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from 65e362b7a..c3f22f7cb · d552f632
      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
  8. 30 Aug, 2019 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from 9559cdbdf..65e362b7a · d0f684e3
      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
  9. 29 Jul, 2019 1 commit
    • Squashed 'third_party/SPIRV-Tools/' changes from d14db341b..9559cdbdf · b73b7601
      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
  10. 30 Jan, 2019 1 commit