Details
- Reviewers
nicolasvasilache pifon2a springerm - Commits
- rGa6d6d40d8bd0: BEGIN_PUBLIC
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Some first comments
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
---|---|---|
1014 | static | |
1015 | can be just const OperationName & | |
1017 | ArrayRefs are usually passed just as ArrayRef<Value> (no need for const reference) | |
1027–1032 | Can you use this overload instead? It will make the code a bit easier to read. I didn't even know that we can pass OperationState to create. /// Creates an operation with the given fields. Operation *create(Location loc, StringAttr opName, ValueRange operands, TypeRange types = {}, ArrayRef<NamedAttribute> attributes = {}, BlockRange successors = {}, MutableArrayRef<std::unique_ptr<Region>> regions = {}); | |
1028 | Let's use the location of the MapOp/ReduceOp here. | |
1033 | same here | |
1047 | Why do you need the unique_ptr here? | |
1073 | static | |
1076 | nit: I would put an assert here that the second operation is a linalg.yield | |
1077 | Why is this check needed? |
didn't look at the impl but offhand comment: some ops are variadic here, how does it work in that case ?
In that case, we would just print the standard form with the region.
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
---|---|---|
1076 | Can it be anything else? | |
1077 | Because if there are no operands, it could be smth like linalg.map outs(%tensor: tensor<?xf32>) () { %0 = arith.constant 0 : index linalg.yield %0 } and we don't want to print the short form for that. Although, it is possible, but I find it confusing. We just want to restrict the short form to "payload" ops that have arguments corresponding to bbArgs of the body and nothing else. |
@pifon2a do you see convergence points with https://discourse.llvm.org/t/rfc-extend-linalg-named-operations-for-arbitrary-element-types/5631 ?
I asked in the thread there, if they can use all these new ops for their use case, but I don't really understand the use case.
Resolve comments.
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
---|---|---|
1047 | Because I want to have access to OperationName outside of this if clause. |
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
---|---|---|
1089 | unused |
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
---|---|---|
1260–1261 | same as above, can be replaced with std::optional |
mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
---|---|---|
1028 | payloadOp? |
Looks like this test broke the ASan and MSan bots: https://lab.llvm.org/buildbot/#/builders/5/builds/30160
Steps to reproduce can be found at https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild. The ASan bot is often easy to reproduce with -DLLVM_ENABLE_SANITIZER=Address, but the MSan bot, as it requires an instrumented libcxx, is often easier just to use the buildbot_fast.sh script that's referenced there.
******************** Testing: 0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90 FAIL: MLIR :: Dialect/Linalg/one-shot-bufferize.mlir (67223 of 70768) ******************** TEST 'MLIR :: Dialect/Linalg/one-shot-bufferize.mlir' FAILED ******************** Script: -- : 'RUN: at line 1'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir -one-shot-bufferize="allow-return-allocs bufferize-function-boundaries" -buffer-loop-hoisting -drop-equivalent-buffer-results -split-input-file | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir : 'RUN: at line 4'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir -one-shot-bufferize="allow-return-allocs test-analysis-only analysis-fuzzer-seed=23 bufferize-function-boundaries" -split-input-file -o /dev/null : 'RUN: at line 5'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir -one-shot-bufferize="allow-return-allocs test-analysis-only analysis-fuzzer-seed=59 bufferize-function-boundaries" -split-input-file -o /dev/null : 'RUN: at line 6'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir -one-shot-bufferize="allow-return-allocs test-analysis-only analysis-fuzzer-seed=91 bufferize-function-boundaries" -split-input-file -o /dev/null : 'RUN: at line 9'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir -one-shot-bufferize="allow-return-allocs unknown-type-conversion=identity-layout-map function-boundary-type-conversion=identity-layout-map bufferize-function-boundaries" -drop-equivalent-buffer-results -split-input-file | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/one-shot-bufferize.mlir --check-prefix=CHECK-NO-LAYOUT-MAP -- Exit Code: 1 Command Output (stderr): -- ================================================================= ==3890072==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7f846e94ecc1 at pc 0x55fb2279e1bd bp 0x7fff9bb62260 sp 0x7fff9bb62258 READ of size 4 at 0x7f846e94ecc1 thread T0 #0 0x55fb2279e1bc in fetch32 /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:162:3 #1 0x55fb2279e1bc in hash_4to8_bytes /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:207:16 #2 0x55fb2279e1bc in llvm::hashing::detail::hash_short(char const*, unsigned long, unsigned long) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:251:12 #3 0x55fb2736ad3c in getHashValue /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:445:12 #4 0x55fb2736ad3c in bool llvm::DenseMapBase<llvm::SmallDenseMap<llvm::StringRef, llvm::detail::DenseSetEmpty, 4u, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseSetPair<llvm::StringRef>>, llvm::StringRef, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseSetPair<llvm::StringRef>>::LookupBucketFor<llvm::StringRef>(llvm::StringRef const&, llvm::detail::DenseSetPair<llvm::StringRef> const*&) const /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:626:25 #5 0x55fb2737375e in LookupBucketFor<llvm::StringRef> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:662:9 #6 0x55fb2737375e in try_emplace<llvm::detail::DenseSetEmpty &> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:249:9 #7 0x55fb2737375e in insert /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:208:19 #8 0x55fb2737375e in insert<const llvm::StringRef *> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:232:7 #9 0x55fb2737375e in DenseSetImpl<const llvm::StringRef *> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:72:5 #10 0x55fb2737375e in DenseSetImpl /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:297:16 #11 0x55fb2737375e in (anonymous namespace)::DummyAliasOperationPrinter::printOptionalAttrDict(llvm::ArrayRef<mlir::NamedAttribute>, llvm::ArrayRef<llvm::StringRef>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:721:36 #12 0x55fb23bc6291 in printShortForm(mlir::OpAsmPrinter&, mlir::Operation*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:1100:5 #13 0x55fb23bc694c in mlir::linalg::MapOp::print(mlir::OpAsmPrinter&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:1108:5 #14 0x55fb23a285d5 in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/OpDefinition.h:1823:39 #15 0x55fb23a285d5 in void llvm::detail::UniqueFunctionBase<void, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef>::CallImpl<mlir::Op<mlir::linalg::MapOp, mlir::OpTrait::OneRegion, mlir::OpTrait::VariadicResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::AtLeastNOperands<1u>::Impl, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::linalg::YieldOp>::Impl, mlir::OpTrait::OpInvariants, mlir::MemoryEffectOpInterface::Trait, mlir::DestinationStyleOpInterface::Trait, mlir::linalg::LinalgOp::Trait, mlir::RegionBranchOpInterface::Trait, mlir::ReifyRankedShapedTypeOpInterface::Trait, mlir::OpAsmOpInterface::Trait>::getPrintAssemblyFn()::'lambda'(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) const>(void*, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:221:12 #16 0x55fb27379fa0 in (anonymous namespace)::DummyAliasOperationPrinter::print(mlir::Block*, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:663:7 #17 0x55fb2737463c in (anonymous namespace)::DummyAliasOperationPrinter::printRegion(mlir::Region&, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:674:5 #18 0x55fb275158cf in mlir::function_interface_impl::printFunctionOp(mlir::OpAsmPrinter&, mlir::FunctionOpInterface, bool, llvm::StringRef, mlir::StringAttr, mlir::StringAttr) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/FunctionImplementation.cpp:337:7 #19 0x55fb231e1c09 in mlir::func::FuncOp::print(mlir::OpAsmPrinter&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Func/IR/FuncOps.cpp:272:3 #20 0x55fb231f9225 in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/OpDefinition.h:1823:39 #21 0x55fb231f9225 in void llvm::detail::UniqueFunctionBase<void, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef>::CallImpl<mlir::Op<mlir::func::FuncOp, mlir::OpTrait::OneRegion, mlir::OpTrait::ZeroResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::ZeroOperands, mlir::OpTrait::OpInvariants, mlir::OpTrait::AffineScope, mlir::OpTrait::AutomaticAllocationScope, mlir::CallableOpInterface::Trait, mlir::FunctionOpInterface::Trait, mlir::OpTrait::IsIsolatedFromAbove, mlir::OpAsmOpInterface::Trait, mlir::SymbolOpInterface::Trait>::getPrintAssemblyFn()::'lambda'(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) const>(void*, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:221:12 #22 0x55fb27379fa0 in (anonymous namespace)::DummyAliasOperationPrinter::print(mlir::Block*, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:663:7 #23 0x55fb2737463c in (anonymous namespace)::DummyAliasOperationPrinter::printRegion(mlir::Region&, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:674:5 #24 0x55fb27468075 in mlir::ModuleOp::print(mlir::OpAsmPrinter&) /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/tools/mlir/include/mlir/IR/BuiltinOps.cpp.inc:280:15 #25 0x55fb2746c295 in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/OpDefinition.h:1823:39 #26 0x55fb2746c295 in void llvm::detail::UniqueFunctionBase<void, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef>::CallImpl<mlir::Op<mlir::ModuleOp, mlir::OpTrait::OneRegion, mlir::OpTrait::ZeroResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::ZeroOperands, mlir::OpTrait::NoRegionArguments, mlir::OpTrait::NoTerminator, mlir::OpTrait::SingleBlock, mlir::OpTrait::OpInvariants, mlir::OpTrait::AffineScope, mlir::OpTrait::IsIsolatedFromAbove, mlir::OpTrait::SymbolTable, mlir::SymbolOpInterface::Trait, mlir::OpAsmOpInterface::Trait, mlir::RegionKindInterface::Trait, mlir::OpTrait::HasOnlyGraphRegion>::getPrintAssemblyFn()::'lambda'(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) const>(void*, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:221:12 #27 0x55fb27363938 in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:409:12 #28 0x55fb27363938 in printAssembly /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/OperationSupport.h:300:12 #29 0x55fb27363938 in printCustomOrGenericOp /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:608:17 #30 0x55fb27363938 in initialize /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:991:16 #31 0x55fb27363938 in initialize /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:1118:15 #32 0x55fb27363938 in mlir::detail::AsmStateImpl::initializeAliases(mlir::Operation*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:1698:16 #33 0x55fb27360349 in mlir::Operation::print(llvm::raw_ostream&, mlir::AsmState&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:3665:21 #34 0x55fb27187652 in performActions(llvm::raw_ostream&, bool, bool, std::__1::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:102:15 #35 0x55fb27186576 in processBuffer /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:139:12 #36 0x55fb27186576 in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:181:12 #37 0x55fb27186576 in mlir::LogicalResult llvm::function_ref<mlir::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>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool)::$_0>(long, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:12 #38 0x55fb2730fea5 in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12 #39 0x55fb2730fea5 in mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool)::$_0::operator()(llvm::StringRef) const /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:88:16 #40 0x55fb2730ec46 in interleave<const llvm::StringRef *, (lambda at /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:81:23), (lambda at /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2084:43), void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2066:5 #41 0x55fb2730ec46 in interleave<llvm::SmallVector<llvm::StringRef, 8U>, (lambda at /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:81:23), llvm::raw_ostream, llvm::StringRef> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/STLExtras.h:2084:3 #42 0x55fb2730ec46 in mlir::splitAndProcessBuffer(std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Support/ToolUtilities.cpp:91:3 #43 0x55fb27180455 in mlir::MlirOptMain(llvm::raw_ostream&, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<mlir::LogicalResult (mlir::PassManager&)>, mlir::DialectRegistry&, bool, bool, bool, bool, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:186:10 #44 0x55fb2718184f in MlirOptMain /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:209:10 #45 0x55fb2718184f in mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:306:14 #46 0x55fb227222cf in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:250:7 #47 0x7f8470603d8f (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d) #48 0x7f8470603e3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d) #49 0x55fb2266b7a4 in _start (/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/mlir-opt+0x61de7a4) Address 0x7f846e94ecc1 is located in stack of thread T0 at offset 193 in frame #0 0x55fb23bc5a8f in printShortForm(mlir::OpAsmPrinter&, mlir::Operation*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:1090 This frame has 5 object(s): [32, 40) 'ref.tmp.i' [64, 128) 'elidedAttrs' (line 1091) [160, 168) 'fastAttr' (line 1094) [192, 216) 'ref.tmp19' (line 1096) <== Memory access at offset 193 is inside this variable [256, 264) 'ref.tmp20' (line 1096) HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork (longjmp and C++ exceptions *are* supported) SUMMARY: AddressSanitizer: stack-use-after-scope /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:162:3 in fetch32 Shadow bytes around the buggy address: 0x0ff10dd21d40: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 0x0ff10dd21d50: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 0x0ff10dd21d60: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 0x0ff10dd21d70: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 0x0ff10dd21d80: f1 f1 f1 f1 f8 f2 f2 f2 00 00 00 00 00 00 00 00 =>0x0ff10dd21d90: f2 f2 f2 f2 f8 f2 f2 f2[f8]f8 f8 f2 f2 f2 f2 f2 0x0ff10dd21da0: f8 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 0x0ff10dd21db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ff10dd21dc0: f1 f1 f1 f1 f8 f2 f2 f2 00 f2 f2 f2 00 00 00 00 0x0ff10dd21dd0: 00 00 00 00 00 00 f2 f2 f2 f2 f8 f8 f2 f2 f8 f3 0x0ff10dd21de0: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==3890072==ABORTING
******************** Testing: 0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90 FAIL: MLIR :: Dialect/Linalg/roundtrip.mlir (67927 of 70766) ******************** TEST 'MLIR :: Dialect/Linalg/roundtrip.mlir' FAILED ******************** Script: -- : 'RUN: at line 1'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/roundtrip.mlir | /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/mlir-opt | /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/roundtrip.mlir : 'RUN: at line 2'; /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/mlir-opt /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/roundtrip.mlir --mlir-print-op-generic | /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/mlir-opt | /b/sanitizer-x86_64-linux-fast/build/llvm_build_msan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/test/Dialect/Linalg/roundtrip.mlir -- Exit Code: 1 Command Output (stderr): -- ==1478479==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x5643d04a0118 in llvm::hashing::detail::hash_short(char const*, unsigned long, unsigned long) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:262:1 #1 0x5643d049f1cd in std::__1::enable_if<is_hashable_data<char const>::value, llvm::hash_code>::type llvm::hashing::detail::hash_combine_range_impl<char const>(char const*, char const*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:460:12 #2 0x5643d049d562 in hash_combine_range<const char *> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/Hashing.h:487:10 #3 0x5643d049d562 in hash_value /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/StringRef.cpp:617:10 #4 0x5643d049d562 in llvm::DenseMapInfo<llvm::StringRef, void>::getHashValue(llvm::StringRef) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/StringRef.cpp:625:21 #5 0x5643d465c78a in getHashValue /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:445:12 #6 0x5643d465c78a in bool llvm::DenseMapBase<llvm::SmallDenseMap<llvm::StringRef, llvm::detail::DenseSetEmpty, 4u, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseSetPair<llvm::StringRef>>, llvm::StringRef, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::StringRef, void>, llvm::detail::DenseSetPair<llvm::StringRef>>::LookupBucketFor<llvm::StringRef>(llvm::StringRef const&, llvm::detail::DenseSetPair<llvm::StringRef> const*&) const /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:626:25 #7 0x5643d4664642 in LookupBucketFor<llvm::StringRef> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:662:9 #8 0x5643d4664642 in try_emplace<llvm::detail::DenseSetEmpty &> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseMap.h:249:9 #9 0x5643d4664642 in insert /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:208:19 #10 0x5643d4664642 in insert<const llvm::StringRef *> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:232:7 #11 0x5643d4664642 in DenseSetImpl<const llvm::StringRef *> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:72:5 #12 0x5643d4664642 in DenseSetImpl /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/DenseSet.h:297:16 #13 0x5643d4664642 in (anonymous namespace)::DummyAliasOperationPrinter::printOptionalAttrDict(llvm::ArrayRef<mlir::NamedAttribute>, llvm::ArrayRef<llvm::StringRef>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:721:36 #14 0x5643d15c0864 in printShortForm(mlir::OpAsmPrinter&, mlir::Operation*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:1100:5 #15 0x5643d15c0c67 in mlir::linalg::MapOp::print(mlir::OpAsmPrinter&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp:1108:5 #16 0x5643d1498d1c in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/OpDefinition.h:1823:39 #17 0x5643d1498d1c in void llvm::detail::UniqueFunctionBase<void, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef>::CallImpl<mlir::Op<mlir::linalg::MapOp, mlir::OpTrait::OneRegion, mlir::OpTrait::VariadicResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::AtLeastNOperands<1u>::Impl, mlir::OpTrait::SingleBlockImplicitTerminator<mlir::linalg::YieldOp>::Impl, mlir::OpTrait::OpInvariants, mlir::MemoryEffectOpInterface::Trait, mlir::DestinationStyleOpInterface::Trait, mlir::linalg::LinalgOp::Trait, mlir::RegionBranchOpInterface::Trait, mlir::ReifyRankedShapedTypeOpInterface::Trait, mlir::OpAsmOpInterface::Trait>::getPrintAssemblyFn()::'lambda'(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) const>(void*, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:221:12 #18 0x5643d466b350 in (anonymous namespace)::DummyAliasOperationPrinter::print(mlir::Block*, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:663:7 #19 0x5643d46654ab in (anonymous namespace)::DummyAliasOperationPrinter::printRegion(mlir::Region&, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/AsmPrinter.cpp:674:5 #20 0x5643d47eda14 in mlir::function_interface_impl::printFunctionOp(mlir::OpAsmPrinter&, mlir::FunctionOpInterface, bool, llvm::StringRef, mlir::StringAttr, mlir::StringAttr) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/IR/FunctionImplementation.cpp:337:7 #21 0x5643d0d6d387 in mlir::func::FuncOp::print(mlir::OpAsmPrinter&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/lib/Dialect/Func/IR/FuncOps.cpp:272:3 #22 0x5643d0d8230c in operator() /b/sanitizer-x86_64-linux-fast/build/llvm-project/mlir/include/mlir/IR/OpDefinition.h:1823:39 #23 0x5643d0d8230c in void llvm::detail::UniqueFunctionBase<void, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef>::CallImpl<mlir::Op<mlir::func::FuncOp, mlir::OpTrait::OneRegion, mlir::OpTrait::ZeroResults, mlir::OpTrait::ZeroSuccessors, mlir::OpTrait::ZeroOperands, mlir::OpTrait::OpInvariants, mlir::OpTrait::AffineScope, mlir::OpTrait::AutomaticAllocationScope, mlir::CallableOpInterface::Trait, mlir::FunctionOpInterface::Trait, mlir::OpTrait::IsIsolatedFromAbove, mlir::OpAsmOpInterface::Trait, mlir::SymbolOpInterface::Trait>::getPrintAssemblyFn()::'lambda'(mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) const>(void*, mlir::Operation*, mlir::OpAsmPrinter&, llvm::StringRef) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/FunctionExtras.h:221:12
static