Remove more uses of AST to_str() and type_name()

These methods are going to be removed as they provide little benefit over the WGSL form, are a maintainance burden and they massively bloat our codebase.

This change introduces sem::CallTargetSignature, which can be used as a std::unordered_map key.
This is used in writer/spirv to replace a map that was keyed off ast::Function::type_name().

Bug: tint:1225
Change-Id: Ic220b3155011f21b14d49eecc8042001148e4ca5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/66443
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ben Clayton
2021-10-14 21:17:29 +00:00
committed by Tint LUCI CQ
parent 11ed0db30d
commit 1364f202da
13 changed files with 156 additions and 79 deletions

View File

@@ -2538,8 +2538,8 @@ bool Resolver::ValidateTextureIntrinsicFunction(
return false;
}
std::string func_name = intrinsic->str();
auto index =
sem::IndexOf(intrinsic->Parameters(), sem::ParameterUsage::kOffset);
auto& signature = intrinsic->Signature();
auto index = signature.IndexOf(sem::ParameterUsage::kOffset);
if (index > -1) {
auto* param = ast_call->args()[index];
if (param->Is<ast::TypeConstructorExpression>()) {