aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorMogball <jeff@modular.com>2023-09-01 23:12:11 +0000
committerMogball <jeff@modular.com>2023-09-01 23:12:16 +0000
commit930916c7f3622870b40138dafcc5f94740404e8c (patch)
treef19fe2d712ac146195117066a2498e6032535f42 /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parent2d696d0458ef395fcd61a20b6fd887b74ce9d04e (diff)
downloadllvm-930916c7f3622870b40138dafcc5f94740404e8c.zip
llvm-930916c7f3622870b40138dafcc5f94740404e8c.tar.gz
llvm-930916c7f3622870b40138dafcc5f94740404e8c.tar.bz2
[MLIR][PDL] Add PDLL support for negated native constraints
This commit enables the expression of negated native constraints in PDLL: If a constraint is prefixed with "not" it is parsed as a negated constraint and hence the attribute `isNegated` of the emitted `pdl.apply_native_constraint` operation is set to `true`. In first instance this is only supported for the calling of external native C++ constraints and generation of PDL patterns. Previously, negating a native constraint would have been handled by creating an additional native call, e.g. ```PDLL Constraint checkA(input: Attr); Constarint checkNotA(input: Attr); ``` or by including an explicit additional operand for negation, e.g. `Constraint checkA(input: Attr, negated: Attr);` With this a constraint can simply be negated by prefixing it with `not`. e.g. ```PDLL Constraint simpleConstraint(op: Op); Pattern example { let inputOp = op<test.bar>() ->(type: Type); let root = op<test.foo>(inputOp.0) -> (); not simpleConstraint(inputOp); simpleConstraint(root); erase root; } ``` Depends on [[ https://reviews.llvm.org/D153871 | D153871 ]] Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D153959
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
0 files changed, 0 insertions, 0 deletions