Use TestNamer in the SPIR-V backend. This CL updates the SPIR-V generation tests to use the TestNamer. Change-Id: I6a1d9a4c41f080ba3518509864bb06f1629ab0a9 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/36941 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc index 071ceab..8736c59 100644 --- a/src/writer/spirv/builder.cc +++ b/src/writer/spirv/builder.cc
@@ -278,8 +278,8 @@ Builder::AccessorInfo::~AccessorInfo() {} -Builder::Builder(ast::Module* mod) - : mod_(mod), namer_(std::make_unique<UnsafeNamer>(mod)), scope_stack_({}) {} +Builder::Builder(ast::Module* mod, Namer* namer) + : mod_(mod), namer_(namer), scope_stack_({}) {} Builder::~Builder() = default;
diff --git a/src/writer/spirv/builder.h b/src/writer/spirv/builder.h index 900af20..2c2c38d 100644 --- a/src/writer/spirv/builder.h +++ b/src/writer/spirv/builder.h
@@ -85,7 +85,8 @@ /// Constructor /// @param mod the module to generate from - explicit Builder(ast::Module* mod); + /// @param namer the namer to use + Builder(ast::Module* mod, Namer* namer); ~Builder(); /// Generates the SPIR-V instructions for the given module @@ -491,7 +492,7 @@ Operand result_op(); ast::Module* mod_; - std::unique_ptr<Namer> namer_; + Namer* namer_ = nullptr; std::string error_; uint32_t next_id_ = 1; uint32_t current_label_id_ = 0;
diff --git a/src/writer/spirv/builder_call_test.cc b/src/writer/spirv/builder_call_test.cc index 51d9e9f..9a4cd8e 100644 --- a/src/writer/spirv/builder_call_test.cc +++ b/src/writer/spirv/builder_call_test.cc
@@ -61,10 +61,10 @@ ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); EXPECT_EQ(b.GenerateCallExpression(expr), 14u) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "a_func" -OpName %4 "a" -OpName %5 "b" -OpName %12 "main" + EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "test_a_func" +OpName %4 "test_a" +OpName %5 "test_b" +OpName %12 "test_main" %2 = OpTypeFloat 32 %1 = OpTypeFunction %2 %2 %2 %11 = OpTypeVoid @@ -110,10 +110,10 @@ ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); EXPECT_TRUE(b.GenerateStatement(expr)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %4 "a_func" -OpName %5 "a" -OpName %6 "b" -OpName %12 "main" + EXPECT_EQ(DumpBuilder(b), R"(OpName %4 "test_a_func" +OpName %5 "test_a" +OpName %6 "test_b" +OpName %12 "test_main" %2 = OpTypeVoid %3 = OpTypeFloat 32 %1 = OpTypeFunction %2 %3 %3
diff --git a/src/writer/spirv/builder_function_decoration_test.cc b/src/writer/spirv/builder_function_decoration_test.cc index 16189d6..639e6f7 100644 --- a/src/writer/spirv/builder_function_decoration_test.cc +++ b/src/writer/spirv/builder_function_decoration_test.cc
@@ -45,7 +45,7 @@ ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); EXPECT_EQ(DumpInstructions(b.entry_points()), - R"(OpEntryPoint Vertex %3 "main" + R"(OpEntryPoint Vertex %3 "test_main" )"); } @@ -105,10 +105,10 @@ mod->AddGlobalVariable(v_wg); ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "my_in" -OpName %4 "my_out" -OpName %7 "my_wg" -OpName %11 "main" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_my_in" +OpName %4 "test_my_out" +OpName %7 "test_my_wg" +OpName %11 "test_main" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Input %3 @@ -122,7 +122,7 @@ %9 = OpTypeFunction %10 )"); EXPECT_EQ(DumpInstructions(b.entry_points()), - R"(OpEntryPoint Vertex %11 "main" + R"(OpEntryPoint Vertex %11 "test_main" )"); } @@ -158,10 +158,10 @@ mod->AddGlobalVariable(v_wg); ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "my_in" -OpName %4 "my_out" -OpName %7 "my_wg" -OpName %11 "main" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_my_in" +OpName %4 "test_my_out" +OpName %7 "test_my_wg" +OpName %11 "test_main" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Input %3 @@ -175,7 +175,7 @@ %9 = OpTypeFunction %10 )"); EXPECT_EQ(DumpInstructions(b.entry_points()), - R"(OpEntryPoint Vertex %11 "main" %4 %1 + R"(OpEntryPoint Vertex %11 "test_main" %4 %1 )"); } @@ -235,12 +235,12 @@ ASSERT_TRUE(b.GenerateFunction(func1)) << b.error(); ASSERT_TRUE(b.GenerateFunction(func2)) << b.error(); EXPECT_EQ(DumpBuilder(b), - R"(OpEntryPoint Fragment %3 "main1" -OpEntryPoint Fragment %5 "main2" + R"(OpEntryPoint Fragment %3 "test_main1" +OpEntryPoint Fragment %5 "test_main2" OpExecutionMode %3 OriginUpperLeft OpExecutionMode %5 OriginUpperLeft -OpName %3 "main1" -OpName %5 "main2" +OpName %3 "test_main1" +OpName %5 "test_main2" %2 = OpTypeVoid %1 = OpTypeFunction %2 %3 = OpFunction %2 None %1
diff --git a/src/writer/spirv/builder_function_test.cc b/src/writer/spirv/builder_function_test.cc index a50017b..69ebaee 100644 --- a/src/writer/spirv/builder_function_test.cc +++ b/src/writer/spirv/builder_function_test.cc
@@ -50,7 +50,7 @@ ast::FunctionDecorationList{}); ASSERT_TRUE(b.GenerateFunction(func)); - EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %3 = OpFunction %2 None %1 @@ -68,7 +68,7 @@ ast::FunctionDecorationList{}); ASSERT_TRUE(b.GenerateFunction(func)); - EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %3 = OpFunction %2 None %1 @@ -89,8 +89,8 @@ ASSERT_TRUE(td.DetermineFunction(func)) << td.error(); ASSERT_TRUE(b.GenerateGlobalVariable(var_a)) << b.error(); ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "a" -OpName %7 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "test_a" +OpName %7 "test_a_func" %3 = OpTypeFloat 32 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3 @@ -113,7 +113,7 @@ ast::FunctionDecorationList{}); ASSERT_TRUE(b.GenerateFunction(func)); - EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %3 = OpFunction %2 None %1 @@ -136,9 +136,9 @@ EXPECT_TRUE(td.DetermineFunction(func)); ASSERT_TRUE(b.GenerateFunction(func)); - EXPECT_EQ(DumpBuilder(b), R"(OpName %4 "a_func" -OpName %5 "a" -OpName %6 "b" + EXPECT_EQ(DumpBuilder(b), R"(OpName %4 "test_a_func" +OpName %5 "test_a" +OpName %6 "test_b" %2 = OpTypeFloat 32 %3 = OpTypeInt 32 1 %1 = OpTypeFunction %2 %2 %3 @@ -160,7 +160,7 @@ ast::FunctionDecorationList{}); ASSERT_TRUE(b.GenerateFunction(func)); - EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %3 = OpFunction %2 None %1 @@ -269,17 +269,17 @@ ASSERT_TRUE(b.Build()); EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %7 "a" -OpEntryPoint GLCompute %17 "b" +OpEntryPoint GLCompute %7 "test_a" +OpEntryPoint GLCompute %17 "test_b" OpExecutionMode %7 LocalSize 1 1 1 OpExecutionMode %17 LocalSize 1 1 1 -OpName %3 "Data" -OpMemberName %3 0 "d" -OpName %1 "data" -OpName %7 "a" -OpName %14 "v" -OpName %17 "b" -OpName %21 "v" +OpName %3 "test_Data" +OpMemberName %3 0 "test_d" +OpName %1 "test_data" +OpName %7 "test_a" +OpName %14 "test_v" +OpName %17 "test_b" +OpName %21 "test_v" OpDecorate %3 Block OpMemberDecorate %3 0 Offset 0 OpDecorate %1 Binding 0
diff --git a/src/writer/spirv/builder_function_variable_test.cc b/src/writer/spirv/builder_function_variable_test.cc index fef4b90..88ecc55 100644 --- a/src/writer/spirv/builder_function_variable_test.cc +++ b/src/writer/spirv/builder_function_variable_test.cc
@@ -49,7 +49,7 @@ b.push_function(Function{}); EXPECT_TRUE(b.GenerateFunctionVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Function %3 @@ -74,7 +74,7 @@ EXPECT_TRUE(b.GenerateFunctionVariable(v)) << b.error(); ASSERT_FALSE(b.has_error()) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %6 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %6 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeVector %2 3 @@ -103,7 +103,7 @@ EXPECT_TRUE(b.GenerateFunctionVariable(v)) << b.error(); ASSERT_FALSE(b.has_error()) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %7 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %7 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeVector %2 2 @@ -142,8 +142,8 @@ EXPECT_TRUE(b.GenerateFunctionVariable(v2)) << b.error(); ASSERT_FALSE(b.has_error()) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "v" -OpName %7 "v2" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_v" +OpName %7 "test_v2" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeFloat 32 %2 = OpConstant %1 1 @@ -181,8 +181,8 @@ EXPECT_TRUE(b.GenerateFunctionVariable(v2)) << b.error(); ASSERT_FALSE(b.has_error()) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "v" -OpName %7 "v2" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_v" +OpName %7 "test_v2" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeFloat 32 %2 = OpConstant %1 1
diff --git a/src/writer/spirv/builder_global_variable_test.cc b/src/writer/spirv/builder_global_variable_test.cc index 6d67e53..dd2a76d 100644 --- a/src/writer/spirv/builder_global_variable_test.cc +++ b/src/writer/spirv/builder_global_variable_test.cc
@@ -52,7 +52,7 @@ TEST_F(BuilderTest, GlobalVar_NoStorageClass) { auto* v = Var("var", ast::StorageClass::kNone, ty.f32); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Private %3 @@ -64,7 +64,7 @@ TEST_F(BuilderTest, GlobalVar_WithStorageClass) { auto* v = Var("var", ast::StorageClass::kOutput, ty.f32); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Output %3 @@ -76,7 +76,7 @@ TEST_F(BuilderTest, GlobalVar_WithStorageClass_Input) { auto* v = Var("var", ast::StorageClass::kInput, ty.f32); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Input %3 @@ -95,7 +95,7 @@ EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); ASSERT_FALSE(b.has_error()) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %6 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %6 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeVector %2 3 @@ -118,7 +118,7 @@ EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); ASSERT_FALSE(b.has_error()) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %5 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %5 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeVector %2 3 @@ -183,7 +183,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %1 Location 5 )"); @@ -202,7 +202,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %1 Binding 2 OpDecorate %1 DescriptorSet 3 @@ -221,7 +221,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %1 BuiltIn Position )"); @@ -239,7 +239,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %2 SpecId 1200 )"); @@ -257,7 +257,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %4 SpecId 1200 )"); @@ -275,7 +275,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %2 SpecId 0 )"); @@ -293,7 +293,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %4 SpecId 0 )"); @@ -311,7 +311,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %4 SpecId 0 )"); @@ -329,7 +329,7 @@ }); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %4 SpecId 0 )"); @@ -392,10 +392,10 @@ EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable OpMemberDecorate %3 1 NonWritable )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "A" -OpMemberName %3 0 "a" -OpMemberName %3 1 "b" -OpName %1 "b" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_A" +OpMemberName %3 0 "test_a" +OpMemberName %3 1 "test_b" +OpName %1 "test_b" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%4 = OpTypeInt 32 1 %3 = OpTypeStruct %4 %4 @@ -421,9 +421,9 @@ EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "A" -OpMemberName %3 0 "a" -OpName %1 "b" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_A" +OpMemberName %3 0 "test_a" +OpName %1 "test_b" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%4 = OpTypeInt 32 1 %3 = OpTypeStruct %4 @@ -449,9 +449,9 @@ EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "A" -OpMemberName %3 0 "a" -OpName %1 "b" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_A" +OpMemberName %3 0 "test_a" +OpName %1 "test_b" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%4 = OpTypeInt 32 1 %3 = OpTypeStruct %4 @@ -480,12 +480,12 @@ EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "A" -OpMemberName %3 0 "a" -OpName %1 "b" -OpName %7 "A" -OpMemberName %7 0 "a" -OpName %5 "c" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %3 "test_A" +OpMemberName %3 0 "test_a" +OpName %1 "test_b" +OpName %7 "test_A" +OpMemberName %7 0 "test_a" +OpName %5 "test_c" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%4 = OpTypeInt 32 1 %3 = OpTypeStruct %4
diff --git a/src/writer/spirv/builder_ident_expression_test.cc b/src/writer/spirv/builder_ident_expression_test.cc index 453ef6b..1a92054 100644 --- a/src/writer/spirv/builder_ident_expression_test.cc +++ b/src/writer/spirv/builder_ident_expression_test.cc
@@ -66,7 +66,7 @@ b.push_function(Function{}); EXPECT_TRUE(b.GenerateGlobalVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Output %3 @@ -108,7 +108,7 @@ b.push_function(Function{}); EXPECT_TRUE(b.GenerateFunctionVariable(v)) << b.error(); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "var" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_var" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32 %2 = OpTypePointer Function %3
diff --git a/src/writer/spirv/builder_intrinsic_test.cc b/src/writer/spirv/builder_intrinsic_test.cc index c2dde98..b47e1e5 100644 --- a/src/writer/spirv/builder_intrinsic_test.cc +++ b/src/writer/spirv/builder_intrinsic_test.cc
@@ -45,6 +45,7 @@ #include "src/type_determiner.h" #include "src/writer/spirv/builder.h" #include "src/writer/spirv/spv_dump.h" +#include "src/writer/test_namer.h" namespace tint { namespace writer { @@ -59,7 +60,8 @@ } TypeDeterminer td{mod}; - spirv::Builder b{mod}; + TestNamer namer{mod}; + spirv::Builder b{mod, &namer}; }; template <typename T> @@ -479,8 +481,8 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 9u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%10 = OpExtInstImport "GLSL.std.450" -OpName %1 "ident" -OpName %7 "a_func" +OpName %1 "test_ident" +OpName %7 "test_a_func" %3 = OpTypeFloat 32 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3 @@ -511,7 +513,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -538,7 +540,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeFloat 32 @@ -591,7 +593,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -615,7 +617,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -641,7 +643,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeFloat 32 @@ -672,7 +674,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -700,7 +702,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeFloat 32 @@ -736,7 +738,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -761,7 +763,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -789,7 +791,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeFloat 32 @@ -819,7 +821,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeFloat 32 @@ -848,7 +850,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeFloat 32 @@ -888,7 +890,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeInt 32 1 @@ -915,7 +917,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeInt 32 1 @@ -949,7 +951,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeInt 32 0 @@ -976,7 +978,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeInt 32 0 @@ -1010,7 +1012,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeInt 32 1 @@ -1037,7 +1039,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeInt 32 1 @@ -1072,7 +1074,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeInt 32 0 @@ -1099,7 +1101,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeInt 32 0 @@ -1134,7 +1136,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeInt 32 1 @@ -1163,7 +1165,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeInt 32 1 @@ -1197,7 +1199,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%7 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %6 = OpTypeInt 32 0 @@ -1226,7 +1228,7 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 5u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%8 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" +OpName %3 "test_a_func" %2 = OpTypeVoid %1 = OpTypeFunction %2 %7 = OpTypeInt 32 0 @@ -1260,8 +1262,8 @@ EXPECT_EQ(b.GenerateCallExpression(expr), 11u) << b.error(); EXPECT_EQ(DumpBuilder(b), R"(%12 = OpExtInstImport "GLSL.std.450" -OpName %3 "a_func" -OpName %5 "var" +OpName %3 "test_a_func" +OpName %5 "test_var" %2 = OpTypeVoid %1 = OpTypeFunction %2 %9 = OpTypeFloat 32
diff --git a/src/writer/spirv/builder_intrinsic_texture_test.cc b/src/writer/spirv/builder_intrinsic_texture_test.cc index a26bedd..1651f12 100644 --- a/src/writer/spirv/builder_intrinsic_texture_test.cc +++ b/src/writer/spirv/builder_intrinsic_texture_test.cc
@@ -24,6 +24,7 @@ #include "src/type_determiner.h" #include "src/writer/spirv/builder.h" #include "src/writer/spirv/spv_dump.h" +#include "src/writer/test_namer.h" namespace tint { namespace writer { @@ -2708,7 +2709,8 @@ } TypeDeterminer td{mod}; - spirv::Builder b{mod}; + TestNamer namer{mod}; + spirv::Builder b{mod, &namer}; }; INSTANTIATE_TEST_SUITE_P(
diff --git a/src/writer/spirv/builder_switch_test.cc b/src/writer/spirv/builder_switch_test.cc index 7150529..8dcdd40 100644 --- a/src/writer/spirv/builder_switch_test.cc +++ b/src/writer/spirv/builder_switch_test.cc
@@ -103,9 +103,9 @@ EXPECT_TRUE(b.GenerateSwitchStatement(expr)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "v" -OpName %5 "a" -OpName %7 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "test_v" +OpName %5 "test_a" +OpName %7 "test_a_func" %3 = OpTypeInt 32 1 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3 @@ -164,9 +164,9 @@ EXPECT_TRUE(b.GenerateSwitchStatement(expr)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "v" -OpName %5 "a" -OpName %7 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "test_v" +OpName %5 "test_a" +OpName %7 "test_a_func" %3 = OpTypeInt 32 1 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3 @@ -238,9 +238,9 @@ EXPECT_TRUE(b.GenerateSwitchStatement(expr)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "v" -OpName %5 "a" -OpName %7 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "test_v" +OpName %5 "test_a" +OpName %7 "test_a_func" %3 = OpTypeInt 32 1 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3 @@ -321,9 +321,9 @@ EXPECT_TRUE(b.GenerateSwitchStatement(expr)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "v" -OpName %5 "a" -OpName %7 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "test_v" +OpName %5 "test_a" +OpName %7 "test_a_func" %3 = OpTypeInt 32 1 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3 @@ -431,9 +431,9 @@ EXPECT_TRUE(b.GenerateSwitchStatement(expr)) << b.error(); - EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "v" -OpName %5 "a" -OpName %7 "a_func" + EXPECT_EQ(DumpBuilder(b), R"(OpName %1 "test_v" +OpName %5 "test_a" +OpName %7 "test_a_func" %3 = OpTypeInt 32 1 %2 = OpTypePointer Private %3 %4 = OpConstantNull %3
diff --git a/src/writer/spirv/builder_type_test.cc b/src/writer/spirv/builder_type_test.cc index db2f45a..6445c2c 100644 --- a/src/writer/spirv/builder_type_test.cc +++ b/src/writer/spirv/builder_type_test.cc
@@ -251,7 +251,7 @@ EXPECT_EQ(id, 1u); EXPECT_EQ(b.types().size(), 1u); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "S" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_S" )"); EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeStruct )"); @@ -269,8 +269,8 @@ EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeStruct %2 )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "my_struct" -OpMemberName %1 0 "a" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_my_struct" +OpMemberName %1 0 "test_a" )"); } @@ -289,8 +289,8 @@ EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeStruct %2 )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "my_struct" -OpMemberName %1 0 "a" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_my_struct" +OpMemberName %1 0 "test_a" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpDecorate %1 Block )"); @@ -310,9 +310,9 @@ EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32 %1 = OpTypeStruct %2 %2 )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "S" -OpMemberName %1 0 "a" -OpMemberName %1 1 "b" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_S" +OpMemberName %1 0 "test_a" +OpMemberName %1 1 "test_b" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %1 0 Offset 0 OpMemberDecorate %1 1 Offset 8 @@ -340,10 +340,10 @@ %7 = OpTypeMatrix %8 4 %1 = OpTypeStruct %2 %5 %7 )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "S" -OpMemberName %1 0 "a" -OpMemberName %1 1 "b" -OpMemberName %1 2 "c" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_S" +OpMemberName %1 0 "test_a" +OpMemberName %1 1 "test_b" +OpMemberName %1 2 "test_c" )"); EXPECT_EQ(DumpInstructions(b.annots()), ""); } @@ -370,10 +370,10 @@ %7 = OpTypeMatrix %8 4 %1 = OpTypeStruct %2 %5 %7 )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "S" -OpMemberName %1 0 "a" -OpMemberName %1 1 "b" -OpMemberName %1 2 "c" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_S" +OpMemberName %1 0 "test_a" +OpMemberName %1 1 "test_b" +OpMemberName %1 2 "test_c" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %1 0 Offset 0 OpMemberDecorate %1 0 ColMajor @@ -426,10 +426,10 @@ %11 = OpTypeRuntimeArray %12 %1 = OpTypeStruct %2 %8 %11 )"); - EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "S" -OpMemberName %1 0 "a" -OpMemberName %1 1 "b" -OpMemberName %1 2 "c" + EXPECT_EQ(DumpInstructions(b.debug()), R"(OpName %1 "test_S" +OpMemberName %1 0 "test_a" +OpMemberName %1 1 "test_b" +OpMemberName %1 2 "test_c" )"); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %1 0 Offset 0 OpMemberDecorate %1 0 ColMajor
diff --git a/src/writer/spirv/generator.cc b/src/writer/spirv/generator.cc index c28cb13..9a435e4 100644 --- a/src/writer/spirv/generator.cc +++ b/src/writer/spirv/generator.cc
@@ -22,13 +22,15 @@ Generator::Generator(ast::Module module) : writer::Writer(std::move(module)), - builder_(std::make_unique<Builder>(&module_)), + namer_(std::make_unique<UnsafeNamer>(&module_)), + builder_(std::make_unique<Builder>(&module_, namer_.get())), writer_(std::make_unique<BinaryWriter>()) {} Generator::~Generator() = default; void Generator::Reset() { - builder_ = std::make_unique<Builder>(&module_); + namer_->Reset(); + builder_ = std::make_unique<Builder>(&module_, namer_.get()); writer_ = std::make_unique<BinaryWriter>(); }
diff --git a/src/writer/spirv/generator.h b/src/writer/spirv/generator.h index f5968b2..b1f37d7 100644 --- a/src/writer/spirv/generator.h +++ b/src/writer/spirv/generator.h
@@ -20,6 +20,7 @@ #include <vector> #include "src/ast/module.h" +#include "src/namer.h" #include "src/writer/spirv/binary_writer.h" #include "src/writer/spirv/builder.h" #include "src/writer/writer.h" @@ -54,6 +55,7 @@ const std::vector<uint32_t>& result() const { return writer_->result(); } private: + std::unique_ptr<Namer> namer_; std::unique_ptr<Builder> builder_; std::unique_ptr<BinaryWriter> writer_; };
diff --git a/src/writer/spirv/test_helper.h b/src/writer/spirv/test_helper.h index cbc3d0e..fcec303 100644 --- a/src/writer/spirv/test_helper.h +++ b/src/writer/spirv/test_helper.h
@@ -23,6 +23,7 @@ #include "src/ast/module.h" #include "src/type_determiner.h" #include "src/writer/spirv/builder.h" +#include "src/writer/test_namer.h" namespace tint { namespace writer { @@ -32,11 +33,13 @@ template <typename BASE> class TestHelperBase : public ast::BuilderWithModule, public BASE { public: - TestHelperBase() : td(mod), b(mod) {} + TestHelperBase() : td(mod), namer(mod), b(mod, &namer) {} ~TestHelperBase() override = default; /// The type determiner TypeDeterminer td; + /// The test namer + TestNamer namer; /// The generator spirv::Builder b;