Skip to content

Avoid operand type range checks#3379

Merged
s-perron merged 3 commits intoKhronosGroup:masterfrom
dneto0:no-operand-type-range-checks
Jul 27, 2020
Merged

Avoid operand type range checks#3379
s-perron merged 3 commits intoKhronosGroup:masterfrom
dneto0:no-operand-type-range-checks

Conversation

@dneto0
Copy link
Copy Markdown
Collaborator

@dneto0 dneto0 commented May 25, 2020

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.

@dneto0 dneto0 requested a review from s-perron May 25, 2020 17:39
@dneto0
Copy link
Copy Markdown
Collaborator Author

dneto0 commented May 25, 2020

I did this because having range enum values in a public header works against binary compatibility, and binary compatibility should not be broken lightly.

@dneto0 dneto0 force-pushed the no-operand-type-range-checks branch from e244d94 to e85e0c9 Compare May 27, 2020 21:30
@dneto0
Copy link
Copy Markdown
Collaborator Author

dneto0 commented May 27, 2020

Fixed formatting and rebased against master

dneto0 and others added 3 commits July 27, 2020 11:03
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.
@s-perron s-perron force-pushed the no-operand-type-range-checks branch from e85e0c9 to 9828ab8 Compare July 27, 2020 15:16
@s-perron
Copy link
Copy Markdown
Collaborator

I've rebased this and I believe I have fixed the test failure.

@s-perron s-perron merged commit 31c8213 into KhronosGroup:master Jul 27, 2020
dnovillo pushed a commit to dnovillo/SPIRV-Tools that referenced this pull request Aug 19, 2020
* 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 pushed a commit to dneto0/SPIRV-Tools that referenced this pull request Sep 14, 2024
* Rolling 2 dependencies and updating expectations

Roll third_party/spirv-cross/ 6575e451f..0376576d2 (5 commits)

KhronosGroup/SPIRV-Cross@6575e45...0376576

$ git log 6575e451f..0376576d2 --date=short --no-merges --format='%ad %ae %s'
2020-07-22 tommek Enabling setting a fixed sampleMask in Metal fragment shaders.
2020-02-20 cdavis MSL: Add support for processing more than one patch per workgroup.
2020-07-22 dsinclair Roll GLSLang, SPIRV-Headers and SPIRV-Tools.
2020-07-22 cdavis MSL: Factor creating a uint type into its own method.
2020-07-22 cdavis MSL: Factor a really gnarly condition into its own method.

Created with:
  roll-dep third_party/spirv-cross

Roll third_party/spirv-tools/ 969f028..b63f0e5 (13 commits)

KhronosGroup/SPIRV-Tools@969f028...b63f0e5

$ git log 969f028..b63f0e5 --date=short --no-merges --format='%ad %ae %s'
2020-07-27 rdb Fix SyntaxWarning in Python 3.8 (KhronosGroup#3388)
2020-07-27 bclayton CMake: Enable building with BUILD_SHARED_LIBS=1 (KhronosGroup#3490)
2020-07-27 dneto Avoid operand type range checks (KhronosGroup#3379)
2020-07-27 jaebaek Preserve debug info in scalar replacement pass (KhronosGroup#3461)
2020-07-27 pierremoreau Update OpenCL capabilities validation (KhronosGroup#3149)
2020-07-27 stevenperron build(deps): bump lodash from 4.17.15 to 4.17.19 in /tools/sva (KhronosGroup#3596)
2020-07-27 antonikarp spirv-fuzz: adds TransformationReplaceLoadStoreWithCopyMemory (KhronosGroup#3586)
2020-07-27 jaebaek Preserve OpenCL.DebugInfo.100 through private-to-local pass (KhronosGroup#3571)
2020-07-27 stefanomil spirv-fuzz: Relax type checking for int contants (KhronosGroup#3573)
2020-07-27 stefanomil spirv-fuzz: Generalise transformation access chain (KhronosGroup#3546)
2020-07-27 stefanomil spirv-fuzz: Split blocks starting with OpPhi before trying to outline (KhronosGroup#3581)
2020-07-27 afdx spirv-fuzz: Set message consumer in replayer when shrinking (KhronosGroup#3591)
2020-07-24 vasniktel spirv-fuzz: Don't use default parameters (KhronosGroup#3583)

Created with:
  roll-dep third_party/spirv-tools

* Add in missing expectations update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants