On June 29, 2016 6:20:29 PM GMT+02:00, Prathamesh Kulkarni <prathamesh.kulka...@linaro.org> wrote: >On 18 June 2016 at 12:02, Prasad Ghangal <prasad.ghan...@gmail.com> >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