有没有办法在 Mac 上启用本地 CLang++ 的优化?

is there a way to enable optimization for local clang++ on mac?

本文关键字:CLang++ 优化 启用 Mac 有没有      更新时间:2023-10-16

这个问题来源于那篇文章。

在线编译器似乎在优化时放弃了此功能。

void functiona()
{
long long number = 0;
// long long problemSize = 100000000000;
long long problemSize = 10;
for( long long i = 0; i < problemSize; ++i )
{
for(long long j = 0; j < problemSize; j++)
{
for(long long k = 0; k < problemSize; k++)
{
for(long long l = 0; l < problemSize; l++)
{
for(long long l = 0; l < problemSize; l++)
{
number++;
number--;
}
}
}
}
}
}

在我的本地Mac上编译这段代码

clang++ -std=c++11 -stdlib=libc++ benchmark.cpp
./a.out
409

似乎没有优化。

这篇文章和文档提供了一些关于Clang优化的信息。

有没有办法启用 clang++ 的优化,以便本地输出接近在线输出。

clang++采用与clang基本相同的开关,这些开关完全包含在您自己找到的链接中。最大优化的明显方法是-Ofast,但考虑到这种优化是多么简单和明显,基本上任何级别的优化都可能触发它,-O3-02-Os,甚至-O1。确切的行为因编译器版本而异,因此您可以尝试确定消除版本循环所需的最低级别。