DWARF: turn dw_loc_descr_node field into hash map for frame offset check
commit553c9f2a6c58a2602a5f607591bded4ce6e314c2
authorpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Apr 2016 15:03:40 +0000 (27 15:03 +0000)
committerpmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 27 Apr 2016 15:03:40 +0000 (27 15:03 +0000)
tree571e8338b1d1265dfd5d55f4b9b02250c6713fe8
parent1c20e263c2862a7dbab80ee18b31ce471c56d49c
DWARF: turn dw_loc_descr_node field into hash map for frame offset check

As discussed on
<https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01708.html>, this change
removes a field in the dw_loc_descr_node structure so we can get rid of
the CHECKING_P macro usage.

This field was used to perform consistency checks for frame offset in
DWARF procedures. As a replacement, this commit turns the "visited
nodes" set in resolve_args_picking_1 into a map that remembers for each
dw_loc_descr_node the frame offset associated to it, so that the
consistency check is still operational.

Boostrapped and regtested on x86_64-linux.

2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>

* dwarf2out.h (struct dw_loc_descr_node): Remove the
dw_loc_frame_offset field.
* dwarf2out.c (new_loc_descr): Likewise.
(resolve_args_picking_1): Turn the VISITED hash set into a
FRAME_OFFSET hash map. Use it to associate a frame offset to
visited nodes. Remove uses of the CHECKING_P macro.
(resolve_args_picking): Update call to resolve_args_picking_1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235515 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/dwarf2out.c
gcc/dwarf2out.h