[LLVMdev] [NVPTX] Backend failure in LegalizeDAG due to unimplemented expand in target lowering

Dmitry N. Mikushin maemarcus at gmail.com
Wed Jun 27 04:34:42 PDT 2012


Dear LLVM,

I'm trying to understand why the attached IR code works for x86_64
target and fails for nvptx64, because of unimplemented expand during
the target lowering. Any ideas?
Just change the target triple to x86_64-unknown-unknown, and the same
IR code could we successfully codegen-ed for x86_64.

Thanks,
- Dima.

dmikushin at dmikushin-desktop:~/Desktop$ gdb ~/sandbox/bin/llc
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/dmikushin/sandbox/bin/llc...done.
(gdb) r -march=nvptx64 test.ll
Starting program: /home/dmikushin/sandbox/bin/llc -march=nvptx64 test.ll
[Thread debugging using libthread_db enabled]
This action is not supported yet!
UNREACHABLE executed at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1198!

Program received signal SIGABRT, Aborted.
0x00007ffff55ed3a5 in __GI_raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
	in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
#0  0x00007ffff55ed3a5 in __GI_raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff55f0b0b in __GI_abort () at abort.c:92
#2  0x00007ffff70183b3 in llvm::llvm_unreachable_internal
(msg=0x7ffff75b4570 "This action is not supported yet!",
    file=0x7ffff75b4128
"/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp",
line=1198) at /home/dmikushin/sandbox/src/llvm/lib/Support/ErrorHandling.cpp:98
#3  0x00007ffff6e9a612 in (anonymous
namespace)::SelectionDAGLegalize::LegalizeOp (this=0x7fffffffd300,
Node=0x722820)
    at /home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1198
#4  0x00007ffff6e911ca in (anonymous
namespace)::SelectionDAGLegalize::LegalizeDAG (this=0x7fffffffd300) at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:227
#5  0x00007ffff6eb6092 in llvm::SelectionDAG::Legalize (this=0x697590)
at /home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:3689
#6  0x00007ffff6fb3862 in llvm::SelectionDAGISel::CodeGenAndEmitDAG
(this=0x697230) at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:632
#7  0x00007ffff6fb2a84 in llvm::SelectionDAGISel::SelectBasicBlock
(this=0x697230, Begin=..., End=..., HadTailCall=@0x7fffffffd880)
    at /home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:499
#8  0x00007ffff6fb5792 in llvm::SelectionDAGISel::SelectAllBasicBlocks
(this=0x697230, Fn=...) at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1160
#9  0x00007ffff6fb1ef5 in llvm::SelectionDAGISel::runOnMachineFunction
(this=0x697230, mf=...) at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:367
#10 0x00007ffff68c91fd in llvm::MachineFunctionPass::runOnFunction
(this=0x697230, F=...) at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/MachineFunctionPass.cpp:33
#11 0x00007ffff6acb524 in llvm::FPPassManager::runOnFunction
(this=0x68ec40, F=...) at
/home/dmikushin/sandbox/src/llvm/lib/VMCore/PassManager.cpp:1478
#12 0x00007ffff6acb73f in llvm::FPPassManager::runOnModule
(this=0x68ec40, M=...) at
/home/dmikushin/sandbox/src/llvm/lib/VMCore/PassManager.cpp:1498
#13 0x00007ffff6acba82 in llvm::MPPassManager::runOnModule
(this=0x67e4c0, M=...) at
/home/dmikushin/sandbox/src/llvm/lib/VMCore/PassManager.cpp:1552
#14 0x00007ffff6acbfa5 in llvm::PassManagerImpl::run (this=0x63f090,
M=...) at /home/dmikushin/sandbox/src/llvm/lib/VMCore/PassManager.cpp:1635
#15 0x00007ffff6acc159 in llvm::PassManager::run (this=0x7fffffffdf00,
M=...) at /home/dmikushin/sandbox/src/llvm/lib/VMCore/PassManager.cpp:1664
#16 0x000000000040ec9c in main (argc=3, argv=0x7fffffffe148) at
/home/dmikushin/sandbox/src/llvm/tools/llc/llc.cpp:484
(gdb) f 4
#4  0x00007ffff6e911ca in (anonymous
namespace)::SelectionDAGLegalize::LegalizeDAG (this=0x7fffffffd300) at
/home/dmikushin/sandbox/src/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:227
227	        LegalizeOp(N);
(gdb) p N->dump()
0x722820: ch = store 0x718f70, 0x722220, 0x714200,
0x717740<ST1[%483](align=8)> [ID=58]
$1 = void
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.ll
Type: application/octet-stream
Size: 143049 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120627/a1623a2a/attachment.obj>


More information about the llvm-dev mailing list