summaryrefslogtreecommitdiffstats
path: root/src/amd/common/ac_llvm_helper.cpp
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-07-05 02:27:45 -0400
committerMarek Olšák <[email protected]>2018-07-19 00:58:49 -0400
commit9b82d128c96ec73eaef6b167a4651ae9716a0424 (patch)
tree6601414f4b57a554d831d3e1cd85fdf5b36e2b11 /src/amd/common/ac_llvm_helper.cpp
parent17b5a59b4ee3adb9c99f3d850eb4a561196c69a0 (diff)
ac: run LLVM optimization passes only on the final function after inlining
Diffstat (limited to 'src/amd/common/ac_llvm_helper.cpp')
-rw-r--r--src/amd/common/ac_llvm_helper.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/amd/common/ac_llvm_helper.cpp b/src/amd/common/ac_llvm_helper.cpp
index 4348ebd36ee..e0943135fad 100644
--- a/src/amd/common/ac_llvm_helper.cpp
+++ b/src/amd/common/ac_llvm_helper.cpp
@@ -36,6 +36,7 @@
#include <llvm/Target/TargetMachine.h>
#include <llvm/IR/IRBuilder.h>
#include <llvm/Analysis/TargetLibraryInfo.h>
+#include <llvm/Transforms/IPO.h>
#include <llvm/IR/LegacyPassManager.h>
#if HAVE_LLVM < 0x0700
@@ -165,3 +166,8 @@ bool ac_compile_module_to_binary(struct ac_compiler_passes *p, LLVMModuleRef mod
fprintf(stderr, "amd: cannot read an ELF shader binary\n");
return success;
}
+
+void ac_llvm_add_barrier_noop_pass(LLVMPassManagerRef passmgr)
+{
+ llvm::unwrap(passmgr)->add(llvm::createBarrierNoopPass());
+}