Lines Matching refs:deps

98 static void flush_pending_lists (struct deps *, rtx, int, int);
99 static void sched_analyze_1 (struct deps *, rtx, rtx);
100 static void sched_analyze_2 (struct deps *, rtx, rtx);
101 static void sched_analyze_insn (struct deps *, rtx, rtx);
680 add_insn_mem_dependence (struct deps *deps, rtx *insn_list, rtx *mem_list,
696 deps->pending_lists_length++;
704 flush_pending_lists (struct deps *deps, rtx insn, int for_read,
709 add_dependence_list_and_free (insn, &deps->pending_read_insns, 1,
711 free_EXPR_LIST_list (&deps->pending_read_mems);
714 add_dependence_list_and_free (insn, &deps->pending_write_insns, 1,
716 free_EXPR_LIST_list (&deps->pending_write_mems);
717 deps->pending_lists_length = 0;
719 add_dependence_list_and_free (insn, &deps->last_pending_memory_flush, 1,
721 deps->last_pending_memory_flush = alloc_INSN_LIST (insn, NULL_RTX);
722 deps->pending_flush_length = 1;
731 sched_analyze_reg (struct deps *deps, int regno, enum machine_mode mode,
759 else if (regno >= deps->max_reg)
781 sched_analyze_2 (deps, XEXP (t, 0), insn);
789 deps->sched_before_next_call
790 = alloc_INSN_LIST (insn, deps->sched_before_next_call);
792 add_dependence_list (insn, deps->last_function_call, 1,
803 sched_analyze_1 (struct deps *deps, rtx x, rtx insn)
817 sched_analyze_1 (deps,
823 sched_analyze_2 (deps, SET_SRC (x), insn);
840 sched_analyze_2 (deps, XEXP (dest, 0), insn);
845 sched_analyze_2 (deps, XEXP (dest, 1), insn);
846 sched_analyze_2 (deps, XEXP (dest, 2), insn);
856 sched_analyze_reg (deps, regno, mode, code, insn);
864 sched_analyze_reg (deps, FIRST_STACK_REG, mode, code, insn);
865 sched_analyze_reg (deps, FIRST_STACK_REG, mode, USE, insn);
882 if (deps->pending_lists_length > MAX_PENDING_LIST_LENGTH)
889 flush_pending_lists (deps, insn, false, true);
895 pending = deps->pending_read_insns;
896 pending_mem = deps->pending_read_mems;
907 pending = deps->pending_write_insns;
908 pending_mem = deps->pending_write_mems;
919 add_dependence_list (insn, deps->last_pending_memory_flush, 1,
922 add_insn_mem_dependence (deps, &deps->pending_write_insns,
923 &deps->pending_write_mems, insn, dest);
925 sched_analyze_2 (deps, XEXP (dest, 0), insn);
930 sched_analyze_2 (deps, SET_SRC (x), insn);
936 sched_analyze_2 (struct deps *deps, rtx x, rtx insn)
976 sched_analyze_reg (deps, regno, mode, USE, insn);
984 sched_analyze_reg (deps, FIRST_STACK_REG, mode, USE, insn);
985 sched_analyze_reg (deps, FIRST_STACK_REG, mode, SET, insn);
1005 pending = deps->pending_read_insns;
1006 pending_mem = deps->pending_read_mems;
1017 pending = deps->pending_write_insns;
1018 pending_mem = deps->pending_write_mems;
1038 for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1))
1044 add_insn_mem_dependence (deps, &deps->pending_read_insns,
1045 &deps->pending_read_mems, insn, x);
1048 sched_analyze_2 (deps, XEXP (x, 0), insn);
1054 flush_pending_lists (deps, insn, true, false);
1079 sched_analyze_2 (deps, ASM_OPERANDS_INPUT (x, j), insn);
1095 sched_analyze_2 (deps, XEXP (x, 0), insn);
1096 sched_analyze_1 (deps, x, insn);
1102 sched_analyze_2 (deps, XEXP (x, 0), insn);
1103 sched_analyze_2 (deps, XEXP (x, 1), insn);
1104 sched_analyze_1 (deps, x, insn);
1116 sched_analyze_2 (deps, XEXP (x, i), insn);
1119 sched_analyze_2 (deps, XVECEXP (x, i, j), insn);
1126 sched_analyze_insn (struct deps *deps, rtx x, rtx insn)
1135 sched_analyze_2 (deps, COND_EXEC_TEST (x), insn);
1144 sched_analyze_1 (deps, x, insn);
1150 add_dependence_list (insn, deps->last_function_call, 1, REG_DEP_OUTPUT);
1161 sched_analyze_2 (deps, COND_EXEC_TEST (sub), insn);
1166 sched_analyze_1 (deps, sub, insn);
1168 sched_analyze_2 (deps, sub, insn);
1172 sched_analyze_2 (deps, x, insn);
1180 sched_analyze_1 (deps, XEXP (link, 0), insn);
1182 sched_analyze_2 (deps, XEXP (link, 0), insn);
1202 (insn, &deps->reg_conditional_sets, &tmp_uses, &tmp_sets);
1206 struct deps_reg *reg_last = &deps->reg_last[i];
1221 pending = deps->pending_write_insns;
1222 pending_mem = deps->pending_write_mems;
1231 pending = deps->pending_read_insns;
1232 pending_mem = deps->pending_read_mems;
1242 add_dependence_list (insn, deps->last_pending_memory_flush, 1,
1264 EXECUTE_IF_SET_IN_REG_SET (&deps->reg_last_in_use, 0, i, rsi)
1266 struct deps_reg *reg_last = &deps->reg_last[i];
1278 EXECUTE_IF_SET_IN_REG_SET (&deps->reg_last_in_use, 0, i, rsi)
1280 struct deps_reg *reg_last = &deps->reg_last[i];
1294 for (i = 0; i < (unsigned)deps->max_reg; i++)
1296 struct deps_reg *reg_last = &deps->reg_last[i];
1298 SET_REGNO_REG_SET (&deps->reg_last_in_use, i);
1301 flush_pending_lists (deps, insn, true, true);
1302 CLEAR_REG_SET (&deps->reg_conditional_sets);
1313 struct deps_reg *reg_last = &deps->reg_last[i];
1321 struct deps_reg *reg_last = &deps->reg_last[i];
1329 struct deps_reg *reg_last = &deps->reg_last[i];
1334 SET_REGNO_REG_SET (&deps->reg_conditional_sets, i);
1341 struct deps_reg *reg_last = &deps->reg_last[i];
1349 struct deps_reg *reg_last = &deps->reg_last[i];
1373 struct deps_reg *reg_last = &deps->reg_last[i];
1383 CLEAR_REGNO_REG_SET (&deps->reg_conditional_sets, i);
1387 IOR_REG_SET (&deps->reg_last_in_use, reg_pending_uses);
1388 IOR_REG_SET (&deps->reg_last_in_use, reg_pending_clobbers);
1389 IOR_REG_SET (&deps->reg_last_in_use, reg_pending_sets);
1399 if (deps->libcall_block_tail_insn)
1414 if (deps->in_post_call_group_p)
1447 if (deps->in_post_call_group_p == post_call_initial)
1448 deps->in_post_call_group_p = post_call;
1456 deps->in_post_call_group_p = not_post_call;
1469 sched_analyze (struct deps *deps, rtx head, rtx tail)
1483 deps->in_post_call_group_p = post_call_initial;
1499 if (deps->pending_flush_length++ > MAX_PENDING_LIST_LENGTH)
1500 flush_pending_lists (deps, insn, true, true);
1502 deps->last_pending_memory_flush
1503 = alloc_INSN_LIST (insn, deps->last_pending_memory_flush);
1505 sched_analyze_insn (deps, PATTERN (insn), insn);
1556 add_dependence_list_and_free (insn, &deps->sched_before_next_call, 1,
1559 sched_analyze_insn (deps, PATTERN (insn), insn);
1565 flush_pending_lists (deps, insn, true, !CONST_OR_PURE_CALL_P (insn));
1568 free_INSN_LIST_list (&deps->last_function_call);
1569 deps->last_function_call = alloc_INSN_LIST (insn, NULL_RTX);
1574 deps->in_post_call_group_p = post_call;
1600 && deps->libcall_block_tail_insn == 0
1618 deps->libcall_block_tail_insn = XEXP (link, 0);
1622 if (deps->libcall_block_tail_insn == insn)
1623 deps->libcall_block_tail_insn = 0;
1719 init_deps (struct deps *deps)
1723 deps->max_reg = max_reg;
1724 deps->reg_last = XCNEWVEC (struct deps_reg, max_reg);
1725 INIT_REG_SET (&deps->reg_last_in_use);
1726 INIT_REG_SET (&deps->reg_conditional_sets);
1728 deps->pending_read_insns = 0;
1729 deps->pending_read_mems = 0;
1730 deps->pending_write_insns = 0;
1731 deps->pending_write_mems = 0;
1732 deps->pending_lists_length = 0;
1733 deps->pending_flush_length = 0;
1734 deps->last_pending_memory_flush = 0;
1735 deps->last_function_call = 0;
1736 deps->sched_before_next_call = 0;
1737 deps->in_post_call_group_p = not_post_call;
1738 deps->libcall_block_tail_insn = 0;
1744 free_deps (struct deps *deps)
1749 free_INSN_LIST_list (&deps->pending_read_insns);
1750 free_EXPR_LIST_list (&deps->pending_read_mems);
1751 free_INSN_LIST_list (&deps->pending_write_insns);
1752 free_EXPR_LIST_list (&deps->pending_write_mems);
1753 free_INSN_LIST_list (&deps->last_pending_memory_flush);
1758 EXECUTE_IF_SET_IN_REG_SET (&deps->reg_last_in_use, 0, i, rsi)
1760 struct deps_reg *reg_last = &deps->reg_last[i];
1768 CLEAR_REG_SET (&deps->reg_last_in_use);
1769 CLEAR_REG_SET (&deps->reg_conditional_sets);
1771 free (deps->reg_last);