Remove Variable::name().

This CL removes the name getter from the Variable class. All usages are
updated to use the symbol.

Change-Id: I3e4d86d2124d39023cad6113c62230c1757ece71
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36780
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
dan sinclair
2021-01-11 16:24:32 +00:00
committed by dan sinclair
parent 197a1b943d
commit 396b02342f
25 changed files with 128 additions and 120 deletions

View File

@@ -86,7 +86,7 @@ Transform::Output FirstIndexOffset::Run(ast::Module* in) {
// First do a quick check to see if the transform has already been applied.
for (ast::Variable* var : in->global_variables()) {
if (auto* dec_var = var->As<ast::Variable>()) {
if (dec_var->name() == kBufferName) {
if (dec_var->symbol() == in->RegisterSymbol(kBufferName)) {
diag::Diagnostic err;
err.message = "First index offset transform has already been applied.";
err.severity = diag::Severity::Error;
@@ -110,8 +110,8 @@ Transform::Output FirstIndexOffset::Run(ast::Module* in) {
return out;
}
std::string vertex_index_name;
std::string instance_index_name;
Symbol vertex_index_sym;
Symbol instance_index_sym;
// Lazilly construct the UniformBuffer on first call to
// maybe_create_buffer_var()
@@ -134,15 +134,17 @@ Transform::Output FirstIndexOffset::Run(ast::Module* in) {
if (auto* blt_dec = dec->As<ast::BuiltinDecoration>()) {
ast::Builtin blt_type = blt_dec->value();
if (blt_type == ast::Builtin::kVertexIdx) {
vertex_index_name = var->name();
vertex_index_sym = var->symbol();
has_vertex_index_ = true;
return clone_variable_with_new_name(
ctx, var, kIndexOffsetPrefix + var->name());
ctx, var,
kIndexOffsetPrefix + in->SymbolToName(var->symbol()));
} else if (blt_type == ast::Builtin::kInstanceIdx) {
instance_index_name = var->name();
instance_index_sym = var->symbol();
has_instance_index_ = true;
return clone_variable_with_new_name(
ctx, var, kIndexOffsetPrefix + var->name());
ctx, var,
kIndexOffsetPrefix + in->SymbolToName(var->symbol()));
}
}
}
@@ -161,11 +163,12 @@ Transform::Output FirstIndexOffset::Run(ast::Module* in) {
func->local_referenced_builtin_variables()) {
if (data.second->value() == ast::Builtin::kVertexIdx) {
statements.emplace_back(CreateFirstIndexOffset(
vertex_index_name, kFirstVertexName, buffer_var, ctx->mod));
in->SymbolToName(vertex_index_sym), kFirstVertexName,
buffer_var, ctx->mod));
} else if (data.second->value() == ast::Builtin::kInstanceIdx) {
statements.emplace_back(CreateFirstIndexOffset(
instance_index_name, kFirstInstanceName, buffer_var,
ctx->mod));
in->SymbolToName(instance_index_sym), kFirstInstanceName,
buffer_var, ctx->mod));
}
}
return CloneWithStatementsAtStart(ctx, func, statements);
@@ -252,12 +255,13 @@ ast::VariableDeclStatement* FirstIndexOffset::CreateFirstIndexOffset(
ast::Variable* buffer_var,
ast::Module* mod) {
auto* buffer = mod->create<ast::IdentifierExpression>(
Source{}, mod->RegisterSymbol(buffer_var->name()), buffer_var->name());
Source{}, buffer_var->symbol(), mod->SymbolToName(buffer_var->symbol()));
auto lhs_name = kIndexOffsetPrefix + original_name;
auto* constructor = mod->create<ast::BinaryExpression>(
Source{}, ast::BinaryOp::kAdd,
mod->create<ast::IdentifierExpression>(
Source{}, mod->RegisterSymbol(kIndexOffsetPrefix + original_name),
kIndexOffsetPrefix + original_name),
Source{}, mod->RegisterSymbol(lhs_name), lhs_name),
mod->create<ast::MemberAccessorExpression>(
Source{}, buffer,
mod->create<ast::IdentifierExpression>(

View File

@@ -19,6 +19,7 @@
#include "src/ast/module.h"
#include "src/ast/variable_decl_statement.h"
#include "src/symbol.h"
#include "src/transform/transform.h"
namespace tint {

View File

@@ -155,7 +155,7 @@ void VertexPulling::State::FindOrInsertVertexIndexIfUsed() {
for (auto* d : v->decorations()) {
if (auto* builtin = d->As<ast::BuiltinDecoration>()) {
if (builtin->value() == ast::Builtin::kVertexIdx) {
vertex_index_name = v->name();
vertex_index_name = in->SymbolToName(v->symbol());
return;
}
}
@@ -203,7 +203,7 @@ void VertexPulling::State::FindOrInsertInstanceIndexIfUsed() {
for (auto* d : v->decorations()) {
if (auto* builtin = d->As<ast::BuiltinDecoration>()) {
if (builtin->value() == ast::Builtin::kInstanceIdx) {
instance_index_name = v->name();
instance_index_name = in->SymbolToName(v->symbol());
return;
}
}
@@ -244,7 +244,7 @@ void VertexPulling::State::ConvertVertexInputVariablesToPrivate() {
v = out->create<ast::Variable>(
Source{}, // source
v->symbol(), // symbol
v->name(), // name
out->SymbolToName(v->symbol()), // name
ast::StorageClass::kPrivate, // storage_class
v->type(), // type
false, // is_const
@@ -358,10 +358,11 @@ ast::BlockStatement* VertexPulling::State::CreateVertexPullingPreamble() const {
Source{}, CreatePullingPositionIdent(), pos_value);
stmts.emplace_back(set_pos_expr);
auto ident_name = in->SymbolToName(v->symbol());
stmts.emplace_back(out->create<ast::AssignmentStatement>(
Source{},
out->create<ast::IdentifierExpression>(
Source{}, out->RegisterSymbol(v->name()), v->name()),
Source{}, out->RegisterSymbol(ident_name), ident_name),
AccessByFormat(i, attribute_desc.format)));
}
}