diff options
author | Dave Airlie <[email protected]> | 2018-06-27 09:02:25 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2018-07-04 05:30:34 +1000 |
commit | 97d9b88447f52ad0df4845194562cb7f655c1289 (patch) | |
tree | 71954a520f78b8cab798fbc868af3189ac0d28d0 /src/amd | |
parent | 584ad1eda956f89338648fcd22e950ab9c32f465 (diff) |
radv: port to use common passmgr code.
This adds a inline always pass, but otherwise should work the
same.
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd')
-rw-r--r-- | src/amd/common/ac_llvm_util.c | 5 | ||||
-rw-r--r-- | src/amd/vulkan/radv_nir_to_llvm.c | 26 |
2 files changed, 6 insertions, 25 deletions
diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c index b25f9e3e6dd..01852dbff46 100644 --- a/src/amd/common/ac_llvm_util.c +++ b/src/amd/common/ac_llvm_util.c @@ -172,8 +172,9 @@ LLVMPassManagerRef ac_create_passmgr(LLVMTargetLibraryInfoRef target_library_inf if (!passmgr) return NULL; - LLVMAddTargetLibraryInfo(target_library_info, - passmgr); + if (target_library_info) + LLVMAddTargetLibraryInfo(target_library_info, + passmgr); if (check_ir) LLVMAddVerifierPass(passmgr); diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index ce6d5e1547d..dbbf2c13d66 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2996,30 +2996,10 @@ static void ac_llvm_finalize_module(struct radv_shader_context *ctx, const struct radv_nir_compiler_options *options) { LLVMPassManagerRef passmgr; - /* Create the pass manager */ - passmgr = LLVMCreateFunctionPassManagerForModule( - ctx->ac.module); - - if (options->check_ir) - LLVMAddVerifierPass(passmgr); - - /* This pass should eliminate all the load and store instructions */ - LLVMAddPromoteMemoryToRegisterPass(passmgr); - - /* Add some optimization passes */ - LLVMAddScalarReplAggregatesPass(passmgr); - LLVMAddLICMPass(passmgr); - LLVMAddAggressiveDCEPass(passmgr); - LLVMAddCFGSimplificationPass(passmgr); - /* This is recommended by the instruction combining pass. */ - LLVMAddEarlyCSEMemSSAPass(passmgr); - LLVMAddInstructionCombiningPass(passmgr); - - /* Run the pass */ - LLVMInitializeFunctionPassManager(passmgr); - LLVMRunFunctionPassManager(passmgr, ctx->main_function); - LLVMFinalizeFunctionPassManager(passmgr); + passmgr = ac_create_passmgr(NULL, options->check_ir); + + LLVMRunPassManager(passmgr, ctx->ac.module); LLVMDisposeBuilder(ctx->ac.builder); LLVMDisposePassManager(passmgr); |