Hi Segher,

On 2020/3/5 上午2:35, Segher Boessenkool wrote:
On Wed, Mar 04, 2020 at 03:08:41PM +0800, binbin wrote:
        * config/rs6000/rs6000.h (MAX_MACHINE_MODE): Include the header file
        for MAX_MACHINE_MODE.

The changelog entry should say *what* file is included, and under what
condition.  It doesn't have to say why (that belongs in the commit
message).

But, can't you just include it unconditionally?  Don't we already,
anyway, via coretypes.h -> machmode.h -> insn-modes.h?

OK, change it to uncondition.  Thanks for your suggestion.

What about the second part?  Shouldn't it already be included anyway?

If "insn-modes.h" is not included in rs6000.h, it reports error showing
MAX_MACHINE_MODE’ undeclared here (not in a function) in file included from
../../host-powerpc64le-unknown-linux-gnu/gcc/tm.h:25
from ../.././libgcc/libgcc2.c:29
../.././libgcc/../gcc/config/rs6000/rs6000.h:2495:42.  Thanks.


        * config/rs6000/rs6000-internal.h (altivec_builtin_mask_for_load,
        builtin_mode_to_type[MAX_MACHINE_MODE][2]): Remove GTY(()).

This changelog entry needs updating now.  (And please check the rest
as well.)


Segher


OK, updated now, and the rest were checked.  Thanks.
gcc/ChangeLog

2020-03-05  Bin Bin Lv  <s...@linux.ibm.com>

        * config/rs6000/rs6000-internal.h (altivec_builtin_mask_for_load,
        builtin_mode_to_type[MAX_MACHINE_MODE][2]): Remove the declaration.
        * config/rs6000/rs6000.h (altivec_builtin_mask_for_load,
        builtin_mode_to_type[MAX_MACHINE_MODE][2]): Add an extern GTY(())
        declaration.
        * config/rs6000/rs6000.h (MAX_MACHINE_MODE): Include insn-modes.h.
        * config/rs6000/rs6000.c (altivec_builtin_mask_for_load,
        builtin_mode_to_type[MAX_MACHINE_MODE][2]): Remove the GTY(())
        declaration and add the definition.
---
 gcc/config/rs6000/rs6000-internal.h | 2 --
 gcc/config/rs6000/rs6000.c          | 4 ++--
 gcc/config/rs6000/rs6000.h          | 4 ++++
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-internal.h 
b/gcc/config/rs6000/rs6000-internal.h
index a23e956..d331b9e 100644
--- a/gcc/config/rs6000/rs6000-internal.h
+++ b/gcc/config/rs6000/rs6000-internal.h
@@ -187,7 +187,5 @@ extern bool rs6000_passes_long_double;
 extern bool rs6000_passes_vector;
 extern bool rs6000_returns_struct;
 extern bool cpu_builtin_p;
-extern GTY(()) tree builtin_mode_to_type[MAX_MACHINE_MODE][2];
-extern GTY(()) tree altivec_builtin_mask_for_load;
 
 #endif
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 9910b27..0faf44b 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -99,7 +99,7 @@
 #endif
 
 /* Support targetm.vectorize.builtin_mask_for_load.  */
-GTY(()) tree altivec_builtin_mask_for_load;
+tree altivec_builtin_mask_for_load;
 
 #ifdef USING_ELFOS_H
 /* Counter for labels which are to be placed in .fixup.  */
@@ -196,7 +196,7 @@ enum reg_class rs6000_constraints[RS6000_CONSTRAINT_MAX];
 int rs6000_vector_align[NUM_MACHINE_MODES];
 
 /* Map selected modes to types for builtins.  */
-GTY(()) tree builtin_mode_to_type[MAX_MACHINE_MODE][2];
+tree builtin_mode_to_type[MAX_MACHINE_MODE][2];
 
 /* What modes to automatically generate reciprocal divide estimate (fre) and
    reciprocal sqrt (frsqrte) for.  */
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 1697186..cd3d054 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -35,6 +35,8 @@
 #include "config/rs6000/rs6000-modes.h"
 #endif
 
+#include "insn-modes.h"
+
 /* Definitions for the object file format.  These are set at
    compile-time.  */
 
@@ -2488,6 +2490,8 @@ enum rs6000_builtin_type_index
 
 extern GTY(()) tree rs6000_builtin_types[RS6000_BTI_MAX];
 extern GTY(()) tree rs6000_builtin_decls[RS6000_BUILTIN_COUNT];
+extern GTY(()) tree builtin_mode_to_type[MAX_MACHINE_MODE][2];
+extern GTY(()) tree altivec_builtin_mask_for_load;
 
 #ifndef USED_FOR_TARGET
 /* A C structure for machine-specific, per-function data.
-- 
1.8.3.1

Reply via email to