aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2020-12-13 10:41:07 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2020-12-13 10:41:07 +0000
commit6ad972ece13f01f88a699b1a9f784c4166061901 (patch)
tree7c081d0882b5608a71f30b50d68b0894296a193b /gcc
parentda40a69c9ef8784d37c968ac37daf6f8883d2755 (diff)
downloadgcc-6ad972ece13f01f88a699b1a9f784c4166061901.zip
gcc-6ad972ece13f01f88a699b1a9f784c4166061901.tar.gz
gcc-6ad972ece13f01f88a699b1a9f784c4166061901.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rtlanal.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 01130a1..6f52150 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);