From 7224b653b59a7b99f3ac52780cee00b7deac2201 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Fri, 7 Mar 2025 22:08:32 -0800 Subject: [PATCH] brw: Use block's num_instructions in scoreboard tests Stop using the start_ip / end_ip, these are not really important for those tests. What the test care was the number of instructions in the block to check for changes and ensure we can peek at them by index. Reviewed-by: Kenneth Graunke Part-of: --- src/intel/compiler/test_lower_scoreboard.cpp | 139 +++++++------------ 1 file changed, 48 insertions(+), 91 deletions(-) diff --git a/src/intel/compiler/test_lower_scoreboard.cpp b/src/intel/compiler/test_lower_scoreboard.cpp index a82d56ac768..ca1825d9386 100644 --- a/src/intel/compiler/test_lower_scoreboard.cpp +++ b/src/intel/compiler/test_lower_scoreboard.cpp @@ -75,10 +75,11 @@ scoreboard_test::~scoreboard_test() } static brw_inst * -instruction(bblock_t *block, int num) +instruction(bblock_t *block, unsigned num) { - brw_inst *inst = (brw_inst *)block->start(); - for (int i = 0; i < num; i++) { + assert(num < block->num_instructions); + brw_inst *inst = block->start(); + for (unsigned i = 0; i < num; i++) { inst = (brw_inst *)inst->next; } return inst; @@ -160,12 +161,10 @@ TEST_F(scoreboard_test, RAW_inorder_inorder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -185,12 +184,10 @@ TEST_F(scoreboard_test, RAW_inorder_outoforder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -218,12 +215,10 @@ TEST_F(scoreboard_test, RAW_outoforder_inorder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -253,12 +248,10 @@ TEST_F(scoreboard_test, RAW_outoforder_outoforder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); @@ -282,12 +275,10 @@ TEST_F(scoreboard_test, WAR_inorder_inorder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -307,12 +298,10 @@ TEST_F(scoreboard_test, WAR_inorder_outoforder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -339,12 +328,10 @@ TEST_F(scoreboard_test, WAR_outoforder_inorder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -363,12 +350,10 @@ TEST_F(scoreboard_test, WAR_outoforder_outoforder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); @@ -392,12 +377,10 @@ TEST_F(scoreboard_test, WAW_inorder_inorder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -422,12 +405,10 @@ TEST_F(scoreboard_test, WAW_inorder_outoforder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -454,12 +435,10 @@ TEST_F(scoreboard_test, WAW_outoforder_inorder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -478,12 +457,10 @@ TEST_F(scoreboard_test, WAW_outoforder_outoforder) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); @@ -914,12 +891,10 @@ TEST_F(scoreboard_test, gfx125_RaR_over_different_pipes) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -939,12 +914,10 @@ TEST_F(scoreboard_test, gitlab_issue_from_mr_29723) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, regdist(TGL_PIPE_FLOAT, 1)); @@ -966,12 +939,10 @@ TEST_F(scoreboard_test, combine_regdist_float_and_int_with_sbid_set) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -1001,12 +972,10 @@ TEST_F(scoreboard_test, combine_regdist_float_with_sbid_set) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -1036,12 +1005,10 @@ TEST_F(scoreboard_test, combine_regdist_int_with_sbid_set) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_null()); @@ -1068,12 +1035,10 @@ TEST_F(scoreboard_test, gitlab_issue_11069) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_null()); EXPECT_EQ(instruction(block0, 1)->sched, regdist(TGL_PIPE_FLOAT, 1)); @@ -1090,12 +1055,10 @@ TEST_F(scoreboard_test, gfx120_can_embed_outoforder_src_dependency_in_send_eot) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_sbid(TGL_SBID_SRC, 0)); @@ -1112,12 +1075,10 @@ TEST_F(scoreboard_test, gfx120_can_embed_outoforder_dst_dependency_in_send_eot) brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); EXPECT_EQ(instruction(block0, 1)->sched, tgl_swsb_sbid(TGL_SBID_DST, 0)); @@ -1138,12 +1099,10 @@ TEST_F(scoreboard_test, gfx200_cannot_embed_outoforder_src_dependency_in_send_eo brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0)); @@ -1169,12 +1128,10 @@ TEST_F(scoreboard_test, gfx200_cannot_embed_outoforder_dst_dependency_in_send_eo brw_calculate_cfg(*v); bblock_t *block0 = v->cfg->blocks[0]; - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(1, block0->end_ip); + ASSERT_EQ(2, block0->num_instructions); lower_scoreboard(v); - ASSERT_EQ(0, block0->start_ip); - ASSERT_EQ(2, block0->end_ip); + ASSERT_EQ(3, block0->num_instructions); EXPECT_EQ(instruction(block0, 0)->sched, tgl_swsb_sbid(TGL_SBID_SET, 0));