Lines Matching refs:program
67 validate(aco::Program* program)
72 ASSERTED bool is_valid = aco::validate_ir(program);
83 std::unique_ptr<aco::Program> program{new aco::Program};
85 program->collect_statistics = args->options->record_stats;
86 if (program->collect_statistics)
87 memset(program->statistics, 0, sizeof(program->statistics));
89 program->debug.func = args->options->debug.func;
90 program->debug.private_data = args->options->debug.private_data;
94 aco::select_gs_copy_shader(program.get(), shaders[0], &config, args);
96 aco::select_trap_handler_shader(program.get(), shaders[0], &config, args);
98 aco::select_program(program.get(), shader_count, shaders, &config, args);
100 aco_print_program(program.get(), stderr);
105 aco::lower_phis(program.get());
106 aco::dominator_tree(program.get());
107 validate(program.get());
112 aco::value_numbering(program.get());
114 aco::optimize(program.get());
118 aco::setup_reduce_temp(program.get());
119 aco::insert_exec_mask(program.get());
120 validate(program.get());
123 live_vars = aco::live_var_analysis(program.get());
124 aco::spill(program.get(), live_vars);
134 aco_print_program(program.get(), memf);
143 if (program->collect_statistics)
144 aco::collect_presched_stats(program.get());
147 aco_print_program(program.get(), stderr, live_vars, aco::print_live_vars | aco::print_kill);
151 aco::schedule_program(program.get(), live_vars);
152 validate(program.get());
155 aco::register_allocation(program.get(), live_vars.live_out);
157 if (aco::validate_ra(program.get())) {
158 aco_print_program(program.get(), stderr);
161 aco_print_program(program.get(), stderr);
164 validate(program.get());
168 aco::optimize_postRA(program.get());
169 validate(program.get());
172 aco::ssa_elimination(program.get());
176 aco::lower_to_hw_instr(program.get());
179 aco::insert_wait_states(program.get());
180 aco::insert_NOPs(program.get());
182 if (program->chip_class >= GFX10)
183 aco::form_hard_clauses(program.get());
185 if (program->collect_statistics || (aco::debug_flags & aco::DEBUG_PERF_INFO))
186 aco::collect_preasm_stats(program.get());
190 unsigned exec_size = aco::emit_program(program.get(), code);
192 if (program->collect_statistics)
193 aco::collect_postasm_stats(program.get(), code);
201 if (check_print_asm_support(program.get())) {
207 aco::print_asm(program.get(), code, exec_size / 4u, memf);
226 if (program->collect_statistics)
242 if (program->collect_statistics)
243 memcpy(legacy_binary->data, program->statistics, aco::num_statistics * sizeof(uint32_t));
274 /* create program */
276 std::unique_ptr<aco::Program> program{new aco::Program};
277 program->collect_statistics = false;
278 program->debug.func = NULL;
279 program->debug.private_data = NULL;
283 aco::select_vs_prolog(program.get(), key, &config, args, &num_preserved_sgprs);
284 aco::insert_NOPs(program.get());
287 aco_print_program(program.get(), stderr);
291 code.reserve(align(program->blocks[0].instructions.size() * 2, 16));
292 unsigned exec_size = aco::emit_program(program.get(), code);
295 aco::print_asm(program.get(), code, exec_size / 4u, stderr);