PR rtl-optimization/51667
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Dec 2011 16:25:43 +0000 (16:25 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Dec 2011 16:25:43 +0000 (16:25 +0000)
commit060b8c19bb36b0f49d25d6af3d4a103bfe54450e
treeeaf9391ce1461e4951b958573322625de296a53b
parenta22223e36ae425b840628bf094477939e048bb38
PR rtl-optimization/51667
* ree.c (insn_merge_code): Delete.
(is_insn_merge_attempted): Likewise.
(get_insn_status): Likewise.
(set_insn_status): Likewise.
(struct ext_cand): Add CODE and MODE fields.
(combine_set_extend): Rename to...
(combine_set_extension): ...this.  Use above fields and tidy up.
(transform_ifelse): Likewise.
(get_defs): Return the chain of definitions.
(is_this_a_cmove): Merge into...
(is_cond_copy_insn): ...this.  Return bool.
(make_defs_and_copies_lists): Adjust calls to get_defs and simplify.
(merge_def_and_ext): Adjust call to combine_set_extend.
(combine_reaching_defs): Remove calls to {g|s}et_insn_status.
(struct extend_info): Rename to...
(struct re_info): ...this.  Add DEF_MAP field.
(add_ext_candidate): Merge into...
(add_removable_extension): ...this.  Adjust calls to get_defs.  Ensure
reaching definitions are associated with only one kind of extension.
(find_removable_extensions): Create and destroy the definition map.
(find_and_remove_re): Return void.  Change 'long' variables to 'int'.
Do not deal with is_insn_merge_attempted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182694 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/ree.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/20111227-1.c [new file with mode: 0644]