This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Introduce instance discriminators


On Tue, Jul 31, 2018 at 12:35 AM Alexandre Oliva <oliva@gnu.org> wrote:
>
> On Jul 24, 2018, Alexandre Oliva <oliva@gnu.org> wrote:
>
> > Ok to install the first two patches?  (the third is just for reference)
>
> Ping?
>
> https://gcc.gnu.org/ml/gcc-patches/2018-07/msg01419.html

OK for the middle-end parts, the Ada parts need separate approval
(maybe CC a maintainer).

Thanks,
Richard.

>
> > Introduce instance discriminators
>
> > From: Alexandre Oliva <oliva@adacore.com>
>
> > With -gnateS, the Ada compiler sets itself up to output discriminators
> > for different instantiations of generics, but the middle and back ends
> > have lacked support for that.  This patch introduces the missing bits,
> > translating the GNAT-internal representation of the per-file instance
> > map to an instance_table that maps decls to instance discriminators.
>
>
> > From: Alexandre Oliva  <oliva@adacore.com>, Olivier Hainque  <hainque@adacore.com>
> > for  gcc/ChangeLog
>
> >       * debug.h (decl_to_instance_map_t): New type.
> >       (decl_to_instance_map): Declare.
> >       (maybe_create_decl_to_instance_map): New inline function.
> >       * final.c (bb_discriminator, last_bb_discriminator): New statics,
> >       to track basic block discriminators.
> >       (final_start_function_1): Initialize them.
> >       (final_scan_insn_1): On NOTE_INSN_BASIC_BLOCK, track
> >       bb_discriminator.
> >       (decl_to_instance_map): New variable.
> >       (map_decl_to_instance, maybe_set_discriminator): New functions.
> >       (notice_source_line): Set discriminator.
>
> > for  gcc/ada
>
> >       * trans.c: Include debug.h.
> >       (file_map): New static variable.
> >       (gigi): Set it.  Create decl_to_instance_map when needed.
> >       (Subprogram_Body_to_gnu): Pass gnu_subprog_decl to...
> >       (Sloc_to_locus): ... this.  Add decl parm, map it to instance.
> >       * gigi.h (Sloc_to_locus): Adjust declaration.
>
> > for  gcc/testsuite/ChangeLog
>
> >       * gnat.dg/dinst.adb: New.
> >       * gnat.dg/dinst_pkg.ads, gnat.dg/dinst_pkg.adb: New.
>
> [...]
>
> > Save discriminator info for LTO
>
> > From: Alexandre Oliva <oliva@adacore.com>
>
> > for  gcc/ChangeLog
>
> >       * gimple-streamer-in.c (input_bb): Restore BB discriminator.
> >       * gimple-streamer-out.c (output_bb): Save it.
> >       * lto-streamer-in.c (input_struct_function_base): Restore
> >       instance discriminator if available.  Create map on demand.
> >       * lto-streamer-out.c (output_struct_function_base): Save it if
> >       available.
> >       * final.c (decl_to_instance_map): Document LTO strategy.
>
>
> --
> Alexandre Oliva, freedom fighter   https://FSFLA.org/blogs/lxo
> Be the change, be Free!         FSF Latin America board member
> GNU Toolchain Engineer                Free Software Evangelist


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]