David Neto
f6def6d572
[spirv-reader] Test nested if, switch
...
Bug: tint:3
Change-Id: I7b84523b765bd51ea7a65dc2de396a14b80fcc62
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20044
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-21 17:44:44 +00:00
David Neto
9cba3e1850
[spirv-reader] Split arithmetic, bit tests
...
Separate them into different test files, to match SPIR-V spec sections
Bug: tint:3
Change-Id: I89fe76230740da060d57ac23870069a5483b2d7d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20043
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-21 17:44:44 +00:00
David Neto
6235caaae4
[spirv-reader] Test block order with Kill, Unreachable
...
Bug: tint:3
Change-Id: Ic8627ca3449ddc7f6abf248b0a461cfbafe77819
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20041
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-21 17:44:44 +00:00
David Neto
571eea5a1a
[spirv-reader] Compute basic block order
...
Test non-nested sequences and selections.
Bug: tint:3
Change-Id: Ibbbcd428d701d9e7d4da1682f94c2bdbef00121b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19920
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-21 17:44:44 +00:00
David Neto
90bbafa125
[spirv-reader] Fix build
...
Fix bad merge around emission of OpBitcast.
Change-Id: Iacc5ba1c3940745e4b2c46878bbc416397ec555f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20047
Reviewed-by: David Neto <dneto@google.com >
2020-04-20 22:09:26 +00:00
David Neto
89af8a23cc
[spirv-reader] Add OpBitcast
...
Bug: tint:3
Change-Id: I51f4521edeacf9e7c4d8dbf4a1832295b1705550
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19886
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
b4c49680b5
[spirv-reader] Add OpNot
...
Bug: tint:3
Change-Id: I4fe2f7ba0e8597ac5bed1e4817e3ccc38dc06a82
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19885
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
00feb1ca60
[spirv-reader] Add OpLogicalNot
...
Bug: tint:3
Change-Id: I5565133c47a34be3ed9e10b97aa5dfca0eace502
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19884
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
6eb498d669
[spirv-reader] Add OpFNegate
...
Bug: tint:3
Change-Id: I081df8fd37750917ae15667954d1b3fabb799010
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19883
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
6584028bb4
[spirv-reader] Add OpSNegate
...
Bug: tint:3
Change-Id: Id396319dd32216a71e21464d41bb2f2545929207
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19882
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
e150e0f13e
[spirv-reader] Test OpSMod
...
Also, it's not clear if OpSRem has a direct mapping.
Bug: tint:3
Change-Id: Ie7834253cf14109fbebd2ece8e18d9899b29753b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19881
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
4f10a256d5
[spirv-reader] Fix OpSDiv operand and result signedness
...
(I expect that) the WGSL signed division operator expects both operands
to be signed and the result will also be signed.
When the operands of a SPIR-V OpSDiv is unsigned, then wrap
the operand in an as-cast to the corresponding signed type.
When the result type of a SPIR-V OpSDiv instruction is unsigned,
we have to wrap the generated WGSL operator with an as-cast to
that unsigned type.
This first CL addresses OpSDiv. We'll address other operations in future CLs.
Bug: tint:3
Change-Id: If3849ceb44b21db87c1efd2c6a2cd63c6d648c88
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19800
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
David Neto
b572d53bf2
[spirv-reader] Internally, generate typed expressions
...
The AST only wants expressions, not their result types.
But the SPIR-V reader wants to track the AST type as well.
So introduce a TypedExpression concept for internal use.
Bug: tint:3
Change-Id: Ia832f7422440ef0e8e04630cdca98cae20e18921
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/20040
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-20 21:06:43 +00:00
dan sinclair
50714622b4
Cleanup IdentifierExpression API.
...
This CL renames the parts of the identifier to segments and then adds a
path() and name() methods to get the respective parts of the identifier.
Change-Id: I1a365df7cb83ac0dd3d6be9ec6ccb83bfc73dd91
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19762
Reviewed-by: Ryan Harrison <rharrison@chromium.org >
2020-04-20 14:21:00 +00:00
David Neto
340a51e787
Add required overrides for virtual destructors
...
Fixes build on macOS
TBR=rharrison@google.com
Change-Id: I22e463b76074b499187a472649c46ef1b17c77cd
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19880
Reviewed-by: David Neto <dneto@google.com >
2020-04-17 15:52:49 +00:00
Ryan Harrison
0a196c13c8
Adding support for testing BUILD.gn
...
BUG=tint:50
Change-Id: Ie19a1af6a97a49a67dcc7474991c960b986ddebe
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19782
Reviewed-by: David Neto <dneto@google.com >
2020-04-17 13:18:20 +00:00
Ryan Harrison
0caab67e6e
Add support for WGSL reading to BUILD.gn
...
BUG=tint:47
Change-Id: Ic50421f4dc712c614cf5783027ba273b53b2bd83
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19681
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-15 20:47:55 +00:00
Ryan Harrison
d1cf8a8ba5
Add support for SPIRV reading to BUILD.gn
...
BUG=dawn:16
Change-Id: I1da30fed82a310007674801e3b1e853b25d5b573
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19640
Reviewed-by: dan sinclair <dsinclair@google.com >
Commit-Queue: Ryan Harrison <rharrison@chromium.org >
2020-04-15 20:35:38 +00:00
David Neto
ac3213b4ad
[spirv-reader] Add UMod, SMod, FMod
...
Bug: tint:3
Change-Id: Idd0e5bbc51e05782d3f918e4ffeb83eab52d87d2
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19565
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-15 14:02:37 +00:00
David Neto
badf99be5d
[spirv-reader] Add ISub, IMul, UDiv, SDiv
...
Bug: tint:3
Change-Id: Id2c9d91742f8bdc712d2dfbda5f4883379a29470
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19564
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-15 14:00:57 +00:00
David Neto
d4c8ab967b
[spirv-reader] Add FOrdEqual, FOrdNotEqual
...
Unordered equality and inequality is not yet in WGSL
https://github.com/gpuweb/gpuweb/issues/706
Bug: tint:3
Change-Id: I45761ee490829f180110c578283bf136a185de9f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19563
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-15 13:59:31 +00:00
David Neto
da0a4e9c91
[spirv-reader] Add logical and, logical or
...
Bug: tint:3
Change-Id: Ia2bde9644a8e3cdd5871570354a380f968760711
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19562
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-15 13:58:17 +00:00
David Neto
fae8368dfe
[spirv-reader] Add bitwise operators
...
Bug: tint:3
Change-Id: I4ebaafcf2a234dd6c217241f0fb0dd6ee5684a7a
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19561
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-15 13:57:20 +00:00
David Neto
641208c2b1
[spirv-reader] Add shift operators
...
Bug: tint:3
Change-Id: I96ba69d35b072712f8c912fd258bca1f32ab5482
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19560
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 21:02:17 +00:00
David Neto
11d9ac1ee1
[spirv-reader] Add INotEqual
...
Bug: tint:3
Change-Id: I5de89c15dfdcab1b454e2698244f51b0e2deb4ab
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19541
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 20:56:14 +00:00
David Neto
bd2965858a
[spirv-reader] Support OpIEqual
...
Bug: tint:3
Change-Id: I8d87711dcc0ffd1de3cd4a4874a8bf225c676b30
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19540
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 20:56:07 +00:00
dan sinclair
266a32954e
Cleanup lint errors.
...
This CL cleans up some lint errors.
Change-Id: Ibfe9768cc4272d015a35a8d7edde0390b8fc66a5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19504
Reviewed-by: Ryan Harrison <rharrison@chromium.org >
2020-04-14 18:16:08 +00:00
David Neto
74d97e7282
[spirv-reader] Add FDiv
...
Change-Id: Ie24bb91276340afd77009165af471ce0f53cca39
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19503
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 16:27:26 +00:00
David Neto
5ef27afbfb
[spirv-reader] Add FMul
...
Bug: tint:3
Change-Id: I2f7f9f451889d394b22bc297d511ee5fe92b7a85
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19502
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 16:27:01 +00:00
David Neto
31d9036769
[spirv-reader] Add FSub
...
Bug: tint:3
Change-Id: I6e79e19bf5feb9e0223d770f718a0d0bd9b5b147
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19501
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 16:26:29 +00:00
David Neto
79797490d8
[spirv-reader] Support OpFAdd
...
Bug: tint:3
Change-Id: I22a6ff13d3777544101fa8334d598e5a2524caec
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19223
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 16:16:09 +00:00
dan sinclair
a28bcceb15
Remove premerge.
...
This CL removes the premerge statement and replaces it with a `premerge`
reserved word.
Change-Id: Ic9bc13878ed26e1733eb65dd1ba30d9bef095cb6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19380
Reviewed-by: Ryan Harrison <rharrison@chromium.org >
2020-04-14 14:46:58 +00:00
dan sinclair
efb5d4e10f
Remove regardless.
...
This CL removes the regardless statement and turns `regardless` into a
reserved word.
Change-Id: I50c521111b90dbadddaeb36674e8c40205186076
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19361
Reviewed-by: Ryan Harrison <rharrison@chromium.org >
2020-04-14 14:46:51 +00:00
David Neto
2a3e79cf8c
[spirv-reader] Store to module-scope variables
...
Bug: tint:3
Change-Id: Ib4dbb976268999529c2a1c55531aa8293e565b9c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19222
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-14 14:23:59 +00:00
dan sinclair
b39dabd0cd
Run formatter
...
TBR=dneto@google.com
Change-Id: Idccbc5eeec6d763cdacd8d050bb396a0c897c7ca
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19400
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-12 19:47:16 +00:00
David Neto
3743c5ee65
[spirv-reader] Support IAdd
...
Also adds generic support for generating a combinatorial value
as a const definition.
Bug: tint:3
Change-Id: Idae758d146264491679710967e48ea270436be91
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19107
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-09 20:45:31 +00:00
David Neto
1234633b32
[spirv-reader] Handle OpLoad
...
Bug: tint:3
Change-Id: I25fdf086e49426240a771b70306b417cd8012777
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19140
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-09 13:29:17 +00:00
David Neto
a1a86007c9
[spirv-reader] Emit stores
...
Bug: tint:3
Change-Id: Ibda57e58ac13abb650eb0f3e01adbd40b439a82b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19120
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-08 20:06:26 +00:00
dan sinclair
d5dea224e0
Convert vectors to list aliases
...
This CL converts a few more std::vector<std::unique_ptr<foo>>'s to
FooList aliases.
Change-Id: If0dd672f11beaeabd9e89e82903c2174b11be6e1
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19103
Reviewed-by: David Neto <dneto@google.com >
2020-04-08 19:58:28 +00:00
dan sinclair
ee8ae04472
Set function storage class in type determiner.
...
If a non-const variable in a function has a kNone storage class we
update it to kFunction. If there is a storage class other then kFunction
we emit an error.
Bug: tint:5
Change-Id: If45eb91bd0a0095e625eb1d0e1d1e361c784e35d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19102
Reviewed-by: David Neto <dneto@google.com >
2020-04-08 19:58:20 +00:00
dan sinclair
719bfe01bf
[spirv-writer] Add relational add
...
This CL adds the relational add expression to the spirv writer.
Bug: tint:5
Change-Id: Ideed225c63e60f53a019b79803809f8e973299c6
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18605
Reviewed-by: David Neto <dneto@google.com >
2020-04-08 17:18:20 +00:00
David Neto
2c60b4c2cc
[spirv-reader] use Function storage class on function vars
...
Change-Id: I22c76ea8bce7d050411b9dd0e283abe1dae8bc6c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19101
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-08 17:18:07 +00:00
David Neto
d877e8b084
[spirv-reader] Start emitting expression
...
Bug: tint:3
Change-Id: I2e2fe41c43abbcbbc941968c0115d703f6bff501
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18822
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-08 14:24:18 +00:00
David Neto
ec322349e2
[spirv-reader] Emit module-scope var initializers
...
Bug: tint:3
Change-Id: Ifadd7616945e2392d6705746b295448a21366b0f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18821
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-08 14:24:06 +00:00
David Neto
4194d0f948
[spirv-reader] Emit function variable initializers
...
Bug: tint:3
Change-Id: I1c7fa2c282e6dd95ea048df83f608d4462150394
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18820
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-08 14:23:42 +00:00
David Neto
4fa1ceb094
[spirv-reader] Emit function vars, no initializers
...
Bug: tint:3
Change-Id: I64a4a2c675e5440766ffc814867e6cf247d14c13
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18706
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-07 20:25:03 +00:00
David Neto
753cdc75c4
[spirv-reader] Test EmitFunctionDeclaration
...
Tests FunctionEmitter directly.
This is mostly refactoring to be able to selectively run parts of the
parsing flow, and to access relevant internal data.
Bug: tint:3
Change-Id: Ic2b166a2e9623a7e30e6769806088d12e78dcf45
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18704
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-07 19:56:02 +00:00
David Neto
574bce6746
[spirv-reader] Split function emission into parts
...
Bug: tint:3
Change-Id: Ifedf4e00c7d89641496330ab20bf797f656c761c
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18703
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-07 19:55:54 +00:00
David Neto
e70e10953b
[spirv-reader] Refactor function emission
...
Create a FunctionEmitter class.
Move ParserImpl::Name to Namer::Name, and add tests.
Bug: tint:3
Change-Id: I271e8c75f6f5a0edf9d94fe0a4af5a022afac708
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18702
Reviewed-by: dan sinclair <dsinclair@google.com >
2020-04-07 19:54:52 +00:00
dan sinclair
0e9d9ed60f
Fill in some disabled tests
...
This CL completes a few of the DISABLED tests.
Change-Id: I38806fb9381240d6e3da700f1fb2dac5f899ca6d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/19000
Reviewed-by: Ryan Harrison <rharrison@chromium.org >
2020-04-07 19:27:49 +00:00