1 /* Copyright (C) 1988-2022 Free Software Foundation, Inc. 2 3 This file is part of GCC. 4 5 GCC is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3, or (at your option) 8 any later version. 9 10 GCC is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with GCC; see the file COPYING3. If not see 17 <http://www.gnu.org/licenses/>. */ 18 19 #ifndef GCC_I386_OPTIONS_H 20 #define GCC_I386_OPTIONS_H 21 22 extern int ix86_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait, 23 const char *name); 24 25 char *ix86_target_string (HOST_WIDE_INT isa, HOST_WIDE_INT isa2, 26 int flags, int flags2, 27 const char *arch, const char *tune, 28 enum fpmath_unit fpmath, 29 enum prefer_vector_width pvw, 30 enum prefer_vector_width move_max, 31 enum prefer_vector_width store_max, 32 bool add_nl_p, bool add_abi_p); 33 34 extern enum attr_cpu ix86_schedule; 35 36 extern enum processor_type ix86_tune; 37 extern enum processor_type ix86_arch; 38 extern unsigned char ix86_prefetch_sse; 39 extern const struct processor_costs *ix86_tune_cost; 40 41 extern int ix86_tune_defaulted; 42 extern int ix86_arch_specified; 43 44 extern unsigned int ix86_default_incoming_stack_boundary; 45 extern HOST_WIDE_INT deferred_isa_values; 46 extern HOST_WIDE_INT deferred_isa_values2; 47 48 extern unsigned int ix86_preferred_stack_boundary; 49 extern unsigned int ix86_user_incoming_stack_boundary; 50 extern unsigned int ix86_default_incoming_stack_boundary; 51 extern unsigned int ix86_incoming_stack_boundary; 52 53 extern char *ix86_offload_options (void); 54 extern void ix86_option_override (void); 55 extern void ix86_override_options_after_change (void); 56 void ix86_set_current_function (tree fndecl); 57 bool ix86_function_naked (const_tree fn); 58 void ix86_simd_clone_adjust (struct cgraph_node *node); 59 60 extern tree (*ix86_veclib_handler) (combined_fn, tree, tree); 61 extern tree ix86_veclibabi_svml (combined_fn, tree, tree); 62 extern tree ix86_veclibabi_acml (combined_fn, tree, tree); 63 64 enum ix86_function_specific_strings 65 { 66 IX86_FUNCTION_SPECIFIC_ARCH, 67 IX86_FUNCTION_SPECIFIC_TUNE, 68 IX86_FUNCTION_SPECIFIC_MAX 69 }; 70 71 extern const char *stringop_alg_names[]; 72 73 void ix86_add_new_builtins (HOST_WIDE_INT isa, HOST_WIDE_INT isa2); 74 void ix86_function_specific_save (struct cl_target_option *, 75 struct gcc_options *opts, 76 struct gcc_options *opts_set); 77 void ix86_function_specific_restore (struct gcc_options *opts, 78 struct gcc_options *opts_set, 79 struct cl_target_option *); 80 void ix86_function_specific_post_stream_in (struct cl_target_option *); 81 void ix86_function_specific_print (FILE *, int, 82 struct cl_target_option *); 83 bool ix86_valid_target_attribute_p (tree, tree, tree, int); 84 85 extern const struct attribute_spec ix86_attribute_table[]; 86 87 88 #endif /* GCC_I386_OPTIONS_H */ 89