llvmpipe: Describe how to profile llvmpipe.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 21 Sep 2010 16:50:30 +0000 (17:50 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Tue, 21 Sep 2010 16:51:29 +0000 (17:51 +0100)
src/gallium/drivers/llvmpipe/README

index 8b5539d2c51f70765e2bf4ba8f92048d970a9111..ec30d4d70840eaa26be10adc5f38c27f6a0e8b3a 100644 (file)
@@ -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
 ============