public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 8.0.1-0.13
@ 2026-06-29 12:27 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:27 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 497de73bd75ae2e2ad3d880e733f9dee0c8cf09c
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2018-02-10T19:44:47+01:00
Stats  : +2679/-0 in 1 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/497de73bd75ae2e2ad3d880e733f9dee0c8cf09c?branch=rhel-f41-base

Log:
8.0.1-0.13

---
diff --git a/gcc8-lvu-revert.patch b/gcc8-lvu-revert.patch
new file mode 100644
index 0000000..c47ca1c
--- /dev/null
+++ b/gcc8-lvu-revert.patch
@@ -0,0 +1,2679 @@
+Revert:
+
+2018-02-09  Alexandre Oliva <aoliva@redhat.com>
+
+	* cfgexpand.c (expand_gimple_basic_block): Handle inline entry
+	markers.
+	* dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook.
+	(BLOCK_INLINE_ENTRY_LABEL): New.
+	(dwarf2out_var_location): Disregard inline entry markers.
+	(inline_entry_data): New struct.
+	(inline_entry_data_hasher): New hashtable type.
+	(inline_entry_data_hasher::hash): New.
+	(inline_entry_data_hasher::equal): New.
+	(inline_entry_data_table): New variable.
+	(add_high_low_attributes): Add DW_AT_entry_pc and
+	DW_AT_GNU_entry_view attributes if a pending entry is found
+	in inline_entry_data_table.  Add old entry_pc attribute only
+	if debug nonbinding markers are disabled.
+	(gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding
+	markers are enabled.
+	(block_within_block_p, dwarf2out_inline_entry): New.
+	(dwarf2out_finish): Check that no entries remained in
+	inline_entry_data_table.
+	* final.c (reemit_insn_block_notes): Handle inline entry notes.
+	(final_scan_insn, notice_source_line): Likewise.
+	(rest_of_clean_state): Skip inline entry markers.
+	* gimple-pretty-print.c (dump_gimple_debug): Handle inline entry
+	markers.
+	* gimple.c (gimple_build_debug_inline_entry): New.
+	* gimple.h (enum gimple_debug_subcode): Add
+	GIMPLE_DEBUG_INLINE_ENTRY.
+	(gimple_build_debug_inline_entry): Declare.
+	(gimple_debug_inline_entry_p): New.
+	(gimple_debug_nonbind_marker_p): Adjust.
+	* insn-notes.def (INLINE_ENTRY): New.
+	* print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
+	inline entry marker notes.
+	(print_insn): Likewise.
+	* rtl.h	(NOTE_MARKER_P): Add INLINE_ENTRY support.
+	(INSN_DEBUG_MARKER_KIND): Likewise.
+	(GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New.
+	* tree-inline.c	(expand_call_inline): Build and insert
+	debug_inline_entry stmt.
+	* tree-ssa-live.c (remove_unused_scope_block_p): Preserve
+	inline entry blocks early, if nonbind markers are enabled.
+	(dump_scope_block): Dump fragment info.
+	* var-tracking.c (reemit_marker_as_note): Handle inline entry note.
+	* doc/gimple.texi (gimple_debug_inline_entry_p): New.
+	(gimple_build_debug_inline_entry): New.
+	* doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers):
+	Enable/disable inline entry points too.
+	* doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New.
+	(DEBUG_INSN): Describe inline entry markers.
+
+	* common.opt (gvariable-location-views): New.
+	(gvariable-location-views=incompat5): New.
+	* config.in: Rebuilt.
+	* configure: Rebuilt.
+	* configure.ac: Test assembler for view support.
+	* dwarf2asm.c (dw2_asm_output_symname_uleb128): New.
+	* dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare.
+	* dwarf2out.c (var_loc_view): New typedef.
+	(struct dw_loc_list_struct): Add vl_symbol, vbegin, vend.
+	(dwarf2out_locviews_in_attribute): New.
+	(dwarf2out_locviews_in_loclist): New.
+	(dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists.
+	(enum dw_line_info_opcode): Add LI_adv_address.
+	(struct dw_line_info_table): Add view.
+	(RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros.
+	(DWARF2_ASM_VIEW_DEBUG_INFO): Define default.
+	(zero_view_p): New variable.
+	(ZERO_VIEW_P): New macro.
+	(output_asm_line_debug_info): New.
+	(struct var_loc_node): Add view.
+	(add_AT_view_list, AT_loc_list): New.
+	(add_var_loc_to_decl): Add view param.  Test it against last.
+	(new_loc_list): Add view params.  Record them.
+	(AT_loc_list_ptr): Handle loc and view lists.
+	(view_list_to_loc_list_val_node): New.
+	(print_dw_val): Handle dw_val_class_view_list.
+	(size_of_die): Likewise.
+	(value_format): Likewise.
+	(loc_list_has_views): New.
+	(gen_llsym): Set vl_symbol too.
+	(maybe_gen_llsym, skip_loc_list_entry): New.
+	(dwarf2out_maybe_output_loclist_view_pair): New.
+	(output_loc_list): Output view list or entries too.
+	(output_view_list_offset): New.
+	(output_die): Handle dw_val_class_view_list.
+	(output_dwarf_version): New.
+	(output_compilation_unit_header): Use it.
+	(output_skeleton_debug_sections): Likewise.
+	(output_rnglists, output_line_info): Likewise.
+	(output_pubnames, output_aranges): Update version comments.
+	(output_one_line_info_table): Output view numbers in asm comments.
+	(dw_loc_list): Determine current endview, pass it to new_loc_list.
+	Call maybe_gen_llsym.
+	(loc_list_from_tree_1): Adjust.
+	(add_AT_location_description): Create view list attribute if
+	needed, check it's absent otherwise.
+	(convert_cfa_to_fb_loc_list): Adjust.
+	(maybe_emit_file): Call output_asm_line_debug_info for test.
+	(dwarf2out_var_location): Reset views as needed.  Precompute
+	add_var_loc_to_decl args.  Call get_attr_min_length only if we have the
+	attribute.  Set view.
+	(new_line_info_table): Reset next view.
+	(set_cur_line_info_table): Call output_asm_line_debug_info for test.
+	(dwarf2out_source_line): Likewise.  Output view resets and labels to
+	the assembler, or select appropriate line info opcodes.
+	(prune_unused_types_walk_attribs): Handle dw_val_class_view_list.
+	(optimize_string_length): Catch it.  Adjust.
+	(resolve_addr): Copy vl_symbol along with ll_symbol.  Handle
+	dw_val_class_view_list, and remove it if no longer needed.
+	(hash_loc_list): Hash view numbers.
+	(loc_list_hasher::equal): Compare them.
+	(optimize_location_lists): Check whether a view list symbol is
+	needed, and whether the locview attribute is present, and
+	whether they match.  Remove the locview attribute if no longer
+	needed.
+	(index_location_lists): Call skip_loc_list_entry for test.
+	(dwarf2out_finish): Call output_asm_line_debug_info for test.
+	Use output_dwarf_version.
+	* dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list.
+	(struct dw_val_node): Add val_view_list.
+	* final.c (SEEN_NEXT_VIEW): New.
+	(set_next_view_needed): New.
+	(clear_next_view_needed): New.
+	(maybe_output_next_view): New.
+	(final_start_function): Rename to...
+	(final_start_function_1): ... this.  Take pointer to FIRST,
+	add SEEN parameter.  Emit param bindings in the initial view.
+	(final_start_function): Reintroduce SEEN-less interface.
+	(final): Rename to...
+	(final_1): ... this.  Take SEEN parameter.  Output final pending
+	next view at the end.
+	(final): Reintroduce seen-less interface.
+	(final_scan_insn): Output pending next view before switching
+	sections or ending a block.  Mark the next view as needed when
+	outputting variable locations.  Notify debug backend of section
+	changes, and of location view changes.
+	(rest_of_handle_final): Adjust.
+	* toplev.c (process_options): Autodetect value for debug variable
+	location views option.  Warn on incompat5 without -gdwarf-5.
+	* doc/invoke.texi (gvariable-location-views): New.
+	(gvariable-location-views=incompat5): New.
+	(gno-variable-location-views): New.
+include/
+	* dwarf2.def (DW_AT_GNU_entry_view): New.
+
+	* dwarf2.def (DW_AT_GNU_locviews): New.
+	* dwarf2.h (enum dwarf_location_list_entry_type): Add
+	DW_LLE_GNU_view_pair.
+	(DW_LLE_view_pair): Define.
+
+--- include/dwarf2.def	(revision 257511)
++++ include/dwarf2.def	(revision 257509)
+@@ -443,8 +443,6 @@ DW_AT (DW_AT_GNU_pubtypes, 0x2135)
+ /* Attribute for discriminator.
+    See http://gcc.gnu.org/wiki/Discriminator  */
+ DW_AT (DW_AT_GNU_discriminator, 0x2136)
+-DW_AT (DW_AT_GNU_locviews, 0x2137)
+-DW_AT (DW_AT_GNU_entry_view, 0x2138)
+ /* VMS extensions.  */
+ DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
+ /* GNAT extensions.  */
+--- include/dwarf2.h	(revision 257511)
++++ include/dwarf2.h	(revision 257509)
+@@ -298,14 +298,6 @@ enum dwarf_location_list_entry_type
+     DW_LLE_start_end = 0x07,
+     DW_LLE_start_length = 0x08,
+ 
+-    /* <http://lists.dwarfstd.org/private.cgi/dwarf-discuss-dwarfstd.org/2017-April/004347.html>
+-       has the proposal for now; only available to list members.
+-
+-       A (possibly updated) copy of the proposal is available at
+-       <http://people.redhat.com/aoliva/papers/sfn/dwarf6-sfn-lvu.txt>.  */
+-    DW_LLE_GNU_view_pair = 0x09,
+-#define DW_LLE_view_pair DW_LLE_GNU_view_pair
+-
+     /* Former extension for Fission.
+        See http://gcc.gnu.org/wiki/DebugFission.  */
+     DW_LLE_GNU_end_of_list_entry = 0x00,
+--- gcc/doc/gimple.texi	(revision 257511)
++++ gcc/doc/gimple.texi	(revision 257509)
+@@ -836,11 +836,6 @@ Return true if g is a @code{GIMPLE_DEBUG
+ a source statement.
+ @end deftypefn
+ 
+-@deftypefn {GIMPLE function} gimple_debug_inline_entry_p (gimple g)
+-Return true if g is a @code{GIMPLE_DEBUG} that marks the entry
+-point of an inlined function.
+-@end deftypefn
+-
+ @deftypefn {GIMPLE function} gimple_debug_nonbind_marker_p (gimple g)
+ Return true if g is a @code{GIMPLE_DEBUG} that marks a program location,
+ without any variable binding.
+@@ -1546,7 +1541,6 @@ Set the conditional @code{COND_STMT} to
+ @cindex @code{GIMPLE_DEBUG}
+ @cindex @code{GIMPLE_DEBUG_BIND}
+ @cindex @code{GIMPLE_DEBUG_BEGIN_STMT}
+-@cindex @code{GIMPLE_DEBUG_INLINE_ENTRY}
+ 
+ @deftypefn {GIMPLE function} gdebug *gimple_build_debug_bind (tree var, @
+ tree value, gimple stmt)
+@@ -1632,18 +1626,6 @@ observable, and that none of the side ef
+ statements are.
+ @end deftypefn
+ 
+-@deftypefn {GIMPLE function} gimple gimple_build_debug_inline_entry (tree block, location_t location)
+-Build a @code{GIMPLE_DEBUG} statement with
+-@code{GIMPLE_DEBUG_INLINE_ENTRY} @code{subcode}.  The effect of this
+-statement is to tell debug information generation machinery that a
+-function call at @code{location} underwent inline substitution, that
+-@code{block} is the enclosing lexical block created for the
+-substitution, and that at the point of the program in which the stmt is
+-inserted, all parameters for the inlined function are bound to the
+-respective arguments, and none of the side effects of its stmts are
+-observable.
+-@end deftypefn
+-
+ @node @code{GIMPLE_EH_FILTER}
+ @subsection @code{GIMPLE_EH_FILTER}
+ @cindex @code{GIMPLE_EH_FILTER}
+--- gcc/doc/invoke.texi	(revision 257511)
++++ gcc/doc/invoke.texi	(revision 257509)
+@@ -348,7 +348,6 @@ Objective-C and Objective-C++ Dialects}.
+ -gstabs  -gstabs+  -gstrict-dwarf  -gno-strict-dwarf @gol
+ -gcolumn-info  -gno-column-info @gol
+ -gstatement-frontiers  -gno-statement-frontiers @gol
+--gvariable-location-views  -gno-variable-location-views @gol
+ -gvms  -gxcoff  -gxcoff+  -gz@r{[}=@var{type}@r{]} @gol
+ -fdebug-prefix-map=@var{old}=@var{new}  -fdebug-types-section @gol
+ -fno-eliminate-unused-debug-types @gol
+@@ -7256,34 +7255,6 @@ markers in the line number table.  This
+ compiling with optimization (@option{-Os}, @option{-O}, @option{-O2},
+ @dots{}), and outputting DWARF 2 debug information at the normal level.
+ 
+-@item -gvariable-location-views
+-@item -gvariable-location-views=incompat5
+-@item -gno-variable-location-views
+-@opindex gvariable-location-views
+-@opindex gvariable-location-views=incompat5
+-@opindex gno-variable-location-views
+-Augment variable location lists with progressive view numbers implied
+-from the line number table.  This enables debug information consumers to
+-inspect state at certain points of the program, even if no instructions
+-associated with the corresponding source locations are present at that
+-point.  If the assembler lacks support for view numbers in line number
+-tables, this will cause the compiler to emit the line number table,
+-which generally makes them somewhat less compact.  The augmented line
+-number tables and location lists are fully backward-compatible, so they
+-can be consumed by debug information consumers that are not aware of
+-these augmentations, but they won't derive any benefit from them either.
+-This is enabled by default when outputting DWARF 2 debug information at
+-the normal level, as long as @option{-fvar-tracking-assignments} is
+-enabled and @option{-gstrict-dwarf} is not.
+-
+-There is a proposed representation for view numbers that is not backward
+-compatible with the location list format introduced in DWARF 5, that can
+-be enabled with @option{-gvariable-location-views=incompat5}.  This
+-option may be removed in the future, is only provided as a reference
+-implementation of the proposed representation.  Debug information
+-consumers are not expected to support this extended format, and they
+-would be rendered unable to decode location lists using it.
+-
+ @item -gz@r{[}=@var{type}@r{]}
+ @opindex gz
+ Produce compressed debug sections in DWARF format, if that is supported.
+--- gcc/doc/rtl.texi	(revision 257511)
++++ gcc/doc/rtl.texi	(revision 257509)
+@@ -3670,10 +3670,7 @@ Refers to a parameter that was completel
+ @item (debug_marker:@var{mode})
+ Marks a program location.  With @code{VOIDmode}, it stands for the
+ beginning of a statement, a recommended inspection point logically after
+-all prior side effects, and before any subsequent side effects.  With
+-@code{BLKmode}, it indicates an inline entry point: the lexical block
+-encoded in the @code{INSN_LOCATION} is the enclosing block that encloses
+-the inlined function.
++all prior side effects, and before any subsequent side effects.
+ 
+ @end table
+ 
+@@ -3957,13 +3954,6 @@ This note is used to generate @code{is_s
+ debuggign information.  It indicates the beginning of a user
+ statement.
+ 
+-@findex NOTE_INSN_INLINE_ENTRY
+-@item NOTE_INSN_INLINE_ENTRY
+-This note is used to generate @code{entry_pc} for inlined subroutines in
+-debugging information.  It indicates an inspection point at which all
+-arguments for the inlined function have been bound, and before its first
+-statement.
+-
+ @end table
+ 
+ These codes are printed symbolically when they appear in debugging dumps.
+@@ -3981,12 +3971,8 @@ binds a user variable tree to an RTL rep
+ it stands for the value bound to the corresponding
+ @code{DEBUG_EXPR_DECL}.
+ 
+-@code{GIMPLE_DEBUG_BEGIN_STMT} and @code{GIMPLE_DEBUG_INLINE_ENTRY} are
+-expanded to RTL as a @code{DEBUG_INSN} with a @code{DEBUG_MARKER}
+-@code{PATTERN}; the difference is the RTL mode: the former's
+-@code{DEBUG_MARKER} is @code{VOIDmode}, whereas the latter is
+-@code{BLKmode}; information about the inlined function can be taken from
+-the lexical block encoded in the @code{INSN_LOCATION}.  These
++@code{GIMPLE_DEBUG_BEGIN_STMT} is expanded to RTL as a @code{DEBUG_INSN}
++with a @code{VOIDmode} @code{DEBUG_MARKER} @code{PATTERN}.  These
+ @code{DEBUG_INSN}s, that do not carry @code{VAR_LOCATION} information,
+ just @code{DEBUG_MARKER}s, can be detected by testing
+ @code{DEBUG_MARKER_INSN_P}, whereas those that do can be recognized as
+@@ -3997,8 +3983,8 @@ with respect to each other, particularly
+ information is kept in pseudo-instruction form, so that, unlike notes,
+ it gets the same treatment and adjustments that regular instructions
+ would.  It is the variable tracking pass that turns these
+-pseudo-instructions into @code{NOTE_INSN_VAR_LOCATION},
+-@code{NOTE_INSN_BEGIN_STMT} and @code{NOTE_INSN_INLINE_ENTRY} notes,
++pseudo-instructions into @code{NOTE_INSN_VAR_LOCATION} and
++@code{NOTE_INSN_BEGIN_STMT} notes,
+ analyzing control flow, value equivalences and changes to registers and
+ memory referenced in value expressions, propagating the values of debug
+ temporaries and determining expressions that can be used to compute the
+--- gcc/dwarf2asm.c	(revision 257511)
++++ gcc/dwarf2asm.c	(revision 257509)
+@@ -767,35 +767,6 @@ dw2_asm_output_data_sleb128 (HOST_WIDE_I
+   va_end (ap);
+ }
+ 
+-/* Output symbol LAB1 as an unsigned LEB128 quantity.  LAB1 should be
+-   an assembler-computed constant, e.g. a view number, because we
+-   can't have relocations in LEB128 quantities.  */
+-
+-void
+-dw2_asm_output_symname_uleb128 (const char *lab1 ATTRIBUTE_UNUSED,
+-				const char *comment, ...)
+-{
+-  va_list ap;
+-
+-  va_start (ap, comment);
+-
+-#ifdef HAVE_AS_LEB128
+-  fputs ("\t.uleb128 ", asm_out_file);
+-  assemble_name (asm_out_file, lab1);
+-#else
+-  gcc_unreachable ();
+-#endif
+-
+-  if (flag_debug_asm && comment)
+-    {
+-      fprintf (asm_out_file, "\t%s ", ASM_COMMENT_START);
+-      vfprintf (asm_out_file, comment, ap);
+-    }
+-  fputc ('\n', asm_out_file);
+-
+-  va_end (ap);
+-}
+-
+ void
+ dw2_asm_output_delta_uleb128 (const char *lab1 ATTRIBUTE_UNUSED,
+ 			      const char *lab2 ATTRIBUTE_UNUSED,
+--- gcc/dwarf2asm.h	(revision 257511)
++++ gcc/dwarf2asm.h	(revision 257509)
+@@ -70,10 +70,6 @@ extern void dw2_asm_output_data_sleb128
+ 					 const char *, ...)
+      ATTRIBUTE_NULL_PRINTF_2;
+ 
+-extern void dw2_asm_output_symname_uleb128 (const char *,
+-					    const char *, ...)
+-     ATTRIBUTE_NULL_PRINTF_2;
+-
+ extern void dw2_asm_output_delta_uleb128 (const char *, const char *,
+ 					  const char *, ...)
+      ATTRIBUTE_NULL_PRINTF_3;
+--- gcc/configure	(revision 257511)
++++ gcc/configure	(revision 257509)
+@@ -27825,52 +27825,6 @@ $as_echo "$gcc_cv_as_dwarf2_file_buggy"
+ 
+ $as_echo "#define HAVE_AS_DWARF2_DEBUG_LINE 1" >>confdefs.h
+ 
+-
+-    if test $gcc_cv_as_leb128 = yes; then
+-	conftest_s="\
+-	.file 1 \"conftest.s\"
+-	.loc 1 3 0 view .LVU1
+-	$insn
+-	.data
+-	.uleb128 .LVU1
+-	.uleb128 .LVU1
+-"
+-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for dwarf2 debug_view support" >&5
+-$as_echo_n "checking assembler for dwarf2 debug_view support... " >&6; }
+-if test "${gcc_cv_as_dwarf2_debug_view+set}" = set; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-  gcc_cv_as_dwarf2_debug_view=no
+-    if test $in_tree_gas = yes; then
+-    if test $in_tree_gas_is_elf = yes \
+-  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 27 \) \* 1000 + 0`
+-  then gcc_cv_as_dwarf2_debug_view=yes
+-fi
+-  elif test x$gcc_cv_as != x; then
+-    $as_echo "$conftest_s" > conftest.s
+-    if { ac_try='$gcc_cv_as $gcc_cv_as_flags  -o conftest.o conftest.s >&5'
+-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+-  test $ac_status = 0; }; }
+-    then
+-	gcc_cv_as_dwarf2_debug_view=yes
+-    else
+-      echo "configure: failed program was" >&5
+-      cat conftest.s >&5
+-    fi
+-    rm -f conftest.o conftest.s
+-  fi
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_dwarf2_debug_view" >&5
+-$as_echo "$gcc_cv_as_dwarf2_debug_view" >&6; }
+-if test $gcc_cv_as_dwarf2_debug_view = yes; then
+-
+-$as_echo "#define HAVE_AS_DWARF2_DEBUG_VIEW 1" >>confdefs.h
+-
+-fi
+-    fi
+  fi
+ 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for --gdwarf2 option" >&5
+--- gcc/final.c	(revision 257511)
++++ gcc/final.c	(revision 257509)
+@@ -110,7 +110,6 @@ along with GCC; see the file COPYING3.
+ /* Bitflags used by final_scan_insn.  */
+ #define SEEN_NOTE	1
+ #define SEEN_EMITTED	2
+-#define SEEN_NEXT_VIEW	4
+ 
+ /* Last insn processed by final_scan_insn.  */
+ static rtx_insn *debug_insn;
+@@ -1611,7 +1610,6 @@ reemit_insn_block_notes (void)
+ 	    break;
+ 
+ 	  case NOTE_INSN_BEGIN_STMT:
+-	  case NOTE_INSN_INLINE_ENTRY:
+ 	    this_block = LOCATION_BLOCK (NOTE_MARKER_LOCATION (insn));
+ 	    goto set_cur_block_to_this_block;
+ 
+@@ -1694,67 +1692,6 @@ get_some_local_dynamic_name ()
+   return 0;
+ }
+ 
+-/* Arrange for us to emit a source location note before any further
+-   real insns or section changes, by setting the SEEN_NEXT_VIEW bit in
+-   *SEEN, as long as we are keeping track of location views.  The bit
+-   indicates we have referenced the next view at the current PC, so we
+-   have to emit it.  This should be called next to the var_location
+-   debug hook.  */
+-
+-static inline void
+-set_next_view_needed (int *seen)
+-{
+-  if (debug_variable_location_views)
+-    *seen |= SEEN_NEXT_VIEW;
+-}
+-
+-/* Clear the flag in *SEEN indicating we need to emit the next view.
+-   This should be called next to the source_line debug hook.  */
+-
+-static inline void
+-clear_next_view_needed (int *seen)
+-{
+-  *seen &= ~SEEN_NEXT_VIEW;
+-}
+-
+-/* Test whether we have a pending request to emit the next view in
+-   *SEEN, and emit it if needed, clearing the request bit.  */
+-
+-static inline void
+-maybe_output_next_view (int *seen)
+-{
+-  if ((*seen & SEEN_NEXT_VIEW) != 0)
+-    {
+-      clear_next_view_needed (seen);
+-      (*debug_hooks->source_line) (last_linenum, last_columnnum,
+-				   last_filename, last_discriminator,
+-				   false);
+-    }
+-}
+-
+-/* We want to emit param bindings (before the first begin_stmt) in the
+-   initial view, if we are emitting views.  To that end, we may
+-   consume initial notes in the function, processing them in
+-   final_start_function, before signaling the beginning of the
+-   prologue, rather than in final.
+-
+-   We don't test whether the DECLs are PARM_DECLs: the assumption is
+-   that there will be a NOTE_INSN_BEGIN_STMT marker before any
+-   non-parameter NOTE_INSN_VAR_LOCATION.  It's ok if the marker is not
+-   there, we'll just have more variable locations bound in the initial
+-   view, which is consistent with their being bound without any code
+-   that would give them a value.  */
+-
+-static inline bool
+-in_initial_view_p (rtx_insn *insn)
+-{
+-  return (!DECL_IGNORED_P (current_function_decl)
+-	  && debug_variable_location_views
+-	  && insn && GET_CODE (insn) == NOTE
+-	  && (NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION
+-	      || NOTE_KIND (insn) == NOTE_INSN_DELETED));
+-}
+-
+ /* Output assembler code for the start of a function,
+    and initialize some of the variables in this file
+    for the new function.  The label for the function and associated
+@@ -1762,15 +1699,12 @@ in_initial_view_p (rtx_insn *insn)
+ 
+    FIRST is the first insn of the rtl for the function being compiled.
+    FILE is the file to write assembler code to.
+-   SEEN should be initially set to zero, and it may be updated to
+-   indicate we have references to the next location view, that would
+-   require us to emit it at the current PC.
+    OPTIMIZE_P is nonzero if we should eliminate redundant
+      test and compare insns.  */
+ 
+-static void
+-final_start_function_1 (rtx_insn **firstp, FILE *file, int *seen,
+-			int optimize_p ATTRIBUTE_UNUSED)
++void
++final_start_function (rtx_insn *first, FILE *file,
++		      int optimize_p ATTRIBUTE_UNUSED)
+ {
+   block_depth = 0;
+ 
+@@ -1788,21 +1722,8 @@ final_start_function_1 (rtx_insn **first
+   if (flag_sanitize & SANITIZE_ADDRESS)
+     asan_function_start ();
+ 
+-  rtx_insn *first = *firstp;
+-  if (in_initial_view_p (first))
+-    {
+-      do
+-	{
+-	  final_scan_insn (first, file, 0, 0, seen);
+-	  first = NEXT_INSN (first);
+-	}
+-      while (in_initial_view_p (first));
+-      *firstp = first;
+-    }
+-
+   if (!DECL_IGNORED_P (current_function_decl))
+-    debug_hooks->begin_prologue (last_linenum, last_columnnum,
+-				 last_filename);
++    debug_hooks->begin_prologue (last_linenum, last_columnnum, last_filename);
+ 
+   if (!dwarf2_debug_info_emitted_p (current_function_decl))
+     dwarf2out_begin_prologue (0, 0, NULL);
+@@ -1878,17 +1799,6 @@ final_start_function_1 (rtx_insn **first
+     profile_after_prologue (file);
+ }
+ 
+-/* This is an exported final_start_function_1, callable without SEEN.  */
+-
+-void
+-final_start_function (rtx_insn *first, FILE *file,
+-		      int optimize_p ATTRIBUTE_UNUSED)
+-{
+-  int seen = 0;
+-  final_start_function_1 (&first, file, &seen, optimize_p);
+-  gcc_assert (seen == 0);
+-}
+-
+ static void
+ profile_after_prologue (FILE *file ATTRIBUTE_UNUSED)
+ {
+@@ -2018,10 +1928,11 @@ dump_basic_block_info (FILE *file, rtx_i
+ /* Output assembler code for some insns: all or part of a function.
+    For description of args, see `final_start_function', above.  */
+ 
+-static void
+-final_1 (rtx_insn *first, FILE *file, int seen, int optimize_p)
++void
++final (rtx_insn *first, FILE *file, int optimize_p)
+ {
+   rtx_insn *insn, *next;
++  int seen = 0;
+ 
+   /* Used for -dA dump.  */
+   basic_block *start_to_bb = NULL;
+@@ -2088,8 +1999,6 @@ final_1 (rtx_insn *first, FILE *file, in
+       insn = final_scan_insn (insn, file, optimize_p, 0, &seen);
+     }
+ 
+-  maybe_output_next_view (&seen);
+-
+   if (flag_debug_asm)
+     {
+       free (start_to_bb);
+@@ -2106,23 +2015,6 @@ final_1 (rtx_insn *first, FILE *file, in
+ 	delete_insn (insn);
+     }
+ }
+-
+-/* This is an exported final_1, callable without SEEN.  */
+-
+-void
+-final (rtx_insn *first, FILE *file, int optimize_p)
+-{
+-  /* Those that use the internal final_start_function_1/final_1 API
+-     skip initial debug bind notes in final_start_function_1, and pass
+-     the modified FIRST to final_1.  But those that use the public
+-     final_start_function/final APIs, final_start_function can't move
+-     FIRST because it's not passed by reference, so if they were
+-     skipped there, skip them again here.  */
+-  while (in_initial_view_p (first))
+-    first = NEXT_INSN (first);
+-
+-  final_1 (first, file, 0, optimize_p);
+-}
+ \f
+ const char *
+ get_insn_template (int code, rtx insn)
+@@ -2263,8 +2155,6 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 	  break;
+ 
+ 	case NOTE_INSN_SWITCH_TEXT_SECTIONS:
+-	  maybe_output_next_view (seen);
+-
+ 	  in_cold_section_p = !in_cold_section_p;
+ 
+ 	  if (in_cold_section_p)
+@@ -2411,8 +2301,6 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 	  break;
+ 
+ 	case NOTE_INSN_BLOCK_END:
+-	  maybe_output_next_view (seen);
+-
+ 	  if (debug_info_level == DINFO_LEVEL_NORMAL
+ 	      || debug_info_level == DINFO_LEVEL_VERBOSE
+ 	      || write_symbols == DWARF2_DEBUG
+@@ -2469,10 +2357,7 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 	case NOTE_INSN_VAR_LOCATION:
+ 	case NOTE_INSN_CALL_ARG_LOCATION:
+ 	  if (!DECL_IGNORED_P (current_function_decl))
+-	    {
+-	      debug_hooks->var_location (insn);
+-	      set_next_view_needed (seen);
+-	    }
++	    debug_hooks->var_location (insn);
+ 	  break;
+ 
+ 	case NOTE_INSN_BEGIN_STMT:
+@@ -2480,23 +2365,9 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 	  if (!DECL_IGNORED_P (current_function_decl)
+ 	      && notice_source_line (insn, NULL))
+ 	    {
+-	    output_source_line:
+ 	      (*debug_hooks->source_line) (last_linenum, last_columnnum,
+ 					   last_filename, last_discriminator,
+ 					   true);
+-	      clear_next_view_needed (seen);
+-	    }
+-	  break;
+-
+-	case NOTE_INSN_INLINE_ENTRY:
+-	  gcc_checking_assert (cfun->debug_nonbind_markers);
+-	  if (!DECL_IGNORED_P (current_function_decl))
+-	    {
+-	      if (!notice_source_line (insn, NULL))
+-		break;
+-	      (*debug_hooks->inline_entry) (LOCATION_BLOCK
+-					    (NOTE_MARKER_LOCATION (insn)));
+-	      goto output_source_line;
+ 	    }
+ 	  break;
+ 
+@@ -2692,10 +2563,6 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 
+ 	    switch_to_section (current_function_section ());
+ 
+-	    if (debug_variable_location_views
+-		&& !DECL_IGNORED_P (current_function_decl))
+-	      debug_hooks->var_location (insn);
+-
+ 	    break;
+ 	  }
+ 	/* Output this line note if it is the first or the last line
+@@ -2708,12 +2575,7 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 	    (*debug_hooks->source_line) (last_linenum, last_columnnum,
+ 					 last_filename, last_discriminator,
+ 					 is_stmt);
+-	    clear_next_view_needed (seen);
+ 	  }
+-	else
+-	  maybe_output_next_view (seen);
+-
+-	gcc_checking_assert (!DEBUG_INSN_P (insn));
+ 
+ 	if (GET_CODE (body) == PARALLEL
+ 	    && GET_CODE (XVECEXP (body, 0, 0)) == ASM_INPUT)
+@@ -3180,8 +3042,7 @@ final_scan_insn (rtx_insn *insn, FILE *f
+ 	/* Let the debug info back-end know about this call.  We do this only
+ 	   after the instruction has been emitted because labels that may be
+ 	   created to reference the call instruction must appear after it.  */
+-	if ((debug_variable_location_views || call_insn != NULL)
+-	    && !DECL_IGNORED_P (current_function_decl))
++	if (call_insn != NULL && !DECL_IGNORED_P (current_function_decl))
+ 	  debug_hooks->var_location (insn);
+ 
+ 	current_output_insn = debug_insn = 0;
+@@ -3203,17 +3064,6 @@ notice_source_line (rtx_insn *insn, bool
+   if (NOTE_MARKER_P (insn))
+     {
+       location_t loc = NOTE_MARKER_LOCATION (insn);
+-      /* The inline entry markers (gimple, insn, note) carry the
+-	 location of the call, because that's what we want to carry
+-	 during compilation, but the location we want to output in
+-	 debug information for the inline entry point is the location
+-	 of the function itself.  */
+-      if (NOTE_KIND (insn) == NOTE_INSN_INLINE_ENTRY)
+-	{
+-	  tree block = LOCATION_BLOCK (loc);
+-	  tree fn = block_ultimate_origin (block);
+-	  loc = DECL_SOURCE_LOCATION (fn);
+-	}
+       expanded_location xloc = expand_location (loc);
+       if (xloc.line == 0)
+ 	{
+@@ -4631,10 +4481,8 @@ rest_of_handle_final (void)
+     delete_vta_debug_insns (false);
+ 
+   assemble_start_function (current_function_decl, fnname);
+-  rtx_insn *first = get_insns ();
+-  int seen = 0;
+-  final_start_function_1 (&first, asm_out_file, &seen, optimize);
+-  final_1 (first, asm_out_file, seen, optimize);
++  final_start_function (get_insns (), asm_out_file, optimize);
++  final (get_insns (), asm_out_file, optimize);
+   if (flag_ipa_ra
+       && !lookup_attribute ("noipa", DECL_ATTRIBUTES (current_function_decl)))
+     collect_fn_hard_reg_usage ();
+@@ -4820,7 +4668,6 @@ rest_of_clean_state (void)
+ 	  && (!NOTE_P (insn) ||
+ 	      (NOTE_KIND (insn) != NOTE_INSN_VAR_LOCATION
+ 	       && NOTE_KIND (insn) != NOTE_INSN_BEGIN_STMT
+-	       && NOTE_KIND (insn) != NOTE_INSN_INLINE_ENTRY
+ 	       && NOTE_KIND (insn) != NOTE_INSN_CALL_ARG_LOCATION
+ 	       && NOTE_KIND (insn) != NOTE_INSN_BLOCK_BEG
+ 	       && NOTE_KIND (insn) != NOTE_INSN_BLOCK_END
+--- gcc/insn-notes.def	(revision 257511)
++++ gcc/insn-notes.def	(revision 257509)
+@@ -71,10 +71,6 @@ INSN_NOTE (CALL_ARG_LOCATION)
+ /* The beginning of a statement.  */
+ INSN_NOTE (BEGIN_STMT)
+ 
+-/* The entry point for an inlined function.  Its NOTE_BLOCK references
+-   the lexical block whose abstract origin is the inlined function.  */
+-INSN_NOTE (INLINE_ENTRY)
+-
+ /* Record the struct for the following basic block.  Uses
+    NOTE_BASIC_BLOCK.  FIXME: Redundant with the basic block pointer
+    now included in every insn.  NOTE: If there's no CFG anymore, in other words,
+--- gcc/toplev.c	(revision 257511)
++++ gcc/toplev.c	(revision 257509)
+@@ -1558,22 +1558,6 @@ process_options (void)
+ 	     || write_symbols == VMS_AND_DWARF2_DEBUG)
+ 	 && !(flag_selective_scheduling || flag_selective_scheduling2));
+ 
+-  if (debug_variable_location_views == AUTODETECT_VALUE)
+-    {
+-      debug_variable_location_views = flag_var_tracking
+-	&& debug_info_level >= DINFO_LEVEL_NORMAL
+-	&& (write_symbols == DWARF2_DEBUG
+-	    || write_symbols == VMS_AND_DWARF2_DEBUG)
+-	&& !dwarf_strict;
+-    }
+-  else if (debug_variable_location_views == -1 && dwarf_version != 5)
+-    {
+-      warning_at (UNKNOWN_LOCATION, 0,
+-		  "without -gdwarf-5, -gvariable-location-views=incompat5 "
+-		  "is equivalent to -gvariable-location-views");
+-      debug_variable_location_views = 1;
+-    }
+-
+   if (flag_tree_cselim == AUTODETECT_VALUE)
+     {
+       if (HAVE_conditional_move)
+--- gcc/config.in	(revision 257511)
++++ gcc/config.in	(revision 257509)
+@@ -358,12 +358,6 @@
+ #endif
+ 
+ 
+-/* Define if your assembler supports views in dwarf2 .loc directives. */
+-#ifndef USED_FOR_TARGET
+-#undef HAVE_AS_DWARF2_DEBUG_VIEW
+-#endif
+-
+-
+ /* Define if your assembler supports the R_PPC64_ENTRY relocation. */
+ #ifndef USED_FOR_TARGET
+ #undef HAVE_AS_ENTRY_MARKERS
+--- gcc/dwarf2out.c	(revision 257511)
++++ gcc/dwarf2out.c	(revision 257509)
+@@ -1291,8 +1291,6 @@ struct GTY((for_user)) addr_table_entry
+   GTY ((desc ("%1.kind"))) addr;
+ };
+ 
+-typedef unsigned int var_loc_view;
+-
+ /* Location lists are ranges + location descriptions for that range,
+    so you can track variables that are in different places over
+    their entire life.  */
+@@ -1302,11 +1300,9 @@ typedef struct GTY(()) dw_loc_list_struc
+   addr_table_entry *begin_entry;
+   const char *end;  /* Label for end of range */
+   char *ll_symbol; /* Label for beginning of location list.
+-		      Only on head of list.  */
+-  char *vl_symbol; /* Label for beginning of view list.  Ditto.  */
++		      Only on head of list */
+   const char *section; /* Section this loclist is relative to */
+   dw_loc_descr_ref expr;
+-  var_loc_view vbegin, vend;
+   hashval_t hash;
+   /* True if all addresses in this and subsequent lists are known to be
+      resolved.  */
+@@ -1343,29 +1339,6 @@ dwarf_stack_op_name (unsigned int op)
+   return "OP_<unknown>";
+ }
+ 
+-/* Return TRUE iff we're to output location view lists as a separate
+-   attribute next to the location lists, as an extension compatible
+-   with DWARF 2 and above.  */
+-
+-static inline bool
+-dwarf2out_locviews_in_attribute ()
+-{
+-  return debug_variable_location_views == 1;
+-}
+-
+-/* Return TRUE iff we're to output location view lists as part of the
+-   location lists, as proposed for standardization after DWARF 5.  */
+-
+-static inline bool
+-dwarf2out_locviews_in_loclist ()
+-{
+-#ifndef DW_LLE_view_pair
+-  return false;
+-#else
+-  return debug_variable_location_views == -1;
+-#endif
+-}
+-
+ /* Return a pointer to a newly allocated location description.  Location
+    descriptions are simple expression terms that can be strung
+    together to form more complicated location (address) descriptions.  */
+@@ -1428,8 +1401,6 @@ dw_val_equal_p (dw_val_node *a, dw_val_n
+       return a->v.val_loc == b->v.val_loc;
+     case dw_val_class_loc_list:
+       return a->v.val_loc_list == b->v.val_loc_list;
+-    case dw_val_class_view_list:
+-      return a->v.val_view_list == b->v.val_view_list;
+     case dw_val_class_die_ref:
+       return a->v.val_die_ref.die == b->v.val_die_ref.die;
+     case dw_val_class_fde_ref:
+@@ -2747,7 +2718,6 @@ static void dwarf2out_imported_module_or
+ 						 dw_die_ref);
+ static void dwarf2out_abstract_function (tree);
+ static void dwarf2out_var_location (rtx_insn *);
+-static void dwarf2out_inline_entry (tree);
+ static void dwarf2out_size_function (tree);
+ static void dwarf2out_begin_function (tree);
+ static void dwarf2out_end_function (unsigned int);
+@@ -2801,7 +2771,7 @@ const struct gcc_debug_hooks dwarf2_debu
+   debug_nothing_rtx_code_label,	/* label */
+   debug_nothing_int,		/* handle_pch */
+   dwarf2out_var_location,
+-  dwarf2out_inline_entry,	/* inline_entry */
++  debug_nothing_tree,		/* inline_entry */
+   dwarf2out_size_function,	/* size_function */
+   dwarf2out_switch_text_section,
+   dwarf2out_set_name,
+@@ -2905,15 +2875,7 @@ enum dw_line_info_opcode {
+   LI_set_epilogue_begin,
+ 
+   /* Emit a DW_LNE_set_discriminator.  */
+-  LI_set_discriminator,
+-
+-  /* Output a Fixed Advance PC; the target PC is the label index; the
+-     base PC is the previous LI_adv_address or LI_set_address entry.
+-     We only use this when emitting debug views without assembler
+-     support, at explicit user request.  Ideally, we should only use
+-     it when the offset might be zero but we can't tell: it's the only
+-     way to maybe change the PC without resetting the view number.  */
+-  LI_adv_address
++  LI_set_discriminator
+ };
+ 
+ typedef struct GTY(()) dw_line_info_struct {
+@@ -2935,25 +2897,6 @@ struct GTY(()) dw_line_info_table {
+   bool is_stmt;
+   bool in_use;
+ 
+-  /* This denotes the NEXT view number.
+-
+-     If it is 0, it is known that the NEXT view will be the first view
+-     at the given PC.
+-
+-     If it is -1, we've advanced PC but we haven't emitted a line location yet,
+-     so we shouldn't use this view number.
+-
+-     The meaning of other nonzero values depends on whether we're
+-     computing views internally or leaving it for the assembler to do
+-     so.  If we're emitting them internally, view denotes the view
+-     number since the last known advance of PC.  If we're leaving it
+-     for the assembler, it denotes the LVU label number that we're
+-     going to ask the assembler to assign.  */
+-  var_loc_view view;
+-
+-#define RESET_NEXT_VIEW(x) ((x) = (var_loc_view)0)
+-#define RESETTING_VIEW_P(x) ((x) == (var_loc_view)0)
+-
+   vec<dw_line_info_entry, va_gc> *entries;
+ };
+ 
+@@ -3155,71 +3098,6 @@ skeleton_chain_node;
+ #endif
+ #endif
+ 
+-/* Use assembler views in line directives if available.  */
+-#ifndef DWARF2_ASM_VIEW_DEBUG_INFO
+-#ifdef HAVE_AS_DWARF2_DEBUG_VIEW
+-#define DWARF2_ASM_VIEW_DEBUG_INFO 1
+-#else
+-#define DWARF2_ASM_VIEW_DEBUG_INFO 0
+-#endif
+-#endif
+-
+-/* A bit is set in ZERO_VIEW_P if we are using the assembler-supported
+-   view computation, and it refers to a view identifier for which we
+-   will not emit a label because it is known to map to a view number
+-   zero.  We won't allocate the bitmap if we're not using assembler
+-   support for location views, but we have to make the variable
+-   visible for GGC and for code that will be optimized out for lack of
+-   support but that's still parsed and compiled.  We could abstract it
+-   out with macros, but it's not worth it.  */
+-static GTY(()) bitmap zero_view_p;
+-
+-/* Evaluate to TRUE iff N is known to identify the first location view
+-   at its PC.  When not using assembler location view computation,
+-   that must be view number zero.  Otherwise, ZERO_VIEW_P is allocated
+-   and views label numbers recorded in it are the ones known to be
+-   zero.  */
+-#define ZERO_VIEW_P(N) (zero_view_p				\
+-			? bitmap_bit_p (zero_view_p, (N))	\
+-			: (N) == 0)
+-
+-/* Return true iff we're to emit .loc directives for the assembler to
+-   generate line number sections.
+-
+-   When we're not emitting views, all we need from the assembler is
+-   support for .loc directives.
+-
+-   If we are emitting views, we can only use the assembler's .loc
+-   support if it also supports views.
+-
+-   When the compiler is emitting the line number programs and
+-   computing view numbers itself, it resets view numbers at known PC
+-   changes and counts from that, and then it emits view numbers as
+-   literal constants in locviewlists.  There are cases in which the
+-   compiler is not sure about PC changes, e.g. when extra alignment is
+-   requested for a label.  In these cases, the compiler may not reset
+-   the view counter, and the potential PC advance in the line number
+-   program will use an opcode that does not reset the view counter
+-   even if the PC actually changes, so that compiler and debug info
+-   consumer can keep view numbers in sync.
+-
+-   When the compiler defers view computation to the assembler, it
+-   emits symbolic view numbers in locviewlists, with the exception of
+-   views known to be zero (forced resets, or reset after
+-   compiler-visible PC changes): instead of emitting symbols for
+-   these, we emit literal zero and assert the assembler agrees with
+-   the compiler's assessment.  We could use symbolic views everywhere,
+-   instead of special-casing zero views, but then we'd be unable to
+-   optimize out locviewlists that contain only zeros.  */
+-
+-static bool
+-output_asm_line_debug_info (void)
+-{
+-  return (DWARF2_ASM_VIEW_DEBUG_INFO
+-	  || (DWARF2_ASM_LINE_DEBUG_INFO
+-	      && !debug_variable_location_views));
+-}
+-
+ /* Minimum line offset in a special line info. opcode.
+    This value was chosen to give a reasonable range of values.  */
+ #define DWARF_LINE_BASE  -10
+@@ -3329,7 +3207,6 @@ struct GTY ((chain_next ("%h.next"))) va
+   rtx GTY (()) loc;
+   const char * GTY (()) label;
+   struct var_loc_node * GTY (()) next;
+-  var_loc_view view;
+ };
+ 
+ /* Variable location list.  */
+@@ -3538,8 +3415,6 @@ static inline dw_loc_descr_ref AT_loc (d
+ static void add_AT_loc_list (dw_die_ref, enum dwarf_attribute,
+ 			     dw_loc_list_ref);
+ static inline dw_loc_list_ref AT_loc_list (dw_attr_node *);
+-static void add_AT_view_list (dw_die_ref, enum dwarf_attribute);
+-static inline dw_loc_list_ref AT_loc_list (dw_attr_node *);
+ static addr_table_entry *add_addr_table_entry (void *, enum ate_kind);
+ static void remove_addr_table_entry (addr_table_entry *);
+ static void add_AT_addr (dw_die_ref, enum dwarf_attribute, rtx, bool);
+@@ -3576,7 +3451,7 @@ static void equate_type_number_to_die (t
+ static dw_die_ref lookup_decl_die (tree);
+ static var_loc_list *lookup_decl_loc (const_tree);
+ static void equate_decl_number_to_die (tree, dw_die_ref);
+-static struct var_loc_node *add_var_loc_to_decl (tree, rtx, const char *, var_loc_view);
++static struct var_loc_node *add_var_loc_to_decl (tree, rtx, const char *);
+ static void print_spaces (FILE *);
+ static void print_die (dw_die_ref, FILE *);
+ static void loc_checksum (dw_loc_descr_ref, struct md5_ctx *);
+@@ -3776,8 +3651,8 @@ static void gen_tagged_type_die (tree, d
+ static void gen_type_die_with_usage (tree, dw_die_ref, enum debug_info_usage);
+ static void splice_child_die (dw_die_ref, dw_die_ref);
+ static int file_info_cmp (const void *, const void *);
+-static dw_loc_list_ref new_loc_list (dw_loc_descr_ref, const char *, var_loc_view,
+-				     const char *, var_loc_view, const char *);
++static dw_loc_list_ref new_loc_list (dw_loc_descr_ref, const char *,
++				     const char *, const char *);
+ static void output_loc_list (dw_loc_list_ref);
+ static char *gen_internal_sym (const char *);
+ static bool want_pubnames (void);
+@@ -4069,9 +3944,6 @@ static char ranges_base_label[2 * MAX_AR
+ #ifndef BLOCK_BEGIN_LABEL
+ #define BLOCK_BEGIN_LABEL	"LBB"
+ #endif
+-#ifndef BLOCK_INLINE_ENTRY_LABEL
+-#define BLOCK_INLINE_ENTRY_LABEL "LBI"
+-#endif
+ #ifndef BLOCK_END_LABEL
+ #define BLOCK_END_LABEL		"LBE"
+ #endif
+@@ -4776,65 +4648,11 @@ AT_loc_list (dw_attr_node *a)
+   return a->dw_attr_val.v.val_loc_list;
+ }
+ 
+-/* Add a view list attribute to DIE.  It must have a DW_AT_location
+-   attribute, because the view list complements the location list.  */
+-
+-static inline void
+-add_AT_view_list (dw_die_ref die, enum dwarf_attribute attr_kind)
+-{
+-  dw_attr_node attr;
+-
+-  if (XCOFF_DEBUGGING_INFO && !HAVE_XCOFF_DWARF_EXTRAS)
+-    return;
+-
+-  attr.dw_attr = attr_kind;
+-  attr.dw_attr_val.val_class = dw_val_class_view_list;
+-  attr.dw_attr_val.val_entry = NULL;
+-  attr.dw_attr_val.v.val_view_list = die;
+-  add_dwarf_attr (die, &attr);
+-  gcc_checking_assert (get_AT (die, DW_AT_location));
+-  gcc_assert (have_location_lists);
+-}
+-
+-/* Return a pointer to the location list referenced by the attribute.
+-   If the named attribute is a view list, look up the corresponding
+-   DW_AT_location attribute and return its location list.  */
+-
+ static inline dw_loc_list_ref *
+ AT_loc_list_ptr (dw_attr_node *a)
+ {
+-  gcc_assert (a);
+-  switch (AT_class (a))
+-    {
+-    case dw_val_class_loc_list:
+-      return &a->dw_attr_val.v.val_loc_list;
+-    case dw_val_class_view_list:
+-      {
+-	dw_attr_node *l;
+-	l = get_AT (a->dw_attr_val.v.val_view_list, DW_AT_location);
+-	if (!l)
+-	  return NULL;
+-	gcc_checking_assert (l + 1 == a);
+-	return AT_loc_list_ptr (l);
+-      }
+-    default:
+-      gcc_unreachable ();
+-    }
+-}
+-
+-/* Return the location attribute value associated with a view list
+-   attribute value.  */
+-
+-static inline dw_val_node *
+-view_list_to_loc_list_val_node (dw_val_node *val)
+-{
+-  gcc_assert (val->val_class == dw_val_class_view_list);
+-  dw_attr_node *loc = get_AT (val->v.val_view_list, DW_AT_location);
+-  if (!loc)
+-    return NULL;
+-  gcc_checking_assert (&(loc + 1)->dw_attr_val == val);
+-  gcc_assert (AT_class (loc) == dw_val_class_loc_list);
+-  return &loc->dw_attr_val;
++  gcc_assert (a && AT_class (a) == dw_val_class_loc_list);
++  return &a->dw_attr_val.v.val_loc_list;
+ }
+ 
+ struct addr_hasher : ggc_ptr_hash<addr_table_entry>
+@@ -6089,7 +5907,7 @@ adjust_piece_list (rtx *dest, rtx *src,
+ /* Add a variable location node to the linked list for DECL.  */
+ 
+ static struct var_loc_node *
+-add_var_loc_to_decl (tree decl, rtx loc_note, const char *label, var_loc_view view)
++add_var_loc_to_decl (tree decl, rtx loc_note, const char *label)
+ {
+   unsigned int decl_id;
+   var_loc_list *temp;
+@@ -6178,7 +5996,7 @@ add_var_loc_to_decl (tree decl, rtx loc_
+       /* TEMP->LAST here is either pointer to the last but one or
+ 	 last element in the chained list, LAST is pointer to the
+ 	 last element.  */
+-      if (label && strcmp (last->label, label) == 0 && last->view == view)
++      if (label && strcmp (last->label, label) == 0)
+ 	{
+ 	  /* For SRA optimized variables if there weren't any real
+ 	     insns since last note, just modify the last node.  */
+@@ -6194,7 +6012,7 @@ add_var_loc_to_decl (tree decl, rtx loc_
+ 	      temp->last->next = NULL;
+ 	      unused = last;
+ 	      last = temp->last;
+-	      gcc_assert (strcmp (last->label, label) != 0 || last->view != view);
++	      gcc_assert (strcmp (last->label, label) != 0);
+ 	    }
+ 	  else
+ 	    {
+@@ -6329,12 +6147,6 @@ print_dw_val (dw_val_node *val, bool rec
+       fprintf (outfile, "location list -> label:%s",
+ 	       val->v.val_loc_list->ll_symbol);
+       break;
+-    case dw_val_class_view_list:
+-      val = view_list_to_loc_list_val_node (val);
+-      fprintf (outfile, "location list with views -> labels:%s and %s",
+-	       val->v.val_loc_list->ll_symbol,
+-	       val->v.val_loc_list->vl_symbol);
+-      break;
+     case dw_val_class_range_list:
+       fprintf (outfile, "range list");
+       break;
+@@ -9195,7 +9007,6 @@ size_of_die (dw_die_ref die)
+ 	  }
+ 	  break;
+ 	case dw_val_class_loc_list:
+-	case dw_val_class_view_list:
+ 	  if (dwarf_split_debug_info && dwarf_version >= 5)
+ 	    {
+ 	      gcc_assert (AT_loc_list (a)->num_assigned);
+@@ -9567,7 +9378,6 @@ value_format (dw_attr_node *a)
+ 	  gcc_unreachable ();
+ 	}
+     case dw_val_class_loc_list:
+-    case dw_val_class_view_list:
+       if (dwarf_split_debug_info
+ 	  && dwarf_version >= 5
+ 	  && AT_loc_list (a)->num_assigned)
+@@ -9842,8 +9652,7 @@ output_abbrev_section (void)
+    expression.  */
+ 
+ static inline dw_loc_list_ref
+-new_loc_list (dw_loc_descr_ref expr, const char *begin, var_loc_view vbegin,
+-	      const char *end, var_loc_view vend,
++new_loc_list (dw_loc_descr_ref expr, const char *begin, const char *end,
+ 	      const char *section)
+ {
+   dw_loc_list_ref retlist = ggc_cleared_alloc<dw_loc_list_node> ();
+@@ -9853,28 +9662,10 @@ new_loc_list (dw_loc_descr_ref expr, con
+   retlist->end = end;
+   retlist->expr = expr;
+   retlist->section = section;
+-  retlist->vbegin = vbegin;
+-  retlist->vend = vend;
+ 
+   return retlist;
+ }
+ 
+-/* Return true iff there's any nonzero view number in the loc list.  */
+-
+-static bool
+-loc_list_has_views (dw_loc_list_ref list)
+-{
+-  if (!debug_variable_location_views)
+-    return false;
+-
+-  for (dw_loc_list_ref loc = list;
+-       loc != NULL; loc = loc->dw_loc_next)
+-    if (!ZERO_VIEW_P (loc->vbegin) || !ZERO_VIEW_P (loc->vend))
+-      return true;
+-
+-  return false;
+-}
+-
+ /* Generate a new internal symbol for this location list node, if it
+    hasn't got one yet.  */
+ 
+@@ -9883,98 +9674,6 @@ gen_llsym (dw_loc_list_ref list)
+ {
+   gcc_assert (!list->ll_symbol);
+   list->ll_symbol = gen_internal_sym ("LLST");
+-
+-  if (!loc_list_has_views (list))
+-    return;
+-
+-  if (dwarf2out_locviews_in_attribute ())
+-    {
+-      /* Use the same label_num for the view list.  */
+-      label_num--;
+-      list->vl_symbol = gen_internal_sym ("LVUS");
+-    }
+-  else
+-    list->vl_symbol = list->ll_symbol;
+-}
+-
+-/* Generate a symbol for the list, but only if we really want to emit
+-   it as a list.  */
+-
+-static inline void
+-maybe_gen_llsym (dw_loc_list_ref list)
+-{
+-  if (!list || (!list->dw_loc_next && !loc_list_has_views (list)))
+-    return;
+-
+-  gen_llsym (list);
+-}
+-
+-/* Determine whether or not to skip loc_list entry CURR.  If we're not
+-   to skip it, and SIZEP is non-null, store the size of CURR->expr's
+-   representation in *SIZEP.  */
+-
+-static bool
+-skip_loc_list_entry (dw_loc_list_ref curr, unsigned long *sizep = 0)
+-{
+-  /* Don't output an entry that starts and ends at the same address.  */
+-  if (strcmp (curr->begin, curr->end) == 0
+-      && curr->vbegin == curr->vend && !curr->force)
+-    return true;
+-
+-  unsigned long size = size_of_locs (curr->expr);
+-
+-  /* If the expression is too large, drop it on the floor.  We could
+-     perhaps put it into DW_TAG_dwarf_procedure and refer to that
+-     in the expression, but >= 64KB expressions for a single value
+-     in a single range are unlikely very useful.  */
+-  if (dwarf_version < 5 && size > 0xffff)
+-    return true;
+-
+-  if (sizep)
+-    *sizep = size;
+-
+-  return false;
+-}
+-
+-/* Output a view pair loclist entry for CURR, if it requires one.  */
+-
+-static void
+-dwarf2out_maybe_output_loclist_view_pair (dw_loc_list_ref curr)
+-{
+-  if (!dwarf2out_locviews_in_loclist ())
+-    return;
+-
+-  if (ZERO_VIEW_P (curr->vbegin) && ZERO_VIEW_P (curr->vend))
+-    return;
+-
+-#ifdef DW_LLE_view_pair
+-  dw2_asm_output_data (1, DW_LLE_view_pair, "DW_LLE_view_pair");
+-
+-# if DWARF2_ASM_VIEW_DEBUG_INFO
+-  if (ZERO_VIEW_P (curr->vbegin))
+-    dw2_asm_output_data_uleb128 (0, "Location view begin");
+-  else
+-    {
+-      char label[MAX_ARTIFICIAL_LABEL_BYTES];
+-      ASM_GENERATE_INTERNAL_LABEL (label, "LVU", curr->vbegin);
+-      dw2_asm_output_symname_uleb128 (label, "Location view begin");
+-    }
+-
+-  if (ZERO_VIEW_P (curr->vend))
+-    dw2_asm_output_data_uleb128 (0, "Location view end");
+-  else
+-    {
+-      char label[MAX_ARTIFICIAL_LABEL_BYTES];
+-      ASM_GENERATE_INTERNAL_LABEL (label, "LVU", curr->vend);
+-      dw2_asm_output_symname_uleb128 (label, "Location view end");
+-    }
+-# else /* !DWARF2_ASM_VIEW_DEBUG_INFO */
+-  dw2_asm_output_data_uleb128 (curr->vbegin, "Location view begin");
+-  dw2_asm_output_data_uleb128 (curr->vend, "Location view end");
+-# endif /* DWARF2_ASM_VIEW_DEBUG_INFO */
+-#endif /* DW_LLE_view_pair */
+-
+-  return;
+ }
+ 
+ /* Output the location list given to us.  */
+@@ -9982,85 +9681,34 @@ dwarf2out_maybe_output_loclist_view_pair
+ static void
+ output_loc_list (dw_loc_list_ref list_head)
+ {
+-  int vcount = 0, lcount = 0;
+-
+   if (list_head->emitted)
+     return;
+   list_head->emitted = true;
+ 
+-  if (list_head->vl_symbol && dwarf2out_locviews_in_attribute ())
+-    {
+-      ASM_OUTPUT_LABEL (asm_out_file, list_head->vl_symbol);
+-
+-      for (dw_loc_list_ref curr = list_head; curr != NULL;
+-	   curr = curr->dw_loc_next)
+-	{
+-	  if (skip_loc_list_entry (curr))
+-	    continue;
+-
+-	  vcount++;
+-
+-	  /* ?? dwarf_split_debug_info?  */
+-#if DWARF2_ASM_VIEW_DEBUG_INFO
+-	  char label[MAX_ARTIFICIAL_LABEL_BYTES];
+-
+-	  if (!ZERO_VIEW_P (curr->vbegin))
+-	    {
+-	      ASM_GENERATE_INTERNAL_LABEL (label, "LVU", curr->vbegin);
+-	      dw2_asm_output_symname_uleb128 (label,
+-					      "View list begin (%s)",
+-					      list_head->vl_symbol);
+-	    }
+-	  else
+-	    dw2_asm_output_data_uleb128 (0,
+-					 "View list begin (%s)",
+-					 list_head->vl_symbol);
+-
+-	  if (!ZERO_VIEW_P (curr->vend))
+-	    {
+-	      ASM_GENERATE_INTERNAL_LABEL (label, "LVU", curr->vend);
+-	      dw2_asm_output_symname_uleb128 (label,
+-					      "View list end (%s)",
+-					      list_head->vl_symbol);
+-	    }
+-	  else
+-	    dw2_asm_output_data_uleb128 (0,
+-					 "View list end (%s)",
+-					 list_head->vl_symbol);
+-#else /* !DWARF2_ASM_VIEW_DEBUG_INFO */
+-	  dw2_asm_output_data_uleb128 (curr->vbegin,
+-				       "View list begin (%s)",
+-				       list_head->vl_symbol);
+-	  dw2_asm_output_data_uleb128 (curr->vend,
+-				       "View list end (%s)",
+-				       list_head->vl_symbol);
+-#endif
+-	}
+-    }
+-
+   ASM_OUTPUT_LABEL (asm_out_file, list_head->ll_symbol);
+ 
++  dw_loc_list_ref curr = list_head;
+   const char *last_section = NULL;
+   const char *base_label = NULL;
+ 
+   /* Walk the location list, and output each range + expression.  */
+-  for (dw_loc_list_ref curr = list_head; curr != NULL;
+-       curr = curr->dw_loc_next)
++  for (curr = list_head; curr != NULL; curr = curr->dw_loc_next)
+     {
+       unsigned long size;
+-
+-      /* Skip this entry?  If we skip it here, we must skip it in the
+-	 view list above as well. */
+-      if (skip_loc_list_entry (curr, &size))
++      /* Don't output an entry that starts and ends at the same address.  */
++      if (strcmp (curr->begin, curr->end) == 0 && !curr->force)
++	continue;
++      size = size_of_locs (curr->expr);
++      /* If the expression is too large, drop it on the floor.  We could
++	 perhaps put it into DW_TAG_dwarf_procedure and refer to that
++	 in the expression, but >= 64KB expressions for a single value
++	 in a single range are unlikely very useful.  */
++      if (dwarf_version < 5 && size > 0xffff)
+ 	continue;
+-
+-      lcount++;
+-
+       if (dwarf_version >= 5)
+ 	{
+ 	  if (dwarf_split_debug_info)
+ 	    {
+-	      dwarf2out_maybe_output_loclist_view_pair (curr);
+ 	      /* For -gsplit-dwarf, emit DW_LLE_starx_length, which has
+ 		 uleb128 index into .debug_addr and uleb128 length.  */
+ 	      dw2_asm_output_data (1, DW_LLE_startx_length,
+@@ -10078,7 +9726,6 @@ output_loc_list (dw_loc_list_ref list_he
+ 	    }
+ 	  else if (!have_multiple_function_sections && HAVE_AS_LEB128)
+ 	    {
+-	      dwarf2out_maybe_output_loclist_view_pair (curr);
+ 	      /* If all code is in .text section, the base address is
+ 		 already provided by the CU attributes.  Use
+ 		 DW_LLE_offset_pair where both addresses are uleb128 encoded
+@@ -10129,7 +9776,6 @@ output_loc_list (dw_loc_list_ref list_he
+ 		 length.  */
+ 	      if (last_section == NULL)
+ 		{
+-		  dwarf2out_maybe_output_loclist_view_pair (curr);
+ 		  dw2_asm_output_data (1, DW_LLE_start_length,
+ 				       "DW_LLE_start_length (%s)",
+ 				       list_head->ll_symbol);
+@@ -10144,7 +9790,6 @@ output_loc_list (dw_loc_list_ref list_he
+ 		 DW_LLE_base_address.  */
+ 	      else
+ 		{
+-		  dwarf2out_maybe_output_loclist_view_pair (curr);
+ 		  dw2_asm_output_data (1, DW_LLE_offset_pair,
+ 				       "DW_LLE_offset_pair (%s)",
+ 				       list_head->ll_symbol);
+@@ -10160,7 +9805,6 @@ output_loc_list (dw_loc_list_ref list_he
+ 	     DW_LLE_start_end with a pair of absolute addresses.  */
+ 	  else
+ 	    {
+-	      dwarf2out_maybe_output_loclist_view_pair (curr);
+ 	      dw2_asm_output_data (1, DW_LLE_start_end,
+ 				   "DW_LLE_start_end (%s)",
+ 				   list_head->ll_symbol);
+@@ -10239,9 +9883,6 @@ output_loc_list (dw_loc_list_ref list_he
+ 			   "Location list terminator end (%s)",
+ 			   list_head->ll_symbol);
+     }
+-
+-  gcc_assert (!list_head->vl_symbol
+-	      || vcount == lcount * (dwarf2out_locviews_in_attribute () ? 1 : 0));
+ }
+ 
+ /* Output a range_list offset into the .debug_ranges or .debug_rnglists
+@@ -10306,22 +9947,6 @@ output_loc_list_offset (dw_attr_node *a)
+ 			  "%s", dwarf_attr_name (a->dw_attr));
+ }
+ 
+-/* Output the offset into the debug_loc section.  */
+-
+-static void
+-output_view_list_offset (dw_attr_node *a)
+-{
+-  char *sym = (*AT_loc_list_ptr (a))->vl_symbol;
+-
+-  gcc_assert (sym);
+-  if (dwarf_split_debug_info)
+-    dw2_asm_output_delta (DWARF_OFFSET_SIZE, sym, loc_section_label,
+-                          "%s", dwarf_attr_name (a->dw_attr));
+-  else
+-    dw2_asm_output_offset (DWARF_OFFSET_SIZE, sym, debug_loc_section,
+-                           "%s", dwarf_attr_name (a->dw_attr));
+-}
+-
+ /* Output an attribute's index or value appropriately.  */
+ 
+ static void
+@@ -10547,10 +10172,6 @@ output_die (dw_die_ref die)
+ 	  output_loc_list_offset (a);
+ 	  break;
+ 
+-	case dw_val_class_view_list:
+-	  output_view_list_offset (a);
+-	  break;
+-
+ 	case dw_val_class_die_ref:
+ 	  if (AT_ref_external (a))
+ 	    {
+@@ -10735,28 +10356,6 @@ output_die (dw_die_ref die)
+ 			 (unsigned long) die->die_offset);
+ }
+ 
+-/* Output the dwarf version number.  */
+-
+-static void
+-output_dwarf_version ()
+-{
+-  /* ??? For now, if -gdwarf-6 is specified, we output version 5 with
+-     views in loclist.  That will change eventually.  */
+-  if (dwarf_version == 6)
+-    {
+-      static bool once;
+-      if (!once)
+-	{
+-	  warning (0,
+-		   "-gdwarf-6 is output as version 5 with incompatibilities");
+-	  once = true;
+-	}
+-      dw2_asm_output_data (2, 5, "DWARF version number");
+-    }
+-  else
+-    dw2_asm_output_data (2, dwarf_version, "DWARF version number");
+-}
+-
+ /* Output the compilation unit that appears at the beginning of the
+    .debug_info section, and precedes the DIE descriptions.  */
+ 
+@@ -10773,7 +10372,7 @@ output_compilation_unit_header (enum dwa
+ 			   "Length of Compilation Unit Info");
+     }
+ 
+-  output_dwarf_version ();
++  dw2_asm_output_data (2, dwarf_version, "DWARF version number");
+   if (dwarf_version >= 5)
+     {
+       const char *name;
+@@ -10985,7 +10584,7 @@ output_skeleton_debug_sections (dw_die_r
+                        - DWARF_INITIAL_LENGTH_SIZE
+                        + size_of_die (comp_unit),
+                       "Length of Compilation Unit Info");
+-  output_dwarf_version ();
++  dw2_asm_output_data (2, dwarf_version, "DWARF version number");
+   if (dwarf_version >= 5)
+     {
+       dw2_asm_output_data (1, DW_UT_skeleton, "DW_UT_skeleton");
+@@ -11284,7 +10883,7 @@ output_pubnames (vec<pubname_entry, va_g
+     }
+ 
+   /* Version number for pubnames/pubtypes is independent of dwarf version.  */
+-  dw2_asm_output_data (2, 2, "DWARF pubnames/pubtypes version");
++  dw2_asm_output_data (2, 2, "DWARF Version");
+ 
+   if (dwarf_split_debug_info)
+     dw2_asm_output_offset (DWARF_OFFSET_SIZE, debug_skeleton_info_section_label,
+@@ -11366,7 +10965,7 @@ output_aranges (void)
+     }
+ 
+   /* Version number for aranges is still 2, even up to DWARF5.  */
+-  dw2_asm_output_data (2, 2, "DWARF aranges version");
++  dw2_asm_output_data (2, 2, "DWARF Version");
+   if (dwarf_split_debug_info)
+     dw2_asm_output_offset (DWARF_OFFSET_SIZE, debug_skeleton_info_section_label,
+                            debug_skeleton_info_section,
+@@ -11631,7 +11230,7 @@ output_rnglists (unsigned generation)
+   dw2_asm_output_delta (DWARF_OFFSET_SIZE, l2, l1,
+ 			"Length of Range Lists");
+   ASM_OUTPUT_LABEL (asm_out_file, l1);
+-  output_dwarf_version ();
++  dw2_asm_output_data (2, dwarf_version, "DWARF Version");
+   dw2_asm_output_data (1, DWARF2_ADDR_SIZE, "Address Size");
+   dw2_asm_output_data (1, 0, "Segment Size");
+   /* Emit the offset table only for -gsplit-dwarf.  If we don't care
+@@ -12265,11 +11864,8 @@ output_one_line_info_table (dw_line_info
+   char line_label[MAX_ARTIFICIAL_LABEL_BYTES];
+   unsigned int current_line = 1;
+   bool current_is_stmt = DWARF_LINE_DEFAULT_IS_STMT_START;
+-  dw_line_info_entry *ent, *prev_addr;
++  dw_line_info_entry *ent;
+   size_t i;
+-  unsigned int view;
+-
+-  view = 0;
+ 
+   FOR_EACH_VEC_SAFE_ELT (table->entries, i, ent)
+     {
+@@ -12284,36 +11880,14 @@ output_one_line_info_table (dw_line_info
+ 	     to determine when it is safe to use DW_LNS_fixed_advance_pc.  */
+ 	  ASM_GENERATE_INTERNAL_LABEL (line_label, LINE_CODE_LABEL, ent->val);
+ 
+-	  view = 0;
+-
+ 	  /* This can handle any delta.  This takes
+ 	     4+DWARF2_ADDR_SIZE bytes.  */
+-	  dw2_asm_output_data (1, 0, "set address %s%s", line_label,
+-			       debug_variable_location_views
+-			       ? ", reset view to 0" : "");
++	  dw2_asm_output_data (1, 0, "set address %s", line_label);
+ 	  dw2_asm_output_data_uleb128 (1 + DWARF2_ADDR_SIZE, NULL);
+ 	  dw2_asm_output_data (1, DW_LNE_set_address, NULL);
+ 	  dw2_asm_output_addr (DWARF2_ADDR_SIZE, line_label, NULL);
+-
+-	  prev_addr = ent;
+ 	  break;
+ 
+-	case LI_adv_address:
+-	  {
+-	    ASM_GENERATE_INTERNAL_LABEL (line_label, LINE_CODE_LABEL, ent->val);
+-	    char prev_label[MAX_ARTIFICIAL_LABEL_BYTES];
+-	    ASM_GENERATE_INTERNAL_LABEL (prev_label, LINE_CODE_LABEL, prev_addr->val);
+-
+-	    view++;
+-
+-	    dw2_asm_output_data (1, DW_LNS_fixed_advance_pc, "fixed advance PC, increment view to %i", view);
+-	    dw2_asm_output_delta (2, line_label, prev_label,
+-				  "from %s to %s", prev_label, line_label);
+-
+-	    prev_addr = ent;
+-	    break;
+-	  }
+-
+ 	case LI_set_line:
+ 	  if (ent->val == current_line)
+ 	    {
+@@ -12421,7 +11995,7 @@ output_line_info (bool prologue_only)
+ 
+   ASM_OUTPUT_LABEL (asm_out_file, l1);
+ 
+-  output_dwarf_version ();
++  dw2_asm_output_data (2, dwarf_version, "DWARF Version");
+   if (dwarf_version >= 5)
+     {
+       dw2_asm_output_data (1, DWARF2_ADDR_SIZE, "Address Size");
+@@ -16879,7 +16453,6 @@ static dw_loc_list_ref
+ dw_loc_list (var_loc_list *loc_list, tree decl, int want_address)
+ {
+   const char *endname, *secname;
+-  var_loc_view endview;
+   rtx varloc;
+   enum var_init_status initialized;
+   struct var_loc_node *node;
+@@ -16944,27 +16517,24 @@ dw_loc_list (var_loc_list *loc_list, tre
+ 		  && current_function_decl)
+ 		{
+ 		  endname = cfun->fde->dw_fde_end;
+-		  endview = 0;
+ 		  range_across_switch = true;
+ 		}
+ 	      /* The variable has a location between NODE->LABEL and
+ 		 NODE->NEXT->LABEL.  */
+ 	      else if (node->next)
+-		endname = node->next->label, endview = node->next->view;
++		endname = node->next->label;
+ 	      /* If the variable has a location at the last label
+ 		 it keeps its location until the end of function.  */
+ 	      else if (!current_function_decl)
+-		endname = text_end_label, endview = 0;
++		endname = text_end_label;
+ 	      else
+ 		{
+ 		  ASM_GENERATE_INTERNAL_LABEL (label_id, FUNC_END_LABEL,
+ 					       current_function_funcdef_no);
+ 		  endname = ggc_strdup (label_id);
+-		  endview = 0;
+ 		}
+ 
+-	      *listp = new_loc_list (descr, node->label, node->view,
+-				     endname, endview, secname);
++	      *listp = new_loc_list (descr, node->label, endname, secname);
+ 	      if (TREE_CODE (decl) == PARM_DECL
+ 		  && node == loc_list->first
+ 		  && NOTE_P (node->loc)
+@@ -16999,11 +16569,11 @@ dw_loc_list (var_loc_list *loc_list, tre
+ 	  /* The variable has a location between NODE->LABEL and
+ 	     NODE->NEXT->LABEL.  */
+ 	  if (node->next)
+-	    endname = node->next->label, endview = node->next->view;
++	    endname = node->next->label;
+ 	  else
+-	    endname = cfun->fde->dw_fde_second_end, endview = 0;
+-	  *listp = new_loc_list (descr, cfun->fde->dw_fde_second_begin, 0,
+-				 endname, endview, secname);
++	    endname = cfun->fde->dw_fde_second_end;
++	  *listp = new_loc_list (descr, cfun->fde->dw_fde_second_begin,
++				 endname, secname);
+ 	  listp = &(*listp)->dw_loc_next;
+ 	}
+     }
+@@ -17014,7 +16584,8 @@ dw_loc_list (var_loc_list *loc_list, tre
+      representable, we don't want to pretend a single entry that was
+      applies to the entire scope in which the variable is
+      available.  */
+-  maybe_gen_llsym (list);
++  if (list && loc_list->first->next)
++    gen_llsym (list);
+ 
+   return list;
+ }
+@@ -17833,7 +17404,7 @@ loc_list_from_tree_1 (tree loc, int want
+     {
+       if (dwarf_version >= 3 || !dwarf_strict)
+ 	return new_loc_list (new_loc_descr (DW_OP_push_object_address, 0, 0),
+-			     NULL, 0, NULL, 0, NULL);
++			     NULL, NULL, NULL);
+       else
+ 	return NULL;
+     }
+@@ -18649,7 +18220,7 @@ loc_list_from_tree_1 (tree loc, int want
+ 	add_loc_descr_to_each (list_ret, new_loc_descr (op, size, 0));
+     }
+   if (ret)
+-    list_ret = new_loc_list (ret, NULL, 0, NULL, 0, NULL);
++    list_ret = new_loc_list (ret, NULL, NULL, NULL);
+ 
+   return list_ret;
+ }
+@@ -18973,25 +18544,12 @@ static inline void
+ add_AT_location_description (dw_die_ref die, enum dwarf_attribute attr_kind,
+ 			     dw_loc_list_ref descr)
+ {
+-  bool check_no_locviews = true;
+   if (descr == 0)
+     return;
+   if (single_element_loc_list_p (descr))
+     add_AT_loc (die, attr_kind, descr->expr);
+   else
+-    {
+-      add_AT_loc_list (die, attr_kind, descr);
+-      gcc_assert (descr->ll_symbol);
+-      if (attr_kind == DW_AT_location && descr->vl_symbol
+-	  && dwarf2out_locviews_in_attribute ())
+-	{
+-	  add_AT_view_list (die, DW_AT_GNU_locviews);
+-	  check_no_locviews = false;
+-	}
+-    }
+-
+-  if (check_no_locviews)
+-    gcc_assert (!get_AT (die, DW_AT_GNU_locviews));
++    add_AT_loc_list (die, attr_kind, descr);
+ }
+ 
+ /* Add DW_AT_accessibility attribute to DIE if needed.  */
+@@ -20180,7 +19738,7 @@ convert_cfa_to_fb_loc_list (HOST_WIDE_IN
+       /* If the first partition contained no CFI adjustments, the
+ 	 CIE opcodes apply to the whole first partition.  */
+       *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
+-				 fde->dw_fde_begin, 0, fde->dw_fde_end, 0, section);
++				 fde->dw_fde_begin, fde->dw_fde_end, section);
+       list_tail =&(*list_tail)->dw_loc_next;
+       start_label = last_label = fde->dw_fde_second_begin;
+     }
+@@ -20196,7 +19754,7 @@ convert_cfa_to_fb_loc_list (HOST_WIDE_IN
+ 	  if (!cfa_equal_p (&last_cfa, &next_cfa))
+ 	    {
+ 	      *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
+-					 start_label, 0, last_label, 0, section);
++					 start_label, last_label, section);
+ 
+ 	      list_tail = &(*list_tail)->dw_loc_next;
+ 	      last_cfa = next_cfa;
+@@ -20218,14 +19776,14 @@ convert_cfa_to_fb_loc_list (HOST_WIDE_IN
+ 	  if (!cfa_equal_p (&last_cfa, &next_cfa))
+ 	    {
+ 	      *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
+-					 start_label, 0, last_label, 0, section);
++					 start_label, last_label, section);
+ 
+ 	      list_tail = &(*list_tail)->dw_loc_next;
+ 	      last_cfa = next_cfa;
+ 	      start_label = last_label;
+ 	    }
+ 	  *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
+-				     start_label, 0, fde->dw_fde_end, 0, section);
++				     start_label, fde->dw_fde_end, section);
+ 	  list_tail = &(*list_tail)->dw_loc_next;
+ 	  start_label = last_label = fde->dw_fde_second_begin;
+ 	}
+@@ -20234,18 +19792,19 @@ convert_cfa_to_fb_loc_list (HOST_WIDE_IN
+   if (!cfa_equal_p (&last_cfa, &next_cfa))
+     {
+       *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
+-				 start_label, 0, last_label, 0, section);
++				 start_label, last_label, section);
+       list_tail = &(*list_tail)->dw_loc_next;
+       start_label = last_label;
+     }
+ 
+   *list_tail = new_loc_list (build_cfa_loc (&next_cfa, offset),
+-			     start_label, 0,
++			     start_label,
+ 			     fde->dw_fde_second_begin
+-			     ? fde->dw_fde_second_end : fde->dw_fde_end, 0,
++			     ? fde->dw_fde_second_end : fde->dw_fde_end,
+ 			     section);
+ 
+-  maybe_gen_llsym (list);
++  if (list && list->dw_loc_next)
++    gen_llsym (list);
+ 
+   return list;
+ }
+@@ -23219,48 +22778,6 @@ block_die_hasher::equal (die_struct *x,
+   return x->decl_id == y->decl_id && x->die_parent == y->die_parent;
+ }
+ 
+-/* Hold information about markers for inlined entry points.  */
+-struct GTY ((for_user)) inline_entry_data
+-{
+-  /* The block that's the inlined_function_outer_scope for an inlined
+-     function.  */
+-  tree block;
+-
+-  /* The label at the inlined entry point.  */
+-  const char *label_pfx;
+-  unsigned int label_num;
+-
+-  /* The view number to be used as the inlined entry point.  */
+-  var_loc_view view;
+-};
+-
+-struct inline_entry_data_hasher : ggc_ptr_hash <inline_entry_data>
+-{
+-  typedef tree compare_type;
+-  static inline hashval_t hash (const inline_entry_data *);
+-  static inline bool equal (const inline_entry_data *, const_tree);
+-};
+-
+-/* Hash table routines for inline_entry_data.  */
+-
+-inline hashval_t
+-inline_entry_data_hasher::hash (const inline_entry_data *data)
+-{
+-  return htab_hash_pointer (data->block);
+-}
+-
+-inline bool
+-inline_entry_data_hasher::equal (const inline_entry_data *data,
+-				 const_tree block)
+-{
+-  return data->block == block;
+-}
+-
+-/* Inlined entry points pending DIE creation in this compilation unit.  */
+-
+-static GTY(()) hash_table<inline_entry_data_hasher> *inline_entry_data_table;
+-
+-
+ /* Return TRUE if DECL, which may have been previously generated as
+    OLD_DIE, is a candidate for a DW_AT_specification.  DECLARATION is
+    true if decl (or its origin) is either an extern declaration or a
+@@ -23713,42 +23230,6 @@ add_high_low_attributes (tree stmt, dw_d
+ {
+   char label[MAX_ARTIFICIAL_LABEL_BYTES];
+ 
+-  if (inline_entry_data **iedp
+-      = !inline_entry_data_table ? NULL
+-      : inline_entry_data_table->find_slot_with_hash (stmt,
+-						      htab_hash_pointer (stmt),
+-						      NO_INSERT))
+-    {
+-      inline_entry_data *ied = *iedp;
+-      gcc_assert (MAY_HAVE_DEBUG_MARKER_INSNS);
+-      gcc_assert (inlined_function_outer_scope_p (stmt));
+-      ASM_GENERATE_INTERNAL_LABEL (label, ied->label_pfx, ied->label_num);
+-      add_AT_lbl_id (die, DW_AT_entry_pc, label);
+-
+-      if (debug_variable_location_views && !ZERO_VIEW_P (ied->view))
+-	{
+-	  if (!output_asm_line_debug_info ())
+-	    add_AT_unsigned (die, DW_AT_GNU_entry_view, ied->view);
+-	  else
+-	    {
+-	      ASM_GENERATE_INTERNAL_LABEL (label, "LVU", ied->view);
+-	      /* FIXME: this will resolve to a small number.  Could we
+-		 possibly emit smaller data?  Ideally we'd emit a
+-		 uleb128, but that would make the size of DIEs
+-		 impossible for the compiler to compute, since it's
+-		 the assembler that computes the value of the view
+-		 label in this case.  Ideally, we'd have a single form
+-		 encompassing both the address and the view, and
+-		 indirecting them through a table might make things
+-		 easier, but even that would be more wasteful,
+-		 space-wise, than what we have now.  */
+-	      add_AT_lbl_id (die, DW_AT_GNU_entry_view, label);
+-	    }
+-	}
+-
+-      inline_entry_data_table->clear_slot (iedp);
+-    }
+-
+   if (BLOCK_FRAGMENT_CHAIN (stmt)
+       && (dwarf_version >= 3 || !dwarf_strict))
+     {
+@@ -23756,7 +23237,7 @@ add_high_low_attributes (tree stmt, dw_d
+       dw_die_ref pdie;
+       dw_attr_node *attr = NULL;
+ 
+-      if (!MAY_HAVE_DEBUG_MARKER_INSNS && inlined_function_outer_scope_p (stmt))
++      if (inlined_function_outer_scope_p (stmt))
+ 	{
+ 	  ASM_GENERATE_INTERNAL_LABEL (label, BLOCK_BEGIN_LABEL,
+ 				       BLOCK_NUMBER (stmt));
+@@ -23921,7 +23402,7 @@ gen_inlined_subroutine_die (tree stmt, d
+       dw_die_ref subr_die
+ 	= new_die (DW_TAG_inlined_subroutine, context_die, stmt);
+ 
+-      if (call_arg_locations || MAY_HAVE_DEBUG_MARKER_INSNS)
++      if (call_arg_locations)
+ 	BLOCK_DIE (stmt) = subr_die;
+       add_abstract_origin_attribute (subr_die, decl);
+       if (TREE_ASM_WRITTEN (stmt))
+@@ -26683,7 +26164,7 @@ maybe_emit_file (struct dwarf_file_data
+ 	fd->emitted_number = 1;
+       last_emitted_file = fd;
+ 
+-      if (output_asm_line_debug_info ())
++      if (DWARF2_ASM_LINE_DEBUG_INFO)
+ 	{
+ 	  fprintf (asm_out_file, "\t.file %u ", fd->emitted_number);
+ 	  output_quoted_string (asm_out_file,
+@@ -26877,13 +26358,11 @@ dwarf2out_var_location (rtx_insn *loc_no
+   static rtx_insn *expected_next_loc_note;
+   tree decl;
+   bool var_loc_p;
+-  var_loc_view view = 0;
+ 
+   if (!NOTE_P (loc_note))
+     {
+       if (CALL_P (loc_note))
+ 	{
+-	  RESET_NEXT_VIEW (cur_line_info_table->view);
+ 	  call_site_count++;
+ 	  if (SIBLING_CALL_P (loc_note))
+ 	    tail_call_site_count++;
+@@ -26917,18 +26396,6 @@ dwarf2out_var_location (rtx_insn *loc_no
+ 		}
+ 	    }
+ 	}
+-      else if (!debug_variable_location_views)
+-	gcc_unreachable ();
+-      else if (JUMP_TABLE_DATA_P (loc_note))
+-	RESET_NEXT_VIEW (cur_line_info_table->view);
+-      else if (GET_CODE (loc_note) == USE
+-	       || GET_CODE (loc_note) == CLOBBER
+-	       || GET_CODE (loc_note) == ASM_INPUT
+-	       || asm_noperands (loc_note) >= 0)
+-	;
+-      else if (get_attr_min_length (loc_note) > 0)
+-	RESET_NEXT_VIEW (cur_line_info_table->view);
+-
+       return;
+     }
+ 
+@@ -26953,7 +26420,6 @@ dwarf2out_var_location (rtx_insn *loc_no
+       || ! NOTE_P (next_note)
+       || (NOTE_KIND (next_note) != NOTE_INSN_VAR_LOCATION
+ 	  && NOTE_KIND (next_note) != NOTE_INSN_BEGIN_STMT
+-	  && NOTE_KIND (next_note) != NOTE_INSN_INLINE_ENTRY
+ 	  && NOTE_KIND (next_note) != NOTE_INSN_CALL_ARG_LOCATION))
+     next_note = NULL;
+ 
+@@ -26993,11 +26459,10 @@ create_label:
+ 
+   if (var_loc_p)
+     {
+-      const char *label
+-	= NOTE_DURING_CALL_P (loc_note) ? last_postcall_label : last_label;
+-      view = cur_line_info_table->view;
+       decl = NOTE_VAR_LOCATION_DECL (loc_note);
+-      newloc = add_var_loc_to_decl (decl, loc_note, label, view);
++      newloc = add_var_loc_to_decl (decl, loc_note,
++				    NOTE_DURING_CALL_P (loc_note)
++				    ? last_postcall_label : last_label);
+       if (newloc == NULL)
+ 	return;
+     }
+@@ -27038,8 +26503,8 @@ create_label:
+ 		else if (GET_CODE (body) == ASM_INPUT
+ 			 || asm_noperands (body) >= 0)
+ 		  continue;
+-#ifdef HAVE_ATTR_length /* ??? We don't include insn-attr.h.  */
+-		else if (HAVE_ATTR_length && get_attr_min_length (insn) == 0)
++#ifdef HAVE_attr_length
++		else if (get_attr_min_length (insn) == 0)
+ 		  continue;
+ #endif
+ 		else
+@@ -27107,10 +26572,7 @@ create_label:
+       call_arg_loc_last = ca_loc;
+     }
+   else if (loc_note != NULL_RTX && !NOTE_DURING_CALL_P (loc_note))
+-    {
+-      newloc->label = last_label;
+-      newloc->view = view;
+-    }
++    newloc->label = last_label;
+   else
+     {
+       if (!last_postcall_label)
+@@ -27119,7 +26581,6 @@ create_label:
+ 	  last_postcall_label = ggc_strdup (loclabel);
+ 	}
+       newloc->label = last_postcall_label;
+-      newloc->view = view;
+     }
+ 
+   if (var_loc_p && flag_debug_asm)
+@@ -27147,113 +26608,6 @@ create_label:
+   last_in_cold_section_p = in_cold_section_p;
+ }
+ 
+-/* Check whether BLOCK, a lexical block, is nested within OUTER, or is
+-   OUTER itself.  If BOTHWAYS, check not only that BLOCK can reach
+-   OUTER through BLOCK_SUPERCONTEXT links, but also that there is a
+-   path from OUTER to BLOCK through BLOCK_SUBBLOCKs and
+-   BLOCK_FRAGMENT_ORIGIN links.  */
+-static bool
+-block_within_block_p (tree block, tree outer, bool bothways)
+-{
+-  if (block == outer)
+-    return true;
+-
+-  /* Quickly check that OUTER is up BLOCK's supercontext chain.  */
+-  for (tree context = BLOCK_SUPERCONTEXT (block);
+-       context != outer;
+-       context = BLOCK_SUPERCONTEXT (context))
+-    if (!context || TREE_CODE (context) != BLOCK)
+-      return false;
+-
+-  if (!bothways)
+-    return true;
+-
+-  /* Now check that each block is actually referenced by its
+-     parent.  */
+-  for (tree context = BLOCK_SUPERCONTEXT (block); ;
+-       context = BLOCK_SUPERCONTEXT (context))
+-    {
+-      if (BLOCK_FRAGMENT_ORIGIN (context))
+-	{
+-	  gcc_assert (!BLOCK_SUBBLOCKS (context));
+-	  context = BLOCK_FRAGMENT_ORIGIN (context);
+-	}
+-      for (tree sub = BLOCK_SUBBLOCKS (context);
+-	   sub != block;
+-	   sub = BLOCK_CHAIN (sub))
+-	if (!sub)
+-	  return false;
+-      if (context == outer)
+-	return true;
+-      else
+-	block = context;
+-    }
+-}
+-
+-/* Called during final while assembling the marker of the entry point
+-   for an inlined function.  */
+-
+-static void
+-dwarf2out_inline_entry (tree block)
+-{
+-  /* If we can't represent it, don't bother.  */
+-  if (!(dwarf_version >= 3 || !dwarf_strict))
+-    return;
+-
+-  gcc_assert (DECL_P (block_ultimate_origin (block)));
+-
+-  /* Sanity check the block tree.  This would catch a case in which
+-     BLOCK got removed from the tree reachable from the outermost
+-     lexical block, but got retained in markers.  It would still link
+-     back to its parents, but some ancestor would be missing a link
+-     down the path to the sub BLOCK.  If the block got removed, its
+-     BLOCK_NUMBER will not be a usable value.  */
+-  if (flag_checking)
+-    gcc_assert (block_within_block_p (block,
+-				      DECL_INITIAL (current_function_decl),
+-				      true));
+-
+-  gcc_assert (inlined_function_outer_scope_p (block));
+-  gcc_assert (!BLOCK_DIE (block));
+-
+-  if (BLOCK_FRAGMENT_ORIGIN (block))
+-    block = BLOCK_FRAGMENT_ORIGIN (block);
+-  /* Can the entry point ever not be at the beginning of an
+-     unfragmented lexical block?  */
+-  else if (!(BLOCK_FRAGMENT_CHAIN (block)
+-	     || (cur_line_info_table
+-		 && !ZERO_VIEW_P (cur_line_info_table->view))))
+-    return;
+-
+-  if (!inline_entry_data_table)
+-    inline_entry_data_table
+-      = hash_table<inline_entry_data_hasher>::create_ggc (10);
+-
+-
+-  inline_entry_data **iedp
+-    = inline_entry_data_table->find_slot_with_hash (block,
+-						    htab_hash_pointer (block),
+-						    INSERT);
+-  if (*iedp)
+-    /* ??? Ideally, we'd record all entry points for the same inlined
+-       function (some may have been duplicated by e.g. unrolling), but
+-       we have no way to represent that ATM.  */
+-    return;
+-
+-  inline_entry_data *ied = *iedp = ggc_cleared_alloc<inline_entry_data> ();
+-  ied->block = block;
+-  ied->label_pfx = BLOCK_INLINE_ENTRY_LABEL;
+-  ied->label_num = BLOCK_NUMBER (block);
+-  if (cur_line_info_table)
+-    ied->view = cur_line_info_table->view;
+-
+-  char label[MAX_ARTIFICIAL_LABEL_BYTES];
+-
+-  ASM_GENERATE_INTERNAL_LABEL (label, BLOCK_INLINE_ENTRY_LABEL,
+-			       BLOCK_NUMBER (block));
+-  ASM_OUTPUT_LABEL (asm_out_file, label);
+-}
+-
+ /* Called from finalize_size_functions for size functions so that their body
+    can be encoded in the debug info to describe the layout of variable-length
+    structures.  */
+@@ -27298,7 +26652,6 @@ new_line_info_table (void)
+   table->file_num = 1;
+   table->line_num = 1;
+   table->is_stmt = DWARF_LINE_DEFAULT_IS_STMT_START;
+-  RESET_NEXT_VIEW (table->view);
+ 
+   return table;
+ }
+@@ -27347,7 +26700,7 @@ set_cur_line_info_table (section *sec)
+       vec_safe_push (separate_line_info, table);
+     }
+ 
+-  if (output_asm_line_debug_info ())
++  if (DWARF2_ASM_LINE_DEBUG_INFO)
+     table->is_stmt = (cur_line_info_table
+ 		      ? cur_line_info_table->is_stmt
+ 		      : DWARF_LINE_DEFAULT_IS_STMT_START);
+@@ -27528,7 +26881,7 @@ dwarf2out_source_line (unsigned int line
+ 		 filename, line);
+     }
+ 
+-  if (output_asm_line_debug_info ())
++  if (DWARF2_ASM_LINE_DEBUG_INFO)
+     {
+       /* Emit the .loc directive understood by GNU as.  */
+       /* "\t.loc %u %u 0 is_stmt %u discriminator %u",
+@@ -27551,50 +26904,6 @@ dwarf2out_source_line (unsigned int line
+ 	  fputs (" discriminator ", asm_out_file);
+ 	  fprint_ul (asm_out_file, (unsigned long) discriminator);
+ 	}
+-      if (debug_variable_location_views)
+-	{
+-	  static var_loc_view lvugid;
+-	  if (!lvugid)
+-	    {
+-	      gcc_assert (!zero_view_p);
+-	      zero_view_p = BITMAP_GGC_ALLOC ();
+-	      bitmap_set_bit (zero_view_p, 0);
+-	    }
+-	  if (!RESETTING_VIEW_P (table->view))
+-	    {
+-	      /* When we're using the assembler to compute view
+-		 numbers, we output symbolic labels after "view" in
+-		 .loc directives, and the assembler will set them for
+-		 us, so that we can refer to the view numbers in
+-		 location lists.  The only exceptions are when we know
+-		 a view will be zero: "-0" is a forced reset, used
+-		 e.g. in the beginning of functions, whereas "0" tells
+-		 the assembler to check that there was a PC change
+-		 since the previous view, in a way that implicitly
+-		 resets the next view.  */
+-	      fputs (" view ", asm_out_file);
+-	      char label[MAX_ARTIFICIAL_LABEL_BYTES];
+-	      ASM_GENERATE_INTERNAL_LABEL (label, "LVU", table->view);
+-	      assemble_name (asm_out_file, label);
+-	      table->view = ++lvugid;
+-	    }
+-	  else
+-	    {
+-	      if (!table->in_use)
+-		fputs (" view -0", asm_out_file);
+-	      else
+-		fputs (" view 0", asm_out_file);
+-	      /* Mark the present view as a zero view.  Earlier debug
+-		 binds may have already added its id to loclists to be
+-		 emitted later, so we can't reuse the id for something
+-		 else.  However, it's good to know whether a view is
+-		 known to be zero, because then we may be able to
+-		 optimize out locviews that are all zeros, so take
+-		 note of it in zero_view_p.  */
+-	      bitmap_set_bit (zero_view_p, lvugid);
+-	      table->view = ++lvugid;
+-	    }
+-	}
+       putc ('\n', asm_out_file);
+     }
+   else
+@@ -27603,19 +26912,7 @@ dwarf2out_source_line (unsigned int line
+ 
+       targetm.asm_out.internal_label (asm_out_file, LINE_CODE_LABEL, label_num);
+ 
+-      if (debug_variable_location_views && table->view)
+-	push_dw_line_info_entry (table, LI_adv_address, label_num);
+-      else
+-	push_dw_line_info_entry (table, LI_set_address, label_num);
+-      if (debug_variable_location_views)
+-	{
+-	  if (flag_debug_asm)
+-	    fprintf (asm_out_file, "\t%s view %s%d\n",
+-		     ASM_COMMENT_START,
+-		     table->in_use ? "" : "-",
+-		     table->view);
+-	  table->view++;
+-	}
++      push_dw_line_info_entry (table, LI_set_address, label_num);
+       if (file_num != table->file_num)
+ 	push_dw_line_info_entry (table, LI_set_file, file_num);
+       if (discriminator != table->discrim_num)
+@@ -28291,10 +27588,9 @@ init_sections_and_labels (bool early_lto
+ 					    SECTION_DEBUG, NULL);
+       debug_str_section = get_section (DEBUG_STR_SECTION,
+ 				       DEBUG_STR_SECTION_FLAGS, NULL);
+-      if (!dwarf_split_debug_info && !output_asm_line_debug_info ())
++      if (!dwarf_split_debug_info && !DWARF2_ASM_LINE_DEBUG_INFO)
+ 	debug_line_str_section = get_section (DEBUG_LINE_STR_SECTION,
+ 					      DEBUG_STR_SECTION_FLAGS, NULL);
+-
+       debug_ranges_section = get_section (dwarf_version >= 5
+ 					  ? DEBUG_RNGLISTS_SECTION
+ 					  : DEBUG_RANGES_SECTION,
+@@ -28680,11 +27976,6 @@ prune_unused_types_walk_attribs (dw_die_
+ 	    prune_unused_types_walk_loc_descr (list->expr);
+ 	  break;
+ 
+-	case dw_val_class_view_list:
+-	  /* This points to a loc_list in another attribute, so it's
+-	     already covered.  */
+-	  break;
+-
+ 	case dw_val_class_die_ref:
+ 	  /* A reference to another DIE.
+ 	     Make sure that it will get emitted.
+@@ -29784,8 +29075,6 @@ optimize_string_length (dw_attr_node *a)
+ 	if (d->expr && non_dwarf_expression (d->expr))
+ 	  non_dwarf_expr = true;
+       break;
+-    case dw_val_class_view_list:
+-      gcc_unreachable ();
+     case dw_val_class_loc:
+       lv = AT_loc (av);
+       if (lv == NULL)
+@@ -29830,7 +29119,7 @@ optimize_string_length (dw_attr_node *a)
+ 	  lv = copy_deref_exprloc (d->expr);
+ 	  if (lv)
+ 	    {
+-	      *p = new_loc_list (lv, d->begin, d->vbegin, d->end, d->vend, d->section);
++	      *p = new_loc_list (lv, d->begin, d->end, d->section);
+ 	      p = &(*p)->dw_loc_next;
+ 	    }
+ 	  else if (!dwarf_strict && d->expr)
+@@ -29900,7 +29189,6 @@ resolve_addr (dw_die_ref die)
+ 		      {
+ 			gcc_assert (!next->ll_symbol);
+ 			next->ll_symbol = (*curr)->ll_symbol;
+-			next->vl_symbol = (*curr)->vl_symbol;
+ 		      }
+                     if (dwarf_split_debug_info)
+                       remove_loc_list_addr_table_entries (l);
+@@ -29926,21 +29214,6 @@ resolve_addr (dw_die_ref die)
+ 	    ix--;
+ 	  }
+ 	break;
+-      case dw_val_class_view_list:
+-	{
+-	  gcc_checking_assert (a->dw_attr == DW_AT_GNU_locviews);
+-	  gcc_checking_assert (dwarf2out_locviews_in_attribute ());
+-	  dw_val_node *llnode
+-	    = view_list_to_loc_list_val_node (&a->dw_attr_val);
+-	  /* If we no longer have a loclist, or it no longer needs
+-	     views, drop this attribute.  */
+-	  if (!llnode || !llnode->v.val_loc_list->vl_symbol)
+-	    {
+-	      remove_AT (die, a->dw_attr);
+-	      ix--;
+-	    }
+-	  break;
+-	}
+       case dw_val_class_loc:
+ 	{
+ 	  dw_loc_descr_ref l = AT_loc (a);
+@@ -30337,8 +29610,6 @@ hash_loc_list (dw_loc_list_ref list_head
+     {
+       hstate.add (curr->begin, strlen (curr->begin) + 1);
+       hstate.add (curr->end, strlen (curr->end) + 1);
+-      hstate.add_object (curr->vbegin);
+-      hstate.add_object (curr->vend);
+       if (curr->section)
+ 	hstate.add (curr->section, strlen (curr->section) + 1);
+       hash_locs (curr->expr, hstate);
+@@ -30560,7 +29831,6 @@ loc_list_hasher::equal (const dw_loc_lis
+ 	|| strcmp (a->end, b->end) != 0
+ 	|| (a->section == NULL) != (b->section == NULL)
+ 	|| (a->section && strcmp (a->section, b->section) != 0)
+-	|| a->vbegin != b->vbegin || a->vend != b->vend
+ 	|| !compare_locs (a->expr, b->expr))
+       break;
+   return a == NULL && b == NULL;
+@@ -30579,8 +29849,6 @@ optimize_location_lists_1 (dw_die_ref di
+   dw_attr_node *a;
+   unsigned ix;
+   dw_loc_list_struct **slot;
+-  bool drop_locviews = false;
+-  bool has_locviews = false;
+ 
+   FOR_EACH_VEC_SAFE_ELT (die->die_attr, ix, a)
+     if (AT_class (a) == dw_val_class_loc_list)
+@@ -30591,33 +29859,11 @@ optimize_location_lists_1 (dw_die_ref di
+ 	hash_loc_list (list);
+ 	slot = htab->find_slot_with_hash (list, list->hash, INSERT);
+ 	if (*slot == NULL)
+-	  {
+-	    *slot = list;
+-	    if (loc_list_has_views (list))
+-	      gcc_assert (list->vl_symbol);
+-	    else if (list->vl_symbol)
+-	      {
+-		drop_locviews = true;
+-		list->vl_symbol = NULL;
+-	      }
+-	  }
++	  *slot = list;
+ 	else
+-	  {
+-	    if (list->vl_symbol && !(*slot)->vl_symbol)
+-	      drop_locviews = true;
+-	    a->dw_attr_val.v.val_loc_list = *slot;
+-	  }
+-      }
+-    else if (AT_class (a) == dw_val_class_view_list)
+-      {
+-	gcc_checking_assert (a->dw_attr == DW_AT_GNU_locviews);
+-	has_locviews = true;
++          a->dw_attr_val.v.val_loc_list = *slot;
+       }
+ 
+-
+-  if (drop_locviews && has_locviews)
+-    remove_AT (die, DW_AT_GNU_locviews);
+-
+   FOR_EACH_CHILD (die, c, optimize_location_lists_1 (c, htab));
+ }
+ 
+@@ -30642,7 +29888,7 @@ index_location_lists (dw_die_ref die)
+             /* Don't index an entry that has already been indexed
+                or won't be output.  */
+             if (curr->begin_entry != NULL
+-                || skip_loc_list_entry (curr))
++                || (strcmp (curr->begin, curr->end) == 0 && !curr->force))
+               continue;
+ 
+             curr->begin_entry
+@@ -30750,9 +29996,6 @@ dwarf2out_finish (const char *)
+   /* Flush out any latecomers to the limbo party.  */
+   flush_limbo_die_list ();
+ 
+-  if (inline_entry_data_table)
+-    gcc_assert (inline_entry_data_table->elements () == 0);
+-
+   if (flag_checking)
+     {
+       verify_die (comp_unit_die ());
+@@ -31069,7 +30312,7 @@ dwarf2out_finish (const char *)
+ 	  dw2_asm_output_delta (DWARF_OFFSET_SIZE, l2, l1,
+ 			    "Length of Location Lists");
+ 	  ASM_OUTPUT_LABEL (asm_out_file, l1);
+-	  output_dwarf_version ();
++	  dw2_asm_output_data (2, dwarf_version, "DWARF Version");
+ 	  dw2_asm_output_data (1, DWARF2_ADDR_SIZE, "Address Size");
+ 	  dw2_asm_output_data (1, 0, "Segment Size");
+ 	  dw2_asm_output_data (4, dwarf_split_debug_info ? loc_list_idx : 0,
+@@ -31128,7 +30371,7 @@ dwarf2out_finish (const char *)
+      used by the debug_info section are marked as 'used'.  */
+   switch_to_section (debug_line_section);
+   ASM_OUTPUT_LABEL (asm_out_file, debug_line_section_label);
+-  if (! output_asm_line_debug_info ())
++  if (! DWARF2_ASM_LINE_DEBUG_INFO)
+     output_line_info (false);
+ 
+   if (dwarf_split_debug_info && info_section_emitted)
+--- gcc/dwarf2out.h	(revision 257511)
++++ gcc/dwarf2out.h	(revision 257509)
+@@ -160,8 +160,7 @@ enum dw_val_class
+   dw_val_class_discr_list,
+   dw_val_class_const_implicit,
+   dw_val_class_unsigned_const_implicit,
+-  dw_val_class_file_implicit,
+-  dw_val_class_view_list
++  dw_val_class_file_implicit
+ };
+ 
+ /* Describe a floating point constant value, or a vector constant value.  */
+@@ -204,7 +203,6 @@ struct GTY(()) dw_val_node {
+       rtx GTY ((tag ("dw_val_class_addr"))) val_addr;
+       unsigned HOST_WIDE_INT GTY ((tag ("dw_val_class_offset"))) val_offset;
+       dw_loc_list_ref GTY ((tag ("dw_val_class_loc_list"))) val_loc_list;
+-      dw_die_ref GTY ((tag ("dw_val_class_view_list"))) val_view_list;
+       dw_loc_descr_ref GTY ((tag ("dw_val_class_loc"))) val_loc;
+       HOST_WIDE_INT GTY ((default)) val_int;
+       unsigned HOST_WIDE_INT
+--- gcc/gimple-pretty-print.c	(revision 257511)
++++ gcc/gimple-pretty-print.c	(revision 257509)
+@@ -1371,19 +1371,6 @@ dump_gimple_debug (pretty_printer *buffe
+ 	dump_gimple_fmt (buffer, spc, flags, "# DEBUG BEGIN_STMT");
+       break;
+ 
+-    case GIMPLE_DEBUG_INLINE_ENTRY:
+-      if (flags & TDF_RAW)
+-	dump_gimple_fmt (buffer, spc, flags, "%G INLINE_ENTRY %T", gs,
+-			 gimple_block (gs)
+-			 ? block_ultimate_origin (gimple_block (gs))
+-			 : NULL_TREE);
+-      else
+-	dump_gimple_fmt (buffer, spc, flags, "# DEBUG INLINE_ENTRY %T",
+-			 gimple_block (gs)
+-			 ? block_ultimate_origin (gimple_block (gs))
+-			 : NULL_TREE);
+-      break;
+-
+     default:
+       gcc_unreachable ();
+     }
+--- gcc/configure.ac	(revision 257511)
++++ gcc/configure.ac	(revision 257509)
+@@ -4902,25 +4902,9 @@ if test x"$insn" != x; then
+ 
+  if test $gcc_cv_as_dwarf2_debug_line = yes \
+  && test $gcc_cv_as_dwarf2_file_buggy = no; then
+-    AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
++	AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
+   [Define if your assembler supports dwarf2 .file/.loc directives,
+    and preserves file table indices exactly as given.])
+-
+-    if test $gcc_cv_as_leb128 = yes; then
+-	conftest_s="\
+-	.file 1 \"conftest.s\"
+-	.loc 1 3 0 view .LVU1
+-	$insn
+-	.data
+-	.uleb128 .LVU1
+-	.uleb128 .LVU1
+-"
+-	gcc_GAS_CHECK_FEATURE([dwarf2 debug_view support],
+-	  gcc_cv_as_dwarf2_debug_view,
+-	  [elf,2,27,0],,[$conftest_s],,
+-	  [AC_DEFINE(HAVE_AS_DWARF2_DEBUG_VIEW, 1,
+-  [Define if your assembler supports views in dwarf2 .loc directives.])])
+-    fi
+  fi
+ 
+  gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
+--- gcc/print-rtl.c	(revision 257511)
++++ gcc/print-rtl.c	(revision 257509)
+@@ -276,7 +276,6 @@ rtx_writer::print_rtx_operand_code_0 (co
+ 	  break;
+ 
+ 	case NOTE_INSN_BEGIN_STMT:
+-	case NOTE_INSN_INLINE_ENTRY:
+ #ifndef GENERATOR_FILE
+ 	  {
+ 	    expanded_location xloc
+@@ -1880,10 +1879,6 @@ print_insn (pretty_printer *pp, const rt
+ 		pp_string (pp, "debug begin stmt marker");
+ 		break;
+ 
+-	      case NOTE_INSN_INLINE_ENTRY:
+-		pp_string (pp, "debug inline entry marker");
+-		break;
+-
+ 	      default:
+ 		gcc_unreachable ();
+ 	      }
+--- gcc/cfgexpand.c	(revision 257511)
++++ gcc/cfgexpand.c	(revision 257509)
+@@ -5731,15 +5731,6 @@ expand_gimple_basic_block (basic_block b
+ 		goto delink_debug_stmt;
+ 	      else if (gimple_debug_begin_stmt_p (stmt))
+ 		val = GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT ();
+-	      else if (gimple_debug_inline_entry_p (stmt))
+-		{
+-		  tree block = gimple_block (stmt);
+-
+-		  if (block)
+-		    val = GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT ();
+-		  else
+-		    goto delink_debug_stmt;
+-		}
+ 	      else
+ 		gcc_unreachable ();
+ 
+--- gcc/tree-ssa-live.c	(revision 257511)
++++ gcc/tree-ssa-live.c	(revision 257509)
+@@ -520,11 +520,6 @@ remove_unused_scope_block_p (tree scope,
+    else if (!BLOCK_SUPERCONTEXT (scope)
+             || TREE_CODE (BLOCK_SUPERCONTEXT (scope)) == FUNCTION_DECL)
+      unused = false;
+-   /* Preserve the block, it is referenced by at least the inline
+-      entry point marker.  */
+-   else if (debug_nonbind_markers_p
+-	    && inlined_function_outer_scope_p (scope))
+-     unused = false;
+    /* Innermost blocks with no live variables nor statements can be always
+       eliminated.  */
+    else if (!nsubblocks)
+@@ -553,13 +548,11 @@ remove_unused_scope_block_p (tree scope,
+      }
+    else if (BLOCK_VARS (scope) || BLOCK_NUM_NONLOCALIZED_VARS (scope))
+      unused = false;
+-   /* See if this block is important for representation of inlined
+-      function.  Inlined functions are always represented by block
+-      with block_ultimate_origin being set to FUNCTION_DECL and
+-      DECL_SOURCE_LOCATION set, unless they expand to nothing...  But
+-      see above for the case of statement frontiers.  */
+-   else if (!debug_nonbind_markers_p
+-	    && inlined_function_outer_scope_p (scope))
++   /* See if this block is important for representation of inlined function.
++      Inlined functions are always represented by block with
++      block_ultimate_origin being set to FUNCTION_DECL and DECL_SOURCE_LOCATION
++      set...  */
++   else if (inlined_function_outer_scope_p (scope))
+      unused = false;
+    else
+    /* Verfify that only blocks with source location set
+@@ -647,16 +640,6 @@ dump_scope_block (FILE *file, int indent
+ 	    fprintf (file, "#%i", BLOCK_NUMBER (origin));
+ 	}
+     }
+-  if (BLOCK_FRAGMENT_ORIGIN (scope))
+-    fprintf (file, " Fragment of : #%i",
+-	     BLOCK_NUMBER (BLOCK_FRAGMENT_ORIGIN (scope)));
+-  else if (BLOCK_FRAGMENT_CHAIN (scope))
+-    {
+-      fprintf (file, " Fragment chain :");
+-      for (t = BLOCK_FRAGMENT_CHAIN (scope); t ;
+-	   t = BLOCK_FRAGMENT_CHAIN (t))
+-	fprintf (file, " #%i", BLOCK_NUMBER (t));
+-    }
+   fprintf (file, " \n");
+   for (var = BLOCK_VARS (scope); var; var = DECL_CHAIN (var))
+     {
+--- gcc/common.opt	(revision 257511)
++++ gcc/common.opt	(revision 257509)
+@@ -2956,13 +2956,6 @@ gtoggle
+ Common Driver Report Var(flag_gtoggle)
+ Toggle debug information generation.
+ 
+-gvariable-location-views
+-Common Driver Var(debug_variable_location_views, 1) Init(2)
+-Augment variable location lists with progressive views.
+-
+-gvariable-location-views=incompat5
+-Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
+-
+ gvms
+ Common Driver JoinedOrMissing Negative(gxcoff)
+ Generate debug information in VMS format.
+--- gcc/rtl.h	(revision 257511)
++++ gcc/rtl.h	(revision 257509)
+@@ -1654,8 +1654,7 @@ extern const char * const reg_note_name[
+    for which NOTE_MARKER_LOCATION can be used.  */
+ #define NOTE_MARKER_P(INSN)				\
+   (NOTE_P (INSN) &&					\
+-   (NOTE_KIND (INSN) == NOTE_INSN_BEGIN_STMT		\
+-    || NOTE_KIND (INSN) == NOTE_INSN_INLINE_ENTRY))
++   (NOTE_KIND (INSN) == NOTE_INSN_BEGIN_STMT))
+ 
+ /* Variable declaration and the location of a variable.  */
+ #define PAT_VAR_LOCATION_DECL(PAT) (XCTREE ((PAT), 0, VAR_LOCATION))
+@@ -1693,8 +1692,6 @@ extern const char * const reg_note_name[
+   (GET_CODE (PATTERN (INSN)) == DEBUG_MARKER	  \
+    ? (GET_MODE (PATTERN (INSN)) == VOIDmode	  \
+       ? NOTE_INSN_BEGIN_STMT			  \
+-      : GET_MODE (PATTERN (INSN)) == BLKmode	  \
+-      ? NOTE_INSN_INLINE_ENTRY			  \
+       : (enum insn_note)-1) 			  \
+    : (enum insn_note)-1)
+ /* Create patterns for debug markers.  These and the above abstract
+@@ -1704,8 +1701,6 @@ extern const char * const reg_note_name[
+    wouldn't be a problem.  */
+ #define GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT() \
+   gen_rtx_DEBUG_MARKER (VOIDmode)
+-#define GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT() \
+-  gen_rtx_DEBUG_MARKER (BLKmode)
+ 
+ /* The VAR_LOCATION rtx in a DEBUG_INSN.  */
+ #define INSN_VAR_LOCATION(INSN) \
+--- gcc/tree-inline.c	(revision 257511)
++++ gcc/tree-inline.c	(revision 257509)
+@@ -4605,13 +4605,6 @@ expand_call_inline (basic_block bb, gimp
+ 			GSI_NEW_STMT);
+     }
+   initialize_inlined_parameters (id, stmt, fn, bb);
+-  if (debug_nonbind_markers_p && id->block
+-      && inlined_function_outer_scope_p (id->block))
+-    {
+-      gimple_stmt_iterator si = gsi_last_bb (bb);
+-      gsi_insert_after (&si, gimple_build_debug_inline_entry
+-			(id->block, input_location), GSI_NEW_STMT);
+-    }
+ 
+   if (DECL_INITIAL (fn))
+     {
+--- gcc/var-tracking.c	(revision 257511)
++++ gcc/var-tracking.c	(revision 257509)
+@@ -9959,7 +9959,6 @@ reemit_marker_as_note (rtx_insn *insn)
+   switch (kind)
+     {
+     case NOTE_INSN_BEGIN_STMT:
+-    case NOTE_INSN_INLINE_ENTRY:
+       {
+ 	rtx_insn *note = NULL;
+ 	if (cfun->debug_nonbind_markers)
+--- gcc/gimple.c	(revision 257511)
++++ gcc/gimple.c	(revision 257509)
+@@ -874,27 +874,6 @@ gimple_build_debug_begin_stmt (tree bloc
+ }
+ 
+ 
+-/* Build a new GIMPLE_DEBUG_INLINE_ENTRY statement in BLOCK at
+-   LOCATION.  The BLOCK links to the inlined function.  */
+-
+-gdebug *
+-gimple_build_debug_inline_entry (tree block, location_t location
+-				      MEM_STAT_DECL)
+-{
+-  gdebug *p
+-    = as_a <gdebug *> (
+-        gimple_build_with_ops_stat (GIMPLE_DEBUG,
+-				    (unsigned)GIMPLE_DEBUG_INLINE_ENTRY, 0
+-				    PASS_MEM_STAT));
+-
+-  gimple_set_location (p, location);
+-  gimple_set_block (p, block);
+-  cfun->debug_marker_count++;
+-
+-  return p;
+-}
+-
+-
+ /* Build a GIMPLE_OMP_CRITICAL statement.
+ 
+    BODY is the sequence of statements for which only one thread can execute.
+--- gcc/gimple.h	(revision 257511)
++++ gcc/gimple.h	(revision 257509)
+@@ -202,8 +202,7 @@ enum gf_mask {
+ enum gimple_debug_subcode {
+   GIMPLE_DEBUG_BIND = 0,
+   GIMPLE_DEBUG_SOURCE_BIND = 1,
+-  GIMPLE_DEBUG_BEGIN_STMT = 2,
+-  GIMPLE_DEBUG_INLINE_ENTRY = 3
++  GIMPLE_DEBUG_BEGIN_STMT = 2
+ };
+ 
+ /* Masks for selecting a pass local flag (PLF) to work on.  These
+@@ -1455,7 +1454,6 @@ geh_dispatch *gimple_build_eh_dispatch (
+ gdebug *gimple_build_debug_bind (tree, tree, gimple * CXX_MEM_STAT_INFO);
+ gdebug *gimple_build_debug_source_bind (tree, tree, gimple * CXX_MEM_STAT_INFO);
+ gdebug *gimple_build_debug_begin_stmt (tree, location_t CXX_MEM_STAT_INFO);
+-gdebug *gimple_build_debug_inline_entry (tree, location_t CXX_MEM_STAT_INFO);
+ gomp_critical *gimple_build_omp_critical (gimple_seq, tree, tree);
+ gomp_for *gimple_build_omp_for (gimple_seq, int, tree, size_t, gimple_seq);
+ gomp_parallel *gimple_build_omp_parallel (gimple_seq, tree, tree, tree);
+@@ -4786,25 +4784,13 @@ gimple_debug_begin_stmt_p (const gimple
+   return false;
+ }
+ 
+-/* Return true if S is a GIMPLE_DEBUG INLINE_ENTRY statement.  */
+-
+-static inline bool
+-gimple_debug_inline_entry_p (const gimple *s)
+-{
+-  if (is_gimple_debug (s))
+-    return s->subcode == GIMPLE_DEBUG_INLINE_ENTRY;
+-
+-  return false;
+-}
+-
+ /* Return true if S is a GIMPLE_DEBUG non-binding marker statement.  */
+ 
+ static inline bool
+ gimple_debug_nonbind_marker_p (const gimple *s)
+ {
+   if (is_gimple_debug (s))
+-    return s->subcode == GIMPLE_DEBUG_BEGIN_STMT
+-      || s->subcode == GIMPLE_DEBUG_INLINE_ENTRY;
++    return s->subcode == GIMPLE_DEBUG_BEGIN_STMT;
+ 
+   return false;
+ }

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [rpms/gcc] rhel-f41-base: 8.0.1-0.13
@ 2026-06-29 12:27 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:27 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : c0ae016cb4155e4296c3d5d66174fe5716c6dee3
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2018-02-10T19:41:37+01:00
Stats  : +22/-56 in 4 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/c0ae016cb4155e4296c3d5d66174fe5716c6dee3?branch=rhel-f41-base

Log:
8.0.1-0.13

---
diff --git a/.gitignore b/.gitignore
index 0ef4b54..237d230 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,4 @@
 /gcc-8.0.1-20180130.tar.xz
 /gcc-8.0.1-20180131.tar.xz
 /gcc-8.0.1-20180207.tar.xz
+/gcc-8.0.1-20180210.tar.xz

diff --git a/gcc.spec b/gcc.spec
index 0e911dd..ad68f5b 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,10 +1,10 @@
-%global DATE 20180207
-%global SVNREV 257452
+%global DATE 20180210
+%global SVNREV 257551
 %global gcc_version 8.0.1
 %global gcc_major 8
 # Note, gcc_release must be integer, if you want to add suffixes to
 # %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 0.12
+%global gcc_release 0.13
 %global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
 %global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
 %global _unpackaged_files_terminate_build 0
@@ -235,7 +235,7 @@ Patch9: gcc8-aarch64-async-unw-tables.patch
 Patch10: gcc8-foffload-default.patch
 Patch11: gcc8-Wno-format-security.patch
 Patch12: gcc8-rh1512529-aarch64.patch
-Patch13: gcc8-pr84252.patch
+Patch13: gcc8-lvu-revert.patch
 
 Patch1000: nvptx-tools-no-ptxas.patch
 Patch1001: nvptx-tools-build.patch
@@ -795,7 +795,7 @@ to NVidia PTX capable devices if available.
 %patch10 -p0 -b .foffload-default~
 %patch11 -p0 -b .Wno-format-security~
 %patch12 -p0 -b .rh1512529-aarch64~
-%patch13 -p0 -b .pr84252~
+%patch13 -p0 -b .lvu-revert~
 
 cd nvptx-tools-%{nvptx_tools_gitrev}
 %patch1000 -p1 -b .nvptx-tools-no-ptxas~
@@ -3057,6 +3057,21 @@ fi
 %endif
 
 %changelog
+* Sat Feb 10 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.13
+- update from the trunk
+  - PRs c++/77522, c++/80567, c++/81610, c++/81917, c++/83204, c++/83659,
+	c++/83806, c++/84082, c++/84182, c++/84296, c/84293, fortran/56691,
+	fortran/68560, fortran/82049, fortran/82994, lto/84212, lto/84213,
+	middle-end/84237, rtl-optimization/57193, rtl-optimization/83459,
+	rtl-optimization/84068, rtl-optimization/84308, sanitizer/84285,
+	target/81143, target/83008, target/83926, target/84113, target/84226,
+	target/84300, target/PR84295, tree-optimization/84037,
+	tree-optimization/84136, tree-optimization/84224,
+	tree-optimization/84232, tree-optimization/84233,
+	tree-optimization/84238, tree-optimization/84265,
+	tree-optimization/84278
+- temporarily revert LVU stuff, until it settles down
+
 * Wed Feb  7 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.12
 - update from the trunk
   - PRs c++/71662, c++/82782, c++/83796, c++/84059, c++/84125, c++/84126,

diff --git a/gcc8-pr84252.patch b/gcc8-pr84252.patch
deleted file mode 100644
index cc3ef6e..0000000
--- a/gcc8-pr84252.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-2018-02-07  Jakub Jelinek  <jakub@redhat.com>
-
-	PR debug/84252
-	* var-tracking.c (vt_add_function_parameter): Punt for non-onepart
-	PARALLEL incoming that failed vt_get_decl_and_offset check.
-
-	* gcc.target/aarch64/pr84252.c: New test.
-
---- gcc/var-tracking.c.jj	2018-01-04 00:43:15.007702432 +0100
-+++ gcc/var-tracking.c	2018-02-07 12:47:09.735980882 +0100
-@@ -9653,6 +9653,7 @@ vt_add_function_parameter (tree parm)
-   poly_int64 offset;
-   dataflow_set *out;
-   decl_or_value dv;
-+  bool incoming_ok = true;
- 
-   if (TREE_CODE (parm) != PARM_DECL)
-     return;
-@@ -9743,6 +9744,7 @@ vt_add_function_parameter (tree parm)
- 
-   if (!vt_get_decl_and_offset (incoming, &decl, &offset))
-     {
-+      incoming_ok = false;
-       if (MEM_P (incoming))
- 	{
- 	  /* This means argument is passed by invisible reference.  */
-@@ -9861,6 +9863,10 @@ vt_add_function_parameter (tree parm)
-     {
-       int i;
- 
-+      /* The following code relies on vt_get_decl_and_offset returning true for
-+	 incoming, which might not be always the case.  */
-+      if (!incoming_ok)
-+	return;
-       for (i = 0; i < XVECLEN (incoming, 0); i++)
- 	{
- 	  rtx reg = XEXP (XVECEXP (incoming, 0, i), 0);
---- gcc/testsuite/gcc.target/aarch64/pr84252.c.jj	2018-02-07 14:01:27.987436160 +0100
-+++ gcc/testsuite/gcc.target/aarch64/pr84252.c	2018-02-07 13:59:47.736644299 +0100
-@@ -0,0 +1,10 @@
-+/* PR debug/84252 */
-+/* { dg-do compile } */
-+/* { dg-options "-g -O2" } */
-+
-+struct S { __Int32x4_t b[2]; };
-+
-+void
-+foo (struct S x)
-+{
-+}

diff --git a/sources b/sources
index 0102c41..f40e372 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-8.0.1-20180207.tar.xz) = 1846a80298e5cea659c386558ba53ccbc005436a1669aef7e3faa8dd9813fbaaf5b76f495461b08b1515f206515134d578272f3d827c165faee484e746f70e05
+SHA512 (gcc-8.0.1-20180210.tar.xz) = 23d9af44e3c8fce98d5614ee5540d9119f5727eddacb217a15e8c8b38eae1ca66fd7d67d4015d2899d34cbbb7df87c5ce5ce13aa7779746973a1bf8b1c959bb0
 SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
 SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-29 12:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:27 [rpms/gcc] rhel-f41-base: 8.0.1-0.13 Jakub Jelinek
  -- strict thread matches above, loose matches on Subject: below --
2026-06-29 12:27 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox