ac/nir: fix incorrect Phis if callbacks use control flow inside control flow
authorMarek Olšák <marek.olsak@amd.com>
Thu, 25 Jul 2019 00:21:27 +0000 (20:21 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 31 Jul 2019 02:06:23 +0000 (22:06 -0400)
src/amd/common/ac_nir_to_llvm.c

index 34d9b83e85bcc556fe243bb7bd43925856d63694..c2b5254aa7c3de8040afc2726aae55035eb1f2a9 100644 (file)
@@ -4276,7 +4276,6 @@ static void visit_cf_list(struct ac_nir_context *ctx,
 
 static void visit_block(struct ac_nir_context *ctx, nir_block *block)
 {
-       LLVMBasicBlockRef llvm_block = LLVMGetInsertBlock(ctx->ac.builder);
        nir_foreach_instr(instr, block)
        {
                switch (instr->type) {
@@ -4312,7 +4311,8 @@ static void visit_block(struct ac_nir_context *ctx, nir_block *block)
                }
        }
 
-       _mesa_hash_table_insert(ctx->defs, block, llvm_block);
+       _mesa_hash_table_insert(ctx->defs, block,
+                               LLVMGetInsertBlock(ctx->ac.builder));
 }
 
 static void visit_if(struct ac_nir_context *ctx, nir_if *if_stmt)