r255894 - in /trunk/gcc: ChangeLog expr.h gimpl...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Wed Dec 20 12:56:00 GMT 2017


Author: rsandifo
Date: Wed Dec 20 12:56:50 2017
New Revision: 255894

URL: https://gcc.gnu.org/viewcvs?rev=255894&root=gcc&view=rev
Log:
poly_int: store merging

This patch makes pass_store_merging track polynomial sizes
and offsets.  store_immediate_info remains restricted to stores
with a constant offset and size.

2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* poly-int-types.h (round_down_to_byte_boundary): New macro.
	(round_up_to_byte_boundary): Likewise.
	* expr.h (get_bit_range): Add temporary shim.
	* gimple-ssa-store-merging.c (store_operand_info): Change the
	bitsize, bitpos, bitregion_start and bitregion_end fields from
	unsigned HOST_WIDE_INT to poly_uint64.
	(merged_store_group): Likewise load_align_base.
	(compatible_load_p, compatible_load_p): Update accordingly.
	(imm_store_chain_info::coalesce_immediate_stores): Likewise.
	(split_group, imm_store_chain_info::output_merged_store): Likewise.
	(mem_valid_for_store_merging): Return the bitsize, bitpos,
	bitregion_start and bitregion_end as poly_uint64s rather than
	unsigned HOST_WIDE_INTs.  Track polynomial offsets internally.
	(handled_load): Take the bitsize, bitpos,
	bitregion_start and bitregion_end as poly_uint64s rather than
	unsigned HOST_WIDE_INTs.
	(pass_store_merging::process_store): Update call to
	mem_valid_for_store_merging.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/expr.h
    trunk/gcc/gimple-ssa-store-merging.c
    trunk/gcc/poly-int-types.h



More information about the Gcc-cvs mailing list