diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2001-08-21 15:51:22 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2001-08-21 15:51:22 +0000 |
commit | ad82abb8e647ebdfa459383c25130a97a8a9b849 (patch) | |
tree | 575699b686457410b32fd7f6c60e918c730b69ba /gcc/expr.h | |
parent | 71038fd576e8551a8e46b99cabe7cd138571498a (diff) | |
download | gcc-ad82abb8e647ebdfa459383c25130a97a8a9b849.zip gcc-ad82abb8e647ebdfa459383c25130a97a8a9b849.tar.gz gcc-ad82abb8e647ebdfa459383c25130a97a8a9b849.tar.bz2 |
stmt.c: Don't include insn-codes.h.
* stmt.c: Don't include insn-codes.h.
(expand_end_case): Machine specific logic moved to expr.c.
No need to worry about __builtin_classify_type.
(check_for_full_enumeration_handling, emit_case_nodes):
Kill #if 0 blocks.
* builtins.o (expand_builtin_classify_type): Split up so code
can be shared with fold_builtin_classify_type.
(type_to_class, fold_builtin_classify_type): New functions.
(fold_builtins): Handle __builtin_classify_type.
* expr.c (do_tablejump): Now static.
(case_values_threshold, try_casesi, try_tablejump): New;
code mostly from stmt.c (expand_end_case).
(expr.h): Update prototypes.
* Makefile.in (stmt.o): Update dependencies.
From-SVN: r45078
Diffstat (limited to 'gcc/expr.h')
-rw-r--r-- | gcc/expr.h | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -540,8 +540,14 @@ extern void do_compare_rtx_and_jump PARAMS ((rtx, rtx, enum rtx_code, int, enum machine_mode, rtx, unsigned int, rtx, rtx)); -/* Generate a tablejump instruction (used for switch statements). */ -extern void do_tablejump PARAMS ((rtx, enum machine_mode, rtx, rtx, rtx)); +/* Two different ways of generating switch statements. */ +extern int try_casesi PARAMS ((tree, tree, tree, tree, rtx, rtx)); +extern int try_tablejump PARAMS ((tree, tree, tree, tree, rtx, rtx)); + +/* Smallest number of adjacent cases before we use a jump table. + XXX Should be a target hook. */ +extern unsigned int case_values_threshold PARAMS ((void)); + #ifdef TREE_CODE /* rtl.h and tree.h were included. */ |