(root)/
gcc-13.2.0/
gcc/
config/
nvptx/
nvptx-protos.h
       1  /* Prototypes for exported functions defined in nvptx.cc.
       2     Copyright (C) 2014-2023 Free Software Foundation, Inc.
       3     Contributed by Bernd Schmidt <bernds@codesourcery.com>
       4  
       5     This file is part of GCC.
       6  
       7     GCC is free software; you can redistribute it and/or modify it
       8     under the terms of the GNU General Public License as published
       9     by the Free Software Foundation; either version 3, or (at your
      10     option) any later version.
      11  
      12     GCC is distributed in the hope that it will be useful, but WITHOUT
      13     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
      14     or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
      15     License for more details.
      16  
      17     You should have received a copy of the GNU General Public License
      18     along with GCC; see the file COPYING3.  If not see
      19     <http://www.gnu.org/licenses/>.  */
      20  
      21  #ifndef GCC_NVPTX_PROTOS_H
      22  #define GCC_NVPTX_PROTOS_H
      23  
      24  /* The kind of shuffe instruction.  */
      25  enum nvptx_shuffle_kind
      26  {
      27    SHUFFLE_UP,
      28    SHUFFLE_DOWN,
      29    SHUFFLE_BFLY,
      30    SHUFFLE_IDX,
      31    SHUFFLE_MAX
      32  };
      33  
      34  extern void nvptx_declare_function_name (FILE *, const char *, const_tree decl);
      35  extern void nvptx_declare_object_name (FILE *file, const char *name,
      36  				       const_tree decl);
      37  extern void nvptx_output_aligned_decl (FILE *file, const char *name,
      38  				       const_tree decl,
      39  				       HOST_WIDE_INT size, unsigned align);
      40  extern void nvptx_function_end (FILE *);
      41  extern void nvptx_output_skip (FILE *, unsigned HOST_WIDE_INT);
      42  extern void nvptx_output_ascii (FILE *, const char *, unsigned HOST_WIDE_INT);
      43  extern void nvptx_cpu_cpp_builtins (void);
      44  extern void nvptx_register_pragmas (void);
      45  extern unsigned int nvptx_data_alignment (const_tree, unsigned int);
      46  extern void nvptx_asm_output_def_from_decls (FILE *, tree, tree);
      47  extern unsigned int ptx_version_to_number (enum ptx_version, bool);
      48  
      49  #ifdef RTX_CODE
      50  extern void nvptx_expand_oacc_fork (unsigned);
      51  extern void nvptx_expand_oacc_join (unsigned);
      52  extern void nvptx_expand_call (rtx, rtx);
      53  extern rtx nvptx_gen_shuffle (rtx, rtx, rtx, nvptx_shuffle_kind);
      54  extern rtx nvptx_expand_compare (rtx);
      55  extern const char *nvptx_ptx_type_from_mode (machine_mode, bool);
      56  extern const char *nvptx_output_mov_insn (rtx, rtx);
      57  extern const char *nvptx_output_call_insn (rtx_insn *, rtx, rtx);
      58  extern const char *nvptx_output_return (void);
      59  extern const char *nvptx_output_set_softstack (unsigned);
      60  extern const char *nvptx_output_simt_enter (rtx, rtx, rtx);
      61  extern const char *nvptx_output_simt_exit (rtx);
      62  extern const char *nvptx_output_red_partition (rtx, rtx);
      63  extern const char *nvptx_output_atomic_insn (const char *, rtx *, int, int);
      64  extern bool nvptx_mem_local_p (rtx);
      65  extern bool nvptx_mem_maybe_shared_p (const_rtx);
      66  #endif
      67  #endif