[Mlir-commits] [mlir] [MLIR][XeGPU] Add unroll patterns and blocking pass for XeGPU [2/N] (PR #140163)

Florian Mayer llvmlistbot at llvm.org
Mon Jun 2 14:34:01 PDT 2025


fmayer wrote:

This patch has caused a use-after-free:

```
==mlir-opt==1637153==ERROR: AddressSanitizer: heap-use-after-free on address 0x7930a6de145c at pc 0x5fe88cb7aa73 bp 0x7fff5908b490 sp 0x7fff5908b488
READ of size 4 at 0x7930a6de145c thread T0
    #0 0x5fe88cb7aa72 in getOpOperands /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/Operation.h:384:12
    #1 0x5fe88cb7aa72 in operator() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp:321:31
    #2 0x5fe88cb7aa72 in void llvm::function_ref<void (mlir::Operation*)>::callback_fn<(anonymous namespace)::XeGPUBlockingPass::runOnOperation()::$_7>(long, mlir::Operation*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
    #3 0x5fe885984677 in void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/Visitors.h:181:9
    #4 0x5fe885984677 in void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/Visitors.h:181:9
    #5 0x5fe885984677 in void mlir::detail::walk<mlir::ForwardIterator>(mlir::Operation*, llvm::function_ref<void (mlir::Operation*)>, mlir::WalkOrder) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/Visitors.h:181:9
    #6 0x5fe88cb73782 in walk<(mlir::WalkOrder)1, mlir::ForwardIterator, (lambda at /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp:315:12), mlir::Operation *, void> /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/Visitors.h:312:10
    #7 0x5fe88cb73782 in walk<(mlir::WalkOrder)1, mlir::ForwardIterator, (lambda at /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp:315:12), void> /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/Operation.h:798:12
    #8 0x5fe88cb73782 in (anonymous namespace)::XeGPUBlockingPass::runOnOperation() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp:315:7
    #9 0x5fe88d6d1ef3 in operator() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Pass/Pass.cpp:528:17
    #10 0x5fe88d6d1ef3 in void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
    #11 0x5fe88d6c40bc in operator() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
    #12 0x5fe88d6c40bc in executeAction<mlir::PassExecutionAction, mlir::Pass &> /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/MLIRContext.h:280:7
    #13 0x5fe88d6c40bc in mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Pass/Pass.cpp:522:21
    #14 0x5fe88d6c53e7 in mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Pass/Pass.cpp:594:16
    #15 0x5fe88d6cb2e5 in runPasses /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Pass/Pass.cpp:907:10
    #16 0x5fe88d6cb2e5 in mlir::PassManager::run(mlir::Operation*) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Pass/Pass.cpp:887:60
    #17 0x5fe88d6b7caa in performActions(llvm::raw_ostream&, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:484:17
    #18 0x5fe88d6b7313 in processBuffer /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:552:12
    #19 0x5fe88d6b7313 in operator() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:636:12
    #20 0x5fe88d6b7313 in llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
    #21 0x5fe88d8e3686 in operator() /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
    #22 0x5fe88d8e3686 in mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef)::$_0::operator()(llvm::StringRef) const /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:86:16
    #23 0x5fe88d8e2a83 in interleave<const llvm::StringRef *, (lambda at /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:79:23), (lambda at /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2210:49), void> /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2188:3
    #24 0x5fe88d8e2a83 in interleave<llvm::SmallVector<llvm::StringRef, 8U>, (lambda at /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:79:23), llvm::raw_ostream, llvm::StringRef> /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2210:3
    #25 0x5fe88d8e2a83 in mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:89:3
    #26 0x5fe88d6a2d1a in mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:639:10
    #27 0x5fe88d6a36c2 in mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:680:14
    #28 0x5fe88d6a3f8f in mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:696:10
    #29 0x5fe88561d115 in main /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:339:33
    #30 0x7c40a7a2a3b7  (/lib/x86_64-linux-gnu/libc.so.6+0x2a3b7) (BuildId: 91f01b4ad171c80b6303d08d1f08cba8b990413d)
    #31 0x7c40a7a2a47a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a47a) (BuildId: 91f01b4ad171c80b6303d08d1f08cba8b990413d)
    #32 0x5fe885535064 in _start (/home/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan_ubsan/bin/mlir-opt+0xd9c0064)
```

https://lab.llvm.org/buildbot/#/builders/169/builds/11924

https://github.com/llvm/llvm-project/pull/140163


More information about the Mlir-commits mailing list