/* Declarations for rtx-reader support for gen* routines.
- Copyright (C) 2000, 2002, 2003, 2004, 2007, 2008
+ Copyright (C) 2000, 2002, 2003, 2004, 2007, 2008, 2010
Free Software Foundation, Inc.
This file is part of GCC.
struct obstack;
extern struct obstack *rtl_obstack;
-extern const char *in_fname;
-extern int init_md_reader_args_cb (int, char **, bool (*)(const char *));
-extern int init_md_reader_args (int, char **);
+extern bool init_rtx_reader_args_cb (int, char **, bool (*)(const char *));
+extern bool init_rtx_reader_args (int, char **);
extern rtx read_md_rtx (int *, int *);
/* Set this to 0 to disable automatic elision of insn patterns which
#define FOR_ALL_PREDICATES(p) for (p = first_predicate; p; p = p->next)
-/* This callback will be invoked whenever an rtl include directive is
- processed. To be used for creation of the dependency file. */
-extern void (*include_callback) (const char *);
+struct pattern_stats
+{
+ /* The largest match_operand, match_operator or match_parallel
+ number found. */
+ int max_opno;
+
+ /* The largest match_dup, match_op_dup or match_par_dup number found. */
+ int max_dup_opno;
+
+ /* The largest match_scratch number found. */
+ int max_scratch_opno;
+
+ /* The number of times match_dup, match_op_dup or match_par_dup appears
+ in the pattern. */
+ int num_dups;
+
+ /* The number of rtx arguments to the generator function. */
+ int num_generator_args;
+
+ /* The number of rtx operands in an insn. */
+ int num_insn_operands;
+
+ /* The number of operand variables that are needed. */
+ int num_operand_vars;
+};
+
+extern void get_pattern_stats (struct pattern_stats *ranges, rtvec vec);
#endif /* GCC_GENSUPPORT_H */