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 | |
| 1049 | 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 | ||
|---|---|---|
| 1049 | Because I want to have access to OperationName outside of this if clause. | |
| mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
|---|---|---|
| 1091 | unused | |
| mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | ||
|---|---|---|
| 1261–1262 | 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