INSN_UIDs again (was Re: [PATCH 15/16] RTL frontend (rtl1), on top of dump reader)

David Malcolm dmalcolm@redhat.com
Thu Oct 20 14:20:00 GMT 2016


On Thu, 2016-10-20 at 16:11 +0200, Bernd Schmidt wrote:
> On 10/20/2016 03:55 PM, David Malcolm wrote:
> > Currently the jump insn in question looks like this:
> > 
> >       (cjump_insn (set (pc)
> >                     (label_ref 20))
> >                  (nil))
> > 
> > With explicit INSN_UIDs it would look like this:
> > 
> >       (cjump_insn 13 (set (pc)
> >                     (label_ref 20))
> >                  (nil))
> 
> Yeah, that wouldn't be so bad. It would also make it easier to make a
> -fdump-rtl-compact flag that changes the debugging dumps to use the 
> compact format (we'd still need slightly different output for
> pseudos).
> 
> Still, I'd like to again encourage a mechanism where we can emit 
> before/after dumps and have the compiler automatically compare them
> when 
> running the test. That wouldn't run into this particular issue.

What kind of comparison would it do?

I'd be wary about a purely textual comparison (e.g. "diff") - it would
likely lead to fragile test cases, where minor changes to the output
format mean that all the test cases need regenerating (mea culpa, I
made this mistake in gcc-python-plugin's testsuite).

So presumably the comparison would involve loading the "expected-after"
version of the function, and doing some kind of function-level
comparison on the parsed result.  This sounds plausible, but would
likely be a significant expansion of the scope of the project, since
the existing RTL code is full of singleton global state (e.g. "crtl"
aka x_rtl).

So I'd prefer to leave this idea as a followup (and to implement the
"explicit INSN_UIDs for everything" idea).



More information about the Gcc-patches mailing list