Searched refs:divergent (Results 1 - 12 of 12) sorted by relevance
/third_party/mesa3d/src/compiler/nir/ |
H A D | nir_divergence_analysis.c | 45 * A divergent break does not cause subsequent control-flow to be considered 46 * divergent because those invocations are no longer active in the loop. 47 * For a divergent if, both sides are considered divergent flow because 50 /* True if a divergent continue happened since the loop header */ 52 /* True if a divergent break happened since the loop header */ 65 if (instr->dest.dest.ssa.divergent) in visit_alu() 71 if (instr->src[i].src.ssa->divergent) { in visit_alu() 72 instr->dest.dest.ssa.divergent = true; in visit_alu() 86 if (instr->dest.ssa.divergent) in visit_intrinsic() [all...] |
H A D | nir_opt_uniform_atomics.c | 95 if (!scalar.def->divergent) in get_dim() 117 if (!src0_dim && src0.def->divergent) in get_dim() 120 if (!src1_dim && src1.def->divergent) in get_dim() 127 return src1.def->divergent ? 0 : get_dim(src0); in get_dim() 145 if (!nir_ssa_scalar_chase_alu_src(scalar, 0).def->divergent) in match_invocation_comparison() 147 if (!nir_ssa_scalar_chase_alu_src(scalar, 1).def->divergent) in match_invocation_comparison() 218 bool combined_scan_reduce = return_prev && data->divergent; in optimize_atomic() 260 ASSERTED bool original_result_divergent = intrin->dest.ssa.divergent; in optimize_and_rewrite_atomic() 279 assert(result->divergent == original_result_divergent); in optimize_and_rewrite_atomic()
|
H A D | nir_from_ssa.c | 127 bool divergent; member 163 set->divergent = def->divergent; in get_merge_node() 217 a->divergent |= b->divergent; in merge_merge_sets() 423 entry->dest.ssa.divergent = nir_src_is_divergent(src->src); in isolate_phi_nodes_block() 438 entry->dest.ssa.divergent = phi->dest.ssa.divergent; in isolate_phi_nodes_block() 505 if (dest_node->set->divergent != src_node->set->divergent) in aggressive_coalesce_parallel_copy() [all...] |
H A D | nir_serialize.c | 451 blob_write_uint8(ctx->blob, reg->divergent); in write_register() 463 reg->divergent = blob_read_uint8(ctx->blob); in read_register() 576 uint8_t divergent:1; member 702 dest.ssa.divergent = dst->ssa.divergent; in write_dest() 776 dst->ssa.divergent = dest.ssa.divergent; in read_dest() 1396 lc->def.divergent = false; in read_load_const() 1486 undef->def.divergent = false; in read_ssa_undef() 1894 blob_write_uint8(ctx->blob, loop->divergent); in write_loop() [all...] |
H A D | nir.h | 845 bool divergent; 947 bool divergent; 1098 return src.is_ssa ? src.ssa->divergent : src.reg.reg->divergent; 1116 return dest.is_ssa ? dest.ssa.divergent : dest.reg.reg->divergent; 2911 bool divergent;
|
H A D | nir.c | 245 reg->divergent = false; in reg_create() 645 /* Assume that loops are divergent until proven otherwise */ in nir_loop_create() 646 loop->divergent = true; in nir_loop_create() 1746 def->divergent = true; /* This is the safer default */ in nir_ssa_def_init()
|
H A D | nir_print.c | 112 divergence = def->divergent ? "div " : "con "; in print_ssa_def()
|
/third_party/mesa3d/src/amd/common/ |
H A D | ac_nir_lower_ngg.c | 980 if (alu->dest.dest.ssa.divergent) in save_reusable_variables() 992 intrin->dest.ssa.divergent) in save_reusable_variables() 999 if (phi->dest.ssa.divergent) in save_reusable_variables() 1048 /* Don't reuse if we're in divergent control flow. in save_reusable_variables() 1052 * processed in a different wave. So the two parts may take a different divergent code path. in save_reusable_variables() 1053 * Therefore, these variables in divergent control flow may stay undefined. in save_reusable_variables() 1060 nir_cf_node_as_if(next_cf_node)->condition.ssa->divergent; in save_reusable_variables()
|
/third_party/mesa3d/src/amd/llvm/ |
H A D | ac_nir_to_llvm.c | 477 /* To deal with divergent descriptors we can create a loop that handles all 487 * - value is the possibly divergent value for which we built the loop 488 * - divergent is whether value is actually divergent. If false we just pass 492 LLVMValueRef value, bool divergent) in enter_waterfall() 494 /* If the app claims the value is divergent but it is constant we can in enter_waterfall() 497 divergent = false; in enter_waterfall() 499 wctx->use_waterfall = divergent; in enter_waterfall() 500 if (!divergent) in enter_waterfall() 4477 /* Extract any possibly divergent inde 491 enter_waterfall(struct ac_nir_context *ctx, struct waterfall_context *wctx, LLVMValueRef value, bool divergent) enter_waterfall() argument [all...] |
/third_party/mesa3d/src/amd/compiler/ |
H A D | aco_instruction_selection_setup.cpp | 110 /* If one side of a divergent IF ends in a branch and the other doesn't, we 117 // TODO: skip this if the condition is uniform and there are no divergent breaks/continues? in sanitize_if() 755 assert(!tex->dest.ssa.divergent); in init_context()
|
/third_party/mesa3d/src/broadcom/compiler/ |
H A D | nir_to_vir.c | 4277 if (vir_in_nonuniform_control_flow(c) || loop->divergent) { in ntq_emit_loop()
|
/third_party/mesa3d/src/panfrost/bifrost/ |
H A D | bifrost_compile.c | 4355 * coalescing divergent with non-divergent nodes. */ 4360 ssa->divergent = false; in nir_invalidate_divergence_ssa()
|
Completed in 44 milliseconds