[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