From 47207dcb0b409ecfb9add8cc136c045e8ba3488f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Ondra=C4=8Dka?= Date: Tue, 10 Dec 2024 09:00:03 +0100 Subject: [PATCH] r300: get rid of the register rename pass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pass tried to convert shaders to a SSA-like form. However since we no longer allocate registers in NIR, and we try hard to keep the SSA-like form during the later passes, this is now superfluous. Signed-off-by: Pavel Ondračka Reviewed-by: Filip Gawin Part-of: --- .../drivers/r300/compiler/r3xx_fragprog.c | 2 - .../r300/compiler/radeon_rename_regs.c | 56 ------------------- .../r300/compiler/radeon_rename_regs.h | 13 ----- src/gallium/drivers/r300/meson.build | 2 - 4 files changed, 73 deletions(-) delete mode 100644 src/gallium/drivers/r300/compiler/radeon_rename_regs.c delete mode 100644 src/gallium/drivers/r300/compiler/radeon_rename_regs.h diff --git a/src/gallium/drivers/r300/compiler/r3xx_fragprog.c b/src/gallium/drivers/r300/compiler/r3xx_fragprog.c index 128625cf81d..b338cc452a6 100644 --- a/src/gallium/drivers/r300/compiler/r3xx_fragprog.c +++ b/src/gallium/drivers/r300/compiler/r3xx_fragprog.c @@ -16,7 +16,6 @@ #include "radeon_program_alu.h" #include "radeon_program_tex.h" #include "radeon_remove_constants.h" -#include "radeon_rename_regs.h" #include "radeon_variable.h" static void @@ -175,7 +174,6 @@ r3xx_compile_fragment_program(struct r300_fragment_program_compiler *c) {"native rewrite", 1, !is_r500, rc_local_transform, native_rewrite_r300}, {"deadcode", 1, opt, rc_dataflow_deadcode, NULL}, {"convert rgb<->alpha", 1, opt, rc_convert_rgb_alpha, NULL}, - {"register rename", 1, !is_r500 || opt, rc_rename_regs, NULL}, {"dataflow optimize", 1, opt, rc_optimize, NULL}, {"inline literals", 1, is_r500 && opt, rc_inline_literals, NULL}, {"dataflow swizzles", 1, 1, rc_dataflow_swizzles, NULL}, diff --git a/src/gallium/drivers/r300/compiler/radeon_rename_regs.c b/src/gallium/drivers/r300/compiler/radeon_rename_regs.c deleted file mode 100644 index de40d62641a..00000000000 --- a/src/gallium/drivers/r300/compiler/radeon_rename_regs.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2010 Tom Stellard - * SPDX-License-Identifier: MIT - */ - -#include "util/u_math.h" - -#include "radeon_rename_regs.h" - -#include "radeon_compiler.h" -#include "radeon_list.h" -#include "radeon_program.h" -#include "radeon_variable.h" - -/** - * This function renames registers in an attempt to get the code close to - * SSA form. After this function has completed, most of the register are only - * written to one time, with a few exceptions. - * - * This function assumes all the instructions are still of type - * RC_INSTRUCTION_NORMAL. - */ -void -rc_rename_regs(struct radeon_compiler *c, void *user) -{ - struct rc_instruction *inst; - struct rc_list *variables; - struct rc_list *var_ptr; - - /* XXX Remove this once the register allocation works with flow control. */ - for (inst = c->Program.Instructions.Next; inst != &c->Program.Instructions; inst = inst->Next) { - if (inst->U.I.Opcode == RC_OPCODE_BGNLOOP) - return; - } - - variables = rc_get_variables(c); - - for (var_ptr = variables; var_ptr; var_ptr = var_ptr->Next) { - int new_index; - unsigned writemask; - struct rc_variable *var = var_ptr->Item; - - if (var->Inst->U.I.DstReg.File != RC_FILE_TEMPORARY) { - continue; - } - - new_index = rc_find_free_temporary(c); - if (new_index < 0) { - rc_error(c, "Ran out of temporary registers\n"); - return; - } - - writemask = rc_variable_writemask_sum(var); - rc_variable_change_dst(var, new_index, writemask); - } -} diff --git a/src/gallium/drivers/r300/compiler/radeon_rename_regs.h b/src/gallium/drivers/r300/compiler/radeon_rename_regs.h deleted file mode 100644 index 5b372bed383..00000000000 --- a/src/gallium/drivers/r300/compiler/radeon_rename_regs.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2010 Tom Stellard - * SPDX-License-Identifier: MIT - */ - -#ifndef RADEON_RENAME_REGS_H -#define RADEON_RENAME_REGS_H - -struct radeon_compiler; - -void rc_rename_regs(struct radeon_compiler *c, void *user); - -#endif /* RADEON_RENAME_REGS_H */ diff --git a/src/gallium/drivers/r300/meson.build b/src/gallium/drivers/r300/meson.build index a022a130713..a897ced9414 100644 --- a/src/gallium/drivers/r300/meson.build +++ b/src/gallium/drivers/r300/meson.build @@ -95,8 +95,6 @@ files_r300 = files( 'compiler/radeon_regalloc.h', 'compiler/radeon_remove_constants.c', 'compiler/radeon_remove_constants.h', - 'compiler/radeon_rename_regs.c', - 'compiler/radeon_rename_regs.h', 'compiler/radeon_swizzle.h', 'compiler/radeon_variable.c', 'compiler/radeon_variable.h',