https://bugs.llvm.org/show_bug.cgi?id=37063

            Bug ID: 37063
           Summary: Crash during x86 instruction generation
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Backend: X86
          Assignee: unassignedb...@nondot.org
          Reporter: a...@crichton.co
                CC: llvm-bugs@lists.llvm.org

This IR program:


declare void @bar()

define void @foo(i64*) {
start:
  %1 = load i64, i64* %0, align 8, !range !0
  %2 = and i64 %1, 6
  %3 = icmp eq i64 %2, 4
  br i1 %3, label %bb1, label %bb2.i

bb1:                                              ; preds = %bb2.i, %start
  ret void

bb2.i:                                            ; preds = %start
  tail call fastcc void @bar()
  br label %bb1
}

!0 = !{i64 0, i64 6}


will crash when run through `llc foo.ll -filetype=obj` with a stack trace that
looks like:


llc: /home/alex/code/rust2/src/llvm/include/llvm/MC/MCInst.h:66: unsigned int
llvm::MCOperand::getReg() const: Assertion `isReg() && "This is not a register
operand!"' failed.
LLVMSymbolizer: error reading file: No such file or directory
#0 0x00007fe401b2eb2a llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x8fdb2a)
#1 0x00007fe401b2c8ce llvm::sys::RunSignalHandlers()
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x8fb8ce)
#2 0x00007fe401b2ca42 SignalHandler(int)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x8fba42)
#3 0x00007fe400b1a4b0 (/lib/x86_64-linux-gnu/libc.so.6+0x354b0)
#4 0x00007fe400b1a428 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x35428)
#5 0x00007fe400b1c02a abort (/lib/x86_64-linux-gnu/libc.so.6+0x3702a)
#6 0x00007fe400b12bd7 (/lib/x86_64-linux-gnu/libc.so.6+0x2dbd7)
#7 0x00007fe400b12c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#8 0x00007fe4019c2248 bool llvm::isa<llvm::MCSymbolRefExpr, llvm::MCExpr
const*>(llvm::MCExpr const* const&) (.isra.41.part.42)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x791248)
#9 0x00007fe403142c0b
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x1f11c0b)
#10 0x00007fe403147e6b (anonymous
namespace)::X86MCCodeEmitter::encodeInstruction(llvm::MCInst const&,
llvm::raw_ostream&, llvm::SmallVectorImpl<llvm::MCFixup>&,
llvm::MCSubtargetInfo const&) const
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x1f16e6b)
#11 0x00007fe402bfb24d llvm::MCELFStreamer::EmitInstToData(llvm::MCInst const&,
llvm::MCSubtargetInfo const&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x19ca24d)
#12 0x00007fe402c10cda llvm::MCObjectStreamer::EmitInstructionImpl(llvm::MCInst
const&, llvm::MCSubtargetInfo const&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x19dfcda)
#13 0x00007fe402c10d1b llvm::MCObjectStreamer::EmitInstruction(llvm::MCInst
const&, llvm::MCSubtargetInfo const&, bool)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x19dfd1b)
#14 0x00007fe4030c7a70
llvm::X86AsmPrinter::EmitAndCountInstruction(llvm::MCInst&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x1e96a70)
#15 0x00007fe4030cb235 llvm::X86AsmPrinter::EmitInstruction(llvm::MachineInstr
const*)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x1e9a235)
#16 0x00007fe40227ad29 llvm::AsmPrinter::EmitFunctionBody()
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x1049d29)
#17 0x00007fe402f17e55
llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0x1ce6e55)
#18 0x00007fe401e3e625
llvm::MachineFunctionPass::runOnFunction(llvm::Function&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0xc0d625)
#19 0x00007fe401c39bb3 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0xa08bb3)
#20 0x00007fe401c39c7c llvm::FPPassManager::runOnModule(llvm::Module&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0xa08c7c)
#21 0x00007fe401c3971d llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/home/alex/code/rust2/build/x86_64-unknown-linux-gnu/llvm/bin/../lib/libLLVM-7svn.so+0xa0871d)
#22 0x00000000004198a0 (llc+0x4198a0)
#23 0x000000000040c3f5 (llc+0x40c3f5)
#24 0x00007fe400b05830 __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x20830)
#25 0x000000000040c5b9 (llc+0x40c5b9)
Stack dump:
0.      Program arguments: llc bugpoint-reduced-simplified.ll -filetype=obj 
1.      Running pass 'Function Pass Manager' on module
'bugpoint-reduced-simplified.ll'.
2.      Running pass 'X86 Assembly Printer' on function '@foo'

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to