Re: [RFD] Extremely large alignment of read-only strings

2016-07-28 Thread Alexander Monakov
On Wed, 27 Jul 2016, Thorsten Glaser wrote:

First of all, I think option -malign-data=abi (new in GCC 5) addresses your
need: it can be used to reduce the default (excessive) alignment to just the
psABI-dictated value (you can play with this at https://gcc.godbolt.org even if
you can't install GCC-5 locally).

Note that like with other ABI-affecting options you need to consider
implications for linking with code you're not building yourself: if the other
code expects bigger alignment, you'll have a bug.

One comment to your email below.

> After some (well, lots) more debugging, I eventually
> discovered -fdump-translation-unit (which, in the version
> I was using, also worked for C, not just C++), which showed
> me that the alignment was 256 even (only later reduced to
> 32 as that’s the maximum alignment for i386).

Most likely the quoted figures from GCC dumps are in bits, not bytes.

HTH
Alexander

Re: [gimplefe] hacking pass manager

2016-07-28 Thread Prasad Ghangal
On 27 July 2016 at 14:22, Richard Biener  wrote:
> On Tue, Jul 26, 2016 at 11:38 PM, Prathamesh Kulkarni
>  wrote:
>> On 27 July 2016 at 00:20, Prasad Ghangal  wrote:
>>> On 20 July 2016 at 18:28, Richard Biener  wrote:
 On Wed, Jul 20, 2016 at 1:46 PM, Prathamesh Kulkarni
  wrote:
> On 20 July 2016 at 11:34, Richard Biener  
> wrote:
>> On Tue, Jul 19, 2016 at 10:09 PM, Prasad Ghangal
>>  wrote:
>>> On 19 July 2016 at 11:04, Richard Biener  
>>> wrote:
 On July 18, 2016 11:05:58 PM GMT+02:00, David Malcolm 
  wrote:
>On Tue, 2016-07-19 at 00:52 +0530, Prasad Ghangal wrote:
>> On 19 July 2016 at 00:25, Richard Biener 
>> wrote:
>> > On July 18, 2016 8:28:15 PM GMT+02:00, Prasad Ghangal <
>> > prasad.ghan...@gmail.com> wrote:
>> > > On 15 July 2016 at 16:13, Richard Biener <
>> > > richard.guent...@gmail.com>
>> > > wrote:
>> > > > On Sun, Jul 10, 2016 at 6:13 PM, Prasad Ghangal
>> > > >  wrote:
>> > > > > On 8 July 2016 at 13:13, Richard Biener <
>> > > > > richard.guent...@gmail.com>
>> > > wrote:
>> > > > > > On Thu, Jul 7, 2016 at 9:45 PM, Prasad Ghangal
>> > >  wrote:
>> > > > > > > On 6 July 2016 at 14:24, Richard Biener
>> > >  wrote:
>> > > > > > > > On Wed, Jul 6, 2016 at 9:51 AM, Prasad Ghangal
>> > >  wrote:
>> > > > > > > > > On 30 June 2016 at 17:10, Richard Biener
>> > >  wrote:
>> > > > > > > > > > On Wed, Jun 29, 2016 at 9:13 PM, Prasad Ghangal
>> > > > > > > > > >  wrote:
>> > > > > > > > > > > On 29 June 2016 at 22:15, Richard Biener
>> > >  wrote:
>> > > > > > > > > > > > On June 29, 2016 6:20:29 PM GMT+02:00,
>> > > > > > > > > > > > Prathamesh Kulkarni
>> > >  wrote:
>> > > > > > > > > > > > > On 18 June 2016 at 12:02, Prasad Ghangal
>> > > 
>> > > > > > > > > > > > > wrote:
>> > > > > > > > > > > > > > Hi,
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > I tried hacking pass manager to execute
>> > > > > > > > > > > > > > only given passes.
>> > > For this I
>> > > > > > > > > > > > > > am adding new member as opt_pass
>> > > > > > > > > > > > > > *custom_pass_list to the
>> > > function
>> > > > > > > > > > > > > > structure to store passes need to execute
>> > > > > > > > > > > > > > and providing the
>> > > > > > > > > > > > > > custom_pass_list to execute_pass_list()
>> > > > > > > > > > > > > > function instead of
>> > > all
>> > > > > > > > > > > > > passes
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > for test case like-
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > int a;
>> > > > > > > > > > > > > > void __GIMPLE (execute ("tree-ccp1", "tree
>> > > > > > > > > > > > > > -fre1")) foo()
>> > > > > > > > > > > > > > {
>> > > > > > > > > > > > > > bb_1:
>> > > > > > > > > > > > > >   a = 1 + a;
>> > > > > > > > > > > > > > }
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > it will execute only given passes i.e. ccp1
>> > > > > > > > > > > > > > and fre1 pass
>> > > on the
>> > > > > > > > > > > > > function
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > and for test case like -
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > int a;
>> > > > > > > > > > > > > > void __GIMPLE (startwith ("tree-ccp1"))
>> > > > > > > > > > > > > > foo()
>> > > > > > > > > > > > > > {
>> > > > > > > > > > > > > > bb_1:
>> > > > > > > > > > > > > >   a = 1 + a;
>> > > > > > > > > > > > > > }
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > > > it will act as a entry point to the
>> > > > > > > > > > > > > > pipeline and will
>> > > execute passes
>> > > > > > > > > > > > > > starting from given pass.
>> > > > > > > > > > > > > Bike-shedding:
>> > > > > > > > > > > > > Would it make sense to have syntax for
>> > > > > > > > > > > > > defining pass ranges
>> > > to execute
>> > > > > > > > > > > > > ?
>> > > > > > > > > > > > > for instance:
>> > > > > > > > > > > > > void __GIMPLE(execute (pass_start :
>> > > > > > > > > > > > > pass_end))
>> > > > > > > > > > > > > which would execute all the passes within
>> > > > > > > > > > > > > range [pass_start,
>> > > pass_end],
>> > > > > > > > > > > > > which would be convenient if the range is
>> > > > > > > > > > > > > large.
>> > > > > > > > > > > >
>> > > > > > > > > > > > But it would rely on a particular pass
>> > > > > > > > 

Re: [RFD] Extremely large alignment of read-only strings

2016-07-28 Thread Thorsten Glaser
Alexander Monakov dixit:

>First of all, I think option -malign-data=abi (new in GCC 5) addresses your
>need: it can be used to reduce the default (excessive) alignment to just the
>psABI-dictated value (you can play with this at https://gcc.godbolt.org even if

Ah, nice!

>Note that like with other ABI-affecting options you need to consider
>implications for linking with code you're not building yourself: if the other
>code expects bigger alignment, you'll have a bug.

Yes, of course, but in this case, “the other code” is libc,
and it “better behave”. ☺

>> I was using, also worked for C, not just C++), which showed
>> me that the alignment was 256 even (only later reduced to
>> 32 as that’s the maximum alignment for i386).
>
>Most likely the quoted figures from GCC dumps are in bits, not bytes.

Oh, or that. That makes more sense, yes, thanks.

bye,
//mirabilos
-- 
“It is inappropriate to require that a time represented as
 seconds since the Epoch precisely represent the number of
 seconds between the referenced time and the Epoch.”
-- IEEE Std 1003.1b-1993 (POSIX) Section B.2.2.2


gcc-6-20160728 is now available

2016-07-28 Thread gccadmin
Snapshot gcc-6-20160728 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/6-20160728/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

 gcc-6-20160728.tar.bz2   Complete GCC

  MD5=e0e4a845bf9b302e6bc3dd97a44c723e
  SHA1=d839865c323b8b63bdca3b2cecf38ae4fd1d4b8b

Diffs from 6-20160721 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-6
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.


Re: [gimplefe] hacking pass manager

2016-07-28 Thread Prathamesh Kulkarni
On 29 July 2016 at 00:01, Prasad Ghangal  wrote:
> On 27 July 2016 at 14:22, Richard Biener  wrote:
>> On Tue, Jul 26, 2016 at 11:38 PM, Prathamesh Kulkarni
>>  wrote:
>>> On 27 July 2016 at 00:20, Prasad Ghangal  wrote:
 On 20 July 2016 at 18:28, Richard Biener  
 wrote:
> On Wed, Jul 20, 2016 at 1:46 PM, Prathamesh Kulkarni
>  wrote:
>> On 20 July 2016 at 11:34, Richard Biener  
>> wrote:
>>> On Tue, Jul 19, 2016 at 10:09 PM, Prasad Ghangal
>>>  wrote:
 On 19 July 2016 at 11:04, Richard Biener  
 wrote:
> On July 18, 2016 11:05:58 PM GMT+02:00, David Malcolm 
>  wrote:
>>On Tue, 2016-07-19 at 00:52 +0530, Prasad Ghangal wrote:
>>> On 19 July 2016 at 00:25, Richard Biener 
>>> 
>>> wrote:
>>> > On July 18, 2016 8:28:15 PM GMT+02:00, Prasad Ghangal <
>>> > prasad.ghan...@gmail.com> wrote:
>>> > > On 15 July 2016 at 16:13, Richard Biener <
>>> > > richard.guent...@gmail.com>
>>> > > wrote:
>>> > > > On Sun, Jul 10, 2016 at 6:13 PM, Prasad Ghangal
>>> > > >  wrote:
>>> > > > > On 8 July 2016 at 13:13, Richard Biener <
>>> > > > > richard.guent...@gmail.com>
>>> > > wrote:
>>> > > > > > On Thu, Jul 7, 2016 at 9:45 PM, Prasad Ghangal
>>> > >  wrote:
>>> > > > > > > On 6 July 2016 at 14:24, Richard Biener
>>> > >  wrote:
>>> > > > > > > > On Wed, Jul 6, 2016 at 9:51 AM, Prasad Ghangal
>>> > >  wrote:
>>> > > > > > > > > On 30 June 2016 at 17:10, Richard Biener
>>> > >  wrote:
>>> > > > > > > > > > On Wed, Jun 29, 2016 at 9:13 PM, Prasad Ghangal
>>> > > > > > > > > >  wrote:
>>> > > > > > > > > > > On 29 June 2016 at 22:15, Richard Biener
>>> > >  wrote:
>>> > > > > > > > > > > > On June 29, 2016 6:20:29 PM GMT+02:00,
>>> > > > > > > > > > > > Prathamesh Kulkarni
>>> > >  wrote:
>>> > > > > > > > > > > > > On 18 June 2016 at 12:02, Prasad Ghangal
>>> > > 
>>> > > > > > > > > > > > > wrote:
>>> > > > > > > > > > > > > > Hi,
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > I tried hacking pass manager to execute
>>> > > > > > > > > > > > > > only given passes.
>>> > > For this I
>>> > > > > > > > > > > > > > am adding new member as opt_pass
>>> > > > > > > > > > > > > > *custom_pass_list to the
>>> > > function
>>> > > > > > > > > > > > > > structure to store passes need to execute
>>> > > > > > > > > > > > > > and providing the
>>> > > > > > > > > > > > > > custom_pass_list to execute_pass_list()
>>> > > > > > > > > > > > > > function instead of
>>> > > all
>>> > > > > > > > > > > > > passes
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > for test case like-
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > int a;
>>> > > > > > > > > > > > > > void __GIMPLE (execute ("tree-ccp1", "tree
>>> > > > > > > > > > > > > > -fre1")) foo()
>>> > > > > > > > > > > > > > {
>>> > > > > > > > > > > > > > bb_1:
>>> > > > > > > > > > > > > >   a = 1 + a;
>>> > > > > > > > > > > > > > }
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > it will execute only given passes i.e. 
>>> > > > > > > > > > > > > > ccp1
>>> > > > > > > > > > > > > > and fre1 pass
>>> > > on the
>>> > > > > > > > > > > > > function
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > and for test case like -
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > int a;
>>> > > > > > > > > > > > > > void __GIMPLE (startwith ("tree-ccp1"))
>>> > > > > > > > > > > > > > foo()
>>> > > > > > > > > > > > > > {
>>> > > > > > > > > > > > > > bb_1:
>>> > > > > > > > > > > > > >   a = 1 + a;
>>> > > > > > > > > > > > > > }
>>> > > > > > > > > > > > > >
>>> > > > > > > > > > > > > > it will act as a entry point to the
>>> > > > > > > > > > > > > > pipeline and will
>>> > > execute passes
>>> > > > > > > > > > > > > > starting from given pass.
>>> > > > > > > > > > > > > Bike-shedding:
>>> > > > > > > > > > > > > Would it make sense to have syntax for
>>> > > > > > > > > > > > > defining pass ranges
>>> > > to execute
>>> > > > > > > > > > > > > ?
>>> > > > > > > > > > > > > for instance:
>>> > > > > > > > > > > > > void __GIMPLE(execute (pass_start :
>>> > > > > > > > > > > > > pass_end))
>>> > > > > > > > > > > > > which would execute all the passes within
>>> > > > > > > > > > > > > range [pass_start,
>>> > > pass_end],
>>> > > > > > > > > > > > > whic