This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [043/nnn] poly_int: frame allocations
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, richard dot sandiford at linaro dot org
- Date: Tue, 5 Dec 2017 20:15:06 -0700
- Subject: Re: [043/nnn] poly_int: frame allocations
- Authentication-results: sourceware.org; auth=none
- References: <871sltvm7r.fsf@linaro.org> <87po9dn5os.fsf@linaro.org>
On 10/23/2017 11:18 AM, Richard Sandiford wrote:
> This patch converts the frame allocation code (mostly in function.c)
> to use poly_int64 rather than HOST_WIDE_INT for frame offsets and
> sizes.
>
>
> 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
> Alan Hayward <alan.hayward@arm.com>
> David Sherwood <david.sherwood@arm.com>
>
> gcc/
> * function.h (frame_space): Change start and length from HOST_WIDE_INT
> to poly_int64.
> (get_frame_size): Return the size as a poly_int64 rather than a
> HOST_WIDE_INT.
> (frame_offset_overflow): Take the offset as a poly_int64 rather
> than a HOST_WIDE_INT.
> (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
> (assign_stack_temp): Likewise for the size.
> * function.c (get_frame_size): Return a poly_int64 rather than
> a HOST_WIDE_INT.
> (frame_offset_overflow): Take the offset as a poly_int64 rather
> than a HOST_WIDE_INT.
> (try_fit_stack_local): Take the start, length and size as poly_int64s
> rather than HOST_WIDE_INTs. Return the offset as a poly_int64_pod
> rather than a HOST_WIDE_INT.
> (add_frame_space): Take the start and end as poly_int64s rather than
> HOST_WIDE_INTs.
> (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
> (assign_stack_temp): Likewise for the size.
> (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT
> to poly_int64.
> (find_temp_slot_from_address): Handle polynomial offsets.
> (combine_temp_slots): Likewise.
> * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT
> to poly_int64.
> * cfgexpand.c (alloc_stack_frame_space): Return the offset as a
> poly_int64 rather than a HOST_WIDE_INT.
> (expand_one_stack_var_at): Take the offset as a poly_int64 rather
> than a HOST_WIDE_INT.
> (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle
> polynomial frame offsets.
> * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size
> as a poly_int64 rather than an int.
> * config/m32r/m32r.c (m32r_compute_frame_size): Likewise.
> * config/v850/v850-protos.h (compute_frame_size): Likewise.
> * config/v850/v850.c (compute_frame_size): Likewise.
> * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise.
> * config/xtensa/xtensa.c (compute_frame_size): Likewise.
> * config/pa/pa-protos.h (pa_compute_frame_size): Likewise.
> * config/pa/pa.c (pa_compute_frame_size): Likewise.
> * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64
> rather than a HOST_WIDE_INT.
> * explow.c (get_dynamic_stack_base): Likewise.
> * final.c (final_start_function): Use the constant lower bound
> of the frame size for -Wframe-larger-than.
> * ira.c (do_reload): Adjust for new get_frame_size return type.
> * lra.c (lra): Likewise.
> * reload1.c (reload): Likewise.
> * config/avr/avr.c (avr_asm_function_end_prologue): Likewise.
> * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise.
> * rtlanal.c (get_initial_register_offset): Return the offset as
> a poly_int64 rather than a HOST_WIDE_INT.
>
OK
Jeff