[LLVMdev] mblaze backend: unreachable executed

Andreas Färber andreas.faerber at web.de
Tue Mar 15 12:50:39 PDT 2011


Hello,

Am 15.03.2011 um 19:27 schrieb Josef Spjut:

> Does anyone know what common causes of "UNREACHABLE executed!"  
> messages are and what this message in particular means? The full  
> error message is the following:
>
> UNREACHABLE executed!
> 0  llc               0x0000000100936ae2 PrintStackTrace(void*) + 34
> 1  llc               0x0000000100937603 SignalHandler(int) + 531
> 2  libSystem.B.dylib 0x00007fff82adf67a _sigtramp + 26
> 3  libSystem.B.dylib 000000000000000000 _sigtramp + 2102528416
> 4  llc               0x0000000100936aa6 abort + 22
> 5  llc               0x000000010091551d  
> llvm::llvm_unreachable_internal(char const*, char const*, unsigned  
> int) + 381
> 6  llc               0x000000010058100e  
> llvm 
> ::CCState 
> ::AnalyzeCallResult(llvm::SmallVectorImpl<llvm::ISD::InputArg>  
> const&, bool (*)(unsigned int, llvm::EVT, llvm::EVT,  
> llvm::CCValAssign::LocInfo, llvm::ISD::ArgFlagsTy, llvm::CCState&))  
> + 158
> 7  llc               0x000000010007319c  
> llvm::TraxTargetLowering::LowerCallResult(llvm::SDValue,  
> llvm::SDValue, llvm::CallingConv::ID, bool,  
> llvm::SmallVectorImpl<llvm::ISD::InputArg> const&, llvm::DebugLoc,  
> llvm::SelectionDAG&, llvm::SmallVectorImpl<llvm::SDValue>&) const +  
> 172
> 8  llc               0x0000000100075353  
> llvm::TraxTargetLowering::LowerCall(llvm::SDValue, llvm::SDValue,  
> llvm::CallingConv::ID, bool, bool&,  
> llvm::SmallVectorImpl<llvm::ISD::OutputArg> const&,  
> llvm::SmallVectorImpl<llvm::SDValue> const&,  
> llvm::SmallVectorImpl<llvm::ISD::InputArg> const&, llvm::DebugLoc,  
> llvm::SelectionDAG&, llvm::SmallVectorImpl<llvm::SDValue>&) const +  
> 4179
> 9  llc               0x00000001004c3dcd  
> llvm::TargetLowering::LowerCallTo(llvm::SDValue, llvm::Type const*,  
> bool, bool, bool, bool, unsigned int, llvm::CallingConv::ID, bool,  
> bool, llvm::SDValue, std::vector<llvm::TargetLowering::ArgListEntry,  
> std::allocator<llvm::TargetLowering::ArgListEntry> >&,  
> llvm::SelectionDAG&, llvm::DebugLoc) const + 4269
> 10 llc               0x00000001004d1c0b  
> llvm::SelectionDAGBuilder::LowerCallTo(llvm::ImmutableCallSite,  
> llvm::SDValue, bool, llvm::MachineBasicBlock*) + 2363
> 11 llc               0x00000001004e6dc9  
> llvm::SelectionDAGBuilder::visitCall(llvm::CallInst const&) + 185
> 12 llc               0x00000001004c8828  
> llvm::SelectionDAGBuilder::visit(unsigned int, llvm::User const&) +  
> 600
> 13 llc               0x00000001004fdef3  
> llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) + 51
> 14 llc               0x000000010050a558  
> llvm 
> ::SelectionDAGISel 
> ::SelectBasicBlock(llvm::ilist_iterator<llvm::Instruction const>,  
> llvm::ilist_iterator<llvm::Instruction const>, bool&) + 56
> 15 llc               0x000000010050abe2  
> llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&)  
> + 1506
> 16 llc               0x000000010050b4a8  
> llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&)  
> + 392
> 17 llc               0x00000001005d4cbd  
> llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 125
> 18 llc               0x00000001008809b0  
> llvm::FPPassManager::runOnFunction(llvm::Function&) + 656
> 19 llc               0x0000000100880a6b  
> llvm::FPPassManager::runOnModule(llvm::Module&) + 139
> 20 llc               0x0000000100882122  
> llvm::MPPassManager::runOnModule(llvm::Module&) + 562
> 21 llc               0x0000000100882423  
> llvm::PassManagerImpl::run(llvm::Module&) + 243
> 22 llc               0x00000001008824bd  
> llvm::PassManager::run(llvm::Module&) + 13
> 23 llc               0x0000000100023c8a main + 3754
> 24 llc               0x0000000100022848 start + 52
> Stack dump:
> 0.	Program arguments: ./Release/bin/llc rt-rot.bc -o rt-rot.s - 
> march=trax
> 1.	Running pass 'Function Pass Manager' on module 'rt-rot.bc'.
> 2.	Running pass 'Trax DAG->DAG Pattern Instruction Selection' on  
> function '@main'

Running the Debug+Asserts version instead of the Release should give  
you the file and line of the "unreachable" code.

Andreas



More information about the llvm-dev mailing list