diff --git a/src/tint/ir/builder.cc b/src/tint/ir/builder.cc index cdedf44b58..d395da6144 100644 --- a/src/tint/ir/builder.cc +++ b/src/tint/ir/builder.cc @@ -58,7 +58,7 @@ Function* Builder::CreateFunction(Symbol name, std::optional> wg_size) { TINT_ASSERT(IR, return_type); - auto* ir_func = ir.flow_nodes.Create(name, return_type, stage, wg_size); + auto* ir_func = ir.values.Create(name, return_type, stage, wg_size); ir_func->SetStartTarget(CreateBlock()); ir_func->SetEndTarget(CreateFunctionTerminator()); diff --git a/src/tint/ir/debug.cc b/src/tint/ir/debug.cc index fc14d9140b..337671d953 100644 --- a/src/tint/ir/debug.cc +++ b/src/tint/ir/debug.cc @@ -78,7 +78,7 @@ std::string Debug::AsDotGraph(const Module* mod) { out << "digraph G {" << std::endl; for (const auto* func : mod->functions) { // Cluster each function to label and draw a box around it. - out << "subgraph cluster_" << name_for(func) << " {" << std::endl; + out << "subgraph cluster_" << func->Name().Name() << " {" << std::endl; out << R"(label=")" << func->Name().Name() << R"(")" << std::endl; out << name_for(func->StartTarget()) << R"( [label="start"])" << std::endl; out << name_for(func->EndTarget()) << R"( [label="end"])" << std::endl; diff --git a/src/tint/ir/disassembler.cc b/src/tint/ir/disassembler.cc index 7429e036a2..847a031776 100644 --- a/src/tint/ir/disassembler.cc +++ b/src/tint/ir/disassembler.cc @@ -151,7 +151,7 @@ void Disassembler::Walk(const Block* blk) { void Disassembler::EmitFunction(const Function* func) { in_function_ = true; - Indent() << "%fn" << IdOf(func) << " = func " << func->Name().Name() << "("; + Indent() << "%" << IdOf(func) << " = func " << func->Name().Name() << "("; for (auto* p : func->Params()) { if (p != func->Params().Front()) { out_ << ", "; diff --git a/src/tint/ir/from_program_binary_test.cc b/src/tint/ir/from_program_binary_test.cc index 5c33d6ea2e..7909bda60a 100644 --- a/src/tint/ir/from_program_binary_test.cc +++ b/src/tint/ir/from_program_binary_test.cc @@ -34,19 +34,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Add) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = add %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = add %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -67,14 +67,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Increment) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = add %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = add %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -95,14 +95,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundAdd) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = add %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = add %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -115,19 +115,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Subtract) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = sub %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = sub %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -148,14 +148,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Decrement) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:i32 = load %v1 - %3:i32 = sub %2, 1i - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:i32 = load %v1 + %4:i32 = sub %3, 1i + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -176,14 +176,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundSubtract) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = sub %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = sub %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -196,19 +196,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Multiply) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = mul %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = mul %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -229,14 +229,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundMultiply) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = mul %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = mul %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -249,19 +249,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Div) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = div %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = div %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -282,14 +282,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundDiv) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = div %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = div %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -302,19 +302,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Modulo) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = mod %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = mod %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -335,14 +335,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundModulo) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = mod %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = mod %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -355,19 +355,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_And) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = and %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = and %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -388,14 +388,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundAnd) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:bool = load %v1 - %3:bool = and %2, false - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:bool = load %v1 + %4:bool = and %3, false + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -408,19 +408,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Or) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = or %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = or %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -441,14 +441,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundOr) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:bool = load %v1 - %3:bool = or %2, false - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:bool = load %v1 + %4:bool = or %3, false + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -461,19 +461,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Xor) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = xor %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = xor %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -494,14 +494,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundXor) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = xor %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = xor %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -514,42 +514,42 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_LogicalAnd) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():bool -> %fn2 { - %fn2 = block { - br %fn3 true # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():bool -> %fn1 { + %fn1 = block { + br %fn2 true # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:bool = call my_func - if %1 [t: %fn6, f: %fn7, m: %fn8] +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:bool = call my_func + if %3 [t: %fn4, f: %fn5, m: %fn6] # True block - %fn6 = block { - br %fn8 false + %fn4 = block { + br %fn6 false } # False block - %fn7 = block { - br %fn8 %1 + %fn5 = block { + br %fn6 %3 } # Merge block - %fn8 = block (%2:bool) { - if %2:bool [t: %fn9, f: %fn10, m: %fn11] + %fn6 = block (%4:bool) { + if %4:bool [t: %fn7, f: %fn8, m: %fn9] # True block - %fn9 = block { - br %fn11 + %fn7 = block { + br %fn9 } # False block - %fn10 = block { - br %fn11 + %fn8 = block { + br %fn9 } # Merge block - %fn11 = block { - br %fn12 # return + %fn9 = block { + br %fn10 # return } } @@ -557,7 +557,7 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_LogicalAnd) { } - %fn12 = func_terminator + %fn10 = func_terminator } )"); } @@ -570,42 +570,42 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_LogicalOr) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():bool -> %fn2 { - %fn2 = block { - br %fn3 true # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():bool -> %fn1 { + %fn1 = block { + br %fn2 true # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:bool = call my_func - if %1 [t: %fn6, f: %fn7, m: %fn8] +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:bool = call my_func + if %3 [t: %fn4, f: %fn5, m: %fn6] # True block - %fn6 = block { - br %fn8 %1 + %fn4 = block { + br %fn6 %3 } # False block - %fn7 = block { - br %fn8 true + %fn5 = block { + br %fn6 true } # Merge block - %fn8 = block (%2:bool) { - if %2:bool [t: %fn9, f: %fn10, m: %fn11] + %fn6 = block (%4:bool) { + if %4:bool [t: %fn7, f: %fn8, m: %fn9] # True block - %fn9 = block { - br %fn11 + %fn7 = block { + br %fn9 } # False block - %fn10 = block { - br %fn11 + %fn8 = block { + br %fn9 } # Merge block - %fn11 = block { - br %fn12 # return + %fn9 = block { + br %fn10 # return } } @@ -613,7 +613,7 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_LogicalOr) { } - %fn12 = func_terminator + %fn10 = func_terminator } )"); } @@ -626,19 +626,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Equal) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:bool = eq %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:bool = eq %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -651,19 +651,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_NotEqual) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:bool = neq %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:bool = neq %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -676,19 +676,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_LessThan) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:bool = lt %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:bool = lt %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -701,19 +701,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_GreaterThan) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:bool = gt %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:bool = gt %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -726,19 +726,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_LessThanEqual) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:bool = lte %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:bool = lte %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -751,19 +751,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_GreaterThanEqual) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:bool = gte %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:bool = gte %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -776,19 +776,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_ShiftLeft) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = shiftl %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = shiftl %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -809,14 +809,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundShiftLeft) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = shiftl %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = shiftl %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -829,19 +829,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_ShiftRight) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 0u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 0u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = shiftr %1, 4u - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = shiftr %3, 4u + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -862,14 +862,14 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_CompoundShiftRight) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:u32 = load %v1 - %3:u32 = shiftr %2, 1u - store %v1, %3 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = load %v1 + %4:u32 = shiftr %3, 1u + store %v1, %4 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -884,40 +884,40 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Compound) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():f32 -> %fn2 { - %fn2 = block { - br %fn3 0.0f # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():f32 -> %fn1 { + %fn1 = block { + br %fn2 0.0f # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:f32 = call my_func - %2:bool = lt %1, 2.0f - if %2 [t: %fn6, f: %fn7, m: %fn8] +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:f32 = call my_func + %4:bool = lt %3, 2.0f + if %4 [t: %fn4, f: %fn5, m: %fn6] # True block - %fn6 = block { - %3:f32 = call my_func - %4:f32 = call my_func - %5:f32 = mul 2.29999995231628417969f, %4 - %6:f32 = div %3, %5 - %7:bool = gt 2.5f, %6 - br %fn8 %7 + %fn4 = block { + %5:f32 = call my_func + %6:f32 = call my_func + %7:f32 = mul 2.29999995231628417969f, %6 + %8:f32 = div %5, %7 + %9:bool = gt 2.5f, %8 + br %fn6 %9 } # False block - %fn7 = block { - br %fn8 %2 + %fn5 = block { + br %fn6 %4 } # Merge block - %fn8 = block (%tint_symbol:bool) { - br %fn9 # return + %fn6 = block (%tint_symbol:bool) { + br %fn7 # return } } - %fn9 = func_terminator + %fn7 = func_terminator } )"); } @@ -931,18 +931,18 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Binary_Compound_WithConstEval) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func(%p:bool):bool -> %fn2 { - %fn2 = block { - br %fn3 true # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func(%p:bool):bool -> %fn1 { + %fn1 = block { + br %fn2 true # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { +%3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { %tint_symbol:bool = call my_func, false - br %fn6 # return + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } diff --git a/src/tint/ir/from_program_call_test.cc b/src/tint/ir/from_program_call_test.cc index 396d590b36..2d0f1abb9f 100644 --- a/src/tint/ir/from_program_call_test.cc +++ b/src/tint/ir/from_program_call_test.cc @@ -35,19 +35,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Bitcast) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():f32 -> %fn2 { - %fn2 = block { - br %fn3 0.0f # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():f32 -> %fn1 { + %fn1 = block { + br %fn2 0.0f # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:f32 = call my_func - %tint_symbol:f32 = bitcast %1 - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:f32 = call my_func + %tint_symbol:f32 = bitcast %3 + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -62,12 +62,12 @@ TEST_F(IR_BuilderImplTest, EmitStatement_Discard) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func test_function():void [@fragment] -> %fn2 { - %fn2 = block { + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func test_function():void [@fragment] -> %fn1 { + %fn1 = block { discard - br %fn3 # return + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } @@ -80,18 +80,18 @@ TEST_F(IR_BuilderImplTest, EmitStatement_UserFunction) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func(%p:f32):void -> %fn2 { - %fn2 = block { - br %fn3 # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func(%p:f32):void -> %fn1 { + %fn1 = block { + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %2:void = call my_func, 6.0f - br %fn6 # return +%3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %4:void = call my_func, 6.0f + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -112,13 +112,13 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Convert) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:i32 = load %i - %tint_symbol:f32 = convert i32, %2 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:i32 = load %i + %tint_symbol:f32 = convert i32, %3 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -157,13 +157,13 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Construct) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - %2:f32 = load %i - %tint_symbol:vec3 = construct 2.0f, 3.0f, %2 - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:f32 = load %i + %tint_symbol:vec3 = construct 2.0f, 3.0f, %3 + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } diff --git a/src/tint/ir/from_program_materialize_test.cc b/src/tint/ir/from_program_materialize_test.cc index 53b1402c79..68bb81a58b 100644 --- a/src/tint/ir/from_program_materialize_test.cc +++ b/src/tint/ir/from_program_materialize_test.cc @@ -34,11 +34,11 @@ TEST_F(IR_BuilderImplTest, EmitExpression_MaterializedCall) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func test_function():f32 -> %fn2 { - %fn2 = block { - br %fn3 2.0f # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func test_function():f32 -> %fn1 { + %fn1 = block { + br %fn2 2.0f # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } diff --git a/src/tint/ir/from_program_store_test.cc b/src/tint/ir/from_program_store_test.cc index 828274c316..1559f95f81 100644 --- a/src/tint/ir/from_program_store_test.cc +++ b/src/tint/ir/from_program_store_test.cc @@ -43,12 +43,12 @@ TEST_F(IR_BuilderImplTest, EmitStatement_Assign) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { store %a, 4u - br %fn5 # return + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } diff --git a/src/tint/ir/from_program_test.cc b/src/tint/ir/from_program_test.cc index 11e14cf4ff..bc3b2a1047 100644 --- a/src/tint/ir/from_program_test.cc +++ b/src/tint/ir/from_program_test.cc @@ -70,11 +70,11 @@ TEST_F(IR_BuilderImplTest, Func) { EXPECT_EQ(m->functions[0]->Stage(), Function::PipelineStage::kUndefined); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func f():void -> %fn2 { - %fn2 = block { - br %fn3 # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func f():void -> %fn1 { + %fn1 = block { + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } @@ -95,11 +95,11 @@ TEST_F(IR_BuilderImplTest, Func_WithParam) { EXPECT_EQ(m->functions[0]->Stage(), Function::PipelineStage::kUndefined); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func f(%a:u32):u32 -> %fn2 { - %fn2 = block { - br %fn3 %a # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func f(%a:u32):u32 -> %fn1 { + %fn1 = block { + br %fn2 %a # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } @@ -121,11 +121,11 @@ TEST_F(IR_BuilderImplTest, Func_WithMultipleParam) { EXPECT_EQ(m->functions[0]->Stage(), Function::PipelineStage::kUndefined); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func f(%a:u32, %b:i32, %c:bool):void -> %fn2 { - %fn2 = block { - br %fn3 # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func f(%a:u32, %b:i32, %c:bool):void -> %fn1 { + %fn1 = block { + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } @@ -159,27 +159,27 @@ TEST_F(IR_BuilderImplTest, IfStatement) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - if true [t: %fn3, f: %fn4, m: %fn5] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + if true [t: %fn2, f: %fn3, m: %fn4] # True block - %fn3 = block { - br %fn5 + %fn2 = block { + br %fn4 } # False block - %fn4 = block { - br %fn5 + %fn3 = block { + br %fn4 } # Merge block - %fn5 = block { - br %fn6 # return + %fn4 = block { + br %fn5 # return } } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -203,26 +203,26 @@ TEST_F(IR_BuilderImplTest, IfStatement_TrueReturns) { EXPECT_EQ(2u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - if true [t: %fn3, f: %fn4, m: %fn5] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + if true [t: %fn2, f: %fn3, m: %fn4] # True block - %fn3 = block { - br %fn6 # return + %fn2 = block { + br %fn5 # return } # False block - %fn4 = block { - br %fn5 + %fn3 = block { + br %fn4 } # Merge block - %fn5 = block { - br %fn6 # return + %fn4 = block { + br %fn5 # return } } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -246,26 +246,26 @@ TEST_F(IR_BuilderImplTest, IfStatement_FalseReturns) { EXPECT_EQ(2u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - if true [t: %fn3, f: %fn4, m: %fn5] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + if true [t: %fn2, f: %fn3, m: %fn4] # True block - %fn3 = block { - br %fn5 + %fn2 = block { + br %fn4 } # False block - %fn4 = block { - br %fn6 # return + %fn3 = block { + br %fn5 # return } # Merge block - %fn5 = block { - br %fn6 # return + %fn4 = block { + br %fn5 # return } } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -289,21 +289,21 @@ TEST_F(IR_BuilderImplTest, IfStatement_BothReturn) { EXPECT_EQ(2u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - if true [t: %fn3, f: %fn4] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + if true [t: %fn2, f: %fn3] # True block - %fn3 = block { - br %fn5 # return + %fn2 = block { + br %fn4 # return } # False block - %fn4 = block { - br %fn5 # return + %fn3 = block { + br %fn4 # return } } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -324,42 +324,42 @@ TEST_F(IR_BuilderImplTest, IfStatement_JumpChainToMerge) { ASSERT_NE(loop_flow, nullptr); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - if true [t: %fn3, f: %fn4, m: %fn5] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + if true [t: %fn2, f: %fn3, m: %fn4] # True block - %fn3 = block { - loop [s: %fn6, c: %fn7, m: %fn8] - %fn6 = block { - br %fn8 + %fn2 = block { + loop [s: %fn5, c: %fn6, m: %fn7] + %fn5 = block { + br %fn7 } # Continuing block - %fn7 = block { - br %fn6 + %fn6 = block { + br %fn5 } # Merge block - %fn8 = block { - br %fn5 + %fn7 = block { + br %fn4 } } # False block - %fn4 = block { - br %fn5 + %fn3 = block { + br %fn4 } # Merge block - %fn5 = block { - br %fn9 # return + %fn4 = block { + br %fn8 # return } } - %fn9 = func_terminator + %fn8 = func_terminator } )"); } @@ -383,26 +383,26 @@ TEST_F(IR_BuilderImplTest, Loop_WithBreak) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - br %fn5 + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + br %fn4 } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn6 # return + %fn4 = block { + br %fn5 # return } } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -432,42 +432,42 @@ TEST_F(IR_BuilderImplTest, Loop_WithContinue) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - if true [t: %fn6, f: %fn7, m: %fn8] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + if true [t: %fn5, f: %fn6, m: %fn7] # True block - %fn6 = block { - br %fn5 + %fn5 = block { + br %fn4 } # False block - %fn7 = block { - br %fn8 + %fn6 = block { + br %fn7 } # Merge block - %fn8 = block { - br %fn4 + %fn7 = block { + br %fn3 } } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn9 # return + %fn4 = block { + br %fn8 # return } } - %fn9 = func_terminator + %fn8 = func_terminator } )"); } @@ -496,42 +496,42 @@ TEST_F(IR_BuilderImplTest, Loop_WithContinuing_BreakIf) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - br %fn4 + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + br %fn3 } # Continuing block - %fn4 = block { - if true [t: %fn6, f: %fn7, m: %fn8] + %fn3 = block { + if true [t: %fn5, f: %fn6, m: %fn7] # True block - %fn6 = block { - br %fn5 + %fn5 = block { + br %fn4 } # False block - %fn7 = block { - br %fn8 + %fn6 = block { + br %fn7 } # Merge block - %fn8 = block { - br %fn3 + %fn7 = block { + br %fn2 } } # Merge block - %fn5 = block { - br %fn9 # return + %fn4 = block { + br %fn8 # return } } - %fn9 = func_terminator + %fn8 = func_terminator } )"); } @@ -547,42 +547,42 @@ TEST_F(IR_BuilderImplTest, Loop_Continuing_Body_Scope) { auto m = res.Move(); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - br %fn4 + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + br %fn3 } # Continuing block - %fn4 = block { - if true [t: %fn6, f: %fn7, m: %fn8] + %fn3 = block { + if true [t: %fn5, f: %fn6, m: %fn7] # True block - %fn6 = block { - br %fn5 + %fn5 = block { + br %fn4 } # False block - %fn7 = block { - br %fn8 + %fn6 = block { + br %fn7 } # Merge block - %fn8 = block { - br %fn3 + %fn7 = block { + br %fn2 } } # Merge block - %fn5 = block { - br %fn9 # return + %fn4 = block { + br %fn8 # return } } - %fn9 = func_terminator + %fn8 = func_terminator } )"); } @@ -611,37 +611,37 @@ TEST_F(IR_BuilderImplTest, Loop_WithReturn) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4] - %fn3 = block { - if true [t: %fn5, f: %fn6, m: %fn7] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3] + %fn2 = block { + if true [t: %fn4, f: %fn5, m: %fn6] # True block - %fn5 = block { - br %fn8 # return + %fn4 = block { + br %fn7 # return } # False block - %fn6 = block { - br %fn7 + %fn5 = block { + br %fn6 } # Merge block - %fn7 = block { - br %fn4 + %fn6 = block { + br %fn3 } } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } } - %fn8 = func_terminator + %fn7 = func_terminator } )"); } @@ -665,21 +665,21 @@ TEST_F(IR_BuilderImplTest, Loop_WithOnlyReturn) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4] - %fn3 = block { - br %fn5 # return + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3] + %fn2 = block { + br %fn4 # return } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -712,48 +712,48 @@ TEST_F(IR_BuilderImplTest, Loop_WithOnlyReturn_ContinuingBreakIf) { EXPECT_EQ(3u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - br %fn6 # return + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + br %fn5 # return } # Continuing block - %fn4 = block { - if true [t: %fn7, f: %fn8, m: %fn9] + %fn3 = block { + if true [t: %fn6, f: %fn7, m: %fn8] # True block - %fn7 = block { - br %fn5 + %fn6 = block { + br %fn4 } # False block - %fn8 = block { - br %fn9 + %fn7 = block { + br %fn8 } # Merge block - %fn9 = block { - br %fn3 + %fn8 = block { + br %fn2 } } # Merge block - %fn5 = block { - if true [t: %fn10, f: %fn11, m: %fn12] + %fn4 = block { + if true [t: %fn9, f: %fn10, m: %fn11] # True block - %fn10 = block { - br %fn6 # return + %fn9 = block { + br %fn5 # return } # False block - %fn11 = block { - br %fn12 + %fn10 = block { + br %fn11 } # Merge block - %fn12 = block { - br %fn6 # return + %fn11 = block { + br %fn5 # return } } @@ -761,7 +761,7 @@ TEST_F(IR_BuilderImplTest, Loop_WithOnlyReturn_ContinuingBreakIf) { } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -790,37 +790,37 @@ TEST_F(IR_BuilderImplTest, Loop_WithIf_BothBranchesBreak) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - if true [t: %fn6, f: %fn7] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + if true [t: %fn5, f: %fn6] # True block - %fn6 = block { - br %fn5 + %fn5 = block { + br %fn4 } # False block - %fn7 = block { - br %fn5 + %fn6 = block { + br %fn4 } } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn8 # return + %fn4 = block { + br %fn7 # return } } - %fn8 = func_terminator + %fn7 = func_terminator } )"); } @@ -843,89 +843,38 @@ TEST_F(IR_BuilderImplTest, Loop_Nested) { ASSERT_TRUE(m) << (!m ? m.Failure() : ""); EXPECT_EQ(Disassemble(m.Get()), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - loop [s: %fn6, c: %fn7, m: %fn8] - %fn6 = block { - if true [t: %fn9, f: %fn10, m: %fn11] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + loop [s: %fn5, c: %fn6, m: %fn7] + %fn5 = block { + if true [t: %fn8, f: %fn9, m: %fn10] # True block - %fn9 = block { - br %fn8 - } - - # False block - %fn10 = block { - br %fn11 - } - - # Merge block - %fn11 = block { - if true [t: %fn12, f: %fn13, m: %fn14] - # True block - %fn12 = block { - br %fn7 - } - - # False block - %fn13 = block { - br %fn14 - } - - # Merge block - %fn14 = block { + %fn8 = block { br %fn7 } - - } - - - } - - # Continuing block - %fn7 = block { - loop [s: %fn15, c: %fn16, m: %fn17] - %fn15 = block { - br %fn17 - } - - # Continuing block - %fn16 = block { - br %fn15 + # False block + %fn9 = block { + br %fn10 } # Merge block - %fn17 = block { - loop [s: %fn18, c: %fn19, m: %fn20] - %fn18 = block { - br %fn19 + %fn10 = block { + if true [t: %fn11, f: %fn12, m: %fn13] + # True block + %fn11 = block { + br %fn6 } - # Continuing block - %fn19 = block { - if true [t: %fn21, f: %fn22, m: %fn23] - # True block - %fn21 = block { - br %fn20 - } - - # False block - %fn22 = block { - br %fn23 - } - - # Merge block - %fn23 = block { - br %fn18 - } - - + # False block + %fn12 = block { + br %fn13 } # Merge block - %fn20 = block { + %fn13 = block { br %fn6 } @@ -935,22 +884,73 @@ TEST_F(IR_BuilderImplTest, Loop_Nested) { } + # Continuing block + %fn6 = block { + loop [s: %fn14, c: %fn15, m: %fn16] + %fn14 = block { + br %fn16 + } + + # Continuing block + %fn15 = block { + br %fn14 + } + + # Merge block + %fn16 = block { + loop [s: %fn17, c: %fn18, m: %fn19] + %fn17 = block { + br %fn18 + } + + # Continuing block + %fn18 = block { + if true [t: %fn20, f: %fn21, m: %fn22] + # True block + %fn20 = block { + br %fn19 + } + + # False block + %fn21 = block { + br %fn22 + } + + # Merge block + %fn22 = block { + br %fn17 + } + + + } + + # Merge block + %fn19 = block { + br %fn5 + } + + + } + + + } + # Merge block - %fn8 = block { - if true [t: %fn24, f: %fn25, m: %fn26] + %fn7 = block { + if true [t: %fn23, f: %fn24, m: %fn25] # True block - %fn24 = block { - br %fn5 + %fn23 = block { + br %fn4 } # False block - %fn25 = block { - br %fn26 + %fn24 = block { + br %fn25 } # Merge block - %fn26 = block { - br %fn4 + %fn25 = block { + br %fn3 } @@ -960,18 +960,18 @@ TEST_F(IR_BuilderImplTest, Loop_Nested) { } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn27 # return + %fn4 = block { + br %fn26 # return } } - %fn27 = func_terminator + %fn26 = func_terminator } )"); } @@ -1002,42 +1002,42 @@ TEST_F(IR_BuilderImplTest, While) { EXPECT_EQ(2u, if_flow->Merge()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - if false [t: %fn6, f: %fn7, m: %fn8] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + if false [t: %fn5, f: %fn6, m: %fn7] # True block - %fn6 = block { - br %fn8 + %fn5 = block { + br %fn7 } # False block - %fn7 = block { - br %fn5 + %fn6 = block { + br %fn4 } # Merge block - %fn8 = block { - br %fn4 + %fn7 = block { + br %fn3 } } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn9 # return + %fn4 = block { + br %fn8 # return } } - %fn9 = func_terminator + %fn8 = func_terminator } )"); } @@ -1068,41 +1068,41 @@ TEST_F(IR_BuilderImplTest, While_Return) { EXPECT_EQ(2u, if_flow->Merge()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - if true [t: %fn6, f: %fn7, m: %fn8] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + if true [t: %fn5, f: %fn6, m: %fn7] # True block - %fn6 = block { - br %fn8 + %fn5 = block { + br %fn7 } # False block - %fn7 = block { - br %fn5 + %fn6 = block { + br %fn4 } # Merge block - %fn8 = block { - br %fn9 # return + %fn7 = block { + br %fn8 # return } } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn9 # return + %fn4 = block { + br %fn8 # return } } - %fn9 = func_terminator + %fn8 = func_terminator } )"); } @@ -1167,26 +1167,26 @@ TEST_F(IR_BuilderImplTest, For_NoInitCondOrContinuing) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - loop [s: %fn3, c: %fn4, m: %fn5] - %fn3 = block { - br %fn5 + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + loop [s: %fn2, c: %fn3, m: %fn4] + %fn2 = block { + br %fn4 } # Continuing block - %fn4 = block { - br %fn3 + %fn3 = block { + br %fn2 } # Merge block - %fn5 = block { - br %fn6 # return + %fn4 = block { + br %fn5 # return } } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -1230,32 +1230,32 @@ TEST_F(IR_BuilderImplTest, Switch) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - switch 1i [c: (0i, %fn3), c: (1i, %fn4), c: (default, %fn5), m: %fn6] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + switch 1i [c: (0i, %fn2), c: (1i, %fn3), c: (default, %fn4), m: %fn5] + # Case block + %fn2 = block { + br %fn5 + } + # Case block %fn3 = block { - br %fn6 + br %fn5 } # Case block %fn4 = block { - br %fn6 - } - - # Case block - %fn5 = block { - br %fn6 + br %fn5 } # Merge block - %fn6 = block { - br %fn7 # return + %fn5 = block { + br %fn6 # return } } - %fn7 = func_terminator + %fn6 = func_terminator } )"); } @@ -1295,22 +1295,22 @@ TEST_F(IR_BuilderImplTest, Switch_MultiSelector) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - switch 1i [c: (0i 1i default, %fn3), m: %fn4] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + switch 1i [c: (0i 1i default, %fn2), m: %fn3] # Case block - %fn3 = block { - br %fn4 + %fn2 = block { + br %fn3 } # Merge block - %fn4 = block { - br %fn5 # return + %fn3 = block { + br %fn4 # return } } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -1338,22 +1338,22 @@ TEST_F(IR_BuilderImplTest, Switch_OnlyDefault) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - switch 1i [c: (default, %fn3), m: %fn4] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + switch 1i [c: (default, %fn2), m: %fn3] # Case block - %fn3 = block { - br %fn4 + %fn2 = block { + br %fn3 } # Merge block - %fn4 = block { - br %fn5 # return + %fn3 = block { + br %fn4 # return } } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -1390,27 +1390,27 @@ TEST_F(IR_BuilderImplTest, Switch_WithBreak) { EXPECT_EQ(1u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - switch 1i [c: (0i, %fn3), c: (default, %fn4), m: %fn5] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + switch 1i [c: (0i, %fn2), c: (default, %fn3), m: %fn4] # Case block - %fn3 = block { - br %fn5 + %fn2 = block { + br %fn4 } # Case block - %fn4 = block { - br %fn5 + %fn3 = block { + br %fn4 } # Merge block - %fn5 = block { - br %fn6 # return + %fn4 = block { + br %fn5 # return } } - %fn6 = func_terminator + %fn5 = func_terminator } )"); } @@ -1449,21 +1449,21 @@ TEST_F(IR_BuilderImplTest, Switch_AllReturn) { EXPECT_EQ(2u, func->EndTarget()->InboundBranches().Length()); EXPECT_EQ(Disassemble(m), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - switch 1i [c: (0i, %fn3), c: (default, %fn4)] + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + switch 1i [c: (0i, %fn2), c: (default, %fn3)] # Case block - %fn3 = block { - br %fn5 # return + %fn2 = block { + br %fn4 # return } # Case block - %fn4 = block { - br %fn5 # return + %fn3 = block { + br %fn4 # return } } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -1476,18 +1476,18 @@ TEST_F(IR_BuilderImplTest, Emit_Phony) { ASSERT_TRUE(m) << (!m ? m.Failure() : ""); EXPECT_EQ(Disassemble(m.Get()), - R"(%fn1 = func b():i32 -> %fn2 { - %fn2 = block { - br %fn3 1i # return + R"(%1 = func b():i32 -> %fn1 { + %fn1 = block { + br %fn2 1i # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:i32 = call b - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:i32 = call b + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } diff --git a/src/tint/ir/from_program_unary_test.cc b/src/tint/ir/from_program_unary_test.cc index 3bc0d41324..dc13f25c41 100644 --- a/src/tint/ir/from_program_unary_test.cc +++ b/src/tint/ir/from_program_unary_test.cc @@ -34,19 +34,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Unary_Not) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():bool -> %fn2 { - %fn2 = block { - br %fn3 false # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():bool -> %fn1 { + %fn1 = block { + br %fn2 false # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:bool = call my_func - %tint_symbol:bool = eq %1, false - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:bool = call my_func + %tint_symbol:bool = eq %3, false + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -59,19 +59,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Unary_Complement) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():u32 -> %fn2 { - %fn2 = block { - br %fn3 1u # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():u32 -> %fn1 { + %fn1 = block { + br %fn2 1u # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:u32 = call my_func - %tint_symbol:u32 = complement %1 - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:u32 = call my_func + %tint_symbol:u32 = complement %3 + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -84,19 +84,19 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Unary_Negation) { auto m = Build(); ASSERT_TRUE(m) << (!m ? m.Failure() : ""); - EXPECT_EQ(Disassemble(m.Get()), R"(%fn1 = func my_func():i32 -> %fn2 { - %fn2 = block { - br %fn3 1i # return + EXPECT_EQ(Disassemble(m.Get()), R"(%1 = func my_func():i32 -> %fn1 { + %fn1 = block { + br %fn2 1i # return } - %fn3 = func_terminator + %fn2 = func_terminator } -%fn4 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn5 { - %fn5 = block { - %1:i32 = call my_func - %tint_symbol:i32 = negation %1 - br %fn6 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + %3:i32 = call my_func + %tint_symbol:i32 = negation %3 + br %fn4 # return } - %fn6 = func_terminator + %fn4 = func_terminator } )"); } @@ -118,11 +118,11 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Unary_AddressOf) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { - br %fn5 # return +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } @@ -146,12 +146,12 @@ TEST_F(IR_BuilderImplTest, EmitExpression_Unary_Indirection) { %fn2 = root_terminator -%fn3 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn4 { - %fn4 = block { +%2 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn3 { + %fn3 = block { store %v3, 42i - br %fn5 # return + br %fn4 # return } - %fn5 = func_terminator + %fn4 = func_terminator } )"); } diff --git a/src/tint/ir/from_program_var_test.cc b/src/tint/ir/from_program_var_test.cc index 1dc7bbbf7e..85a0319bf2 100644 --- a/src/tint/ir/from_program_var_test.cc +++ b/src/tint/ir/from_program_var_test.cc @@ -69,12 +69,12 @@ TEST_F(IR_BuilderImplTest, Emit_Var_NoInit) { ASSERT_TRUE(m) << (!m ? m.Failure() : ""); EXPECT_EQ(Disassemble(m.Get()), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { %a:ptr = var - br %fn3 # return + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } @@ -88,12 +88,12 @@ TEST_F(IR_BuilderImplTest, Emit_Var_Init) { ASSERT_TRUE(m) << (!m ? m.Failure() : ""); EXPECT_EQ(Disassemble(m.Get()), - R"(%fn1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { + R"(%1 = func test_function():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { %a:ptr = var, 2u - br %fn3 # return + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"); } diff --git a/src/tint/ir/function.h b/src/tint/ir/function.h index 4dd222ccdc..a9f0c1a98a 100644 --- a/src/tint/ir/function.h +++ b/src/tint/ir/function.h @@ -19,8 +19,8 @@ #include #include -#include "src/tint/ir/flow_node.h" #include "src/tint/ir/function_param.h" +#include "src/tint/ir/value.h" #include "src/tint/symbol.h" #include "src/tint/type/type.h" @@ -33,7 +33,7 @@ class FunctionTerminator; namespace tint::ir { /// An IR representation of a function -class Function : public utils::Castable { +class Function : public utils::Castable { public: /// The pipeline stage for an entry point enum class PipelineStage { diff --git a/src/tint/ir/module.h b/src/tint/ir/module.h index c6cf74cef2..9a9034b78f 100644 --- a/src/tint/ir/module.h +++ b/src/tint/ir/module.h @@ -19,6 +19,7 @@ #include "src/tint/constant/value.h" #include "src/tint/ir/constant.h" +#include "src/tint/ir/flow_node.h" #include "src/tint/ir/function.h" #include "src/tint/ir/instruction.h" #include "src/tint/ir/value.h" diff --git a/src/tint/ir/transform/add_empty_entry_point_test.cc b/src/tint/ir/transform/add_empty_entry_point_test.cc index de9a766c5a..a97ad7a2b8 100644 --- a/src/tint/ir/transform/add_empty_entry_point_test.cc +++ b/src/tint/ir/transform/add_empty_entry_point_test.cc @@ -25,11 +25,11 @@ using IR_AddEmptyEntryPointTest = TransformTest; TEST_F(IR_AddEmptyEntryPointTest, EmptyModule) { auto* expect = R"( -%fn1 = func unused_entry_point():void [@compute @workgroup_size(1, 1, 1)] -> %fn2 { - %fn2 = block { - br %fn3 # return +%1 = func unused_entry_point():void [@compute @workgroup_size(1, 1, 1)] -> %fn1 { + %fn1 = block { + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )"; @@ -44,11 +44,11 @@ TEST_F(IR_AddEmptyEntryPointTest, ExistingEntryPoint) { mod.functions.Push(ep); auto* expect = R"( -%fn1 = func main():void [@fragment] -> %fn2 { - %fn2 = block { - br %fn3 # return +%1 = func main():void [@fragment] -> %fn1 { + %fn1 = block { + br %fn2 # return } - %fn3 = func_terminator + %fn2 = func_terminator } )";