[llvm-branch-commits] [mlir] [mlir][Transforms] Support rolling back properties in dialect conversion (PR #82474)
Mehdi Amini via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Feb 21 01:06:27 PST 2024
================
@@ -1002,12 +1002,31 @@ class ModifyOperationRewrite : public OperationRewrite {
: OperationRewrite(Kind::ModifyOperation, rewriterImpl, op),
loc(op->getLoc()), attrs(op->getAttrDictionary()),
operands(op->operand_begin(), op->operand_end()),
- successors(op->successor_begin(), op->successor_end()) {}
+ successors(op->successor_begin(), op->successor_end()) {
+ if (OpaqueProperties prop = op->getPropertiesStorage()) {
+ // Make a copy of the properties.
+ int size = op->getPropertiesStorageSize();
+ propertiesStorage = operator new(size);
+ memcpy(propertiesStorage, prop.as<void *>(), size);
----------------
joker-eph wrote:
That does not seem correct C++ to me: you can't assume that a property can be copied as a "POD" (I don't remember the new terminology).
Properties can be arbitrary C++ objects (think std::string for example).
https://github.com/llvm/llvm-project/pull/82474
More information about the llvm-branch-commits
mailing list