]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Fix ICE happening in SET_TYPE_VECTOR_SUBPARTS with libgccjit
authorAntoni Boucher <bouanto@zoho.com>
Thu, 5 Dec 2024 01:59:53 +0000 (20:59 -0500)
committerAntoni Boucher <bouanto@zoho.com>
Tue, 10 Dec 2024 02:31:46 +0000 (21:31 -0500)
commit62fa2e43cccc4b60558a7c3b4c578fda744bde96
treefd6828bd8e5b1b6b30274fc3fbf6c4c5f66bd9af
parent6fbff06f9e39d75962b1cf5bfefb3d717ba4ace4
aarch64: Fix ICE happening in SET_TYPE_VECTOR_SUBPARTS with libgccjit

The structure aarch64_simd_type_info was split in 2 because we do not
want to reset the static members of aarch64_simd_type_info to their
default value. We only want the tree types to be GC-ed. This is
necessary for libgccjit which can run multiple times in the same
process. If the static values were GC-ed, the second run would
ICE/segfault because of their invalid value.

The following test suites passed for this patch:

 * The aarch64 tests.
 * The aarch64 regression tests.

The number of failures of the jit tests on aarch64 lowered from +100 to
~7.

gcc/ChangeLog:
PR target/117923
* config/aarch64/aarch64-builtins.cc: Remove GTY marker on aarch64_simd_types,
aarch64_simd_types_trees (new variable), rename aarch64_simd_types to
aarch64_simd_types_trees.
* config/aarch64/aarch64-builtins.h: Remove GTY marker on aarch64_simd_types,
aarch64_simd_types_trees (new variable).
* config/aarch64/aarch64-sve-builtins-shapes.cc: Rename aarch64_simd_types to
aarch64_simd_types_trees.
* config/aarch64/aarch64-sve-builtins.cc: Rename aarch64_simd_types to
aarch64_simd_types_trees.
gcc/config/aarch64/aarch64-builtins.cc
gcc/config/aarch64/aarch64-builtins.h
gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
gcc/config/aarch64/aarch64-sve-builtins.cc