On Thu, 2013-07-18 at 07:56 -0700, Andrew Pinski wrote:
> On Thu, Jul 18, 2013 at 4:33 AM, David Malcolm <dmalc...@redhat.com> wrote:
> > On Thu, 2013-07-18 at 00:08 -0700, Andrew Pinski wrote:
> >> On Wed, Jul 17, 2013 at 6:18 PM, David Malcolm <dmalc...@redhat.com> wrote:
> >> > gcc/
> >> >
> >> >         Explicitly number the instances of passes within passes.def.
> >> >
> >> >         This is needed by a subsequent patch so that we can create
> >> >         fields within the pipeline class for each pass instance (to help
> >> >         locate pass instances when debugging).
> >> >
> >> >         * passes.c (NEXT_PASS_NUM): Define.
> >> >
> >> >         * passes.def (NEXT_PASS, NEXT_PASS_NUM): Replace uses of
> >> >         NEXT_PASS on passes that have multiple instances with uses of
> >> >         NEXT_PASS_NUM.
> >>
> >>
> >> I don't like this patch at all.  Mainly because the numbers can get
> >> out of sync very quickly especially when it comes to internal versions
> >> of the compiler where it is normal to reorder passes and add another
> >> pass a few times.
> >
> > How would you feel about a "passes.def.in" and having that be what's in
> > svn, with some kind of preprocessing step that builds a passes.def from
> > it?  That way we get the flexibility of before, but gain the ability I'm
> > looking for to make a class holding the passes, and have easy access in
> > gdb to the various instances of the class (rather than just the last
> > instance of each that was created).
> 
> That would work and would be ok with me.
> 
> > If so, what tools are blessed for usage at build time? (I'd prefer
> > Python, but I don't think that's a build-time dep yet).
> 
> So far awk and shell and C programming are the blessed processing
> tools.  Awk in this case seems like the best for this though.  I don't
> think Python is a good solution only because it does add another build
> dependency that is not there already though I would not complain about
> it if it gets added.

FWIW I implemented this approach, and the result can be seen in:
  http://gcc.gnu.org/ml/gcc-patches/2013-07/msg01263.html
in the patch series I sent for review on Friday.

Thanks
Dave

Reply via email to