[LLVMdev] want to use CallGraph Pass in llc

Paul Arndt arndt at rbg.informatik.tu-darmstadt.de
Mon Jun 2 00:38:11 PDT 2008


Hi all,

the CallGraph pass is only available in opt. Is there any substantial reason 
for that? Or is it only because it seems not to be useful for llc?

I want to use it in an backend that is derived from the CBackend. I need the 
information what functions are called in every other function to build 
communication struktures between the functions. The backend is generating 
VHDL from C code. (VHDL is a hardware description language, which means it is 
used to generate hardware, for those who are not familiar with this.)

I've managed to compile my backend with the CallGraph pass, but when it try to 
use it, I get an error, which I could't fix until now.



llc --load=/home/paul/LLVM/install/llvm-2.2/lib/MParSchedule.so --load=/home/paul/LLVM/install/llvm-2.2/lib/libLLVMVHDLBackend.so -f -march=vhdl 
test.o -o llvm.vhd
llc: /home/paul/LLVM/src/llvm-2.2/lib/VMCore/PassManager.cpp:922: virtual void 
llvm::PMDataManager::addLowerLevelRequiredPass(llvm::Pass*, llvm::Pass*): 
Assertion `0 && "Unable to handle Pass that requires lower level Analysis 
pass"' failed.
llc[0x85e922c]
/lib/i686/cmov/libc.so.6(abort+0x101)[0x401e6981]
/lib/i686/cmov/libc.so.6(__assert_fail+0xee)[0x401de10e]
llc(llvm::PMDataManager::addLowerLevelRequiredPass(llvm::Pass*, 
llvm::Pass*)+0x7d)[0x857da0d 



I'm suspecting the reason for the error is connected with the reason that 
caused to make CallGraph a opt only pass.

Thanks for your time !

- Paul



More information about the llvm-dev mailing list