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-