Lines Matching refs:candidate

216    /* check if one of candidate's operands is killed by depending instruction */
254 /* move the candidate below the memory load */
363 /* check if candidate uses/kills an operand which is used by a dependency */
381 /* move the candidate above the insert_idx */
667 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
676 if (candidate->opcode == aco_opcode::p_logical_start)
680 if ((candidate->isVMEM() || candidate->isFlatLike()) &&
685 if (candidate->format == Format::SMEM && current->operands[0].size() == 4 &&
686 candidate->operands[0].size() == 2)
691 HazardResult haz = perform_hazard_query(&hq, candidate.get(), false);
701 if (candidate->isDS() || !can_move_down) {
702 add_to_hazard_query(&hq, candidate.get());
709 add_to_hazard_query(&hq, candidate.get());
730 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
732 if (candidate->opcode == aco_opcode::p_logical_end)
735 /* check if candidate depends on current */
738 if (is_dependency && (candidate->isVMEM() || candidate->isFlatLike()))
742 HazardResult haz = perform_hazard_query(&hq, candidate.get(), true);
761 add_to_hazard_query(&hq, candidate.get());
771 if (res == move_fail_ssa && (candidate->isVMEM() || candidate->isFlatLike()))
773 add_to_hazard_query(&hq, candidate.get());
810 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
811 bool is_vmem = candidate->isVMEM() || candidate->isFlatLike();
814 if (candidate->opcode == aco_opcode::p_logical_start)
824 if (current->isVMEM() == candidate->isVMEM()) {
829 grab_dist < clause_max_grab_dist + k && should_form_clause(current, candidate.get());
832 /* if current depends on candidate, add additional dependencies and continue */
833 bool can_move_down = !is_vmem || part_of_clause || candidate->definitions.empty();
852 perform_hazard_query(part_of_clause ? &clause_hq : &indep_hq, candidate.get(), false);
863 add_to_hazard_query(&indep_hq, candidate.get());
864 add_to_hazard_query(&clause_hq, candidate.get());
869 Instruction* candidate_ptr = candidate.get();
874 add_to_hazard_query(&indep_hq, candidate.get());
875 add_to_hazard_query(&clause_hq, candidate.get());
882 add_to_hazard_query(&indep_hq, candidate.get());
883 add_to_hazard_query(&clause_hq, candidate.get());
904 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
905 bool is_vmem = candidate->isVMEM() || candidate->isFlatLike();
907 if (candidate->opcode == aco_opcode::p_logical_end)
910 /* check if candidate depends on current */
913 HazardResult haz = perform_hazard_query(&indep_hq, candidate.get(), true);
931 for (const Definition& def : candidate->definitions) {
939 add_to_hazard_query(&indep_hq, candidate.get());
948 add_to_hazard_query(&indep_hq, candidate.get());
976 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
978 if (candidate->opcode == aco_opcode::p_logical_start)
980 if (candidate->isVMEM() || candidate->isSMEM() || candidate->isFlatLike())
983 HazardResult haz = perform_hazard_query(&hq, candidate.get(), false);
988 add_to_hazard_query(&hq, candidate.get());
995 add_to_hazard_query(&hq, candidate.get());