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