From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/drivers/radeonsi/si_shader.c      |  7 +++----
 .../drivers/radeonsi/si_shader_tgsi_setup.c   | 19 ++++++++-----------
 2 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 9248c4c49b6..e7706f796f3 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -6160,35 +6160,34 @@ static bool si_compile_tgsi_main(struct 
si_shader_context *ctx)
                         * reach s_endpgm.
                         */
                        si_llvm_emit_barrier(NULL, bld_base, NULL);
                }
        }
 
        if (ctx->type == PIPE_SHADER_TESS_CTRL &&
            sel->tcs_info.tessfactors_are_def_in_all_invocs) {
                for (unsigned i = 0; i < 6; i++) {
                        ctx->invoc0_tess_factors[i] =
-                               lp_build_alloca_undef(&ctx->gallivm, ctx->i32, 
"");
+                               ac_build_alloca_undef(&ctx->ac, ctx->i32, "");
                }
        }
 
        if (ctx->type == PIPE_SHADER_GEOMETRY) {
                int i;
                for (i = 0; i < 4; i++) {
                        ctx->gs_next_vertex[i] =
-                               lp_build_alloca(&ctx->gallivm,
-                                               ctx->i32, "");
+                               ac_build_alloca(&ctx->ac, ctx->i32, "");
                }
        }
 
        if (sel->force_correct_derivs_after_kill) {
-               ctx->postponed_kill = lp_build_alloca_undef(&ctx->gallivm, 
ctx->i1, "");
+               ctx->postponed_kill = ac_build_alloca_undef(&ctx->ac, ctx->i1, 
"");
                /* true = don't kill. */
                LLVMBuildStore(ctx->ac.builder, LLVMConstInt(ctx->i1, 1, 0),
                               ctx->postponed_kill);
        }
 
        if (sel->tokens) {
                if (!lp_build_tgsi_llvm(bld_base, sel->tokens)) {
                        fprintf(stderr, "Failed to translate shader from TGSI 
to LLVM\n");
                        return false;
                }
diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c 
b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
index 4fd44549f7a..de3a6cbf0d7 100644
--- a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
+++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
@@ -618,23 +618,22 @@ static void emit_declaration(struct lp_build_tgsi_context 
*bld_base,
        struct si_shader_context *ctx = si_shader_context(bld_base);
        LLVMBuilderRef builder = ctx->ac.builder;
        unsigned first, last, i;
        switch(decl->Declaration.File) {
        case TGSI_FILE_ADDRESS:
        {
                 unsigned idx;
                for (idx = decl->Range.First; idx <= decl->Range.Last; idx++) {
                        unsigned chan;
                        for (chan = 0; chan < TGSI_NUM_CHANNELS; chan++) {
-                                ctx->addrs[idx][chan] = lp_build_alloca_undef(
-                                       &ctx->gallivm,
-                                       ctx->i32, "");
+                                ctx->addrs[idx][chan] = ac_build_alloca_undef(
+                                       &ctx->ac, ctx->i32, "");
                        }
                }
                break;
        }
 
        case TGSI_FILE_TEMPORARY:
        {
                char name[18] = "";
                LLVMValueRef array_alloca = NULL;
                unsigned decl_size;
@@ -665,59 +664,58 @@ static void emit_declaration(struct lp_build_tgsi_context 
*bld_base,
                         * array with up to 4 * 16 = 64 elements could be
                         * handled this way, but whether that's a good idea
                         * depends on VGPR register pressure elsewhere.
                         *
                         * FIXME: We shouldn't need to have the non-alloca
                         * code path for arrays. LLVM should be smart enough to
                         * promote allocas into registers when profitable.
                         */
                        if (array_size > 16 ||
                            !ctx->screen->llvm_has_working_vgpr_indexing) {
-                               array_alloca = 
lp_build_alloca_undef(&ctx->gallivm,
+                               array_alloca = ac_build_alloca_undef(&ctx->ac,
                                        LLVMArrayType(ctx->f32,
                                                      array_size), "array");
                                ctx->temp_array_allocas[id] = array_alloca;
                        }
                }
 
                if (!ctx->temps_count) {
                        ctx->temps_count = 
bld_base->info->file_max[TGSI_FILE_TEMPORARY] + 1;
                        ctx->temps = MALLOC(TGSI_NUM_CHANNELS * 
ctx->temps_count * sizeof(LLVMValueRef));
                }
                if (!array_alloca) {
                        for (i = 0; i < decl_size; ++i) {
 #ifdef DEBUG
                                snprintf(name, sizeof(name), "TEMP%d.%c",
                                         first + i / 4, "xyzw"[i % 4]);
 #endif
                                ctx->temps[first * TGSI_NUM_CHANNELS + i] =
-                                       lp_build_alloca_undef(&ctx->gallivm,
+                                       ac_build_alloca_undef(&ctx->ac,
                                                              ctx->f32,
                                                              name);
                        }
                } else {
                        LLVMValueRef idxs[2] = {
                                ctx->i32_0,
                                NULL
                        };
                        unsigned j = 0;
 
                        if (writemask != TGSI_WRITEMASK_XYZW &&
                            !ctx->undef_alloca) {
                                /* Create a dummy alloca. We use it so that we
                                 * have a pointer that is safe to load from if
                                 * a shader ever reads from a channel that
                                 * it never writes to.
                                 */
-                               ctx->undef_alloca = lp_build_alloca_undef(
-                                       &ctx->gallivm,
-                                       ctx->f32, "undef");
+                               ctx->undef_alloca = ac_build_alloca_undef(
+                                       &ctx->ac, ctx->f32, "undef");
                        }
 
                        for (i = 0; i < decl_size; ++i) {
                                LLVMValueRef ptr;
                                if (writemask & (1 << (i % 4))) {
 #ifdef DEBUG
                                        snprintf(name, sizeof(name), 
"TEMP%d.%c",
                                                 first + i / 4, "xyzw"[i % 4]);
 #endif
                                        idxs[1] = LLVMConstInt(ctx->i32, j, 0);
@@ -767,23 +765,22 @@ static void emit_declaration(struct lp_build_tgsi_context 
*bld_base,
                for (idx = decl->Range.First; idx <= decl->Range.Last; idx++) {
                        unsigned chan;
                        assert(idx < RADEON_LLVM_MAX_OUTPUTS);
                        if (ctx->outputs[idx][0])
                                continue;
                        for (chan = 0; chan < TGSI_NUM_CHANNELS; chan++) {
 #ifdef DEBUG
                                snprintf(name, sizeof(name), "OUT%d.%c",
                                         idx, "xyzw"[chan % 4]);
 #endif
-                               ctx->outputs[idx][chan] = lp_build_alloca_undef(
-                                       &ctx->gallivm,
-                                       ctx->f32, name);
+                               ctx->outputs[idx][chan] = ac_build_alloca_undef(
+                                       &ctx->ac, ctx->f32, name);
                        }
                }
                break;
        }
 
        case TGSI_FILE_MEMORY:
                si_tgsi_declare_compute_memory(ctx, decl);
                break;
 
        default:
-- 
2.17.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to