aboutsummaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r--gcc/local-alloc.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 89e3f49..dcee499 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -971,11 +971,11 @@ update_equiv_regs ()
emit_insn_before (copy_rtx (PATTERN (equiv_insn)), insn);
REG_NOTES (PREV_INSN (insn)) = REG_NOTES (equiv_insn);
+ REG_NOTES (equiv_insn) = 0;
PUT_CODE (equiv_insn, NOTE);
NOTE_LINE_NUMBER (equiv_insn) = NOTE_INSN_DELETED;
NOTE_SOURCE_FILE (equiv_insn) = 0;
- REG_NOTES (equiv_insn) = 0;
if (block < 0)
REG_BASIC_BLOCK (regno) = 0;
@@ -1071,8 +1071,6 @@ block_alloc (b)
insn = BLOCK_HEAD (b);
while (1)
{
- register rtx body = PATTERN (insn);
-
if (GET_CODE (insn) != NOTE)
insn_number++;
@@ -1083,6 +1081,9 @@ block_alloc (b)
register rtx r0, r1;
int combined_regno = -1;
int i;
+#ifndef REGISTER_CONSTRAINTS
+ register rtx body = PATTERN (insn);
+#endif
this_insn_number = insn_number;
this_insn = insn;
@@ -1184,11 +1185,11 @@ block_alloc (b)
can only be in the same register as the output, give
priority to an equivalence found from that insn. */
int may_save_copy
- = ((SET_DEST (body) == r0 && SET_SRC (body) == r1)
#ifdef REGISTER_CONSTRAINTS
- || (r1 == recog_operand[i] && must_match_0 >= 0)
+ = (r1 == recog_operand[i] && must_match_0 >= 0);
+#else
+ = (SET_DEST (body) == r0 && SET_SRC (body) == r1);
#endif
- );
if (GET_CODE (r1) == REG || GET_CODE (r1) == SUBREG)
win = combine_regs (r1, r0, may_save_copy,