> 2011-12-15 Enkovich Ilya <ilya.enkov...@intel.com> > > PR target/50038 > * implicit-zee.c: Delete. > * ree.c: New file. > * Makefile.in: Replace implicit-zee.c with ree.c. > * config/i386/i386.c (ix86_option_override_internal): Set > flag_ree for 32 bit platform. > * common.opt (fzee): Ignored. > (free): New. > * passes.c (init_optimization_passes): Replace pass_implicit_zee > with pass_ree. > * tree-pass.h (pass_implicit_zee): Delete. > (pass_ree): New. > * timevar.def (TV_ZEE): Delete. > (TV_REE): New. > * doc/invoke.texi: Add -free description.
The patch is OK (modulo the following nits) but I cannot approve the pure x86 part. So you can install it without this part (i.e. just rename flag_zee to flag_ree in ix86_option_override_internal with a corresponding ChangeLog) if you also install at least one testcase (e.g. for the x86-64 architecture) that is "fixed" by the patch in the testsuite. Then repost the pure x86 part with at least one testcase for the x86 architecture and ask for approval by a x86 maintainer. Now on to the couple of nits: @@ -6708,6 +6708,14 @@ Perform a number of minor optimizations that are relatively expensive. Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. +@item -free +@opindex free +Attempt to remove redundant extension instructions. This is especially The double space after period is also meant for the .texi files. +helpful for x86-64 architecture which implicitly zero-extend in 64-bit ...for the x86-64 architecture... zero-extends ... +registers after writing to their lower 32-bit half. -- Eric Botcazou