On 02/13/2018 06:43 AM, Alexandre Oliva wrote: > On Feb 12, 2018, Alexandre Oliva <aol...@redhat.com> wrote: > >> This patch supersedes the previous one. Testing underway... Ok if it >> succeeds? > > I failed to update the patch I posted after making a correct to symbol > poisoning, that had caused builds to fail right away, sorry. Thanks, > Rainer, for catching the error. > > Here's the patch that actually passed regstrap on native i686 and > x86_64-linux-gnu, and fixed numerous regressions on cross builds. > Ok to install? > > > [LVU, IEPM] several new controlling options > > Given that the minimum insn length is not generally reliable to tell > whether an insn actually advances PC, this patch disables the locview > list optimizations that can only be done when can tell it. > > The preexisting logic is retained, however, and can be enabled with > the newly-introduced -ginternal-reset-location-view. This is now > enabled by default only if the target defines a hook that may override > or defer to the preexisting logic. The negated command line option > can then be used should errors still be encountered. > > > We also introduce options to control whether to assume .loc and view > support in the assembler, and to control whether to output inline > entry points (and views) from markers. > > > This patch also fixes a number of documentation formatting errors, > namely using @item rather than @itemx for all but the first of several > options before a description. > > for gcc/ChangeLog > > * common.opt (gas-loc-support, gas-locview-support): New. > (ginline-points, ginternal-reset-location-views): New. > * doc/invoke.texi: Document them. Use @itemx where intended. > (gvariable-location-views): Adjust. > * target.def (reset_location_view): New. > * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. > (TARGET_RESET_LOCATION_VIEW): New. > * doc/tm.texi: Rebuilt. > * dwarf2out.c (dwarf2out_default_as_loc_support): New. > (dwarf2out_default_as_locview_support): New. > (output_asm_line_debug_info): Use option variables. > (dwarf2out_maybe_output_loclist_view_pair): Likewise. > (output_loc_list): Likewise. > (add_high_low_attributes): Check option variables. > Don't output entry view attribute in strict mode. > (gen_inlined_subroutine_die): Check option variables. > (dwarf2out_inline_entry): Likewise. > (init_sections_and_labels): Likewise. > (dwarf2out_early_finish): Likewise. > (maybe_reset_location_view): New, from... > (dwarf2out_var_location): ... here. Call it. > * debug.h (dwarf2out_default_as_loc_support): Declare. > (dwarf2out_default_as_locview_support): Declare. > * hooks.c (hook_int_rtx_insn_0): New. > * hooks.h (hook_int_rtx_insn_0): Declare. > * toplev.c (process_options): Take -gas-loc-support and > -gas-locview-support from dwarf2out. Enable > -gvariable-location-views by default only with locview > assembler support. Enable -ginternal-reset-location-views by > default only if the target defines the corresponding hook. > Enable -ginline-points by default if location views are > enabled; force it disabled if statement frontiers are > disabled. > * tree-inline.c (expand_call_inline): Check option variables. > * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. OK. I probably would have gone with the initial version or something closer to that -- this seems to have expanded in scope a bit. But it's not enough to object to since the scope creep is really just giving options to turn on/off the various bits for testing purposes.
I plan to commit it momentarily given the number of targets that are failing in my tester due to this issue. jeff