Lines Matching refs:dflow

130 df_scan_free_internal (struct dataflow *dflow)
132 struct df *df = dflow->df;
134 = (struct df_scan_problem_data *) dflow->problem_data;
148 free (dflow->block_info);
149 dflow->block_info = NULL;
150 dflow->block_info_size = 0;
156 free_alloc_pool (dflow->block_pool);
168 df_scan_get_bb_info (struct dataflow *dflow, unsigned int index)
170 gcc_assert (index < dflow->block_info_size);
171 return (struct df_scan_bb_info *) dflow->block_info[index];
178 df_scan_set_bb_info (struct dataflow *dflow, unsigned int index,
181 gcc_assert (index < dflow->block_info_size);
182 dflow->block_info[index] = (void *) bb_info;
189 df_scan_free_bb_info (struct dataflow *dflow, basic_block bb, void *vbb_info)
194 df_bb_refs_delete (dflow, bb->index);
195 pool_free (dflow->block_pool, bb_info);
205 df_scan_alloc (struct dataflow *dflow, bitmap blocks_to_rescan,
208 struct df *df = dflow->df;
217 if (dflow->problem_data)
218 df_scan_free_internal (dflow);
220 dflow->block_pool
226 dflow->problem_data = problem_data;
245 df_grow_reg_info (dflow, &df->def_info);
248 df_grow_reg_info (dflow, &df->use_info);
252 df_grow_bb_info (dflow);
256 struct df_scan_bb_info *bb_info = df_scan_get_bb_info (dflow, bb_index);
259 bb_info = (struct df_scan_bb_info *) pool_alloc (dflow->block_pool);
260 df_scan_set_bb_info (dflow, bb_index, bb_info);
275 df_scan_free (struct dataflow *dflow)
277 struct df *df = dflow->df;
279 if (dflow->problem_data)
281 df_scan_free_internal (dflow);
282 free (dflow->problem_data);
291 free (dflow);
295 df_scan_dump (struct dataflow *dflow ATTRIBUTE_UNUSED, FILE *file ATTRIBUTE_UNUSED)
297 struct df *df = dflow->df;
359 df_grow_reg_info (struct dataflow *dflow, struct df_ref_info *ref_info)
364 = (struct df_scan_problem_data *) dflow->problem_data;
437 struct dataflow *dflow = df->problems_by_index[DF_SCAN];
454 df_grow_reg_info (dflow, &df->def_info);
457 df_grow_reg_info (dflow, &df->use_info);
461 df_grow_bb_info (dflow);
484 if (dflow->problem->reset_fun)
493 dflow->problem->reset_fun (dflow, blocks_to_reset);
499 df_refs_delete (dflow, local_blocks_to_scan);
521 df_scan_alloc (dflow, local_blocks_to_scan, NULL);
527 df_refs_record (dflow, local_blocks_to_scan);
549 struct dataflow *dflow = df->problems_by_index[DF_SCAN];
552 df_grow_reg_info (dflow, &df->use_info);
553 df_grow_reg_info (dflow, &df->def_info);
554 df_grow_bb_info (dflow);
557 bb_info = df_scan_get_bb_info (dflow, bb->index);
560 bb_info = (struct df_scan_bb_info *) pool_alloc (dflow->block_pool);
561 df_scan_set_bb_info (dflow, bb->index, bb_info);
571 return df_ref_create_structure (dflow, reg, loc, bb, insn, ref_type, ref_flags);
587 struct dataflow *dflow = df->problems_by_index[DF_SCAN];
588 return df_scan_get_bb_info (dflow, bb_index)->artificial_defs;
597 struct dataflow *dflow = df->problems_by_index[DF_SCAN];
598 return df_scan_get_bb_info (dflow, bb_index)->artificial_uses;
662 df_reg_chain_unlink (struct dataflow *dflow, struct df_ref *ref)
664 struct df *df = dflow->df;
668 = (struct df_scan_problem_data *) dflow->problem_data;
719 struct dataflow *dflow = df->problems_by_index[DF_SCAN];
725 = df_scan_get_bb_info (dflow, DF_REF_BB (ref)->index);
741 = df_scan_get_bb_info (dflow, DF_REF_BB (ref)->index);
753 df_reg_chain_unlink (dflow, ref);
760 df_insn_create_insn_record (struct dataflow *dflow, rtx insn)
762 struct df *df = dflow->df;
764 = (struct df_scan_problem_data *) dflow->problem_data;
781 df_insn_refs_delete (struct dataflow *dflow, rtx insn)
783 struct df *df = dflow->df;
788 = (struct df_scan_problem_data *) dflow->problem_data;
814 ref = df_reg_chain_unlink (dflow, ref);
818 ref = df_reg_chain_unlink (dflow, ref);
829 df_bb_refs_delete (struct dataflow *dflow, int bb_index)
835 = df_scan_get_bb_info (dflow, bb_index);
843 df_insn_refs_delete (dflow, insn);
852 def = df_reg_chain_unlink (dflow, def);
856 use = df_reg_chain_unlink (dflow, use);
865 df_refs_delete (struct dataflow *dflow, bitmap blocks)
872 df_bb_refs_delete (dflow, bb_index);
935 df_ref_create_structure (struct dataflow *dflow, rtx reg, rtx *loc,
941 struct df *df = dflow->df;
944 = (struct df_scan_problem_data *) dflow->problem_data;
987 = df_scan_get_bb_info (dflow, bb->index);
1026 = df_scan_get_bb_info (dflow, bb->index);
1050 df_ref_record (struct dataflow *dflow, rtx reg, rtx *loc,
1056 struct df *df = dflow->df;
1067 if ((dflow->flags & DF_SUBREGS) == 0
1085 = (struct df_scan_problem_data *) dflow->problem_data;
1087 if (!(dflow->flags & DF_HARD_REGS))
1142 ref = df_ref_create_structure (dflow, regno_reg_rtx[i], loc,
1156 df_ref_create_structure (dflow, reg, loc,
1184 df_def_record_1 (struct dataflow *dflow, rtx x,
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);
1286 df_uses_record (struct dataflow *dflow, rtx *loc, enum df_ref_type ref_type,
1314 df_uses_record (dflow, &XEXP (XEXP (x, 0), 0),
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);
1352 df_uses_record (dflow, &SUBREG_REG (dst),
1365 df_uses_record (dflow, &XEXP (dst, 0),
1375 df_uses_record (dflow,
1384 df_uses_record (dflow, &XEXP (dst, 0),
1387 df_uses_record (dflow, &XEXP (dst, 1),
1389 df_uses_record (dflow, &XEXP (dst, 2),
1439 df_uses_record (dflow, &ASM_OPERANDS_INPUT (x, j),
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);
1484 df_uses_record (dflow, &XVECEXP (x, i, j), ref_type,
1517 df_insn_refs_record (struct dataflow *dflow, basic_block bb, rtx insn)
1519 struct df *df = dflow->df;
1530 df_defs_record (dflow, PATTERN (insn), bb, insn);
1532 if (dflow->flags & DF_EQUIV_NOTES)
1540 df_uses_record (dflow, &XEXP (note, 0), DF_REF_REG_USE,
1557 df_uses_record (dflow, &XEXP (XEXP (note, 0), 0),
1562 df_defs_record (dflow, XEXP (note, 0), bb, insn);
1581 df_uses_record (dflow, &regno_reg_rtx[STACK_POINTER_REGNUM],
1585 if (dflow->flags & DF_HARD_REGS)
1593 df_uses_record (dflow, &regno_reg_rtx[i],
1597 df_ref_record (dflow, regno_reg_rtx[ui], &regno_reg_rtx[ui], bb,
1603 df_uses_record (dflow, &PATTERN (insn),
1626 df_bb_refs_record (struct dataflow *dflow, basic_block bb)
1628 struct df *df = dflow->df;
1631 struct df_scan_bb_info *bb_info = df_scan_get_bb_info (dflow, bb->index);
1634 if (dflow->flags & DF_HARD_REGS)
1640 bb_info = (struct df_scan_bb_info *) pool_alloc (dflow->block_pool);
1641 df_scan_set_bb_info (dflow, bb->index, bb_info);
1649 df_insn_create_insn_record (dflow, insn);
1654 df_insn_refs_record (dflow, bb, insn);
1660 if ((dflow->flags & DF_HARD_REGS)
1670 df_ref_record (dflow, regno_reg_rtx[regno], &regno_reg_rtx[regno],
1679 if ((dflow->flags & DF_HARD_REGS)
1697 df_uses_record (dflow, &regno_reg_rtx[i],
1722 if ((dflow->flags & DF_HARD_REGS)
1752 if (dflow->flags & DF_HARD_REGS)
1759 df_uses_record (dflow, &regno_reg_rtx[regno],
1771 df_refs_record (struct dataflow *dflow, bitmap blocks)
1779 df_bb_refs_record (dflow, bb);
1783 df_record_exit_block_uses (dflow);
1786 df_record_entry_block_defs (dflow);
1819 df_record_entry_block_defs (struct dataflow *dflow)
1824 struct df *df = dflow->df;
1828 if (!(dflow->flags & DF_HARD_REGS))
1922 df_ref_record (dflow, regno_reg_rtx[i], &regno_reg_rtx[i],
1932 df_record_exit_block_uses (struct dataflow *dflow)
1936 struct df *df = dflow->df;
1940 if (!(dflow->flags & DF_HARD_REGS))
2029 if (dflow->flags & DF_HARD_REGS)
2031 df_uses_record (dflow, &regno_reg_rtx[i],