spirv: Handle instruction aliases in spirv_info_c.py
Choose the first we see in the grammar file as the main one. This is needed to parse SPIR-V 1.4 because it introduced opcode aliases. Reviewed-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
parent
810b95e02c
commit
4b474e2e8a
|
@ -46,11 +46,18 @@ def collect_data(spirv, kind):
|
|||
return (kind, values)
|
||||
|
||||
def collect_opcodes(spirv):
|
||||
seen = set()
|
||||
values = []
|
||||
for x in spirv["instructions"]:
|
||||
# Handle aliases by choosing the first one in the grammar.
|
||||
# E.g. OpDecorateString and OpDecorateStringGOOGLE share same opcode.
|
||||
if x["opcode"] in seen:
|
||||
continue
|
||||
opcode = x["opcode"]
|
||||
name = x["opname"]
|
||||
assert name.startswith("Op")
|
||||
values.append(name[2:])
|
||||
seen.add(opcode)
|
||||
|
||||
return ("Op", values)
|
||||
|
||||
|
|
Loading…
Reference in New Issue