summaryrefslogtreecommitdiff
path: root/gcc/gensupport.h
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-01 08:15:08 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-01 08:15:08 +0000
commit22add764ced7691b99368a28c7b194cd0b2e13e2 (patch)
treeb2cbc294126307fb76a53c640bd8728491e2e875 /gcc/gensupport.h
parent69db433d2a44ce6d8898ea8396b5a2cb667fe9bb (diff)
downloadgcc-22add764ced7691b99368a28c7b194cd0b2e13e2.tar.gz
gcc/
* gensupport.h (pattern_stats): New structure. * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions. * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete. (max_operand_1, max_operand_vec): Delete. (gen_insn, gen_expand, gen_split): Use get_pattern_stats. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171821 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gensupport.h')
-rw-r--r--gcc/gensupport.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/gensupport.h b/gcc/gensupport.h
index 999c2222ecb..5ae32d5f40d 100644
--- a/gcc/gensupport.h
+++ b/gcc/gensupport.h
@@ -83,4 +83,32 @@ extern void add_predicate (struct pred_data *);
#define FOR_ALL_PREDICATES(p) for (p = first_predicate; p; p = p->next)
+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 */