struct ref *ref;
};
+enum df_ref_flags
+ {
+ DF_REF_READ_WRITE = 1
+ };
/* Define a register reference structure. */
struct ref
{
rtx reg; /* The register referenced. */
- basic_block bb; /* BB containing ref. */
rtx insn; /* Insn containing ref. */
rtx *loc; /* Loc is the location of the reg. */
struct df_link *chain; /* Head of def-use or use-def chain. */
enum df_ref_type type; /* Type of ref. */
int id; /* Ref index. */
+ enum df_ref_flags flags; /* Various flags. */
};
#define DF_REF_REG(REF) ((REF)->reg)
#define DF_REF_LOC(REF) ((REF)->loc)
#endif
-#define DF_REF_BB(REF) ((REF)->bb)
-#define DF_REF_BBNO(REF) ((REF)->bb->index)
+#define DF_REF_BB(REF) (BLOCK_FOR_INSN ((REF)->insn))
+#define DF_REF_BBNO(REF) (BLOCK_FOR_INSN ((REF)->insn)->index)
#define DF_REF_INSN(REF) ((REF)->insn)
#define DF_REF_INSN_UID(REF) (INSN_UID ((REF)->insn))
#define DF_REF_TYPE(REF) ((REF)->type)
#define DF_REF_CHAIN(REF) ((REF)->chain)
#define DF_REF_ID(REF) ((REF)->id)
+#define DF_REF_FLAGS(REF) ((REF)->flags)
/* Macros to determine the reference type. */
BACKWARD
};
-typedef void (*transfer_function_sbitmap) (int, int *, sbitmap, sbitmap,
- sbitmap, sbitmap, void *);
-typedef void (*transfer_function_bitmap) (int, int *, bitmap, bitmap,
- bitmap, bitmap, void *);
+typedef void (*transfer_function_sbitmap) PARAMS ((int, int *, sbitmap, sbitmap,
+ sbitmap, sbitmap, void *));
+typedef void (*transfer_function_bitmap) PARAMS ((int, int *, bitmap, bitmap,
+ bitmap, bitmap, void *));
extern void iterative_dataflow_sbitmap PARAMS ((sbitmap *, sbitmap *,
sbitmap *, sbitmap *,