mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 01:00:10 +01:00
radeonsi: fold surrounding code into si_llvm_finalize_module
and rename to si_llvm_optimize_module. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
5dad0c3477
commit
f8f8242e8b
3 changed files with 12 additions and 21 deletions
|
|
@ -7015,13 +7015,8 @@ si_generate_gs_copy_shader(struct si_screen *sscreen,
|
|||
|
||||
LLVMBuildRetVoid(gallivm->builder);
|
||||
|
||||
/* Dump LLVM IR before any optimization passes */
|
||||
if (sscreen->b.debug_flags & DBG_PREOPT_IR &&
|
||||
r600_can_dump_shader(&sscreen->b, PIPE_SHADER_GEOMETRY))
|
||||
ac_dump_module(ctx.gallivm.module);
|
||||
|
||||
si_llvm_finalize_module(&ctx,
|
||||
r600_extra_shader_checks(&sscreen->b, PIPE_SHADER_GEOMETRY));
|
||||
ctx.type = PIPE_SHADER_GEOMETRY; /* override for shader dumping */
|
||||
si_llvm_optimize_module(&ctx);
|
||||
|
||||
r = si_compile_llvm(sscreen, &ctx.shader->binary,
|
||||
&ctx.shader->config, ctx.tm,
|
||||
|
|
@ -8152,13 +8147,7 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
|
|||
need_prolog ? 1 : 0, 0);
|
||||
}
|
||||
|
||||
/* Dump LLVM IR before any optimization passes */
|
||||
if (sscreen->b.debug_flags & DBG_PREOPT_IR &&
|
||||
r600_can_dump_shader(&sscreen->b, ctx.type))
|
||||
LLVMDumpModule(ctx.gallivm.module);
|
||||
|
||||
si_llvm_finalize_module(&ctx,
|
||||
r600_extra_shader_checks(&sscreen->b, ctx.type));
|
||||
si_llvm_optimize_module(&ctx);
|
||||
|
||||
/* Post-optimization transformations and analysis. */
|
||||
si_eliminate_const_vs_outputs(&ctx);
|
||||
|
|
@ -8327,8 +8316,7 @@ si_get_shader_part(struct si_screen *sscreen,
|
|||
build(&ctx, key);
|
||||
|
||||
/* Compile. */
|
||||
si_llvm_finalize_module(&ctx,
|
||||
r600_extra_shader_checks(&sscreen->b, PIPE_SHADER_FRAGMENT));
|
||||
si_llvm_optimize_module(&ctx);
|
||||
|
||||
if (si_compile_llvm(sscreen, &result->binary, &result->config, tm,
|
||||
gallivm->module, debug, ctx.type, name)) {
|
||||
|
|
|
|||
|
|
@ -271,8 +271,7 @@ void si_llvm_create_func(struct si_shader_context *ctx,
|
|||
|
||||
void si_llvm_dispose(struct si_shader_context *ctx);
|
||||
|
||||
void si_llvm_finalize_module(struct si_shader_context *ctx,
|
||||
bool run_verifier);
|
||||
void si_llvm_optimize_module(struct si_shader_context *ctx);
|
||||
|
||||
LLVMValueRef si_llvm_emit_fetch_64bit(struct lp_build_tgsi_context *bld_base,
|
||||
enum tgsi_opcode_type type,
|
||||
|
|
|
|||
|
|
@ -1409,20 +1409,24 @@ void si_llvm_create_func(struct si_shader_context *ctx,
|
|||
LLVMPositionBuilderAtEnd(ctx->gallivm.builder, main_fn_body);
|
||||
}
|
||||
|
||||
void si_llvm_finalize_module(struct si_shader_context *ctx,
|
||||
bool run_verifier)
|
||||
void si_llvm_optimize_module(struct si_shader_context *ctx)
|
||||
{
|
||||
struct gallivm_state *gallivm = &ctx->gallivm;
|
||||
const char *triple = LLVMGetTarget(gallivm->module);
|
||||
LLVMTargetLibraryInfoRef target_library_info;
|
||||
|
||||
/* Dump LLVM IR before any optimization passes */
|
||||
if (ctx->screen->b.debug_flags & DBG_PREOPT_IR &&
|
||||
r600_can_dump_shader(&ctx->screen->b, ctx->type))
|
||||
LLVMDumpModule(ctx->gallivm.module);
|
||||
|
||||
/* Create the pass manager */
|
||||
gallivm->passmgr = LLVMCreatePassManager();
|
||||
|
||||
target_library_info = gallivm_create_target_library_info(triple);
|
||||
LLVMAddTargetLibraryInfo(target_library_info, gallivm->passmgr);
|
||||
|
||||
if (run_verifier)
|
||||
if (r600_extra_shader_checks(&ctx->screen->b, ctx->type))
|
||||
LLVMAddVerifierPass(gallivm->passmgr);
|
||||
|
||||
LLVMAddAlwaysInlinerPass(gallivm->passmgr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue