[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