This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] PR target/50038 fix: redundant zero extensions removal


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.enkovich@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]