nvptx-protos.h revision 1.5 1 1.1 mrg /* Prototypes for exported functions defined in nvptx.c.
2 1.5 mrg Copyright (C) 2014-2019 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.1 mrg extern void nvptx_register_pragmas (void);
44 1.4 mrg extern unsigned int nvptx_data_alignment (const_tree, unsigned int);
45 1.1 mrg
46 1.1 mrg #ifdef RTX_CODE
47 1.3 mrg extern void nvptx_expand_oacc_fork (unsigned);
48 1.3 mrg extern void nvptx_expand_oacc_join (unsigned);
49 1.1 mrg extern void nvptx_expand_call (rtx, rtx);
50 1.3 mrg extern rtx nvptx_gen_shuffle (rtx, rtx, rtx, nvptx_shuffle_kind);
51 1.1 mrg extern rtx nvptx_expand_compare (rtx);
52 1.1 mrg extern const char *nvptx_ptx_type_from_mode (machine_mode, bool);
53 1.3 mrg extern const char *nvptx_output_mov_insn (rtx, rtx);
54 1.1 mrg extern const char *nvptx_output_call_insn (rtx_insn *, rtx, rtx);
55 1.1 mrg extern const char *nvptx_output_return (void);
56 1.3 mrg extern const char *nvptx_output_set_softstack (unsigned);
57 1.3 mrg extern const char *nvptx_output_simt_enter (rtx, rtx, rtx);
58 1.3 mrg extern const char *nvptx_output_simt_exit (rtx);
59 1.5 mrg extern const char *nvptx_output_red_partition (rtx, rtx);
60 1.1 mrg #endif
61 1.1 mrg #endif
62