Re: [RFD] Extremely large alignment of read-only strings
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
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
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
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
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