Skip to content

ICE building llvm-gcc-4.2 - invalid free in PassManager #2023

@llvmbot

Description

@llvmbot
Bugzilla Link 1651
Resolution FIXED
Resolved on Mar 06, 2010 13:59
Version unspecified
OS Linux
Reporter LLVM Bugzilla Contributor
CC @asl

Extended Description

(this is my first bug report here, so please be gentle ;) )

While compiling llvm-gcc-4.2 on Linux/x86 (Fedora Core 4, 32-bit), I ran into an ICE during stage1.

More specifically, the following command fails:

/work/LLVM/llvm-gcc-4.2-obj/./gcc/xgcc -B/work/LLVM/llvm-gcc-4.2-obj/./gcc/ -B/work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/bin/ -B/work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/lib/ -isystem /work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/include -isystem /work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -I. -I. -I../../llvm-gcc-4.2/gcc -I../../llvm-gcc-4.2/gcc/. -I../../llvm-gcc-4.2/gcc/../include -I../../llvm-gcc-4.2/gcc/../libcpp/include -I../../llvm-gcc-4.2/gcc/../libdecnumber -I../libdecnumber -I/home/kehoste/work/LLVM/llvm/include -I/work/LLVM/llvm-obj/include -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-omit-frame-pointer
-c ../../llvm-gcc-4.2/gcc/crtstuff.c -DCRT_BEGIN
-o crtbegin.o

with

../../llvm-gcc-4.2/gcc/crtstuff.c:1: internal compiler error: Aborted

Running valgrind on it produces the output below. It seems the call to 'erase' at llvm::PMDataManager::removeNotPreservedAnalysis(llvm::Pass*) (PassManager.cpp:628) is the cause of this?

==20768== Memcheck, a memory error detector for x86-linux.
==20768== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==20768== Using valgrind-2.4.0, a program supervision framework for x86-linux.
==20768== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==20768== For more details, rerun with: -v
==20768==
ignoring nonexistent directory "/work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/include"
ignoring nonexistent directory "/work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/sys-include"
ignoring duplicate directory "./include"
ignoring nonexistent directory "/home/kehoste/work/LLVM/llvm-gcc-4.2-obj/gcc/../lib/gcc/i686-pc-linux-gnu/4.2.1/include"
ignoring nonexistent directory "/home/kehoste/work/LLVM/llvm-gcc-4.2-obj/gcc/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/include"
ignoring nonexistent directory "/work/LLVM/llvm-gcc-4.2-bin/include"
ignoring nonexistent directory "/work/LLVM/llvm-gcc-4.2-bin/lib/gcc/i686-pc-linux-gnu/4.2.1/include"
ignoring nonexistent directory "/work/LLVM/llvm-gcc-4.2-bin/i686-pc-linux-gnu/include"
ignoring duplicate directory "."
ignoring duplicate directory "../../llvm-gcc-4.2/gcc/."
#include "..." search starts here:
#include <...> search starts here:
.
../../llvm-gcc-4.2/gcc
../../llvm-gcc-4.2/gcc/../include
../../llvm-gcc-4.2/gcc/../libcpp/include
../../llvm-gcc-4.2/gcc/../libdecnumber
../libdecnumber
/home/kehoste/work/LLVM/llvm/include
/work/LLVM/llvm-obj/include
/work/LLVM/llvm-gcc-4.2-obj/./gcc/include
/usr/local/include
/usr/include
End of search list.
GNU C version 4.2.1(llvm) (Based on Apple Inc. build 5530) (i686-pc-linux-gnu)
compiled by GNU C version 4.2.0.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=8192
Compiler executable checksum: 67319a9093bf38f24f1a85fc8270533a
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862B67A: _ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKPKN4llvm8PassInfoEPNS3_4PassEEEE10deallocateEPSB_j (new_allocator.h:97)
==20768== by 0x862B69F: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_put_node(std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:371)
==20768== by 0x8C64703: std::_Rb_tree<llvm::PassInfo const
, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::destroy_node(std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:390)
==20768== by 0x8D14000: std::_Rb_tree<llvm::PassInfo const
, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::erase(std::_Rb_tree_iterator<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:1034)
==20768== by 0x8D1402B: _ZNSt3mapIPKN4llvm8PassInfoEPNS0_4PassESt4lessIS3_ESaISt4pairIKS3_S5_EEE5eraseESt17_Rb_tree_iteratorISA_E (stl_map.h:410)
==20768== by 0x8D0DB85: llvm::PMDataManager::removeNotPreservedAnalysis(llvm::Pass*) (PassManager.cpp:628)
==20768== by 0x8D1015B: llvm::PMDataManager::add(llvm::Pass*, bool) (PassManager.cpp:749)
==20768== by 0x8D10692: llvm::FunctionPass::assignPassManager(llvm::PMStack&, llvm::PassManagerType) (PassManager.cpp:1487)
==20768== by 0x8D190D4: llvm::FunctionPassManagerImpl::addTopLevelPass(llvm::Pass*) (PassManager.cpp:164)
==20768== by 0x8D0E1C6: llvm::PMTopLevelManager::schedulePass(llvm::Pass*) (PassManager.cpp:445)
==20768== by 0x8D14ADD: llvm::FunctionPassManagerImpl::add(llvm::Pass*) (PassManager.cpp:132)
==20768== Address 0x1BA686A8 is 3896 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8D0B234: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, llvm::PassInfo*> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8D0B25B: std::_Rb_tree<int, std::pair<int const, llvm::PassInfo*>, std::_Select1st<std::pair<int const, llvm::PassInfo*> >, std::less, std::allocator<std::pair<int const, llvm::PassInfo*> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8D0B273: std::_Rb_tree<int, std::pair<int const, llvm::PassInfo*>, std::_Select1st<std::pair<int const, llvm::PassInfo*> >, std::less, std::allocator<std::pair<int const, llvm::PassInfo*> > >::_M_create_node(std::pair<int const, llvm::PassInfo*> const&) (stl_tree.h:365)
==20768== by 0x8D0B330: ZNSt8_Rb_treeIiSt4pairIKiPN4llvm8PassInfoEESt10_Select1stIS5_ESt4lessIiESaIS5_EE9_M_insertEPSt18_Rb_tree_node_baseSD_RKS5 (stl_tree.h:794)
==20768== by 0x8D0B487: std::_Rb_tree<int, std::pair<int const, llvm::PassInfo*>, std::_Select1st<std::pair<int const, llvm::PassInfo*> >, std::less, std::allocator<std::pair<int const, llvm::PassInfo*> > >::insert_unique(std::pair<int const, llvm::PassInfo*> const&) (stl_tree.h:883)
==20768== by 0x8D0B572: std::map<int, llvm::PassInfo*, std::less, std::allocator<std::pair<int const, llvm::PassInfo*> > >::insert(std::pair<int const, llvm::PassInfo*> const&) (stl_map.h:360)
==20768== by 0x8D0B5E3: (anonymous namespace)::PassRegistrar::RegisterPass(llvm::PassInfo&) (Pass.cpp:157)
==20768== by 0x8D082C2: llvm::RegisterPassBase::registerPass() (Pass.cpp:221)
==20768== by 0x8647CF8: llvm::RegisterPassBase::RegisterPassBase(char const*, char const*, int, llvm::Pass* ()(), bool) (PassSupport.h:145)
==20768== by 0x8D3CBE5: llvm::RegisterPass<(anonymous namespace)::Verifier>::RegisterPass(char const
, char const*, bool) (PassSupport.h:169)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862B67A: _ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKPKN4llvm8PassInfoEPNS3_4PassEEEE10deallocateEPSB_j (new_allocator.h:97)
==20768== by 0x862B69F: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_put_node(std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:371)
==20768== by 0x862B6EF: std::_Rb_tree<llvm::PassInfo const
, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:401)
==20768== by 0x862B737: std::_Rb_tree<llvm::PassInfo const
, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_erase(std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:1325)
==20768== by 0x862B717: std::_Rb_tree<llvm::PassInfo const
, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_erase(std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >) (stl_tree.h:1323)
==20768== by 0x862B766: std::_Rb_tree<llvm::PassInfo const
, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::clear() (stl_tree.h:711)
==20768== by 0x862B7CC: std::map<llvm::PassInfo const*, llvm::Pass*, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::clear() (stl_map.h:509)
==20768== by 0x862B7E3: llvm::PMDataManager::initializeAnalysisInfo() (PassManagers.h:242)
==20768== by 0x8D0D975: llvm::PMStack::pop() (PassManager.cpp:1388)
==20768== by 0x8D10218: llvm::ModulePass::assignPassManager(llvm::PMStack&, llvm::PassManagerType) (PassManager.cpp:1437)
==20768== by 0x8D18FEE: llvm::PassManagerImpl::addTopLevelPass(llvm::Pass*) (PassManager.cpp:294)
==20768== Address 0x1BAA8A68 is 736 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8D5F1FC: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<std::string const, llvm::cl::Option*> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8D5F223: std::_Rb_tree<std::string, std::pair<std::string const, llvm::cl::Option*>, std::_Select1st<std::pair<std::string const, llvm::cl::Option*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::cl::Option*> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8D5F23B: std::_Rb_tree<std::string, std::pair<std::string const, llvm::cl::Option*>, std::_Select1st<std::pair<std::string const, llvm::cl::Option*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::cl::Option*> > >::_M_create_node(std::pair<std::string const, llvm::cl::Option*> const&) (stl_tree.h:365)
==20768== by 0x8D5F2F8: ZNSt8_Rb_treeISsSt4pairIKSsPN4llvm2cl6OptionEESt10_Select1stIS6_ESt4lessISsESaIS6_EE9_M_insertEPSt18_Rb_tree_node_baseSE_RKS6 (stl_tree.h:794)
==20768== by 0x8D5F4D8: std::_Rb_tree<std::string, std::pair<std::string const, llvm::cl::Option*>, std::_Select1st<std::pair<std::string const, llvm::cl::Option*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::cl::Option*> > >::insert_unique(std::pair<std::string const, llvm::cl::Option*> const&) (stl_tree.h:887)
==20768== by 0x8D5F53A: std::map<std::string, llvm::cl::Option*, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::cl::Option*> > >::insert(std::pair<std::string const, llvm::cl::Option*> const&) (stl_map.h:360)
==20768== by 0x8D57A9F: GetOptionInfo(std::vector<llvm::cl::Option*, std::allocatorllvm::cl::Option* >&, std::map<std::string, llvm::cl::Option*, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::cl::Option*> > >&) (CommandLine.cpp:116)
==20768== by 0x8D57D0F: llvm::cl::ParseCommandLineOptions(int&, char**, char const*) (CommandLine.cpp:340)
==20768== by 0x860C771: llvm_initialize_backend (llvm-backend.cpp:143)
==20768== by 0x85667B4: backend_init (toplev.c:2089)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862B900: _ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKPN4llvm10BasicBlockEPNS3_4LoopEEEE10deallocateEPSA_j (new_allocator.h:97)
==20768== by 0x862B925: std::_Rb_tree<llvm::BasicBlock*, std::pair<llvm::BasicBlock* const, llvm::Loop*>, std::_Select1st<std::pair<llvm::BasicBlock* const, llvm::Loop*> >, std::lessllvm::BasicBlock*, std::allocator<std::pair<llvm::BasicBlock* const, llvm::Loop*> > >::_M_put_node(std::_Rb_tree_node<std::pair<llvm::BasicBlock* const, llvm::Loop*> >) (stl_tree.h:371)
==20768== by 0x862B975: std::_Rb_tree<llvm::BasicBlock
, std::pair<llvm::BasicBlock* const, llvm::Loop*>, std::_Select1st<std::pair<llvm::BasicBlock* const, llvm::Loop*> >, std::lessllvm::BasicBlock*, std::allocator<std::pair<llvm::BasicBlock* const, llvm::Loop*> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<llvm::BasicBlock* const, llvm::Loop*> >) (stl_tree.h:401)
==20768== by 0x862B9BD: std::_Rb_tree<llvm::BasicBlock
, std::pair<llvm::BasicBlock* const, llvm::Loop*>, std::_Select1st<std::pair<llvm::BasicBlock* const, llvm::Loop*> >, std::lessllvm::BasicBlock*, std::allocator<std::pair<llvm::BasicBlock* const, llvm::Loop*> > >::_M_erase(std::_Rb_tree_node<std::pair<llvm::BasicBlock* const, llvm::Loop*> >) (stl_tree.h:1325)
==20768== by 0x862B99D: std::_Rb_tree<llvm::BasicBlock
, std::pair<llvm::BasicBlock* const, llvm::Loop*>, std::_Select1st<std::pair<llvm::BasicBlock* const, llvm::Loop*> >, std::lessllvm::BasicBlock*, std::allocator<std::pair<llvm::BasicBlock* const, llvm::Loop*> > >::_M_erase(std::_Rb_tree_node<std::pair<llvm::BasicBlock* const, llvm::Loop*> >) (stl_tree.h:1323)
==20768== by 0x8C7A972: std::_Rb_tree<llvm::BasicBlock
, std::pair<llvm::BasicBlock* const, llvm::Loop*>, std::_Select1st<std::pair<llvm::BasicBlock* const, llvm::Loop*> >, std::lessllvm::BasicBlock*, std::allocator<std::pair<llvm::BasicBlock* const, llvm::Loop*> > >::clear() (stl_tree.h:667)
==20768== by 0x8C7A9EB: std::map<llvm::BasicBlock*, llvm::Loop*, std::lessllvm::BasicBlock*, std::allocator<std::pair<llvm::BasicBlock* const, llvm::Loop*> > >::clear() (stl_map.h:465)
==20768== by 0x8C7792C: llvm::LoopInfo::releaseMemory() (LoopInfo.cpp:115)
==20768== by 0x8D0E9AF: llvm::PMDataManager::removeDeadPasses(llvm::Pass*, char const*, llvm::PassDebuggingString) (PassManager.cpp:670)
==20768== by 0x8D0F671: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1178)
==20768== by 0x8D0F727: llvm::FPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1188)
==20768== Address 0x1BB135A0 is 3336 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8CD19E5: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8CD1A0D: std::_Rb_tree<std::pair<llvm::Type const*, char>, std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*>, std::_Select1st<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> >, std::less<std::pair<llvm::Type const*, char> >, std::allocator<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8CD1A25: std::_Rb_tree<std::pair<llvm::Type const*, char>, std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*>, std::_Select1st<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> >, std::less<std::pair<llvm::Type const*, char> >, std::allocator<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> > >::_M_create_node(std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> const&) (stl_tree.h:365)
==20768== by 0x8CD1AE2: ZNSt8_Rb_treeISt4pairIPKN4llvm4TypeEcES0_IKS5_PNS1_8ConstantEESt10_Select1stIS9_ESt4lessIS5_ESaIS9_EE9_M_insertEPSt18_Rb_tree_node_baseSH_RKS9 (stl_tree.h:794)
==20768== by 0x8CD1C39: std::_Rb_tree<std::pair<llvm::Type const*, char>, std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*>, std::_Select1st<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> >, std::less<std::pair<llvm::Type const*, char> >, std::allocator<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> > >::insert_unique(std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> const&) (stl_tree.h:883)
==20768== by 0x8CD1DE1: std::_Rb_tree<std::pair<llvm::Type const*, char>, std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*>, std::_Select1st<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> >, std::less<std::pair<llvm::Type const*, char> >, std::allocator<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> > >::insert_unique(std::_Rb_tree_iterator<std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> >, std::pair<std::pair<llvm::Type const*, char> const, llvm::Constant*> const&) (stl_tree.h:905)
==20768== by 0x8CD2115: ZNSt3mapISt4pairIPKN4llvm4TypeEcEPNS1_8ConstantESt4lessIS5_ESaIS0_IKS5_S7_EEE6insertESt17_Rb_tree_iteratorISB_ERKSB (stl_map.h:384)
==20768== by 0x8CD93EA: llvm::ValueMap<char, llvm::Type, llvm::ConstantAggregateZero, false>::getOrCreate(llvm::Type const*, char const&) (Constants.cpp:825)
==20768== by 0x8CC53AD: llvm::ConstantAggregateZero::get(llvm::Type const*) (Constants.cpp:993)
==20768== by 0x8CC62F9: llvm::Constant::getNullValue(llvm::Type const*) (Constants.cpp:122)
==20768==
==20768== Conditional jump or move depends on uninitialised value(s)
==20768== at 0x8C826E0: llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* >::CopyFrom(llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* > const&) (DenseMap.h:184)
==20768== by 0x8C827E2: llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* >::DenseMap(llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* > const&) (DenseMap.h:63)
==20768== by 0x8C83191: llvm::DenseMap<llvm::Instruction*, llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* >, llvm::DenseMapKeyInfollvm::Instruction* >::InsertIntoBucket(llvm::Instruction* const&, llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* > const&, std::pair<llvm::Instruction*, llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* > >) (DenseMap.h:228)
==20768== by 0x8C831EC: llvm::DenseMap<llvm::Instruction
, llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* >, llvm::DenseMapKeyInfollvm::Instruction* >::operator[](llvm::Instruction* const&) (DenseMap.h:174)
==20768== by 0x8C81A0A: llvm::MemoryDependenceAnalysis::getNonLocalDependency(llvm::Instruction*, llvm::DenseMap<llvm::BasicBlock*, llvm::Value*, llvm::DenseMapKeyInfollvm::BasicBlock* >&) (MemoryDependenceAnalysis.cpp:225)
==20768== by 0x8B8E13B: (anonymous namespace)::GVN::processNonLocalLoad(llvm::LoadInst*, llvm::SmallVector<llvm::Instruction*, 4>&) (GVN.cpp:808)
==20768== by 0x8B8E6D4: (anonymous namespace)::GVN::processLoad(llvm::LoadInst*, llvm::DenseMap<llvm::Value*, llvm::LoadInst*, llvm::DenseMapKeyInfollvm::Value* >&, llvm::SmallVector<llvm::Instruction*, 4>&) (GVN.cpp:880)
==20768== by 0x8B8E8D0: (anonymous namespace)::GVN::processInstruction(llvm::Instruction*, (anonymous namespace)::ValueNumberedSet&, llvm::DenseMap<llvm::Value*, llvm::LoadInst*, llvm::DenseMapKeyInfollvm::Value* >&, llvm::SmallVector<llvm::Instruction*, 4>&) (GVN.cpp:943)
==20768== by 0x8B8ECC9: (anonymous namespace)::GVN::iterateOnFunction(llvm::Function&) (GVN.cpp:1023)
==20768== by 0x8B8EE1B: (anonymous namespace)::GVN::runOnFunction(llvm::Function&) (GVN.cpp:985)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== by 0x8D0F727: llvm::FPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1188)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862D1D6: __gnu_cxx::new_allocatorllvm::SDNode*::deallocate(llvm::SDNode**, unsigned) (new_allocator.h:97)
==20768== by 0x862D200: std::_Vector_base<llvm::SDNode*, std::allocatorllvm::SDNode* >::_M_deallocate(llvm::SDNode**, unsigned) (stl_vector.h:134)
==20768== by 0x8983C61: std::vector<llvm::SDNode*, std::allocatorllvm::SDNode* >::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::SDNode**, std::vector<llvm::SDNode*, std::allocatorllvm::SDNode* > >, llvm::SDNode* const&) (vector.tcc:299)
==20768== by 0x8983D20: std::vector<llvm::SDNode*, std::allocatorllvm::SDNode* >::push_back(llvm::SDNode* const&) (stl_vector.h:610)
==20768== by 0x8AAE317: (anonymous namespace)::DAGCombiner::Run(bool) (DAGCombiner.cpp:546)
==20768== by 0x8AAE98D: llvm::SelectionDAG::Combine(bool, llvm::AliasAnalysis&) (DAGCombiner.cpp:4758)
==20768== by 0x8A5594B: llvm::SelectionDAGISel::CodeGenAndEmitDAG(llvm::SelectionDAG&) (SelectionDAGISel.cpp:4614)
==20768== by 0x8A6B0A3: llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*, llvm::MachineFunction&, llvm::FunctionLoweringInfo&) (SelectionDAGISel.cpp:4651)
==20768== by 0x8A6C6AF: llvm::SelectionDAGISel::runOnFunction(llvm::Function&) (SelectionDAGISel.cpp:4352)
==20768== by 0x897D6A3: (anonymous namespace)::X86DAGToDAGISel::runOnFunction(llvm::Function&) (X86ISelDAGToDAG.cpp:122)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== Address 0x1BAAB478 is 80 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8CB2744: __gnu_cxx::__mt_alloc<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8CB276C: std::_Vector_base<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::_M_allocate(unsigned) (stl_vector.h:117)
==20768== by 0x8CB2E1A: std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > > >, std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> const&) (vector.tcc:275)
==20768== by 0x8CB3072: std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::push_back(std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> const&) (stl_vector.h:610)
==20768== by 0x8CB1A78: llvm::TargetMachineRegistry::getClosestStaticTargetForModule(llvm::Module const&, std::string&) (TargetMachineRegistry.cpp:58)
==20768== by 0x860CA60: llvm_initialize_backend (llvm-backend.cpp:167)
==20768== by 0x85667B4: backend_init (toplev.c:2089)
==20768== by 0x85669AE: do_compile (toplev.c:2252)
==20768== by 0x8566A29: toplev_main (toplev.c:2288)
==20768== by 0x8112BB3: main (llvm-main.cpp:39)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862D1D6: __gnu_cxx::new_allocatorllvm::SDNode*::deallocate(llvm::SDNode**, unsigned) (new_allocator.h:97)
==20768== by 0x862D200: std::_Vector_base<llvm::SDNode*, std::allocatorllvm::SDNode* >::_M_deallocate(llvm::SDNode**, unsigned) (stl_vector.h:134)
==20768== by 0x862D27D: std::_Vector_base<llvm::SDNode*, std::allocatorllvm::SDNode* >::~_Vector_base() (stl_vector.h:120)
==20768== by 0x862D2DF: std::vector<llvm::SDNode*, std::allocatorllvm::SDNode* >::~vector() (stl_vector.h:268)
==20768== by 0x8AAF308: (anonymous namespace)::DAGCombiner::DAGCombiner() (DAGCombiner.cpp:76)
==20768== by 0x8AAE99C: llvm::SelectionDAG::Combine(bool, llvm::AliasAnalysis&) (DAGCombiner.cpp:4758)
==20768== by 0x8A5594B: llvm::SelectionDAGISel::CodeGenAndEmitDAG(llvm::SelectionDAG&) (SelectionDAGISel.cpp:4614)
==20768== by 0x8A6B0A3: llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*, llvm::MachineFunction&, llvm::FunctionLoweringInfo&) (SelectionDAGISel.cpp:4651)
==20768== by 0x8A6C6AF: llvm::SelectionDAGISel::runOnFunction(llvm::Function&) (SelectionDAGISel.cpp:4352)
==20768== by 0x897D6A3: (anonymous namespace)::X86DAGToDAGISel::runOnFunction(llvm::Function&) (X86ISelDAGToDAG.cpp:122)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== Address 0x1BE49B60 is 2936 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8D17FBC: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8D17FE3: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8D17FFB: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_create_node(std::pair<llvm::PassInfo const* const, llvm::Pass*> const&) (stl_tree.h:365)
==20768== by 0x8D180B8: ZNSt8_Rb_treeIPKN4llvm8PassInfoESt4pairIKS3_PNS0_4PassEESt10_Select1stIS8_ESt4lessIS3_ESaIS8_EE9_M_insertEPSt18_Rb_tree_node_baseSG_RKS8 (stl_tree.h:794)
==20768== by 0x8D18515: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::insert_unique(std::_Rb_tree_iterator<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::pair<llvm::PassInfo const* const, llvm::Pass*> const&) (stl_tree.h:921)
==20768== by 0x8D186EB: ZNSt3mapIPKN4llvm8PassInfoEPNS0_4PassESt4lessIS3_ESaISt4pairIKS3_S5_EEE6insertESt17_Rb_tree_iteratorISA_ERKSA (stl_map.h:384)
==20768== by 0x8D187CA: std::map<llvm::PassInfo const*, llvm::Pass*, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::operator[](llvm::PassInfo const* const&) (stl_map.h:339)
==20768== by 0x8D0F0E0: llvm::PMDataManager::recordAvailableAnalysis(llvm::Pass*) (PassManager.cpp:564)
==20768== by 0x8D0F64C: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1177)
==20768== by 0x8D0F727: llvm::FPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1188)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862D064: __gnu_cxx::new_allocatorllvm::SUnit*::deallocate(llvm::SUnit**, unsigned) (new_allocator.h:97)
==20768== by 0x862D08E: std::_Vector_base<llvm::SUnit*, std::allocatorllvm::SUnit* >::_M_deallocate(llvm::SUnit**, unsigned) (stl_vector.h:134)
==20768== by 0x8AE6ABF: std::vector<llvm::SUnit*, std::allocatorllvm::SUnit* >::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::SUnit**, std::vector<llvm::SUnit*, std::allocatorllvm::SUnit* > >, llvm::SUnit* const&) (vector.tcc:299)
==20768== by 0x8AE6B7E: std::vector<llvm::SUnit*, std::allocatorllvm::SUnit* >::push_back(llvm::SUnit* const&) (stl_vector.h:610)
==20768== by 0x8AEB15A: std::priority_queue<llvm::SUnit*, std::vector<llvm::SUnit*, std::allocatorllvm::SUnit* >, (anonymous namespace)::bu_ls_rr_sort>::push(llvm::SUnit* const&) (stl_queue.h:429)
==20768== by 0x8AEB22A: (anonymous namespace)::RegReductionPriorityQueue<(anonymous namespace)::bu_ls_rr_sort>::push(llvm::SUnit*) (ScheduleDAGRRList.cpp:445)
==20768== by 0x8AE8CB8: (anonymous namespace)::ScheduleDAGRRList::ListScheduleBottomUp() (ScheduleDAGRRList.cpp:232)
==20768== by 0x8AE90FB: (anonymous namespace)::ScheduleDAGRRList::Schedule() (ScheduleDAGRRList.cpp:100)
==20768== by 0x8ADDA43: llvm::ScheduleDAG::Run() (ScheduleDAG.cpp:834)
==20768== by 0x8A55B9C: llvm::SelectionDAGISel::ScheduleAndEmitDAG(llvm::SelectionDAG&) (SelectionDAGISel.cpp:4857)
==20768== by 0x8949D0A: (anonymous namespace)::X86DAGToDAGISel::InstructionSelectBasicBlock(llvm::SelectionDAG&) (X86ISelDAGToDAG.cpp:479)
==20768== Address 0x1BAAB528 is 256 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8CB2744: __gnu_cxx::__mt_alloc<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8CB276C: std::_Vector_base<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::_M_allocate(unsigned) (stl_vector.h:117)
==20768== by 0x8CB2E1A: std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > > >, std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> const&) (vector.tcc:275)
==20768== by 0x8CB3072: std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::push_back(std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> const&) (stl_vector.h:610)
==20768== by 0x8CB1A78: llvm::TargetMachineRegistry::getClosestStaticTargetForModule(llvm::Module const&, std::string&) (TargetMachineRegistry.cpp:58)
==20768== by 0x860CA60: llvm_initialize_backend (llvm-backend.cpp:167)
==20768== by 0x85667B4: backend_init (toplev.c:2089)
==20768== by 0x85669AE: do_compile (toplev.c:2252)
==20768== by 0x8566A29: toplev_main (toplev.c:2288)
==20768== by 0x8112BB3: main (llvm-main.cpp:39)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862D064: __gnu_cxx::new_allocatorllvm::SUnit*::deallocate(llvm::SUnit**, unsigned) (new_allocator.h:97)
==20768== by 0x862D08E: std::_Vector_base<llvm::SUnit*, std::allocatorllvm::SUnit* >::_M_deallocate(llvm::SUnit**, unsigned) (stl_vector.h:134)
==20768== by 0x862D10B: std::_Vector_base<llvm::SUnit*, std::allocatorllvm::SUnit* >::
_Vector_base() (stl_vector.h:120)
==20768== by 0x862D16D: std::vector<llvm::SUnit*, std::allocatorllvm::SUnit* >::~vector() (stl_vector.h:268)
==20768== by 0x8AE982F: std::priority_queue<llvm::SUnit*, std::vector<llvm::SUnit*, std::allocatorllvm::SUnit* >, (anonymous namespace)::bu_ls_rr_sort>::~priority_queue() (stl_queue.h:338)
==20768== by 0x8AE98E8: (anonymous namespace)::RegReductionPriorityQueue<(anonymous namespace)::bu_ls_rr_sort>::~RegReductionPriorityQueue() (ScheduleDAGRRList.cpp:398)
==20768== by 0x8AEA4A5: (anonymous namespace)::BURegReductionPriorityQueue<(anonymous namespace)::bu_ls_rr_sort>::~BURegReductionPriorityQueue() (ScheduleDAGRRList.cpp:466)
==20768== by 0x8AE9693: (anonymous namespace)::ScheduleDAGRRList::ScheduleDAGRRList() (ScheduleDAGRRList.cpp:67)
==20768== by 0x8A55BE1: llvm::SelectionDAGISel::ScheduleAndEmitDAG(llvm::SelectionDAG&) (SelectionDAGISel.cpp:4861)
==20768== by 0x8949D0A: (anonymous namespace)::X86DAGToDAGISel::InstructionSelectBasicBlock(llvm::SelectionDAG&) (X86ISelDAGToDAG.cpp:479)
==20768== by 0x8A55A70: llvm::SelectionDAGISel::CodeGenAndEmitDAG(llvm::SelectionDAG&) (SelectionDAGISel.cpp:4633)
==20768== Address 0x1BAAB538 is 272 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8CB2744: __gnu_cxx::__mt_alloc<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8CB276C: std::_Vector_base<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::_M_allocate(unsigned) (stl_vector.h:117)
==20768== by 0x8CB2E1A: std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > > >, std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> const&) (vector.tcc:275)
==20768== by 0x8CB3072: std::vector<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*>, std::allocator<std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> > >::push_back(std::pair<unsigned, llvm::TargetMachineRegistry::Entry const*> const&) (stl_vector.h:610)
==20768== by 0x8CB1A78: llvm::TargetMachineRegistry::getClosestStaticTargetForModule(llvm::Module const&, std::string&) (TargetMachineRegistry.cpp:58)
==20768== by 0x860CA60: llvm_initialize_backend (llvm-backend.cpp:167)
==20768== by 0x85667B4: backend_init (toplev.c:2089)
==20768== by 0x85669AE: do_compile (toplev.c:2252)
==20768== by 0x8566A29: toplev_main (toplev.c:2288)
==20768== by 0x8112BB3: main (llvm-main.cpp:39)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862D4BA: __gnu_cxx::new_allocator<std::_List_node<std::vector<unsigned, std::allocator > > >::deallocate(std::_List_node<std::vector<unsigned, std::allocator > >, unsigned) (new_allocator.h:97)
==20768== by 0x862D4DF: std::_List_base<std::vector<unsigned, std::allocator >, std::allocator<std::vector<unsigned, std::allocator > > >::_M_put_node(std::_List_node<std::vector<unsigned, std::allocator > >
) (stl_list.h:321)
==20768== by 0x862E0C9: std::_List_base<std::vector<unsigned, std::allocator >, std::allocator<std::vector<unsigned, std::allocator > > >::_M_clear() (list.tcc:79)
==20768== by 0x862E108: std::_List_base<std::vector<unsigned, std::allocator >, std::allocator<std::vector<unsigned, std::allocator > > >::
_List_base() (stl_list.h:348)
==20768== by 0x862E126: std::list<std::vector<unsigned, std::allocator >, std::allocator<std::vector<unsigned, std::allocator > > >::~list() (stl_list.h:408)
==20768== by 0x8A39E50: llvm::SelectionDAG::SelectionDAG() (SelectionDAG.cpp:669)
==20768== by 0x8A6B0B5: llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*, llvm::MachineFunction&, llvm::FunctionLoweringInfo&) (SelectionDAGISel.cpp:4651)
==20768== by 0x8A6C6AF: llvm::SelectionDAGISel::runOnFunction(llvm::Function&) (SelectionDAGISel.cpp:4352)
==20768== by 0x897D6A3: (anonymous namespace)::X86DAGToDAGISel::runOnFunction(llvm::Function&) (X86ISelDAGToDAG.cpp:122)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== by 0x8D0F7F0: llvm::FunctionPassManagerImpl::run(llvm::Function&) (PassManager.cpp:1126)
==20768== Address 0x1BE49BB0 is 3016 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8D17FBC: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8D17FE3: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8D17FFB: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::_M_create_node(std::pair<llvm::PassInfo const* const, llvm::Pass*> const&) (stl_tree.h:365)
==20768== by 0x8D180B8: ZNSt8_Rb_treeIPKN4llvm8PassInfoESt4pairIKS3_PNS0_4PassEESt10_Select1stIS8_ESt4lessIS3_ESaIS8_EE9_M_insertEPSt18_Rb_tree_node_baseSG_RKS8 (stl_tree.h:794)
==20768== by 0x8D18515: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, llvm::Pass*>, std::_Select1st<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::insert_unique(std::_Rb_tree_iterator<std::pair<llvm::PassInfo const* const, llvm::Pass*> >, std::pair<llvm::PassInfo const* const, llvm::Pass*> const&) (stl_tree.h:921)
==20768== by 0x8D186EB: ZNSt3mapIPKN4llvm8PassInfoEPNS0_4PassESt4lessIS3_ESaISt4pairIKS3_S5_EEE6insertESt17_Rb_tree_iteratorISA_ERKSA (stl_map.h:384)
==20768== by 0x8D187CA: std::map<llvm::PassInfo const*, llvm::Pass*, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, llvm::Pass*> > >::operator[](llvm::PassInfo const* const&) (stl_map.h:339)
==20768== by 0x8D0F0E0: llvm::PMDataManager::recordAvailableAnalysis(llvm::Pass*) (PassManager.cpp:564)
==20768== by 0x8D0F64C: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1177)
==20768== by 0x8D0F727: llvm::FPPassManager::runOnModule(llvm::Module&) (PassManager.cpp:1188)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862D348: __gnu_cxx::new_allocatorllvm::CondCodeSDNode*::deallocate(llvm::CondCodeSDNode**, unsigned) (new_allocator.h:97)
==20768== by 0x862D372: std::_Vector_base<llvm::CondCodeSDNode*, std::allocatorllvm::CondCodeSDNode* >::_M_deallocate(llvm::CondCodeSDNode**, unsigned) (stl_vector.h:134)
==20768== by 0x862D3EF: std::_Vector_base<llvm::CondCodeSDNode*, std::allocatorllvm::CondCodeSDNode* >::
_Vector_base() (stl_vector.h:120)
==20768== by 0x862D451: std::vector<llvm::CondCodeSDNode*, std::allocatorllvm::CondCodeSDNode* >::~vector() (stl_vector.h:268)
==20768== by 0x8A39E3E: llvm::SelectionDAG::SelectionDAG() (SelectionDAG.cpp:669)
==20768== by 0x8A6B0B5: llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*, llvm::MachineFunction&, llvm::FunctionLoweringInfo&) (SelectionDAGISel.cpp:4651)
==20768== by 0x8A6C6AF: llvm::SelectionDAGISel::runOnFunction(llvm::Function&) (SelectionDAGISel.cpp:4352)
==20768== by 0x897D6A3: (anonymous namespace)::X86DAGToDAGISel::runOnFunction(llvm::Function&) (X86ISelDAGToDAG.cpp:122)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== by 0x8D0F7F0: llvm::FunctionPassManagerImpl::run(llvm::Function&) (PassManager.cpp:1126)
==20768== by 0x8D0F93A: llvm::FunctionPassManager::run(llvm::Function&) (PassManager.cpp:1071)
==20768== Address 0x1BB15B58 is 560 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x88F6186: __gnu_cxx::__mt_alloc<llvm::Instruction*, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x88F61AE: std::_Vector_base<llvm::Instruction*, std::allocatorllvm::Instruction* >::_M_allocate(unsigned) (stl_vector.h:117)
==20768== by 0x88F7C82: std::vector<llvm::Instruction*, std::allocatorllvm::Instruction* >::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::Instruction**, std::vector<llvm::Instruction*, std::allocatorllvm::Instruction* > >, llvm::Instruction* const&) (vector.tcc:275)
==20768== by 0x88F7EDA: std::vector<llvm::Instruction*, std::allocatorllvm::Instruction* >::push_back(llvm::Instruction* const&) (stl_vector.h:610)
==20768== by 0x8BD72E4: (anonymous namespace)::InstCombiner::AddToWorkList(llvm::Instruction*) (InstructionCombining.cpp:86)
==20768== by 0x8BCF6AD: AddReachableCodeToWorklist(llvm::BasicBlock*, llvm::SmallPtrSet<llvm::BasicBlock*, 64>&, (anonymous namespace)::InstCombiner&, llvm::TargetData const*) (InstructionCombining.cpp:9940)
==20768== by 0x8BCFA46: (anonymous namespace)::InstCombiner::DoOneIteration(llvm::Function&, unsigned) (InstructionCombining.cpp:9984)
==20768== by 0x8BD03BA: (anonymous namespace)::InstCombiner::runOnFunction(llvm::Function&) (InstructionCombining.cpp:10143)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== by 0x8D0F7F0: llvm::FunctionPassManagerImpl::run(llvm::Function&) (PassManager.cpp:1126)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862E1A4: __gnu_cxx::new_allocator::deallocate(int*, unsigned) (new_allocator.h:97)
==20768== by 0x862E1CE: std::_Vector_base<int, std::allocator >::_M_deallocate(int*, unsigned) (stl_vector.h:134)
==20768== by 0x862E24B: std::_Vector_base<int, std::allocator >::
_Vector_base() (stl_vector.h:120)
==20768== by 0x862E2AD: std::vector<int, std::allocator >::~vector() (stl_vector.h:268)
==20768== by 0x8B4A247: llvm::IndexedMap<int, llvm::VirtReg2IndexFunctor>::~IndexedMap() (IndexedMap.h:36)
==20768== by 0x8B4DC38: llvm::VirtRegMap::VirtRegMap() (VirtRegMap.h:31)
==20768== by 0x8B4DE76: std::auto_ptrllvm::VirtRegMap::reset(llvm::VirtRegMap*) (memory:333)
==20768== by 0x8B4717C: (anonymous namespace)::RALinScan::runOnMachineFunction(llvm::MachineFunction&) (RegAllocLinearScan.cpp:220)
==20768== by 0x869B117: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (MachineFunctionPass.h:41)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== by 0x8D0F7F0: llvm::FunctionPassManagerImpl::run(llvm::Function&) (PassManager.cpp:1126)
==20768== Address 0x1BA69BF8 is 2248 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8D0BF3E: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8D0BF65: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo>, std::_Select1st<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8D0BF7D: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo>, std::_Select1st<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> > >::_M_create_node(std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> const&) (stl_tree.h:365)
==20768== by 0x8D0C03A: ZNSt8_Rb_treeIPKN4llvm8PassInfoESt4pairIKS3_N77_GLOBAL__N__home_kehoste_work_LLVM_llvm_lib_VMCore_Pass.cpp_00000000_F5B4444913PassRegistrar17AnalysisGroupInfoEESt10_Select1stIS9_ESt4lessIS3_ESaIS9_EE9_M_insertEPSt18_Rb_tree_node_baseSH_RKS9 (stl_tree.h:794)
==20768== by 0x8D0C191: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo>, std::_Select1st<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> > >::insert_unique(std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> const&) (stl_tree.h:883)
==20768== by 0x8D0C339: std::_Rb_tree<llvm::PassInfo const*, std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo>, std::_Select1st<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> >, std::less<llvm::PassInfo const*>, std::allocator<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> > >::insert_unique(std::_Rb_tree_iterator<std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> >, std::pair<llvm::PassInfo const* const, (anonymous namespace)::PassRegistrar::AnalysisGroupInfo> const&) (stl_tree.h:905)
==20768== by 0x8D0C66D: ZNSt3mapIPKN4llvm8PassInfoEN77_GLOBAL__N__home_kehoste_work_LLVM_llvm_lib_VMCore_Pass.cpp_00000000_F5B4444913PassRegistrar17AnalysisGroupInfoESt4lessIS3_ESaISt4pairIKS3_S6_EEE6insertESt17_Rb_tree_iteratorISB_ERKSB (stl_map.h:384)
==20768== by 0x8D0C754: ZNSt3mapIPKN4llvm8PassInfoEN77_GLOBAL__N__home_kehoste_work_LLVM_llvm_lib_VMCore_Pass.cpp_00000000_F5B4444913PassRegistrar17AnalysisGroupInfoESt4lessIS3_ESaISt4pairIKS3_S6_EEEixERSA (stl_map.h:339)
==20768== by 0x8D0C7B8: (anonymous namespace)::PassRegistrar::RegisterAnalysisGroup(llvm::PassInfo*, llvm::PassInfo const*, bool) (Pass.cpp:181)
==20768== by 0x8D08591: llvm::RegisterAGBase::RegisterAGBase(int, int, bool) (Pass.cpp:264)
==20768==
==20768== Invalid free() / delete / delete[]
==20768== at 0x1B9098CF: operator delete(void*) (vg_replace_malloc.c:155)
==20768== by 0x862B2B2: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, llvm::SDNode*> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, llvm::SDNode*> >, unsigned) (new_allocator.h:97)
==20768== by 0x862B2D7: std::_Rb_tree<std::string, std::pair<std::string const, llvm::SDNode
>, std::_Select1st<std::pair<std::string const, llvm::SDNode*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::SDNode*> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, llvm::SDNode*> >) (stl_tree.h:371)
==20768== by 0x862B327: std::_Rb_tree<std::string, std::pair<std::string const, llvm::SDNode
>, std::_Select1st<std::pair<std::string const, llvm::SDNode*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::SDNode*> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::string const, llvm::SDNode*> >) (stl_tree.h:401)
==20768== by 0x862B38F: std::_Rb_tree<std::string, std::pair<std::string const, llvm::SDNode
>, std::_Select1st<std::pair<std::string const, llvm::SDNode*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::SDNode*> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, llvm::SDNode*> >) (stl_tree.h:1325)
==20768== by 0x862B3BE: std::_Rb_tree<std::string, std::pair<std::string const, llvm::SDNode
>, std::_Select1st<std::pair<std::string const, llvm::SDNode*> >, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::SDNode*> > >::
_Rb_tree() (stl_tree.h:592)
==20768== by 0x862B40E: std::map<std::string, llvm::SDNode*, std::lessstd::string, std::allocator<std::pair<std::string const, llvm::SDNode*> > >::~map() (stl_map.h:94)
==20768== by 0x8A39E08: llvm::SelectionDAG::~SelectionDAG() (SelectionDAG.cpp:669)
==20768== by 0x8A6B0B5: llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*, llvm::MachineFunction&, llvm::FunctionLoweringInfo&) (SelectionDAGISel.cpp:4651)
==20768== by 0x8A6C6AF: llvm::SelectionDAGISel::runOnFunction(llvm::Function&) (SelectionDAGISel.cpp:4352)
==20768== by 0x897D6A3: (anonymous namespace)::X86DAGToDAGISel::runOnFunction(llvm::Function&) (X86ISelDAGToDAG.cpp:122)
==20768== by 0x8D0F586: llvm::FPPassManager::runOnFunction(llvm::Function&) (PassManager.cpp:1168)
==20768== Address 0x1BE94078 is 1856 bytes inside a block of size 4080 alloc'd
==20768== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==20768== by 0x1B96FF56: __gnu_cxx::__pool::_M_reserve_block(unsigned, unsigned) (mt_allocator.cc:340)
==20768== by 0x8B4E570: __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<unsigned const, llvm::TargetRegisterClass const*> >, __gnu_cxx::__common_pool_policy<__gnu_cxx::__pool, true> >::allocate(unsigned, void const*) (mt_allocator.h:698)
==20768== by 0x8B4E597: std::_Rb_tree<unsigned, std::pair<unsigned const, llvm::TargetRegisterClass const*>, std::_Select1st<std::pair<unsigned const, llvm::TargetRegisterClass const*> >, std::less, std::allocator<std::pair<unsigned const, llvm::TargetRegisterClass const*> > >::_M_get_node() (stl_tree.h:356)
==20768== by 0x8B4E5AF: std::_Rb_tree<unsigned, std::pair<unsigned const, llvm::TargetRegisterClass const*>, std::_Select1st<std::pair<unsigned const, llvm::TargetRegisterClass const*> >, std::less, std::allocator<std::pair<unsigned const, llvm::TargetRegisterClass const*> > >::_M_create_node(std::pair<unsigned const, llvm::TargetRegisterClass const*> const&) (stl_tree.h:365)
==20768== by 0x8B4E66C: ZNSt8_Rb_treeIjSt4pairIKjPKN4llvm19TargetRegisterClassEESt10_Select1stIS6_ESt4lessIjESaIS6_EE9_M_insertEPSt18_Rb_tree_node_baseSE_RKS6 (stl_tree.h:794)
==20768== by 0x8B4EAC9: std::_Rb_tree<unsigned, std::pair<unsigned const, llvm::TargetRegisterClass const*>, std::_Select1st<std::pair<unsigned const, llvm::TargetRegisterClass const*> >, std::less, std::allocator<std::pair<unsigned const, llvm::TargetRegisterClass const*> > >::insert_unique(std::_Rb_tree_iterator<std::pair<unsigned const, llvm::TargetRegisterClass const*> >, std::pair<unsigned const, llvm::TargetRegisterClass const*> const&) (stl_tree.h:921)
==20768== by 0x8B4EC9F: std::map<unsigned, llvm::TargetRegisterClass const*, std::less, std::allocator<std::pair<unsigned const, llvm::TargetRegisterClass const*> > >::insert(std::_Rb_tree_iterator<std::pair<unsigned const, llvm::TargetRegisterClass const*> >, std::pair<unsigned const, llvm::TargetRegisterClass const*> const&) (stl_map.h:384)
==20768== by 0x8B4ED7E: std::map<unsigned, llvm::TargetRegisterClass const*, std::less, std::allocator<std::pair<unsigned const, llvm::TargetRegisterClass const*> > >::operator[](unsigned const&) (stl_map.h:339)
==20768== by 0x8B46E83: (anonymous namespace)::RALinScan::ComputeRelatedRegClasses() (RegAllocLinearScan.cpp:172)
==20768== by 0x8B47043: (anonymous namespace)::RALinScan::runOnMachineFunction(llvm::MachineFunction&) (RegAllocLinearScan.cpp:207)
==20768== by 0x869B117: llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (MachineFunctionPass.h:41)
==20768==
==20768== ERROR SUMMARY: 478 errors from 12 contexts (suppressed: 21 from 1)
==20768== malloc/free: in use at exit: 1118021 bytes in 2525 blocks.
==20768== malloc/free: 11439 allocs, 9387 frees, 5218694 bytes allocated.
==20768== For counts of detected errors, rerun with: -v
==20768== searching for pointers to 2525 not-freed blocks.
==20768== checked 5192716 bytes.
==20768==
==20768== LEAK SUMMARY:
==20768== definitely lost: 3895 bytes in 14 blocks.
==20768== possibly lost: 1548 bytes in 22 blocks.
==20768== still reachable: 1112578 bytes in 2489 blocks.
==20768== suppressed: 0 bytes in 0 blocks.
==20768== Use --leak-check=full to see details of leaked memory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions