From: Jakub Jelinek <jakub@redhat.com>
To: Alexandre Oliva <aoliva@redhat.com>, Jason Merrill <jason@redhat.com>
Cc: Jeff Law <law@redhat.com>,
Richard Biener <richard.guenther@gmail.com>,
Jason Merrill <jason@redhat.com>,
gcc-patches <gcc-patches@gcc.gnu.org>
Subject: Re: [SFN+LVU+IEPM v4 7/9] [LVU] Introduce location views
Date: Wed, 24 Jan 2018 17:36:00 -0000 [thread overview]
Message-ID: <20180124170848.GF2063@tucnak> (raw)
In-Reply-To: <orbmj4vesd.fsf@lxoliva.fsfla.org>
On Tue, Dec 12, 2017 at 12:52:18AM -0200, Alexandre Oliva wrote:
> --- a/include/dwarf2.h
> +++ b/include/dwarf2.h
> @@ -298,6 +298,14 @@ 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
> +
This looks wrong. The proposal has not been accepted yet, so you
really can't know if DW_LLE_view_pair will be like that or whether it
will have value of 9. Unfortunately, the DWARF standard doesn't specify a
vendor range for DW_LLE_* values. I'd use 0xf0 or so, and don't pretend
there is DW_LLE_view_pair at all, just use DW_LLE_GNU_view_pair everywhere.
Jason, what do you think?
> --- a/gcc/dwarf2asm.c
> +++ b/gcc/dwarf2asm.c
> @@ -767,6 +767,33 @@ dw2_asm_output_data_sleb128 (HOST_WIDE_INT value,
> va_end (ap);
> }
>
> +/* output symbol LAB1 as an unsigned LEB128 quantity. */
Capital O in Output please.
> +static inline bool
> +dwarf2out_locviews_in_attribute ()
> +{
> + return debug_variable_location_views
> + && dwarf_version <= 5;
Formatting, should be
return debug_variable_location_views && dwarf_version <= 5;
or
return (debug_variable_location_views
&& dwarf_version <= 5);
if it wouldn't fit (but it does).
> +static inline bool
> +dwarf2out_locviews_in_loclist ()
> +{
> +#ifndef DW_LLE_view_pair
> + return false;
> +#else
> + return debug_variable_location_views
> + && dwarf_version >= 6;
Likewise.
> +
> +static bool
> +output_asm_line_debug_info (void)
> +{
> + return DWARF2_ASM_VIEW_DEBUG_INFO
> + || (DWARF2_ASM_LINE_DEBUG_INFO && !debug_variable_location_views);
Likewise.
> + dw2_asm_output_data (1, DW_LLE_view_pair,
> + "DW_LLE_view_pair");
This also fits on a single line.
> +/* 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");
> + }
Do we really need to introduce -gdwarf-6 at this point?
-gdwarf-5 -gvariable-location-views should be sufficient, isn't it?
We don't know at all what will it look like in 3 or how many years.
My preference would be to keep all those dwarf_version == 6 related changes
out, including this output_dwarf_version function etc.
> + const char *label = NOTE_DURING_CALL_P (loc_note)
> + ? last_postcall_label : last_label;
Again wrong formatting,
const char *label
= NOTE_DURING_CALL_P (loc_note) ? last_postcall_label : last_label;
is better.
> + return !DECL_IGNORED_P (current_function_decl)
> + && debug_variable_location_views
> + && insn && GET_CODE (insn) == NOTE
> + && NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION;
Formatting.
Jakub
next prev parent reply other threads:[~2018-01-24 17:08 UTC|newest]
Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-05 23:21 Introduce Statement Frontier Notes and Location Views Alexandre Oliva
2017-07-13 13:17 ` Alexandre Oliva
2017-08-18 22:49 ` Statement Frontier Notes, Location Views, and Inlined Entry Point Markers (was: Re: Introduce Statement Frontier Notes and Location Views) Alexandre Oliva
2017-08-21 12:35 ` Richard Biener
2017-08-22 22:44 ` Statement Frontier Notes, Location Views, and Inlined Entry Point Markers Alexandre Oliva
2017-08-23 12:33 ` Richard Biener
2017-08-25 16:41 ` Alexandre Oliva
2017-09-07 21:44 ` Joseph Myers
2017-09-21 2:24 ` Alexandre Oliva
2017-08-22 22:44 ` Alexandre Oliva
2017-08-23 12:12 ` Richard Biener
2017-08-25 15:26 ` Alexandre Oliva
2017-08-28 12:41 ` Richard Biener
2017-08-25 19:22 ` Alexandre Oliva
2017-09-01 1:07 ` Alexandre Oliva
2017-09-01 1:15 ` [PATCH 1/9] [SFN] adjust RTL insn-walking API Alexandre Oliva
2017-09-01 1:15 ` [PATCH 5/9] [SFN] Introduce -gstatement-frontiers option, enable debug markers Alexandre Oliva
2017-09-01 1:15 ` [PATCH 2/9] [SFN] boilerplate changes in preparation to introduce nonbind markers Alexandre Oliva
2017-09-01 1:16 ` [PATCH 6/9] [LVU] Allow final_start_function to skip initial insns Alexandre Oliva
2017-09-01 1:16 ` [PATCH 4/9] [SFN] introduce statement frontier notes, still disabled Alexandre Oliva
2017-09-01 1:16 ` [PATCH 9/9] [IEPM] Introduce inline entry point markers Alexandre Oliva
2017-09-01 1:16 ` [PATCH 7/9] [LVU] Introduce location views Alexandre Oliva
2017-09-01 1:16 ` [PATCH 8/9] [IEPM] Introduce debug hook for inline entry point markers Alexandre Oliva
2017-09-01 1:16 ` [PATCH 3/9] [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers Alexandre Oliva
2017-09-30 9:04 ` Statement Frontier Notes, Location Views, and Inlined Entry Point Markers Alexandre Oliva
2017-09-30 9:09 ` [PATCH 5/9] [SFN] Introduce -gstatement-frontiers option, enable debug markers Alexandre Oliva
2017-10-09 13:12 ` Richard Biener
2017-09-30 9:09 ` [PATCH 6/9] [LVU] Allow final_start_function to skip initial insns Alexandre Oliva
2017-10-19 11:07 ` Richard Biener
2017-10-31 5:10 ` Jeff Law
2017-10-31 5:23 ` Jeff Law
2017-11-01 18:20 ` Alexandre Oliva
2017-11-02 13:00 ` Richard Biener
2017-09-30 9:09 ` [PATCH 4/9] [SFN] introduce statement frontier notes, still disabled Alexandre Oliva
2017-10-09 13:11 ` Richard Biener
2017-10-13 7:25 ` Alexandre Oliva
2017-10-13 9:41 ` Richard Biener
2017-10-17 22:06 ` Alexandre Oliva
2017-10-24 18:11 ` Jason Merrill
2017-11-01 19:14 ` Alexandre Oliva
2017-11-01 19:49 ` Jason Merrill
2017-09-30 9:09 ` [PATCH 1/9] [SFN] adjust RTL insn-walking API Alexandre Oliva
2017-10-09 13:24 ` Richard Biener
2017-09-30 9:09 ` [PATCH 2/9] [SFN] boilerplate changes in preparation to introduce nonbind markers Alexandre Oliva
2017-10-09 13:02 ` Richard Biener
2017-09-30 9:10 ` [PATCH 9/9] [IEPM] Introduce inline entry point markers Alexandre Oliva
2017-10-31 6:22 ` Jeff Law
2017-11-01 18:36 ` Alexandre Oliva
2017-11-09 16:30 ` Jeff Law
2017-11-10 2:31 ` Alexandre Oliva
2017-09-30 9:10 ` [PATCH 8/9] [IEPM] Introduce debug hook for " Alexandre Oliva
2017-10-31 5:58 ` Jeff Law
2017-09-30 9:10 ` [PATCH 7/9] [LVU] Introduce location views Alexandre Oliva
2017-09-30 9:10 ` [PATCH 3/9] [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers Alexandre Oliva
2017-10-09 13:07 ` Richard Biener
2017-11-10 2:36 ` SFN+LVU+IEPM v4 (was: Re: Statement Frontier Notes, Location Views, and Inlined Entry Point Markers) Alexandre Oliva
2017-11-10 2:36 ` [SFN+LVU+IEPM v4 1/9] [SFN] adjust RTL insn-walking API Alexandre Oliva
2017-12-07 22:25 ` Jeff Law
2017-12-12 3:10 ` Alexandre Oliva
2017-12-14 11:55 ` Alexandre Oliva
2017-12-14 12:07 ` Jakub Jelinek
2017-12-14 18:25 ` Alexandre Oliva
2017-11-10 2:36 ` [SFN+LVU+IEPM v4 2/9] [SFN] boilerplate changes in preparation to introduce nonbind markers Alexandre Oliva
2017-12-07 22:27 ` Jeff Law
2017-12-12 2:55 ` Alexandre Oliva
2017-11-10 2:36 ` [SFN+LVU+IEPM v4 5/9] [SFN] introduce statement frontier notes, still disabled Alexandre Oliva
2017-12-07 23:59 ` Jeff Law
2017-12-12 2:41 ` Alexandre Oliva
2017-11-10 2:36 ` [SFN+LVU+IEPM v4 4/9] [SFN] stabilize find_bb_boundaries Alexandre Oliva
2017-12-07 22:46 ` Jeff Law
2017-12-12 2:38 ` Alexandre Oliva
2017-11-10 2:36 ` [SFN+LVU+IEPM v4 3/9] [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers Alexandre Oliva
2017-12-07 22:44 ` Jeff Law
2017-12-12 2:31 ` Alexandre Oliva
2017-11-10 2:36 ` [SFN+LVU+IEPM v4 6/9] [SFN] Introduce -gstatement-frontiers option, enable debug markers Alexandre Oliva
2017-12-07 22:49 ` Jeff Law
2017-12-12 2:42 ` Alexandre Oliva
2017-12-12 9:16 ` Christophe Lyon
2017-12-13 4:22 ` Alexandre Oliva
2018-01-07 17:48 ` H.J. Lu
2017-12-27 8:00 ` [nvptx, committed] Disable -gstatement-frontiers for nvptx Tom de Vries
2017-12-29 4:12 ` Alexandre Oliva
2017-12-29 11:42 ` Tom de Vries
2017-12-31 20:05 ` Alexandre Oliva
2018-01-11 10:12 ` Tom de Vries
2017-11-10 2:37 ` [SFN+LVU+IEPM v4 8/9] [IEPM] Introduce debug hook for inline entry point markers Alexandre Oliva
2017-12-07 22:51 ` Jeff Law
2017-12-12 2:44 ` Alexandre Oliva
2017-11-10 5:05 ` [SFN+LVU+IEPM v4 7/9] [LVU] Introduce location views Alexandre Oliva
2017-11-13 10:18 ` Richard Biener
2017-11-15 3:59 ` Alexandre Oliva
2017-12-11 23:12 ` Jeff Law
2017-12-12 2:52 ` Alexandre Oliva
2018-01-24 17:36 ` Jakub Jelinek [this message]
2018-01-25 20:19 ` Alexandre Oliva
2018-01-26 14:58 ` Jakub Jelinek
2018-01-30 18:40 ` Alexandre Oliva
2018-01-30 22:11 ` Richard Sandiford
2018-02-07 4:14 ` Alexandre Oliva
2018-02-07 7:43 ` Alexandre Oliva
2018-02-06 21:13 ` Jason Merrill
2018-02-07 4:02 ` Alexandre Oliva
2018-02-07 19:23 ` Jason Merrill
2018-02-08 12:56 ` Alexandre Oliva
2018-02-08 16:05 ` Jason Merrill
2018-02-09 3:49 ` Alexandre Oliva
2018-02-07 7:35 ` Alexandre Oliva
2018-02-07 7:36 ` Alexandre Oliva
2018-02-08 19:58 ` Jason Merrill
2018-02-09 3:20 ` Alexandre Oliva
2018-02-11 19:04 ` Andreas Schwab
2018-02-11 20:47 ` Andreas Schwab
2018-02-12 7:46 ` Alexandre Oliva
2018-02-12 7:49 ` Alexandre Oliva
2018-02-12 10:11 ` Andreas Schwab
2018-02-13 5:47 ` Alexandre Oliva
2018-02-14 9:23 ` Andreas Schwab
2017-11-10 5:29 ` [SFN+LVU+IEPM v4 9/9] [IEPM] Introduce inline entry point markers Alexandre Oliva
2017-12-12 2:54 ` Alexandre Oliva
2017-12-21 5:18 ` Jeff Law
2018-01-24 7:11 ` Alexandre Oliva
2018-01-24 17:40 ` Jakub Jelinek
2018-01-25 20:14 ` Alexandre Oliva
2018-02-09 3:21 ` Alexandre Oliva
2018-02-09 3:53 ` Alan Modra
2018-02-09 4:13 ` Jeff Law
2018-02-09 10:35 ` Alexandre Oliva
2018-02-09 12:10 ` Alan Modra
2018-02-09 15:09 ` Jeff Law
2018-02-09 22:52 ` Joseph Myers
2018-02-10 1:36 ` Joseph Myers
2018-02-10 12:35 ` Alexandre Oliva
2018-02-10 18:19 ` Jeff Law
2018-02-11 15:29 ` Alexandre Oliva
2018-02-09 21:01 ` Alexandre Oliva
2018-02-09 23:49 ` Jakub Jelinek
2018-02-10 0:56 ` Alexandre Oliva
2018-02-12 8:08 ` Alexandre Oliva
2018-02-13 13:52 ` Alexandre Oliva
2018-02-13 16:15 ` Jeff Law
2018-02-15 15:23 ` Szabolcs Nagy
2018-02-21 10:12 ` Alexandre Oliva
2018-02-21 12:08 ` Uros Bizjak
2018-02-22 15:22 ` Szabolcs Nagy
2018-02-28 6:17 ` Alexandre Oliva
2018-03-09 9:49 ` Bin.Cheng
2018-03-09 9:55 ` Ramana Radhakrishnan
2018-03-09 11:35 ` Jakub Jelinek
2018-03-07 19:43 ` Jeff Law
2018-02-10 4:39 ` Alexandre Oliva
2018-02-10 6:35 ` Jeff Law
2018-02-10 13:05 ` Alexandre Oliva
2018-02-10 16:36 ` Jeff Law
2018-02-21 10:33 ` Alexandre Oliva
2018-02-26 12:47 ` Richard Biener
2017-11-10 21:31 ` SFN+LVU+IEPM v4 Alexandre Oliva
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180124170848.GF2063@tucnak \
--to=jakub@redhat.com \
--cc=aoliva@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jason@redhat.com \
--cc=law@redhat.com \
--cc=richard.guenther@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).