]> gcc.gnu.org Git - gcc.git/commit
rs6000: Fix wrong align passed to build_aligned_type [PR88309]
authorKewen Lin <linkw@linux.ibm.com>
Tue, 9 Apr 2024 02:01:36 +0000 (21:01 -0500)
committerKewen Lin <linkw@linux.ibm.com>
Thu, 25 Apr 2024 05:09:22 +0000 (00:09 -0500)
commit02f1b5361188c9d833cef39caf723d31d44ba5d5
treeeeb653be90b2919a3ccff80fe263c3e4d46c19a2
parent05aef105be13114a0d9d50abcd78cdfdefd4f6d2
rs6000: Fix wrong align passed to build_aligned_type [PR88309]

As the comments in PR88309 show, there are two oversights
in rs6000_gimple_fold_builtin that pass align in bytes to
build_aligned_type but which actually requires align in
bits, it causes unexpected ICE or hanging in function
is_miss_rate_acceptable due to zero align_unit value.

This patch is to fix them by converting bytes to bits, add
an assertion on positive align_unit value and notes function
build_aligned_type requires align measured in bits in its
function comment.

PR target/88309

Co-authored-by: Andrew Pinski <quic_apinski@quicinc.com>
gcc/ChangeLog:

* config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Fix
wrong align passed to function build_aligned_type.
* tree-ssa-loop-prefetch.c (is_miss_rate_acceptable): Add an
assertion to ensure align_unit should be positive.
* tree.c (build_qualified_type): Update function comments.

gcc/testsuite/ChangeLog:

* gcc.target/powerpc/pr88309.c: New test.

(cherry picked from commit 26eb5f8fd173e2425ae7505528fc426de4b7e34c)
gcc/config/rs6000/rs6000-call.c
gcc/testsuite/gcc.target/powerpc/pr88309.c [new file with mode: 0644]
gcc/tree-ssa-loop-prefetch.c
gcc/tree.c
This page took 0.060405 seconds and 5 git commands to generate.