Hi,

        Has this patch been merged ?

        I track this some weeks and the patch has reviewed still on the way ...

        Could someone help me ?

        Thanks so much.

Jojo
在 2020年10月8日 +0800 AM10:01,Jojo R <jiejie_r...@c-sky.com>,写道:
> Ping …...
>
> Jojo
> 在 2020年9月27日 +0800 AM10:34,Jojo R <jiejie_r...@c-sky.com>,写道:
> > Hi,
> >
> >     Has this patch been merged ?
> >
> > Jojo
> > 在 2020年9月15日 +0800 PM5:16,Jojo R <jiejie_r...@c-sky.com>,写道:
> > > gcc/ChangeLog:
> > >
> > > * genemit.c (main): Print 'split line'.
> > > * Makefile.in (insn-emit.c): Define split count and file
> > >
> > > ---
> > > gcc/Makefile.in | 19 +++++++++
> > > gcc/genemit.c | 104 +++++++++++++++++++++++++++++-------------------
> > > 2 files changed, 83 insertions(+), 40 deletions(-)
> > >
> > > diff --git a/gcc/Makefile.in b/gcc/Makefile.in
> > > index 79e854aa938..a7fcc7d5949 100644
> > > --- a/gcc/Makefile.in
> > > +++ b/gcc/Makefile.in
> > > @@ -1258,6 +1258,21 @@ ANALYZER_OBJS = \
> > > # We put the *-match.o and insn-*.o files first so that a parallel make
> > > # will build them sooner, because they are large and otherwise tend to be
> > > # the last objects to finish building.
> > > +
> > > +# target overrides
> > > +-include $(tmake_file)
> > > +
> > > +INSN-GENERATED-SPLIT-NUM ?= 0
> > > +
> > > +insn-generated-split-num = $(shell i=1; j=`expr 
> > > $(INSN-GENERATED-SPLIT-NUM) + 1`; \
> > > + while test $$i -le $$j; do \
> > > + echo $$i; i=`expr $$i + 1`; \
> > > + done)
> > > +
> > > +insn-emit-split-c := $(foreach o, $(shell for i in 
> > > $(insn-generated-split-num); do echo $$i; done), insn-emit$(o).c)
> > > +insn-emit-split-obj = $(patsubst %.c,%.o, $(insn-emit-split-c))
> > > +$(insn-emit-split-c): insn-emit.c
> > > +
> > > OBJS = \
> > > gimple-match.o \
> > > generic-match.o \
> > > @@ -1265,6 +1280,7 @@ OBJS = \
> > > insn-automata.o \
> > > insn-dfatab.o \
> > > insn-emit.o \
> > > + $(insn-emit-split-obj) \
> > > insn-extract.o \
> > > insn-latencytab.o \
> > > insn-modes.o \
> > > @@ -2365,6 +2381,9 @@ $(simple_generated_c:insn-%.c=s-%): s-%: 
> > > build/gen%$(build_exeext)
> > > $(RUN_GEN) build/gen$*$(build_exeext) $(md_file) \
> > > $(filter insn-conditions.md,$^) > tmp-$*.c
> > > $(SHELL) $(srcdir)/../move-if-change tmp-$*.c insn-$*.c
> > > + $*v=$$(echo $$(csplit insn-$*.c /parallel\ compilation/ -k -s 
> > > {$(INSN-GENERATED-SPLIT-NUM)} -f insn-$* -b "%d.c" 2>&1));\
> > > + [ ! "$$$*v" ] || grep "match not found" <<< $$$*v
> > > + [ -s insn-$*0.c ] || (for i in $(insn-generated-split-num); do touch 
> > > insn-$*$$i.c; done && echo "" > insn-$*.c)
> > > $(STAMP) s-$*
> > >
> > > # gencheck doesn't read the machine description, and the file produced
> > > diff --git a/gcc/genemit.c b/gcc/genemit.c
> > > index 84d07d388ee..54a0d909d9d 100644
> > > --- a/gcc/genemit.c
> > > +++ b/gcc/genemit.c
> > > @@ -847,24 +847,13 @@ handle_overloaded_gen (overloaded_name *oname)
> > > }
> > > }
> > >
> > > -int
> > > -main (int argc, const char **argv)
> > > -{
> > > - progname = "genemit";
> > > -
> > > - if (!init_rtx_reader_args (argc, argv))
> > > - return (FATAL_EXIT_CODE);
> > > -
> > > -#define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \
> > > - nofail_optabs[OPTAB##_optab] = true;
> > > -#include "internal-fn.def"
> > > -
> > > - /* Assign sequential codes to all entries in the machine description
> > > - in parallel with the tables in insn-output.c. */
> > > -
> > > - printf ("/* Generated automatically by the program `genemit'\n\
> > > -from the machine description file `md'. */\n\n");
> > > +/* Print include header. */
> > >
> > > +static void
> > > +printf_include (void)
> > > +{
> > > + printf ("/* Generated automatically by the program `genemit'\n"
> > > + "from the machine description file `md'. */\n\n");
> > > printf ("#define IN_TARGET_CODE 1\n");
> > > printf ("#include \"config.h\"\n");
> > > printf ("#include \"system.h\"\n");
> > > @@ -900,35 +889,70 @@ from the machine description file `md'. */\n\n");
> > > printf ("#include \"tm-constrs.h\"\n");
> > > printf ("#include \"ggc.h\"\n");
> > > printf ("#include \"target.h\"\n\n");
> > > +}
> > >
> > > - /* Read the machine description. */
> > > +/* Generate the `gen_...' function from GET_CODE(). */
> > >
> > > - md_rtx_info info;
> > > - while (read_md_rtx (&info))
> > > - switch (GET_CODE (info.def))
> > > - {
> > > - case DEFINE_INSN:
> > > - gen_insn (&info);
> > > - break;
> > > +static void
> > > +gen_md_rtx (md_rtx_info *info)
> > > +{
> > > + switch (GET_CODE (info->def))
> > > + {
> > > + case DEFINE_INSN:
> > > + gen_insn (info);
> > > + break;
> > >
> > > - case DEFINE_EXPAND:
> > > - printf ("/* %s:%d */\n", info.loc.filename, info.loc.lineno);
> > > - gen_expand (&info);
> > > - break;
> > > + case DEFINE_EXPAND:
> > > + printf ("/* %s:%d */\n", info->loc.filename, info->loc.lineno);
> > > + gen_expand (info);
> > > + break;
> > >
> > > - case DEFINE_SPLIT:
> > > - printf ("/* %s:%d */\n", info.loc.filename, info.loc.lineno);
> > > - gen_split (&info);
> > > - break;
> > > + case DEFINE_SPLIT:
> > > + printf ("/* %s:%d */\n", info->loc.filename, info->loc.lineno);
> > > + gen_split (info);
> > > + break;
> > >
> > > - case DEFINE_PEEPHOLE2:
> > > - printf ("/* %s:%d */\n", info.loc.filename, info.loc.lineno);
> > > - gen_split (&info);
> > > - break;
> > > + case DEFINE_PEEPHOLE2:
> > > + printf ("/* %s:%d */\n", info->loc.filename, info->loc.lineno);
> > > + gen_split (info);
> > > + break;
> > >
> > > - default:
> > > - break;
> > > - }
> > > + default:
> > > + break;
> > > + }
> > > +}
> > > +
> > > +int
> > > +main (int argc, const char **argv)
> > > +{
> > > + progname = "genemit";
> > > +
> > > + if (!init_rtx_reader_args (argc, argv))
> > > + return (FATAL_EXIT_CODE);
> > > +
> > > +#define DEF_INTERNAL_OPTAB_FN(NAME, FLAGS, OPTAB, TYPE) \
> > > + nofail_optabs[OPTAB##_optab] = true;
> > > +#include "internal-fn.def"
> > > +
> > > + /* Assign sequential codes to all entries in the machine description
> > > + in parallel with the tables in insn-output.c. */
> > > +
> > > + int read_count = 0;
> > > +
> > > + /* Read the machine description. */
> > > +
> > > + md_rtx_info info;
> > > + while (read_md_rtx (&info))
> > > + {
> > > + if ((read_count++ % 10000) == 0)
> > > + {
> > > + printf ("/* Split file into separate compilation units "
> > > + "for parallel compilation %d */\n\n", read_count);
> > > + printf_include();
> > > + }
> > > +
> > > + gen_md_rtx (&info);
> > > + }
> > >
> > > /* Write out the routines to add CLOBBERs to a pattern and say whether 
> > > they
> > > clobber a hard reg. */
> > > --
> > > 2.24.3 (Apple Git-128)

Reply via email to