Author: River Riddle Date: 2020-12-01T21:08:34-08:00 New Revision: 7d746b390c6e3b9b4eded3eb84e5973a1b689775
URL: https://github.com/llvm/llvm-project/commit/7d746b390c6e3b9b4eded3eb84e5973a1b689775 DIFF: https://github.com/llvm/llvm-project/commit/7d746b390c6e3b9b4eded3eb84e5973a1b689775.diff LOG: [mlir][PDL] Forward captured single entity constraint functions instead of copy-capture Added: Modified: mlir/include/mlir/IR/PatternMatch.h Removed: ################################################################################ diff --git a/mlir/include/mlir/IR/PatternMatch.h b/mlir/include/mlir/IR/PatternMatch.h index 4fdc0878c590..0bbb2216ee7b 100644 --- a/mlir/include/mlir/IR/PatternMatch.h +++ b/mlir/include/mlir/IR/PatternMatch.h @@ -355,12 +355,14 @@ class PDLPatternModule { std::enable_if_t<!llvm::is_invocable<SingleEntityFn, ArrayRef<PDLValue>, ArrayAttr, PatternRewriter &>::value> registerConstraintFunction(StringRef name, SingleEntityFn &&constraintFn) { - registerConstraintFunction(name, [=](ArrayRef<PDLValue> values, - ArrayAttr constantParams, - PatternRewriter &rewriter) { - assert(values.size() == 1 && "expected values to have a single entity"); - return constraintFn(values[0], constantParams, rewriter); - }); + registerConstraintFunction( + name, [constraintFn = std::forward<SingleEntityFn>(constraintFn)]( + ArrayRef<PDLValue> values, ArrayAttr constantParams, + PatternRewriter &rewriter) { + assert(values.size() == 1 && + "expected values to have a single entity"); + return constraintFn(values[0], constantParams, rewriter); + }); } /// Register a creation function. _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits