Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: KhronosGroup/SPIRV-Tools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 969f0286479b
Choose a base ref
...
head repository: KhronosGroup/SPIRV-Tools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: b63f0e5ed3e8
Choose a head ref
  • 13 commits
  • 84 files changed
  • 10 contributors

Commits on Jul 24, 2020

  1. Configuration menu
    Copy the full SHA
    d630653 View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2020

  1. spirv-fuzz: Set message consumer in replayer when shrinking (#3591)

    Fixes an issue with the shrinker, where the message consumer set for
    the shrinker was not being passed on to the replay object that the
    shrinker creates.  This meant that messages generated during replay
    would cause an exception to be thrown.
    afd authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    059ab08 View commit details
    Browse the repository at this point in the history
  2. spirv-fuzz: Split blocks starting with OpPhi before trying to outline (

    …#3581)
    
    This PR modifies FuzzerPassOutlineFunctions so that it tries to split
    a block starting with OpPhi instructions, so that it is more likely
    that the selected blocks can be outlined using
    TransformationOutlineFunction.
    
    Fixes #3094.
    stefanomil authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    98ac9fd View commit details
    Browse the repository at this point in the history
  3. spirv-fuzz: Generalise transformation access chain (#3546)

    This PR generalises TransformationAddAccessChain so that dynamic
    indices for non-struct composites (with clamping to ensure that
    accesses are in-bound) are allowed.
    
    The transformation will add instructions to clamp any index to
    a non-struct composite, regardless of whether it is a constant
    or not.
    
    Fixes #3179.
    stefanomil authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    f8920bc View commit details
    Browse the repository at this point in the history
  4. spirv-fuzz: Relax type checking for int contants (#3573)

    Right now, TransformationRecordSynonymousConstants requires the type
    ids of two candidate constants to be exactly the same.
    This PR adds an exception for integer constants, which can be
    considered equivalent even if their signedness is different.
    This applies to both integers and vector constants.
    
    The IsApplicable method of ReplaceIdWithSynonym is also updated so
    that, in the case of two integer constants which don't have the same
    type, they can only be swapped in particular instructions (those
    that don't take the signedness into consideration).
    
    Fixes #3536.
    stefanomil authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    767518e View commit details
    Browse the repository at this point in the history
  5. Preserve OpenCL.DebugInfo.100 through private-to-local pass (#3571)

    A debug instruction must not have any impact on the private-to-local
    optimization.
    jaebaek authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    7c901a4 View commit details
    Browse the repository at this point in the history
  6. spirv-fuzz: adds TransformationReplaceLoadStoreWithCopyMemory (#3586)

    Adds a transformation that takes a pair of instruction descriptors to
    OpLoad and OpStore that have the same intermediate value and replaces
    the OpStore with an equivalent OpCopyMemory.
    
    Fixes #3353.
    Antoni Karpiński authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    8a55006 View commit details
    Browse the repository at this point in the history
  7. build(deps): bump lodash from 4.17.15 to 4.17.19 in /tools/sva (#3596)

    Manually apply #3558 because the bot cannot sign the CLA.
    s-perron authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    b25ee93 View commit details
    Browse the repository at this point in the history
  8. Update OpenCL capabilities validation (#3149)

    * spirv-val: Pipes are no longer required for OpenCL 1.2 EP
    
    This was removed from the OpenCL SPIR-V Environment Specification via
    KhronosGroup/OpenCL-Docs#56.
    
    * spirv-val: Sort headers according to clang-format
    
    * spirv-val: Groups capability is required since OpenCL 2.0
    pierremoreau authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    2796840 View commit details
    Browse the repository at this point in the history
  9. Preserve debug info in scalar replacement pass (#3461)

    1. Set the debug scope and line information for the new replacement
       instructions.
    2. Replace DebugDeclare and DebugValue if their OpVariable or value
       operands are replaced by scalars. It uses 'Indexes' operand of
       DebugValue. For example,
    
       struct S { int a; int b;}
       S foo; // before scalar replacement
    
       int foo_a; // after scalar replacement
       int foo_b;
    
       DebugDeclare %dbg_foo %foo %null_expr // before
    
       DebugValue %dbg_foo %foo_a %Deref_expr 0 // after
       DebugValue %dbg_foo %foo_b %Deref_expr 1 // means Value(foo.members[1]) == Deref(%foo_b)
    jaebaek authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    6a3eb67 View commit details
    Browse the repository at this point in the history
  10. Avoid operand type range checks (#3379)

    * Avoid operand type range checks
    
    Deprecates the SPV_OPERAND_TYPE_FIRST_* and SPV_OPERAND_TYPE_LAST_*
    macros.
    
    The "variable" and "optional" operand types are only for internal use.
    Export spvOperandIsConcrete instead, as that should cover intended
    external uses.
    
    Test that each operand type is classified either as one of:
    - a sentinel value
    - a concrete operand type
    - an optional operand type (which includes variable-expansion types)
    
    Test that each concrete and optional non-variable operand type
    has a name for use internally when generating messages.
    
    Co-authored-by: Steven Perron <stevenperron@google.com>
    dneto0 and s-perron authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    31c8213 View commit details
    Browse the repository at this point in the history
  11. CMake: Enable building with BUILD_SHARED_LIBS=1 (#3490)

    Rename the `${SPIRV_TOOLS}` target to `${SPIRV_TOOLS}-static` and alias `${SPIRV_TOOLS}` to either `${SPIRV_TOOLS}-static` or `${SPIRV_TOOLS}-shared` depending on `BUILD_SHARED_LIBS`.
    
    Re-point all internal uses of `${SPIRV_TOOLS}` to `${SPIRV_TOOLS}-static`.
    
    `${SPIRV_TOOLS}-static` is explicitly renamed to just `${SPIRV_TOOLS}` to ensure the name does not change from current behavior.
    
    Build the `SPIRV-Tools-*` libraries as static, as this is what they always were.
    
    Force the external targets `gmock` and `effcee` to be built statically. These either do not support being built as shared libraries, or require special flags.
    
    Issue: #3482
    ben-clayton authored Jul 27, 2020
    Configuration menu
    Copy the full SHA
    6aed7ff View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    b63f0e5 View commit details
    Browse the repository at this point in the history
Loading