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