Lines Matching refs:program
76 validate(aco::Program* program)
81 ASSERTED bool is_valid = aco::validate_ir(program);
86 get_disasm_string(aco::Program* program, std::vector<uint32_t>& code,
91 if (check_print_asm_support(program)) {
97 aco::print_asm(program, code, exec_size / 4u, memf);
118 std::unique_ptr<aco::Program>& program)
123 aco_print_program(program.get(), stderr);
128 aco::lower_phis(program.get());
129 aco::dominator_tree(program.get());
130 validate(program.get());
135 aco::value_numbering(program.get());
137 aco::optimize(program.get());
141 aco::setup_reduce_temp(program.get());
142 aco::insert_exec_mask(program.get());
143 validate(program.get());
146 live_vars = aco::live_var_analysis(program.get());
147 aco::spill(program.get(), live_vars);
156 aco_print_program(program.get(), memf);
165 if (program->collect_statistics)
166 aco::collect_presched_stats(program.get());
169 aco_print_program(program.get(), stderr, live_vars, aco::print_live_vars | aco::print_kill);
173 aco::schedule_program(program.get(), live_vars);
174 validate(program.get());
177 aco::register_allocation(program.get(), live_vars.live_out);
179 if (aco::validate_ra(program.get())) {
180 aco_print_program(program.get(), stderr);
183 aco_print_program(program.get(), stderr);
186 validate(program.get());
190 aco::optimize_postRA(program.get());
191 validate(program.get());
194 aco::ssa_elimination(program.get());
198 aco::lower_to_hw_instr(program.get());
201 aco::insert_wait_states(program.get());
202 aco::insert_NOPs(program.get());
204 if (program->gfx_level >= GFX10)
205 aco::form_hard_clauses(program.get());
207 if (program->collect_statistics || (aco::debug_flags & aco::DEBUG_PERF_INFO))
208 aco::collect_preasm_stats(program.get());
224 std::unique_ptr<aco::Program> program{new aco::Program};
226 program->collect_statistics = options->record_stats;
227 if (program->collect_statistics)
228 memset(program->statistics, 0, sizeof(program->statistics));
230 program->debug.func = options->debug.func;
231 program->debug.private_data = options->debug.private_data;
235 aco::select_gs_copy_shader(program.get(), shaders[0], &config, options, info, args);
237 aco::select_trap_handler_shader(program.get(), shaders[0], &config, options, info, args);
239 aco::select_program(program.get(), shader_count, shaders, &config, options, info, args);
241 std::string llvm_ir = aco_postprocess_shader(options, args, program);
245 unsigned exec_size = aco::emit_program(program.get(), code);
247 if (program->collect_statistics)
248 aco::collect_postasm_stats(program.get(), code);
254 disasm = get_disasm_string(program.get(), code, exec_size);
257 if (program->collect_statistics)
268 program->statistics,
285 /* create program */
287 std::unique_ptr<aco::Program> program{new aco::Program};
288 program->collect_statistics = false;
289 program->debug.func = NULL;
290 program->debug.private_data = NULL;
294 aco::select_vs_prolog(program.get(), key, &config, options, info, args, &num_preserved_sgprs);
295 aco::insert_NOPs(program.get());
298 aco_print_program(program.get(), stderr);
302 code.reserve(align(program->blocks[0].instructions.size() * 2, 16));
303 unsigned exec_size = aco::emit_program(program.get(), code);
309 disasm = get_disasm_string(program.get(), code, exec_size);
332 std::unique_ptr<aco::Program> program{new aco::Program};
334 program->collect_statistics = options->record_stats;
335 if (program->collect_statistics)
336 memset(program->statistics, 0, sizeof(program->statistics));
338 program->debug.func = options->debug.func;
339 program->debug.private_data = options->debug.private_data;
342 aco::select_ps_epilog(program.get(), key, &config, options, info, args);
344 aco_postprocess_shader(options, args, program);
348 unsigned exec_size = aco::emit_program(program.get(), code);
354 disasm = get_disasm_string(program.get(), code, exec_size);