Mesa (master): draw/llvm: Add additional llvm optimization passes

Stephane Marchesin marcheu at kemper.freedesktop.org
Thu May 9 04:02:17 UTC 2013


Module: Mesa
Branch: master
Commit: 1c56fc1025e14827b69e4dd354aea4c9e487c0dd
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c56fc1025e14827b69e4dd354aea4c9e487c0dd

Author: Stéphane Marchesin <marcheu at chromium.org>
Date:   Sun May  5 04:34:40 2013 -0700

draw/llvm: Add additional llvm optimization passes

It helps a bit with vertex shader performance on i915g
(a couple percent faster with openarena).

I have tried most other passes, and they weren't showing
any measurable improvement. Note that my vertex shaders
didn't have loops, so maybe the loop optimizations could
still be useful in the future.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/auxiliary/gallivm/lp_bld_init.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
index 673c16e..4a428ee 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -147,7 +147,10 @@ create_pass_manager(struct gallivm_state *gallivm)
        * but there are more on SVN.
        * TODO: Add more passes.
        */
+      LLVMAddScalarReplAggregatesPass(gallivm->passmgr);
+      LLVMAddLICMPass(gallivm->passmgr);
       LLVMAddCFGSimplificationPass(gallivm->passmgr);
+      LLVMAddReassociatePass(gallivm->passmgr);
 
       if (HAVE_LLVM >= 0x207 && sizeof(void*) == 4) {
          /* For LLVM >= 2.7 and 32-bit build, use this order of passes to




More information about the mesa-commit mailing list