-extern void init_recog PROTO((void));
-extern void init_recog_no_volatile PROTO((void));
-extern int recog_memoized PROTO((rtx));
-extern int check_asm_operands PROTO((rtx));
-extern int asm_operand_ok PROTO((rtx, const char *));
-extern int validate_change PROTO((rtx, rtx *, rtx, int));
-extern int apply_change_group PROTO((void));
-extern int num_validated_changes PROTO((void));
-extern void cancel_changes PROTO((int));
-extern int constrain_operands PROTO((int));
-extern int memory_address_p PROTO((enum machine_mode, rtx));
-extern int strict_memory_address_p PROTO((enum machine_mode, rtx));
-extern int validate_replace_rtx PROTO((rtx, rtx, rtx));
-extern void validate_replace_rtx_group PROTO((rtx, rtx, rtx));
-extern int validate_replace_src PROTO((rtx, rtx, rtx));
+extern void init_recog (void);
+extern void init_recog_no_volatile (void);
+extern int check_asm_operands (rtx);
+extern int asm_operand_ok (rtx, const char *, const char **);
+extern bool validate_change (rtx, rtx *, rtx, bool);
+extern bool validate_unshare_change (rtx, rtx *, rtx, bool);
+extern bool canonicalize_change_group (rtx insn, rtx x);
+extern int insn_invalid_p (rtx);
+extern int verify_changes (int);
+extern void confirm_change_group (void);
+extern int apply_change_group (void);
+extern int num_validated_changes (void);
+extern void cancel_changes (int);
+extern int constrain_operands (int);
+extern int constrain_operands_cached (int);
+extern int memory_address_addr_space_p (enum machine_mode, rtx, addr_space_t);
+#define memory_address_p(mode,addr) \
+ memory_address_addr_space_p ((mode), (addr), ADDR_SPACE_GENERIC)
+extern int strict_memory_address_addr_space_p (enum machine_mode, rtx,
+ addr_space_t);
+#define strict_memory_address_p(mode,addr) \
+ strict_memory_address_addr_space_p ((mode), (addr), ADDR_SPACE_GENERIC)
+extern int validate_replace_rtx_subexp (rtx, rtx, rtx, rtx *);
+extern int validate_replace_rtx (rtx, rtx, rtx);
+extern int validate_replace_rtx_part (rtx, rtx, rtx *, rtx);
+extern int validate_replace_rtx_part_nosimplify (rtx, rtx, rtx *, rtx);
+extern void validate_replace_rtx_group (rtx, rtx, rtx);
+extern void validate_replace_src_group (rtx, rtx, rtx);
+extern bool validate_simplify_insn (rtx insn);
+extern int num_changes_pending (void);