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