xref: /llvm-project/mlir/utils/spirv/define_opcodes.sh (revision 4234292ecf4902ad53286652acc3969c6758fed0)
1801efec9SMahesh Ravishankar#!/bin/bash
2801efec9SMahesh Ravishankar
356222a06SMehdi Amini# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
456222a06SMehdi Amini# See https://llvm.org/LICENSE.txt for license information.
556222a06SMehdi Amini# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6801efec9SMahesh Ravishankar
7801efec9SMahesh Ravishankar# Script for defining map for opname to opcode using SPIR-V spec from the
8801efec9SMahesh Ravishankar# Internet
9801efec9SMahesh Ravishankar#
10801efec9SMahesh Ravishankar# Run as:
11801efec9SMahesh Ravishankar# ./define_opcode.sh (<op-name>)*
12801efec9SMahesh Ravishankar#
13801efec9SMahesh Ravishankar# For example:
14801efec9SMahesh Ravishankar# ./define_opcode.sh OpTypeVoid OpTypeFunction
15801efec9SMahesh Ravishankar#
16801efec9SMahesh Ravishankar# If no op-name is specified, the existing opcodes are updated
17801efec9SMahesh Ravishankar#
18801efec9SMahesh Ravishankar# The 'instructions' list of spirv.core.grammar.json contains all instructions
19801efec9SMahesh Ravishankar# in SPIR-V
20801efec9SMahesh Ravishankar
21801efec9SMahesh Ravishankarset -e
22801efec9SMahesh Ravishankar
23801efec9SMahesh Ravishankarcurrent_file="$(readlink -f "$0")"
24801efec9SMahesh Ravishankarcurrent_dir="$(dirname "$current_file")"
25801efec9SMahesh Ravishankar
26801efec9SMahesh Ravishankarpython3 ${current_dir}/gen_spirv_dialect.py \
27*4234292eSMaheshRavishankar  --base-td-path ${current_dir}/../../include/mlir/Dialect/SPIRV/IR/SPIRVBase.td \
28801efec9SMahesh Ravishankar  --new-opcode $@
29