Revert "transforms: Use new ProgramBuilder::Sym() helper"
This reverts commit 19b4b6cc2bb2c67902492efc3807d2547802dbf3.
Reason for revert: https://dawn-review.googlesource.com/c/tint/+/48980 was reverted which added the Sym() helper.
Original change's description:
> transforms: Use new ProgramBuilder::Sym() helper
>
> Change-Id: I8600a1935556632c94778248f3711531a22f4701
> Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/48981
> Commit-Queue: James Price <jrprice@google.com>
> Reviewed-by: Ben Clayton <bclayton@google.com>
TBR=bclayton@google.com,jrprice@google.com,noreply+kokoro@google.com
Change-Id: Ie176df6e1b7606615e2acfae99e7853e6227185a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/49261
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/transform/calculate_array_length.cc b/src/transform/calculate_array_length.cc
index b4e19c3..e7fd664 100644
--- a/src/transform/calculate_array_length.cc
+++ b/src/transform/calculate_array_length.cc
@@ -80,7 +80,7 @@
std::unordered_map<sem::StructType*, Symbol> buffer_size_intrinsics;
auto get_buffer_size_intrinsic = [&](sem::StructType* buffer_type) {
return utils::GetOrCreate(buffer_size_intrinsics, buffer_type, [&] {
- auto name = ctx.dst->Sym();
+ auto name = ctx.dst->Symbols().New();
auto* func = ctx.dst->create<ast::Function>(
name,
ast::VariableList{
@@ -183,7 +183,7 @@
// Construct the variable that'll hold the result of
// RWByteAddressBuffer.GetDimensions()
auto* buffer_size_result = ctx.dst->Decl(ctx.dst->Var(
- ctx.dst->Sym(), ctx.dst->ty.u32(),
+ ctx.dst->Symbols().New(), ctx.dst->ty.u32(),
ast::StorageClass::kFunction, ctx.dst->Expr(0u)));
// Call storage_buffer.GetDimensions(buffer_size_result)
@@ -199,7 +199,7 @@
// total_storage_buffer_size - array_offset
// array_length = ----------------------------------------
// array_stride
- auto name = ctx.dst->Sym();
+ auto name = ctx.dst->Symbols().New();
uint32_t array_offset = array_member_sem->Offset();
uint32_t array_stride = array_member_sem->Size();
auto* array_length_var = ctx.dst->Decl(ctx.dst->Const(
diff --git a/src/transform/canonicalize_entry_point_io.cc b/src/transform/canonicalize_entry_point_io.cc
index d31b2d0..980cc6a 100644
--- a/src/transform/canonicalize_entry_point_io.cc
+++ b/src/transform/canonicalize_entry_point_io.cc
@@ -99,7 +99,7 @@
if (!func->params().empty()) {
// Collect all parameters and build a list of new struct members.
- auto new_struct_param_symbol = ctx.dst->Sym();
+ auto new_struct_param_symbol = ctx.dst->Symbols().New();
ast::StructMemberList new_struct_members;
for (auto* param : func->params()) {
auto param_name = ctx.Clone(param->symbol());
@@ -175,7 +175,7 @@
StructMemberComparator);
// Create the new struct type.
- auto in_struct_name = ctx.dst->Sym();
+ auto in_struct_name = ctx.dst->Symbols().New();
auto* in_struct =
ctx.dst->create<sem::StructType>(ctx.dst->create<ast::Struct>(
in_struct_name, new_struct_members, ast::DecorationList{}));
@@ -221,7 +221,7 @@
StructMemberComparator);
// Create the new struct type.
- auto out_struct_name = ctx.dst->Sym();
+ auto out_struct_name = ctx.dst->Symbols().New();
auto* out_struct =
ctx.dst->create<sem::StructType>(ctx.dst->create<ast::Struct>(
out_struct_name, new_struct_members, ast::DecorationList{}));
@@ -242,7 +242,7 @@
if (!ret->value()->Is<ast::IdentifierExpression>()) {
// Create a const to hold the return value expression to avoid
// re-evaluating it multiple times.
- auto temp = ctx.dst->Sym();
+ auto temp = ctx.dst->Symbols().New();
auto* temp_var = ctx.dst->Decl(
ctx.dst->Const(temp, ctx.Clone(ret_type), new_ret_value()));
ctx.InsertBefore(ret_sem->Block()->statements(), ret, temp_var);
diff --git a/src/transform/decompose_storage_access.cc b/src/transform/decompose_storage_access.cc
index 44a768b..16a1924 100644
--- a/src/transform/decompose_storage_access.cc
+++ b/src/transform/decompose_storage_access.cc
@@ -425,7 +425,7 @@
ast::Function* func = nullptr;
if (auto* intrinsic = IntrinsicLoadFor(ctx.dst, el_ty)) {
func = ctx.dst->create<ast::Function>(
- ctx.dst->Sym(), params, ctx.Clone(el_ty), nullptr,
+ ctx.dst->Symbols().New(), params, ctx.Clone(el_ty), nullptr,
ast::DecorationList{intrinsic}, ast::DecorationList{});
} else {
ast::ExpressionList values;
@@ -458,7 +458,7 @@
}
}
func = ctx.dst->create<ast::Function>(
- ctx.dst->Sym(), params, ctx.Clone(el_ty),
+ ctx.dst->Symbols().New(), params, ctx.Clone(el_ty),
ctx.dst->Block(
ctx.dst->Return(ctx.dst->create<ast::TypeConstructorExpression>(
ctx.Clone(el_ty), values))),
@@ -489,7 +489,7 @@
ast::Function* func = nullptr;
if (auto* intrinsic = IntrinsicStoreFor(ctx.dst, el_ty)) {
func = ctx.dst->create<ast::Function>(
- ctx.dst->Sym(), params, ctx.dst->ty.void_(), nullptr,
+ ctx.dst->Symbols().New(), params, ctx.dst->ty.void_(), nullptr,
ast::DecorationList{intrinsic}, ast::DecorationList{});
} else {
@@ -531,8 +531,8 @@
}
}
func = ctx.dst->create<ast::Function>(
- ctx.dst->Sym(), params, ctx.dst->ty.void_(), ctx.dst->Block(body),
- ast::DecorationList{}, ast::DecorationList{});
+ ctx.dst->Symbols().New(), params, ctx.dst->ty.void_(),
+ ctx.dst->Block(body), ast::DecorationList{}, ast::DecorationList{});
}
InsertGlobal(ctx, insert_after, func);
diff --git a/src/transform/first_index_offset.cc b/src/transform/first_index_offset.cc
index 20e869d..469a72d 100644
--- a/src/transform/first_index_offset.cc
+++ b/src/transform/first_index_offset.cc
@@ -134,11 +134,11 @@
offset += 4;
}
auto struct_type =
- ctx.dst->Structure(ctx.dst->Sym(), std::move(members),
+ ctx.dst->Structure(ctx.dst->Symbols().New(), std::move(members),
{ctx.dst->create<ast::StructBlockDecoration>()});
// Create a global to hold the uniform buffer
- Symbol buffer_name = ctx.dst->Sym();
+ Symbol buffer_name = ctx.dst->Symbols().New();
ctx.dst->Global(buffer_name, struct_type, ast::StorageClass::kUniform,
nullptr,
ast::DecorationList{
diff --git a/src/transform/hlsl.cc b/src/transform/hlsl.cc
index 6b4887a..9e091b9 100644
--- a/src/transform/hlsl.cc
+++ b/src/transform/hlsl.cc
@@ -98,7 +98,7 @@
auto* src_ty = src_sem_expr->Type();
if (src_ty->IsAnyOf<sem::ArrayType, sem::StructType>()) {
// Create a new symbol for the constant
- auto dst_symbol = ctx.dst->Sym();
+ auto dst_symbol = ctx.dst->Symbols().New();
// Clone the type
auto* dst_ty = ctx.Clone(src_ty);
// Clone the initializer
diff --git a/src/transform/renamer.cc b/src/transform/renamer.cc
index 9cd9abd..9eb2ecb 100644
--- a/src/transform/renamer.cc
+++ b/src/transform/renamer.cc
@@ -906,7 +906,7 @@
break;
}
- auto sym_out = ctx.dst->Sym();
+ auto sym_out = ctx.dst->Symbols().New();
remappings.emplace(name_in, ctx.dst->Symbols().NameFor(sym_out));
return sym_out;
});
diff --git a/src/transform/spirv.cc b/src/transform/spirv.cc
index 47b8aa6..c209c88 100644
--- a/src/transform/spirv.cc
+++ b/src/transform/spirv.cc
@@ -154,7 +154,7 @@
if (!func->return_type()->Is<sem::Void>()) {
ast::StatementList stores;
- auto store_value_symbol = ctx.dst->Sym();
+ auto store_value_symbol = ctx.dst->Symbols().New();
HoistToOutputVariables(
ctx, func, func->return_type(), func->return_type(),
func->return_type_decorations(), {}, store_value_symbol, stores);
@@ -162,7 +162,7 @@
// Create a function that writes a return value to all output variables.
auto* store_value =
ctx.dst->Param(store_value_symbol, ctx.Clone(func->return_type()));
- auto return_func_symbol = ctx.dst->Sym();
+ auto return_func_symbol = ctx.dst->Symbols().New();
auto* return_func = ctx.dst->create<ast::Function>(
return_func_symbol, ast::VariableList{store_value},
ctx.dst->ty.void_(), ctx.dst->create<ast::BlockStatement>(stores),
@@ -262,7 +262,7 @@
return !deco->IsAnyOf<ast::BuiltinDecoration,
ast::LocationDecoration>();
});
- auto global_var_symbol = ctx.dst->Sym();
+ auto global_var_symbol = ctx.dst->Symbols().New();
auto* global_var =
ctx.dst->Var(global_var_symbol, ctx.Clone(declared_ty),
ast::StorageClass::kInput, nullptr, new_decorations);
@@ -279,7 +279,7 @@
init_value_names.emplace_back(member_var);
}
- auto func_var_symbol = ctx.dst->Sym();
+ auto func_var_symbol = ctx.dst->Symbols().New();
if (func->body()->empty()) {
// The return value should never get used.
return func_var_symbol;
@@ -315,7 +315,7 @@
return !deco->IsAnyOf<ast::BuiltinDecoration,
ast::LocationDecoration>();
});
- auto global_var_symbol = ctx.dst->Sym();
+ auto global_var_symbol = ctx.dst->Symbols().New();
auto* global_var =
ctx.dst->Var(global_var_symbol, ctx.Clone(declared_ty),
ast::StorageClass::kOutput, nullptr, new_decorations);
diff --git a/src/transform/vertex_pulling.cc b/src/transform/vertex_pulling.cc
index cdcbd4d..93f393c 100644
--- a/src/transform/vertex_pulling.cc
+++ b/src/transform/vertex_pulling.cc
@@ -487,10 +487,11 @@
new_members.push_back(
ctx.dst->Member(member_sym, member_type, std::move(member_decos)));
}
- auto new_struct = ctx.dst->Structure(ctx.dst->Sym(), new_members);
+ auto new_struct =
+ ctx.dst->Structure(ctx.dst->Symbols().New(), new_members);
// Create a new function parameter with this struct.
- auto* new_param = ctx.dst->Param(ctx.dst->Sym(), new_struct);
+ auto* new_param = ctx.dst->Param(ctx.dst->Symbols().New(), new_struct);
new_function_parameters.push_back(new_param);
// Copy values from the new parameter to the function-scope variable.