[LLVMdev] Pool Allocation Segfaulting with opt

Patrick Alexander Simmons simmon12 at cs.uiuc.edu
Sat Jul 4 08:54:53 PDT 2009


Hi,

I'm trying to run the pool allocation pass through opt, and I'm running 
into problems.  It segfaults frequently; for example, it does this when 
the input is a simple Hello World program:

[simmon12 at apoc testcases]$ opt -load 
/home/vadve/simmon12/llvm/llvm/projects/llvm-poolalloc/Debug/lib/libLLVMDataStructure.so 
-load 
/home/vadve/simmon12/llvm/llvm/projects/llvm-poolalloc/Debug/lib/poolalloc.so 
-poolalloc hello.bc > hello.pool
0   opt                     0x08469ccb
1   libLLVMDataStructure.so 0x0022f5a4 
llvm::ConstantArray::classof(llvm::Value const*) + 30
2   libLLVMDataStructure.so 0x0022f57a bool 
llvm::isa_impl<llvm::ConstantArray, llvm::Constant>(llvm::Constant 
const&) + 30
3   libLLVMDataStructure.so 0x0022e942 
llvm::isa_impl_wrap<llvm::ConstantArray, llvm::Constant const, 
llvm::Constant const>::doit(llvm::Constant const&) + 30
4   libLLVMDataStructure.so 0x0022e22a bool 
llvm::isa_impl_cl<llvm::Constant>::isa<llvm::ConstantArray>(llvm::Constant 
const&) + 30
5   libLLVMDataStructure.so 0x0022e032 bool 
llvm::isa_impl_cl<llvm::Constant*>::isa<llvm::ConstantArray>(llvm::Constant*) 
+ 30
6   libLLVMDataStructure.so 0x0022dd82 bool 
llvm::isa<llvm::ConstantArray, llvm::Constant*>(llvm::Constant* const&) + 32
7   libLLVMDataStructure.so 0x0022d9dc 
llvm::cast_retty<llvm::ConstantArray, 
llvm::Constant*>::ret_typellvm::dyn_cast<llvm::ConstantArray, 
llvm::Constant*>(llvm::Constant* const&) + 30
8   libLLVMDataStructure.so 0x0022bc71 (anonymous 
namespace)::GraphBuilder::MergeConstantInitIntoNode(llvm::DSNodeHandle&, 
llvm::Type const*, llvm::Constant*) + 229
9   libLLVMDataStructure.so 0x0022bfb7 (anonymous 
namespace)::GraphBuilder::mergeInGlobalInitializer(llvm::GlobalVariable*) 
+ 149
10  libLLVMDataStructure.so 0x0022c08c 
llvm::LocalDataStructures::runOnModule(llvm::Module&) + 190
11  opt                     0x083fdf4e 
llvm::MPPassManager::runOnModule(llvm::Module&) + 270
Segmentation fault

I'm using the latest SVN checkouts for both LLVM and llvm-poolalloc.  
Should I perhaps use the 2.5 branch of LLVM instead?

Oh, also, what's the name of the DSA pass that pool allocation runs?  
I'd like to structure my passes to go 
"DSA-MyAnalysis-PoolAllocation-MyTransform".

Thanks,
--Patrick



More information about the llvm-dev mailing list