[llvm-dev] How to remove memcpy

Joerg Sonnenberger via llvm-dev llvm-dev at lists.llvm.org
Sat Oct 15 16:07:32 PDT 2016


On Sat, Oct 15, 2016 at 04:01:36PM -0700, Mehdi Amini via llvm-dev wrote:
> 
> > On Oct 15, 2016, at 3:56 PM, Wolfgang McSneed via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> > 
> > Hi,
> > 
> > I am hoping that someone can help me figure out how to prevent the insertion of "memcpy" from the assembly source. 
> > 
> > My target is an instruction set simulator that doesn't support this.
> > 
> > Thank you for your valuable time.
> > 
> > Wolf
> > 
> > Here are my compile commands:
> > $ clang -emit-llvm -fno-builtin -o3 --target=mips -S matrix_float.c -o vl_matrix_float.ll
> 
> Technically  -fno-bultin prevents the compiler from understand the
> memset in the original code. The right option to prevent the compiler
> from insert libc calls “out-of-the-blue” is -ffreestanding.

Huh? The -fno-builtin is not the problem. The compiler is *expected* to
call certain functions even for -ffreestanding. memcpy and memset are
two of those. It is certainly perfectly valid target lowering for
llvm.memcpy to be turned back into a libcall.

Joerg


More information about the llvm-dev mailing list