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

Ilya Enkovich enkovich.gnu@gmail.com
Tue Nov 1 13:29:00 GMT 2011


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PR50038.diff
Type: application/octet-stream
Size: 13913 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20111101/6dd354cd/attachment.obj>


More information about the Gcc-patches mailing list