• Home
  • Raw
  • Download

Lines Matching full:program

53 validate(Program* program)  in validate()  argument
58 ASSERTED bool is_valid = validate_ir(program); in validate()
63 get_disasm_string(Program* program, std::vector<uint32_t>& code, unsigned exec_size) in get_disasm_string() argument
72 if (check_print_asm_support(program)) { in get_disasm_string()
73 print_asm(program, code, exec_size / 4u, memf); in get_disasm_string()
80 aco_print_program(program, memf); in get_disasm_string()
93 std::unique_ptr<Program>& program) in aco_postprocess_shader() argument
98 aco_print_program(program.get(), stderr); in aco_postprocess_shader()
100 ASSERTED bool is_valid = validate_cfg(program.get()); in aco_postprocess_shader()
103 dominator_tree(program.get()); in aco_postprocess_shader()
104 if (program->should_repair_ssa) in aco_postprocess_shader()
105 repair_ssa(program.get()); in aco_postprocess_shader()
106 lower_phis(program.get()); in aco_postprocess_shader()
108 if (program->gfx_level <= GFX7) in aco_postprocess_shader()
109 lower_subdword(program.get()); in aco_postprocess_shader()
111 validate(program.get()); in aco_postprocess_shader()
116 value_numbering(program.get()); in aco_postprocess_shader()
118 optimize(program.get()); in aco_postprocess_shader()
121 if (program->should_repair_ssa && repair_ssa(program.get())) in aco_postprocess_shader()
122 lower_phis(program.get()); in aco_postprocess_shader()
126 setup_reduce_temp(program.get()); in aco_postprocess_shader()
127 insert_exec_mask(program.get()); in aco_postprocess_shader()
128 validate(program.get()); in aco_postprocess_shader()
131 live_var_analysis(program.get()); in aco_postprocess_shader()
132 if (program->collect_statistics) in aco_postprocess_shader()
133 collect_presched_stats(program.get()); in aco_postprocess_shader()
134 spill(program.get()); in aco_postprocess_shader()
142 aco_print_program(program.get(), memf); in aco_postprocess_shader()
152 aco_print_program(program.get(), stderr, print_live_vars | print_kill); in aco_postprocess_shader()
155 schedule_program(program.get()); in aco_postprocess_shader()
156 validate(program.get()); in aco_postprocess_shader()
159 register_allocation(program.get()); in aco_postprocess_shader()
161 if (validate_ra(program.get())) { in aco_postprocess_shader()
162 aco_print_program(program.get(), stderr); in aco_postprocess_shader()
165 aco_print_program(program.get(), stderr); in aco_postprocess_shader()
168 validate(program.get()); in aco_postprocess_shader()
172 optimize_postRA(program.get()); in aco_postprocess_shader()
173 validate(program.get()); in aco_postprocess_shader()
177 ssa_elimination(program.get()); in aco_postprocess_shader()
178 lower_to_hw_instr(program.get()); in aco_postprocess_shader()
179 lower_branches(program.get()); in aco_postprocess_shader()
180 validate(program.get()); in aco_postprocess_shader()
183 schedule_vopd(program.get()); in aco_postprocess_shader()
187 schedule_ilp(program.get()); in aco_postprocess_shader()
189 insert_waitcnt(program.get()); in aco_postprocess_shader()
190 insert_NOPs(program.get()); in aco_postprocess_shader()
191 if (program->gfx_level >= GFX11) in aco_postprocess_shader()
192 insert_delay_alu(program.get()); in aco_postprocess_shader()
194 if (program->gfx_level >= GFX10) in aco_postprocess_shader()
195 form_hard_clauses(program.get()); in aco_postprocess_shader()
197 if (program->gfx_level >= GFX11) in aco_postprocess_shader()
198 combine_delay_alu(program.get()); in aco_postprocess_shader()
200 if (program->collect_statistics || (debug_flags & DEBUG_PERF_INFO)) in aco_postprocess_shader()
201 collect_preasm_stats(program.get()); in aco_postprocess_shader()
206 typedef void(select_shader_part_callback)(Program* program, void* pinfo, ac_shader_config* config,
221 std::unique_ptr<Program> program{new Program}; in aco_compile_shader_part() local
223 program->collect_statistics = options->record_stats; in aco_compile_shader_part()
224 if (program->collect_statistics) in aco_compile_shader_part()
225 memset(program->statistics, 0, sizeof(program->statistics)); in aco_compile_shader_part()
227 program->debug.func = options->debug.func; in aco_compile_shader_part()
228 program->debug.private_data = options->debug.private_data; in aco_compile_shader_part()
230 program->is_prolog = is_prolog; in aco_compile_shader_part()
231 program->is_epilog = !is_prolog; in aco_compile_shader_part()
234 select_shader_part(program.get(), pinfo, &config, options, info, args); in aco_compile_shader_part()
236 aco_postprocess_shader(options, program); in aco_compile_shader_part()
241 unsigned exec_size = emit_program(program.get(), code, NULL, append_endpgm); in aco_compile_shader_part()
245 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_shader_part()
261 std::unique_ptr<Program> program{new Program}; in aco_compile_shader() local
263 program->collect_statistics = options->record_stats; in aco_compile_shader()
264 if (program->collect_statistics) in aco_compile_shader()
265 memset(program->statistics, 0, sizeof(program->statistics)); in aco_compile_shader()
267 program->debug.func = options->debug.func; in aco_compile_shader()
268 program->debug.private_data = options->debug.private_data; in aco_compile_shader()
271 select_program(program.get(), shader_count, shaders, &config, options, info, args); in aco_compile_shader()
273 std::string llvm_ir = aco_postprocess_shader(options, program); in aco_compile_shader()
282 unsigned exec_size = emit_program(program.get(), code, &symbols, append_endpgm); in aco_compile_shader()
284 if (program->collect_statistics) in aco_compile_shader()
285 collect_postasm_stats(program.get(), code); in aco_compile_shader()
289 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_shader()
292 if (program->collect_statistics) in aco_compile_shader()
296 program->statistics, stats_size, exec_size, code.data(), code.size(), in aco_compile_shader()
297 symbols.data(), symbols.size(), program->debug_info.data(), in aco_compile_shader()
298 program->debug_info.size()); in aco_compile_shader()
309 /* create program */ in aco_compile_rt_prolog()
311 std::unique_ptr<Program> program{new Program}; in aco_compile_rt_prolog() local
312 program->collect_statistics = false; in aco_compile_rt_prolog()
313 program->debug.func = NULL; in aco_compile_rt_prolog()
314 program->debug.private_data = NULL; in aco_compile_rt_prolog()
316 select_rt_prolog(program.get(), &config, options, info, in_args, out_args); in aco_compile_rt_prolog()
317 validate(program.get()); in aco_compile_rt_prolog()
318 insert_waitcnt(program.get()); in aco_compile_rt_prolog()
319 insert_NOPs(program.get()); in aco_compile_rt_prolog()
320 if (program->gfx_level >= GFX11) in aco_compile_rt_prolog()
321 insert_delay_alu(program.get()); in aco_compile_rt_prolog()
322 if (program->gfx_level >= GFX10) in aco_compile_rt_prolog()
323 form_hard_clauses(program.get()); in aco_compile_rt_prolog()
324 if (program->gfx_level >= GFX11) in aco_compile_rt_prolog()
325 combine_delay_alu(program.get()); in aco_compile_rt_prolog()
328 aco_print_program(program.get(), stderr); in aco_compile_rt_prolog()
332 code.reserve(align(program->blocks[0].instructions.size() * 2, 16)); in aco_compile_rt_prolog()
333 unsigned exec_size = emit_program(program.get(), code); in aco_compile_rt_prolog()
337 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_rt_prolog()
339 (*build_prolog)(binary, &config, NULL, 0, disasm.c_str(), disasm.size(), program->statistics, 0, in aco_compile_rt_prolog()
351 /* create program */ in aco_compile_vs_prolog()
353 std::unique_ptr<Program> program{new Program}; in aco_compile_vs_prolog() local
354 program->collect_statistics = false; in aco_compile_vs_prolog()
355 program->debug.func = NULL; in aco_compile_vs_prolog()
356 program->debug.private_data = NULL; in aco_compile_vs_prolog()
359 select_vs_prolog(program.get(), pinfo, &config, options, info, args); in aco_compile_vs_prolog()
360 validate(program.get()); in aco_compile_vs_prolog()
361 insert_NOPs(program.get()); in aco_compile_vs_prolog()
362 if (program->gfx_level >= GFX10) in aco_compile_vs_prolog()
363 form_hard_clauses(program.get()); in aco_compile_vs_prolog()
366 aco_print_program(program.get(), stderr); in aco_compile_vs_prolog()
370 code.reserve(align(program->blocks[0].instructions.size() * 2, 16)); in aco_compile_vs_prolog()
371 unsigned exec_size = emit_program(program.get(), code); in aco_compile_vs_prolog()
375 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_vs_prolog()
409 std::unique_ptr<Program> program{new Program}; in aco_compile_trap_handler() local
410 program->collect_statistics = false; in aco_compile_trap_handler()
411 program->debug.func = NULL; in aco_compile_trap_handler()
412 program->debug.private_data = NULL; in aco_compile_trap_handler()
414 select_trap_handler_shader(program.get(), &config, options, info, args); in aco_compile_trap_handler()
417 aco_print_program(program.get(), stderr); in aco_compile_trap_handler()
418 validate(program.get()); in aco_compile_trap_handler()
420 insert_exec_mask(program.get()); in aco_compile_trap_handler()
421 validate(program.get()); in aco_compile_trap_handler()
423 lower_to_hw_instr(program.get()); in aco_compile_trap_handler()
424 lower_branches(program.get()); in aco_compile_trap_handler()
425 validate(program.get()); in aco_compile_trap_handler()
427 insert_waitcnt(program.get()); in aco_compile_trap_handler()
428 insert_NOPs(program.get()); in aco_compile_trap_handler()
432 code.reserve(align(program->blocks[0].instructions.size() * 2, 16)); in aco_compile_trap_handler()
433 unsigned exec_size = emit_program(program.get(), code); in aco_compile_trap_handler()
437 disasm = get_disasm_string(program.get(), code, exec_size); in aco_compile_trap_handler()
439 (*build_binary)(binary, &config, NULL, 0, disasm.c_str(), disasm.size(), program->statistics, 0, in aco_compile_trap_handler()
524 aco::Program prog; in aco_print_asm()