Lines Matching refs:insn

37 #include "insn-config.h"
544 df_ref_create (struct df *df, rtx reg, rtx *loc, rtx insn,
571 return df_ref_create_structure (dflow, reg, loc, bb, insn, ref_type, ref_flags);
757 /* Create the insn record for INSN. If there was one there, zero it out. */
760 df_insn_create_insn_record (struct dataflow *dflow, rtx insn)
766 struct df_insn_info *insn_rec = DF_INSN_GET (df, insn);
770 DF_INSN_SET (df, insn, insn_rec);
781 df_insn_refs_delete (struct dataflow *dflow, rtx insn)
784 unsigned int uid = INSN_UID (insn);
821 DF_INSN_SET (df, insn, NULL);
836 rtx insn;
838 FOR_BB_INSNS (bb, insn)
840 if (INSN_P (insn))
843 df_insn_refs_delete (dflow, insn);
936 basic_block bb, rtx insn,
950 DF_REF_INSN (this_ref) = insn;
993 this_ref->next_ref = DF_INSN_GET (df, insn)->defs;
994 DF_INSN_GET (df, insn)->defs = this_ref;
1032 this_ref->next_ref = DF_INSN_GET (df, insn)->uses;
1033 DF_INSN_GET (df, insn)->uses = this_ref;
1051 basic_block bb, rtx insn,
1103 if ((endregno != regno + 1) && insn)
1105 struct df_insn_info *insn_info = DF_INSN_GET (df, insn);
1143 bb, insn, ref_type, ref_flags);
1157 bb, insn, ref_type, ref_flags);
1185 basic_block bb, rtx insn,
1210 df_def_record_1 (dflow, temp, bb, insn,
1250 df_ref_record (dflow, dst, loc, bb, insn,
1258 df_defs_record (struct dataflow *dflow, rtx x, basic_block bb, rtx insn)
1265 df_def_record_1 (dflow, x, bb, insn,
1270 df_defs_record (dflow, COND_EXEC_CODE (x), bb, insn);
1278 df_defs_record (dflow, XVECEXP (x, 0, i), bb, insn);
1287 basic_block bb, rtx insn, enum df_ref_flags flags)
1315 DF_REF_REG_MEM_STORE, bb, insn, flags);
1321 df_uses_record (dflow, &XEXP (x, 0), DF_REF_REG_MEM_LOAD, bb, insn,
1332 df_uses_record (dflow, loc, ref_type, bb, insn, flags);
1338 df_ref_record (dflow, x, loc, bb, insn, ref_type, flags, true);
1345 df_uses_record (dflow, &SET_SRC (x), DF_REF_REG_USE, bb, insn, flags);
1354 insn, flags | DF_REF_READ_WRITE);
1367 bb, insn, flags);
1379 insn, DF_REF_READ_WRITE);
1385 DF_REF_REG_USE, bb, insn,
1388 DF_REF_REG_USE, bb, insn, flags);
1390 DF_REF_REG_USE, bb, insn, flags);
1413 rounding mode. An insn should not be moved across this
1440 DF_REF_REG_USE, bb, insn, flags);
1454 df_ref_record (dflow, XEXP (x, 0), &XEXP (x, 0), bb, insn,
1478 df_uses_record (dflow, &XEXP (x, i), ref_type, bb, insn, flags);
1485 bb, insn, flags);
1507 df_insn_contains_asm (rtx insn)
1509 return for_each_rtx (&insn, df_insn_contains_asm_1, NULL);
1517 df_insn_refs_record (struct dataflow *dflow, basic_block bb, rtx insn)
1522 if (INSN_P (insn))
1526 if (df_insn_contains_asm (insn))
1527 DF_INSN_CONTAINS_ASM (df, insn) = true;
1530 df_defs_record (dflow, PATTERN (insn), bb, insn);
1533 for (note = REG_NOTES (insn); note;
1541 bb, insn, DF_REF_IN_NOTE);
1547 if (CALL_P (insn))
1553 for (note = CALL_INSN_FUNCTION_USAGE (insn); note;
1559 bb, insn, 0);
1562 df_defs_record (dflow, XEXP (note, 0), bb, insn);
1580 /* The stack ptr is used (honorarily) by a CALL insn. */
1582 DF_REF_REG_USE, bb, insn,
1594 DF_REF_REG_USE, bb, insn,
1598 insn, DF_REF_REG_DEF, DF_REF_MAY_CLOBBER, false);
1603 df_uses_record (dflow, &PATTERN (insn),
1604 DF_REF_REG_USE, bb, insn, 0);
1629 rtx insn;
1646 /* Scan the block an insn at a time from beginning to end. */
1647 FOR_BB_INSNS (bb, insn)
1649 df_insn_create_insn_record (dflow, insn);
1650 if (INSN_P (insn))
1653 DF_INSN_LUID (df, insn) = luid++;
1654 df_insn_refs_record (dflow, bb, insn);
1656 DF_INSN_LUID (df, insn) = luid;