Mesa (master): llvmpipe: Describe how to profile llvmpipe.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Tue Sep 21 16:55:37 UTC 2010
Module: Mesa
Branch: master
Commit: 388c94195af41c2084f4882ab414c86b575818fb
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=388c94195af41c2084f4882ab414c86b575818fb
Author: José Fonseca <jfonseca at vmware.com>
Date: Tue Sep 21 17:50:30 2010 +0100
llvmpipe: Describe how to profile llvmpipe.
---
src/gallium/drivers/llvmpipe/README | 38 +++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/README b/src/gallium/drivers/llvmpipe/README
index 8b5539d..ec30d4d 100644
--- a/src/gallium/drivers/llvmpipe/README
+++ b/src/gallium/drivers/llvmpipe/README
@@ -131,6 +131,44 @@ replacing the native ICD driver, but it's quite an advanced usage, so if you
need to ask, don't even try it.
+Profiling
+=========
+
+To profile llvmpipe you should pass the options
+
+ scons debug=no profile=yes <same-as-before>
+
+This will ensure that frame pointers are used both in C and JIT functions, and
+that no tail call optimizations are done by gcc.
+
+
+To better profile JIT code you'll need to build LLVM with oprofile integration.
+
+ source_dir=$PWD/llvm-2.6
+ build_dir=$source_dir/build/profile
+ install_dir=$source_dir-profile
+
+ mkdir -p "$build_dir"
+ cd "$build_dir" && \
+ $source_dir/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
+
+The you should define
+
+ export LLVM=/path/to/llvm-2.6-profile
+
+and rebuild.
+
+
Unit testing
============
More information about the mesa-commit
mailing list