[LLVMdev] Disable memset synthesization

Owen Anderson resistor at mac.com
Tue Jul 30 11:00:58 PDT 2013


If you're using just LLVM, you can simply not run optimizations like LoopIdiomRecognizer that synthesize these operations. 

Assuming you mean clang+LLVM, you can use -ffreestanding to achieve most of what you want, but note that LLVM matches GCC in that it requires certain functions to have expansions available for linking.  If that's not workable for your target, you'll need to modify clang itself to omit those optimizations.

From http://gcc.gnu.org/onlinedocs/gcc/Standards.html

> GCC requires the freestanding environment provide memcpy, memmove, memset and memcmp.

--Owen

On Jul 30, 2013, at 10:55 AM, Bin Tzeng <bintzeng at gmail.com> wrote:

> Hi all,
> 
> LLVM is smart that it can synthesize llvm.memset, llvm.memcpy etc. from loops, which can be lowered into calls to memset, memcpy and so on. Is there an option that can disable this optimization? For some cases, I do not want the code to depend on libc.
> 
> Thanks in advance!
> Bin
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130730/3bf79ce8/attachment.html>


More information about the llvm-dev mailing list