diff options
author | José Fonseca <[email protected]> | 2010-09-21 17:50:30 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-09-21 17:51:29 +0100 |
commit | 388c94195af41c2084f4882ab414c86b575818fb (patch) | |
tree | 68207e0c2a2ddc0009b8f79df68bf64cf2c424a7 | |
parent | b3a647276e5fae570628826961c9b86612c2a2c6 (diff) |
llvmpipe: Describe how to profile llvmpipe.
-rw-r--r-- | 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 8b5539d2c51..ec30d4d7084 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 ============ |