[LLVMdev] Call to non-constant memset() being generated where libc is not available
Duncan Sands
baldrick at free.fr
Sat Jan 29 03:24:44 PST 2011
Hi David,
> I am compiling something without standard libraries, including no libc.
compile with -fno-builtin That said, note that GCC for example requires memset
to be available even in a freestanding environment.
Ciao, Duncan.
>
> 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
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list