summaryrefslogtreecommitdiff
path: root/gcc/gensupport.h
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2006-01-23 15:15:05 +0000
committerZack Weinberg <zack@gcc.gnu.org>2006-01-23 15:15:05 +0000
commit1c7352cde8a759e414b61d3aeaf40eda67f8dd75 (patch)
tree4239faf09e39683b3cf8286950be3b1832fd451b /gcc/gensupport.h
parent245fc6392879dd2493d4be97cbd01c64d0a61adf (diff)
r110123@banpei: zack | 2006-01-22 14:44:34 -0800
r110123@banpei: zack | 2006-01-22 14:44:34 -0800 * genconditions.c (condition_table, add_condition): Delete. (write_conditions): Don't emit n_insn_conditions nor insn_elision_unavailable. Issue the gcc version #ifdef here, inside the table, with no #else clause ... (write_header): ...not here. (write_writer): New function. (main): Don't initialize condition_table. Use add_c_test. Call write_writer. * gensupport.c (init_md_reader_args_cb): Handle multiple input files on the command line. (maybe_eval_c_test): Don't check insn_elision_unavailable. Return -1 if there is no entry in the table, don't abort. (add_c_test, traverse_c_tests): New functions. * gensupport.h (insn_elision_unavailable, insn_conditions) (n_insn_conditions): Delete declarations. (add_c_test, traverse_c_tests): Declare. * read-rtl.c: Include gensupport.h. (read_conditions): New function. (read_rtx): If read_rtx_1 returns 0, treat as EOF. (read_rtx_1): If we get EOF when we were looking for an initial open paren, return 0. Call read_conditions when appropriate. * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to dummy-conditions.o. Eliminate references to insn-conditions.o, or change them to build/gencondmd.o, as appropriate. Remove insn-constants.h from $(simple_generated_h) and insn-conditions.c from $(simple_generated_c). For all files remaining in those two lists, add insn-conditions.md to the generator command line. Give insn-constants.h/s-constants their own rules. Add rules for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd. (build/read-rtl.o): Depend on gensupport.h. (genprognormal): Include preds. (genprogearly): Rename genprognoprint; only difference is now that they don't link with $(BUILD_PRINT). * dummy-conditions.c: Delete. From-SVN: r110119
Diffstat (limited to 'gcc/gensupport.h')
-rw-r--r--gcc/gensupport.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/gensupport.h b/gcc/gensupport.h
index 51f37b7bc7c..53cbdc23b6e 100644
--- a/gcc/gensupport.h
+++ b/gcc/gensupport.h
@@ -37,31 +37,27 @@ extern void message_with_line (int, const char *, ...)
Must be set before calling init_md_reader. */
extern int insn_elision;
-/* If this is 1, the insn elision table doesn't even exist yet;
- maybe_eval_c_test will always return -1. This is distinct from
- insn_elision because genflags and gencodes need to see all the
- patterns, but treat elided patterns differently. */
-extern const int insn_elision_unavailable;
-
/* If the C test passed as the argument can be evaluated at compile
time, return its truth value; else return -1. The test must have
appeared somewhere in the machine description when genconditions
was run. */
extern int maybe_eval_c_test (const char *);
-/* This table should not be accessed directly; use maybe_eval_c_test. */
+/* Add an entry to the table of conditions. Used by genconditions and
+ by read-rtl.c. */
+extern void add_c_test (const char *, int);
+
+/* This structure is used internally by gensupport.c and genconditions.c. */
struct c_test
{
const char *expr;
int value;
};
-extern const struct c_test insn_conditions[];
-extern const size_t n_insn_conditions;
-
#ifdef __HASHTAB_H__
extern hashval_t hash_c_test (const void *);
extern int cmp_c_test (const void *, const void *);
+extern void traverse_c_tests (htab_trav, void *);
#endif
extern int n_comma_elts (const char *);