From: Richard Sandiford Date: Sun, 13 Dec 2020 10:41:07 +0000 (+0000) Subject: rtlanal: Remove noop_move_p REG_EQUAL condition X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6ad972ece13f01f88a699b1a9f784c4166061901;p=gcc.git 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. --- 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);