This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [s390] Split out pre-prologue rewrite into separate pass
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 07 Feb 2014 11:03:44 +0100
- Subject: Re: [s390] Split out pre-prologue rewrite into separate pass
- Authentication-results: sourceware.org; auth=none
- References: <87txcfdt93 dot fsf at sandifor-thinkpad dot stglab dot manchester dot uk dot ibm dot com>
On 04/02/14 12:14, Richard Sandiford wrote:
> s390_emit_prologue performs some optimisations on the function before
> emitting the prologue. It also rewrites constant pool accesses to make
> the base register explicit.
>
> Doing this in the prologue pattern makes the interaction with direct
> returns and simple_returns less obvious, so this patch splits the code
> out into a new target-specific pre-prologue pass. I've called it
> "early_mach" for want of a better name.
>
> I also moved s390_option_override to the end of the file in order
> to avoid some forward declarations that would have been needed otherwise.
> The only change is at the very end of the function.
>
> Tested on s390-linux-gnu and s390x-linux-gnu, using
> unix{,-m31,-march=z10/-m31,-march=z10,-march=z196,-march=zEC12}
> for the latter. OK to install?
>
> Thanks,
> Richard
>
>
> gcc/
> * config/s390/s390.c: Include tree-pass.h and context.h.
> (s390_early_mach): New function, split out from...
> (s390_emit_prologue): ...here.
> (pass_data_s390_early_mach): New pass structure.
> (pass_s390_early_mach): New class.
> (s390_option_override): Create and register early_mach pass.
> Move to end of file.
Ok to apply. Thanks a lot for doing this work!
-Andreas-