aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2001-08-21 15:51:22 +0000
committerZack Weinberg <zack@gcc.gnu.org>2001-08-21 15:51:22 +0000
commitad82abb8e647ebdfa459383c25130a97a8a9b849 (patch)
tree575699b686457410b32fd7f6c60e918c730b69ba /gcc/expr.h
parent71038fd576e8551a8e46b99cabe7cd138571498a (diff)
downloadgcc-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.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 2ea167e..22e537d 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -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. */