\f
/* ACCESS MACROS for particular fields of insns. */
+/* Determines whether X is an insn. */
+#define INSN_P(X) (GET_RTX_CLASS (GET_CODE(X)) == 'i')
+
/* Holds a unique number for each insn.
These are not necessarily sequentially increasing. */
#define INSN_UID(INSN) XINT(INSN, 0)
/* For a NOTE_INSN_LIVE note, the original basic block number. */
#define RANGE_LIVE_ORIG_BLOCK(INSN) (XINT (INSN, 1))
+
+/* Determine if the insn is a PHI node. */
+#define PHI_NODE_P(X) \
+ (X && GET_CODE (X) == INSN \
+ && GET_CODE (PATTERN (X)) == SET \
+ && GET_CODE (SET_SRC (PATTERN (X))) == PHI)
\f
/* Nonzero if we need to distinguish between the return value of this function
and the return value of a function called by this function. This helps
/* In ssa.c */
extern void convert_to_ssa PARAMS ((void));
extern void convert_from_ssa PARAMS ((void));
+typedef int (*successor_phi_fn) PARAMS ((rtx, int, int, void *));
+extern int for_each_successor_phi PARAMS ((int bb,
+ successor_phi_fn,
+ void *));
+extern int in_ssa_form;
/* In toplev.c */