Mercurial > hg > CbC > CbC_gcc
comparison gcc/builtins.h @ 132:d34655255c78
update gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 10:21:07 +0900 |
parents | 84e7813d76e9 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
130:e108057fa461 | 132:d34655255c78 |
---|---|
1 /* Expand builtin functions. | 1 /* Expand builtin functions. |
2 Copyright (C) 1988-2017 Free Software Foundation, Inc. | 2 Copyright (C) 1988-2018 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of GCC. | 4 This file is part of GCC. |
5 | 5 |
6 GCC is free software; you can redistribute it and/or modify it under | 6 GCC is free software; you can redistribute it and/or modify it under |
7 the terms of the GNU General Public License as published by the Free | 7 the terms of the GNU General Public License as published by the Free |
27 /* For each register that may be used for calling a function, this | 27 /* For each register that may be used for calling a function, this |
28 gives a mode used to copy the register's value. VOIDmode indicates | 28 gives a mode used to copy the register's value. VOIDmode indicates |
29 the register is not used for calling a function. If the machine | 29 the register is not used for calling a function. If the machine |
30 has register windows, this gives only the outbound registers. | 30 has register windows, this gives only the outbound registers. |
31 INCOMING_REGNO gives the corresponding inbound register. */ | 31 INCOMING_REGNO gives the corresponding inbound register. */ |
32 machine_mode x_apply_args_mode[FIRST_PSEUDO_REGISTER]; | 32 fixed_size_mode_pod x_apply_args_mode[FIRST_PSEUDO_REGISTER]; |
33 | 33 |
34 /* For each register that may be used for returning values, this gives | 34 /* For each register that may be used for returning values, this gives |
35 a mode used to copy the register's value. VOIDmode indicates the | 35 a mode used to copy the register's value. VOIDmode indicates the |
36 register is not used for returning values. If the machine has | 36 register is not used for returning values. If the machine has |
37 register windows, this gives only the outbound registers. | 37 register windows, this gives only the outbound registers. |
38 INCOMING_REGNO gives the corresponding inbound register. */ | 38 INCOMING_REGNO gives the corresponding inbound register. */ |
39 machine_mode x_apply_result_mode[FIRST_PSEUDO_REGISTER]; | 39 fixed_size_mode_pod x_apply_result_mode[FIRST_PSEUDO_REGISTER]; |
40 }; | 40 }; |
41 | 41 |
42 extern struct target_builtins default_target_builtins; | 42 extern struct target_builtins default_target_builtins; |
43 #if SWITCHABLE_TARGET | 43 #if SWITCHABLE_TARGET |
44 extern struct target_builtins *this_target_builtins; | 44 extern struct target_builtins *this_target_builtins; |
47 #endif | 47 #endif |
48 | 48 |
49 /* Non-zero if __builtin_constant_p should be folded right away. */ | 49 /* Non-zero if __builtin_constant_p should be folded right away. */ |
50 extern bool force_folding_builtin_constant_p; | 50 extern bool force_folding_builtin_constant_p; |
51 | 51 |
52 extern bool is_builtin_fn (tree); | |
53 extern bool called_as_built_in (tree); | 52 extern bool called_as_built_in (tree); |
54 extern bool get_object_alignment_1 (tree, unsigned int *, | 53 extern bool get_object_alignment_1 (tree, unsigned int *, |
55 unsigned HOST_WIDE_INT *); | 54 unsigned HOST_WIDE_INT *); |
56 extern unsigned int get_object_alignment (tree); | 55 extern unsigned int get_object_alignment (tree); |
57 extern bool get_pointer_alignment_1 (tree, unsigned int *, | 56 extern bool get_pointer_alignment_1 (tree, unsigned int *, |
58 unsigned HOST_WIDE_INT *); | 57 unsigned HOST_WIDE_INT *); |
59 extern unsigned int get_pointer_alignment (tree); | 58 extern unsigned int get_pointer_alignment (tree); |
60 extern tree c_strlen (tree, int); | 59 extern unsigned string_length (const void*, unsigned, unsigned); |
60 struct c_strlen_data | |
61 { | |
62 tree decl; | |
63 tree len; | |
64 tree off; | |
65 }; | |
66 | |
67 extern tree c_strlen (tree, int, c_strlen_data * = NULL, unsigned = 1); | |
61 extern void expand_builtin_setjmp_setup (rtx, rtx); | 68 extern void expand_builtin_setjmp_setup (rtx, rtx); |
62 extern void expand_builtin_setjmp_receiver (rtx); | 69 extern void expand_builtin_setjmp_receiver (rtx); |
63 extern void expand_builtin_update_setjmp_buf (rtx); | 70 extern void expand_builtin_update_setjmp_buf (rtx); |
64 extern tree mathfn_built_in (tree, enum built_in_function fn); | 71 extern tree mathfn_built_in (tree, enum built_in_function fn); |
65 extern tree mathfn_built_in (tree, combined_fn); | 72 extern tree mathfn_built_in (tree, combined_fn); |
74 extern void expand_ifn_atomic_bit_test_and (gcall *); | 81 extern void expand_ifn_atomic_bit_test_and (gcall *); |
75 extern void expand_ifn_atomic_compare_exchange (gcall *); | 82 extern void expand_ifn_atomic_compare_exchange (gcall *); |
76 extern rtx expand_builtin (tree, rtx, rtx, machine_mode, int); | 83 extern rtx expand_builtin (tree, rtx, rtx, machine_mode, int); |
77 extern rtx expand_builtin_with_bounds (tree, rtx, rtx, machine_mode, int); | 84 extern rtx expand_builtin_with_bounds (tree, rtx, rtx, machine_mode, int); |
78 extern enum built_in_function builtin_mathfn_code (const_tree); | 85 extern enum built_in_function builtin_mathfn_code (const_tree); |
79 extern tree fold_builtin_expect (location_t, tree, tree, tree); | 86 extern tree fold_builtin_expect (location_t, tree, tree, tree, tree); |
80 extern bool avoid_folding_inline_builtin (tree); | 87 extern bool avoid_folding_inline_builtin (tree); |
81 extern tree fold_call_expr (location_t, tree, bool); | 88 extern tree fold_call_expr (location_t, tree, bool); |
82 extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *); | 89 extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *); |
83 extern tree fold_builtin_n (location_t, tree, tree *, int, bool); | 90 extern tree fold_builtin_n (location_t, tree, tree *, int, bool); |
84 extern bool validate_gimple_arglist (const gcall *, ...); | 91 extern bool validate_gimple_arglist (const gcall *, ...); |
87 extern tree do_mpc_arg2 (tree, tree, tree, int, int (*)(mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t)); | 94 extern tree do_mpc_arg2 (tree, tree, tree, int, int (*)(mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t)); |
88 extern tree fold_call_stmt (gcall *, bool); | 95 extern tree fold_call_stmt (gcall *, bool); |
89 extern void set_builtin_user_assembler_name (tree decl, const char *asmspec); | 96 extern void set_builtin_user_assembler_name (tree decl, const char *asmspec); |
90 extern bool is_simple_builtin (tree); | 97 extern bool is_simple_builtin (tree); |
91 extern bool is_inexpensive_builtin (tree); | 98 extern bool is_inexpensive_builtin (tree); |
99 extern tree compute_objsize (tree, int); | |
92 | 100 |
93 extern bool readonly_data_expr (tree exp); | 101 extern bool readonly_data_expr (tree exp); |
94 extern bool init_target_chars (void); | 102 extern bool init_target_chars (void); |
95 extern unsigned HOST_WIDE_INT target_newline; | 103 extern unsigned HOST_WIDE_INT target_newline; |
96 extern unsigned HOST_WIDE_INT target_percent; | 104 extern unsigned HOST_WIDE_INT target_percent; |
100 extern bool target_char_cst_p (tree t, char *p); | 108 extern bool target_char_cst_p (tree t, char *p); |
101 | 109 |
102 extern internal_fn associated_internal_fn (tree); | 110 extern internal_fn associated_internal_fn (tree); |
103 extern internal_fn replacement_internal_fn (gcall *); | 111 extern internal_fn replacement_internal_fn (gcall *); |
104 | 112 |
105 #endif | 113 extern void warn_string_no_nul (location_t, const char *, tree, tree); |
114 extern tree unterminated_array (tree, tree * = NULL, bool * = NULL); | |
115 extern tree max_object_size (); | |
116 | |
117 #endif /* GCC_BUILTINS_H */ |