On 10/23/2017 11:04 AM, Richard Sandiford wrote: > This patch changes the type of the reg_attrs offset field > from HOST_WIDE_INT to poly_int64 and updates uses accordingly. > This includes changing reg_attr_hasher::hash to use inchash. > (Doing this has no effect on code generation since the only > use of the hasher is to avoid creating duplicate objects.) > > > 2017-10-23 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > gcc/ > * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64. > (gen_rtx_REG_offset): Take the offset as a poly_int64. > * inchash.h (inchash::hash::add_poly_hwi): New function. > * gengtype.c (main): Register poly_int64. > * emit-rtl.c (reg_attr_hasher::hash): Use inchash. Treat the > offset as a poly_int. > (reg_attr_hasher::equal): Use must_eq to compare offsets. > (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the > offset as a poly_int64. > (set_reg_attrs_from_value): Treat the offset as a poly_int64. > * print-rtl.c (print_poly_int): New function. > (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as > a poly_int. > * var-tracking.c (track_offset_p, get_tracked_reg_offset): New > functions. > (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them. > (same_variable_part_p, track_loc_p): Take the offset as a poly_int64. > (vt_get_decl_and_offset): Return the offset as a poly_int64. > Enforce track_offset_p for parts of a PARALLEL. > (vt_add_function_parameter): Use const_offset for the final > offset to track. Use get_tracked_reg_offset for the parts > of a PARALLEL. > OK jeff