[PATCH] D21698: [OpenCL] Allow disabling types and declarations associated with extensions
Anastasia Stulova via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 21 12:45:17 PDT 2016
Anastasia added a comment.
In https://reviews.llvm.org/D21698#546733, @yaxunl wrote:
> In https://reviews.llvm.org/D21698#540237, @Anastasia wrote:
>
> > I have made an experiment with a simple kernel:
> >
> > void foo1(void);
> > void foo2(void);
> > void foo3(void);
> > void foo4(void);
> > void foo5(void);
> > void foo6(void);
> > void foo7(void);
> > void foo8(void);
> > void foo9(void);
> > void foo10(void);
> >
> > void test(){
> > foo1();
> > foo2();
> > foo3();
> > foo4();
> > foo5();
> > foo6();
> > foo7();
> > foo8();
> > foo9();
> > foo10();
> > }
> >
> >
> > I am using time utility of linux to measure the compile time running Clang in CL2.0 mode and average over 100 samples. It shows me around 7% overhead with your approach.
>
>
> Since the program is very small, it is difficult to measure the compilation time accurately. I compile the program 1000 times and measure its time in a script:
>
> $ cat run.sh
> run() {
> i=1
> while [[ $i -le 1000 ]]; do
> ./$1 -cc1 -emit-llvm tmp.cl
> i=$((i+1))
> done
> }
>
> time -p run $1
>
>
>
> Even so, I found large variations in the measured compilation time. I ran the script 10 times for clang before my change and I got the real time
>
> real 8.96
> real 9.01
> real 8.99
> real 9.07
> real 9.03
> real 8.99
> real 9.03
> real 9.01
> real 8.99
> real 9.01
>
>
>
> and the average time is 9.009s.
>
> For clang after my change, I got
>
> real 9.06
> real 9.09
> real 9.10
> real 9.03
> real 9.05
> real 9.17
> real 9.08
> real 9.08
> real 9.07
> real 9.08
>
>
>
> And the average time is 9.081s.
>
> The increase of compilation time is 0.8%. Considering this program consists mostly of function declarations, which emphasized the cost of evaluating disabled function declarations unrealistically. In real programs this increment in compilation time should be even smaller.
>
> Since the increment of compilation time is less than 1% even for exaggerated cases, I think it is reasonable to accept the cost for the improved diagnostics for extensions.
>
> If there are concerns that the newly added diagnostics may break applications which use builtin functions associated with an extension without enabling it, we can make the diagnostic msg a warning which can be turned off.
Ok. Sure. I will profile a few more benchmarks and let you know.
https://reviews.llvm.org/D21698
More information about the cfe-commits
mailing list