Commit bc83d568 by Richard Sandiford Committed by Richard Sandiford

poly_int: adjust_ptr_info_misalignment

This patch makes adjust_ptr_info_misalignment take the adjustment
as a poly_uint64 rather than an unsigned int.

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

gcc/
	* tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment
	as a poly_uint64 rather than an unsigned int.
	* tree-ssanames.c (adjust_ptr_info_misalignment): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r255928
parent 1079d2c1
...@@ -2,6 +2,14 @@ ...@@ -2,6 +2,14 @@
Alan Hayward <alan.hayward@arm.com> Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com> David Sherwood <david.sherwood@arm.com>
* tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment
as a poly_uint64 rather than an unsigned int.
* tree-ssanames.c (adjust_ptr_info_misalignment): Likewise.
2017-12-21 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* varasm.c (addr_const::offset): Change from HOST_WIDE_INT * varasm.c (addr_const::offset): Change from HOST_WIDE_INT
to poly_int64. to poly_int64.
(decode_addr_const): Update accordingly. (decode_addr_const): Update accordingly.
...@@ -643,13 +643,16 @@ set_ptr_info_alignment (struct ptr_info_def *pi, unsigned int align, ...@@ -643,13 +643,16 @@ set_ptr_info_alignment (struct ptr_info_def *pi, unsigned int align,
misalignment by INCREMENT modulo its current alignment. */ misalignment by INCREMENT modulo its current alignment. */
void void
adjust_ptr_info_misalignment (struct ptr_info_def *pi, adjust_ptr_info_misalignment (struct ptr_info_def *pi, poly_uint64 increment)
unsigned int increment)
{ {
if (pi->align != 0) if (pi->align != 0)
{ {
pi->misalign += increment; increment += pi->misalign;
pi->misalign &= (pi->align - 1); if (!known_misalignment (increment, pi->align, &pi->misalign))
{
pi->align = known_alignment (increment);
pi->misalign = 0;
}
} }
} }
......
...@@ -89,8 +89,7 @@ extern bool get_ptr_info_alignment (struct ptr_info_def *, unsigned int *, ...@@ -89,8 +89,7 @@ extern bool get_ptr_info_alignment (struct ptr_info_def *, unsigned int *,
extern void mark_ptr_info_alignment_unknown (struct ptr_info_def *); extern void mark_ptr_info_alignment_unknown (struct ptr_info_def *);
extern void set_ptr_info_alignment (struct ptr_info_def *, unsigned int, extern void set_ptr_info_alignment (struct ptr_info_def *, unsigned int,
unsigned int); unsigned int);
extern void adjust_ptr_info_misalignment (struct ptr_info_def *, extern void adjust_ptr_info_misalignment (struct ptr_info_def *, poly_uint64);
unsigned int);
extern struct ptr_info_def *get_ptr_info (tree); extern struct ptr_info_def *get_ptr_info (tree);
extern void set_ptr_nonnull (tree); extern void set_ptr_nonnull (tree);
extern bool get_ptr_nonnull (const_tree); extern bool get_ptr_nonnull (const_tree);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment