diff options
author | Robin Dapp <rdapp@ventanamicro.com> | 2025-08-28 11:52:51 +0200 |
---|---|---|
committer | Robin Dapp <rdapp@ventanamicro.com> | 2025-09-04 12:48:40 +0200 |
commit | 8bb076ac0d887a6a67263e280b17aacd9e5062e7 (patch) | |
tree | 098b40fa268c1b2ef0f610d668ba611f89ec4a30 /libgo | |
parent | 56e7010eef88d941c59e3d677b7bc67a890c210d (diff) | |
download | gcc-8bb076ac0d887a6a67263e280b17aacd9e5062e7.zip gcc-8bb076ac0d887a6a67263e280b17aacd9e5062e7.tar.gz gcc-8bb076ac0d887a6a67263e280b17aacd9e5062e7.tar.bz2 |
vect: Use poly_int64 for prolog bound.
Since peeling and version for alignment for VLA modes was introduced
(r16-3065-geee51f9a4b6) we have been seeing a lot of test suite failures
like
internal compiler error: in apply_scale, at profile-count.h:1187
This is because vect_gen_prolog_loop_niters sets the prolog bound to -1
in case align_in_elems is a non-constant poly_int.
bound - 1 is later used to scale the loop profile in scale_loop_profile
so we try to calculate with an assumed -2 iterations.
This patch changes bound_prolog to poly_int64, using a poly estimate for
frequency scaling but only records an iteration bound for the prolog if
the bound is a scalar.
PR/tree-optimization 121523
gcc/ChangeLog:
* tree-vect-loop-manip.cc (vect_gen_prolog_loop_niters):
Change prolog bound to poly_int64.
(vect_gen_scalar_loop_niters): Ditto.
(vect_do_peeling): Use poly estimate for frequency scaling.
Diffstat (limited to 'libgo')
0 files changed, 0 insertions, 0 deletions