1. 04 Nov, 2020 4 commits
  2. 03 Nov, 2020 4 commits
  3. 02 Nov, 2020 9 commits
  4. 30 Oct, 2020 6 commits
    • Merge changes Idde36437,Id477959d,I68027fa8,I8e6cf710 · e0de282e
      Alexis Hétu authored
      * changes:
        Update SPIR-V Tools to 82b378d67
        Squashed 'third_party/SPIRV-Tools/' changes from 8a5500656..82b378d67
        Update SPIR-V Headers to 7845730ca
        Squashed 'third_party/SPIRV-Headers/' changes from 979924c8b..7845730ca
    • Add check for vtable in memset template · 1459d852
      Jari Komppa authored
      This change makes sure the memset template is not
      used with classes that contain virtual members.
      
      Bug: b/152253831
      Change-Id: I07d4777f33a9bd55c8f99d8b50a80c13df5d5805
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/49648
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
      Tested-by: 's avatarJari Komppa <jari@siru.fi>
    • Update SPIR-V Tools to 82b378d67 · fd4ad841
      Alexis Hetu authored
      Changes:
          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)
      
      Commands:
          ./third_party/update-spirvtools.sh
      
      Bug: b/123642959
      Change-Id: Idde3643775d090b11dcb37ec2b3bd5a93c5e56fc
    • 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
    • Update SPIR-V Headers to 7845730ca · e14609e3
      Alexis Hetu authored
      Changes:
          7845730ca Bump revision to 4, for SPIR-V 1.5.
          05836bdba Add SPV_EXT_shader_image_int64 (#170)
          be32cb6c8 Added SPV_KHR_fragment_shading_rate (#172)
          c43a43c7c  Register the Xenia emulator as a generator (#171)
          d4e76fb32 Register the Messiah SPIR-V CodeGen (#169)
          060627f0b Register the ANGLE compiler (#168)
          03a842f95 Rebuild of latest headers, which slightly moves OpTerminateInvocation
          3fdabd0da Reserve SPIR-V token range for upcoming Intel extensions. (#165)
          5538bf438 Update BUILD.bazel and BUILD.gn (#166)
          96013f32b Publish the headers for the clspv embedded reflection non-semantic extended instruction set (#164)
          76afa6397 Update the registry in spir-v.xml to modernize and split out opcodes. (#156)
      
      Commands:
          ./third_party/update-spirvheaders.sh
      
      Bug: b/123642959
      Change-Id: I68027fa8e2770cac37af6d648fbb655b2112ee88
    • Squashed 'third_party/SPIRV-Headers/' changes from 979924c8b..7845730ca · e7b7d572
      Alexis Hetu authored
      7845730ca Bump revision to 4, for SPIR-V 1.5.
      05836bdba Add SPV_EXT_shader_image_int64 (#170)
      be32cb6c8 Added SPV_KHR_fragment_shading_rate (#172)
      c43a43c7c  Register the Xenia emulator as a generator (#171)
      d4e76fb32 Register the Messiah SPIR-V CodeGen (#169)
      060627f0b Register the ANGLE compiler (#168)
      03a842f95 Rebuild of latest headers, which slightly moves OpTerminateInvocation
      3fdabd0da Reserve SPIR-V token range for upcoming Intel extensions. (#165)
      5538bf438 Update BUILD.bazel and BUILD.gn (#166)
      96013f32b Publish the headers for the clspv embedded reflection non-semantic extended instruction set (#164)
      76afa6397 Update the registry in spir-v.xml to modernize and split out opcodes. (#156)
      
      git-subtree-dir: third_party/SPIRV-Headers
      git-subtree-split: 7845730cab6ebbdeb621e7349b7dc1a59c3377be
  5. 29 Oct, 2020 4 commits
  6. 28 Oct, 2020 1 commit
  7. 26 Oct, 2020 1 commit
  8. 24 Oct, 2020 2 commits
  9. 23 Oct, 2020 1 commit
  10. 22 Oct, 2020 1 commit
    • Update VkStringify to use vulkan.hpp to_string · 8012e624
      Sean Risser authored
      Rather than occasionally updating VkStringify's table to match
      vulkan_core.h, we can use vulkan.hpp's to_string functions to get us the
      name of structure types.
      
      vulkan.hpp is such a burdensome file that it makes more sense to only
      include it in VkStringify.cpp instead of including it everywhere that
      looks at a structure extension list. And since vulkan.hpp uses its own
      equivalent equivalent types for every Vk* object, every place that calls
      vkhpp::to_string would have to do some clunky static_cast.
      
      I think in the long run, it's easier to maintain vulkan.hpp if we don't
      use it directly in our core files.
      
      Bug: b/170962162
      Change-Id: Ib0380eaba4d05d9d5127fb0569efa6ef88d0156b
      Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/49368
      Kokoro-Result: kokoro <noreply+kokoro@google.com>
      Tested-by: 's avatarSean Risser <srisser@google.com>
      Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
  11. 21 Oct, 2020 4 commits
  12. 20 Oct, 2020 2 commits
  13. 16 Oct, 2020 1 commit