[all-commits] [llvm/llvm-project] 63ca93: [mlir] [transform] Fix for RAUW error in transform...

Guray Ozen via All-commits all-commits at lists.llvm.org
Wed Nov 16 00:55:38 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 63ca939783ebfc1ae3b16d4c26f9010631542078
      https://github.com/llvm/llvm-project/commit/63ca939783ebfc1ae3b16d4c26f9010631542078
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2022-11-16 (Wed, 16 Nov 2022)

  Changed paths:
    M mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
    M mlir/test/Dialect/GPU/transform-gpu.mlir

  Log Message:
  -----------
  [mlir] [transform] Fix for RAUW error in transform gpu dialect

The given test fails due to error below.

The following error is why the test is failing. One `memref.store` and two `memref.load` are consumers of the loop index for which I do RAUW. `memref.store` is first in the list. If I RAUW on this the loop of `llvm::make early inc range(threadIdx.getUsers())` does not return two `memref.load` as users. They remain unchanged. I'm not really certain why.

This change applies RAUW after collecting the users. If a better solution exists, I would be happy to implement it.

```
mlir-opt: ...llvm-project/mlir/include/mlir/IR/UseDefLists.h:175: mlir::IRObjectWithUseList<mlir::OpOperand>::~IRObjectWithUseList() [OperandType = mlir::OpOperand]: Assertion `use_empty() && "Cannot destroy a value that still has uses!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
```

Reviewed By: springerm

Differential Revision: https://reviews.llvm.org/D138029




More information about the All-commits mailing list