Descriptioncommit 76c5256b18ce0357dc0fc38ce143b8979318b823
Author: Cary Coutant <ccoutant@google.com>
Date: Thu Apr 28 10:48:56 2011 -0700
Track discriminators by instruction instead of by basic block
Rework discriminator assignment so that it attaches the discriminator
to the source location of each instruction instead of to the basic
block itself.
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.
M gcc/basic-block.h
M gcc/cfghooks.c
M gcc/cfglayout.c
M gcc/final.c
M gcc/gimple-pretty-print.c
M gcc/input.c
M gcc/input.h
M gcc/print-rtl.c
M gcc/rtl.h
M gcc/tree-cfg.c
M gcc/tree-pretty-print.c
Tested:
Bootstrapped on x86_64.
ChangeLog:
2011-04-28 Cary Coutant <ccoutant@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.
Patch Set 1 #
MessagesTotal messages: 4
|