(root)/
gcc-13.2.0/
gcc/
config/
i386/
i386-options.h
       1  /* Copyright (C) 1988-2023 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 */