[AsmParser] Match mandatory operands following optional operands.
authorIvan Kosarev <ivan.kosarev@amd.com>
Thu, 10 Nov 2022 12:19:53 +0000 (12:19 +0000)
committerIvan Kosarev <ivan.kosarev@amd.com>
Thu, 10 Nov 2022 12:48:11 +0000 (12:48 +0000)
commitaf6b1f797f946c560f8a7b0e647f51e23d4c666f
tree3d96e92d157c7d0fd0c2334d0decdc84984f1123
parent30498cf7c46f90db0f67ff01f0246860e55be0f2
[AsmParser] Match mandatory operands following optional operands.

Currently, the asm parser stops matching instruction operands as soon as the first optional operand is encountered. This leads to the need for custom checks on missing mandatory operands that come after optional operands.

The patch changes the parser to always match all optional and mandatory instruction operands, thus making the custom checks unnecessary. This is particularly useful for the AMDGPU backend where we have numerous optional instruction modifiers.

Reviewed By: dp

Differential Revision: https://reviews.llvm.org/D137549
llvm/test/MC/AMDGPU/gfx10_err_pos.s
llvm/test/MC/AMDGPU/gfx9-asm-err.s
llvm/test/MC/AMDGPU/gfx9_err_pos.s
llvm/test/MC/AMDGPU/mubuf.s
llvm/test/MC/SystemZ/asm-match.s
llvm/test/MC/X86/x86_64-asm-match.s
llvm/utils/TableGen/AsmMatcherEmitter.cpp