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]

Re: [s390] Split out pre-prologue rewrite into separate pass


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-


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