Hi,

Here is a patch which fixes redundant zero extensions problem. Issue
is resolved by expanding implicit_zee pass functionality to cover zero
and sign extends of different modes. Could please someone review it?

Bootstrapped and checked on linux-x86_64.

Thanks,
Ilya
---
2011-11-01  Enkovich Ilya  <ilya.enkov...@intel.com>

        PR target/50038
        * implicit-zee.c (ext_cand): New.
        (ext_cand_pool): Likewise.
        (add_ext_candidate): New.
        (zee_init): New.
        (zee_cleanup): New.
        (get_reg_di): Removed.
        (combine_set_zero_extend): Get extend candidate as new parameter.
        Now handle sign extend cases and other modes.
        (transform_ifelse): Likewise.
        (merge_def_and_ze): Likewise.
        (combine_reaching_defs): Change parameter type.
        (zero_extend_info): Changed insn_list type.
        (add_removable_zero_extend): Relaxed mode and code filter.
        (find_removable_zero_extends): Changed return type.
        (find_and_remove_ze): Var type changes.
        (rest_of_handle_zee): Init and cleanup added.

        * i386.c (ix86_option_override_internal): set flag_zee for
        32 bit platform.

Attachment: PR50038.diff
Description: Binary data

Reply via email to