相关疑难解决方法(0)

Clang优化级别

海合会,手动解释什么-O3,-Os等转化为在特定的优化参数方面(-funswitch-loops,-fcompare-elim,等)

我正在为clang寻找相同的信息.

我看过网上,man clang其中只提供一般信息(-O2优化更多-O1,-Os优化速度,...),并在此处查看Stack Overflow并发现了这一点,但我没有在引用的源文件中找到任何相关内容.

编辑:我找到了答案,但我仍然感兴趣,如果有人有链接到用户手册记录所有优化传递和选择的传球.目前我刚刚找到了这个通行证列表,但在优化级别上没有任何内容.-Ox

clang compiler-optimization user-manual

86
推荐指数
3
解决办法
7万
查看次数

强制函数在Clang/LLVM中内联

有没有办法在Clang/LLVM中强制使用内联函数?

AFAIK,以下只是对编译器的一个提示,但它可以忽略该请求.

__attribute__((always_inline))
Run Code Online (Sandbox Code Playgroud)

我不介意如果它不能内联函数,编译将失败.

compilation inline llvm clang

14
推荐指数
3
解决办法
2万
查看次数

LLVM内在函数

使用LLVM构建项目时,某些函数调用将被内部函数替换.替换是由前端(例如clang)还是LLVM后端完成的?

通过互联网进行的讨论表明,内在功能替换与优化选项有关.那么这是否意味着如果没有优化选项,那么就不会发生内在替代?或者实际上,有一些默认的内部函数替换无法禁用?

如果有任何方法可以禁用所有内部函数,我该怎么做?

llvm

8
推荐指数
1
解决办法
3087
查看次数

使用现代 LLVM 运行默认优化管道

我正在使用 LLVM 7,并且我llvm::Module想使用标准优化管道对其进行优化。不幸的是,没有llvm::runDefaultOptimizations我可以调用的函数。似乎有无数种方法可以优化 LLVM 中的模块。我在这个主题上的搜索发现了许多旧的/折旧的 API 和一些在我的系统上不起作用的示例。

我想以-O3尽可能少的麻烦来运行所有标准优化。我不想手动列出所有的通行证,甚至不想写一个 for 循环。我认为llvm::PassBuilder::buildModuleOptimizationPipeline可能是解决方案,但是当我尝试使用该函数时出现链接器错误,我认为这很奇怪。

c++ llvm clang llvm-c++-api

3
推荐指数
1
解决办法
1165
查看次数