summaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-12-03 16:22:47 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2001-12-03 15:22:47 +0000
commit9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d (patch)
treef50e6822ef00b12e31e63af407c46260d2f638b7 /gcc/reload.c
parent63658a9aaa0e8e7a16548f505c4c6ebd21a56c1d (diff)
downloadgcc-9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d.tar.gz
gcse.c (delete_null_pointer_checks_1): Do not use delelete_list; call purge_dead_edges after removing.
* 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. From-SVN: r47551
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]];
}
}