[PATCH] D80330: [BitcodeReader] Fix DelayedShuffle handling for ConstantExpr shuffles.

Matt Morehouse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 1 10:15:51 PDT 2020


morehouse added a comment.

Still memory leaks:  http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/43341

  FAIL: LLVM :: Bitcode/vscale-shuffle.ll (6510 of 38183)
  ******************** TEST 'LLVM :: Bitcode/vscale-shuffle.ll' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/vscale-shuffle.ll | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -disable-output
  : 'RUN: at line 2';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/verify-uselistorder < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/vscale-shuffle.ll
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  
  =================================================================
  ==42464==ERROR: LeakSanitizer: detected memory leaks
  
  Direct leak of 64 byte(s) in 1 object(s) allocated from:
      #0 0x4cbc2d in malloc /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cpp:145:3
      #1 0xbeea32 in safe_malloc /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/MemAlloc.h:26:18
      #2 0xbeea32 in llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/SmallVector.cpp:68:15
      #3 0x8736f2 in grow_pod /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:119:11
      #4 0x8736f2 in grow /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:345:41
      #5 0x8736f2 in append<const int *, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:436:13
      #6 0x8736f2 in assign<const int *, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:472:5
      #7 0x8736f2 in llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(llvm::Constant*, llvm::Constant*, llvm::ArrayRef<int>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:159:17
      #8 0x87136c in llvm::ConstantExprKeyType::create(llvm::Type*) const /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:582:18
      #9 0x84ec5c in create /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:672:31
      #10 0x84ec5c in llvm::ConstantUniqueMap<llvm::ConstantExpr>::getOrCreate(llvm::Type*, llvm::ConstantExprKeyType) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:691:16
      #11 0x841827 in llvm::ConstantExpr::getShuffleVector(llvm::Constant*, llvm::Constant*, llvm::ArrayRef<int>, llvm::Type*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/Constants.cpp:2390:31
      #12 0x554a79 in llvm::LLParser::ParseValID(llvm::ValID&, llvm::LLParser::PerFunctionState*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:3717:24
      #13 0x59cb21 in llvm::LLParser::ParseValue(llvm::Type*, llvm::Value*&, llvm::LLParser::PerFunctionState*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:5395:10
      #14 0x56e78e in ParseValue /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.h:467:14
      #15 0x56e78e in llvm::LLParser::ParseParameterList(llvm::SmallVectorImpl<llvm::LLParser::ParamInfo>&, llvm::LLParser::PerFunctionState&, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:2533:48
      #16 0x5b6b1e in llvm::LLParser::ParseCall(llvm::Instruction*&, llvm::LLParser::PerFunctionState&, llvm::CallInst::TailCallKind) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:6911:7
      #17 0x59f3ea in llvm::LLParser::ParseInstruction(llvm::Instruction*&, llvm::BasicBlock*, llvm::LLParser::PerFunctionState&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp
      #18 0x59e378 in llvm::LLParser::ParseBasicBlock(llvm::LLParser::PerFunctionState&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:5771:13
      #19 0x53c00d in llvm::LLParser::ParseFunctionBody(llvm::Function&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:5716:9
      #20 0x528efd in llvm::LLParser::ParseDefine() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:529:10
      #21 0x521855 in llvm::LLParser::ParseTopLevelEntities() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:347:33
      #22 0x521525 in llvm::LLParser::Run(bool, llvm::function_ref<llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (llvm::StringRef)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:80:10
      #23 0x4fc6a4 in parseAssemblyInto(llvm::MemoryBufferRef, llvm::Module*, llvm::ModuleSummaryIndex*, llvm::SMDiagnostic&, llvm::SlotMapping*, bool, llvm::function_ref<llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (llvm::StringRef)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:36:8
      #24 0x4fd609 in parseAssemblyWithIndex(llvm::MemoryBufferRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, bool, llvm::function_ref<llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (llvm::StringRef)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:85:7
      #25 0x4fde4f in parseAssemblyFileWithIndex(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, bool, llvm::function_ref<llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (llvm::StringRef)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:114:10
      #26 0x4fd92f in llvm::parseAssemblyFileWithIndex(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, llvm::function_ref<llvm::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > (llvm::StringRef)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:123:10
      #27 0x4f88f4 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/llvm-as/llvm-as.cpp:134:22
      #28 0x7fd933d4509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
  
  SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).
  
  =================================================================
  ==42465==ERROR: LeakSanitizer: detected memory leaks
  
  Direct leak of 64 byte(s) in 1 object(s) allocated from:
      #0 0x4ab46d in malloc /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cpp:145:3
      #1 0xa27f62 in safe_malloc /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/MemAlloc.h:26:18
      #2 0xa27f62 in llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/SmallVector.cpp:68:15
      #3 0x720ac2 in grow_pod /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:119:11
      #4 0x720ac2 in grow /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:345:41
      #5 0x720ac2 in append<const int *, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:436:13
      #6 0x720ac2 in assign<const int *, void> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/SmallVector.h:472:5
      #7 0x720ac2 in llvm::ShuffleVectorConstantExpr::ShuffleVectorConstantExpr(llvm::Constant*, llvm::Constant*, llvm::ArrayRef<int>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:159:17
      #8 0x71e73c in llvm::ConstantExprKeyType::create(llvm::Type*) const /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:582:18
      #9 0x6fc45c in create /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:672:31
      #10 0x6fc45c in llvm::ConstantUniqueMap<llvm::ConstantExpr>::getOrCreate(llvm::Type*, llvm::ConstantExprKeyType) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ConstantsContext.h:691:16
      #11 0x6ef607 in llvm::ConstantExpr::getShuffleVector(llvm::Constant*, llvm::Constant*, llvm::ArrayRef<int>, llvm::Type*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/Constants.cpp:2390:31
      #12 0x536cbf in (anonymous namespace)::BitcodeReader::parseConstants() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2374:20
      #13 0x5086bc in (anonymous namespace)::BitcodeReader::parseFunctionBody(llvm::Function*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:3822:25
      #14 0x4ffecb in (anonymous namespace)::BitcodeReader::materialize(llvm::GlobalValue*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:5347:19
      #15 0x502606 in (anonymous namespace)::BitcodeReader::materializeModule() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:5405:21
      #16 0x845dc7 in llvm::Module::materializeAll() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/Module.cpp:449:13
      #17 0x4d8ebe in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/llvm-dis/llvm-dis.cpp:176:20
      #18 0x7ffb42ae009a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
  
  SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80330/new/

https://reviews.llvm.org/D80330





More information about the llvm-commits mailing list