summaryrefslogtreecommitdiffstats
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-03 15:22:47 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-03 15:22:47 +0000
commit6964f9982ac6480ee5278bdfcb3eeaea096f6e90 (patch)
treef50e6822ef00b12e31e63af407c46260d2f638b7 /gcc/reload.c
parent09add867642b764d20321382027ac1a27271bb06 (diff)
downloadppe42-gcc-6964f9982ac6480ee5278bdfcb3eeaea096f6e90.tar.gz
ppe42-gcc-6964f9982ac6480ee5278bdfcb3eeaea096f6e90.zip
* gcse.c (delete_null_pointer_checks_1): Do not use delelete_list;
call purge_dead_edges after removing. (delete_null_pointer_checks): Do not handle delete_list. * cfgbuild.c (inside_basic_block_p, control_flow_insn_p): Break out from ... (count_basic_blocks): ... here. (find_basic_blocks, find_bb_boundaries): Cleanup. * stor-layout.c (fixup_signed_type, fixup_unsigned_type): Avoid overflow for types greater then 2 * HOST_WIDE_INT. * reload.c (find_reloads): Update the duplicates after swapingg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47551 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r--gcc/reload.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index 0b331d4533b..e8adcfafac9 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -3510,6 +3510,12 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
recog_data.operand[commutative] = substed_operand[commutative + 1];
recog_data.operand[commutative + 1] = substed_operand[commutative];
+ /* Swap the duplicates too. */
+ for (i = 0; i < recog_data.n_dups; i++)
+ if (recog_data.dup_num[i] == commutative
+ || recog_data.dup_num[i] == commutative + 1)
+ *recog_data.dup_loc[i]
+ = recog_data.operand[(int) recog_data.dup_num[i]];
tclass = preferred_class[commutative];
preferred_class[commutative] = preferred_class[commutative + 1];
@@ -3528,6 +3534,12 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
recog_data.operand[commutative] = substed_operand[commutative];
recog_data.operand[commutative + 1]
= substed_operand[commutative + 1];
+ /* Unswap the duplicates too. */
+ for (i = 0; i < recog_data.n_dups; i++)
+ if (recog_data.dup_num[i] == commutative
+ || recog_data.dup_num[i] == commutative + 1)
+ *recog_data.dup_loc[i]
+ = recog_data.operand[(int) recog_data.dup_num[i]];
}
}
OpenPOWER on IntegriCloud