Lines Matching refs:instr
210 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx];
212 for (const Definition& def : instr->definitions)
219 for (const Operand& op : instr->operands) {
227 for (const Operand& op : instr->operands) {
243 const RegisterDemand candidate_diff = get_live_changes(instr);
248 const RegisterDemand temp = get_temp_registers(instr);
284 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx];
286 for (const Operand& op : instr->operands) {
337 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx];
338 for (const Operand& op : instr->operands) {
357 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx];
358 for (const Operand& op : instr->operands) {
364 for (const Operand& op : instr->operands) {
371 const RegisterDemand candidate_diff = get_live_changes(instr);
372 const RegisterDemand temp = get_temp_registers(instr);
405 aco_ptr<Instruction>& instr = block->instructions[cursor.source_idx];
406 for (const Definition& def : instr->definitions) {
410 for (const Operand& op : instr->operands) {
423 is_gs_or_done_sendmsg(const Instruction* instr)
425 if (instr->opcode == aco_opcode::s_sendmsg) {
426 uint16_t imm = instr->sopp().imm;
433 is_done_sendmsg(const Instruction* instr)
435 if (instr->opcode == aco_opcode::s_sendmsg)
436 return (instr->sopp().imm & sendmsg_id_mask) == _sendmsg_gs_done;
441 get_sync_info_with_hack(const Instruction* instr)
443 memory_sync_info sync = get_sync_info(instr);
444 if (instr->isSMEM() && !instr->operands.empty() && instr->operands[0].bytes() == 16) {
487 add_memory_event(memory_event_set* set, Instruction* instr, memory_sync_info* sync)
489 set->has_control_barrier |= is_done_sendmsg(instr);
490 if (instr->opcode == aco_opcode::p_barrier) {
491 Pseudo_barrier_instruction& bar = instr->barrier();
518 add_to_hazard_query(hazard_query* query, Instruction* instr)
520 if (instr->opcode == aco_opcode::p_spill || instr->opcode == aco_opcode::p_reload)
522 query->contains_sendmsg |= instr->opcode == aco_opcode::s_sendmsg;
523 query->uses_exec |= needs_exec_mask(instr);
525 memory_sync_info sync = get_sync_info_with_hack(instr);
527 add_memory_event(&query->mem_events, instr, &sync);
535 if (instr->isSMEM())
557 perform_hazard_query(hazard_query* query, Instruction* instr, bool upwards)
560 if (!upwards && instr->opcode == aco_opcode::p_exit_early_if)
564 for (const Definition& def : instr->definitions) {
571 if (instr->isEXP())
575 if (instr->opcode == aco_opcode::s_memtime || instr->opcode == aco_opcode::s_memrealtime ||
576 instr->opcode == aco_opcode::s_setprio || instr->opcode == aco_opcode::s_getreg_b32 ||
577 instr->opcode == aco_opcode::p_init_scratch || instr->opcode == aco_opcode::p_jump_to_epilog)
582 memory_sync_info sync = get_sync_info_with_hack(instr);
583 add_memory_event(&instr_set, instr, &sync);
625 instr->isSMEM() ? query->aliasing_storage_smem : query->aliasing_storage;
633 if ((instr->opcode == aco_opcode::p_spill || instr->opcode == aco_opcode::p_reload) &&
637 if (instr->opcode == aco_opcode::s_sendmsg && query->contains_sendmsg)