Lines Matching defs:ctx

105 insert(struct ir2_context *ctx, unsigned block_idx, unsigned reg_idx,
112 for (i = ctx->instr_sched_count - 1; i > 0; i--) {
113 s = &ctx->instr_sched[i - 1];
142 for (s = sched; s != &ctx->instr_sched[ctx->instr_sched_count]; s++)
157 scalarize_case1(struct ir2_context *ctx, struct ir2_instr *instr, bool order)
182 reg = get_reg_src(ctx, &src0);
190 sched = insert(ctx, instr->block_idx, reg->idx, src1, &comp);
194 ins = &ctx->instr[idx = ctx->instr_count++];
218 sched_next(struct ir2_context *ctx, struct ir2_sched_instr *sched)
227 ir2_foreach_instr (instr, ctx) {
234 ir2_foreach_instr (instr, ctx) {
262 struct ir2_reg *reg = get_reg_src(ctx, src);
263 ir2_foreach_instr (p, ctx) {
269 is_ok &= !ctx->instr[src->num].need_emit;
274 ir2_foreach_instr (p, ctx) {
279 if (get_reg_src(ctx, src) == instr->reg)
304 ra_src_free(ctx, instr);
305 ra_reg(ctx, get_reg(instr), -1, false, 0);
355 if (scalarize_case1(ctx, instr, 0)) {
359 if (scalarize_case1(ctx, instr, 1)) {
369 ra_src_free(ctx, instr_v);
374 ra_src_free(ctx, instr_s);
379 ra_reg(ctx, get_reg(instr_v), -1, is_export(instr_v),
383 ra_reg(ctx, get_reg(instr_s), -1, is_export(instr_s),
393 schedule_instrs(struct ir2_context *ctx)
399 for (unsigned idx = 0; idx < ARRAY_SIZE(ctx->input); idx++)
400 if (ctx->input[idx].initialized)
401 ra_reg(ctx, &ctx->input[idx], idx, false, 0);
404 sched = &ctx->instr_sched[ctx->instr_sched_count++];
405 block_idx = sched_next(ctx, sched);
408 memcpy(sched->reg_state, ctx->reg_state, sizeof(ctx->reg_state));
418 tex_lod = &ctx->instr[ctx->instr_count++];
428 ctx->instr_sched_count++;
432 ir2_foreach_instr (instr, ctx)
435 ra_block_free(ctx, block_idx);
437 ctx->instr_sched_count--;
444 struct ir2_context ctx = {};
450 ctx.so = so;
451 ctx.info = &so->variant[variant].info;
452 ctx.f = &so->variant[variant].f;
453 ctx.info->max_reg = -1;
456 ir2_nir_compile(&ctx, binning);
459 cp_src(&ctx);
462 ra_count_refs(&ctx);
465 cp_export(&ctx);
468 schedule_instrs(&ctx);
471 assemble(&ctx, binning);