aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-eliminations.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/lra-eliminations.c')
-rw-r--r--gcc/lra-eliminations.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c
index 5aa0cb8..24a0dc7 100644
--- a/gcc/lra-eliminations.c
+++ b/gcc/lra-eliminations.c
@@ -977,6 +977,9 @@ eliminate_regs_in_insn (rtx insn, bool replace_p)
}
}
+ if (! validate_p)
+ return;
+
/* Substitute the operands; the new values are in the substed_operand
array. */
for (i = 0; i < static_id->n_operands; i++)
@@ -984,16 +987,13 @@ eliminate_regs_in_insn (rtx insn, bool replace_p)
for (i = 0; i < static_id->n_dups; i++)
*id->dup_loc[i] = substed_operand[(int) static_id->dup_num[i]];
- if (validate_p)
- {
- /* If we had a move insn but now we don't, re-recognize it.
- This will cause spurious re-recognition if the old move had a
- PARALLEL since the new one still will, but we can't call
- single_set without having put new body into the insn and the
- re-recognition won't hurt in this rare case. */
- id = lra_update_insn_recog_data (insn);
- static_id = id->insn_static_data;
- }
+ /* If we had a move insn but now we don't, re-recognize it.
+ This will cause spurious re-recognition if the old move had a
+ PARALLEL since the new one still will, but we can't call
+ single_set without having put new body into the insn and the
+ re-recognition won't hurt in this rare case. */
+ id = lra_update_insn_recog_data (insn);
+ static_id = id->insn_static_data;
}
/* Spill pseudos which are assigned to hard registers in SET. Add