diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-08-10 12:11:27 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-08-10 12:11:27 -0700 |
commit | f7911249bb716482e110998ac288f659cb6b7ef1 (patch) | |
tree | 9d4049706cd42eb2837129547357457b22bc9758 | |
parent | 7033d44cd60df91a01b40fc1ca15a4781e601b15 (diff) | |
download | gcc-f7911249bb716482e110998ac288f659cb6b7ef1.zip gcc-f7911249bb716482e110998ac288f659cb6b7ef1.tar.gz gcc-f7911249bb716482e110998ac288f659cb6b7ef1.tar.bz2 |
(cse_insn): After inserting src_eqv...
(cse_insn): After inserting src_eqv, check to see if it is
identical to any uninserted SET_SRCs, and if so, set their src_elt
to src_eqv_elt.
From-SVN: r5129
-rw-r--r-- | gcc/cse.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -6724,6 +6724,14 @@ cse_insn (insn, in_libcall_block) elt->in_memory = src_eqv_in_memory; elt->in_struct = src_eqv_in_struct; src_eqv_elt = elt; + + /* Check to see if src_eqv_elt is the same as a set source which + does not yet have an elt, and if so set the elt of the set source + to src_eqv_elt. */ + for (i = 0; i < n_sets; i++) + if (sets[i].rtl && sets[i].src_elt == 0 + && rtx_equal_p (SET_SRC (sets[i].rtl), src_eqv)) + sets[i].src_elt = src_eqv_elt; } for (i = 0; i < n_sets; i++) |