mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-12 14:46:08 +00:00
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:
committed by
dan sinclair
parent
197a1b943d
commit
396b02342f
@@ -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>(
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user