Home | History | Annotate | Download | only in gcc

Lines Matching refs:cand

79 typedef struct cand *cand_t;
80 typedef const struct cand *const_cand_t;
88 struct cand
173 /* Hash function for candidate CAND. */
175 cand_hash (const void *cand)
177 const_cand_t c = (const_cand_t) cand;
216 /* Insert candidate CAND into the table if it is not there yet.
219 insert_cand (cand_t cand)
223 entry_ptr = htab_find_slot (cand_table, cand, INSERT);
225 *entry_ptr = (void *) cand;
229 /* Free candidate CAND memory. */
231 free_cand (void *cand)
233 free (cand);
407 cand_t cand = XNEW (struct cand);
408 cand->insn = insn;
409 cand->nop = nop;
410 cand->regno = regno;
411 cand->reload_regno = op_regno == regno ? -1 : op_regno;
412 gcc_assert (cand->regno >= 0);
413 cand_t cand_in_table = insert_cand (cand);
415 if (cand != cand_in_table)
416 free (cand);
419 /* A new cand. */
420 cand->index = all_cands.length ();
421 all_cands.safe_push (cand);
422 cand->next_regno_cand = regno_cands[cand->regno];
423 regno_cands[cand->regno] = cand;
537 cand_t cand;
542 cand = all_cands[i];
544 i, cand->nop, cand->regno, cand->reload_regno);
545 print_inline_rtx (dump_file, cand->insn, 6);
741 cand_t cand = all_cands[i];
742 lra_insn_recog_data_t id = lra_get_insn_recog_data (cand->insn);
774 cand_t cand;
798 cand = insn_to_cand[INSN_UID (insn2)];
799 gcc_assert (cand != NULL);
801 if (src_regno == cand->reload_regno
802 && dst_regno == cand->regno)
804 if (cand->regno == reg->regno
807 bitmap_clear_bit (gen_cands, cand->index);
819 cand = insn_to_cand[INSN_UID (insn2)];
820 gcc_assert (cand != NULL);
823 bitmap_clear_bit (gen_cands, cand->index);
830 cand = insn_to_cand[INSN_UID (insn)];
831 if (cand != NULL)
833 bitmap_set_bit (gen_cands, cand->index);
868 cand_t cand = all_cands[cid];
869 lra_insn_recog_data_t id = lra_get_insn_recog_data (cand->insn);
880 if (reg->type == OP_OUT && reg->regno != cand->regno)
889 if (bitmap_bit_p (bb_changed_regs, cand->regno)
890 || bitmap_bit_p (bb_dead_regs, cand->regno))
1099 cand_t cand;
1113 cand = NULL;
1121 for (cand = regno_cands[src_regno];
1122 cand != NULL;
1123 cand = cand->next_regno_cand)
1124 if (bitmap_bit_p (avail_cands, cand->index)
1125 && bitmap_bit_p (active_cands, cand->index))
1132 if (cand != NULL)
1135 = lra_get_insn_recog_data (cand->insn);
1138 rtx saved_op = *cand_id->operand_loc[cand->nop];
1183 *cand_id->operand_loc[cand->nop] = SET_DEST (set);
1184 lra_update_insn_regno_info (cand->insn);
1185 bool ok_p = lra_constrain_insn (cand->insn);
1188 rtx remat_pat = copy_insn (PATTERN (cand->insn));
1198 *cand_id->operand_loc[cand->nop] = saved_op;
1199 lra_update_insn_regno_info (cand->insn);
1214 cand = all_cands[cid];
1217 if (src_regno == cand->reload_regno
1218 && dst_regno == cand->regno)
1220 if (cand->regno == reg->regno
1221 || reg_overlap_for_remat_p (reg, cand->insn))
1222 bitmap_set_bit (&temp_bitmap, cand->index);
1230 cand = all_cands[cid];
1232 if (call_used_input_regno_present_p (callee_abi, cand->insn))
1233 bitmap_set_bit (&temp_bitmap, cand->index);
1241 cand = insn_to_cand_activation[INSN_UID (insn)];
1242 if (cand)
1243 bitmap_set_bit (active_cands, cand->index);
1245 cand = insn_to_cand[INSN_UID (insn)];
1246 if (cand != NULL)
1248 bitmap_set_bit (avail_cands, cand->index);
1249 if (cand->reload_regno == -1)
1250 bitmap_set_bit (active_cands, cand->index);
1252 bitmap_clear_bit (active_cands, cand->index);