xref: /netbsd-src/external/gpl3/gcc/dist/gcc/config/nvptx/gen-opt.sh (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1#!/bin/sh
2
3# Copyright (C) 2022 Free Software Foundation, Inc.
4#
5# This file is part of GCC.
6#
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.
11#
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.
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
21nvptx_sm_def="$1/nvptx-sm.def"
22gen_copyright_sh="$1/gen-copyright.sh"
23
24sms=$(grep ^NVPTX_SM $nvptx_sm_def | sed 's/.*(//;s/,.*//')
25
26last=
27for sm in $sms; do
28    last="$sm"
29done
30
31cat <<EOF
32; -*- buffer-read-only: t -*-
33; Generated automatically by gen-opt.sh from nvptx-sm.def.
34EOF
35
36# Separator.
37echo
38
39. $gen_copyright_sh opt
40
41# Separator.
42echo
43
44cat <<EOF
45Enum
46Name(ptx_isa) Type(int)
47Known PTX ISA target architectures (for use with the -misa= option):
48EOF
49
50# Separator.
51echo
52
53for sm in $sms; do
54    cat <<EOF
55EnumValue
56Enum(ptx_isa) String(sm_$sm) Value(PTX_ISA_SM$sm)
57EOF
58
59    if [ "$sm" == "$last" ]; then
60	# Don't end with trailing empty line.
61	continue
62    fi
63
64    # Separator.
65    echo
66done
67