gpt4 book ai didi

c - 如何告诉编译器展开这个循环

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:35 25 4
gpt4 key购买 nike

<分区>

我有以下在 ARM 处理器上运行的循环。

// pin here is pointer to some part of an array
for (i = 0; i < v->numelements; i++)
{
pe = pptr[i];
peParent = pe->parent;

SPHERE *ps = (SPHERE *)(pe->data);

pin[0] = FLOAT2FIX(ps->rad2);
pin[1] = *peParent->procs->pe_intersect == &SphPeIntersect;
fixifyVector( &pin[2], ps->center ); // Is an inline function

pin = pin + 5;
}

通过循环的缓慢性能,我可以判断编译器无法展开这个循环,因为当我手动展开时,它变得非常快。我认为编译器对 pin 指针感到困惑。我们可以在这里使用 restrict 关键字来帮助编译器,还是 restrict 仅保留用于函数参数?一般来说,我们如何告诉编译器展开它而不用担心 pin 指针。

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