1 /* Copyright (C) 1988-2024 Free Software Foundation, Inc.
3 This file is part of GCC.
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)
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.
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/>. */
19 #ifndef GCC_I386_OPTIONS_H
20 #define GCC_I386_OPTIONS_H
22 extern int ix86_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait
,
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
);
34 extern enum attr_cpu ix86_schedule
;
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
;
41 extern int ix86_tune_defaulted
;
42 extern int ix86_arch_specified
;
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
;
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
;
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
);
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
);
64 enum ix86_function_specific_strings
66 IX86_FUNCTION_SPECIFIC_ARCH
,
67 IX86_FUNCTION_SPECIFIC_TUNE
,
68 IX86_FUNCTION_SPECIFIC_MAX
71 extern const char *stringop_alg_names
[];
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);
85 extern const struct scoped_attribute_specs ix86_gnu_attribute_table
;
88 #endif /* GCC_I386_OPTIONS_H */