From 6ad972ece13f01f88a699b1a9f784c4166061901 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sun, 13 Dec 2020 10:41:07 +0000 Subject: [PATCH] rtlanal: Remove noop_move_p REG_EQUAL condition noop_move_p currently keeps any instruction that has a REG_EQUAL note, on the basis that the equality might be useful in future. But this creates a perverse incentive not to add potentially-useful REG_EQUAL notes, in case they prevent an instruction from later being removed as dead. The condition originates from flow.c:life_analysis_1 and predates the changes tracked by the current repository (1992). It probably made sense when most optimisations were done on RTL rather than FE trees, but it seems counterproductive now. gcc/ * rtlanal.c (noop_move_p): Don't check for REG_EQUAL notes. --- gcc/rtlanal.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 01130a10783..6f521503c39 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1668,10 +1668,6 @@ noop_move_p (const rtx_insn *insn) if (INSN_CODE (insn) == NOOP_MOVE_INSN_CODE) return 1; - /* Insns carrying these notes are useful later on. */ - if (find_reg_note (insn, REG_EQUAL, NULL_RTX)) - return 0; - /* Check the code to be executed for COND_EXEC. */ if (GET_CODE (pat) == COND_EXEC) pat = COND_EXEC_CODE (pat); -- 2.30.2