Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Pierre-Marie de Rodat

On 08/18/2015 11:36 AM, Manuel López-Ibáñez wrote:

On 18/08/15 10:32, Pedro Alves wrote:

On 08/14/2015 10:49 AM, Pierre-Marie de Rodat wrote:


I also tried to create the new pages on the wiki but it says You are
not allowed to edit this page.
(https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator?action=edit,
I'm logged in as pmderodat). Does anyone know how I should proceed?



I believe you need to be added to the editor group:

   https://gcc.gnu.org/wiki/EditorGroup

You need someone on that list to add you.  (I'm not on the list).


Added. Please try now.


I successfuly created the two wiki pages, thanks to both of you!

As a side note, for some reason I could no longer login and I had to 
re-create my account (same identifier, which worked). I'm not sure, but 
I think it's the second time I had to do that (the first time I thought 
I did something wrong...).


--
Pierre-Marie de Rodat


Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Pedro Alves
On 08/14/2015 10:49 AM, Pierre-Marie de Rodat wrote:

 I also tried to create the new pages on the wiki but it says You are 
 not allowed to edit this page. 
 (https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator?action=edit, 
 I'm logged in as pmderodat). Does anyone know how I should proceed?
 

I believe you need to be added to the editor group:

  https://gcc.gnu.org/wiki/EditorGroup

You need someone on that list to add you.  (I'm not on the list).

Thanks,
Pedro Alves



Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Manuel López-Ibáñez
On 18 August 2015 at 14:38, Pierre-Marie de Rodat dero...@adacore.com wrote:

 I think it would be great to copy this text in GCC's: may I do this?

Sorry, I did it before I read your message. For the future, I would
advise to Just Do It and then say that you did it. It is a wiki, it
can always be reverted if someone disagrees.

Perhaps it would be great if the GNU tools did not have some much
duplicated infrastructure (and inconsistent red-tape), but oh well...

Cheers,

Manuel.


Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Pierre-Marie de Rodat

On 08/18/2015 02:47 PM, Manuel López-Ibáñez wrote:

Sorry, I did it before I read your message. For the future, I would
advise to Just Do It and then say that you did it. It is a wiki, it
can always be reverted if someone disagrees.


Sure, I have no problem with the paternity of this change. ;-) Thank 
you! I will just do it next time.


--
Pierre-Marie de Rodat


Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Pierre-Marie de Rodat

On 08/18/2015 02:15 PM, Pedro Alves wrote:

The blurb at the top of glibc's page explains this:

  https://sourceware.org/glibc/wiki/EditorGroup

[...]

Looks like neither GCC's nor GDB's borrowed that longer text yet.


Ok, understood. Thank you very much!

I think it would be great to copy this text in GCC's: may I do this?

--
Pierre-Marie de Rodat


Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Pedro Alves
On 08/18/2015 11:24 AM, Pierre-Marie de Rodat wrote:

 I successfuly created the two wiki pages, thanks to both of you!
 
 As a side note, for some reason I could no longer login and I had to 
 re-create my account (same identifier, which worked). I'm not sure, but 
 I think it's the second time I had to do that (the first time I thought 
 I did something wrong...).

The blurb at the top of glibc's page explains this:

 https://sourceware.org/glibc/wiki/EditorGroup

As part of this wiki's spam prevention process we keep a community maintained 
list
of allowed editors. Members of this group are allowed to edit the wiki. This is 
a
community maintained list. As a member of EditorGroup you can add other users to
this list but by doing so you vouch for them. This process has reduced spam to 
zero
since only those interested humans are willing to ask to be added by other 
humans who
vouch for them. Despite this feature, and our desire to keep the registration 
process open,
the spammers still fill the database with new login entries that slow down 
MoinMoin. To
combat spam login accounts we routinely purge the account database down to the 
list of
users that are on this page. If you find your account was purged, please create 
it again,
and make sure to get yourself added to this list. 

Looks like neither GCC's nor GDB's borrowed that longer text yet.

Thanks,
Pedro Alves



Re: [PATCH] Add extensions to dwarf2.def

2015-08-18 Thread Manuel López-Ibáñez

On 18/08/15 10:32, Pedro Alves wrote:

On 08/14/2015 10:49 AM, Pierre-Marie de Rodat wrote:


I also tried to create the new pages on the wiki but it says You are
not allowed to edit this page.
(https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator?action=edit,
I'm logged in as pmderodat). Does anyone know how I should proceed?



I believe you need to be added to the editor group:

   https://gcc.gnu.org/wiki/EditorGroup

You need someone on that list to add you.  (I'm not on the list).


Added. Please try now.

Cheers,

Manuel.


Re: [PATCH] Add extensions to dwarf2.def

2015-08-14 Thread Pierre-Marie de Rodat

Cary,

Thank you for your answer!

On 08/13/2015 09:01 PM, Cary Coutant wrote:

I don't think you really need a new TAG here -- DW_TAG_constant could
just as easily take DW_AT_GNU_numerator and DW_AT_GNU_denominator as
an alternative to DW_AT_const_value.


Good idea! I updated the patch accordingly.


I'm not really sure why DW_AT_small was defined to refer to a
DW_TAG_constant DIE rather than just providing the constant as the
attribute value. It would seem more efficient, space-wise, to have a
DW_AT_scale attribute that would provide a multiplicative scale
factor, and an optional DW_AT_scale_divisor to provide the denominator
if necessary.


Agreed.


Another, perhaps far-fetched, alternative would be to introduce a new
form that would represent a rational constant as two unsigned LEB128
values, and allow that form for DW_AT_const_value and/or for
DW_AT_small.


Indeed, that's an option, but I find it not very convenient: a new form 
would require us to enhance all DWARF reading tools whereas adding new 
tags and attributes is very smooth (not sure this is a good reason, but 
anyway...).



For now, I'd suggest going with your proposal, except use the existing
DW_TAG_constant instead of a new TAG. (I.e., just add the two new
DW_AT_numerator and DW_AT_denominator attributes.)


That's what I did.


include/
 * dwarf2.def (DW_AT_GNU_bias): New attribute.


This is OK. Looks like a good idea to me.


Great. Thank you again! I comitted the two attached (and updated) 
patches. I will update the corresponding dwarf2out.c changes I submitted 
on July as well.


I also tried to create the new pages on the wiki but it says You are 
not allowed to edit this page. 
(https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator?action=edit, 
I'm logged in as pmderodat). Does anyone know how I should proceed?


--
Pierre-Marie de Rodat
From 5b18866caaa8206788baf086c02a7aaf91d555a6 Mon Sep 17 00:00:00 2001
From: Pierre-Marie de Rodat dero...@adacore.com
Date: Tue, 9 Jun 2015 10:31:50 +0200
Subject: [PATCH 1/2] DWARF2: add extensions to handle fixed point types

include/ChangeLog:

	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
	attributes.
---
 include/ChangeLog  | 5 +
 include/dwarf2.def | 4 
 2 files changed, 9 insertions(+)

diff --git a/include/ChangeLog b/include/ChangeLog
index 46a4a28..ee59133 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2015-08-14  Pierre-Marie de Rodat  dero...@adacore.com
+
+	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
+	attributes.
+
 2015-08-11  Trevor Saunders  tbsaunde+...@tbsaunde.org
 
 	* ansidecl.h (GCC_FINAL): New macro.
diff --git a/include/dwarf2.def b/include/dwarf2.def
index e61cfbe..9603c04 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -404,6 +404,10 @@ DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type .  */
 DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
 DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
+/* Rational constant extension.
+   See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator .  */
+DW_TAG (DW_AT_GNU_numerator, 0x2303)
+DW_TAG (DW_AT_GNU_denominator, 0x2304)
 /* UPC extension.  */
 DW_AT (DW_AT_upc_threads_scaled, 0x3210)
 /* PGI (STMicroelectronics) extensions.  */
-- 
2.4.6

From fcddb9fe71187eca4f49576c4f36e5a3d051b669 Mon Sep 17 00:00:00 2001
From: Pierre-Marie de Rodat dero...@adacore.com
Date: Tue, 9 Jun 2015 10:31:50 +0200
Subject: [PATCH 2/2] DWARF2: add extensions to handle biased types

include/ChangeLog:

	* dwarf2.def (DW_AT_GNU_bias): New attribute.
---
 include/ChangeLog  | 4 
 include/dwarf2.def | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/include/ChangeLog b/include/ChangeLog
index ee59133..6962f85 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,5 +1,9 @@
 2015-08-14  Pierre-Marie de Rodat  dero...@adacore.com
 
+	* dwarf2.def (DW_AT_GNU_bias): New attribute.
+
+2015-08-14  Pierre-Marie de Rodat  dero...@adacore.com
+
 	* dwarf2.def (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New
 	attributes.
 
diff --git a/include/dwarf2.def b/include/dwarf2.def
index 9603c04..2dfee56 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -408,6 +408,9 @@ DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator .  */
 DW_TAG (DW_AT_GNU_numerator, 0x2303)
 DW_TAG (DW_AT_GNU_denominator, 0x2304)
+/* Biased integer extension.
+   See https://gcc.gnu.org/wiki/DW_AT_GNU_bias .  */
+DW_TAG (DW_AT_GNU_bias, 0x2305)
 /* UPC extension.  */
 DW_AT (DW_AT_upc_threads_scaled, 0x3210)
 /* PGI (STMicroelectronics) extensions.  */
-- 
2.4.6



Re: [PATCH] Add extensions to dwarf2.def

2015-08-13 Thread Cary Coutant
 I'm currently working on migrating debugging information for Ada from GNAT
 encodings to standard DWARF. At the moment, I have worked on two topics that
 I believe are not (completely) supported in standard DWARF:

   - fixed point types with arbitrary scale factors;
   - scalar types with biased representations.

 My goal is to submit an issue on dwarfstd.org in an attempt to introduce
 these extensions to the next DWARF standard. Before that, though, I would
 like to make sure that these extensions actually fit the need by having them
 supported both in GCC and GDB.

 The two attached patches make these extensions public so that no other
 vendor-specific tags/attributes conflict with them in the future. I cannot
 submit the patches that actually use these right now because I need first to
 port them from the 4.9 branch onto mainline (I hope I will be able to do
 this on early July).

 May I commit them?

 I also attached two documents that describe how to use these extensions. I
 guess this should go to the wiki just like for DW_AT_GNAT_descriptive_type
 (https://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type). I will do this if
 the patches are integrated.

 Thank you in advance!

 include/
 * dwarf2.def (DW_TAG_GNU_rational_constant): New tag.
 (DW_AT_GNU_numerator, DW_AT_GNU_denominator): New attributes.

I don't think you really need a new TAG here -- DW_TAG_constant could
just as easily take DW_AT_GNU_numerator and DW_AT_GNU_denominator as
an alternative to DW_AT_const_value.

I'm not really sure why DW_AT_small was defined to refer to a
DW_TAG_constant DIE rather than just providing the constant as the
attribute value. It would seem more efficient, space-wise, to have a
DW_AT_scale attribute that would provide a multiplicative scale
factor, and an optional DW_AT_scale_divisor to provide the denominator
if necessary.

Another, perhaps far-fetched, alternative would be to introduce a new
form that would represent a rational constant as two unsigned LEB128
values, and allow that form for DW_AT_const_value and/or for
DW_AT_small.

For now, I'd suggest going with your proposal, except use the existing
DW_TAG_constant instead of a new TAG. (I.e., just add the two new
DW_AT_numerator and DW_AT_denominator attributes.)

 include/
 * dwarf2.def (DW_AT_GNU_bias): New attribute.

This is OK. Looks like a good idea to me.

-cary