[LLVMdev] DebugIR pass fails with an assert

Konstantin Olkhovskiy lupus at oxnull.net
Sun Sep 22 02:57:02 PDT 2013


Hi List,

My IR compiles fine and runs. I've tried to add DebugIR pass so
as to be able to debug and profile it (since source is an SQL query
all that I can debug and profile is IR itself).

When I tried to add it to pass manager I got the following assert:

Program received signal SIGABRT, Aborted.
0x00007ffff3fe4425 in __GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff3fe4425 in __GI_raise (sig=<optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff3fe7b8b in __GI_abort () at abort.c:91
#2  0x00007ffff3fdd0ee in __assert_fail_base (fmt=<optimized out>,
    assertion=0x7fffef586208 "!isLiteral() && \"Literal structs never have
names\"",
    file=0x7fffef585fb0 "/home/kolkhovskiy/3rdparty/llvm/lib/IR/Type.cpp",
line=<optimized out>,
    function=<optimized out>) at assert.c:94
#3  0x00007ffff3fdd192 in __GI___assert_fail (
    assertion=0x7fffef586208 "!isLiteral() && \"Literal structs never have
names\"",
    file=0x7fffef585fb0 "/home/kolkhovskiy/3rdparty/llvm/lib/IR/Type.cpp",
line=581,
    function=0x7fffef589380 "llvm::StringRef llvm::StructType::getName()
const") at assert.c:103
#4  0x00007fffef4e1755 in llvm::StructType::getName (this=0x6562c0)
    at /home/kolkhovskiy/3rdparty/llvm/lib/IR/Type.cpp:581
#5  0x00007fffef4e0030 in llvm::Type::getStructName (this=0x6562c0)
    at /home/kolkhovskiy/3rdparty/llvm/lib/IR/Type.cpp:195
#6  0x00007ffff2ec85b9 in (anonymous namespace)::DIUpdater::getOrCreateType
(this=0x7fffffffd530,
    T=0x6562c0) at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:387
#7  0x00007ffff2ec8a1d in (anonymous namespace)::DIUpdater::getOrCreateType
(this=0x7fffffffd530,
    T=0x6565e0) at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:415
#8  0x00007ffff2ec88db in (anonymous namespace)::DIUpdater::getOrCreateType
(this=0x7fffffffd530,
    T=0x656630) at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:406
#9  0x00007ffff2ec8cf0 in (anonymous
namespace)::DIUpdater::createFunctionSignature (
    this=0x7fffffffd530, Func=0x672a10)
    at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:441
#10 0x00007ffff2ec729f in (anonymous namespace)::DIUpdater::visitFunction
(this=0x7fffffffd530, F=...)
    at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:196
#11 0x00007ffff2eca2cc in llvm::InstVisitor<{anonymous}::DIUpdater,
void>::visit(llvm::Function &) (
    this=0x7fffffffd530, F=...) at
/home/kolkhovskiy/3rdparty/llvm/include/llvm/InstVisitor.h:102
#12 0x00007ffff2eca1d7 in llvm::InstVisitor<{anonymous}::DIUpdater,
void>::visit<llvm::ilist_iterator<llvm::Function>
>(llvm::ilist_iterator<llvm::Function>,
llvm::ilist_iterator<llvm::Function>) (
    this=0x7fffffffd530, Start=..., End=...)
    at /home/kolkhovskiy/3rdparty/llvm/include/llvm/InstVisitor.h:92
#13 0x00007ffff2eca0a6 in llvm::InstVisitor<{anonymous}::DIUpdater,
void>::visit(llvm::Module &) (
    this=0x7fffffffd530, M=...) at
/home/kolkhovskiy/3rdparty/llvm/include/llvm/InstVisitor.h:99
#14 0x00007ffff2ec9f97 in llvm::InstVisitor<{anonymous}::DIUpdater,
void>::visit(llvm::Module *) (
    this=0x7fffffffd530, M=0x626360) at
/home/kolkhovskiy/3rdparty/llvm/include/llvm/InstVisitor.h:111
#15 0x00007ffff2ec70dc in (anonymous namespace)::DIUpdater::DIUpdater
(this=0x7fffffffd530, M=...,
    Filename=..., Directory=..., DisplayM=0x0, VMap=0x0)
    at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:178
#16 0x00007ffff2ec9a96 in llvm::DebugIR::createDebugInfo (this=0x67e0e0,
M=..., DisplayM=...)
    at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:564
#17 0x00007ffff2ec9c32 in llvm::DebugIR::runOnModule (this=0x67e0e0, M=...)
    at
/home/kolkhovskiy/3rdparty/llvm/lib/Transforms/Instrumentation/DebugIR.cpp:590
#18 0x00007fffef4cb5e7 in llvm::MPPassManager::runOnModule (this=0x67cc60,
M=...)
    at /home/kolkhovskiy/3rdparty/llvm/lib/IR/PassManager.cpp:1608
#19 0x00007fffef4cbbfc in llvm::PassManagerImpl::run (this=0x67c970, M=...)
    at /home/kolkhovskiy/3rdparty/llvm/lib/IR/PassManager.cpp:1703
#20 0x00007fffef4cbe0f in llvm::PassManager::run (this=0x67e0c0, M=...)
    at /home/kolkhovskiy/3rdparty/llvm/lib/IR/PassManager.cpp:1738
#21 0x00007fffef3d73b8 in LLVMRunPassManager (PM=0x67e0c0, M=0x626360)
    at /home/kolkhovskiy/3rdparty/llvm/lib/IR/Core.cpp:2535
<more frames follow, but belong to my own software>

What does "Literal structs never have names" mean? Do i have a problem
somewhere in the IR?

-- 
Regards,
Konstantin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130922/3cabfcfc/attachment.html>


More information about the llvm-dev mailing list