[LLVMdev] Module crash when adding CallInst
Pankaj Kohli
pankaj208 at gmail.com
Tue May 19 01:15:52 PDT 2015
Hi,
I am learning to write LLVM modules. I am using IRBuilder to insert calls
to an existing function. The call is to be inserted at a random location in
every function in the code. The call does get inserted, however, the module
crashes later (after doFinalization()). The crash happens only sometimes,
not always.
These are the kind of instructions that I see in the generated code.
%callins = call void @myfunc(), !dbg !285
%callins = call void @myfunc()
The stack trace shows the crash has something to do with debug information.
Do I need to add metadata or debug info to the newly added call
instruction? Any pointers on how I can do that?
Here is the code snippet and the stack trace:
IRBuilder<> Builder(ins); // to be inserted before ins
CallInst *call = Builder.CreateCall(func, "callins"); // call to func
0 clang 0x0000000001492ec2 llvm::sys::PrintStackTrace(_IO_FILE*)
+ 34
1 clang 0x0000000001490f61
2 libpthread.so.0 0x00002b33bd0ee340
3 clang 0x00000000016a43a6
llvm::DwarfUnit::addString(llvm::DIE&, llvm::dwarf::Attribute,
llvm::StringRef) + 22
4 clang 0x00000000016c2003
llvm::DwarfCompileUnit::applyVariableAttributes(llvm::DbgVariable const&,
llvm::DIE&) + 915
5 clang 0x000000000168bdfe
llvm::DwarfDebug::finishVariableDefinitions() + 270
6 clang 0x0000000001690424
llvm::DwarfDebug::finalizeModuleInfo() + 52
7 clang 0x000000000169c4a8 llvm::DwarfDebug::endModule() + 40
8 clang 0x00000000016850f7
llvm::AsmPrinter::doFinalization(llvm::Module&) + 551
9 clang 0x00000000011befe5
llvm::FPPassManager::doFinalization(llvm::Module&) + 69
10 clang 0x00000000011ca40d
llvm::legacy::PassManagerImpl::run(llvm::Module&) + 813
11 clang 0x0000000001837fad
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&,
llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) +
1629
12 clang 0x000000000182a47f
13 clang 0x0000000001bdf043 clang::ParseAST(clang::Sema&, bool,
bool) + 483
14 clang 0x0000000001603ba6 clang::FrontendAction::Execute() + 118
15 clang 0x00000000015e47b8
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 280
16 clang 0x0000000001673b41
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1921
17 clang 0x0000000000820358 cc1_main(llvm::ArrayRef<char const*>,
char const*, void*) + 1320
18 clang 0x00000000007fceaa main + 8298
19 libc.so.6 0x00002b33bdd56ec5 __libc_start_main + 245
20 clang 0x000000000081e5d9
Any help is appreciated.
Thanks,
Pankaj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150519/669df929/attachment.html>
More information about the llvm-dev
mailing list