Re: Backporting Patches to GCC 7

2017-05-09 Thread Richard Biener
On Mon, May 8, 2017 at 10:00 PM, Jonathan Wakely  wrote:
> On 5 May 2017 at 21:35, Palmer Dabbelt wrote:
>> I just submitted two patches against trunk.  I'd like to also have them on 
>> the
>> 7 branch, so when 7.2 comes out we'll have them.  These patches only touch 
>> the
>> RISC-V backend, which I'm a maintainer of.  Is there a branch maintainer I'm
>> supposed to have sign off on the patches or am I meant to just decide on my 
>> own
>> what I should commit?
>>
>> For reference, here's the patches
>>
>> 284b54c RISC-V: Add -mstrict-align option
>> 70218e8 RISC-V: Unify indention in riscv.md
>
> In general, backports that aren't fixing regressions or documentation
> would need release managers approval. There's some leeway for target
> maintainers of ports and other subsystems, for example I sometimes
> make executive decisions about the C++ runtime libraries when the
> backport only affects an isolated part of the library, or is clearly
> safe and an obvious improvement. For bigger changes that aren't
> regressions but I'd like to backport I still seek RM approval.
>
> I would guess that for RISC-V which is new in 7.1, if you think the
> backport is important and it doesn't affect other targets then it
> should be OK.
>
> Maybe one of the release managers can confirm that though.

Generally all maintainers can also approve backports.

Richard.


Re: [RFC] GCC 8 Project proposal: Extensions supporting C Metaprogramming, pseudo-templates

2017-05-09 Thread Florian Weimer

On 05/09/2017 01:36 AM, Daniel Santos wrote:
To further the usefulness of such techniques, I propose the addition of 
a c-family attribute to declare a parameter, variable (and possibly 
other declarations) as "constprop" or some similar word. The purpose of 
the attribute is to:


1.) Emit a warning or error when the value is not optimized away, and
2.) Direct various optimization passes to prefer (or force) either 
cloning or inlining of a function with such a parameter.


I think GCC used to treat C and C++ constant expressions this way in the 
old days.  That is, what was a constant expression depended to some 
degree on the capabilities of the folder at least (and maybe the 
optimizers).  This wasn't such a great idea because it made behavior 
inconsistent across architectures and GCC versions.


There are also thorny specification issues, like is an array whose 
length is a constprop value a VLA or not?


If you are interested in metaprogramming techniques, you are probably 
better off writing code generators or using a C++ subset.


Thanks,
Florian


Re: [RFC] GCC 8 Project proposal: Extensions supporting C Metaprogramming, pseudo-templates

2017-05-09 Thread Allan Sandfeld Jensen
On Tuesday 09 May 2017, Daniel Santos wrote:
> The primary aim is to facilitate high-performance generic C
> libraries for software where C++ is not suitable, but the cost of
> run-time abstraction is unacceptable. A good example is the Linux
> kernel, where the source tree is littered with more than 100 hand-coded
> or boiler-plate (copy, paste and edit) search cores required to use the
> red-black tree library.
That is not a good excuse, they can just use a defined subset of C++. The cost 
of C++ abstractions is zero if you don't use them. 

> 
> To further the usefulness of such techniques, I propose the addition of
> a c-family attribute to declare a parameter, variable (and possibly
> other declarations) as "constprop" or some similar word. The purpose of
> the attribute is to:
> 
> 1.) Emit a warning or error when the value is not optimized away, and
> 2.) Direct various optimization passes to prefer (or force) either
> cloning or inlining of a function with such a parameter.
> 
This I can get more behind, I have wanted a constexpr attribute for C for some 
time. If not for anything else to be able to use it in shared/system headers 
that can be used by both C and C++ and in C++ would be useful in constexpr 
expressions. If you can find a use for it in pure C as well, so much the 
better.

`Allan


gcc-5-20170509 is now available

2017-05-09 Thread gccadmin
Snapshot gcc-5-20170509 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/5-20170509/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 5 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-5-branch 
revision 247819

You'll find:

 gcc-5-20170509.tar.bz2   Complete GCC

  SHA256=d89ef59f24dbe900a952c5fb7079610c4cac2b09aaca9f8c95e4e90ffe7ad7f9
  SHA1=22dcd950057583119bd82adb1809385d8f497703

Diffs from 5-20170502 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-5
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Move myself to Write After Approval section

2017-05-09 Thread Kaz Kojima
Hi all,

I am stepping down as the SH backend maintainer for personal reasons.
I might still send tiny SH patches and sh-linux testresults if the HDD
of my SH machine can be recovered.  I've moved myself to write after
approval section.

I didn't think that I could be involved with such huge and highly
sophisticated software when I sent my first awful patch.  It was
full of fun to participate in this great community.  I've learned
what is the right thing and how it can be done on the list.
Thanks to all members of gcc community!

Best Regards,
kaz
--
2017-05-09  Kaz Kojima  

* MAINTAINERS: Move myself to Write After Approval section.

Index: MAINTAINERS
===
--- MAINTAINERS (revision 247819)
+++ MAINTAINERS (working copy)
@@ -101,7 +101,6 @@
 s390 port  Andreas Krebbel 
 score port Chen Liqin  
 sh portAlexandre Oliva 
-sh portKaz Kojima  
 sh portOleg Endo   
 sparc port Richard Henderson   
 sparc port David S. Miller 
@@ -449,6 +448,7 @@
 Jeff Knaggs
 Michael Koch   
 Nicolas Koenig 
+Kaz Kojima 
 Dave Korn  
 Matt Kraai 
 Jan Kratochvil 


Re: Backporting Patches to GCC 7

2017-05-09 Thread Palmer Dabbelt
On Tue, 09 May 2017 01:50:42 PDT (-0700), richard.guent...@gmail.com wrote:
> On Mon, May 8, 2017 at 10:00 PM, Jonathan Wakely  
> wrote:
>> On 5 May 2017 at 21:35, Palmer Dabbelt wrote:
>>> I just submitted two patches against trunk.  I'd like to also have them on 
>>> the
>>> 7 branch, so when 7.2 comes out we'll have them.  These patches only touch 
>>> the
>>> RISC-V backend, which I'm a maintainer of.  Is there a branch maintainer I'm
>>> supposed to have sign off on the patches or am I meant to just decide on my 
>>> own
>>> what I should commit?
>>>
>>> For reference, here's the patches
>>>
>>> 284b54c RISC-V: Add -mstrict-align option
>>> 70218e8 RISC-V: Unify indention in riscv.md
>>
>> In general, backports that aren't fixing regressions or documentation
>> would need release managers approval. There's some leeway for target
>> maintainers of ports and other subsystems, for example I sometimes
>> make executive decisions about the C++ runtime libraries when the
>> backport only affects an isolated part of the library, or is clearly
>> safe and an obvious improvement. For bigger changes that aren't
>> regressions but I'd like to backport I still seek RM approval.
>>
>> I would guess that for RISC-V which is new in 7.1, if you think the
>> backport is important and it doesn't affect other targets then it
>> should be OK.
>>
>> Maybe one of the release managers can confirm that though.
>
> Generally all maintainers can also approve backports.

OK, thanks.  Since the RISC-V port is so new I'd like to be a bit aggressive
about backporting our fixes.  If this goes anything like binutils did, there's
going to be a handful of bug fixes that trickle in over the next few weeks as
more people start using the port now that there's a release.  For example,
we've got a few patches in the pipeline that get our -mcmodel=medany working
passing the test suite.

Is it OK if I pretty much just backport everything RISC-V related to
gcc-7-branch, as long as it doesn't touch any other port?  I can ping you about
each patch if you'd like.