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.
PR50038.diff
Description: Binary data