libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / config / nvptx / gen-opt.sh
blob6022f51f89757c5ebcaf3ee708ca50476ee41abb
1 #!/bin/sh
3 # Copyright (C) 2022-2024 Free Software Foundation, Inc.
5 # This file is part of GCC.
7 # GCC is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3, or (at your option)
10 # any later version.
12 # GCC is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
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/>.
21 nvptx_sm_def="$1/nvptx-sm.def"
22 gen_copyright_sh="$1/gen-copyright.sh"
24 sms=$(grep ^NVPTX_SM $nvptx_sm_def | sed 's/.*(//;s/,.*//')
26 last=
27 for sm in $sms; do
28 last="$sm"
29 done
31 cat <<EOF
32 ; -*- buffer-read-only: t -*-
33 ; Generated automatically by gen-opt.sh from nvptx-sm.def.
34 EOF
36 # Separator.
37 echo
39 . $gen_copyright_sh opt
41 # Not emitting the following here (in addition to having it in 'nvptx.opt'), as
42 # we'll otherwise run into:
44 # gtyp-input.list:10: file [...]/gcc/config/nvptx/nvptx-opts.h specified more than once for language (all)
45 # make[2]: *** [Makefile:2981: s-gtype] Error 1
46 : ||
47 cat <<EOF
49 HeaderInclude
50 config/nvptx/nvptx-opts.h
51 EOF
53 # Separator.
54 echo
56 cat <<EOF
57 Enum
58 Name(ptx_isa) Type(enum ptx_isa)
59 Known PTX ISA target architectures (for use with the -misa= option):
60 EOF
62 # Separator.
63 echo
65 for sm in $sms; do
66 cat <<EOF
67 EnumValue
68 Enum(ptx_isa) String(sm_$sm) Value(PTX_ISA_SM$sm)
69 EOF
71 if [ "$sm" = "$last" ]; then
72 # Don't end with trailing empty line.
73 continue
76 # Separator.
77 echo
78 done