Lines Matching refs:aco
37 static const std::array<aco_compiler_statistic_info, aco::num_statistics> statistic_infos = []()
39 std::array<aco_compiler_statistic_info, aco::num_statistics> ret{};
40 ret[aco::statistic_hash] =
42 ret[aco::statistic_instructions] =
44 ret[aco::statistic_copies] =
46 ret[aco::statistic_branches] = aco_compiler_statistic_info{"Branches", "Branch instructions"};
47 ret[aco::statistic_latency] =
49 ret[aco::statistic_inv_throughput] = aco_compiler_statistic_info{
51 ret[aco::statistic_vmem_clauses] = aco_compiler_statistic_info{
53 ret[aco::statistic_smem_clauses] = aco_compiler_statistic_info{
55 ret[aco::statistic_sgpr_presched] =
57 ret[aco::statistic_vgpr_presched] =
62 const unsigned aco_num_statistics = aco::num_statistics;
68 aco::init();
70 uint64_t exclude = aco::DEBUG_VALIDATE_IR | aco::DEBUG_VALIDATE_RA | aco::DEBUG_PERFWARN |
71 aco::DEBUG_PERF_INFO | aco::DEBUG_LIVE_INFO;
72 return aco::debug_flags & ~exclude;
76 validate(aco::Program* program)
78 if (!(aco::debug_flags & aco::DEBUG_VALIDATE_IR))
81 ASSERTED bool is_valid = aco::validate_ir(program);
86 get_disasm_string(aco::Program* program, std::vector<uint32_t>& code,
97 aco::print_asm(program, code, exec_size / 4u, memf);
118 std::unique_ptr<aco::Program>& program)
125 aco::live live_vars;
128 aco::lower_phis(program.get());
129 aco::dominator_tree(program.get());
134 if (!(aco::debug_flags & aco::DEBUG_NO_VN))
135 aco::value_numbering(program.get());
136 if (!(aco::debug_flags & aco::DEBUG_NO_OPT))
137 aco::optimize(program.get());
141 aco::setup_reduce_temp(program.get());
142 aco::insert_exec_mask(program.get());
146 live_vars = aco::live_var_analysis(program.get());
147 aco::spill(program.get(), live_vars);
166 aco::collect_presched_stats(program.get());
168 if ((aco::debug_flags & aco::DEBUG_LIVE_INFO) && options->dump_shader)
169 aco_print_program(program.get(), stderr, live_vars, aco::print_live_vars | aco::print_kill);
172 if (!options->key.optimisations_disabled && !(aco::debug_flags & aco::DEBUG_NO_SCHED))
173 aco::schedule_program(program.get(), live_vars);
177 aco::register_allocation(program.get(), live_vars.live_out);
179 if (aco::validate_ra(program.get())) {
189 if (!options->key.optimisations_disabled && !(aco::debug_flags & aco::DEBUG_NO_OPT)) {
190 aco::optimize_postRA(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());
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());
221 aco::init();
224 std::unique_ptr<aco::Program> program{new aco::Program};
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);
245 unsigned exec_size = aco::emit_program(program.get(), code);
248 aco::collect_postasm_stats(program.get(), code);
258 stats_size = aco::num_statistics * sizeof(uint32_t);
283 aco::init();
287 std::unique_ptr<aco::Program> program{new aco::Program};
294 aco::select_vs_prolog(program.get(), key, &config, options, info, args, &num_preserved_sgprs);
295 aco::insert_NOPs(program.get());
303 unsigned exec_size = aco::emit_program(program.get(), code);
329 aco::init();
332 std::unique_ptr<aco::Program> program{new aco::Program};
342 aco::select_ps_epilog(program.get(), key, &config, options, info, args);
348 unsigned exec_size = aco::emit_program(program.get(), code);