[LLVMbugs] [Bug 9553] New: [JIT] calls to @llvm.memset end up trying to jump to zero

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Mar 25 12:38:29 PDT 2011


           Summary: [JIT] calls to @llvm.memset end up trying to jump to
           Product: new-bugs
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: matt at pharr.org
                CC: llvmbugs at cs.uiuc.edu

If I try to run this code (simplified from a bigger test case) through the JIT:

define void @f(i8 *) nounwind {
  call void @llvm.memset.p0i8.i64(i8* %0, i8 0, i64 400, i32 4, i1 false)
  ret void

declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) nounwind

it crashes when it executes; the disassembly at the trouble spot is the
following, presumably because the jit didn't have a mapping to the C library
memset symbol:

   0x00002aaaaaaac078 <+8>:    movabs $0x0,%rax
   0x00002aaaaaaac082 <+18>:    callq  *%rax

If I manually add a mapping to memset with ExecutionEngine::addGlobalMapping(),
I'm still seeing this behavior.

(If I generate assembly with llc, I do get an expected call to memset in the
corresponding point in the code.)

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list