gpt4 book ai didi

c - posix_memalign、malloc 和 calloc 在 lli 解释器中存在问题

转载 作者:行者123 更新时间:2023-11-30 19:33:30 29 4
gpt4 key购买 nike

我使用polybench内核。在polybench.c中,代码有一行如下:

  int ret = posix_memalign (&new, 32, num);

这一行给 lli 解释器带来了问题。我尝试使用 malloc 代替,但出现相同的错误

LLVM ERROR: Tried to execute an unknown external function: posix_memalign

是否有其他功能可以使用而不会出现此问题?

最佳答案

如果您听说 posix_memalign() 被标准化为 POSIX 的一部分,而不是标准 C 的一部分,您不会感到惊讶。因此,提供该函数并不是符合 C 实现的要求。另一方面,作为 POSIX 的一部分,它可以广泛使用。

malloc() promise 返回一个指向任何类型对象正确对齐的内存的指针。我不确定为什么您想要确保更严格的对齐要求,但这样做的下一个最佳选择是 aligned_alloc() 函数,它是自 C2011 以来的标准 C。如果您的 C 库符合 C2011,那么您可以将 posix_memalign() 调用替换为

#include <stdlib.h>
#include <errno.h>

// ...

new = aligned_alloc(32, num);
int ret = (new ? 0 : errno);

如果您也没有 aligned_alloc(),那么您的实现可能会提供其他替代方案,但它们都不是标准的。

关于c - posix_memalign、malloc 和 calloc 在 lli 解释器中存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405939/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com