llvm.memcpy.p0i8.p0i8.i64来自何处

时间:2019-03-22 05:36:44

标签: clang llvm memcpy

我测试了clang并编译了一个包含struct asigning的简单C文件。当我看到LLVM代码时,有llvm.memcpy.p0i8.p0i8.i64,这是哪里来的?我没有看到这种定义,只是看到它的声明是一种功能。

1 个答案:

答案 0 :(得分:1)

它是LLVM固有函数。根据语言参考:

  

LLVM提供了一些重要的标准C库的内在函数   功能。这些内在函数允许源语言前端通过   有关指针参数与代码对齐的信息   生成器,为更高效的代码生成提供了机会。

llvm.memcpy内部特有的内容:

  

“ llvm.memcpy。*”内在函数从源代码复制了一块内存   位置到目标位置。

     

请注意,与标准libc函数不同,llvm.memcpy。*   内部函数不返回值,需要额外的isvolatile参数,并且   指针可以位于指定的地址空间中。