[llvm-dev] intrinsics

Anastasiya Ruzhanskaya via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 11 11:19:33 PDT 2017


And are such intrinsics, as memset, memcpy, memmove replaced by standard
library calls? This is said in sources, that it looks for such functions in
global symbol table.

2017-07-11 20:16 GMT+02:00 Friedman, Eli <efriedma at codeaurora.org>:

> On 7/11/2017 10:26 AM, Anastasiya Ruzhanskaya via llvm-dev wrote:
>
>> Hello,
>> I would like to find out a detail about intrinsics functions. When I use
>> memset form a standard library it is always converted to llvm's memset,
>> however the usage of some others as sqrt, pow, sin do not lead to the same.
>> How can I get the same effect?
>>
>
> For math functions in particular, the intrinsics don't really match the
> semantics of the actual C library functions, so clang doesn't normally
> convert them.  (If you use -ffast-math, clang will convert them anyway.)
> This is an area which could probably be improved, but it's complicated
> because we depend on the host's libm.
>
> Why there is no overall LLVM pass like IntrinsicLowerinPass.cpp (it has
>> only some specific ones)? There is only a function that does this.
>>
>
> Some intrinsics expose functionality which can't be expressed using IR
> instructions.
>
> -Eli
>
> --
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux
> Foundation Collaborative Project
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170711/cd8888f7/attachment.html>


More information about the llvm-dev mailing list