-/* These links are used for two purposes:
- 1) def-use or use-def chains.
- 2) Multiword hard registers that underly a single hardware register. */
+/* Union of the different kinds of defs/uses placeholders. */
+union df_ref_d
+{
+ struct df_base_ref base;
+ struct df_regular_ref regular_ref;
+ struct df_artificial_ref artificial_ref;
+ struct df_extract_ref extract_ref;
+};
+typedef union df_ref_d *df_ref;
+
+
+/* One of these structures is allocated for every insn. */
+struct df_insn_info
+{
+ rtx insn; /* The insn this info comes from. */
+ df_ref *defs; /* Head of insn-def chain. */
+ df_ref *uses; /* Head of insn-use chain. */
+ /* Head of insn-use chain for uses in REG_EQUAL/EQUIV notes. */
+ df_ref *eq_uses;
+ struct df_mw_hardreg **mw_hardregs;
+ /* The logical uid of the insn in the basic block. This is valid
+ after any call to df_analyze but may rot after insns are added,
+ deleted or moved. */
+ int luid;
+};
+
+/* These links are used for ref-ref chains. Currently only DEF-USE and
+ USE-DEF chains can be built by DF. */