tint: Replace all remaining AST types with ast::Type

This CL removes the following AST nodes:
* ast::Array
* ast::Atomic
* ast::Matrix
* ast::MultisampledTexture
* ast::Pointer
* ast::SampledTexture
* ast::Texture
* ast::TypeName
* ast::Vector

ast::Type, which used to be the base class for all AST types, is now a
thin wrapper around ast::IdentifierExpression. All types are now
referred to using their type name.

The resolver now handles type resolution and validation of the types
listed above based on the TemplateIdentifier arguments.

Other changes:
* ProgramBuilder has undergone substantial refactoring.
* ProgramBuilder helpers for type inferencing is now more explicit.
  Instead of passing 'nullptr', a new 'Infer' template argument is
  passed.
* ast::CheckIdentifier() is used for more tests that check identifiers,
  including types.

Bug: tint:1810
Change-Id: I8e739ef49435dc1c20a462f3ec5ba265661a7edb
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/118723
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
This commit is contained in:
Ben Clayton
2023-02-14 13:52:43 +00:00
committed by Dawn LUCI CQ
parent c950ff08b6
commit 971318f7a2
295 changed files with 4613 additions and 5901 deletions

View File

@@ -28,10 +28,10 @@ S ret_struct_arr() {
}
void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, int4 value[4]) {
int4 array[4] = value;
int4 array_1[4] = value;
{
for(uint i = 0u; (i < 4u); i = (i + 1u)) {
buffer.Store4((offset + (i * 16u)), asuint(array[i]));
buffer.Store4((offset + (i * 16u)), asuint(array_1[i]));
}
}
}
@@ -60,28 +60,28 @@ tint_symbol_7_ret tint_symbol_7(RWByteAddressBuffer buffer, uint offset) {
}
void tint_symbol_11(RWByteAddressBuffer buffer, uint offset, int value[2]) {
int array_3[2] = value;
int array_4[2] = value;
{
for(uint i_3 = 0u; (i_3 < 2u); i_3 = (i_3 + 1u)) {
buffer.Store((offset + (i_3 * 4u)), asuint(array_3[i_3]));
buffer.Store((offset + (i_3 * 4u)), asuint(array_4[i_3]));
}
}
}
void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, int value[3][2]) {
int array_2[3][2] = value;
int array_3[3][2] = value;
{
for(uint i_4 = 0u; (i_4 < 3u); i_4 = (i_4 + 1u)) {
tint_symbol_11(buffer, (offset + (i_4 * 8u)), array_2[i_4]);
tint_symbol_11(buffer, (offset + (i_4 * 8u)), array_3[i_4]);
}
}
}
void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, int value[4][3][2]) {
int array_1[4][3][2] = value;
int array_2[4][3][2] = value;
{
for(uint i_5 = 0u; (i_5 < 4u); i_5 = (i_5 + 1u)) {
tint_symbol_10(buffer, (offset + (i_5 * 24u)), array_1[i_5]);
tint_symbol_10(buffer, (offset + (i_5 * 24u)), array_2[i_5]);
}
}
}

View File

@@ -28,10 +28,10 @@ S ret_struct_arr() {
}
void tint_symbol_3(RWByteAddressBuffer buffer, uint offset, int4 value[4]) {
int4 array[4] = value;
int4 array_1[4] = value;
{
for(uint i = 0u; (i < 4u); i = (i + 1u)) {
buffer.Store4((offset + (i * 16u)), asuint(array[i]));
buffer.Store4((offset + (i * 16u)), asuint(array_1[i]));
}
}
}
@@ -60,28 +60,28 @@ tint_symbol_7_ret tint_symbol_7(RWByteAddressBuffer buffer, uint offset) {
}
void tint_symbol_11(RWByteAddressBuffer buffer, uint offset, int value[2]) {
int array_3[2] = value;
int array_4[2] = value;
{
for(uint i_3 = 0u; (i_3 < 2u); i_3 = (i_3 + 1u)) {
buffer.Store((offset + (i_3 * 4u)), asuint(array_3[i_3]));
buffer.Store((offset + (i_3 * 4u)), asuint(array_4[i_3]));
}
}
}
void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, int value[3][2]) {
int array_2[3][2] = value;
int array_3[3][2] = value;
{
for(uint i_4 = 0u; (i_4 < 3u); i_4 = (i_4 + 1u)) {
tint_symbol_11(buffer, (offset + (i_4 * 8u)), array_2[i_4]);
tint_symbol_11(buffer, (offset + (i_4 * 8u)), array_3[i_4]);
}
}
}
void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, int value[4][3][2]) {
int array_1[4][3][2] = value;
int array_2[4][3][2] = value;
{
for(uint i_5 = 0u; (i_5 < 4u); i_5 = (i_5 + 1u)) {
tint_symbol_10(buffer, (offset + (i_5 * 24u)), array_1[i_5]);
tint_symbol_10(buffer, (offset + (i_5 * 24u)), array_2[i_5]);
}
}
}

View File

@@ -55,19 +55,19 @@ void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, strided_arr value)
}
void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, strided_arr value[2]) {
strided_arr array_2[2] = value;
strided_arr array_3[2] = value;
{
for(uint i_3 = 0u; (i_3 < 2u); i_3 = (i_3 + 1u)) {
tint_symbol_10(buffer, (offset + (i_3 * 8u)), array_2[i_3]);
tint_symbol_10(buffer, (offset + (i_3 * 8u)), array_3[i_3]);
}
}
}
void tint_symbol_8(RWByteAddressBuffer buffer, uint offset, strided_arr value[3][2]) {
strided_arr array_1[3][2] = value;
strided_arr array_2[3][2] = value;
{
for(uint i_4 = 0u; (i_4 < 3u); i_4 = (i_4 + 1u)) {
tint_symbol_9(buffer, (offset + (i_4 * 16u)), array_1[i_4]);
tint_symbol_9(buffer, (offset + (i_4 * 16u)), array_2[i_4]);
}
}
}
@@ -77,10 +77,10 @@ void tint_symbol_7(RWByteAddressBuffer buffer, uint offset, strided_arr_1 value)
}
void tint_symbol_6(RWByteAddressBuffer buffer, uint offset, strided_arr_1 value[4]) {
strided_arr_1 array[4] = value;
strided_arr_1 array_1[4] = value;
{
for(uint i_5 = 0u; (i_5 < 4u); i_5 = (i_5 + 1u)) {
tint_symbol_7(buffer, (offset + (i_5 * 128u)), array[i_5]);
tint_symbol_7(buffer, (offset + (i_5 * 128u)), array_1[i_5]);
}
}
}

View File

@@ -55,19 +55,19 @@ void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, strided_arr value)
}
void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, strided_arr value[2]) {
strided_arr array_2[2] = value;
strided_arr array_3[2] = value;
{
for(uint i_3 = 0u; (i_3 < 2u); i_3 = (i_3 + 1u)) {
tint_symbol_10(buffer, (offset + (i_3 * 8u)), array_2[i_3]);
tint_symbol_10(buffer, (offset + (i_3 * 8u)), array_3[i_3]);
}
}
}
void tint_symbol_8(RWByteAddressBuffer buffer, uint offset, strided_arr value[3][2]) {
strided_arr array_1[3][2] = value;
strided_arr array_2[3][2] = value;
{
for(uint i_4 = 0u; (i_4 < 3u); i_4 = (i_4 + 1u)) {
tint_symbol_9(buffer, (offset + (i_4 * 16u)), array_1[i_4]);
tint_symbol_9(buffer, (offset + (i_4 * 16u)), array_2[i_4]);
}
}
}
@@ -77,10 +77,10 @@ void tint_symbol_7(RWByteAddressBuffer buffer, uint offset, strided_arr_1 value)
}
void tint_symbol_6(RWByteAddressBuffer buffer, uint offset, strided_arr_1 value[4]) {
strided_arr_1 array[4] = value;
strided_arr_1 array_1[4] = value;
{
for(uint i_5 = 0u; (i_5 < 4u); i_5 = (i_5 + 1u)) {
tint_symbol_7(buffer, (offset + (i_5 * 128u)), array[i_5]);
tint_symbol_7(buffer, (offset + (i_5 * 128u)), array_1[i_5]);
}
}
}