On Thu, Apr 28, 2011 at 14:04, Cary Coutant <ccout...@google.com> wrote:

>    Rework discriminator assignment so that it attaches the discriminator
>    to the source location of each instruction instead of to the basic
>    block itself.

Any idea on how this affects memory consumption?

>    This patch was submitted for review in Nov. 2009:
>    http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00563.html
>
>    It's not ready for trunk yet because it does not yet preserve
>    the discriminators across LTO, so I'd like to put it in
>    google/main until I have a chance to get that part working.

But, IIRC this does not introduce LTO regressions, right?

> 2011-04-28  Cary Coutant  <ccout...@google.com>
>
>        * basic-block.h (struct basic_block_def): Remove discriminator field.
>        * cfghooks.c (split_block): Remove discriminator field.
>        * cfglayout.c (insn_discriminator): New function.
>        * final.c (discriminator): Remove.
>        (override_discriminator): New file-scope variable.
>        (final_start_function): Remove tracking of discriminator by basic
>        block.
>        (final_scan_insn): Track discriminator by instruction.
>        (notice_source_line): Check for discriminator override. Get
>        discriminator from instruction.
>        * gimple-pretty-print.c (dump_gimple_stmt): Print discriminator.
>        (dump_bb_header): Don't print discriminator.
>        * input.c: Include vecprim.h.
>        (discriminator_location_locations): New variable.
>        (discriminator_location_discriminators): New variable.
>        (min_discriminator_location): New variable.
>        (expand_location): Use map_discriminator_location.
>        (location_with_discriminator): New function.
>        (has_discriminator): New function.
>        (map_discriminator_location): New function.
>        (get_discriminator_from_locus): New function.
>        * input.h (location_with_discriminator): New function.
>        (has_discriminator): New function.
>        (map_discriminator_location): New function.
>        (get_discriminator_from_locus): New function.
>        * print-rtl.c (print_rtx): Print discriminator.
>        * rtl.h (insn_discriminator): New function.
>        * tree-cfg.c: Include input.h.
>        (assign_discriminator): Assign discriminators to instructions rather
>        than to the basic block.
>        * tree-pretty-print.c (dump_location): Print discriminator.

OK if testing passes.


Diego.

Reply via email to