Commit 3ab9a08f by DJ Delorie Committed by DJ Delorie

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
parent cdb71673
2000-11-16 DJ Delorie <dj@redhat.com>
* rtl.c (read_rtx): Provide suitable names for unnamed
define_insn and define_insn_and_split patterns, based on file
and line numbers.
2000-11-15 Neil Booth <neilb@earthling.net>
* cpplib.c (start_directive, end_directive): New functions.
......
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment