[llvm-dev] intrinsics

Anastasiya Ruzhanskaya via llvm-dev
Tue, 11 Jul 2017 18:19:33 -0000

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>