有没有办法在 Mac 上启用本地 CLang++ 的优化?
is there a way to enable optimization for local clang++ on mac?
这个问题来源于那篇文章。
在线编译器似乎在优化时放弃了此功能。
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
。确切的行为因编译器版本而异,因此您可以尝试确定消除版本循环所需的最低级别。
相关文章:
- 优化正在杀死我在 clang 6 中的整数溢出检查
- 向 cppFlags 添加"-O0"无法禁用 Android Studio 中的 clang 编译优化
- 启用优化的 g++ 和 clang++ 的奇怪行为
- 为什么 CLang++ 不优化循环,而 G++ 优化循环?
- ICC 中的 -O2 搞砸了汇编程序,ICC 中的 -O1 和 GCC / Clang 中的所有优化都很好
- 为什么GCC/Clang甚至在最高优化水平上也不会内联
- 未优化的 clang++ 代码在琐碎的 main() 中生成不需要的"movl $0, -4(%rbp)"
- 有没有办法在 Mac 上启用本地 CLang++ 的优化?
- 仅在 2 的幂上错过了 clang 中的优化
- clang实现char8_t的方式是否存在缺陷,或者标准的某个黑暗角落是否禁止优化?
- 如何禁用"不支持优化标志"的 clang 警告
- 我无法获得由 Clang 构建的优化 NDK 应用程序的调用堆栈
- Do GCC和Clang优化逐场结构副本
- 为什么clang没有使用NRVO对此进行优化
- 有没有办法告诉 clang 在没有其他优化的情况下生成 TBAA 元数据
- C++ 模板的 Clang 优化错误
- LLVM clang编译器优化器以一种非常奇怪的方式重新排列代码,该怎么做
- Clang链接时间优化与替换的操作员新的原因不匹配的自由()/删除在valgrind
- 使用clang优化编译时得到意外结果
- 这是g++和clang++优化的bug吗?