How to build an executable with profiling?
Steve Kargl
sgk at troutmask.apl.washington.edu
Tue Jan 18 16:02:53 UTC 2011
On Tue, Jan 18, 2011 at 03:32:05PM +0100, Roman Divacky wrote:
> On Mon, Jan 17, 2011 at 10:44:11AM -0800, Steve Kargl wrote:
> > How does one build an executable for profiling with clang?
>
> LLVM (and thus clang) does not support GPROF profiling.
>
> > clang -o testf -O2 -march=native -pipe -static -pg -I/usr/local/include -I../mp testf.c -L/usr/local/lib -L../mp -lsgk -lmpfr -lgmp -L/usr/home/kargl/work/lib -lm_clang_p
> > clang: warning: the clang compiler does not support '-pg'
> >
> > I suppose it will be pointless to ask, but shouldn't clang
> > support one of the most basic gcc compiler options if clang
> > is to replace gcc as the base system compiler?
>
> is GPROF really needed at this point? we have HWPMC, isnt
> it sufficient?
>
Well, I have not found a suitable command or commands
to replace
cc -o testf -O2 -march=native -pipe -static -pg testf.c -lm_p
./testf -s -n 10
10000000 expf calls in 1.846954 seconds.
gprof -b -l ./testf testf.gmon | head -15 |tail -10
granularity: each sample hit covers 4 byte(s) for 0.01% of 1.84 seconds
% cumulative self self total
time seconds seconds calls ms/call ms/call name
55.8 1.03 1.03 0 100.00% _mcount [1]
22.9 1.45 0.42 10000000 0.00 0.00 t_expf [4]
12.9 1.68 0.24 1 236.65 709.57 main [2]
5.6 1.79 0.10 0 100.00% .mcount (29)
2.8 1.84 0.05 10000000 0.00 0.00 __fpclassifyf [5]
0.0 1.84 0.00 6 0.00 0.00 memchr [6]
0.0 1.84 0.00 6 0.00 0.00 memcpy [7]
Not to mention, one needs to compile a kernel with hwpmc
included whereas gprof does not require a special kernel
device driver.
--
Steve
More information about the freebsd-toolchain
mailing list