diff options
author | DJ Delorie <dj@redhat.com> | 2000-11-16 10:19:01 -0500 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2000-11-16 10:19:01 -0500 |
commit | 3ab9a08fcc16beba8db6c20da2c5700fd3677a22 (patch) | |
tree | e6c08d191a7b37ea863449df2f5678ff741b0852 /gcc/rtl.c | |
parent | cdb7167327858bd38a88f22e5f986197ed0f2343 (diff) | |
download | gcc-3ab9a08fcc16beba8db6c20da2c5700fd3677a22.zip gcc-3ab9a08fcc16beba8db6c20da2c5700fd3677a22.tar.gz gcc-3ab9a08fcc16beba8db6c20da2c5700fd3677a22.tar.bz2 |
rtl.c (read_rtx): Provide suitable names for unnamed define_insn and define_insn_and_split...
* rtl.c (read_rtx): Provide suitable names for unnamed
define_insn and define_insn_and_split patterns, based on file
and line numbers.
From-SVN: r37499
Diffstat (limited to 'gcc/rtl.c')
-rw-r--r-- | gcc/rtl.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -1038,6 +1038,7 @@ read_rtx (infile) { int saw_paren = 0; register char *stringbuf; + int saw_anything = 0; c = read_skip_spaces (infile); if (c == '(') @@ -1070,6 +1071,28 @@ read_rtx (infile) break; obstack_1grow (&rtl_obstack, c); + saw_anything = 1; + } + + /* For insn patterns, we want to provide a default name + based on the file and line, like "*foo.md:12", if the + given name is blank. These are only for define_insn and + define_insn_and_split, to aid debugging. */ + if (!saw_anything + && i == 0 + && (GET_CODE (return_rtx) == DEFINE_INSN + || GET_CODE (return_rtx) == DEFINE_INSN_AND_SPLIT)) + { + char line_name[20]; + const char *fn = (read_rtx_filename ? read_rtx_filename : "rtx"); + char *slash; + for (slash = fn; *slash; slash ++) + if (*slash == '/' || *slash == '\\' || *slash == ':') + fn = slash + 1; + obstack_1grow (&rtl_obstack, '*'); + obstack_grow (&rtl_obstack, fn, strlen (fn)); + sprintf (line_name, ":%d", read_rtx_lineno); + obstack_grow (&rtl_obstack, line_name, strlen (line_name)); } obstack_1grow (&rtl_obstack, 0); |