Mercurial > hg > CbC > CbC_gcc
diff gcc/gengenrtl.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/gengenrtl.c Tue May 25 18:58:51 2010 +0900 +++ b/gcc/gengenrtl.c Tue Mar 22 17:18:12 2011 +0900 @@ -1,5 +1,5 @@ /* Generate code to allocate RTL structures. - Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2007 + Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2007, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -41,19 +41,6 @@ #define NUM_RTX_CODE ARRAY_SIZE(defs) static const char *formats[NUM_RTX_CODE]; - -static const char *type_from_format (int); -static const char *accessor_from_format (int); -static int special_format (const char *); -static int special_rtx (int); -static int excluded_rtx (int); -static void find_formats (void); -static void gendecl (const char *); -static void genmacro (int); -static void gendef (const char *); -static void genlegend (void); -static void genheader (void); -static void gencode (void); /* Decode a format letter into a C type string. */ @@ -178,44 +165,6 @@ } } -/* Write the declarations for the routine to allocate RTL with FORMAT. */ - -static void -gendecl (const char *format) -{ - const char *p; - int i, pos; - - printf ("extern rtx gen_rtx_fmt_%s_stat\t (RTX_CODE, ", format); - printf ("enum machine_mode mode"); - - /* Write each parameter that is needed and start a new line when the line - would overflow. */ - for (p = format, i = 0, pos = 75; *p != 0; p++) - if (*p != '0') - { - int ourlen = strlen (type_from_format (*p)) + 6 + (i > 9); - - printf (","); - if (pos + ourlen > 76) - printf ("\n\t\t\t\t "), pos = 39; - - printf (" %sarg%d", type_from_format (*p), i++); - pos += ourlen; - } - printf (" MEM_STAT_DECL"); - - printf (");\n"); - printf ("#define gen_rtx_fmt_%s(c, m", format); - for (p = format, i = 0; *p != 0; p++) - if (*p != '0') - printf (", p%i",i++); - printf (")\\\n gen_rtx_fmt_%s_stat (c, m", format); - for (p = format, i = 0; *p != 0; p++) - if (*p != '0') - printf (", p%i",i++); - printf (" MEM_STAT_INFO)\n\n"); -} /* Generate macros to generate RTL of code IDX using the functions we write. */ @@ -262,7 +211,7 @@ /* Start by writing the definition of the function name and the types of the arguments. */ - printf ("rtx\ngen_rtx_fmt_%s_stat (RTX_CODE code, enum machine_mode mode", format); + printf ("static inline rtx\ngen_rtx_fmt_%s_stat (RTX_CODE code, enum machine_mode mode", format); for (p = format, i = 0; *p != 0; p++) if (*p != '0') printf (",\n\t%sarg%d", type_from_format (*p), i++); @@ -284,6 +233,15 @@ printf (" X0EXP (rt, %d) = NULL_RTX;\n", i); puts ("\n return rt;\n}\n"); + printf ("#define gen_rtx_fmt_%s(c, m", format); + for (p = format, i = 0; *p != 0; p++) + if (*p != '0') + printf (", p%i",i++); + printf (")\\\n gen_rtx_fmt_%s_stat (c, m", format); + for (p = format, i = 0; *p != 0; p++) + if (*p != '0') + printf (", p%i",i++); + printf (" MEM_STAT_INFO)\n\n"); } /* Generate the documentation header for files we write. */ @@ -307,7 +265,7 @@ puts ("#include \"statistics.h\"\n"); for (fmt = formats; *fmt; ++fmt) - gendecl (*fmt); + gendef (*fmt); putchar ('\n'); @@ -318,39 +276,15 @@ puts ("\n#endif /* GCC_GENRTL_H */"); } -/* Generate the text of the code file we write, genrtl.c. */ - -static void -gencode (void) -{ - const char **fmt; - - puts ("#include \"config.h\""); - puts ("#include \"system.h\""); - puts ("#include \"coretypes.h\""); - puts ("#include \"tm.h\""); - puts ("#include \"obstack.h\""); - puts ("#include \"rtl.h\""); - puts ("#include \"ggc.h\"\n"); - - for (fmt = formats; *fmt != 0; fmt++) - gendef (*fmt); -} - -/* This is the main program. We accept only one argument, "-h", which - says we are writing the genrtl.h file. Otherwise we are writing the - genrtl.c file. */ +/* This is the main program. */ int -main (int argc, char **argv) +main (void) { find_formats (); genlegend (); - if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 'h') - genheader (); - else - gencode (); + genheader (); if (ferror (stdout) || fflush (stdout) || fclose (stdout)) return FATAL_EXIT_CODE;