[rs6000] Fix a wrong GC issue
authorBin Bin Lv <shlb@linux.ibm.com>
Thu, 12 Mar 2020 02:25:31 +0000 (22:25 -0400)
committerBin Bin Lv <shlb@linux.ibm.com>
Thu, 12 Mar 2020 02:25:31 +0000 (22:25 -0400)
commitf457ae2218c74c9816d98d695058619a67ded6ba
tree1ff5d71d96b26d6cf855fb150f8ec17a5c76e7a5
parent9c1281d98639e8291570fd367c9d22f350509513
[rs6000] Fix a wrong GC issue

The source file rs6000.c was split up into several smaller source files
through commit 1acf024.  However, variable "altivec_builtin_mask_for_load" and
"builtin_mode_to_type[MAX_MACHINE_MODE][2]" were marked with the wrong syntax
"GTY(([options])) type name", which led these two variables were not marked as
roots correctly and wrongly GCed.  And when "altivec_builtin_mask_for_load"
was wrongly GCed, the compiling for openJDK is failed with ICEs enabling
precompiled header under mcpu=power7.  So roots must be declared using one of
the following syntaxes: "extern GTY(([options])) type name;" and "static
GTY(([options])) type name;".

And the following patch adds variable "altivec_builtin_mask_for_load" and
"builtin_mode_to_type[MAX_MACHINE_MODE][2]" into the roots array.

Bootstrap and regression tests were done on powerpc64le-linux-gnu (LE) with no
regressions.

gcc/ChangeLog

2020-03-11  Bin Bin Lv  <shlb@linux.ibm.com>

* config/rs6000/rs6000-internal.h (altivec_builtin_mask_for_load,
builtin_mode_to_type): Remove the declaration.
* config/rs6000/rs6000.h (altivec_builtin_mask_for_load,
builtin_mode_to_type): Add an extern GTY(()) declaration.
* config/rs6000/rs6000.c (altivec_builtin_mask_for_load,
builtin_mode_to_type): Remove the GTY(()) declaration.
gcc/config/rs6000/rs6000-internal.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h