aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode
diff options
context:
space:
mode:
authorTim Noack <noack@esa.tu-darmstadt.de>2026-02-03 23:00:56 +0100
committerGitHub <noreply@github.com>2026-02-03 14:00:56 -0800
commit254b3b137efb1be5a5e57188b3f8a8ff934bdf78 (patch)
tree1a503d99d97fcf7268a1556f132d6d6335e32a2f /llvm/lib/Bitcode
parent43faefdb12337216957b2fac34ca6bd1bed371b7 (diff)
downloadllvm-254b3b137efb1be5a5e57188b3f8a8ff934bdf78.tar.gz
llvm-254b3b137efb1be5a5e57188b3f8a8ff934bdf78.tar.bz2
llvm-254b3b137efb1be5a5e57188b3f8a8ff934bdf78.zip
[mlir][tblgen] Add PredTypeTrait/PredAttrTrait support (#169153)
This patch adds support for `PredTypeTrait` and `PredAttrTrait` in type and attribute definitions, enabling declarative predicate-based verification similar to how `PredOpTrait` works for operations. ## Motivation In 802bf02 (from 2021), `PredTypeTrait`/`PredAttrTrait` were defined in TableGen but not implemented in the code generator. Using them causes mlir-tblgen to crash with an assertion failure when trying to cast `PredTrait` to `InterfaceTrait`. This patch fixes the crash and implements the actual verification code generation. ## Usage Use `$paramName` syntax in predicates to reference type/attribute parameters: ```tablegen def MyType : MyDialect_Type<"MyType", [PredTypeTrait<"value must be positive", CPred<"$value > 0">>]> { let parameters = (ins "unsigned":$value); let mnemonic = "my_type"; let assemblyFormat = "`<` $value `>`"; } ``` This generates verification code in `verifyInvariantsImpl()`: ```cpp if (!(value > 0)) { emitError() << "failed to verify that value must be positive"; return ::mlir::failure(); } ```
Diffstat (limited to 'llvm/lib/Bitcode')
0 files changed, 0 insertions, 0 deletions