/third_party/mesa3d/src/amd/compiler/ |
D | aco_reduce_assign.cpp | 47 for (aco_ptr<Instruction>& instr : block.instructions) { in setup_reduce_temp() 73 aco_ptr<Instruction> end{create_instruction<Instruction>( in setup_reduce_temp() 79 std::vector<aco_ptr<Instruction>>::iterator it = block.instructions.begin(); in setup_reduce_temp() 92 std::vector<aco_ptr<Instruction>>::iterator it; in setup_reduce_temp() 103 aco_ptr<Pseudo_instruction> create{create_instruction<Pseudo_instruction>( in setup_reduce_temp() 116 std::vector<aco_ptr<Instruction>>& instructions = in setup_reduce_temp() 145 aco_ptr<Pseudo_instruction> create{create_instruction<Pseudo_instruction>( in setup_reduce_temp() 153 std::vector<aco_ptr<Instruction>>& instructions = in setup_reduce_temp()
|
D | aco_insert_NOPs.cpp | 39 std::vector<aco_ptr<Instruction>> old_instructions; 190 get_wait_states(aco_ptr<Instruction>& instr) in get_wait_states() 208 handle_raw_hazard_instr(aco_ptr<Instruction>& pred, PhysReg reg, int* nops_needed, uint32_t* mask) in handle_raw_hazard_instr() 243 aco_ptr<Instruction>& instr = state.old_instructions[pred_idx]; in handle_raw_hazard_internal() 324 handle_smem_clause_hazards(Program* program, NOP_ctx_gfx6& ctx, aco_ptr<Instruction>& instr, in handle_smem_clause_hazards() 352 handle_instruction_gfx6(State& state, NOP_ctx_gfx6& ctx, aco_ptr<Instruction>& instr, in handle_instruction_gfx6() 353 std::vector<aco_ptr<Instruction>>& new_instructions) in handle_instruction_gfx6() 466 aco_ptr<SOPP_instruction> nop{ in handle_instruction_gfx6() 558 check_written_regs(const aco_ptr<Instruction>& instr, const std::bitset<N>& check_regs) in check_written_regs() 574 mark_read_regs(const aco_ptr<Instruction>& instr, std::bitset<N>& reg_reads) in mark_read_regs() [all …]
|
D | aco_statistics.cpp | 74 unsigned predict_cost(aco_ptr<Instruction>& instr); 75 void add(aco_ptr<Instruction>& instr); 80 unsigned get_dependency_cost(aco_ptr<Instruction>& instr); 82 void use_resources(aco_ptr<Instruction>& instr); 83 int32_t cycles_until_res_available(aco_ptr<Instruction>& instr); 108 get_perf_info(Program* program, aco_ptr<Instruction>& instr) in get_perf_info() 183 BlockCycleEstimator::use_resources(aco_ptr<Instruction>& instr) in use_resources() 199 BlockCycleEstimator::cycles_until_res_available(aco_ptr<Instruction>& instr) in cycles_until_res_available() 213 get_wait_counter_info(aco_ptr<Instruction>& instr) in get_wait_counter_info() 259 get_wait_imm(Program* program, aco_ptr<Instruction>& instr) in get_wait_imm() [all …]
|
D | aco_spill.cpp | 186 aco_ptr<Instruction>& instr = block->instructions[idx]; in next_uses_per_block() 211 aco_ptr<Instruction>& instr = block->instructions[idx]; in next_uses_per_block() 282 should_rematerialize(aco_ptr<Instruction>& instr) in should_rematerialize() 309 aco_ptr<Instruction> 322 aco_ptr<Instruction> res; in do_reload() 348 aco_ptr<Pseudo_instruction> reload{ in do_reload() 362 for (aco_ptr<Instruction>& instr : block.instructions) { in get_rematerialize_info() 397 aco_ptr<Instruction>& instr = block->instructions[idx]; in update_local_next_uses() 439 aco_ptr<Instruction>& instr = ctx.program->blocks[block_idx].instructions[idx]; in get_demand_before() 440 aco_ptr<Instruction> instr_before(nullptr); in get_demand_before() [all …]
|
D | aco_form_hard_clauses.cpp | 42 emit_clause(Builder& bld, unsigned num_instrs, aco_ptr<Instruction>* instrs) in emit_clause() 69 aco_ptr<Instruction> current_instrs[64]; in form_hard_clauses() 72 std::vector<aco_ptr<Instruction>> new_instructions; in form_hard_clauses() 77 aco_ptr<Instruction>& instr = block.instructions[i]; in form_hard_clauses()
|
D | aco_ssa_elimination.cpp | 59 for (aco_ptr<Instruction>& phi : block.instructions) { in collect_phi_info() 99 std::vector<aco_ptr<Instruction>>::iterator it = std::next(block.instructions.begin(), idx); in insert_parallelcopies() 100 aco_ptr<Pseudo_instruction> pc{ in insert_parallelcopies() 121 std::vector<aco_ptr<Instruction>>::iterator it = block.instructions.end(); in insert_parallelcopies() 124 aco_ptr<Pseudo_instruction> pc{ in insert_parallelcopies() 143 for (aco_ptr<Instruction>& instr : block->instructions) { in is_empty_block() 183 aco_ptr<Instruction> branch = std::move(block->instructions.back()); in try_remove_merge_block() 330 aco_ptr<Instruction>& instr = block.instructions[i]; in eliminate_useless_exec_writes_in_block()
|
D | aco_lower_phis.cpp | 110 aco_ptr<Pseudo_instruction> phi{ in get_ssa() 123 insert_before_logical_end(Block* block, aco_ptr<Instruction> instr) in insert_before_logical_end() 125 auto IsLogicalEnd = [](const aco_ptr<Instruction>& inst) -> bool in insert_before_logical_end() 147 auto IsLogicalEnd = [](const aco_ptr<Instruction>& instr) -> bool in build_merge_code() 196 init_any_pred_defined(Program* program, ssa_state* state, Block* block, aco_ptr<Instruction>& phi) in init_any_pred_defined() 253 aco_ptr<Instruction>& phi) in lower_divergent_bool_phi() 312 lower_subdword_phis(Program* program, Block* block, aco_ptr<Instruction>& phi) in lower_subdword_phis() 345 for (aco_ptr<Instruction>& phi : block.instructions) { in lower_phis()
|
D | aco_insert_exec_mask.cpp | 100 needs_exact(aco_ptr<Instruction>& instr) in needs_exact() 153 aco_ptr<Instruction>& instr = block->instructions[i]; in get_block_needs() 405 add_coupling_code(exec_ctx& ctx, Block* block, std::vector<aco_ptr<Instruction>>& instructions) in add_coupling_code() 413 aco_ptr<Instruction>& startpgm = block->instructions[0]; in add_coupling_code() 455 aco_ptr<Pseudo_instruction> phi; in add_coupling_code() 468 aco_ptr<Pseudo_instruction> phi{create_instruction<Pseudo_instruction>( in add_coupling_code() 476 aco_ptr<Pseudo_instruction> phi{create_instruction<Pseudo_instruction>( in add_coupling_code() 525 aco_ptr<Instruction>& phi = header->instructions[instr_idx]; in add_coupling_code() 534 aco_ptr<Instruction>& phi = header->instructions[instr_idx++]; in add_coupling_code() 542 aco_ptr<Instruction>& phi = header->instructions[instr_idx]; in add_coupling_code() [all …]
|
D | aco_optimizer_postRA.cpp | 88 save_reg_writes(pr_opt_ctx& ctx, aco_ptr<Instruction>& instr) in save_reg_writes() 181 try_apply_branch_vcc(pr_opt_ctx& ctx, aco_ptr<Instruction>& instr) in try_apply_branch_vcc() 239 try_optimize_scc_nocompare(pr_opt_ctx& ctx, aco_ptr<Instruction>& instr) in try_optimize_scc_nocompare() 376 try_combine_dpp(pr_opt_ctx& ctx, aco_ptr<Instruction>& instr) in try_combine_dpp() 439 process_instruction(pr_opt_ctx& ctx, aco_ptr<Instruction>& instr) in process_instruction() 470 for (aco_ptr<Instruction>& instr : block.instructions) in optimize_postRA() 480 [&ctx](const aco_ptr<Instruction>& instr) in optimize_postRA()
|
D | aco_optimizer.cpp | 76 aco_ptr<Instruction> add_instr; 81 mad_info(aco_ptr<Instruction> instr, uint32_t id) in mad_info() 470 std::vector<aco_ptr<Instruction>> instructions; 478 can_use_VOP3(opt_ctx& ctx, const aco_ptr<Instruction>& instr) in can_use_VOP3() 502 pseudo_propagate_temp(opt_ctx& ctx, aco_ptr<Instruction>& instr, Temp temp, unsigned index) in pseudo_propagate_temp() 565 can_apply_sgprs(opt_ctx& ctx, aco_ptr<Instruction>& instr) in can_apply_sgprs() 579 to_VOP3(opt_ctx& ctx, aco_ptr<Instruction>& instr) in to_VOP3() 584 aco_ptr<Instruction> tmp = std::move(instr); in to_VOP3() 608 to_SDWA(opt_ctx& ctx, aco_ptr<Instruction>& instr) in to_SDWA() 610 aco_ptr<Instruction> tmp = convert_to_SDWA(ctx.program->chip_class, instr); in to_SDWA() [all …]
|
D | aco_register_allocation.cpp | 40 unsigned get_subdword_operand_stride(chip_class chip, const aco_ptr<Instruction>& instr, 42 void add_subdword_operand(ra_ctx& ctx, aco_ptr<Instruction>& instr, unsigned idx, unsigned byte, 45 get_subdword_definition_info(Program* program, const aco_ptr<Instruction>& instr, RegClass rc); 46 void add_subdword_definition(Program* program, aco_ptr<Instruction>& instr, PhysReg reg); 73 aco_ptr<Instruction> pseudo_dummy; 199 DefInfo(ra_ctx& ctx, aco_ptr<Instruction>& instr, RegClass rc_, int operand) : rc(rc_) in DefInfo() 469 get_subdword_operand_stride(chip_class chip, const aco_ptr<Instruction>& instr, unsigned idx, in get_subdword_operand_stride() 509 add_subdword_operand(ra_ctx& ctx, aco_ptr<Instruction>& instr, unsigned idx, unsigned byte, in add_subdword_operand() 574 get_subdword_definition_info(Program* program, const aco_ptr<Instruction>& instr, RegClass rc) in get_subdword_definition_info() 631 add_subdword_definition(Program* program, aco_ptr<Instruction>& instr, PhysReg reg) in add_subdword_definition() [all …]
|
D | aco_dead_code_analysis.cpp | 62 aco_ptr<Instruction>& instr = block.instructions[idx]; in process_block() 106 aco_ptr<Instruction>& startpgm = program->blocks[0].instructions[0]; in dead_code_analysis()
|
D | aco_ir.cpp | 185 can_use_SDWA(chip_class chip, const aco_ptr<Instruction>& instr, bool pre_ra) in can_use_SDWA() 250 aco_ptr<Instruction> 251 convert_to_SDWA(chip_class chip, aco_ptr<Instruction>& instr) in convert_to_SDWA() 256 aco_ptr<Instruction> tmp = std::move(instr); in convert_to_SDWA() 295 can_use_DPP(const aco_ptr<Instruction>& instr, bool pre_ra) in can_use_DPP() 333 aco_ptr<Instruction> 334 convert_to_DPP(aco_ptr<Instruction>& instr) in convert_to_DPP() 339 aco_ptr<Instruction> tmp = std::move(instr); in convert_to_DPP() 674 can_swap_operands(aco_ptr<Instruction>& instr, aco_opcode* new_op) in can_swap_operands()
|
D | aco_reindex_ssa.cpp | 38 reindex_defs(idx_ctx& ctx, aco_ptr<Instruction>& instr) in reindex_defs() 52 reindex_ops(idx_ctx& ctx, aco_ptr<Instruction>& instr) in reindex_ops()
|
D | aco_scheduler.cpp | 210 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx]; in downwards_move() 284 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx]; in downwards_skip() 337 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx]; in upwards_check_deps() 357 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx]; in upwards_move() 405 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx]; in upwards_skip() 665 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx]; in schedule_SMEM() 727 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx]; in schedule_SMEM() 807 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx]; in schedule_VMEM() 901 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx]; in schedule_VMEM() 973 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx]; in schedule_position_export()
|
D | aco_lower_to_cssa.cpp | 80 for (aco_ptr<Instruction>& phi : block.instructions) { in collect_parallelcopies() 420 aco_ptr<Pseudo_instruction> copy{create_instruction<Pseudo_instruction>( in emit_copies_block() 487 auto IsLogicalEnd = [](const aco_ptr<Instruction>& inst) -> bool in emit_parallelcopies() 497 aco_ptr<Instruction> branch = std::move(block.instructions.back()); in emit_parallelcopies() 507 for (aco_ptr<Instruction>& phi : block.instructions) { in emit_parallelcopies()
|
D | aco_live_var_analysis.cpp | 35 get_live_changes(aco_ptr<Instruction>& instr) in get_live_changes() 54 get_temp_registers(aco_ptr<Instruction>& instr) in get_temp_registers() 74 get_demand_before(RegisterDemand demand, aco_ptr<Instruction>& instr, in get_demand_before() 75 aco_ptr<Instruction>& instr_before) in get_demand_before()
|
D | aco_ir.h | 1693 template <typename T> using aco_ptr = std::unique_ptr<T, instr_deleter_functor>; variable 1751 is_phi(aco_ptr<Instruction>& instr) in is_phi() 1762 bool can_use_SDWA(chip_class chip, const aco_ptr<Instruction>& instr, bool pre_ra); 1763 bool can_use_DPP(const aco_ptr<Instruction>& instr, bool pre_ra); 1765 aco_ptr<Instruction> convert_to_SDWA(chip_class chip, aco_ptr<Instruction>& instr); 1766 aco_ptr<Instruction> convert_to_DPP(aco_ptr<Instruction>& instr); 1776 bool can_swap_operands(aco_ptr<Instruction>& instr, aco_opcode* new_op); 1883 std::vector<aco_ptr<Instruction>> instructions; 2217 RegisterDemand get_live_changes(aco_ptr<Instruction>& instr); 2218 RegisterDemand get_temp_registers(aco_ptr<Instruction>& instr); [all …]
|
D | aco_opt_value_numbering.cpp | 324 can_eliminate(aco_ptr<Instruction>& instr) in can_eliminate() 358 std::vector<aco_ptr<Instruction>> new_instructions; in process_block() 361 for (aco_ptr<Instruction>& instr : block.instructions) { in process_block() 429 for (aco_ptr<Instruction>& phi : block.instructions) { in rename_phi_operands()
|
D | aco_validate.cpp | 114 for (aco_ptr<Instruction>& instr : block.instructions) { in validate_ir() 711 validate_subdword_operand(chip_class chip, const aco_ptr<Instruction>& instr, unsigned index) in validate_subdword_operand() 765 validate_subdword_definition(chip_class chip, const aco_ptr<Instruction>& instr) in validate_subdword_definition() 796 get_subdword_bytes_written(Program* program, const aco_ptr<Instruction>& instr, unsigned index) in get_subdword_bytes_written() 856 for (aco_ptr<Instruction>& instr : block.instructions) { in validate_ra() 956 aco_ptr<Instruction>& instr = *it; in validate_ra() 996 for (aco_ptr<Instruction>& instr : block.instructions) { in validate_ra()
|
D | aco_instruction_selection.cpp | 391 aco_ptr<Pseudo_instruction> split{create_instruction<Pseudo_instruction>( in emit_split_vector() 425 aco_ptr<Pseudo_instruction> vec{create_instruction<Pseudo_instruction>( in expand_vector() 546 aco_ptr<Pseudo_instruction> create_vec{create_instruction<Pseudo_instruction>( in byte_align_vector() 732 aco_ptr<Pseudo_instruction> vec_instr{create_instruction<Pseudo_instruction>( in get_alu_src() 798 aco_ptr<SOP2_instruction> sop2{ in emit_sop2_instruction() 985 aco_ptr<Instruction> vopc; in emit_vopc_instruction() 1090 aco_ptr<Instruction> bcsel; in emit_bcsel() 1334 aco_ptr<Pseudo_instruction> vec{create_instruction<Pseudo_instruction>( in visit_alu_instr() 2443 aco_ptr<Instruction> norm; in visit_alu_instr() 3305 aco_ptr<Instruction> sop2; in visit_alu_instr() [all …]
|
D | aco_insert_waitcnt.cpp | 709 emit_waitcnt(wait_ctx& ctx, std::vector<aco_ptr<Instruction>>& instructions, wait_imm& imm) in emit_waitcnt() 733 std::vector<aco_ptr<Instruction>> new_instructions; in handle_block() 737 for (aco_ptr<Instruction>& instr : block.instructions) { in handle_block()
|
/third_party/mesa3d/src/amd/compiler/tests/ |
D | test_assembler.cpp | 240 …aco_ptr<VOP3_instruction> add3{create_instruction<VOP3_instruction>(aco_opcode::v_add3_u32, Format… 258 …aco_ptr<VOP3_instruction> add3{create_instruction<VOP3_instruction>(aco_opcode::v_add3_u32, Format…
|
D | test_insert_nops.cpp | 36 aco_ptr<MIMG_instruction> mimg{create_instruction<MIMG_instruction>( in create_mimg()
|
D | test_hard_clause.cpp | 70 aco_ptr<MIMG_instruction> mimg{create_instruction<MIMG_instruction>( in create_mimg()
|