Lines Matching defs: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 */
665 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
674 if (candidate->opcode == aco_opcode::p_logical_start)
678 if (candidate->isVMEM() && (cursor.insert_idx - cursor.source_idx > (ctx.num_waves * 4) ||
682 if (candidate->format == Format::SMEM && current->operands[0].size() == 4 &&
683 candidate->operands[0].size() == 2)
688 HazardResult haz = perform_hazard_query(&hq, candidate.get(), false);
698 if (candidate->isDS() || !can_move_down) {
699 add_to_hazard_query(&hq, candidate.get());
706 add_to_hazard_query(&hq, candidate.get());
727 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
729 if (candidate->opcode == aco_opcode::p_logical_end)
732 /* check if candidate depends on current */
735 if (is_dependency && candidate->isVMEM())
739 HazardResult haz = perform_hazard_query(&hq, candidate.get(), true);
758 add_to_hazard_query(&hq, candidate.get());
768 if (res == move_fail_ssa && candidate->isVMEM())
770 add_to_hazard_query(&hq, candidate.get());
807 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
808 bool is_vmem = candidate->isVMEM() || candidate->isFlatLike();
811 if (candidate->opcode == aco_opcode::p_logical_start)
821 if (current->isVMEM() == candidate->isVMEM()) {
826 grab_dist < clause_max_grab_dist + k && should_form_clause(current, candidate.get());
829 /* if current depends on candidate, add additional dependencies and continue */
830 bool can_move_down = !is_vmem || part_of_clause || candidate->definitions.empty();
849 perform_hazard_query(part_of_clause ? &clause_hq : &indep_hq, candidate.get(), false);
860 add_to_hazard_query(&indep_hq, candidate.get());
861 add_to_hazard_query(&clause_hq, candidate.get());
866 Instruction* candidate_ptr = candidate.get();
871 add_to_hazard_query(&indep_hq, candidate.get());
872 add_to_hazard_query(&clause_hq, candidate.get());
879 add_to_hazard_query(&indep_hq, candidate.get());
880 add_to_hazard_query(&clause_hq, candidate.get());
901 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
902 bool is_vmem = candidate->isVMEM() || candidate->isFlatLike();
904 if (candidate->opcode == aco_opcode::p_logical_end)
907 /* check if candidate depends on current */
910 HazardResult haz = perform_hazard_query(&indep_hq, candidate.get(), true);
928 for (const Definition& def : candidate->definitions) {
936 add_to_hazard_query(&indep_hq, candidate.get());
945 add_to_hazard_query(&indep_hq, candidate.get());
973 aco_ptr<Instruction>& candidate = block->instructions[candidate_idx];
975 if (candidate->opcode == aco_opcode::p_logical_start)
977 if (candidate->isVMEM() || candidate->isSMEM() || candidate->isFlatLike())
980 HazardResult haz = perform_hazard_query(&hq, candidate.get(), false);
985 add_to_hazard_query(&hq, candidate.get());
992 add_to_hazard_query(&hq, candidate.get());