[PATCH] D116964: [NFC][MLGO] Use LazyCallGraph::Node to track functions.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 12 09:46:04 PST 2022


fhahn added a comment.

It looks like this commit may be causing sanitizer errors in the inliner. They started with this commit: https://lab.llvm.org/buildbot/#/builders/5/builds/17176

  ********************
  Testing:  0.. 10.. 20.. 30.. 40.. 50.. 60.. 70..
  FAIL: LLVM :: Transforms/Inline/nested-inline.ll (63479 of 81196)
  ******************** TEST 'LLVM :: Transforms/Inline/nested-inline.ll' FAILED ********************
  Script:
  --
  : 'RUN: at line 1';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/Inline/nested-inline.ll -inline -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/Inline/nested-inline.ll
  : 'RUN: at line 2';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/Inline/nested-inline.ll -passes='cgscc(inline)' -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/Inline/nested-inline.ll
  : 'RUN: at line 3';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/Inline/nested-inline.ll -passes='module-inline' -S | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Transforms/Inline/nested-inline.ll
  --
  Exit Code: 1
  Command Output (stderr):
  --
  =================================================================
  ==52172==ERROR: LeakSanitizer: detected memory leaks
  Direct leak of 41 byte(s) in 2 object(s) allocated from:
      #0 0x51ccc8d in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:95:3
      #1 0xb01dfcc in Allocate /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/AllocatorBase.h:85:12
      #2 0xb01dfcc in allocateWithKey<llvm::MallocAllocator> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/StringMapEntry.h:50:32
      #3 0xb01dfcc in Create<llvm::MallocAllocator> /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/StringMapEntry.h:122:17
      #4 0xb01dfcc in llvm::Value::setNameImpl(llvm::Twine const&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/Value.cpp:356:18
      #5 0xb01e3bd in llvm::Value::setName(llvm::Twine const&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/Value.cpp:377:3
      #6 0xadeecd9 in GlobalValue /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/GlobalValue.h:85:5
      #7 0xadeecd9 in GlobalObject /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/GlobalObject.h:46:9
      #8 0xadeecd9 in llvm::Function::Function(llvm::FunctionType*, llvm::GlobalValue::LinkageTypes, unsigned int, llvm::Twine const&, llvm::Module*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/Function.cpp:383:7
      #9 0x99928d4 in Create /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/Function.h:142:16
      #10 0x99928d4 in llvm::LLParser::parseFunctionHeader(llvm::Function*&, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:5644:8
      #11 0x9985a96 in llvm::LLParser::parseDefine() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:540:10
      #12 0x997dca8 in llvm::LLParser::parseTopLevelEntities() /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:352:11
      #13 0x997d8eb 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:81:10
      #14 0x9963a0c 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
      #15 0x9963dd6 in parseAssemblyInto /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:43:10
      #16 0x9963dd6 in llvm::parseAssembly(llvm::MemoryBufferRef, 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:54:7
      #17 0xb7db7f8 in llvm::parseIR(llvm::MemoryBufferRef, llvm::SMDiagnostic&, llvm::LLVMContext&, 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/IRReader/IRReader.cpp:88:10
      #18 0xb7dcaee in llvm::parseIRFile(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, 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/IRReader/IRReader.cpp:102:10
      #19 0x5227789 in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:628:9
      #20 0x7f853d78209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) (BuildId: 18b9a9a8c523e5cfe5b5d946d605d09242f09798)
  Indirect leak of 780 byte(s) in 1 object(s) allocated from:
      #0 0x51922a8 in calloc /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cpp:77:3
      #1 0xc9aa451 in llvm::safe_calloc(unsigned long, unsigned long) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/Support/MemAlloc.h:40:18
      #2 0xc9ab9ad in llvm::StringMapImpl::RehashTable(unsigned int) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Support/StringMap.cpp:219:59
      #3 0xb02ef01 in insert /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/StringMap.h:286:5
      #4 0xb02ef01 in llvm::ValueSymbolTable::reinsertValue(llvm::Value*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/ValueSymbolTable.cpp:76:12
      #5 0xab97270 in void llvm::SymbolTableListTraits<llvm::Instruction>::setSymTabObject<llvm::Function*>(llvm::Function**, llvm::Function*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/SymbolTableListTraitsImpl.h:62:16
      #6 0xade9c59 in llvm::SymbolTableListTraits<llvm::BasicBlock>::addNodeToList(llvm::BasicBlock*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/SymbolTableListTraitsImpl.h:71:6
      #7 0xcb87e64 in insert /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ilist.h:229:11
      #8 0xcb87e64 in push_back /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/ADT/ilist.h:313:33
      #9 0xcb87e64 in llvm::CloneAndPruneIntoFromInst(llvm::Function*, llvm::Function const*, llvm::Instruction const*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >&, bool, llvm::SmallVectorImpl<llvm::ReturnInst*>&, char const*, llvm::ClonedCodeInfo*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/CloneFunction.cpp:548:34
      #10 0xcb94c99 in llvm::CloneAndPruneFunctionInto(llvm::Function*, llvm::Function const*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex<false> > >&, bool, llvm::SmallVectorImpl<llvm::ReturnInst*>&, char const*, llvm::ClonedCodeInfo*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/CloneFunction.cpp:782:3
      #11 0xcc66eda in llvm::InlineFunction(llvm::CallBase&, llvm::InlineFunctionInfo&, llvm::AAResults*, bool, llvm::Function*) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/Utils/InlineFunction.cpp:1949:5
      #12 0xd4f9e97 in llvm::ModuleInlinerPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Transforms/IPO/ModuleInliner.cpp:252:11
      #13 0xd43c4f1 in llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:88:17
      #14 0xafaf29a in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/include/llvm/IR/PassManager.h:525:21
      #15 0x51e2b4e in llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/NewPMDriver.cpp:487:7
      #16 0x522d67a in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:818:12
      #17 0x7f853d78209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a) (BuildId: 18b9a9a8c523e5cfe5b5d946d605d09242f09798)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D116964



More information about the llvm-commits mailing list