[LLVMdev] Call to non-constant memset() being generated where libc is not available

David Meyer pdox at google.com
Fri Jan 28 12:58:40 PST 2011


I am compiling something without standard libraries, including no libc.

Somehow, this bitcode is being generated by plain array manipulation code:

  %12 = add i8 %11, -19
  %tmp35 = icmp sgt i32 %9, 1
  %smax36 = select i1 %tmp35, i32 %9, i32 1
  call void @llvm.memset.p0i8.i32(i8* getelementptr inbounds ([100 x i8]*
@global_array_char, i32 0, i32 0), i8 %12, i32 %smax36, i32 1, i1 false)

(global_array_char is an array of length 100, which only partially gets
used.)

This gets lowered by LLC to a library call to memset(), which cannot be
satisfied.

Any advice?

Thanks,
David Meyer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110128/ec5ad6c5/attachment.html>


More information about the llvm-dev mailing list