Pushed to r16-5264.

Thanks!

在 2025/11/10 下午3:38, zhaozhou 写道:
As for GGC(GCC Garbage Collection), it's use gengtype tool to scan all
source files contain the GTY mark, and generate gt-*.h files. GGC
traversal these file to find gt_root node and marks these objects that
directly or indirectly reference this node as active, then clean up
unmarked object's memory.

For the loongarch-builtins.cc file, it is necessary to add
target_gtfiles in config.gcc to generate gt-loongarch-builtins.h, and
include this header file in the .cc file, prevented the data marked
with GTY in this `.cc` file cleaned up by ggc.

gcc/ChangeLog:

        * config.gcc: Add target_gtfiles.
        * config/loongarch/loongarch-builtins.cc: Add header file.
---
  gcc/config.gcc                             | 1 +
  gcc/config/loongarch/loongarch-builtins.cc | 2 ++
  2 files changed, 3 insertions(+)

diff --git a/gcc/config.gcc b/gcc/config.gcc
index b0fa43b5eba..526aec0eeb6 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -502,6 +502,7 @@ loongarch*-*-*)
        extra_headers="larchintrin.h lsxintrin.h lasxintrin.h"
        extra_objs="loongarch-c.o loongarch-builtins.o loongarch-cpu.o 
loongarch-opts.o loongarch-def.o loongarch-evolution.o loongarch-target-attr.o"
        extra_gcc_objs="loongarch-driver.o loongarch-cpu.o loongarch-opts.o 
loongarch-def.o"
+       target_gtfiles="\$(srcdir)/config/loongarch/loongarch-builtins.cc"
        extra_options="${extra_options} g.opt fused-madd.opt"
        ;;
  nds32*)
diff --git a/gcc/config/loongarch/loongarch-builtins.cc 
b/gcc/config/loongarch/loongarch-builtins.cc
index 312d87626a4..6c914c07d29 100644
--- a/gcc/config/loongarch/loongarch-builtins.cc
+++ b/gcc/config/loongarch/loongarch-builtins.cc
@@ -3259,3 +3259,5 @@ loongarch_build_builtin_va_list (void)
  {
    return ptr_type_node;
  }
+
+#include "gt-loongarch-builtins.h"

Reply via email to