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.