diff options
Diffstat (limited to 'mesalib/docs/llvmpipe.html')
-rw-r--r-- | mesalib/docs/llvmpipe.html | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/mesalib/docs/llvmpipe.html b/mesalib/docs/llvmpipe.html index be0308321..80f8a0176 100644 --- a/mesalib/docs/llvmpipe.html +++ b/mesalib/docs/llvmpipe.html @@ -130,38 +130,38 @@ need to ask, don't even try it. <h1>Profiling</h1> -To profile llvmpipe you should pass the options - +<p> +To profile llvmpipe you should build as +</p> <pre> scons build=profile <same-as-before> </pre> +<p> This will ensure that frame pointers are used both in C and JIT functions, and that no tail call optimizations are done by gcc. +</p> -To better profile JIT code you'll need to build LLVM with oprofile integration. - -<pre> - ./configure \ - --prefix=$install_dir \ - --enable-optimized \ - --disable-profiling \ - --enable-targets=host-only \ - --with-oprofile - - make -C "$build_dir" - make -C "$build_dir" install - - find "$install_dir/lib" -iname '*.a' -print0 | xargs -0 strip --strip-debug -</pre> +<h2>Linux perf integration</h2> -The you should define +<p> +On Linux, it is possible to have symbol resolution of JIT code with <a href="http://perf.wiki.kernel.org/">Linux perf</a>: +</p> <pre> - export LLVM=/path/to/llvm-2.6-profile + perf record -g /my/application + perf report </pre> -and rebuild. +<p> +When run inside Linux perf, llvmpipe will create a /tmp/perf-XXXXX.map file with +symbol address table. It also dumps assembly code to /tmp/perf-XXXXX.map.asm, +which can be used by the bin/perf-annotate-jit script to produce disassembly of +the generated code annotated with the samples. +</p> + +<p>You can obtain a call graph via +<a href="http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#linux_perf">Gprof2Dot</a>.</p> <h1>Unit testing</h1> |