Home | History | Annotate | Download | only in gcc

Lines Matching refs:cand

526 remat_candidate_hasher::hash (const remat_candidate *cand)
528 return cand->hash;
632 remat_candidate *cand;
633 FOR_EACH_VEC_ELT (m_candidates, cand_index, cand)
635 fprintf (dump_file, ";; %5d %5d %8s ", cand_index, cand->regno,
636 GET_MODE_NAME (GET_MODE (regno_reg_rtx[cand->regno])));
637 dump_insn_id (cand->insn);
638 if (!cand->can_copy_p)
795 remat_candidate cand;
796 memset (&cand, 0, sizeof (cand));
797 cand.regno = regno;
798 cand.insn = insn;
799 cand.remat_rtx = PATTERN (insn);
800 cand.can_copy_p = can_copy_p;
801 m_candidates.safe_push (cand);
838 remat_candidate *cand = add_candidate (insn, regno, true);
839 cand->constant_p = true;
840 cand->remat_rtx = val;
1043 remat_candidate *cand;
1044 FOR_EACH_VEC_ELT (m_candidates, cand_index, cand)
1046 basic_block bb = BLOCK_FOR_INSN (cand->insn);
1079 remat_candidate *cand;
1080 FOR_EACH_VEC_ELT (m_candidates, cand_index, cand)
1082 basic_block bb = BLOCK_FOR_INSN (cand->insn);
1086 bitmap_set_bit (m_regno_to_candidates[cand->regno], cand_index);
1179 remat_candidate *cand;
1180 FOR_EACH_VEC_ELT_REVERSE (m_candidates, cand_index, cand)
1182 rtx_insn *insn = cand->insn;
1185 bitmap kill = m_regno_to_candidates[cand->regno];
1187 if (bitmap_bit_p (DF_LR_OUT (bb), cand->regno))
1237 FOR_EACH_VEC_ELT_REVERSE (m_candidates, cand_index, cand)
1239 bb = BLOCK_FOR_INSN (cand->insn);
1253 bitmap kill = m_regno_to_candidates[cand[1].regno];
1258 if (cand->can_copy_p && !cand->constant_p)
1261 FOR_EACH_INSN_USE (ref, cand->insn)
1268 bitmap_ior_into (get_bitmap (&cand->uses), &m_tmp_bitmap);
1347 remat_candidate *cand = &m_candidates[cand_index];
1352 bitmap_copy (&uses, cand->uses);
1371 cand->can_copy_p = false;
1377 BITMAP_FREE (cand->uses);
1378 cand->uses = uses_ec;
1379 return cand->can_copy_p;
1389 remat_candidate *cand = &m_candidates[cand_index];
1390 if (cand->uses)
1394 EXECUTE_IF_SET_IN_BITMAP (cand->uses, 0, use_index, bi)
1396 bitmap_ior_into (get_bitmap (&cand->clobbers), clobbers);
1400 FOR_EACH_INSN_DEF (ref, cand->insn)
1403 if (def_regno != cand->regno)
1404 bitmap_set_bit (get_bitmap (&cand->clobbers), def_regno);
1413 remat_candidate *cand = &m_candidates[cand_index];
1414 gcc_checking_assert (cand->can_copy_p && !cand->validated_p);
1417 cand->validated_p = true;
1420 h.add_int (cand->regno);
1421 inchash::add_rtx (cand->remat_rtx, h);
1422 cand->hash = h.end ();
1425 = m_value_table.find_slot_with_hash (cand, cand->hash, INSERT);
1428 *slot = cand;
1537 remat_candidate *cand = &m_candidates[cand_index];
1538 if (cand->clobbers
1539 && bitmap_intersect_p (cand->clobbers, unavail_regs))
1585 remat_candidate *cand = &m_candidates[cand_index];
1589 dump_insn_id (cand->insn);
1593 cand->insn);
1603 remat_candidate *cand = &m_candidates[cand_index];
1604 if (cand->stabilized_p)
1607 remat_equiv_class *ec = cand->equiv_class;
1616 rtx_insn *insn = cand->insn;
1699 cand->stabilized_p = true;
1702 /* Change CAND's instruction so that it sets CAND->copy_regno instead
1703 of CAND->regno. */
1708 remat_candidate *cand = &m_candidates[cand_index];
1710 FOR_EACH_INSN_DEF (def, cand->insn)
1711 if (DF_REF_REGNO (def) == cand->regno)
1712 validate_change (cand->insn, DF_REF_REAL_LOC (def),
1713 regno_reg_rtx[cand->copy_regno], 1);
1737 remat_candidate *cand = &m_candidates[cand_index];
1739 FOR_EACH_INSN_USE (use, cand->insn)
1747 bitmap_and (&m_tmp_bitmap, cand->uses, defs);
1784 validate_change (cand->insn, loc, new_reg, 1);
1818 remat_candidate *cand = &m_candidates[cand_index];
1827 m_regno_to_candidates[cand->regno]);
1838 cand->regno);
1846 if (!cand->can_copy_p)
1855 gcc_assert (cand->can_copy_p);
1858 if (cand->constant_p)
1861 unsigned int regno = via_copy_p ? cand->copy_regno : cand->regno;
1862 new_pattern = gen_move_insn (regno_reg_rtx[regno], cand->remat_rtx);
1874 if (cand->uses)
1879 new_pattern = copy_insn (cand->remat_rtx);
1895 cand->copy_regno);
2308 remat_candidate *cand = &m_candidates[cand_index];
2313 bitmap_and (&m_tmp_bitmap, info->rd_in, m_regno_to_candidates[cand->regno]);
2320 bb_index, cand->regno);
2324 /* Likewise if rematerializing CAND here would clobber a live register. */
2325 if (cand->clobbers
2326 && bitmap_intersect_p (cand->clobbers, DF_LR_IN (bb)))
2354 remat_candidate *cand = &m_candidates[cand_index];
2358 if (!cand->can_copy_p)
2371 if (cand->uses)
2373 bitmap_ior_and_into (required, cand->uses, info->required_in);
2374 bitmap_ior_and_into (&remaining, cand->uses, info->required_in);