Re: [gimplefe] Parsing PHI functions
On Tue, Jun 28, 2016 at 4:16 PM, Prasad Ghangal wrote: > Hi, > > For handling PHI, it expects cfg to be built before. So I was > wondering how are we going to handle this? Do we need to build cfg > while parsing only? For handling PHIs we need to have a CFG in the sense that the GIMPLE PHI data structures are built in a way to have the PHI argument index correspond to CFG predecessor edge index. As we'd like to parse phis with args corresponding to predecessor block labels, like a: i_1 = 1; goto p; b: i_2 = 2; goto p; p: i_3 = __PHI (a: i_1, b: i_2); I think that a possibility is to leave those PHIs as internal function with label / arg pairs and have CFG construction lower them to real PHIs. Of course the parser could as well build a CFG on its own but I think we should use the easy way out for now. Thus you'd have to modify CFG construction a bit to lower the internal function calls. Richard. > > > > Thanks, > Prasad
Re: Missing git tags for released GCC
On 12/19/2014 05:16 PM, H.J. Lu wrote: > On Tue, Nov 25, 2014 at 3:12 AM, Jonathan Wakely > wrote: >> On 16 November 2014 at 15:51, H.J. Lu wrote: >>> Hi, >>> >>> Git tags are missing for GCC 4.9.1, 4.9.2, 4.8.3 and 4.7.4. >> >> I can't create the tags but these are the release commits: >> >> git tag gcc-4_9_2-release c1283af40b65f1ad862cf5b27e2d9ed10b2076b6 >> git tag gcc-4_9_1-release c6fa1b412663593960e6240eb66d82fa41a1fa0b >> git tag gcc-4_8_3-release 6bbf0dec66c0e719b06cd2fe67559fda6df09000 >> git tag gcc-4_7_4-release ae10eb82fe34c18640ad65c2ab94ffc53f349315 > > I added them together with gcc-4_8_4-release. > > Thanks. > Can I ask you for adding missing tag for 5.4.1 (32c3b88e8ced4b6d022484a73c40f3d663e20fd4) ? Thanks, Martin
Re: Missing git tags for released GCC
On 06/29/2016 12:13 PM, Martin Liška wrote: > Can I ask you for adding missing tag for 5.4.1 > (32c3b88e8ced4b6d022484a73c40f3d663e20fd4) ? I mean 5.4.0. Thanks
Re: [gimplefe] hacking pass manager
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. Thanks, Prathamesh > > > > Thanks, > Prasad Ghangal
Re: [gimplefe] hacking pass manager
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 pipeline, f.e. pass-start appearing before pass-end. Currently control doesn't work 100% as it only replaces all_optimizations but not lowering passes or early opts, nor IPA opts. Richard. >Thanks, >Prathamesh >> >> >> >> Thanks, >> Prasad Ghangal
Re: [gimplefe] hacking pass manager
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 pipeline, f.e. pass-start appearing > before pass-end. > > Currently control doesn't work 100% as it only replaces all_optimizations but > not lowering passes or early opts, nor IPA opts. > Each pass needs GIMPLE in some specific form. So I am letting lowering and early opt passes to execute. I think we have to execute some passes (like cfg) anyway to represent GIMPLE into proper form > Richard. > >>Thanks, >>Prathamesh >>> >>> >>> >>> Thanks, >>> Prasad Ghangal > >
gcc-4.9-20160629 is now available
Snapshot gcc-4.9-20160629 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20160629/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 4.9 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch revision 237862 You'll find: gcc-4.9-20160629.tar.bz2 Complete GCC MD5=90d5da05e2f3f9245c9ef234ac7067a1 SHA1=8e28c08446d16ff078a04dbf2c99b089962b423c Diffs from 4.9-20160622 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-4.9 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.