diff options
author | Jan Hubicka <jh@suse.cz> | 2001-12-03 16:22:47 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-12-03 15:22:47 +0000 |
commit | 9cd56be1b9ade7f19bf2a295b6d3302db0bbb84d (patch) | |
tree | f50e6822ef00b12e31e63af407c46260d2f638b7 /gcc/reload.c | |
parent | 63658a9aaa0e8e7a16548f505c4c6ebd21a56c1d (diff) | |
download | gcc-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.c | 12 |
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]]; } } |