[LLVMbugs] [Bug 857] NEW: inline asm only handles one code so far

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Jul 31 19:54:44 PDT 2006


http://llvm.org/bugs/show_bug.cgi?id=857

           Summary: inline asm only handles one code so far
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Backend: X86
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: nicholas at mxc.ca


It looks like inline assembly support isn't entirely complete yet. This
particular assertion failure is blocking builds of the Linux kernel on x86:

  $ cat bugpoint-reduced-simplified.ll
  ; ModuleID = 'bugpoint-reduced-simplified.bc'
  target endian = little
  target pointersize = 32
  target triple = "i686-pc-linux-gnu"
  
  implementation   ; Functions:
  
  void %run_init_process() {
  entry:
          %tmp = call int asm sideeffect "push %ebx ; movl $2,%ebx ; int $$0x80
; pop %ebx", "={ax},0,ri,{cx},{dx},~{dirflag},~{fpsr},~{flags},~{memory}"( int
11, int 0, int 0, int 0 )          ; <int> [#uses=0]
          unreachable
  }
  $ llc bugpoint-reduced-simplified.bc
  llc: SelectionDAGISel.cpp:2030: void
llvm::SelectionDAGLowering::visitInlineAsm(llvm::CallInst&): Assertion
`Constraints[i].Codes.size() == 1 && "Only handles one code so far!"' failed.
  llc((anonymous namespace)::PrintStackTrace()+0x1a)[0x885fef8]
  llc((anonymous namespace)::SignalHandler(int)+0x108)[0x88601b4]
  [0xffffe500]
  [0xffffe405]
  /lib/tls/i686/cmov/libc.so.6(gsignal+0x51)[0x5570f8b1]
  /lib/tls/i686/cmov/libc.so.6(abort+0x109)[0x55711049]
  /lib/tls/i686/cmov/libc.so.6(__assert_fail+0x10f)[0x5570908f]
  llc(llvm::SelectionDAGLowering::visitInlineAsm(llvm::CallInst&)+0x299)[0x8650793]
  llc(llvm::SelectionDAGLowering::visitCall(llvm::CallInst&)+0x83b)[0x8654de9]
  llc(llvm::SelectionDAGLowering::visit(unsigned int, llvm::User&)+0x2d4)[0x866f7fc]
  llc(llvm::SelectionDAGLowering::visit(llvm::Instruction&)+0x28)[0x866f8e4]
  llc(llvm::SelectionDAGISel::BuildSelectionDAG(llvm::SelectionDAG&,
llvm::BasicBlock*, std::vector<std::pair<llvm::MachineInstr*, unsigned int>,
std::allocator<std::pair<llvm::MachineInstr*, unsigned int> > >&,
llvm::FunctionLoweringInfo&)+0x168)[0x865a1ea]
  llc(llvm::SelectionDAGISel::SelectBasicBlock(llvm::BasicBlock*,
llvm::MachineFunction&, llvm::FunctionLoweringInfo&)+0x98)[0x865ab94]
  llc(llvm::SelectionDAGISel::runOnFunction(llvm::Function&)+0x493)[0x865bfc7]
  llc[0x84197c9]
  llc(llvm::FunctionPassManagerT::runPass(llvm::FunctionPass*,
llvm::Function*)+0x1f)[0x87deb65]
  llc(llvm::PassManagerT<llvm::FTraits>::runPasses(llvm::Function*,
std::map<llvm::Pass*, std::vector<llvm::Pass*, std::allocator<llvm::Pass*> >,
std::less<llvm::Pass*>, std::allocator<std::pair<llvm::Pass* const,
std::vector<llvm::Pass*, std::allocator<llvm::Pass*> > > > >&)+0x136)[0x87f53da]
 
llc(llvm::PassManagerT<llvm::FTraits>::runOnUnit(llvm::Function*)+0x188)[0x87f5efe]
  llc(llvm::FunctionPassManagerT::runOnFunction(llvm::Function&)+0x23)[0x87dec0b]
  llc(llvm::FunctionPass::runOnModule(llvm::Module&)+0xa0)[0x87dc7be]
  llc(llvm::ModulePassManager::runPass(llvm::ModulePass*,
llvm::Module*)+0x1f)[0x87debbb]
  llc(llvm::PassManagerT<llvm::MTraits>::runPasses(llvm::Module*,
std::map<llvm::Pass*, std::vector<llvm::Pass*, std::allocator<llvm::Pass*> >,
std::less<llvm::Pass*>, std::allocator<std::pair<llvm::Pass* const,
std::vector<llvm::Pass*, std::allocator<llvm::Pass*> > > > >&)+0x136)[0x87f5968]
  llc(llvm::PassManagerT<llvm::MTraits>::runOnUnit(llvm::Module*)+0x188)[0x87f60c0]
  llc(llvm::ModulePassManager::runOnModule(llvm::Module&)+0x23)[0x87dc1cf]
  llc(llvm::PassManager::run(llvm::Module&)+0x23)[0x87dc247]
  llc(main+0xdd9)[0x839a80b]
  /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xc8)[0x556fbea8]
  llc(__gxx_personality_v0+0x169)[0x8399031]
  Aborted



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list