[LLVMdev] Exception Problems

Evan Cheng evan.cheng at apple.com
Wed Sep 5 14:09:20 PDT 2007


It's trying to find the register class for register #79 and VT #4. You  
can look up 79 from X86GenRegisterNames.inc (it's RDX), VT #4 is  
MVT::i32. So scheduler blows up. This is probably a upstream lowering  
bug.

Evan

On Sep 4, 2007, at 7:43 PM, Bill Wendling wrote:

> Hi Anton & Duncan,
>
> When I try to compile on Darwin now, I get this:
>
> $ /Volumes/Gir/devel/llvm/llvm-gcc-4.0.obj/gcc/xgcc <options> -o
> eh_alloc.o
>
> Assertion failed: (false && "Couldn't find the register class"),
> function getPhysicalRegisterRegClass, file /Volumes/Gir/devel/llvm/
> llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp, line 269.
> ../../../../../llvm-gcc-4.0.src/libstdc++-v3/libsupc++/eh_alloc.cc:
> 182: internal compiler error: Abort trap
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://llvm.org/bugs> for instructions.
> make[7]: *** [eh_alloc.lo] Error 1
> make[6]: *** [all-recursive] Error 1
> make[5]: *** [all] Error 2
> make[4]: *** [multi-do] Error 1
> make[3]: *** [all-multi] Error 2
> make[2]: *** [all-recursive] Error 1
> make[1]: *** [all] Error 2
> make: *** [all-target-libstdc++-v3] Error 2
>
> Here's the backtrace:
>
> (gdb) bt
> #0  0x963d995a in __kill ()
> #1  0x963d994d in kill$UNIX2003 ()
> #2  0x9644f006 in raise ()
> #3  0x9645c8ff in abort ()
> #4  0x964501a7 in __assert_rtn ()
> #5  0x007c2891 in getPhysicalRegisterRegClass (MRI=0x42010504, VT=4,
> reg=79) at /Volumes/Gir/devel/llvm/llvm.src/lib/CodeGen/SelectionDAG/
> ScheduleDAG.cpp:269
> #6  0x007c5218 in llvm::ScheduleDAG::EmitCopyFromReg
> (this=0x41a25a50, Node=0x41a17f60, ResNo=0, SrcReg=79,
> VRBaseMap=@0xbfffe218) at /Volumes/Gir/devel/llvm/llvm.src/lib/
> CodeGen/SelectionDAG/ScheduleDAG.cpp:304
> #7  0x007c5938 in llvm::ScheduleDAG::EmitNode (this=0x41a25a50,
> Node=0x41a17f60, VRBaseMap=@0xbfffe218) at /Volumes/Gir/devel/llvm/
> llvm.src/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:716
> #8  0x007c5f00 in llvm::ScheduleDAG::EmitSchedule (this=0x41a25a50)
> at /Volumes/Gir/devel/llvm/llvm.src/lib/CodeGen/SelectionDAG/
> ScheduleDAG.cpp:807
> #9  0x007cdb46 in (anonymous namespace)::ScheduleDAGRRList::Schedule
> (this=0x41a25a50) at /Volumes/Gir/devel/llvm/llvm.src/lib/CodeGen/
> SelectionDAG/ScheduleDAGRRList.cpp:113
> #10 0x007c2a6a in llvm::ScheduleDAG::Run (this=0x41a25a50) at /
> Volumes/Gir/devel/llvm/llvm.src/lib/CodeGen/SelectionDAG/
> ScheduleDAG.cpp:834
> #11 0x007f820e in llvm::SelectionDAGISel::ScheduleAndEmitDAG
> (this=0x42025600, DAG=@0xbfffe47c) at /Volumes/Gir/devel/llvm/
> llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:4847
> #12 0x0067fcca in (anonymous
> namespace)::X86DAGToDAGISel::InstructionSelectBasicBlock
> (this=0x42025600, DAG=@0xbfffe47c) at /Volumes/Gir/devel/llvm/
> llvm.src/lib/Target/X86/X86ISelDAGToDAG.cpp:483
> #13 0x007f80cc in llvm::SelectionDAGISel::CodeGenAndEmitDAG
> (this=0x42025600, DAG=@0xbfffe47c) at /Volumes/Gir/devel/llvm/
> llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:4623
> #14 0x0080bd86 in llvm::SelectionDAGISel::SelectBasicBlock
> (this=0x42025600, LLVMBB=0x41a22080, MF=@0x41a203b0,
> FuncInfo=@0xbfffe718) at /Volumes/Gir/devel/llvm/llvm.src/lib/CodeGen/
> SelectionDAG/SelectionDAGISel.cpp:4641
> #15 0x0080d35b in llvm::SelectionDAGISel::runOnFunction
> (this=0x42025600, Fn=@0x41a1dc40) at /Volumes/Gir/devel/llvm/llvm.src/
> lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:4342
> #16 0x006b5fd3 in (anonymous
> namespace)::X86DAGToDAGISel::runOnFunction (this=0x42025600,
> Fn=@0x41a1dc40) at /Volumes/Gir/devel/llvm/llvm.src/lib/Target/X86/
> X86ISelDAGToDAG.cpp:122
> #17 0x00a6d7b8 in llvm::FPPassManager::runOnFunction
> (this=0x41a0e500, F=@0x41a1dc40) at /Volumes/Gir/devel/llvm/llvm.src/
> lib/VMCore/PassManager.cpp:1168
> #18 0x00a6da10 in llvm::FunctionPassManagerImpl::run
> (this=0x41a0e400, F=@0x41a1dc40) at /Volumes/Gir/devel/llvm/llvm.src/
> lib/VMCore/PassManager.cpp:1126
> #19 0x00a6db8d in llvm::FunctionPassManager::run (this=0x41a0e3f0,
> F=@0x41a1dc40) at /Volumes/Gir/devel/llvm/llvm.src/lib/VMCore/
> PassManager.cpp:1071
> #20 0x00567fd5 in llvm_asm_file_end () at ../../llvm-gcc-4.0.src/gcc/
> llvm-backend.cpp:535
> #21 0x00525fc1 in do_compile () at ../../llvm-gcc-4.0.src/gcc/
> toplev.c:1175
> #22 0x005262f4 in toplev_main (argc=0, argv=0xbfffea28) at ../../llvm-
> gcc-4.0.src/gcc/toplev.c:2419
> #23 0x00002136 in start ()
>
>
> Any ideas? :-)
>
> -bw
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list