Home
last modified time | relevance | path

Searched refs:live (Results 1 - 25 of 103) sorted by relevance

12345

/third_party/mesa3d/src/freedreno/ir3/
H A Dir3_liveness.c34 * is mainly because phi destinations and live-through values have to be
39 compute_block_liveness(struct ir3_liveness *live, struct ir3_block *block, in compute_block_liveness() argument
42 memcpy(tmp_live, live->live_out[block->index], in compute_block_liveness()
74 memcpy(live->live_in[block->index], tmp_live, in compute_block_liveness()
81 if (tmp_live[j] & ~live->live_out[pred->index][j]) in compute_block_liveness()
83 live->live_out[pred->index][j] |= tmp_live[j]; in compute_block_liveness()
93 if (!BITSET_TEST(live->live_out[pred->index], name)) { in compute_block_liveness()
95 BITSET_SET(live->live_out[pred->index], name); in compute_block_liveness()
103 BITSET_FOREACH_SET (name, tmp_live, live->definitions_count) { in compute_block_liveness()
104 struct ir3_register *reg = live in compute_block_liveness()
120 struct ir3_liveness *live = rzalloc(mem_ctx, struct ir3_liveness); ir3_calc_liveness() local
170 ir3_def_live_after(struct ir3_liveness *live, struct ir3_register *def, struct ir3_instruction *instr) ir3_def_live_after() argument
[all...]
H A Dir3_merge_regs.c40 * 2. When two values are live at the same time, part of the same merge
55 * register allocation we may have to split the live interval.
164 * it means that at any given point in the program, the live values in a in can_skip_interference()
165 * given merge set will form a tree. If they didn't, then one live value in can_skip_interference()
166 * would partially overlap another, and they would have overlapping live in can_skip_interference()
167 * ranges because they're live at the same point. This simplifies register in can_skip_interference()
249 merge_sets_interfere(struct ir3_liveness *live, struct ir3_merge_set *a, in merge_sets_interfere() argument
253 return merge_sets_interfere(live, b, a, -b_offset); in merge_sets_interfere()
310 * whether dom[i] is live after current. in merge_sets_interfere()
312 if (ir3_def_live_after(live, do in merge_sets_interfere()
323 try_merge_defs(struct ir3_liveness *live, struct ir3_register *a, struct ir3_register *b, unsigned b_offset) try_merge_defs() argument
357 coalesce_phi(struct ir3_liveness *live, struct ir3_instruction *phi) coalesce_phi() argument
366 aggressive_coalesce_parallel_copy(struct ir3_liveness *live, struct ir3_instruction *pcopy) aggressive_coalesce_parallel_copy() argument
377 aggressive_coalesce_split(struct ir3_liveness *live, struct ir3_instruction *split) aggressive_coalesce_split() argument
385 aggressive_coalesce_collect(struct ir3_liveness *live, struct ir3_instruction *collect) aggressive_coalesce_collect() argument
479 index_merge_sets(struct ir3_liveness *live, struct ir3 *ir) index_merge_sets() argument
545 ir3_merge_regs(struct ir3_liveness *live, struct ir3 *ir) ir3_merge_regs() argument
[all...]
H A Dir3_spill.c95 * a record of the new live-out set for this block.
100 * values should be live at the end.
113 /* rb tree of live intervals that we can spill, ordered by next-use distance.
133 struct ir3_liveness *live; member
216 ctx->live->definitions_count * sizeof(*tmp_next_use)); in compute_block_next_distance()
252 ctx->live->definitions_count * sizeof(*tmp_next_use)); in compute_block_next_distance()
260 * variables that are live-through the loop but not used inside it are in compute_block_next_distance()
267 for (unsigned j = 0; j < ctx->live->definitions_count; j++) { in compute_block_next_distance()
299 for (unsigned i = 0; i < ctx->live->block_count; i++) { in compute_next_distance()
301 ralloc_array(ctx, unsigned, ctx->live in compute_next_distance()
504 spill_ctx_init(struct ra_spill_ctx *ctx, struct ir3_shader_variant *v, struct ir3_liveness *live) spill_ctx_init() argument
2029 fixup_merge_sets(struct ir3_liveness *live, struct ir3 *ir) fixup_merge_sets() argument
2062 ir3_calc_pressure(struct ir3_shader_variant *v, struct ir3_liveness *live, struct ir3_pressure *max_pressure) ir3_calc_pressure() argument
2081 ir3_spill(struct ir3 *ir, struct ir3_shader_variant *v, struct ir3_liveness **live, const struct ir3_pressure *limit_pressure) ir3_spill() argument
[all...]
/third_party/mesa3d/src/panfrost/bifrost/
H A Dbi_opt_dce.c38 uint8_t *live = rzalloc_array(block, uint8_t, temp_count); in bi_opt_dead_code_eliminate() local
42 live[i] |= succ->live_in[i]; in bi_opt_dead_code_eliminate()
61 if (index < temp_count && !(live[index] & bi_writemask(ins, d))) in bi_opt_dead_code_eliminate()
70 bi_liveness_ins_update(live, ins, temp_count); in bi_opt_dead_code_eliminate()
74 block->live_in = live; in bi_opt_dead_code_eliminate()
81 bi_postra_liveness_ins(uint64_t live, bi_instr *ins) in bi_postra_liveness_ins() argument
87 live &= ~(BITFIELD64_MASK(nr) << reg); in bi_postra_liveness_ins()
95 live |= (BITFIELD64_MASK(nr) << reg); in bi_postra_liveness_ins()
99 return live; in bi_postra_liveness_ins()
108 uint64_t live in bi_postra_liveness_block() local
158 uint64_t live = block->reg_live_out; bi_opt_dce_post_ra() local
[all...]
H A Dbi_liveness.c35 bi_liveness_ins_update(uint8_t *live, bi_instr *ins, unsigned max) in bi_liveness_ins_update() argument
43 live[node] &= ~bi_writemask(ins, d); in bi_liveness_ins_update()
53 live[node] |= mask; in bi_liveness_ins_update()
68 uint8_t *live = ralloc_array(blk, uint8_t, temp_count); in liveness_block_update() local
69 memcpy(live, blk->live_out, temp_count); in liveness_block_update()
72 bi_liveness_ins_update(live, ins, temp_count); in liveness_block_update()
77 progress |= (blk->live_in[i] != live[i]); in liveness_block_update()
80 blk->live_in = live; in liveness_block_update()
H A Dbi_pressure_schedule.c37 uint8_t *live; member
39 /* Size of the live set */
221 * instruction. Equivalently, calculate the difference in the number of live
222 * registers before and after the instruction, given the live set after the
229 calculate_pressure_delta(bi_instr *I, uint8_t *live, unsigned max) in calculate_pressure_delta() argument
237 if (node < max && live[node]) in calculate_pressure_delta()
256 if (!dupe && !live[node]) in calculate_pressure_delta()
274 int32_t delta = calculate_pressure_delta(n->instr, s->live, s->max); in choose_instr()
293 memcpy(s->live, block->live_out, s->max); in pressure_schedule_block()
296 pressure += calculate_pressure_delta(I, s->live, in pressure_schedule_block()
342 uint8_t *live = ralloc_array(memctx, uint8_t, temp_count); bi_pressure_schedule() local
[all...]
/third_party/mesa3d/src/gallium/drivers/r600/sb/
H A Dsb_liveness.cpp42 n.live_after = live; in visit()
46 n.live_before = live; in visit()
53 n.live_after = live; in visit()
55 n.live_before = live; in visit()
73 n.live_after = live; in visit()
77 n.live_before = live; in visit()
112 val_set s = live; in visit()
119 n.live_after = live; in visit()
121 live.clear(); in visit()
133 n.live_before = live; in visit()
[all...]
/third_party/mesa3d/src/compiler/nir/
H A Dnir_liveness.c39 * live range. This is true because the only way that the definition of an
41 * uses in phi no are in the live-out of the corresponding predecessor
42 * block but not in the live-in of the block containing the phi node.
75 BITSET_WORD *live = void_live; in set_src_live() local
81 return true; /* undefined variables are never live */ in set_src_live()
83 BITSET_SET(live, src->ssa->index); in set_src_live()
91 BITSET_WORD *live = void_live; in set_ssa_def_dead() local
93 BITSET_CLEAR(live, def->index); in set_ssa_def_dead()
98 /** Propagates the live in of succ across the edge to the live ou
111 BITSET_WORD *live = state->tmp_live; propagate_across_edge() local
248 BITSET_WORD *live = ralloc_array(mem_ctx, BITSET_WORD, bitset_words); nir_get_live_ssa_defs() local
[all...]
H A Dnir_remove_dead_variables.c65 add_var_use_deref(nir_deref_instr *deref, struct set *live) in add_var_use_deref() argument
71 * make them live. Only keep them if they are used by some intrinsic. in add_var_use_deref()
89 _mesa_set_add(live, var); in add_var_use_deref()
96 add_var_use_shader(nir_shader *shader, struct set *live, nir_variable_mode modes) in add_var_use_shader() argument
103 add_var_use_deref(nir_instr_as_deref(instr), live); in add_var_use_shader() local
163 struct set *live, const nir_remove_dead_variables_options *opts) in remove_dead_vars()
175 struct set_entry *entry = _mesa_set_search(live, var); in remove_dead_vars()
192 struct set *live = _mesa_pointer_set_create(NULL); in nir_remove_dead_variables() local
194 add_var_use_shader(shader, live, modes); in nir_remove_dead_variables()
198 live, opt in nir_remove_dead_variables()
162 remove_dead_vars(struct exec_list *var_list, nir_variable_mode modes, struct set *live, const nir_remove_dead_variables_options *opts) remove_dead_vars() argument
[all...]
/third_party/mesa3d/src/panfrost/util/
H A Dpan_liveness.c33 pan_liveness_gen(uint16_t *live, unsigned node, unsigned max, uint16_t mask) in pan_liveness_gen() argument
38 live[node] |= mask; in pan_liveness_gen()
42 pan_liveness_kill(uint16_t *live, unsigned node, unsigned max, uint16_t mask) in pan_liveness_kill() argument
47 live[node] &= ~mask; in pan_liveness_kill()
51 pan_liveness_get(uint16_t *live, unsigned node, uint16_t max) in pan_liveness_get() argument
56 return live[node]; in pan_liveness_get()
83 uint16_t *live = ralloc_array(blk, uint16_t, temp_count); in liveness_block_update() local
84 memcpy(live, blk->live_out, temp_count * sizeof(uint16_t)); in liveness_block_update()
87 callback(live, (void *) ins, temp_count); in liveness_block_update()
92 progress |= (blk->live_in[i] != live[ in liveness_block_update()
[all...]
/third_party/ffmpeg/tests/fate/
H A Dwebm-dash-manifest.mak13 FATE_WEBM_DASH_MANIFEST += fate-webm-dash-manifest-live
14 fate-webm-dash-manifest-live: CMD = run $(FFMPEG) -nostdin -f webm_dash_manifest -live 1 -i $(TARGET_SAMPLES)/vp8/dash_live_video_360.hdr -f webm_dash_manifest -live 1 -i $(TARGET_SAMPLES)/vp8/dash_live_audio_171.hdr -c copy -map 0 -map 1 -fflags +bitexact -f webm_dash_manifest -live 1 -adaptation_sets "id=0,streams=0 id=1,streams=1" -chunk_start_index 1 -chunk_duration_ms 5000 -time_shift_buffer_depth 7200 -minimum_update_period 60 -
16 FATE_WEBM_DASH_MANIFEST += fate-webm-dash-manifest-live-bandwidth
17 fate-webm-dash-manifest-live-bandwidth: CMD = run $(FFMPEG) -nostdin -f webm_dash_manifest -live 1 -bandwidth 100 -i $(TARGET_SAMPLES)/vp8/dash_live_video_360.hdr -f webm_dash_manifest -live 1 -bandwidth 200 -i $(TARGET_SAMPLES)/vp8/dash_live_audio_171.hdr -c copy -map 0 -map 1 -fflags +bitexact -f webm_dash_manifest -live
[all...]
H A Dhlsenc.mak8 FATE_HLSENC-$(call ALLYES, HLS_DEMUXER MPEGTS_MUXER MPEGTS_DEMUXER AEVALSRC_FILTER LAVFI_INDEV MP2FIXED_ENCODER) += fate-hls-live-no-endlist
9 fate-hls-live-no-endlist: tests/data/live_no_endlist.m3u8
10 fate-hls-live-no-endlist: SRC = $(TARGET_PATH)/tests/data/live_no_endlist.m3u8
11 fate-hls-live-no-endlist: CMD = md5 -i $(SRC) -af hdcd=process_stereo=false -t 6 -f s24le
12 fate-hls-live-no-endlist: CMP = oneline
13 fate-hls-live-no-endlist: REF = e038bb8e65d4c1745b9b3ed643e607a3
22 FATE_HLSENC-$(call ALLYES, HLS_DEMUXER MPEGTS_MUXER MPEGTS_DEMUXER AEVALSRC_FILTER LAVFI_INDEV MP2FIXED_ENCODER) += fate-hls-live-last-endlist
23 fate-hls-live-last-endlist: tests/data/live_last_endlist.m3u8
24 fate-hls-live-last-endlist: SRC = $(TARGET_PATH)/tests/data/live_last_endlist.m3u8
25 fate-hls-live
[all...]
/third_party/mesa3d/src/asahi/compiler/
H A Dagx_liveness.c37 agx_liveness_ins_update(BITSET_WORD *live, agx_instr *I) in agx_liveness_ins_update() argument
41 BITSET_CLEAR(live, I->dest[d].value); in agx_liveness_ins_update()
46 /* If the source is not live after this instruction, but becomes live in agx_liveness_ins_update()
48 I->src[s].kill = !BITSET_TEST(live, I->src[s].value); in agx_liveness_ins_update()
49 BITSET_SET(live, I->src[s].value); in agx_liveness_ins_update()
101 /* Propagate the live in of the successor (blk) to the live out of in agx_compute_liveness()
105 * handle when propagating, we kill writes from phis and make live the in agx_compute_liveness()
109 BITSET_WORD *live in agx_compute_liveness() local
[all...]
/third_party/mesa3d/src/intel/compiler/
H A Dbrw_fs_register_coalesce.cpp100 can_coalesce_vars(const fs_live_variables &live, const cfg_t *cfg, in can_coalesce_vars() argument
104 if (!live.vars_interfere(src_var, dst_var)) in can_coalesce_vars()
107 int dst_start = live.start[dst_var]; in can_coalesce_vars()
108 int dst_end = live.end[dst_var]; in can_coalesce_vars()
109 int src_start = live.start[src_var]; in can_coalesce_vars()
110 int src_end = live.end[src_var]; in can_coalesce_vars()
117 /* Check for a write to either register in the intersection of their live in can_coalesce_vars()
134 /* Ignore anything before the intersection of the live ranges */ in can_coalesce_vars()
150 * during the intersection of their live ranges. One way to do in can_coalesce_vars()
154 * where the destination live rang in can_coalesce_vars()
194 fs_live_variables &live = live_analysis.require(); register_coalesce() local
[all...]
H A Dbrw_fs_dead_code_eliminate.cpp82 BITSET_WORD *live = rzalloc_array(NULL, BITSET_WORD, BITSET_WORDS(num_vars)); in dead_code_eliminate() local
86 memcpy(live, live_vars.block_data[block->num].liveout, in dead_code_eliminate()
97 result_live |= BITSET_TEST(live, var + i); in dead_code_eliminate()
116 BITSET_CLEAR(live, var + i); in dead_code_eliminate()
134 BITSET_SET(live, var + j); in dead_code_eliminate()
145 ralloc_free(live); in dead_code_eliminate()
H A Dbrw_vec4_dead_code_eliminate.cpp46 BITSET_WORD *live = rzalloc_array(NULL, BITSET_WORD, BITSET_WORDS(num_vars)); in dead_code_eliminate() local
50 memcpy(live, live_vars.block_data[block->num].liveout, in dead_code_eliminate()
63 result_live[c] |= BITSET_TEST(live, v); in dead_code_eliminate()
146 BITSET_CLEAR(live, v); in dead_code_eliminate()
167 BITSET_SET(live, v); in dead_code_eliminate()
181 ralloc_free(live); in dead_code_eliminate()
H A Dbrw_fs_saturate_propagation.cpp48 opt_saturate_propagation_local(const fs_live_variables &live, bblock_t *block) in opt_saturate_propagation_local() argument
64 int src_var = live.var_from_reg(inst->src[0]); in opt_saturate_propagation_local()
65 int src_end_ip = live.end[src_var]; in opt_saturate_propagation_local()
154 const fs_live_variables &live = live_analysis.require(); in opt_saturate_propagation() local
158 progress = opt_saturate_propagation_local(live, block) || progress; in opt_saturate_propagation()
/third_party/mesa3d/src/gallium/drivers/lima/ir/gp/
H A Dregalloc.c46 BITSET_WORD *live; member
60 static void propagate_liveness_node(gpir_node *node, BITSET_WORD *live, in propagate_liveness_node() argument
67 BITSET_CLEAR(live, store->reg->index); in propagate_liveness_node()
75 BITSET_SET(live, load->reg->index); in propagate_liveness_node()
89 memcpy(ctx->live, block->live_out, ctx->bitset_words * sizeof(BITSET_WORD)); in propagate_liveness_block()
92 propagate_liveness_node(node, ctx->live, block->comp); in propagate_liveness_block()
97 changed |= (block->live_in[i] != ctx->live[i]); in propagate_liveness_block()
98 block->live_in[i] = ctx->live[i]; in propagate_liveness_block()
168 /* Make the register or node "i" interfere with all the other live registers
176 BITSET_FOREACH_SET(live_reg, ctx->live, ct in add_all_interferences()
389 gpir_node *live[GPIR_VALUE_REG_NUM + GPIR_PHYSICAL_REG_NUM]; global() member
[all...]
/third_party/node/deps/v8/src/compiler/
H A Dgraph-trimmer.cc23 // Mark end node as live. in TrimGraph()
25 // Compute transitive closure of live nodes. in TrimGraph()
27 Node* const live = live_[i]; in TrimGraph() local
28 for (Node* const input : live->inputs()) MarkAsLive(input); in TrimGraph()
30 // Remove dead->live edges. in TrimGraph()
31 for (Node* const live : live_) { in TrimGraph()
32 DCHECK(IsLive(live)); in TrimGraph()
33 for (Edge edge : live->use_edges()) { in TrimGraph()
38 << ") -> " << *live << std::endl; in TrimGraph()
/third_party/mesa3d/src/amd/compiler/
H A Daco_dead_code_analysis.cpp41 std::vector<std::vector<bool>> live; member
46 live.reserve(program->blocks.size()); in dce_ctx()
48 live.emplace_back(block.instructions.size()); in dce_ctx()
55 std::vector<bool>& live = ctx.live[block.index]; in process_block() local
56 assert(live.size() == block.instructions.size()); in process_block()
59 if (live[idx]) in process_block()
71 live[idx] = true; in process_block()
H A Daco_live_var_analysis.cpp107 process_live_temps_per_block(Program* program, live& lives, Block* block, unsigned& worklist, in process_live_temps_per_block()
115 IDSet live = lives.live_out[block->index]; in process_live_temps_per_block() local
118 for (unsigned t : live) in process_live_temps_per_block()
141 const size_t n = live.erase(temp.id()); in process_live_temps_per_block()
169 const bool inserted = live.insert(temp.id()).second; in process_live_temps_per_block()
211 const size_t n = live.erase(temp.id()); in process_live_temps_per_block()
229 /* now, we need to merge the live-ins into the live-out sets */ in process_live_temps_per_block()
230 for (unsigned t : live) { in process_live_temps_per_block()
252 /* directly insert into the predecessors live in process_live_temps_per_block()
[all...]
/third_party/mesa3d/src/panfrost/midgard/
H A Dmidgard_liveness.c28 mir_liveness_ins_update(uint16_t *live, midgard_instruction *ins, unsigned max) in mir_liveness_ins_update() argument
32 pan_liveness_kill(live, ins->dest, max, mir_bytemask(ins)); in mir_liveness_ins_update()
38 pan_liveness_gen(live, node, max, bytemask); in mir_liveness_ins_update()
43 mir_liveness_ins_update_wrap(uint16_t *live, void *ins, unsigned max) in mir_liveness_ins_update_wrap() argument
45 mir_liveness_ins_update(live, (midgard_instruction *) ins, max); in mir_liveness_ins_update_wrap()
82 /* Check whether we're live in the successors */ in mir_is_live_after()
H A Dmidgard_opt_dce.c74 uint16_t *live = mem_dup(block->base.live_out, ctx->temp_count * sizeof(uint16_t)); in midgard_opt_dead_code_eliminate_block() local
86 unsigned rounded = mir_round_bytemask_up(live[ins->dest], round_size); in midgard_opt_dead_code_eliminate_block()
93 mir_liveness_ins_update(live, ins, ctx->temp_count); in midgard_opt_dead_code_eliminate_block()
103 free(live); in midgard_opt_dead_code_eliminate_block()
112 * live than they actually are, that just reduces the effectiveness of in midgard_opt_dead_code_eliminate()
H A Dmir_promote_uniforms.c170 mir_count_live(uint16_t *live, unsigned temp_count) in mir_count_live() argument
175 count += util_bitcount(live[i]); in mir_count_live()
190 uint16_t *live = mem_dup(block->base.live_out, ctx->temp_count * sizeof(uint16_t)); in mir_estimate_pressure() local
193 unsigned count = mir_count_live(live, ctx->temp_count); in mir_estimate_pressure()
195 mir_liveness_ins_update(live, ins, ctx->temp_count); in mir_estimate_pressure()
198 free(live); in mir_estimate_pressure()
/third_party/mesa3d/src/gallium/drivers/lima/ir/pp/
H A Dliveness.c59 * as live registers to the live_in set. */
95 bool live = BITSET_TEST(instr->live_set, index); in ppir_liveness_instr_srcs() local
97 /* reg is read, needs to be live before instr */ in ppir_liveness_instr_srcs()
98 if (live) in ppir_liveness_instr_srcs()
109 if (live && (live_mask == (live_mask | mask))) in ppir_liveness_instr_srcs()
147 bool live = BITSET_TEST(instr->live_set, index); in ppir_liveness_instr_dest() local
151 if (!live && reg->out_reg && (instr != last)) { in ppir_liveness_instr_dest()
160 * a live register and overwrites it. */ in ppir_liveness_instr_dest()
161 if (!live) { in ppir_liveness_instr_dest()
167 /* reg is written and ssa, is not live befor in ppir_liveness_instr_dest()
[all...]

Completed in 13 milliseconds

12345