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: [019/nnn] poly_int: lra frame offsets


On 10/23/2017 11:07 AM, Richard Sandiford wrote:
> This patch makes LRA use poly_int64s rather than HOST_WIDE_INTs
> to store a frame offset (including in things like eliminations).
> 
> 
> 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
> 	    Alan Hayward  <alan.hayward@arm.com>
> 	    David Sherwood  <david.sherwood@arm.com>
> 
> gcc/
> 	* lra-int.h (lra_reg): Change offset from int to poly_int64.
> 	(lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
> 	to poly_int64.
> 	(lra_eliminate_regs_1, eliminate_regs_in_insn): Change
> 	update_sp_offset from a HOST_WIDE_INT to a poly_int64.
> 	(lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
> 	offset as a poly_int64 rather than an int.
> 	* lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
> 	(setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
> 	* lra-constraints.c (equiv_address_substitution): Track offsets
> 	as poly_int64s.
> 	(emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
> 	(curr_insn_transform): Handle the new form of sp_offset.
> 	* lra-eliminations.c (lra_elim_table): Change previous_offset
> 	and offset from HOST_WIDE_INT to poly_int64.
> 	(print_elim_table, update_reg_eliminate): Update accordingly.
> 	(self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
> 	(get_elimination): Update accordingly.
> 	(form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
> 	(lra_eliminate_regs_1, eliminate_regs_in_insn): Change
> 	update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
> 	poly_int64 offsets generally.
> 	(curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
> 	(mark_not_eliminable, init_elimination): Update accordingly.
> 	(remove_reg_equal_offset_note): Return a bool and pass the new
> 	offset back by pointer as a poly_int64.
> 	* lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
> 	rather than a HOST_WIDE_INT.
> 	(do_remat): Track offsets poly_int64s.
> 	* lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
OK.
jeff


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