• Home
  • Raw
  • Download

Lines Matching full:program

79 validate(aco::Program* program)  in validate()  argument
84 ASSERTED bool is_valid = aco::validate_ir(program); in validate()
89 get_disasm_string(aco::Program* program, std::vector<uint32_t>& code, unsigned exec_size) in get_disasm_string() argument
98 if (check_print_asm_support(program)) { in get_disasm_string()
99 aco::print_asm(program, code, exec_size / 4u, memf); in get_disasm_string()
106 aco::aco_print_program(program, memf); in get_disasm_string()
119 const struct aco_shader_info* info, std::unique_ptr<aco::Program>& program) in aco_postprocess_shader() argument
124 aco_print_program(program.get(), stderr); in aco_postprocess_shader()
126 ASSERTED bool is_valid = aco::validate_cfg(program.get()); in aco_postprocess_shader()
131 aco::dominator_tree(program.get()); in aco_postprocess_shader()
132 aco::lower_phis(program.get()); in aco_postprocess_shader()
133 validate(program.get()); in aco_postprocess_shader()
138 aco::value_numbering(program.get()); in aco_postprocess_shader()
140 aco::optimize(program.get()); in aco_postprocess_shader()
144 aco::setup_reduce_temp(program.get()); in aco_postprocess_shader()
145 aco::insert_exec_mask(program.get()); in aco_postprocess_shader()
146 validate(program.get()); in aco_postprocess_shader()
149 live_vars = aco::live_var_analysis(program.get()); in aco_postprocess_shader()
150 if (program->collect_statistics) in aco_postprocess_shader()
151 aco::collect_presched_stats(program.get()); in aco_postprocess_shader()
152 aco::spill(program.get(), live_vars); in aco_postprocess_shader()
161 aco_print_program(program.get(), memf); in aco_postprocess_shader()
171 aco_print_program(program.get(), stderr, live_vars, aco::print_live_vars | aco::print_kill); in aco_postprocess_shader()
175 aco::schedule_program(program.get(), live_vars); in aco_postprocess_shader()
176 validate(program.get()); in aco_postprocess_shader()
179 aco::register_allocation(program.get(), live_vars.live_out); in aco_postprocess_shader()
181 if (aco::validate_ra(program.get())) { in aco_postprocess_shader()
182 aco_print_program(program.get(), stderr); in aco_postprocess_shader()
185 aco_print_program(program.get(), stderr); in aco_postprocess_shader()
188 validate(program.get()); in aco_postprocess_shader()
192 aco::optimize_postRA(program.get()); in aco_postprocess_shader()
193 validate(program.get()); in aco_postprocess_shader()
196 aco::ssa_elimination(program.get()); in aco_postprocess_shader()
200 aco::lower_to_hw_instr(program.get()); in aco_postprocess_shader()
201 validate(program.get()); in aco_postprocess_shader()
204 aco::schedule_vopd(program.get()); in aco_postprocess_shader()
208 aco::schedule_ilp(program.get()); in aco_postprocess_shader()
211 aco::insert_wait_states(program.get()); in aco_postprocess_shader()
212 aco::insert_NOPs(program.get()); in aco_postprocess_shader()
214 if (program->gfx_level >= GFX10) in aco_postprocess_shader()
215 aco::form_hard_clauses(program.get()); in aco_postprocess_shader()
217 if (program->collect_statistics || (aco::debug_flags & aco::DEBUG_PERF_INFO)) in aco_postprocess_shader()
218 aco::collect_preasm_stats(program.get()); in aco_postprocess_shader()
231 std::unique_ptr<aco::Program> program{new aco::Program}; in aco_compile_shader() local
233 program->collect_statistics = options->record_stats; in aco_compile_shader()
234 if (program->collect_statistics) in aco_compile_shader()
235 memset(program->statistics, 0, sizeof(program->statistics)); in aco_compile_shader()
237 program->debug.func = options->debug.func; in aco_compile_shader()
238 program->debug.private_data = options->debug.private_data; in aco_compile_shader()
242 aco::select_trap_handler_shader(program.get(), shaders[0], &config, options, info, args); in aco_compile_shader()
244 aco::select_program(program.get(), shader_count, shaders, &config, options, info, args); in aco_compile_shader()
246 std::string llvm_ir = aco_postprocess_shader(options, info, program); in aco_compile_shader()
255 unsigned exec_size = aco::emit_program(program.get(), code, &symbols, append_endpgm); in aco_compile_shader()
257 if (program->collect_statistics) in aco_compile_shader()
258 aco::collect_postasm_stats(program.get(), code); in aco_compile_shader()
264 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_shader()
267 if (program->collect_statistics) in aco_compile_shader()
271 program->statistics, stats_size, exec_size, code.data(), code.size(), in aco_compile_shader()
283 /* create program */ in aco_compile_rt_prolog()
285 std::unique_ptr<aco::Program> program{new aco::Program}; in aco_compile_rt_prolog() local
286 program->collect_statistics = false; in aco_compile_rt_prolog()
287 program->debug.func = NULL; in aco_compile_rt_prolog()
288 program->debug.private_data = NULL; in aco_compile_rt_prolog()
290 aco::select_rt_prolog(program.get(), &config, options, info, in_args, out_args); in aco_compile_rt_prolog()
291 validate(program.get()); in aco_compile_rt_prolog()
292 aco::insert_wait_states(program.get()); in aco_compile_rt_prolog()
293 aco::insert_NOPs(program.get()); in aco_compile_rt_prolog()
294 if (program->gfx_level >= GFX10) in aco_compile_rt_prolog()
295 aco::form_hard_clauses(program.get()); in aco_compile_rt_prolog()
298 aco_print_program(program.get(), stderr); in aco_compile_rt_prolog()
302 code.reserve(align(program->blocks[0].instructions.size() * 2, 16)); in aco_compile_rt_prolog()
303 unsigned exec_size = aco::emit_program(program.get(), code); in aco_compile_rt_prolog()
309 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_rt_prolog()
311 (*build_prolog)(binary, &config, NULL, 0, disasm.c_str(), disasm.size(), program->statistics, 0, in aco_compile_rt_prolog()
323 /* create program */ in aco_compile_vs_prolog()
325 std::unique_ptr<aco::Program> program{new aco::Program}; in aco_compile_vs_prolog() local
326 program->collect_statistics = false; in aco_compile_vs_prolog()
327 program->debug.func = NULL; in aco_compile_vs_prolog()
328 program->debug.private_data = NULL; in aco_compile_vs_prolog()
331 aco::select_vs_prolog(program.get(), pinfo, &config, options, info, args); in aco_compile_vs_prolog()
332 validate(program.get()); in aco_compile_vs_prolog()
333 aco::insert_NOPs(program.get()); in aco_compile_vs_prolog()
336 aco_print_program(program.get(), stderr); in aco_compile_vs_prolog()
340 code.reserve(align(program->blocks[0].instructions.size() * 2, 16)); in aco_compile_vs_prolog()
341 unsigned exec_size = aco::emit_program(program.get(), code); in aco_compile_vs_prolog()
347 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_vs_prolog()
353 typedef void(select_shader_part_callback)(aco::Program* program, void* pinfo,
369 std::unique_ptr<aco::Program> program{new aco::Program}; in aco_compile_shader_part() local
371 program->collect_statistics = options->record_stats; in aco_compile_shader_part()
372 if (program->collect_statistics) in aco_compile_shader_part()
373 memset(program->statistics, 0, sizeof(program->statistics)); in aco_compile_shader_part()
375 program->debug.func = options->debug.func; in aco_compile_shader_part()
376 program->debug.private_data = options->debug.private_data; in aco_compile_shader_part()
378 program->is_prolog = is_prolog; in aco_compile_shader_part()
381 select_shader_part(program.get(), pinfo, &config, options, info, args); in aco_compile_shader_part()
383 aco_postprocess_shader(options, info, program); in aco_compile_shader_part()
388 unsigned exec_size = aco::emit_program(program.get(), code, NULL, append_endpgm); in aco_compile_shader_part()
394 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_shader_part()