gallivm: added some assertions in loop-gen code
authorBrian Paul <brianp@vmware.com>
Thu, 22 Apr 2010 00:22:15 +0000 (18:22 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 22 Apr 2010 00:22:18 +0000 (18:22 -0600)
We're hitting these assertions with nested loops...

src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c

index f70e96dfde8b6ecace2772a0c2e10a89dc7ef875..44f8aec1bf0a6b12db86289551522d4ef5222bdb 100644 (file)
@@ -172,6 +172,7 @@ static void lp_exec_mask_update(struct lp_exec_mask *mask)
       /*for loops we need to update the entire mask at
        * runtime */
       LLVMValueRef tmp;
+      assert(mask->break_mask);
       tmp = LLVMBuildAnd(mask->bld->builder,
                          mask->cont_mask,
                          mask->break_mask,
@@ -279,8 +280,12 @@ static void lp_exec_endloop(struct lp_exec_mask *mask)
    LLVMBasicBlockRef endloop;
    LLVMTypeRef reg_type = LLVMIntType(mask->bld->type.width*
                                       mask->bld->type.length);
+   LLVMValueRef i1cond;
+
+   assert(mask->break_mask);
+
    /* i1cond = (mask == 0) */
-   LLVMValueRef i1cond = LLVMBuildICmp(
+   i1cond = LLVMBuildICmp(
       mask->bld->builder,
       LLVMIntNE,
       LLVMBuildBitCast(mask->bld->builder, mask->break_mask, reg_type, ""),