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